packages feed

cpsa 3.6.5 → 3.6.6

raw patch · 89 files changed

+12065/−8137 lines, 89 filesdep ~basenew-component:exe:cpsa2latexnew-component:exe:cpsagoalsatnew-component:exe:cpsaprot

Dependency ranges changed: base

Files

ChangeLog view
@@ -1,3 +1,69 @@+2020-05-21  John D. Ramsdell  <ramsdell@mitre.org>++	* cpsa.cabal (Version): Tagged as 3.6.6++2020-05-15  John D. Ramsdell  <ramsdell@mitre.org>++	* src/CPSA/Lib/Strand.hs (rlugen): Replaced an incorrect call to+	originationNodes to be a call to generationNodes.  This fixes a+	bug when using the ugen predicate in the conclusion of a rule.++2020-05-15  Moses D. Liskov <mliskov@mitre.org>++	* src/CPSA/Lib/Strand.hs (preskelWellFormed): Added a check that+	all variables used in any terms in any declarations are used in+	the terms of the traces.+	* src/CPSA/Lib/Strand.hs (verbosePreskelWellFormed): Made a similar+	change, but without removing existing more specific messages that+	may be informative for users.++2020-04-15  Joshua D. Guttman  <guttman@mitre.org>++	* src/CPSA/Lib/Strand.hs (graphCloseAll):  Added a procedure to+	generate a transitive closure that includes pairs on the same+	strand.  Adapted gprec to use it.++2020-04-02  Ian D. Kretz  <ikretz@mitre.org>++	* src/CPSA/Latex/Main.hs (main): Remove number from pubk, privk+	newcommand++2020-03-31  John D. Ramsdell  <ramsdell@mitre.org>++	* src/CPSA/SAS/SAS.hs (Preskel): Added support for unique+	generation assertions.++2020-03-20  John D. Ramsdell  <ramsdell@mitre.org>++	* cpsa.cabal (Version): Update version number as 3.6.6++2020-03-04  Moses D. Liskov  <mliskov@mitre.org>++	* src/CPSA/Prot/Main.hs (main): Added support for state to+	cpsaprot.++2020-02-27  John D. Ramsdell  <ramsdell@mitre.org>++	* src/CPSA/Lib/Strand.hs (probIsomorphic): Added quick checks for+	thinning isomorphism check.++2020-02-20  John D. Ramsdell  <ramsdell@mitre.org>++	* src/CPSA/Prot/Main.hs (main):  Improved error messages and added+	(chmsg TERM) form for channel messages and clone for roles.++2020-02-13  John D. Ramsdell  <ramsdell@mitre.org>++	* src/CPSA/Prot/Main.hs (main):  Added cpsaprot program.++2020-02-11  Kretz, Ian D <ikretz@mitre.org>++	* src/CPSA/LaTeX/Main.hs (main):  Added cpsa2latex program.++2019-11-26  John D. Ramsdell  <ramsdell@mitre.org>++	* src/CPSA/GoalSat/Main.hs: Added cpsagoalsat program.+ 2019-11-12  John D. Ramsdell  <ramsdell@mitre.org>  	* cpsa.cabal (Version): Tagged as 3.6.5
Makefile view
@@ -3,11 +3,10 @@ # The all target creates a default configuration if need be.  PACKAGE := $(wildcard *.cabal)-CONFIG	= dist/setup-config-SETUP	= runhaskell Setup.hs+CONFIG	= configured  all:	$(CONFIG)-	$(SETUP) build+	cabal build  Makefile: 	@echo make $@@@ -16,9 +15,14 @@ 	@echo make $@  $(CONFIG):	$(PACKAGE)-	$(SETUP) configure $(CABALFLAGS) --ghc --user --prefix="${HOME}"+	cabal configure+	touch $(CONFIG) +clean:+	-rm $(CONFIG)+	cabal clean+ %:	force-	$(SETUP) $@+	cabal $@ -.PHONY:	all force+.PHONY:	all clean force
NEWS view
@@ -1,5 +1,16 @@ CPSA NEWS +  May 2020:++* Release 3.6.6 adds a powerful feature: the cpsaprot preprocessing+  tool.  This allows you to specify protocols in cpsa via a more+  intuitive "Alice and Bob" notation where you specify messages being+  sent from one role to another.  The cpsaprot tool builds the+  standard defprotocol from this specification, which can then be run+  through the main CPSA tool.  This helps to reduce duplications in+  the input files actually created by humans and thus reduces the+  occurrence of accidental errors in input.+   November 2019:  * Release 3.6.5 is a bug fix release.  There are no user visible
README.txt view
@@ -39,42 +39,28 @@  INSTALLING FROM A TARBALL -QUICK START (Linux)+Build and install with: -: To build and install CPSA type:-$ make-$ make install+$ cabal configure+$ cabal build+$ cabal install+: To find the directory containing documentation and samples, type:+$ cpsa4 -h +QUICK START (Linux)+ : To analyze a protocol you have put in prob.scm type: $ cpsa -o prob.txt prob.scm $ cpsagraph -o prob.xhtml prob.txt $ firefox -remote "openFile(`pwd`/prob.xhtml)" -: Documentation and samples are in the directory given by-$ cpsa -h--: To view the user guide:-$ firefox -remote "openFile($HOME/share/cpsa-X.Y.Z/doc/cpsauser.html)"-: where X.Y.Z is the CPSA version number.- QUICK START (Mac) -: To build and install CPSA type:-$ make-$ make install- : To analyze a protocol you have put in prob.scm type: $ cpsa -o prob.txt prob.scm $ cpsagraph -o prob.xhtml prob.txt $ open prob.xhtml -: Documentation and samples are in the directory given by-$ cpsa -h--: To view the user guide:-$ open $HOME/share/cpsa-X.Y.Z/doc/cpsauser.html-: where X.Y.Z is the CPSA version number.- QUICK START (Windows)  With Cygwin or MinGW, the installation is similar to the Linux@@ -98,19 +84,20 @@  MAKEFILE -The file $HOME/share/cpsa-X.Y.Z/doc/cpsa.mk contains useful GNU Make-rules for inclusion, where X.Y.Z is CPSA version number.+To start your own project, create a fresh directory and then type: -Alternatively, copy the file Make.hs in the same directory into the-directory containing your CPSA problem statements.  The source file-has usage instructions.+$ cpsainit +This will create a Makefile that automates the analysis process.  For+Windows, it will also create Make4.hs, a cpsa build script written in+Haskell.+ PARALLELISM  CPSA is built so it can make use of multiple processors.  To make use-of more than one processor, start CPSA with a runtime flag that-specifies the number of processors to be used, such as "+RTS -N4--RTS".  The GHC documentation describes the -N option in detail.+of more than one processor, start CPSA with the -N runtime flag, as in+"+RTS -N -RTS".  The GHC documentation describes the -N option in+detail.  TEST SUITE @@ -128,11 +115,11 @@ ADDITIONAL PROGRAMS  The src directory of the source distributions includes programs-written in Scheme, Prolog, and Elisp for performing tasks.  Use them-as templates for your special purpose CPSA analysis and transformation-needs.  Also, when given the --json option, the CPSA pretty printer-cpsapp will transform CPSA S-expressions into JavaScript Object-Notation (JSON).+written in Scheme, Prolog, Elisp, and OCaml for performing tasks.  Use+them as templates for your special purpose CPSA analysis and+transformation needs.  Also, when given the --json option, the CPSA+pretty printer cpsapp will transform CPSA S-expressions into+JavaScript Object Notation (JSON).  On Linux, the GHC runtime can request so much memory that thrashing results.  The script in src/ghcmemlimit sets an environment variable
cpsa.cabal view
@@ -1,7 +1,7 @@ Name:                   cpsa-Version:                3.6.5+Version:                3.6.6 Maintainer:             mliskov@mitre.org-Cabal-Version:          >= 1.6+Cabal-Version:          >= 1.10 License:                BSD3 License-File:           license.txt Synopsis:               Symbolic cryptographic protocol analyzer@@ -75,14 +75,14 @@   examples/eq_test.xhtml Data-Dir:               doc Extra-Source-Files:-  Makefile ChangeLog README.txt NEWS ghci cpsatst setup.bat+  Makefile ChangeLog README.txt NEWS mkghci 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   src/ocaml/cpsa.itarget src/ocaml/cpsa.mllib src/ocaml/cpsa.mltop   src/ocaml/cpsa.odocl src/ocaml/expand.ml src/ocaml/main.ml-  src/ocaml/main.mli src/ocaml/pp.ml src/ocaml/reader.ml-  src/ocaml/reader.mli src/ocaml/scanner.mll src/ocaml/sexpr.ml+  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/Makefile tst/Make.hs tst/README@@ -117,6 +117,7 @@   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/blanchet_doorsep.prot tst/blanchet_doorsep.tst    Source-Repository head   Type:     git@@ -124,6 +125,7 @@  Executable cpsa   Main-Is:              CPSA/Lib/Main.hs+  Default-Language:     Haskell2010   Build-Depends:        base >= 4 && < 5, containers, parallel   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports -threaded -rtsopts@@ -139,6 +141,7 @@  Executable cpsagraph   Main-Is:              CPSA/Graph/Main.hs+  Default-Language:     Haskell2010   Build-Depends:        base >= 4 && < 5, containers   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -153,6 +156,7 @@  Executable cpsashapes   Main-Is:              CPSA/Shapes/Main.hs+  Default-Language:     Haskell2010   Build-Depends:        base >= 4 && < 5, containers   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -164,6 +168,7 @@  Executable cpsaannotations   Main-Is:              CPSA/Annotations/Main.hs+  Default-Language:     Haskell2010   Build-Depends:        base >= 4 && < 5, containers   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -176,6 +181,7 @@      Executable cpsadiff   Main-Is:              CPSA/Diff/Main.hs+  Default-Language:     Haskell2010   Build-Depends:        base >= 3 && < 5, containers   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -187,6 +193,7 @@  Executable cpsasas   Main-Is:              CPSA/SAS/Main.hs+  Default-Language:     Haskell2010   Build-Depends:        base >= 4 && < 5, containers   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -196,8 +203,21 @@     CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra CPSA.SAS.SAS     CPSA.Basic.Algebra CPSA.DiffieHellman.Algebra +Executable cpsaprot+  Main-Is:              CPSA/Prot/Main.hs+  Default-Language:     Haskell2010+  Build-Depends:        base >= 3 && < 5, containers+  GHC-Options:+    -Wall -fno-warn-name-shadowing -fwarn-unused-imports+  Hs-Source-Dirs:       src+  Other-Modules:+    Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr+    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra+    CPSA.Basic.Algebra CPSA.Lib.Expand+ Executable cpsapp   Main-Is:              CPSA/Pretty/Main.hs+  Default-Language:     Haskell2010   Build-Depends:        base >= 3 && < 5, containers   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -209,6 +229,7 @@  Executable cpsajson   Main-Is:              CPSA/JSON/Main.hs+  Default-Language:     Haskell2010   Build-Depends:        base >= 3 && < 5, containers   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -220,6 +241,7 @@  Executable cpsadebase   Main-Is:              CPSA/Debase/Main.hs+  Default-Language:     Haskell2010   Build-Depends:        base >= 3 && < 5, containers   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -231,6 +253,7 @@  Executable cpsamatch   Main-Is:              CPSA/Match/Main.hs+  Default-Language:     Haskell2010   Build-Depends:        base >= 4 && < 5, containers   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -242,9 +265,34 @@  Executable cpsainit   Main-Is:              CPSA/Init/Main.hs+  Default-Language:     Haskell2010   Build-Depends:        base, directory   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports   Hs-Source-Dirs:       src   Other-Modules:     Paths_cpsa++Executable cpsagoalsat+  Main-Is:              CPSA/GoalSat/Main.hs+  Default-Language:     Haskell2010+  Build-Depends:        base >= 3 && < 5, containers+  GHC-Options:+    -Wall -fno-warn-name-shadowing -fwarn-unused-imports+  Hs-Source-Dirs:       src+  Other-Modules:+    Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr+    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra+    CPSA.Basic.Algebra++Executable cpsa2latex+  Main-Is:              CPSA/Latex/Main.hs+  Default-Language:     Haskell2010+  Build-Depends:        base >= 3 && < 5, containers+  GHC-Options:+    -Wall -fno-warn-name-shadowing -fwarn-unused-imports+  Hs-Source-Dirs:       src+  Other-Modules:+    Paths_cpsa CPSA.Lib.SExpr CPSA.Lib.Expand CPSA.Lib.Entry+    CPSA.Basic.Algebra CPSA.Lib.Algebra CPSA.Lib.Pretty+    CPSA.Lib.Printer CPSA.Lib.Utilities
cpsatst view
@@ -1,13 +1,52 @@ #! /bin/sh  # This script runs the test suite, and then reduces the data for-# inspection.  If make fails, something is very wrong.  If differences-# appear in the output, there might be a problem.+# inspection.  If you see "cpsa failed", something is very wrong.  If+# differences appear in the output, there might be a problem.  # The following scripts in the tst directory might also serve as a # template for your needs, but probably not.  Look at doc/cpsa.mk # first. -cd tst-make clean-make "$@"+# ./cpsashapesall+# ./cpsagraphall++CPSAFLAGS="+RTS -M512m -N -RTS"++# Analyze the results of a CPSA run.+analyze () {+    echo cpsadiff "$1.tst" "$1.txt"+    cabal run cpsadiff -v0 -- "$1.tst" "$1.txt"+    echo cpsagraph -o "$1.xhtml" "$1.txt"+    cabal run cpsagraph -v0 -- -o "$1.xhtml" "$1.txt"+    echo cpsashapes -o "${1}_shapes.txt" "$1.txt"+    cabal run cpsashapes -v0 -- -o "${1}_shapes.txt" "$1.txt"+    echo cpsagraph -o "${1}_shapes.xhtml" "${1}_shapes.txt"+    cabal run cpsagraph -v0 -- -o "${1}_shapes.xhtml" "${1}_shapes.txt"+}++for i in tst/*.scm+do+    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+do+    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" || \+	echo cpsa failed.+    analyze "$b"+done++for i in tst/*.lsp+do+    b=tst/`basename "$i" .lsp`+    echo cpsa ${CPSAFLAGS} -o "$b.txt" "$i"+    cabal run cpsa -v0 -- ${CPSAFLAGS} -o "$b.txt" "$i"+    analyze "$b"+done
doc/cpsa.mk view
@@ -7,6 +7,10 @@ %.txt:		%.scm 	$(CPSATIME) cpsa $(CPSAFLAGS) -o $@ $< +# Preprocess by transforming defprot forms into defprotocol+%.scm:		%.prot+	cpsaprot $(CPSAPROTFLAGS) -o $@ $<+ # Analyze protocols for shapes, but don't fail when CPSA does %.txt:		%.lsp 	-$(CPSATIME) cpsa $(CPSAFLAGS) -o $@ $<
doc/cpsamanual.pdf view

binary file changed (1025619 → 1032704 bytes)

doc/init/Makefile view
@@ -1,12 +1,12 @@-CPSAFLAGS = +RTS -M512m -N1 -RTS-CPSATIME = time+CPSAFLAGS = +RTS -M512m -N -RTS -SRCS := $(wildcard *.scm) $(wildcard *.lsp)+SRCS := $(wildcard *.scm) $(wildcard *.prot) $(wildcard *.lsp)  include cpsa.mk -all:    $(SRCS:%.scm=%_shapes.xhtml) $(SRCS:%.scm=%.xhtml) \-        $(SRCS:%.lsp=%_shapes.xhtml) $(SRCS:%.lsp=%.xhtml)+all:	$(SRCS:%.scm=%_shapes.xhtml) $(SRCS:%.scm=%.xhtml) \+	$(SRCS:%.prot=%_shapes.xhtml) $(SRCS:%.prot=%.xhtml) \+	$(SRCS:%.lsp=%_shapes.xhtml) $(SRCS:%.lsp=%.xhtml)  clean: 	-rm *.txt *.xhtml
− ghci
@@ -1,5 +0,0 @@-:set -isrc:dist/build/autogen:dist/build/cpsa/autogen-:set -fbreak-on-error-:set args tst/dh_mim.scm--- ghci src/CPSA/Lib/Main.hs--- :trace main
+ mkghci view
@@ -0,0 +1,9 @@+#! /bin/sh+autogen=`find . -name autogen -type d | grep '/cpsa/'`++echo ':set' "-isrc:$autogen"+echo ':set -fbreak-on-error'+echo ':set' args ${1:-bug.scm}+echo '-- ghci src/CPSA/Main.hs'+echo '-- :trace main'+
+ src/CPSA/GoalSat/Main.hs view
@@ -0,0 +1,179 @@+-- Identify unsatisfied skeletons++-- Copyright (c) 2009 The MITRE Corporation+--+-- This program is free software: you can redistribute it and/or+-- modify it under the terms of the BSD License as published by the+-- University of California.++module Main (main) where++import Numeric+import System.IO+import System.Console.GetOpt+import CPSA.Lib.SExpr+import CPSA.Lib.Printer (pp)+import CPSA.Lib.Entry++-- Runtime parameters++data Params = Params+    { file :: Maybe FilePath,   -- Nothing specifies standard output+      margin :: Int }           -- Output line length+    deriving Show++defaultIndent :: Int+defaultIndent = optIndent defaultOptions++defaultMargin :: Int+defaultMargin = optMargin defaultOptions++main :: IO ()+main =+    do+      (p, params) <- start options interp+      h <- outputHandle $ file params+      go (writeCpsaLn (pp (margin params) defaultIndent) h) p+      hClose h++writeCpsaLn :: (SExpr a -> String) -> Handle -> SExpr a -> IO ()+writeCpsaLn printer h sexpr =+    hPutStrLn h $ printer sexpr++-- Command line option flags+data Flag+    = Help                      -- Help+    | Info                      -- Version information+    | Margin String             -- Output line length+    | Output String             -- Output file name+      deriving Show++options :: [OptDescr Flag]+options =+    [ Option ['o'] ["output"]   (ReqArg Output "FILE") "output FILE",+      Option ['m'] ["margin"]   (ReqArg Margin "INT")+      ("set output margin (default " ++ show defaultMargin ++ ")"),+      Option ['h'] ["help"]     (NoArg Help)           "show help message",+      Option ['v'] ["version"]  (NoArg Info)           "show version number" ]++-- Interpret option flags+interp :: [Flag] -> IO Params+interp flags =+    loop flags (Params { file = Nothing, -- By default, no output file+                         margin = defaultMargin })+    where+      loop [] params = return params+      loop (Output name : flags) params+          | file params == Nothing =+              loop flags $ params { file = Just name }+      loop (Margin value : flags) params =+          case readDec value of+            [(margin, "")] ->+                loop flags $ params { margin = margin }+            _ ->+                do+                  msg <- usage options ["Bad value for margin\n"]+                  abort msg+      loop (Info : _) _ =+          success cpsaVersion+      loop (Help : _) _ =+          do                    -- Show help then exit with success+            msg <- usage options []+            success msg+      loop _ _ =+           do                   -- Show help then exit with failure+             msg <- usage options ["Bad option combination\n"]+             abort msg++-- Entry point for finding unsatisfied skeletons+go :: (SExpr () -> IO ()) -> PosHandle -> IO ()+go pp p =+  pov pp p++-- Look for a point of view that contains a goal.+pov :: (SExpr () -> IO ()) -> PosHandle -> IO ()+pov pp p =+  do+    x <- gentlyReadSExpr p+    case x of+      Nothing ->+        return ()+      Just sexpr ->+        case sexpr of+          L _ (S _ "defskeleton" : _ : xs) ->+            case label xs of    -- Get laber+              Nothing ->+                abort "Skeleton without a label"+              Just lab ->       -- See if it has goals+                if hasKey "goals" xs then+                  skel pp p [lab] -- Has a goal+                else+                  prot pp p     -- Else skip this problem+          _ ->+            pov pp p++-- Get the label number of a skeleton+label :: [SExpr a] -> Maybe Int+label xs =+  case assoc "label" xs of+    [N _ lab] ->+      Just lab+    _ ->+      Nothing++-- Search for next protocol definition+prot :: (SExpr () -> IO ()) -> PosHandle -> IO ()+prot pp p =+  do+    x <- gentlyReadSExpr p+    case x of+      Nothing ->+        return ()+      Just sexpr ->+        case sexpr of+          L _ (S _ "defprotocol" : _ ) ->+            pov pp p+          _ ->+            prot pp p++-- Look for skeleton that are unsatisfied.+skel :: (SExpr () -> IO ()) -> PosHandle -> [Int] -> IO ()+skel pp p sats =+  do+    x <- gentlyReadSExpr p+    case x of+      Nothing ->+        return ()+      Just sexpr ->+        case sexpr of+          L _ (S _ "defskeleton" : _ : xs) ->+            if unsat xs then    -- If skeleton is unsatisfied+              case label xs of+                Nothing ->+                  abort "Skeleton without a label"+                Just lab ->     -- Then add its label to the list+                  skel pp p (lab : sats)+            else                -- Skeleton okay+              skel pp p sats+          _ ->                  -- Not a skeleton+            do                  -- Print results+              pp (L () (map (N ()) (reverse sats)))+              pov pp p          -- And then search for POV++-- Is skeleton unsatisfied?+unsat :: [SExpr a] -> Bool+unsat xs =                      -- Satisfies entry has at least+  hasKey "no" $ assoc "satisfies" xs -- one no++-- Lookup value in alist, appending values with the same key+assoc :: String -> [SExpr a] -> [SExpr a]+assoc key alist =+    concat [ rest | L _ (S _ head : rest) <- alist, key == head ]++-- See if alist has a key+hasKey :: String -> [SExpr a] -> Bool+hasKey key alist =+    any f alist+    where+      f (L _ (S _ head : _)) = head == key+      f _ = False
+ src/CPSA/Latex/Main.hs view
@@ -0,0 +1,252 @@+-- Convert macros into LaTeX macros++-- Copyright (c) 2020 The MITRE Corporation+--+-- This program is free software: you can redistribute it and/or+-- modify it under the terms of the BSD License as published by the+-- University of California.++module Main (main) where++import Data.List+import System.Environment+import System.IO+import System.Console.GetOpt+import Control.Monad+import CPSA.Lib.SExpr+import CPSA.Lib.Expand+import CPSA.Lib.Entry hiding (defaultOptions, Options, optFile)++main :: IO ()+main =+  do+    argv <- getArgs+    (flags, files) <- opts options argv+    opts <- interp defaultOptions flags+    p <- openInput files+    sexprs <- readSExprs p+    macros <- macroExtract sexprs+    let filtered = macroFilter macros+    outputResults opts (reverse $ map translateMacro filtered)++-- Command line option flags+data Flag+    = Output String+    | Help+    | Info+      deriving Show++data Options = Options {+  optFile :: Maybe FilePath+  }+  deriving Show++defaultOptions :: Options+defaultOptions = Options {+  optFile = Nothing+  }++options :: [OptDescr Flag]+options =+  [ Option ['o'] ["output"]  (ReqArg Output "FILE") "output FILE",+    Option ['h'] ["help"]    (NoArg Help)           "show help message",+    Option ['v'] ["version"] (NoArg Info)           "show version number" ]++opts :: [OptDescr a] -> [String] -> IO ([a], [String])+opts options argv =+    case getOpt RequireOrder options argv of+      (o, n, []) -> return (o, n)+      (_, _, errs) ->+          do+            msg <- usage options errs+            abort msg++-- Interpret option flags+interp :: Options -> [Flag] -> IO Options+interp opts flags =+  loop flags opts+  where+    loop [] opts = return opts+    loop (Output name : flags) opts+      | optFile opts == Nothing =+          loop flags $ opts { optFile = Just name }+    loop (Help : _) _ =+          do                    -- Show help then exit with success+            msg <- usage options []+            success msg+    loop (Info : _) _ =+          success cpsaVersion+    loop _ _ =+           do                   -- Show help then exit with failure+             msg <- usage options ["Bad option combination\n"]+             abort msg++openInput :: [String] -> IO PosHandle+openInput [file] =+    do                          -- Input from named file+      input <- openFile file ReadMode+      posHandle file input+openInput [] =+    posHandle "" stdin          -- Input from the standard input+openInput _ =+    do+      msg <- usage options ["too many input files\n"]+      abort msg++-- Write results to specified output location+outputResults :: Options -> [String] -> IO ()+outputResults opts rs =+  do+    h <- outputHandle (optFile opts)+    mapM_ (hPutStrLn h) rs+    hClose h+    return ()++-- The mechanisms for translating from CPSA to LaTeX are below++-- Extract the macros from a list of SExprs+macroExtract :: [SExpr Pos] -> IO [Macro]+macroExtract sexprs = do+  (mList, _) <- foldM (expandSExpr bound) ([], []) sexprs+  return mList++-- Get rid of splices+macroRemoveSplices :: [Macro] -> [Macro]+macroRemoveSplices [] = []+macroRemoveSplices (m:ms) =+  case (getMacroBody m) of+    L _ (S _ "^":_) -> macroRemoveSplices ms+    _ -> m:(macroRemoveSplices ms)++-- Get rid of defprotocols+macroRemoveDefprotocols :: [Macro] -> [Macro]+macroRemoveDefprotocols [] = []+macroRemoveDefprotocols (m:ms) =+  case (getMacroBody m) of+    L _ (S _ "defprotocol":_) -> macroRemoveDefprotocols ms+    _ -> m:(macroRemoveDefprotocols ms)++-- Get rid of defroles+macroRemoveDefroles :: [Macro] -> [Macro]+macroRemoveDefroles [] = []+macroRemoveDefroles (m:ms) =+  case (getMacroBody m) of+    L _ (S _ "defrole":_) -> macroRemoveDefroles ms+    _ -> m:(macroRemoveDefroles ms)++-- Get rid of rules+macroRemoveRules :: [Macro] -> [Macro]+macroRemoveRules [] = []+macroRemoveRules (m:ms) =+  case (getMacroBody m) of+    L _ (S _ "defrule":_) -> macroRemoveRules ms+    _ -> m:(macroRemoveRules ms)++-- Get rid of goals+macroRemoveGoals ::  [Macro] -> [Macro]+macroRemoveGoals [] = []+macroRemoveGoals (m:ms) =+  case (getMacroBody m) of+    L _ (S _ "defgoal":_) -> macroRemoveGoals ms+    _ -> m:(macroRemoveGoals ms)++-- Composition of the preceding three functions+macroFilter :: [Macro] -> [Macro]+macroFilter = macroRemoveDefroles .+              macroRemoveDefprotocols .+              macroRemoveGoals .+              macroRemoveRules .+              macroRemoveSplices++-- Given a macro, return the count of its args+macroArgsCount :: Macro -> Int+macroArgsCount = length . getMacroArgs++-- Translate an SExpr into a String and a final translation+-- environment given some initial environment+translateSExpr :: [(String, String)] -> SExpr a -> (String, [(String, String)])+translateSExpr e (S _ s) =+  case (lookup s e) of+    Nothing -> let t = (translateSymbol s) in (t, (s,t):e)+    Just t -> (t, e)+translateSExpr e (Q _ s) = let t = translateQuotedStr s in (t, (s,t):e)+translateSExpr e (N _ n) = (translateInt n, e)+translateSExpr e (L _ []) = ("", e)+translateSExpr e (L _ (S _ "cat":ys)) =+  (intercalate "\\cat " xs, e1)+  where+    (xs, e1) = translateSExprFold e ys+translateSExpr e (L p (S q "enc":ys)) =+  ("\\enc{" ++ s1 ++ "}{" ++ s2 ++ "}", e2)+  where+    (s2, e1) = translateSExpr e (last ys)+    (s1, e2) = translateSExpr e1 (L p (S q "cat":init ys))+translateSExpr e (L p (S q "hash":ys)) =+  ("\\hash{" ++ s ++ "}", e')+  where+    (s, e') = translateSExpr e (L p (S q "cat":ys))+translateSExpr e (L _ [S _ "pubk", y1, y2]) =+  case translateSExprFold e [y1, y2] of+    ([s1, s2], e1) ->+      ("\\pubktwo{" ++ s1 ++ "}{" ++ s2 ++ "}", e1)+    _ ->+      error "translateSExpr: bad fold for pubktwo"+translateSExpr e (L _ [S _ "privk", y1, y2]) =+  case translateSExprFold e [y1, y2] of+    ([s1, s2], e1) ->+      ("\\privktwo{" ++ s1 ++ "}{" ++ s2 ++ "}", e1)+    _ ->+      error "translateSExpr: bad fold for privktwo"+translateSExpr e (L _ ys) =+  (concat xs, e1)+  where+    (xs, e1) = translateSExprFold e ys++translateSExprFold :: [(String, String)] -> [SExpr a] ->+                      ([String], [(String, String)])+translateSExprFold e ys = (xs, e')+  where+    (xs, e') = foldr f ([], e) ys+    f y (acc, env) = (x:acc, e'')+      where (x, e'') = translateSExpr env y++-- Translate a CPSA macro into an equivalent LaTeX macro+translateMacro :: Macro -> String+translateMacro m =+  let name = toMathMode $ getMacroName m+      args = getMacroArgs m+      argc = macroArgsCount m+      body = getMacroBody m+      env = zip args ["{#" ++ (show i) ++ "}" | i <- [(1::Int)..]]+      prelude = "\\newcommand{\\"+      l = "}["+      r = "]{"+  in prelude++name++l++(show argc)++r++(fst $ translateSExpr env body)++"}"++-- Symbol to String translation rules+translateSymbol :: String -> String+translateSymbol s = "\\" ++ (toMathMode s)++-- Quoted string to String translation rules+translateQuotedStr :: String -> String+translateQuotedStr s = "\\tag{" ++ s' ++ "}"+  where s' = toMathModeSpaced s++-- Delete chars LaTeX math mode doesn't like+toMathMode :: String -> String+toMathMode s = [c | c<-s, not (c `elem` badChars)]+  where badChars = " -"++-- Int to String translation rules+translateInt :: Int -> String+translateInt n = show n++-- Replace chars LaTeX math mode doesn't like with "\\ "+toMathModeSpaced :: String -> String+toMathModeSpaced s = intercalate "\\ " (f s)+  where badChars = " -"+        f :: String -> [String]+        f s = case dropWhile (`elem` badChars) s of+          "" -> []+          s' -> w : f s''+            where (w, s'') = break (`elem` badChars) s'
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,3 +460,5 @@    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
@@ -12,7 +12,9 @@ #define MonadFail Monad #endif -module CPSA.Lib.Expand (expand, readSExprs) where+module CPSA.Lib.Expand (expand, readSExprs, Macro,+                        expandSExpr, bound, getMacroName,+                        getMacroArgs, getMacroBody) where  import Control.Monad import System.IO (openFile, IOMode (ReadMode))@@ -87,6 +89,15 @@     { name :: String,       args :: [String],       body :: SExpr Pos }++getMacroName :: Macro -> String+getMacroName (Macro {name=n, args=_, body=_}) = n++getMacroArgs :: Macro -> [String]+getMacroArgs (Macro {name=_, args=a, body=_}) = a++getMacroBody :: Macro -> SExpr Pos+getMacroBody (Macro {name=_, args=_, body=b}) = b  defmacro :: MonadFail m => Pos -> [SExpr Pos] -> m Macro defmacro _ [L _ (name : args), body] =
src/CPSA/Lib/Loader.hs view
@@ -558,10 +558,22 @@     case x of       S _ role : N _ height : env ->           do-            (gen, i) <- loadInst pos p kvars gen role height env+            (gen, i) <- loadInst pos p kvars gen role height env False             loadInsts top p kvars gen (i : insts) xs       _ ->           fail (shows pos "Malformed defstrand")+loadInsts top p kvars gen insts (L pos (S _ "defstrandmax" : x) : xs) =+    case x of+      S _ role : N _ height : env ->+          do+            (gen, i) <- loadInst pos p kvars gen role height env True+            loadInsts top p kvars gen (i : insts) xs+      S _ role : env ->+          do+            (gen, i) <- loadInst pos p kvars gen role 0 env True+            loadInsts top p kvars gen (i : insts) xs+      _ ->+          fail (shows pos "Malformed defstrandmax") loadInsts top p kvars gen insts (L pos (S _ "deflistener" : x) : xs) =     case x of       [term] ->@@ -572,7 +584,7 @@           fail (shows pos "Malformed deflistener") loadInsts top p kvars gen insts xs =     do-      badKey ["defstrand", "deflistener"] xs+      badKey ["defstrand", "deflistener", "defstrandmax"] xs       _ <- alist [] xs          -- Check syntax of xs       others <- loadGenSkelDecls heights kvars (assocDecls xs)       predefs <- loadAllPredefSkelDecls heights kvars xs@@ -589,7 +601,7 @@       goals = assoc "goals" xs       pov = assoc "pov" xs       kcomment =-        loadComment "subgoals" goals +++        loadComment "goals" goals ++         loadComment "comment" (assoc "comment" xs)  loadComment :: String -> [SExpr Pos] -> [SExpr ()]@@ -624,17 +636,19 @@  loadInst :: (Algebra t p g s e c, MonadFail m) => Pos ->             Prot t g -> [t] -> g -> String -> Int ->-            [SExpr Pos] -> m (g, Instance t e)-loadInst pos p kvars gen role height env =+            [SExpr Pos] -> Bool -> m (g, Instance t e)+loadInst pos p kvars gen role height env count_from_max =     do       r <- lookupRole pos p role-      case height < 1 || height > length (rtrace r) of+      let height' = if count_from_max then ((length (rtrace r)) - height)+                                      else height+      case height' < 1 || height' > length (rtrace r) of         True -> fail (shows pos "Bad height")         False ->             do               let vars = rvars r               (gen', env') <- foldM (loadMaplet kvars vars) (gen, emptyEnv) env-              return (mkInstance gen' r env' height)+              return (mkInstance gen' r env' height')  lookupRole :: MonadFail m => Pos -> Prot t g -> String -> m (Role t) lookupRole _ p role  | role == "" =
src/CPSA/Lib/Main.hs view
@@ -218,8 +218,8 @@       Option ['m'] ["margin"]   (ReqArg Margin "INT")       ("set output margin (default " ++ show (optMargin defaultOptions) ++ ")"),       Option ['e'] ["expand"]   (NoArg Expand)-      "expand macros only; don't analyze",-      Option ['z'] ["noanalyze"] (NoArg NoAnalyze) "don't analyze",+      "expand macros only; don't load or analyze",+      Option ['z'] ["noanalyze"] (NoArg NoAnalyze) "load but don't analyze",       Option ['n'] ["noisochk"] (NoArg NoIsoChk)       "disable isomorphism checks",       Option ['c'] ["check-nonces"] (NoArg CheckNoncesFirst)
src/CPSA/Lib/Reduction.hs view
@@ -7,7 +7,7 @@ -- University of California.  -- Provides the top-level search loop, which implements term reduction--- on skeletos.+-- on skeletons.  module CPSA.Lib.Reduction (solve) where @@ -214,20 +214,20 @@ -- n is the current step count -- seen holds the gists of seen skeletons -- todo holds unreduced skeletons--- tobig holds skeletons that have exceed the strand bound.+-- toobig holds skeletons that have exceed the strand bound. breadth :: Algebra t p g s e c => Options -> Handle ->            [Preskel t g s e] -> Int -> Int -> Seen t g s e ->            [LPreskel t g s e] -> [LPreskel t g s e] -> IO ()-breadth p h ks _ n _ [] [] =       -- Empty todo list and tobig list+breadth p h ks _ n _ [] [] =       -- Empty todo list and toobig list     do       wrt p h (comment "Nothing left to do")       solve p h ks n            -- Solve next problem-breadth p h _ _ _ _ [] tobig = -- Empty todo list and non-null tobig list+breadth p h _ _ _ _ [] toobig = -- Empty todo list and non-null toobig list     do       wrt p h (comment "Strand bound exceeded--aborting run")-      dump p h (reverse tobig)  "Strand bound exceeded"-breadth p h ks m n seen todo tobig =-    step p h ks m seen n void [] tobig (parMap (branch p seen) todo)+      dump p h (reverse toobig)  "Strand bound exceeded"+breadth p h ks m n seen todo toobig =+    step p h ks m seen n void [] toobig (parMap (branch p seen) todo)  -- Returns the nodes in a preskeleton that are not realized and are at or -- above the minimum priority.@@ -241,23 +241,23 @@         [Preskel t g s e] -> Int -> Seen t g s e -> Int ->         Seen t g s e -> [LPreskel t g s e] ->         [LPreskel t g s e] -> [Reduct t g s e] -> IO ()-step p h ks m oseen n seen todo tobig [] = -- Empty reducts-    breadth p h ks m n (merge seen oseen) (reverse todo) tobig-step p h _ m _ n _ todo tobig reducts+step p h ks m oseen n seen todo toobig [] = -- Empty reducts+    breadth p h ks m n (merge seen oseen) (reverse todo) toobig+step p h _ m _ n _ todo toobig reducts     | n > m =                   -- Check step count         do           wrt p h (comment "Step limit exceeded--aborting run")-          dump p h (mktodo reducts todo tobig) "Step limit exceeded"-step p h ks m oseen n seen todo tobig (Reduct lk _ _  _  : reducts)+          dump p h (mktodo reducts todo toobig) "Step limit exceeded"+step p h ks m oseen n seen todo toobig (Reduct lk _ _  _  : reducts)     | nstrands (content lk) >= optBound p = -- Check strand count-        step p h ks m oseen n seen todo (lk : tobig) reducts-step p h ks m oseen n seen todo tobig (Reduct lk size kids dups : reducts)+        step p h ks m oseen n seen todo (lk : toobig) reducts+step p h ks m oseen n seen todo toobig (Reduct lk size kids dups : reducts)     | optGoalsSat p && satCheck lk = -- Stop if goals satisfied mode?         do           let ns = unrealized (content lk)           let shape = if null ns then Shape else Fringe           wrt p h (commentPreskel lk [] ns shape SatisfiesAll "satisfies all")-          step p h ks m oseen n seen todo tobig reducts+          step p h ks m oseen n seen todo toobig reducts     | size <= 0 =               -- Interpret empty reducts         do           let ns = unrealized (content lk)@@ -266,12 +266,12 @@           wrt p h (commentPreskel lk [] ns shape                    (if live then Nada else Dead)                    (if live then "" else "empty cohort"))-          step p h ks m oseen n seen todo tobig reducts+          step p h ks m oseen n seen todo toobig reducts     | optDepth p > 0 && depth lk >= optDepth p =         do           let ns = unrealized (content lk)           wrt p h (commentPreskel lk [] ns Fringe Nada "")-          step p h ks m oseen n seen todo tobig reducts+          step p h ks m oseen n seen todo toobig reducts     | otherwise =         do           let (n', seen', todo', dups') =@@ -281,7 +281,7 @@           let msg = shows size $ showString " in cohort - " $                          shows u " not yet seen"           wrt p h (commentPreskel lk (reverse dups') ns Ordinary Nada msg)-          step p h ks m oseen n' seen' todo' tobig reducts+          step p h ks m oseen n' seen' todo' toobig reducts  -- Expands one branch in the derivation tree. branch :: Algebra t p g s e c => Options -> Seen t g s e ->@@ -313,8 +313,8 @@ mktodo :: [Reduct t g s e] ->           [LPreskel t g s e] -> [LPreskel t g s e] ->           [LPreskel t g s e]-mktodo reducts todo tobig =-    map (\(Reduct lk _ _ _) -> lk) reducts ++ reverse todo ++ reverse tobig+mktodo reducts todo toobig =+    map (\(Reduct lk _ _ _) -> lk) reducts ++ reverse todo ++ reverse toobig  type Next t p g s e c =     (Int, Seen t g s e, [LPreskel t g s e], [Int])
src/CPSA/Lib/Strand.hs view
@@ -314,13 +314,25 @@           | elem n seen = loop dst ns seen           | otherwise = loop dst (preds n ++ ns) (n : seen) --- Compute the transitive closure+-- Compute the transitive closure,+-- 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] graphClose orderings =-    filter (not . sameStrands) (loop orderings False orderings)+    filter (not . sameStrands) (graphCloseAll orderings)     where+      sameStrands (n0, n1) = strand n0 == strand n1++-- Compute the transitive closure+-- 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        loop orderings False [] = orderings       loop orderings True [] =           loop orderings False orderings -- restart loop@@ -331,8 +343,8 @@       inner orderings repeat pairs (p : rest)           | elem p orderings = inner orderings repeat pairs rest           | otherwise = inner (p : orderings) True pairs rest-      sameStrands (n0, n1) = strand n0 == strand n1 +                              {- -- The nodes that preceed node n via strand succession spreds :: GraphNode e i -> [GraphNode e i]@@ -798,6 +810,14 @@  probIsomorphic :: Algebra t p g s e c => Preskel t g s e -> Preskel t g s e -> Bool probIsomorphic k k' =+--    nvars g == nvars g' &&  -- Wrong in DH+    ntraces g == ntraces g' &&+    briefs g == briefs g' &&+    norderings g == norderings g' &&+    gpatterns g == gpatterns g' &&+    nleadsto g == nleadsto g' &&+    nsndecls g == nsndecls g' &&+    nfacts g == nfacts g' &&     any (tryPermProb g g' pr pr') (permutations g g')     where       g = gist k@@ -2108,18 +2128,16 @@  -- A preskeleton is well formed if the ordering relation is acyclic, -- each atom declared to be uniquely-originating is carried in some--- preskeleton term, and every variable that occurs in each base term--- declared to be non-originating or pen-non-originating occurs in--- some preskeleton term, and the atom must never be carried by any--- term, and every uniquely originating role term mapped by an--- instance is mapped to a term that originates on the instance's--- strand.+-- preskeleton term, and every variable that occurs in any declaration+-- occurs in some preskeleton term, and none of the declaration-based+-- constraints are violated, and furthermore, every uniquely+-- originating role term mapped by an instance is mapped to a term+-- that originates on that instance's strand.  -- Exported preskelWellFormed :: Algebra t p g s e c => Preskel t g s e -> Bool preskelWellFormed k =-    varSubset (knon k) terms &&-    varSubset (kpnon k) terms &&+    varSubset (declsTerms (decls k)) terms &&     all nonCheck (knon k) &&     all uniqueCheck (kunique k) &&     all factCheck (kfacts k) &&@@ -2154,6 +2172,10 @@                    $ varSubset (knon k) terms       failwith "a variable in pen-non-orig is not in some trace"                    $ varSubset (kpnon k) terms+      failwith "a variable in uniq-gen is not in some trace"+                   $ varSubset (dkuniqgen (decls k)) terms+      failwith "a variable in a declaration is not in some trace"+                   $ varSubset (declsTerms (decls k)) terms       mapM_ nonCheck $ knon k       mapM_ uniqueCheck $ kunique k       mapM_ factCheck $ kfacts k@@ -2651,7 +2673,7 @@     f k v       | elem v (kvars k) = k       | otherwise = error (s ++ ": Bad var in fact " ++ show v)-        -- ++ "\n\n" ++ show k)+        -- ++ "\n\n" ++ show k --}  {-@@ -2822,7 +2844,7 @@         (g, e) <- nodeMatch n p (g, e)         nodeMatch n' p' (g, e)   where-    tc = map graphPair $ graphClose $ graphEdges $ strands k+    tc = map graphPair $ graphCloseAll $ graphEdges $ strands k  -- Node leads to gleadsTo :: Algebra t p g s e c => NodeTerm t -> NodeTerm t -> Sem t g s e@@ -3306,7 +3328,7 @@       | elem t' (dkuniqgen $ decls k) -> [(k, (g, e))]       | not $ isAtom t' -> []       | otherwise ->-        case originationNodes (strands k) t' of+        case generationNodes (strands k) t' of           (_, []) -> []           (_, n : _) ->             [(k', (g, e))]
src/CPSA/Pretty/Main.hs view
@@ -65,7 +65,6 @@     = Help                      -- Help     | Info                      -- Version information     | Margin String             -- Output line length-    | Infix                     -- Select output notation     | Json                      -- Select output format     | Output String             -- Output file name       deriving Show
+ src/CPSA/Prot/Main.hs view
@@ -0,0 +1,257 @@+-- Translate protocols in Alice and Bob notation into defprotocol syntax++-- Copyright (c) 2020 The MITRE Corporation+--+-- This program is free software: you can redistribute it and/or+-- modify it under the terms of the BSD License as published by the+-- University of California.++{-+This program translates a protocol expressed in Alice and Bob notation+into defprotocol syntax.  It translates defprot forms, and passes all+else through unchanged.  The syntax of a defprot form is:++PROT       ::= (defprot NAME ALGEBRA (vars DECLS) NOTATION* RULE* PROT-ALIST)+NOTATION   ::= (msg ROLE ROLE CHMSG)+            |  (msg ROLE ROLE CHMSG CHMSG)+            |  (from ROLE CHMSG)+            |  (to ROLE CHMSG)+            |  (clone ROLE ROLE)+            |  (assume ROLE ASSUMPTION*)+CHMSG      ::= (chmsg CHAN TERM) | (chmsg TERM) | TERM+ASSUMPTION ::= (uniq-orig ...) | (non-orig ...) | ...+RULE       ::= (defrule ...)++The form (msg A B M) says role A sends M, and role B receives M.+The form (msg A B M N) says role A sends M, and role B receives N.+The form (from A M) says role A sends M.+The form (to A M) says role A receives M.+The form (clone A B) says make role B have the same messages as A up+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+import System.IO+import System.Console.GetOpt+import Control.Monad (foldM)+import CPSA.Lib.SExpr+import CPSA.Lib.Printer (pp)+import CPSA.Lib.Entry+import CPSA.Lib.Expand (readSExprs, expand)++-- Runtime parameters++data Params = Params+    { file :: Maybe FilePath,   -- Nothing specifies standard output+      margin :: Int,            -- Output line length+      doExpand :: Bool}         -- Expand macros first?+    deriving Show++defaultIndent :: Int+defaultIndent = optIndent defaultOptions++defaultMargin :: Int+defaultMargin = optMargin defaultOptions++main :: IO ()+main =+    do+      (p, params) <- start options interp+      sexprs <- readSExprs p+      -- Could expand macros here+      sexprs <- tryAbort (maybeExpand (doExpand params) sexprs)+      sexprs <- tryAbort (mapM translate sexprs)+      h <- outputHandle $ file params+      mapM_ (display (margin params) h) sexprs+      hClose h++maybeExpand :: Bool -> [SExpr Pos] -> IO [SExpr Pos]+maybeExpand False sexprs = return sexprs+maybeExpand True sexprs = expand sexprs++tryAbort :: IO a -> IO a+tryAbort x =+  do+    a <- tryIO x+    case a of+      Left err -> abort err+      Right a -> return a++display :: Int -> Handle -> SExpr a -> IO ()+display margin h x =+  do+    hPutStrLn h $ pp margin defaultIndent x+    hPutStrLn h ""++-- Command line option flags+data Flag+    = Help                      -- Help+    | Info                      -- Version information+    | Margin String             -- Output line length+    | Output String             -- Output file name+    | Expand                    -- Expand macros+      deriving Show++options :: [OptDescr Flag]+options =+    [ Option ['o'] ["output"]   (ReqArg Output "FILE") "output FILE",+      Option ['m'] ["margin"]   (ReqArg Margin "INT")+      ("set output margin (default " ++ show defaultMargin ++ ")"),+      Option ['e'] ["expand"]   (NoArg Expand)         "expand macros first",+      Option ['h'] ["help"]     (NoArg Help)           "show help message",+      Option ['v'] ["version"]  (NoArg Info)           "show version number"]++-- Interpret option flags+interp :: [Flag] -> IO Params+interp flags =+    loop flags (Params { file = Nothing, -- By default, no output file+                         margin = defaultMargin, doExpand = False})+    where+      loop [] params = return params+      loop (Expand : flags) params =+              loop flags $ params { doExpand = True }+      loop (Output name : flags) params+          | file params == Nothing =+              loop flags $ params { file = Just name }+      loop (Margin value : flags) params =+          case readDec value of+            [(margin, "")] ->+                loop flags $ params { margin = margin }+            _ ->+                do+                  msg <- usage options ["Bad value for margin\n"]+                  abort msg+      loop (Info : _) _ =+          success cpsaVersion+      loop (Help : _) _ =+          do                    -- Show help then exit with success+            msg <- usage options []+            success msg+      loop _ _ =+           do                   -- Show help then exit with failure+             msg <- usage options ["Bad option combination\n"]+             abort msg++-- Translate one S-expression+translate :: MonadFail m => SExpr Pos -> m (SExpr ())+translate (L pos (S _ "defprot" : xs)) =+  prot pos xs+translate x = return $ strip x++strip :: SExpr a -> SExpr ()+strip (S _ s) = S () s+strip (Q _ s) = Q () s+strip (N _ n) = N () n+strip (L _ l) = L () (map strip l)++prot :: MonadFail m => Pos -> [SExpr Pos] -> m (SExpr ())+prot _ (S _ name : S _ alg : L _ (S _ "vars" : vs) : body) =+  do+    let vars = L () (S () "vars" : map strip vs)+    rs <- roles vars body+    return+      (L () (S () "defprotocol" : S () name :+             S () alg : rs ++ filter scrub (map strip body)))+prot p _ = fail (shows p "Malformed defprot")++roles :: MonadFail m => SExpr () -> [SExpr Pos] -> m [SExpr ()]+roles vars body =+  do+    env <- foldM msg [] body+    assumes <- foldM assume [] body+    return $ map (makeRole vars assumes) env++makeRole :: SExpr () -> Env -> (String, [SExpr ()]) -> SExpr ()+makeRole vars assumes (name, trace) =+  L () (S () "defrole" : S () name : vars :+        L () (S () "trace" : reverse trace) :+        case lookup name assumes of+          Nothing -> []+          Just xs -> reverse xs)++type Env = [(String, [SExpr ()])]++msg :: MonadFail m => Env -> SExpr Pos -> m Env+msg env (L _ [S _ "msg", S _ from, S _ to, term]) =+  return (update to (L () (S () "recv" : chmsg term))+          (update from (L () (S () "send" : chmsg term)) env))+msg env (L _ [S _ "msg", S _ from, S _ to, fromTerm, toTerm]) =+  return (update to (L () (S () "recv" : chmsg toTerm))+          (update from (L () (S () "send" : chmsg fromTerm)) env))+msg _ (L p (S _ "msg" : _)) =+  fail (shows p "Malformed msg")+msg env (L _ [S _ "from", S _ from, term]) =+  return (update from (L () (S () "send" : chmsg term)) env)+msg _ (L p (S _ "from" : _)) =+  fail (shows p "Malformed from")+msg env (L _ [S _ "init", S _ from, term]) =+  return (update from (L () (S () "init" : chmsg term)) env)+msg _ (L p (S _ "init" : _)) =+  fail (shows p "Malformed init")+msg env (L _ [S _ "obsv", S _ from, term]) =+  return (update from (L () (S () "obsv" : chmsg term)) env)+msg _ (L p (S _ "obsv" : _)) =+  fail (shows p "Malformed obsv")+msg env (L _ [S _ "tran", S _ from, term1, term2]) =+  return (update from (L () (S () "tran" : [strip term1, strip term2])) env)+msg _ (L p (S _ "tran" : _)) =+  fail (shows p "Malformed tran")+msg env (L _ [S _ "to", S _ to, term]) =+  return (update to (L () (S () "recv" : chmsg term)) env)+msg _ (L p (S _ "to" : _)) =+  fail (shows p "Malformed to")+msg env (L _ [S _ "clone", S p1 from, S p2 to]) =+  case lookup to env of+    Just _ -> fail (shows p2 ("Role " ++ to ++ " already defined"))+    Nothing ->+      case lookup from env of+        Nothing -> fail (shows p1 ("Role " ++ from ++ " not defined yet"))+        Just trace -> return $ (to, trace) : env+msg _ (L p (S _ "clone" : _)) =+  fail (shows p "Malformed clone")+msg env _ = return env++chmsg :: SExpr a -> [SExpr ()]+chmsg (L _ [S _ "chmsg", S _ chan, term]) =+  [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])]+update role msg ((name, trace) : rest)+  | role == name = (name, msg : trace) : rest+  | otherwise = (name, trace) : update role msg rest++assume :: MonadFail m => Env -> SExpr Pos -> m Env+assume env (L _ (S _ "assume" : S _ role : xs)) =+  return $ augment role (map strip xs) env+assume _ (L p (S _ "assume" : _)) =+  fail (shows p "Malformed assume")+assume env _ = return env++augment :: String -> [SExpr ()] -> Env -> Env+augment role assumes [] = [(role, reverse assumes)]+augment role assumes ((name, a) : rest)+  | role == name = (name, reverse assumes ++ a) : rest+  | otherwise = (name, a) : augment role assumes rest++scrub :: SExpr () -> Bool+scrub (L () (S () "msg" : _)) = False+scrub (L () (S () "from" : _)) = False+scrub (L () (S () "to" : _)) = False+scrub (L () (S () "clone" : _)) = False+scrub (L () (S () "assume" : _)) = False+scrub (L () (S () "init" : _)) = False+scrub (L () (S () "obsv" : _)) = False+scrub (L () (S () "tran" : _)) = False+scrub _ = True
src/CPSA/SAS/SAS.hs view
@@ -267,6 +267,7 @@       leadsto :: [((t, Int), (t, Int))],       nons :: [t],       pnons :: [t],+      ugens :: [t],       uniqs :: [t],       origs :: [(t, (t, Int))],       -- ugen, ugenAt missing!@@ -286,6 +287,7 @@       leadsto <- loadOrderings heights (assoc leadstoKey xs)       nons <- loadBaseTerms kvars (assoc nonOrigKey xs)       pnons <- loadBaseTerms kvars (assoc pnonOrigKey xs)+      ugens <- loadBaseTerms kvars (assoc ugenOrigKey xs)       uniqs <- loadBaseTerms kvars (assoc uniqOrigKey xs)       origs <- loadOrigs kvars heights (assoc origsKey xs)       (gen, varmap) <- makeVarmap pos gen [0..(length insts)-1]@@ -302,6 +304,7 @@                         leadsto = map f leadsto,                         nons = nons,                         pnons = pnons,+                        ugens = ugens,                         uniqs = uniqs,                         origs = map g origs,                         facts = facts,@@ -546,6 +549,10 @@ pnonOrigKey :: String pnonOrigKey = "pen-non-orig" +-- The key used in preskeletons for penetrator non-originating atoms+ugenOrigKey :: String+ugenOrigKey = "uniq-gen"+ -- The key used in preskeletons for uniquely originating atoms uniqOrigKey :: String uniqOrigKey = "uniq-orig"@@ -636,6 +643,7 @@       leadsto = mapPair (instantiate env) (leadsto k),       nons = map (instantiate env) (nons k),       pnons = map (instantiate env) (pnons k),+      ugens = map (instantiate env) (ugens k),       uniqs = map (instantiate env) (uniqs k),       origs = mapOrig (instantiate env) (origs k),       facts = mapFact (instantiate env) (facts k),@@ -685,6 +693,7 @@    map (leadsToForm kctx) (leadsto k) ++    map (unary "non" kctx) (nons k) ++    map (unary "pnon" kctx) (pnons k) +++   map (unary "ugen" kctx) (ugens k) ++    -- Not possible map (unary "uniq" kctx) (noOrigUniqs k) ++    map (uniqAtForm kctx) (origs k) ++    map (factForm kctx) (facts k))
src/ocaml/cpsa.mllib view
@@ -1,5 +1,5 @@ Sexpr_type-Reader+Token Scanner Sexpr Main
src/ocaml/cpsa.mltop view
@@ -1,4 +1,4 @@ Sexpr_type-Reader+Token Scanner Sexpr
src/ocaml/cpsa.odocl view
@@ -1,3 +1,2 @@ Sexpr-Reader Main
src/ocaml/expand.ml view
@@ -2,7 +2,6 @@  open Lexing open Sexpr-open Reader open Main  (* The macro expand loop limit *)
src/ocaml/main.mli view
@@ -18,7 +18,7 @@  Function [f] is invoked in a context that catches {!exception:Failure} exceptions, prints the failure message to standard error, and then-exits with error code 1.  Function {!val:Reader.failwith_msg} raises+exits with error code 1.  Function {!val:Sexpr.failwith_msg} raises {!exception:Failure} exceptions after adding position information to an error message. *) val main : (out_channel -> Lexing.position Sexpr.sexpr list -> unit) -> unit
− src/ocaml/reader.ml
@@ -1,58 +0,0 @@-open Sexpr_type-open Lexing--type token =-  | SYM of string-  | STR of string-  | NUM of int-  | LPAR-  | RPAR-  | EOF--let error_msg pos msg =-  Printf.sprintf "%s:%d:%d: %s\n" pos.pos_fname pos.pos_lnum-    (pos.pos_cnum - pos.pos_bol + 1) msg--let failwith_msg pos msg =-  failwith (error_msg pos msg)--let parse_err = failwith_msg--let rec parse_list lexfun lexbuf lpos list =-  let tok = lexfun lexbuf in-  let pos = lexeme_start_p lexbuf in-  match tok with-  | SYM s -> parse_list lexfun lexbuf lpos (S (pos, s) :: list)-  | STR s -> parse_list lexfun lexbuf lpos (Q (pos, s) :: list)-  | NUM n -> parse_list lexfun lexbuf lpos (N (pos, n) :: list)-  | LPAR ->-      let x = parse_list lexfun lexbuf pos [] in-      parse_list lexfun lexbuf lpos (x :: list)-  | RPAR -> L (lpos, List.rev list)-  | EOF -> parse_err pos "End of file in list"--let top lexfun lexbuf =-  let tok = lexfun lexbuf in-  let pos = lexeme_start_p lexbuf in-  match tok with-  | SYM s -> S (pos, s)-  | STR s -> Q (pos, s)-  | NUM n -> N (pos, n)-  | LPAR -> parse_list lexfun lexbuf pos []-  | RPAR -> parse_err pos "Unmatched right parenthesis"-  | EOF -> raise End_of_file--let one lexfun lexbuf =-  let tok = lexfun lexbuf in-  let pos = lexeme_start_p lexbuf in-  let x =-    match tok with-    | SYM s -> S (pos, s)-    | STR s -> Q (pos, s)-    | NUM n -> N (pos, n)-    | LPAR -> parse_list lexfun lexbuf pos []-    | RPAR -> parse_err pos "Unmatched right parenthesis"-    | EOF -> parse_err pos "Nothing in string" in-  match lexfun lexbuf with-  | EOF -> x-  | _ -> parse_err (lexeme_start_p lexbuf) "Trailing garbage in string"
− src/ocaml/reader.mli
@@ -1,24 +0,0 @@-(** Operations on positions produced by {!val:Sexpr.read_sexpr} *)--open Sexpr_type-open Lexing--(**/**)--type token = SYM of string | STR of string | NUM of int | LPAR | RPAR | EOF--(**/**)--(** Add position information to a message. *)-val error_msg : position -> string -> string--(** Add position information to a message and fail.-    @raise Failure always *)-val failwith_msg : position -> string -> 'a--(**/**)--val parse_err : position -> string -> 'a--val top : (lexbuf -> token) -> lexbuf -> position sexpr-val one : (lexbuf -> token) -> lexbuf -> position sexpr
src/ocaml/scanner.mll view
@@ -1,9 +1,9 @@ {-open Reader open Lexing+open Token  let parse_error pos =-  parse_err pos "Bad token"+  failwith_msg pos "Bad token" } let special = ['*' '/' '<' '=' '>' '!' '?' ':' '$' '%' '_' '&' '~' '^'] let start = ['a' - 'z' 'A' - 'Z'] | special
src/ocaml/sexpr.ml view
@@ -1,6 +1,7 @@-include Sexpr_type open Lexing open Format+open Token+include Sexpr_type  let annotation = function   | S (a, _) -> a@@ -13,12 +14,57 @@   lexbuf.lex_curr_p <- { lexbuf.lex_curr_p with pos_fname = fname };   lexbuf +let error_msg = error_msg++let failwith_msg = failwith_msg++let parse_err = failwith_msg++let rec parse_list lexfun lexbuf lpos list =+  let tok = lexfun lexbuf in+  let pos = lexeme_start_p lexbuf in+  match tok with+  | SYM s -> parse_list lexfun lexbuf lpos (S (pos, s) :: list)+  | STR s -> parse_list lexfun lexbuf lpos (Q (pos, s) :: list)+  | NUM n -> parse_list lexfun lexbuf lpos (N (pos, n) :: list)+  | LPAR ->+      let x = parse_list lexfun lexbuf pos [] in+      parse_list lexfun lexbuf lpos (x :: list)+  | RPAR -> L (lpos, List.rev list)+  | EOF -> parse_err pos "End of file in list"++let top lexfun lexbuf =+  let tok = lexfun lexbuf in+  let pos = lexeme_start_p lexbuf in+  match tok with+  | SYM s -> S (pos, s)+  | STR s -> Q (pos, s)+  | NUM n -> N (pos, n)+  | LPAR -> parse_list lexfun lexbuf pos []+  | RPAR -> parse_err pos "Unmatched right parenthesis"+  | EOF -> raise End_of_file++let one lexfun lexbuf =+  let tok = lexfun lexbuf in+  let pos = lexeme_start_p lexbuf in+  let x =+    match tok with+    | SYM s -> S (pos, s)+    | STR s -> Q (pos, s)+    | NUM n -> N (pos, n)+    | LPAR -> parse_list lexfun lexbuf pos []+    | RPAR -> parse_err pos "Unmatched right parenthesis"+    | EOF -> parse_err pos "Nothing in string" in+  match lexfun lexbuf with+  | EOF -> x+  | _ -> parse_err (lexeme_start_p lexbuf) "Trailing garbage in string"+ let read_sexpr lexbuf =-  Reader.top Scanner.token lexbuf+  top Scanner.token lexbuf  let read_sexpr_from_string ch =   let lexbuf = Lexing.from_string ch in-  Reader.one Scanner.token lexbuf+  one Scanner.token lexbuf  let rec sexpr_printer f x =   match x with
src/ocaml/sexpr.mli view
@@ -40,8 +40,7 @@ val read_lexbuf : string -> in_channel -> lexbuf  (** Read an S-expression from a file annotated with the position of-    the datum in the file.  See module {!module:Reader} for functions-    that use positions to construct informative error messages.+    the datum in the file.      @raise End_of_file on end of file     @raise Failure on malformed input *)@@ -50,6 +49,13 @@ (** Read an S-expression from a string annotated with the position of     the datum in the string. *) val read_sexpr_from_string : string -> position sexpr++(** Add position information to a message. *)+val error_msg : position -> string -> string++(** Add position information to a message and fail.+    @raise Failure always *)+val failwith_msg : position -> string -> 'a  (** {1 Output} *) 
+ src/ocaml/token.ml view
@@ -0,0 +1,16 @@+open Lexing++type token =+  | SYM of string+  | STR of string+  | NUM of int+  | LPAR+  | RPAR+  | EOF++let error_msg pos msg =+  Printf.sprintf "%s:%d:%d: %s\n" pos.pos_fname pos.pos_lnum+    (pos.pos_cnum - pos.pos_bol + 1) msg++let failwith_msg pos msg =+  failwith (error_msg pos msg)
+ src/ocaml/token.mli view
@@ -0,0 +1,16 @@+(** Operations on positions produced by {!val:Sexpr.read_sexpr} *)++open Lexing++(**/**)++type token = SYM of string | STR of string | NUM of int | LPAR | RPAR | EOF++(**/**)++(** Add position information to a message. *)+val error_msg : position -> string -> string++(** Add position information to a message and fail.+    @raise Failure always *)+val failwith_msg : position -> string -> 'a
tst/Makefile view
@@ -1,53 +1,13 @@-# When the binary changes, run the test suite, and look for changes in-# the output.  The changes are not fatal errors, but for a *.scm input-# file, an error produced by the binary is fatal.--TSTS	:= $(patsubst %.scm,%.txt,$(wildcard *.scm)) \-		$(patsubst %.lsp,%.txt,$(wildcard *.lsp))-CPSA	= ../dist/build/cpsa/cpsa$(EXE)-DIFF	= ../dist/build/cpsadiff/cpsadiff$(EXE)-SHAPES	= ../dist/build/cpsashapes/cpsashapes$(EXE)-SAS	= ../dist/build/cpsasas/cpsasas$(EXE)-ANNOTATIONS = ../dist/build/cpsaannotations/cpsaannotations$(EXE)-GRAPH	= ../dist/build/cpsagraph/cpsagraph$(EXE)-CPSAFLAGS = +RTS -M512m -N8 -RTS--# The expected answers are in files with the .tst extension.--# Analyze protocols for shapes expecting success-%.txt:	%.scm $(CPSA)-	time $(CPSA) $(CPSAFLAGS) -o $@ $*.scm-	-$(DIFF) $(DIFFFLAGS) $*.tst $*.txt--# Analyze protocols for shapes expecting failure-%.txt:	%.lsp $(CPSA)-	-time $(CPSA) $(CPSAFLAGS) -o $@ $*.lsp-	-$(DIFF) $(DIFFFLAGS) $*.tst $*.txt--# Extract shapes-%_shapes.txt:	%.txt-	$(SHAPES) $(SHAPESFLAGS) -o $@ $<--# Extract shape analysis sentences-%_sas.text:	%.txt-	$(SAS) $(SASFLAGS) -o $@ $<--# Annotate shapes-%_annotations.txt:	%_shapes.txt-	$(ANNOTATIONS) $(ANNOTATIONSFLAGS) -o $@ $<--# Visualize output-%.svg:		%.txt-	$(GRAPH) -c -o $@ $<+CPSAFLAGS = +RTS -M512m -N -RTS+CPSATIME = time -# Visualize output using the expanded format-%.xhtml:	%.txt-	$(GRAPH) $(GRAPHFLAGS) -o $@ $<+SRCS := $(wildcard *.scm) $(wildcard *.prot) $(wildcard *.lsp) -.PRECIOUS:	%.txt %_shapes.txt %_annotations.txt+include ../doc/cpsa.mk -all:	$(patsubst %.txt,%.xhtml,$(TSTS)) \-		$(patsubst %.txt,%_shapes.xhtml,$(TSTS))+all:	$(SRCS:%.scm=%_shapes.xhtml) $(SRCS:%.scm=%.xhtml) \+	$(SRCS:%.prot=%_shapes.xhtml) $(SRCS:%.prot=%.xhtml) \+	$(SRCS:%.lsp=%_shapes.xhtml) $(SRCS:%.lsp=%.xhtml)  clean: 	-rm *.txt *.xhtml
tst/aik.tst view
@@ -1,7 +1,7 @@ (herald "Anonymous identity protocol from TCG") -(comment "CPSA 3.6.5")-(comment "All input read from aik.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/aik.scm")  (defprotocol aikprot basic   (defrole ca
tst/attest.tst view
@@ -1,7 +1,7 @@ (herald attest-door) -(comment "CPSA 3.6.5")-(comment "All input read from attest.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/attest.scm")  (defprotocol attest-door basic   (defrole appraise
tst/axiom2.tst view
@@ -1,7 +1,7 @@ (herald "Axiom 2 Protocol" (bound 20)) -(comment "CPSA 3.6.5")-(comment "All input read from axiom2.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/axiom2.scm") (comment "Strand count bounded at 20")  (defprotocol ax2 basic
tst/blanchet.tst view
@@ -1,8 +1,8 @@ (herald "Blanchet's Simple Example Protocol"   (comment "There is a flaw in this protocol by design")) -(comment "CPSA 3.6.5")-(comment "All input read from blanchet.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/blanchet.scm")  (defprotocol blanchet basic   (defrole init
+ tst/blanchet_doorsep.prot view
@@ -0,0 +1,45 @@+(defprot blanchet basic+  (vars (a b akey) (s skey) (d data))+  (msg init resp (enc (enc s (invk a)) b))+  (msg resp init (enc d s))+  (assume init (uniq-orig s))+  (assume resp (uniq_orig d))+  (comment "Blanchet's protocol"))++(defskeleton blanchet+  (vars (a b akey) (s skey) (d data))+  (defstrand init 2 (a a) (b b) (s s) (d d))+  (non-orig (invk b))+  (comment "Analyze from the initiator's perspective"))++(defprot doorsep basic+  (vars (p d akey) (k skey) (t text))+  (msg person door (enc (enc k (invk p)) d))+  (msg door person (enc t k))+  (msg person door t)+  (assume person (uniq-orig k))+  (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/blanchet_doorsep.tst view
@@ -0,0 +1,224 @@+(comment "CPSA 3.6.5")+(comment "All input read from blanchet_doorsep.scm")++(defprotocol blanchet basic+  (defrole init+    (vars (a b akey) (s skey) (d data))+    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))+    (uniq-orig s))+  (defrole resp+    (vars (a b akey) (s skey) (d data))+    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))+    (uniq_orig d))+  (comment "Blanchet's protocol"))++(defskeleton blanchet+  (vars (d data) (s skey) (a b akey))+  (defstrand init 2 (d d) (s s) (a a) (b b))+  (non-orig (invk b))+  (uniq-orig s)+  (comment "Analyze from the initiator's perspective")+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s))))+  (label 0)+  (unrealized (0 1))+  (origs (s (0 0)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton blanchet+  (vars (d data) (s skey) (a b a-0 b-0 akey))+  (defstrand init 2 (d d) (s s) (a a) (b b))+  (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (invk b))+  (uniq-orig s)+  (operation encryption-test (added-strand resp 2) (enc d s) (0 1))+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))+    ((recv (enc (enc s (invk a-0)) b-0)) (send (enc d s))))+  (label 1)+  (parent 0)+  (unrealized (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton blanchet+  (vars (d data) (s skey) (a b akey))+  (defstrand init 2 (d d) (s s) (a a) (b b))+  (deflistener s)+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (invk b))+  (uniq-orig s)+  (operation encryption-test (added-listener s) (enc d s) (0 1))+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))+    ((recv s) (send s)))+  (label 2)+  (parent 0)+  (unrealized (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton blanchet+  (vars (d data) (s skey) (a b akey))+  (defstrand init 2 (d d) (s s) (a a) (b b))+  (defstrand resp 2 (d d) (s s) (a a) (b b))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (invk b))+  (uniq-orig s)+  (operation nonce-test (contracted (a-0 a) (b-0 b)) s (1 0)+    (enc (enc s (invk a)) b))+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))+    ((recv (enc (enc s (invk a)) b)) (send (enc d s))))+  (label 3)+  (parent 1)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b) (s s) (d d))))+  (origs (s (0 0))))++(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)+  (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 4)+  (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 5)+  (parent 4)+  (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 6)+  (parent 5)+  (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 7)+  (parent 6)+  (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 8)+  (parent 6)+  (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 9)+  (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 10)+  (parent 9)+  (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/bltk_test.tst view
@@ -1,7 +1,7 @@ (herald "bltk Test File" (algebra diffie-hellman) (bound 12)) -(comment "CPSA 3.6.5")-(comment "All input read from bltk_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/bltk_test.scm")  (defprotocol test diffie-hellman   (defrole r
tst/comp_test.tst view
@@ -1,7 +1,7 @@ (herald "Main Example") -(comment "CPSA 3.6.5")-(comment "All input read from comp_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/comp_test.scm")  (defprotocol main-ex-src basic   (defrole qn
tst/dh-ca.tst view
@@ -1,7 +1,7 @@ (herald dhca (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from dh-ca.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/dh-ca.scm")  (defprotocol dhca diffie-hellman   (defrole init
tst/dh_mim.tst view
@@ -1,8 +1,8 @@ (herald "Diffie-Hellman protocol, man-in-the-middle attack"   (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from dh_mim.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/dh_mim.scm")  (defprotocol dh_mim diffie-hellman   (defrole init
tst/dh_mim2.tst view
@@ -1,8 +1,8 @@ (herald "Diffie-Hellman protocol, man-in-the-middle attack"   (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from dh_mim2.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/dh_mim2.scm")  (defprotocol dh_mim diffie-hellman   (defrole init
tst/dh_sig.tst view
@@ -1,7 +1,7 @@ (herald "Signed DH exchange" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from dh_sig.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/dh_sig.scm")  (defprotocol dh_sig diffie-hellman   (defrole init
tst/dh_test.tst view
@@ -1,8 +1,8 @@ (herald "Diffie-Hellman protocol, man-in-the-middle attack"   (algebra diffie-hellman) (bound 20)) -(comment "CPSA 3.6.5")-(comment "All input read from dh_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/dh_test.scm") (comment "Strand count bounded at 20")  (defprotocol foo3 diffie-hellman
tst/dhnsl_basic.tst view
@@ -1,8 +1,8 @@ (herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol"   (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from dhnsl_basic.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/dhnsl_basic.scm")  (defprotocol dhnsl diffie-hellman   (defrole resp
tst/dhnsl_use.tst view
@@ -1,8 +1,8 @@ (herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol"   (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from dhnsl_use.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/dhnsl_use.scm")  (defprotocol dhnsl diffie-hellman   (defrole resp
tst/enrich.tst view
@@ -1,7 +1,7 @@ (herald enrich) -(comment "CPSA 3.6.5")-(comment "All input read from enrich.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/enrich.scm")  (defprotocol enrich basic   (defrole extend
tst/envelope.scm view
@@ -61,7 +61,8 @@ 				tne tno "false")))      (tran state (extend value state)))     (uniq-orig tne)-    (non-orig (invk tpmkey)))+    ;; (non-orig (invk tpmkey))  ; JDG:  This assumption irrelevant +    )    ;; 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@@ -113,10 +114,16 @@      (send (enc v k)))     (uniq-orig n v tno esk)     (neq (tno n))-    (non-orig aik esk1 (invk tpmkey))))+    (non-orig aik esk1 (invk tpmkey)	; JDG:  This assumption important +	      )))  ;;; Initial skeleton (defskeleton envelope+  (vars (v n data) (esk skey) (k aik tpmkey akey) (pcr mesg))+  (deflistener esk)+  (defstrand alice 7 (esk esk) (n n) (pcr pcr) (v v) (k k) (aik aik)))++(defskeleton envelope   (vars (v n data) (k aik akey) (pcr mesg))   (deflistener (refuse n pcr v k aik))   (deflistener v)@@ -126,3 +133,9 @@   (vars (v data))   (deflistener v)   (defstrand alice 7 (v v)))++(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)))
tst/envelope.tst view
@@ -1,7792 +1,10570 @@ (herald "Envelope Protocol" (bound 20)) -(comment "CPSA 3.6.5")-(comment "All input read from envelope.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)+(comment "CPSA 3.6.6")+(comment "All input read from tst/envelope.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)))+    (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) (esk esk1 skey)+    (k aik tpmkey akey))+  (deflistener esk)+  (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 esk) (send esk))+    ((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 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) (esk esk1 skey)+    (k aik tpmkey akey))+  (deflistener esk)+  (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 0) (0 0)))+  (neq (tno n))+  (non-orig esk1 aik (invk tpmkey))+  (uniq-orig v n tno esk)+  (traces ((recv esk) (send esk))+    ((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) (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) (esk esk1 skey)+    (k aik tpmkey aik-0 akey))+  (deflistener esk)+  (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 0) (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 esk) (send esk))+    ((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) (2 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (pcr mesg) (v n tne tno data) (esk esk1 esk-0 skey)+    (k aik tpmkey akey))+  (deflistener esk)+  (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 0) (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 esk) (send esk))+    ((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) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (pcr nonce mesg) (v n tne tno data) (esk esk1 esk-0 skey)+    (k aik tpmkey aik-0 akey))+  (deflistener esk)+  (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 0) (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 esk) (send esk))+    ((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) (3 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (pcr mesg) (v n tne tno data) (esk esk1 skey)+    (k aik tpmkey akey))+  (deflistener esk)+  (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 0) (0 0)) ((1 4) (2 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 esk) (send esk))+    ((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))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (pcr nonce mesg) (v n tne tno data) (esk esk1 skey)+    (k aik tpmkey aik-0 akey))+  (deflistener esk)+  (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 esk) (aik aik-0))+  (precedes ((1 0) (3 1)) ((1 4) (2 0)) ((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) esk (0 0)+    (enc esk tpmkey))+  (traces ((recv esk) (send esk))+    ((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 esk)+      (send (enc "quote" esk nonce aik-0))))+  (label 6)+  (parent 5)+  (unrealized (3 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (pcr pcr-0 mesg) (v n tne tno data) (esk esk1 skey)+    (k aik tpmkey aik-0 akey))+  (deflistener esk)+  (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 esk) (pcr pcr-0) (k tpmkey) (aik aik-0))+  (precedes ((1 0) (3 0)) ((1 4) (2 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) esk (0 0)+    (enc esk tpmkey))+  (traces ((recv esk) (send esk))+    ((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 esk tpmkey)))+      (recv (enc "created" tpmkey pcr-0 aik-0)) (obsv pcr-0)+      (send esk)))+  (label 7)+  (parent 5)+  (unrealized (3 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk esk1 skey)+    (k aik tpmkey aik-0 aik-1 akey))+  (deflistener esk)+  (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 esk) (pcr pcr-0) (k tpmkey) (aik aik-0))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "created" tpmkey pcr-0 aik-0)) (aik aik-1))+  (precedes ((1 0) (3 0)) ((1 4) (2 0)) ((2 1) (1 5)) ((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" tpmkey pcr-0 aik-0) (3 1))+  (traces ((recv esk) (send esk))+    ((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 esk tpmkey)))+      (recv (enc "created" tpmkey pcr-0 aik-0)) (obsv pcr-0) (send esk))+    ((recv (cat "quote" nonce))+      (obsv (enc "created" tpmkey pcr-0 aik-0))+      (send+        (enc "quote" (enc "created" tpmkey pcr-0 aik-0) nonce aik-1))))+  (label 8)+  (parent 7)+  (unrealized (4 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)))+    (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 9)+  (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 10)+  (parent 9)+  (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 11)+  (parent 10)+  (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 12)+  (parent 10)+  (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 13)+  (parent 12)+  (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 14)+  (parent 12)+  (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 15)+  (parent 14)+  (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 16)+  (parent 14)+  (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 17)+  (parent 16)+  (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 18)+  (parent 16)+  (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))+  (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 19)+  (parent 18)+  (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))+  (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 20)+  (parent 19)+  (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))+  (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 21)+  (parent 20)+  (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))+  (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 22)+  (parent 20)+  (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))+  (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 23)+  (parent 20)+  (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))+  (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 24)+  (parent 21)+  (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))+  (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 25)+  (parent 22)+  (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))+  (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 26)+  (parent 22)+  (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))+  (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 27)+  (parent 22)+  (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))+  (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 28)+  (parent 23)+  (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))+  (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 29)+  (parent 23)+  (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))+  (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 30)+  (parent 25)+  (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))+  (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 31)+  (parent 25)+  (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))+  (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 32)+  (parent 27)+  (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))+  (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 33)+  (parent 28)+  (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))+  (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 34)+  (parent 29)+  (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))+  (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 35)+  (parent 29)+  (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))+  (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 36)+  (parent 30)+  (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))+  (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 37)+  (parent 33)+  (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))+  (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 38)+  (parent 34)+  (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))+  (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 39)+  (parent 35)+  (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))+  (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 40)+  (parent 35)+  (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))+  (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 41)+  (parent 35)+  (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))+  (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 42)+  (parent 36)+  (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))+  (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 43)+  (parent 39)+  (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))+  (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 44)+  (parent 39)+  (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))+  (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 45)+  (parent 41)+  (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))+  (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 46)+  (parent 41)+  (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))+  (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 47)+  (parent 42)+  (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))+  (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 48)+  (parent 42)+  (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))+  (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 49)+  (parent 44)+  (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))+  (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 50)+  (parent 46)+  (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))+  (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 51)+  (parent 47)+  (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))+  (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 52)+  (parent 48)+  (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))+  (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 53)+  (parent 48)+  (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))+  (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 54)+  (parent 52)+  (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))+  (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 55)+  (parent 53)+  (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))+  (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 56)+  (parent 53)+  (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))+  (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 57)+  (parent 54)+  (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))+  (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 58)+  (parent 55)+  (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))+  (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 59)+  (parent 56)+  (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))+  (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 60)+  (parent 56)+  (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))+  (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 61)+  (parent 56)+  (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))+  (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 62)+  (parent 59)+  (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))+  (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 63)+  (parent 59)+  (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))+  (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 64)+  (parent 61)+  (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))+  (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 65)+  (parent 61)+  (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))+  (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 66)+  (parent 63)+  (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))+  (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 67)+  (parent 65)+  (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)))+    (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 68)+  (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 69)+  (parent 68)+  (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 70)+  (parent 69)+  (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 71)+  (parent 69)+  (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 72)+  (parent 71)+  (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 73)+  (parent 71)+  (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 74)+  (parent 73)+  (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 75)+  (parent 73)+  (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 76)+  (parent 75)+  (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 77)+  (parent 75)+  (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))+  (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 78)+  (parent 77)+  (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))+  (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 79)+  (parent 78)+  (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))+  (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 80)+  (parent 79)+  (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))+  (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 81)+  (parent 79)+  (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))+  (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 82)+  (parent 79)+  (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))+  (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 83)+  (parent 80)+  (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))+  (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 84)+  (parent 81)+  (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))+  (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 85)+  (parent 81)+  (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))+  (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 86)+  (parent 81)+  (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))+  (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 87)+  (parent 82)+  (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))+  (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 88)+  (parent 82)+  (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))+  (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 89)+  (parent 86)+  (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))+  (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 90)+  (parent 87)+  (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))+  (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 91)+  (parent 88)+  (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))+  (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 92)+  (parent 88)+  (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))+  (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 93)+  (parent 90)+  (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))+  (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 94)+  (parent 91)+  (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))+  (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 95)+  (parent 92)+  (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))+  (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 96)+  (parent 92)+  (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))+  (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 97)+  (parent 92)+  (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))+  (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 98)+  (parent 95)+  (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))+  (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 99)+  (parent 95)+  (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))+  (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 100)+  (parent 97)+  (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))+  (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 101)+  (parent 97)+  (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))+  (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 102)+  (parent 99)+  (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))+  (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 103)+  (parent 101)+  (unrealized (11 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)))+    (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))+  (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)))+    ((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 104)+  (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 (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (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 (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((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 105)+  (parent 104)+  (unrealized (0 0) (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 (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (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 (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((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 106)+  (parent 105)+  (unrealized (0 0) (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 (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (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 (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((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 107)+  (parent 105)+  (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 (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (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 (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((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 108)+  (parent 107)+  (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 (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (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 (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((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 109)+  (parent 107)+  (unrealized (0 0))+  (comment "2 in cohort - 2 not yet seen"))++(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))+  (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 (enc v k))+    (pcr (hash "refuse" (hash n pcr))) (aik aik))+  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 2) (0 0)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik) (0 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)))+    ((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" (enc v k))) (obsv (hash "refuse" (hash n pcr)))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))))+  (label 110)+  (parent 109)+  (unrealized (3 1))+  (comment "1 in cohort - 1 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))+  (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 (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+    (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 encryption-test (added-strand tpm-quote 3)+    (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik) (0 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)))+    ((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 (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send+        (enc "quote"+          (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik) nonce+          aik-0))))+  (label 111)+  (parent 109)+  (unrealized (3 1))+  (dead)+  (comment "empty cohort"))++(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))+  (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 (enc v k))+    (pcr (hash "refuse" (hash n pcr))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (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 2) (0 0))+    ((4 3) (3 1)))+  (leadsto ((4 3) (3 1)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey))+  (uniq-orig v n tno tne-0 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash "refuse" (hash n pcr)) (3 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)))+    ((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" (enc v k))) (obsv (hash "refuse" (hash n pcr)))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n pcr) (hash "refuse" (hash n pcr)))))+  (label 112)+  (parent 110)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 3) (4 3)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 113)+  (parent 112)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 3) (4 3)) ((6 2) (5 2)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 114)+  (parent 113)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))+    ((5 3) (4 3)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 115)+  (parent 113)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 116)+  (parent 113)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 1) (7 3)) ((5 3) (4 3))+    ((6 2) (5 2)) ((7 3) (6 1)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)) ((7 3) (6 1)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 117)+  (parent 114)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))+    ((5 3) (4 3)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 118)+  (parent 115)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((v v) (n n) (k k) (aik aik) (pcr state) (tne tne) (tno tno)+        (esk1 esk1) (esk esk) (tpmkey tpmkey))))+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))+    ((5 3) (4 3)) ((6 2) (5 0)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 119)+  (parent 115)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))+    ((5 3) (4 3)) ((6 3) (5 0)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 120)+  (parent 115)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)) ((7 2) (6 0)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 121)+  (parent 116)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)) ((7 1) (6 0)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 122)+  (parent 116)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))+    ((5 3) (4 3)) ((6 3) (5 0)) ((7 2) (6 1)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 123)+  (parent 120)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)) ((8 3) (7 1)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 124)+  (parent 121)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 125)+  (parent 122)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 126)+  (parent 122)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((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 1)) ((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))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 127)+  (parent 124)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((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 1)) ((5 3) (4 3)) ((9 3) (8 1)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 128)+  (parent 125)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0))+    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))+  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 129)+  (parent 126)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((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 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 130)+  (parent 126)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((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 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 131)+  (parent 126)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1))+    ((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 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 132)+  (parent 129)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1))+    ((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 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 133)+  (parent 129)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((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 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 134)+  (parent 131)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((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 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 135)+  (parent 131)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1))+    ((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 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+  (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 (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 136)+  (parent 133)+  (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+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (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-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-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 2) (0 0)) ((4 3) (3 1)) ((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 1)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+  (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)))+    ((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 "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-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "refuse" (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 137)+  (parent 135)   (unrealized (11 1))   (dead)   (comment "empty cohort"))
tst/ffgg.tst view
@@ -1,8 +1,8 @@ (herald "The ffgg Protocol"   (comment "From A Necessarily Parallel Attack by Jon K. Millen")) -(comment "CPSA 3.6.5")-(comment "All input read from ffgg.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/ffgg.scm")  (defprotocol ffgg basic   (defrole init
tst/fluffy_draft03_gske.tst view
@@ -3,8 +3,8 @@   (comment     "Based on the Internet-Draft: https://www.ietf.org/archive/id/draft-hardjono-ace-fluffy-03.txt")) -(comment "CPSA 3.6.5")-(comment "All input read from fluffy_draft03_gske.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/fluffy_draft03_gske.scm")  (defprotocol fluffy basic   (defrole sp
tst/fnof_or.tst view
@@ -2,8 +2,8 @@   (comment     "Version using variables of sort mesg, with ltk function emulated.")) -(comment "CPSA 3.6.5")-(comment "All input read from fnof_or.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/fnof_or.scm")  (defprotocol or basic   (defrole init
tst/fnof_test.tst view
@@ -1,8 +1,8 @@ (herald "Function constraint test protocol"   (comment "Skeletons 2, 4, and 7 should have no shapes.")) -(comment "CPSA 3.6.5")-(comment "All input read from fnof_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/fnof_test.scm")  (defprotocol fnoftest basic   (defrole init
tst/fnof_woolam.tst view
@@ -1,7 +1,7 @@ (herald "Woo-Lam Protocol, using fnof to emulate ltk function") -(comment "CPSA 3.6.5")-(comment "All input read from fnof_woolam.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/fnof_woolam.scm")  (defprotocol woolam basic   (defrole init
tst/fnof_yahalom.tst view
@@ -2,8 +2,8 @@   "Yahalom Protocol with Forwarding Removed, using fnof to emulate ltk function"   (bound 12)) -(comment "CPSA 3.6.5")-(comment "All input read from fnof_yahalom.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/fnof_yahalom.scm")  (defprotocol yahalom basic   (defrole init
tst/goals.tst view
@@ -1,7 +1,7 @@ (herald goals) -(comment "CPSA 3.6.5")-(comment "All input read from goals.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/goals.scm")  (defprotocol ns basic   (defrole init@@ -871,7 +871,7 @@   (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))   (non-orig (privk a) (privk b))   (uniq-orig n1 n1-0)-  (subgoals+  (goals     (forall ((n1 n1-0 n2 n2-0 text) (a b name) (z z-0 strd))       (implies         (and (p "init" z 3) (p "init" z-0 3) (p "init" "n1" z n1)@@ -1057,7 +1057,7 @@   (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))   (non-orig (privk a) (privk b))   (uniq-orig n1 n1-0)-  (subgoals+  (goals     (forall ((z z-0 strd))       (implies (and (p "init" z 3) (p "init" z-0 3)) (= z z-0))))   (comment "Double initiator point of view 2")
tst/iadh_um.tst view

file too large to diff

tst/injection.tst view
@@ -2,8 +2,8 @@   (comment "This protocol contains a man-in-the-middle"     "attack discovered by Galvin Lowe.")) -(comment "CPSA 3.6.5")-(comment "All input read from injection.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/injection.scm")  (defprotocol ns diffie-hellman   (defrole init
tst/kerb.tst view
@@ -1,5 +1,5 @@-(comment "CPSA 3.6.5")-(comment "All input read from kerb.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/kerb.scm")  (defprotocol kerb-flawed basic   (defrole init
tst/kerberos++.tst view
@@ -1,5 +1,5 @@-(comment "CPSA 3.6.5")-(comment "All input read from kerberos++.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/kerberos++.scm")  (defprotocol kerberos basic   (defrole client
tst/lt_test.tst view
@@ -2,8 +2,8 @@   (comment "First and third skeletons should have a shape,"     "second and fourth should be dead.")) -(comment "CPSA 3.6.5")-(comment "All input read from lt_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/lt_test.scm")  (defprotocol lttest basic   (defrole init
tst/neq_test.tst view
@@ -2,8 +2,8 @@   (comment "First skeleton should have a shape,"     "second, and hird should be dead.")) -(comment "CPSA 3.6.5")-(comment "All input read from neq_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/neq_test.scm")  (defprotocol neqtest basic   (defrole init
tst/ns.tst view
@@ -2,8 +2,8 @@   (comment "This protocol contains a man-in-the-middle"     "attack discovered by Galvin Lowe.")) -(comment "CPSA 3.6.5")-(comment "All input read from ns.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/ns.scm")  (defprotocol ns basic   (defrole init
tst/or.tst view
@@ -1,8 +1,8 @@ (herald "Otway-Rees Protocol"   (comment "Standard version using variables of sort mesg")) -(comment "CPSA 3.6.5")-(comment "All input read from or.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/or.scm")  (defprotocol or basic   (defrole init
tst/ordered.tst view
@@ -1,7 +1,7 @@ (herald ordered) -(comment "CPSA 3.6.5")-(comment "All input read from ordered.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/ordered.scm")  (defprotocol ordered basic   (defrole dec
tst/owang.tst view
@@ -1,5 +1,5 @@-(comment "CPSA 3.6.5")-(comment "All input read from owang.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/owang.scm")  (defprotocol wang basic   (defrole init1
tst/owat.tst view
@@ -1,8 +1,8 @@ (herald "One-way Authentication Test with bltk keys"   (algebra diffie-hellman) (bound 12)) -(comment "CPSA 3.6.5")-(comment "All input read from owat.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/owat.scm")  (defprotocol owa diffie-hellman   (defrole init
tst/pkinit.tst view
@@ -1,7 +1,7 @@ (herald "Kerberos PKINIT") -(comment "CPSA 3.6.5")-(comment "All input read from pkinit.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/pkinit.scm")  (defprotocol pkinit-flawed basic   (defrole client
tst/plaindh.tst view
@@ -1,8 +1,8 @@ (herald "Plain diffie-hellman protocol with challenge-response"   (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from plaindh.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/plaindh.scm")  (defprotocol plaindh diffie-hellman   (defrole init
tst/priority_test.tst view
@@ -1,7 +1,7 @@ (herald "Receive priority test protocol") -(comment "CPSA 3.6.5")-(comment "All input read from priority_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/priority_test.scm")  (defprotocol priority_test basic   (defrole init
tst/prottrans.tst view
@@ -1,7 +1,7 @@ (herald "Protocol Transformations With Rules") -(comment "CPSA 3.6.5")-(comment "All input read from prottrans.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/prottrans.scm")  (defprotocol ns basic   (defrole init
tst/reflect.tst view
@@ -1,7 +1,7 @@ (herald reflect) -(comment "CPSA 3.6.5")-(comment "All input read from reflect.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/reflect.scm")  (defprotocol reflect basic   (defrole init
tst/role_uniq.tst view
@@ -1,7 +1,7 @@ (herald "Role Unique Origination") -(comment "CPSA 3.6.5")-(comment "All input read from role_uniq.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/role_uniq.scm")  (defprotocol blanchet basic   (defrole init
tst/rule-order.tst view
@@ -1,7 +1,7 @@ (herald rule-order) -(comment "CPSA 3.6.5")-(comment "All input read from rule-order.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/rule-order.scm")  (defprotocol rule-order basic   (defrole init (vars (s t text)) (trace (send (cat s t))))
tst/staticdh.tst view
@@ -1,7 +1,7 @@ (herald "Static DH key exchange" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from staticdh.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/staticdh.scm")  (defprotocol staticdh1 diffie-hellman   (defrole init
tst/station.tst view
@@ -1,7 +1,7 @@ (herald "Station-to-station protocol" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from station.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/station.scm")  (defprotocol station-to-station diffie-hellman   (defrole init
tst/station2.tst view
@@ -1,7 +1,7 @@ (herald "Station-to-station protocol" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from station2.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/station2.scm")  (defprotocol station-to-station diffie-hellman   (defrole init
tst/subsort_test.tst view
@@ -2,8 +2,8 @@   (comment "First, third, and fourth skeletons should have a shape,"     "second should be dead.")) -(comment "CPSA 3.6.5")-(comment "All input read from subsort_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/subsort_test.scm")  (defprotocol subsorttest basic   (defrole init
tst/test_small.tst view
@@ -1,7 +1,7 @@ (herald "small test" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from test_small.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/test_small.scm")  (defprotocol test diffie-hellman   (defrole init
tst/trust-anchor.tst view
@@ -1,8 +1,8 @@ (herald trust-anchor   (comment "Tests rule application on initial skeleton")) -(comment "CPSA 3.6.5")-(comment "All input read from trust-anchor.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/trust-anchor.scm")  (defprotocol trust-anchor basic   (defrule trust-anchor-inverse-is-non
tst/unilateral.tst view
@@ -1,7 +1,7 @@ (herald unilateral) -(comment "CPSA 3.6.5")-(comment "All input read from unilateral.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/unilateral.scm")  (defprotocol unilateral basic   (defrole init
tst/uniq-gen-test.tst view
@@ -1,8 +1,8 @@ (herald "Unique generation test protocols."   (comment "Skeletons 2, 4, and 7 should have no shapes.")) -(comment "CPSA 3.6.5")-(comment "All input read from uniq-gen-test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/uniq-gen-test.scm")  (defprotocol uniqgentest basic   (defrole init
tst/woolam.tst view
@@ -1,7 +1,7 @@ (herald "Woo-Lam Protocol") -(comment "CPSA 3.6.5")-(comment "All input read from woolam.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/woolam.scm")  (defprotocol woolam basic   (defrole init
tst/wrap_decrypt.tst view
@@ -1,7 +1,7 @@ (herald wrap-decrypt (bound 10)) -(comment "CPSA 3.6.5")-(comment "All input read from wrap_decrypt.lsp")+(comment "CPSA 3.6.6")+(comment "All input read from tst/wrap_decrypt.lsp") (comment "Strand count bounded at 10")  (defprotocol wrap-decrypt basic
tst/yahalom.tst view
@@ -1,8 +1,8 @@ (herald "Yahalom Protocol with Forwarding Removed"   (algebra diffie-hellman) (bound 12)) -(comment "CPSA 3.6.5")-(comment "All input read from yahalom.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/yahalom.scm")  (defprotocol yahalom diffie-hellman   (defrole init