cpsa 3.3.2 → 3.4.0
raw patch · 153 files changed
+95514/−14627 lines, 153 filesnew-component:exe:cpsamatch
Files
- ChangeLog +89/−0
- NEWS +29/−0
- README.txt +33/−33
- cpsa.cabal +48/−60
- doc/Make.hs +8/−8
- doc/cpsa.mk +9/−9
- doc/cpsamanual.pdf binary
- doc/examples/blanchet.xhtml +2015/−2013
- doc/examples/bltk_or.xhtml +2/−2
- doc/examples/dh_mim.scm +40/−0
- doc/examples/dh_mim.xhtml too large to diff
- doc/examples/envelope.xhtml +3/−3
- doc/examples/ffgg.xhtml +447/−0
- doc/examples/fluffy_draft03_fixing_gske.scm +51/−0
- doc/examples/fluffy_draft03_gske.scm +50/−0
- doc/examples/fluffy_draft03_improving_pske.scm +47/−0
- doc/examples/fluffy_draft03_pske.scm +47/−0
- doc/examples/fnof_test.xhtml +658/−0
- doc/examples/fnof_yahalom.xhtml +2/−2
- doc/examples/goals.xhtml +25/−2
- doc/examples/iadh_um.scm +73/−0
- doc/examples/iadh_um.xhtml too large to diff
- doc/examples/kerb.xhtml +620/−620
- doc/examples/lt_test.xhtml +2/−2
- doc/examples/neq_test.xhtml +2/−2
- doc/examples/ns.xhtml +358/−358
- doc/examples/or.xhtml +785/−785
- doc/examples/pkinit.xhtml +2353/−2612
- doc/examples/plaindh.xhtml +25183/−457
- doc/examples/priority_test.xhtml +2/−2
- doc/examples/station.scm +48/−7
- doc/examples/station.xhtml +15231/−1480
- doc/examples/subsort_test.xhtml +409/−0
- doc/examples/woolam.xhtml +341/−0
- doc/examples/yahalom.xhtml +2/−2
- ghci +1/−1
- setup.bat +3/−8
- src/CPSA/Annotations/Annotations.hs +3/−1
- src/CPSA/Annotations/Formulas.hs +2/−2
- src/CPSA/Annotations/Main.hs +3/−2
- src/CPSA/Basic/Algebra.hs +108/−55
- src/CPSA/Diff/Main.hs +2/−1
- src/CPSA/DiffieHellman/Algebra.hs +367/−153
- src/CPSA/DiffieHellman/IntLinEq.hs +0/−197
- src/CPSA/Graph/Config.hs +3/−1
- src/CPSA/Graph/ExpandedView.hs +1/−1
- src/CPSA/Graph/LaTeXView.hs +2/−1
- src/CPSA/Graph/Layout.hs +1/−1
- src/CPSA/Graph/Loader.hs +2/−1
- src/CPSA/Graph/Main.hs +1/−1
- src/CPSA/Graph/Preskeleton.hs +2/−1
- src/CPSA/Graph/Tree.hs +1/−1
- src/CPSA/Graph/XMLOutput.hs +1/−1
- src/CPSA/JSON/Main.hs +9/−15
- src/CPSA/Lib/Algebra.hs +20/−14
- src/CPSA/Lib/AlgebraLibrary.hs +2/−0
- src/CPSA/Lib/CPSA.hs +0/−32
- src/CPSA/Lib/Characteristic.hs +1/−1
- src/CPSA/Lib/Cohort.hs +168/−94
- src/CPSA/Lib/Debug.hs +0/−68
- src/CPSA/Lib/DebugLibrary.hs +0/−32
- src/CPSA/Lib/Declaration.hs +63/−11
- src/CPSA/Lib/Displayer.hs +18/−0
- src/CPSA/Lib/Entry.hs +3/−3
- src/CPSA/Lib/Expand.hs +1/−1
- src/CPSA/Lib/Loader.hs +128/−77
- src/CPSA/Lib/Main.hs +1/−1
- src/CPSA/Lib/Protocol.hs +21/−5
- src/CPSA/Lib/Reduction.hs +33/−2
- src/CPSA/Lib/Strand.hs +204/−276
- src/CPSA/Lib/Utilities.hs +0/−1
- src/CPSA/Lib/Vector.hs +0/−55
- src/CPSA/Match/Main.hs +66/−0
- src/CPSA/Match/Match.hs +67/−0
- src/CPSA/Pretty/Main.hs +11/−25
- src/CPSA/SAS/Main.hs +5/−4
- src/CPSA/SAS/SAS.hs +13/−7
- src/CPSA/Shapes/Main.hs +2/−2
- src/CPSA/Shapes/Shapes.hs +1/−1
- tst/axiom2.scm +1/−2
- tst/axiom2.tst +1/−1
- tst/blanchet.tst +3/−1
- tst/bltk_example.lisp +23/−0
- tst/bltk_example.lsp +0/−24
- tst/bltk_example.tst +1/−1
- tst/bltk_test.scm +6/−5
- tst/bltk_test.tst +1/−1
- tst/dh-ca.scm +3/−3
- tst/dh-ca.tst +3714/−2482
- tst/dh_mim.scm +18/−61
- tst/dh_mim.tst +18879/−291
- tst/dh_mim2.tst +11252/−306
- tst/dh_sig.scm +8/−10
- tst/dh_sig.tst +12/−12
- tst/dh_test.scm +1/−3
- tst/dh_test.tst +56/−2
- tst/dhnsl.lisp +0/−1
- tst/dhnsl.tst +1/−1
- tst/dhnsl_basic.scm +3/−1
- tst/dhnsl_basic.tst +607/−39
- tst/dhnsl_use.scm +0/−2
- tst/dhnsl_use.tst +3981/−619
- tst/enrich.scm +0/−1
- tst/enrich.tst +1/−1
- tst/envelope.scm +2/−3
- tst/envelope.tst +1/−1
- tst/ffgg.tst +1/−1
- tst/fnof_or.tst +1/−1
- tst/fnof_test.tst +1/−1
- tst/fnof_woolam.tst +1/−1
- tst/fnof_yahalom.tst +1/−1
- tst/goals.tst +24/−1
- tst/graphtst +10/−0
- tst/iadh_um.scm +58/−73
- tst/iadh_um.tst too large to diff
- tst/injection.scm +0/−2
- tst/injection.tst +1/−1
- tst/kerberos++.scm +12/−13
- tst/kerberos++.tst +1/−1
- tst/lt_test.tst +1/−1
- tst/mtic.scm +0/−51
- tst/mtic.tst +0/−126
- tst/neq_test.tst +1/−1
- tst/ns.scm +37/−37
- tst/ns.tst +1/−1
- tst/or.scm +27/−27
- tst/or.tst +1/−1
- tst/owang.tst +3/−1
- tst/owat.scm +0/−2
- tst/owat.tst +1/−1
- tst/pkinit.scm +3/−11
- tst/pkinit.tst +22/−1
- tst/plaindh.scm +4/−5
- tst/plaindh.tst +6249/−122
- tst/priority_test.scm +0/−1
- tst/priority_test.tst +1/−1
- tst/staticdh.scm +1/−3
- tst/staticdh.tst +99/−10
- tst/station2.scm +4/−5
- tst/station2.tst +6/−6
- tst/station_to_station.scm +0/−33
- tst/station_to_station.tst +0/−577
- tst/subsort_test.tst +1/−1
- tst/test_small.scm +2/−4
- tst/test_small.tst +3/−3
- tst/unilateral.tst +1/−1
- tst/uniq-gen-test.scm +2/−3
- tst/uniq-gen-test.tst +1/−1
- tst/wang.tst +1/−1
- tst/woolam.tst +1/−1
- tst/wrap_decrypt.lsp +1/−1
- tst/wrap_decrypt.tst +1/−1
- tst/yahalom.tst +1/−1
ChangeLog view
@@ -1,3 +1,92 @@+2017-09-15 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/DiffieHellman/Algebra.hs (unifyTerms): Added calls to+ chase before calling unifyBase which prevents a failure in the+ occurs check.++2017-09-14 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/Lib/Strand.hs (tryPerm): Add missing inverse+ permutation to second checkOrigs in tryPerm.++2017-09-12 John D. Ramsdell <ramsdell@mitre.org>++ * cpsa.cabal: Removed CPSA.Lib.CPSA globally and removed+ unnecessary dependencies.++2017-08-30 John D. Ramsdell <ramsdell@mitre.org>++ * cpsa.cabal: Added missing modules and source repository+ location.++ * src/CPSA/Lib/DebugLibrary.hs (zi): Fixed erroneous parameters in+ Instance.++2017-08-28 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/Lib/Cohort.hs (solved): Fixed condition 5. It was+ using ct instead of ct'.++2017-06-30 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/Lib/Cohort.hs (transformingNode, maybeAug, nextNode):+ Rewrote code so that it no longer fails the ambiguity check.++2017-05-26 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/DiffieHellman/Algebra.hs (mkInitMatchDecis): Ensure+ initial distinctions to not include fresh variables.+ (partition): Do not move variables of sort expn to lhs, even if+ they are freshly generated.++2017-05-16 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/DiffieHellman/Algebra.hs (displaySubst): Removed+ erroneous substitution to fix substitution displaying.++2017-05-10 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/Strand.hs (findReplacement, permutations): Merge+ generators so that no variable in a term has an identifier that is+ greater than or equal to the generator.++2017-02-02 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/Basic/Algebra.hs (loadInvk): Added support for reading+ (invk (privk ...)) and (invk (invk ...)).++2017-01-17 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/SAS/SAS.hs (strandForm): Remove conjoin and use+ concatMap when creating a characteristic skeleton.++2017-01-09 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/Lib/Loader.hs (loadPrimary): Removed generator+ parameter that was not used.++2016-12-21 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/Lib/Cohort.hs (solved): In Condition 4, applied+ substitutions to the encryption keys before testing for+ derivability.++2016-10-04 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/Basic/Algebra.hs (matchRenaming): Make isomorphism+ check work in presence of asymmetric keys.++2016-09-30 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/Lib/Algebra.hs: Added isObtainedVar for variables of+ sort expr in the Diffie-Hellman algebra.++2016-08-12 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/SAS/SAS.hs (form): Changed "defsas" to "defgoal" as the+ keyword for a generated shape analysis sentence. This makes the+ program compatible with its documentation.+ 2016-06-22 John D. Ramsdell <ramsdell@mitre.org> * cpsa.cabal (Extension): Add allow ambiguous types when compiling
NEWS view
@@ -1,5 +1,34 @@ CPSA NEWS + September, 2017:++* In CPSA version 3.4, the algorithm for handling Diffie-Hellman+ components in protocols has been substantially altered. Instead of+ considering "relevant" version of the critical message when it is a+ Diffie-Hellman value, we focus on the exact critical message, but+ add a cohort member for exploring "precursors" of the critical+ message. The new algorithm no longer requires that exponents always+ be found within an exponentiation.++* Several examples added to the example distribution, including+ "iadh_um", which makes use of the relaxation of requirements on+ Diffie-Hellman exponents to explore forward secrecy.++* A number of serious bug fixes are included in release version 3.4.+ Bugs fixed include:+ - A bug that caused the tool to discard some skeletons incorrectly+ due to over-agressive thinning+ - A bug in Diffie-Hellman matching that caused an infinite loop in+ certain cases+ - A bug that caused inputs with bltk to refuse to execute+ - Bugs in the solved filter that allowed a skeleton to have itself as a child+ - A bug in isomorphism checking that incorrectly identified certain+ Diffie-Hellman skeletons as non-isomorphic.++* Backward compatibility note: "ind-zero-in", a declaration+ automatically added to Diffie-Hellman protocols in the previous+ version, has been renamed to "absent".+ June, 2016: * New feature: tag sort. Introduced a new sort "tag" in both the basic and
README.txt view
@@ -1,3 +1,27 @@+CPSA: Crptographic Protocol Shapes Analyzer Version 3++The Cryptographic Protocol Shapes Analyzer (CPSA), is a software tool+designed to assist in the design and analysis of cryptographic+protocols. A cryptographic protocol is a specific pattern of+interaction between principals. TLS and IKE are some examples of+well-known cryptographic protocols.++CPSA attempts to enumerate all essentially different executions+possible for a cryptographic protocol. We call them the shapes of the+protocol. Naturally occurring protocols have only finitely many,+indeed very few shapes. Authentication and secrecy properties are+easy to determine from them, as are attacks and anomalies.++For each input problem, the CPSA program is given some initial+behavior, and it discovers what shapes are compatible with it.+Normally, the initial behavior is from the point of view of one+participant. The analysis reveals what the other participants must+have done, given the participant's view.++CPSA version 3 features support for Diffie-Hellman and state. The+manual in <doc/cpsamanual.pdf> provides a comprehensive description of+the program.+ CPSA: Cryptographic Protocol Shapes Analyzer This program has been built and tested using Haskell Platform.@@ -53,16 +77,16 @@ QUICK START (Windows) -The software has been tested on a Windows system on which neither-MinGW or Cygwin has been installed. Install GHC and then run the-"setup.bat" batch file with administrator privileges.--If you do not have administrator privileges, run:--C:\...> runghc Setup.hs configure --user-C:\...> runghc Setup.hs build+With Cygwin or MinGW, the installation is similar to the Linux+install. The software has been tested on a Windows system on which+neither MinGW or Cygwin has been installed. Install Haskell Platform+Core and then run: -The executables will be found in the dist\build subdirectories.+C:\...> cabal update+C:\...> cabal install parallel+C:\...> cabal configure+C:\...> cabal build+C:\...> cabal install Documentation and samples are in the directory given by C:\...> cpsa -h@@ -87,30 +111,6 @@ 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.--DOCUMENTATION--The starting point for CPSA documentation doc/index.html. Most users-should read it and skip the rest of this section.--To build the documentation, the file supp-pdf.tex must be installed.-It is part of the TexLive texmf ConTeXt package. On Linux, the name-of the package is context or texlive-context. The design document and-the specification document require the xy-pic package, which is-included in texlive-pictures.--The documentation includes a user guide as an XHTML document, and-three LaTeX documents. The CPSA Primer provides the background-required to make effective use of the CPSA tool collection. For those-interested in the implementation, The CPSA Theory contains a-high-level description of the algorithm and the current state of the-effort to show that when program terminates, it produces a description-of every possible execution of the protocol consistent with the-initial point-of-view skeleton. The CPSA Specification formally-describes the implemented algorithm as a term reduction system. The-CPSA Design describes implementation details and assumes The CPSA-Specification has been read. The CPSA Design should be read if one is-interested in reading the Haskell source for the tool collection. TEST SUITE
cpsa.cabal view
@@ -1,5 +1,5 @@ Name: cpsa-Version: 3.3.2+Version: 3.4.0 Maintainer: mliskov@mitre.org Cabal-Version: >= 1.6 License: BSD3@@ -7,7 +7,7 @@ Synopsis: Symbolic cryptographic protocol analyzer Description: The Cryptographic Protocol Shapes Analyzer (CPSA) attempts to- enumerate all essentially different executions possible for a+ enumerate all essentially different executions possibe for a cryptographic protocol. We call them the shapes of the protocol. Naturally occurring protocols have only finitely many, indeed very few shapes. Authentication and secrecy properties are easy to@@ -51,7 +51,8 @@ Data-Files: Make.hs cpsa.mk cpsamanual.pdf examples/blanchet.scm examples/blanchet.xhtml examples/bltk_or.scm examples/bltk_or.xhtml examples/envelope.scm- examples/envelope.xhtml examples/ffgg.scm examples/fnof_test.scm+ examples/envelope.xhtml examples/ffgg.scm examples/ffgg.xhtml+ examples/fnof_test.scm examples/fnof_test.xhtml examples/fnof_yahalom.scm examples/fnof_yahalom.xhtml examples/goals.scm examples/goals.xhtml examples/kerb.scm examples/kerb.xhtml examples/lt_test.scm examples/lt_test.xhtml examples/neq_test.scm@@ -60,15 +61,20 @@ examples/plaindh.scm examples/plaindh.xhtml examples/priority_test.scm examples/priority_test.xhtml examples/station.scm examples/station.xhtml examples/subsort_test.scm examples/woolam.scm examples/yahalom.scm- examples/yahalom.xhtml examples/IKE_variants.tar.gz+ examples/yahalom.xhtml examples/IKE_variants.tar.gz examples/iadh_um.scm+ examples/iadh_um.xhtml examples/subsort_test.xhtml examples/woolam.xhtml+ examples/dh_mim.scm examples/dh_mim.xhtml examples/fluffy_draft03_fixing_gske.scm+ examples/fluffy_draft03_gske.scm examples/fluffy_draft03_improving_pske.scm+ examples/fluffy_draft03_pske.scm Data-Dir: doc Extra-Source-Files: Makefile ChangeLog README.txt NEWS ghci 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- tst/checktst tst/updatetst tst/Makefile tst/Make.hs tst/README+ tst/checktst tst/updatetst tst/graphtst+ tst/Makefile tst/Make.hs tst/README tst/axiom2.scm tst/axiom2.tst tst/blanchet.scm tst/blanchet.tst- tst/bltk_example.lsp tst/bltk_example.tst tst/bltk_test.scm+ tst/bltk_example.lisp tst/bltk_example.tst tst/bltk_test.scm tst/bltk_test.tst tst/dh-ca.scm tst/dh-ca.tst tst/dh_mim2.scm tst/dh_mim2.tst tst/dh_mim.scm tst/dh_mim.tst tst/dhnsl_basic.scm tst/dhnsl_basic.tst tst/dhnsl.lisp tst/dhnsl.tst tst/dhnsl_use.scm@@ -80,121 +86,107 @@ tst/fnof_yahalom.tst tst/goals.scm tst/goals.tst tst/iadh_um.scm tst/iadh_um.tst tst/injection.scm tst/injection.tst tst/kerberos++.scm tst/kerberos++.tst tst/lt_test.scm- tst/lt_test.tst tst/mtic.scm tst/mtic.tst tst/neq_test.scm+ tst/lt_test.tst tst/neq_test.scm tst/neq_test.tst tst/ns.scm tst/ns.tst tst/or.scm tst/or.tst tst/owang.scm tst/owang.tst tst/owat.scm tst/owat.tst tst/pkinit.scm tst/pkinit.tst tst/plaindh.scm tst/plaindh.tst tst/priority_test.scm tst/priority_test.tst tst/staticdh.scm tst/staticdh.tst- tst/station2.scm tst/station2.tst tst/station_to_station.scm- tst/station_to_station.tst tst/subsort_test.scm tst/subsort_test.tst+ tst/station2.scm tst/station2.tst+ tst/subsort_test.scm tst/subsort_test.tst tst/test_small.scm tst/test_small.tst tst/unilateral.scm tst/unilateral.tst tst/uniq-gen-test.scm tst/uniq-gen-test.tst tst/wang.tst tst/woolam.scm tst/woolam.tst tst/wrap_decrypt.lsp tst/wrap_decrypt.tst tst/yahalom.scm tst/yahalom.tst --- Algebra implementations must import CPSA.Lib.CPSA.--- Tools may additionally import CPSA.Lib.Entry.--- No other modules in CPSA.Lib should be imported by applications.+Source-Repository head+ Type: git+ Location: git://github.com/mitre/cpsa.git +Executable cpsamatch+ Main-Is: CPSA/Match/Main.hs+ 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.Match.Match+ CPSA.Basic.Algebra CPSA.DiffieHellman.Algebra+ Executable cpsa Main-Is: CPSA/Lib/Main.hs Build-Depends: base >= 3 && < 5, containers, parallel GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports -threaded -rtsopts- if impl(ghc >= 8.0.0)- Extensions: AllowAmbiguousTypes Hs-Source-Dirs: src Other-Modules:- Paths_cpsa CPSA.Lib.Vector CPSA.Lib.Utilities CPSA.Lib.Debug- CPSA.Lib.Pretty CPSA.Lib.SExpr CPSA.Lib.Printer- CPSA.Lib.DebugLibrary CPSA.Lib.Notation CPSA.Lib.Entry+ Paths_cpsa CPSA.Lib.Utilities+ CPSA.Lib.Pretty CPSA.Lib.SExpr CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra CPSA.Lib.AlgebraLibrary CPSA.Lib.State CPSA.Lib.Protocol CPSA.Lib.Goal CPSA.Lib.Strand CPSA.Lib.Characteristic CPSA.Lib.Loader CPSA.Lib.Displayer- CPSA.Lib.Cohort CPSA.Lib.Expand CPSA.Lib.CPSA CPSA.Lib.Reduction+ CPSA.Lib.Cohort CPSA.Lib.Expand CPSA.Lib.Reduction CPSA.Basic.Algebra CPSA.DiffieHellman.Algebra CPSA.Lib.Declaration- CPSA.DiffieHellman.IntLinEq Executable cpsagraph Main-Is: CPSA/Graph/Main.hs Build-Depends: base >= 3 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports- if impl(ghc >= 8.0.0)- Extensions: AllowAmbiguousTypes Hs-Source-Dirs: src Other-Modules: Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr CPSA.Lib.Printer CPSA.Lib.Notation CPSA.Lib.Entry CPSA.Lib.Algebra- CPSA.Lib.State CPSA.Lib.Protocol CPSA.Lib.Strand CPSA.Lib.Loader- CPSA.Lib.Debug CPSA.Lib.Displayer CPSA.Lib.Cohort CPSA.Lib.CPSA- CPSA.Lib.DebugLibrary CPSA.Graph.XMLOutput CPSA.Graph.Config+ CPSA.Graph.XMLOutput CPSA.Graph.Config CPSA.Graph.SVG CPSA.Graph.Loader CPSA.Graph.Preskeleton CPSA.Graph.Layout CPSA.Graph.Tree CPSA.Graph.CompactView- CPSA.Graph.ExpandedView CPSA.Graph.LaTeXView+ CPSA.Graph.ExpandedView CPSA.Graph.LaTeXView CPSA.Basic.Algebra Executable cpsashapes Main-Is: CPSA/Shapes/Main.hs Build-Depends: base >= 3 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports- if impl(ghc >= 8.0.0)- Extensions: AllowAmbiguousTypes Hs-Source-Dirs: src Other-Modules: Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr- CPSA.Lib.Printer CPSA.Lib.Notation CPSA.Lib.Entry CPSA.Lib.Algebra- CPSA.Lib.State CPSA.Lib.Protocol CPSA.Lib.Strand CPSA.Lib.Loader- CPSA.Lib.Displayer CPSA.Lib.Cohort CPSA.Lib.CPSA- CPSA.Shapes.Shapes+ CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra+ CPSA.Shapes.Shapes CPSA.Basic.Algebra Executable cpsaannotations Main-Is: CPSA/Annotations/Main.hs Build-Depends: base >= 3 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports- if impl(ghc >= 8.0.0)- Extensions: AllowAmbiguousTypes Hs-Source-Dirs: src Other-Modules: Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr- CPSA.Lib.Printer CPSA.Lib.Notation CPSA.Lib.Entry CPSA.Lib.Algebra- CPSA.Lib.State CPSA.Lib.Protocol CPSA.Lib.Strand CPSA.Lib.Loader- CPSA.Lib.Debug CPSA.Lib.Displayer CPSA.Lib.Cohort CPSA.Lib.CPSA- CPSA.Lib.DebugLibrary CPSA.Annotations.Formulas- CPSA.Annotations.Annotations CPSA.Basic.Algebra- CPSA.DiffieHellman.Algebra CPSA.DiffieHellman.IntLinEq+ CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra+ CPSA.Annotations.Formulas CPSA.Annotations.Annotations+ CPSA.Basic.Algebra CPSA.DiffieHellman.Algebra Executable cpsapp Main-Is: CPSA/Pretty/Main.hs Build-Depends: base >= 3 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports- if impl(ghc >= 8.0.0)- Extensions: AllowAmbiguousTypes Hs-Source-Dirs: src Other-Modules: Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr- CPSA.Lib.Printer CPSA.Lib.Notation CPSA.Lib.Entry CPSA.Lib.Algebra- CPSA.Lib.State CPSA.Lib.Protocol CPSA.Lib.Strand CPSA.Lib.Loader- CPSA.Lib.Debug CPSA.Lib.Displayer CPSA.Lib.Cohort CPSA.Lib.CPSA- CPSA.Lib.DebugLibrary+ CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra+ CPSA.Basic.Algebra Executable cpsajson Main-Is: CPSA/JSON/Main.hs Build-Depends: base >= 3 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports- if impl(ghc >= 8.0.0)- Extensions: AllowAmbiguousTypes Hs-Source-Dirs: src Other-Modules: Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr- CPSA.Lib.Printer CPSA.Lib.Notation CPSA.Lib.Entry CPSA.Lib.Algebra- CPSA.Lib.State CPSA.Lib.Protocol CPSA.Lib.Strand CPSA.Lib.Loader- CPSA.Lib.Debug CPSA.Lib.Displayer CPSA.Lib.Cohort CPSA.Lib.CPSA- CPSA.Lib.DebugLibrary-+ CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra+ CPSA.Basic.Algebra+ Executable cpsadiff Main-Is: CPSA/Diff/Main.hs Build-Depends: base >= 3 && < 5, containers@@ -203,20 +195,16 @@ 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.Lib.CPSA+ CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra+ CPSA.Basic.Algebra Executable cpsasas Main-Is: CPSA/SAS/Main.hs Build-Depends: base >= 3 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports- if impl(ghc >= 8.0.0)- Extensions: AllowAmbiguousTypes Hs-Source-Dirs: src Other-Modules: Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr- CPSA.Lib.Printer CPSA.Lib.Notation CPSA.Lib.Entry CPSA.Lib.Algebra- CPSA.Lib.State CPSA.Lib.Protocol CPSA.Lib.Strand CPSA.Lib.Loader- CPSA.Lib.Debug CPSA.Lib.Displayer CPSA.Lib.Cohort CPSA.Lib.CPSA- CPSA.Lib.DebugLibrary CPSA.SAS.SAS CPSA.Basic.Algebra- CPSA.DiffieHellman.Algebra CPSA.DiffieHellman.IntLinEq+ CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra CPSA.SAS.SAS+ CPSA.Basic.Algebra CPSA.DiffieHellman.Algebra
doc/Make.hs view
@@ -1,7 +1,7 @@ -- A simple, CPSA specific make system -module Make3 (cpsa, shapes, sas, annos, params, cleanse, get, set,- build, clean, roots) where+module Make (cpsa, shapes, sas, annos, params, cleanse, get, set,+ build, clean, roots) where {- Place a copy of this source file in the directory used to store CPSA problem statements, edit it to suit your needs, and load it into@@ -110,7 +110,7 @@ graphRule :: Rule graphRule =- Rule { prog = "cpsa3graph" ++ graphFlags,+ Rule { prog = "cpsagraph" ++ graphFlags, inputExt = cpsaExt, outputExt = graphExt } @@ -133,7 +133,7 @@ cpsaBasicRule :: String -> Rule cpsaBasicRule flags =- Rule { prog = "cpsa3 " ++ flags,+ Rule { prog = "cpsa " ++ flags, inputExt = sourceBasicExt, outputExt = cpsaExt } @@ -148,7 +148,7 @@ shapesRule :: Rule shapesRule =- Rule { prog = "cpsa3shapes",+ Rule { prog = "cpsashapes", inputExt = cpsaExt, outputExt = shapesRoot ++ cpsaExt } @@ -162,7 +162,7 @@ sasRule :: Rule sasRule =- Rule { prog = "cpsa3sas",+ Rule { prog = "cpsasas", inputExt = cpsaExt, outputExt = sasExt } @@ -177,7 +177,7 @@ annosRule :: Rule annosRule =- Rule { prog = "cpsa3annotations",+ Rule { prog = "cpsaannotations", inputExt = shapesRoot ++ cpsaExt, outputExt = annosRoot ++ cpsaExt } @@ -190,7 +190,7 @@ cpsaparametersRule :: Rule cpsaparametersRule =- Rule { prog = "cpsa3parameters",+ Rule { prog = "cpsaparameters", inputExt = sourceBasicExt, outputExt = paramsRoot ++ cpsaExt }
doc/cpsa.mk view
@@ -5,38 +5,38 @@ # Analyze protocols for shapes %.txt: %.scm- $(CPSATIME) cpsa3 $(CPSAFLAGS) -o $@ $<+ $(CPSATIME) cpsa $(CPSAFLAGS) -o $@ $< # Analyze protocols for shapes, but don't fail when CPSA does %.txt: %.lsp- -$(CPSATIME) cpsa3 $(CPSAFLAGS) -o $@ $<+ -$(CPSATIME) cpsa $(CPSAFLAGS) -o $@ $< # Extract shapes %_shapes.txt: %.txt- cpsa3shapes $(SHAPESFLAGS) -o $@ $<+ cpsashapes $(SHAPESFLAGS) -o $@ $< # Extract shape analysis sentences %_sas.text: %.txt- cpsa3sas $(SASFLAGS) -o $@ $<+ cpsasas $(SASFLAGS) -o $@ $< # Annotate shapes %_annotations.txt: %_shapes.txt- cpsa3annotations $(ANNOTATIONSFLAGS) -o $@ $<+ cpsaannotations $(ANNOTATIONSFLAGS) -o $@ $< # Compute protocol parameters %_parameters.txt: %_shapes.txt- cpsa3parameters $(PARAMETERSFLAGS) -o $@ $<+ cpsaparameters $(PARAMETERSFLAGS) -o $@ $< # Visualize output using the expanded format (default) %.xhtml: %.txt- cpsa3graph $(GRAPHFLAGS) -o $@ $<+ cpsagraph $(GRAPHFLAGS) -o $@ $< # Visualize output using the compact format %.svg: %.txt- cpsa3graph -c -o $@ $<+ cpsagraph -c -o $@ $< # Visualize output using the LaTeX format %.tex: %.txt- cpsa3graph -l -m 62 -o $@ $<+ cpsagraph -l -m 62 -o $@ $< .PRECIOUS: %.txt %_shapes.txt %_annotations.txt
doc/cpsamanual.pdf view
binary file changed (872297 → 877003 bytes)
doc/examples/blanchet.xhtml view
@@ -1,2013 +1,2015 @@-<?xml version="1.0"?> -<!-- CPSA 3.2.2 --> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> - <title>Blanchet's Simple Example Protocol</title> - <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /> - <style> - svg.diagram { border-width: 1px; border-style: solid } - </style> -</head> -<body> - -<pre>(herald "Blanchet's Simple Example Protocol" - (comment "There is a flaw in this protocol by design")) -(comment "CPSA 3.2.2") -(comment "All input read from blanchet.scm")</pre> - -<p id="top">Trees: <a href="#t0">0</a> <a href="#t4">4</a> <a href="#t6">6</a> <a href="#t11">11</a> <a href="#t14">14</a> <a href="#t18">18</a> <a href="#t23">23</a> <a href="#t25">25</a>.</p> - -<p id="t0">Tree <a href="#top">0</a>.</p> - -<div> - <svg - class='diagram' width='179.760pt' height='154.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.760 154.920' font-size='12.000'> - <text - x='89.880' y='101.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k2", "_self")'>2</text> - <line - x1='39.960' y1='77.460' x2='89.880' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k3", "_self")'>3</text> - <line - x1='89.880' y1='39.960' x2='139.800' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k1", "_self")'>1</text> - <line - x1='39.960' y1='77.460' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='63.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k0", "_self")'>0</text> - </svg></div> - -<pre>(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"))</pre> - -<p id="k0">Item <a href="#t0">0</a>, Children: <a href="#k1">1</a> <a href="#k2">2</a>.</p> - -<div> - <svg - class='diagram' width='79.920pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 79.920 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>(enc d s)</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='39.960' y='39.960' style='text-anchor: middle;'>blanchet 0</text> - </svg></div> - -<pre>(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") - (label 0) - (unrealized (0 1)) - (origs (s (0 0))) - (comment "2 in cohort - 2 not yet seen"))</pre> - -<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k3">3</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s (invk a-0)) b-0)</title> - <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a-0) (b b-0))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 1</text> - </svg></div> - -<pre>(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 d s) - (operation encryption-test (added-strand resp 2) (enc d s) (0 1)) - (label 1) - (parent 0) - (unrealized (1 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k0">0</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>s</title><circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>s</title> - <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 2</text> - </svg></div> - -<pre>(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)) - (label 2) - (parent 0) - (unrealized (1 0)) - (comment "empty cohort"))</pre> - -<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k1">1</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s (invk a)) b)</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>blanchet 3 (realized)</text></svg></div> - -<pre>(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 d s) - (operation nonce-test (contracted (a-0 a) (b-0 b)) s (1 0) - (enc (enc s (invk a)) b)) - (label 3) - (parent 1) - (unrealized) - (shape) - (maps ((0) ((a a) (b b) (s s) (d d)))) - (origs (d (1 1)) (s (0 0))))</pre> - -<p id="t4">Tree <a href="#top">4</a>.</p> - -<div> - <svg - class='diagram' width='129.840pt' height='79.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 129.840 79.920' font-size='12.000'> - <text - x='89.880' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k5", "_self")'>5</text> - <line - x1='39.960' y1='39.960' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k4", "_self")'>4</text> - </svg></div> - -<pre>(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"))</pre> - -<p id="k4">Item <a href="#t4">4</a>, Child: <a href="#k5">5</a>.</p> - -<div> - <svg - class='diagram' width='79.920pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 79.920 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>(enc d s)</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s (invk a)) b)</title> - <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='39.960' y='39.960' style='text-anchor: middle;'>blanchet 4</text> - </svg></div> - -<pre>(defskeleton blanchet - (vars (d data) (s skey) (a b akey)) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (non-orig (invk a) (invk b)) - (uniq-orig d) - (comment "Analyze from the responder's perspective") - (label 4) - (unrealized (0 0)) - (origs (d (0 1))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k5">Item <a href="#t4">5</a>, Parent: <a href="#k4">4</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s (invk a)) b-0)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s (invk a)) b)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((s s) (a a) (b b-0))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>blanchet 5 (realized)</text></svg></div> - -<pre>(defskeleton blanchet - (vars (d data) (s skey) (a b b-0 akey)) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (defstrand init 1 (s s) (a a) (b b-0)) - (precedes ((1 0) (0 0))) - (non-orig (invk a) (invk b)) - (uniq-orig d s) - (operation encryption-test (added-strand init 1) (enc s (invk a)) - (0 0)) - (label 5) - (parent 4) - (unrealized) - (shape) - (maps ((0) ((a a) (b b) (s s) (d d)))) - (origs (s (1 0)) (d (0 1))))</pre> - -<p id="t6">Tree <a href="#top">6</a>.</p> - -<div> - <svg - class='diagram' width='229.680pt' height='154.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 229.680 154.920' font-size='12.000'> - <text - x='89.880' y='101.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k8", "_self")'>8</text> - <line - x1='39.960' y1='77.460' x2='89.880' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='189.720' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k10", "_self")'>10</text> - <line - x1='139.800' y1='39.960' x2='189.720' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k9", "_self")'>9</text> - <line - x1='89.880' y1='39.960' x2='139.800' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k7", "_self")'>7</text> - <line - x1='39.960' y1='77.460' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='63.540' style='text-anchor: middle; fill: red;' - onclick='window.open("#k6", "_self")'>6</text> - </svg></div> - -<pre>(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"))</pre> - -<p id="k6">Item <a href="#t6">6</a>, Children: <a href="#k7">7</a> <a href="#k8">8</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 6</text> - </svg></div> - -<pre>(defskeleton blanchet - (vars (d data) (s skey) (a b akey)) - (defstrand init 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (non-orig (invk b)) - (uniq-orig s) - (comment "From the initiator's perspective, is the secret leaked?") - (label 6) - (unrealized (0 1)) - (origs (s (0 0))) - (comment "2 in cohort - 2 not yet seen"))</pre> - -<p id="k7">Item <a href="#t6">7</a>, Parent: <a href="#k6">6</a>, Child: <a href="#k9">9</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <path - d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='239.880' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s (invk a-0)) b-0)</title> - <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a-0) (b b-0))</title> - <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='139.920' y='39.960' style='text-anchor: middle;'>blanchet 7</text> - </svg></div> - -<pre>(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)) - (deflistener d) - (defstrand resp 2 (d d) (s s) (a a-0) (b b-0)) - (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0))) - (non-orig (invk b)) - (uniq-orig d s) - (operation encryption-test (added-strand resp 2) (enc d s) (0 1)) - (label 7) - (parent 6) - (unrealized (1 0) (2 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k8">Item <a href="#t6">8</a>, Parent: <a href="#k6">6</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>s</title><circle cx='239.880' cy='189.960' r='6.000'/></g> - <g><title>s</title> - <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='139.920' y='39.960' style='text-anchor: middle;'>blanchet 8</text> - </svg></div> - -<pre>(defskeleton blanchet - (vars (d data) (s skey) (a b akey)) - (defstrand init 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (deflistener s) - (precedes ((0 0) (2 0)) ((2 1) (0 1))) - (non-orig (invk b)) - (uniq-orig s) - (operation encryption-test (added-listener s) (enc d s) (0 1)) - (label 8) - (parent 6) - (unrealized (2 0)) - (comment "empty cohort"))</pre> - -<p id="k9">Item <a href="#t6">9</a>, Parent: <a href="#k7">7</a>, Child: <a href="#k10">10</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <path - d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='239.880' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s (invk a)) b)</title> - <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='139.920' y='39.960' style='text-anchor: middle;'>blanchet 9</text> - </svg></div> - -<pre>(defskeleton blanchet - (vars (d data) (s skey) (a b akey)) - (defstrand init 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0))) - (non-orig (invk b)) - (uniq-orig d s) - (operation nonce-test (contracted (a-0 a) (b-0 b)) s (2 0) - (enc (enc s (invk a)) b)) - (label 9) - (parent 7) - (unrealized (1 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k10">Item <a href="#t6">10</a>, Parent: <a href="#k9">9</a>.</p> - -<div> - <svg - class='diagram' width='379.800pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 379.800 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='339.840' y1='114.960' x2='339.840' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='239.880' y1='114.960' x2='239.880' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 339.840 189.960 Q 242.880 152.460 145.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>s</title><circle cx='339.840' cy='189.960' r='6.000'/></g> - <g><title>s</title> - <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g> - <path - d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <path - d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='239.880' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s (invk a)) b)</title> - <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <path - d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='189.900' y='39.960' - style='text-anchor: middle;'>blanchet 10</text></svg></div> - -<pre>(defskeleton blanchet - (vars (d data) (s skey) (a b akey)) - (defstrand init 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (deflistener s) - (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((2 1) (0 1)) ((2 1) (1 0)) - ((3 1) (1 0))) - (non-orig (invk b)) - (uniq-orig d s) - (operation nonce-test (added-listener s) d (1 0) (enc d s)) - (label 10) - (parent 9) - (unrealized (3 0)) - (comment "empty cohort"))</pre> - -<p id="t11">Tree <a href="#top">11</a>.</p> - -<div> - <svg - class='diagram' width='179.760pt' height='79.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.760 79.920' font-size='12.000'> - <text - x='139.800' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k13", "_self")'>13</text> - <line - x1='89.880' y1='39.960' x2='139.800' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k12", "_self")'>12</text> - <line - x1='39.960' y1='39.960' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k11", "_self")'>11</text> - </svg></div> - -<pre>(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"))</pre> - -<p id="k11">Item <a href="#t11">11</a>, Child: <a href="#k12">12</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s (invk a)) b)</title> - <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 11</text> - </svg></div> - -<pre>(defskeleton blanchet - (vars (d data) (s skey) (a b akey)) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (non-orig (invk a) (invk b)) - (uniq-orig d) - (comment "From the responders's perspective, is the secret leaked?") - (label 11) - (unrealized (0 0) (1 0)) - (preskeleton) - (comment "Not a skeleton"))</pre> - -<p id="k12">Item <a href="#t11">12</a>, Parent: <a href="#k11">11</a>, Child: <a href="#k13">13</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s (invk a)) b)</title> - <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 12</text> - </svg></div> - -<pre>(defskeleton blanchet - (vars (d data) (s skey) (a b akey)) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (precedes ((0 1) (1 0))) - (non-orig (invk a) (invk b)) - (uniq-orig d) - (label 12) - (parent 11) - (unrealized (0 0)) - (origs (d (0 1))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k13">Item <a href="#t11">13</a>, Parent: <a href="#k12">12</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 114.960 Q 142.920 77.460 45.960 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s (invk a)) b-0)</title> - <circle cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s (invk a)) b)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((s s) (a a) (b b-0))</title> - <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>blanchet 13 (realized)</text></svg> - </div> - -<pre>(defskeleton blanchet - (vars (d data) (s skey) (a b b-0 akey)) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (defstrand init 1 (s s) (a a) (b b-0)) - (precedes ((0 1) (1 0)) ((2 0) (0 0))) - (non-orig (invk a) (invk b)) - (uniq-orig d s) - (operation encryption-test (added-strand init 1) (enc s (invk a)) - (0 0)) - (label 13) - (parent 12) - (unrealized) - (shape) - (maps ((0 1) ((a a) (b b) (s s) (d d)))) - (origs (s (2 0)) (d (0 1))))</pre> - -<p id="t14">Tree <a href="#top">14</a>.</p> - -<div> - <svg - class='diagram' width='179.760pt' height='154.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.760 154.920' font-size='12.000'> - <text - x='89.880' y='101.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k16", "_self")'>16</text> - <line - x1='39.960' y1='77.460' x2='89.880' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k17", "_self")'>17</text> - <line - x1='89.880' y1='39.960' x2='139.800' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k15", "_self")'>15</text> - <line - x1='39.960' y1='77.460' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='63.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k14", "_self")'>14</text> - </svg></div> - -<pre>(defprotocol blanchet-corrected basic - (defrole init - (vars (a b akey) (s skey) (d data)) - (trace (send (enc (enc s b (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 b (invk a)) b)) (send (enc d s))) - (uniq-orig d)) - (comment "Corrected Blanchet's protocol"))</pre> - -<p id="k14">Item <a href="#t14">14</a>, Children: <a href="#k15">15</a> <a href="#k16">16</a>.</p> - -<div> - <svg - class='diagram' width='79.920pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 79.920 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>(enc d s)</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='39.960' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 14</text></svg></div> - -<pre>(defskeleton blanchet-corrected - (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") - (label 14) - (unrealized (0 1)) - (origs (s (0 0))) - (comment "2 in cohort - 2 not yet seen"))</pre> - -<p id="k15">Item <a href="#t14">15</a>, Parent: <a href="#k14">14</a>, Child: <a href="#k17">17</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s b-0 (invk a-0)) b-0)</title> - <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a-0) (b b-0))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 15</text></svg></div> - -<pre>(defskeleton blanchet-corrected - (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 d s) - (operation encryption-test (added-strand resp 2) (enc d s) (0 1)) - (label 15) - (parent 14) - (unrealized (1 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k16">Item <a href="#t14">16</a>, Parent: <a href="#k14">14</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>s</title><circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>s</title> - <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 16</text></svg></div> - -<pre>(defskeleton blanchet-corrected - (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)) - (label 16) - (parent 14) - (unrealized (1 0)) - (comment "empty cohort"))</pre> - -<p id="k17">Item <a href="#t14">17</a>, Parent: <a href="#k15">15</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 17 (realized)</text> - </svg></div> - -<pre>(defskeleton blanchet-corrected - (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 d s) - (operation nonce-test (contracted (a-0 a) (b-0 b)) s (1 0) - (enc (enc s b (invk a)) b)) - (label 17) - (parent 15) - (unrealized) - (shape) - (maps ((0) ((a a) (b b) (s s) (d d)))) - (origs (d (1 1)) (s (0 0))))</pre> - -<p id="t18">Tree <a href="#top">18</a>.</p> - -<div> - <svg - class='diagram' width='229.680pt' height='154.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 229.680 154.920' font-size='12.000'> - <text - x='89.880' y='101.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k20", "_self")'>20</text> - <line - x1='39.960' y1='77.460' x2='89.880' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='189.720' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k22", "_self")'>22</text> - <line - x1='139.800' y1='39.960' x2='189.720' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k21", "_self")'>21</text> - <line - x1='89.880' y1='39.960' x2='139.800' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k19", "_self")'>19</text> - <line - x1='39.960' y1='77.460' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='63.540' style='text-anchor: middle; fill: red;' - onclick='window.open("#k18", "_self")'>18</text> - </svg></div> - -<pre>(defprotocol blanchet-corrected basic - (defrole init - (vars (a b akey) (s skey) (d data)) - (trace (send (enc (enc s b (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 b (invk a)) b)) (send (enc d s))) - (uniq-orig d)) - (comment "Corrected Blanchet's protocol"))</pre> - -<p id="k18">Item <a href="#t18">18</a>, Children: <a href="#k19">19</a> <a href="#k20">20</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 18</text></svg></div> - -<pre>(defskeleton blanchet-corrected - (vars (d data) (s skey) (a b akey)) - (defstrand init 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (non-orig (invk b)) - (uniq-orig s) - (comment "From the initiator's perspective, is the secret leaked?") - (label 18) - (unrealized (0 1)) - (origs (s (0 0))) - (comment "2 in cohort - 2 not yet seen"))</pre> - -<p id="k19">Item <a href="#t18">19</a>, Parent: <a href="#k18">18</a>, Child: <a href="#k21">21</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <path - d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='239.880' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s b-0 (invk a-0)) b-0)</title> - <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a-0) (b b-0))</title> - <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 19</text></svg></div> - -<pre>(defskeleton blanchet-corrected - (vars (d data) (s skey) (a b a-0 b-0 akey)) - (defstrand init 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (defstrand resp 2 (d d) (s s) (a a-0) (b b-0)) - (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0))) - (non-orig (invk b)) - (uniq-orig d s) - (operation encryption-test (added-strand resp 2) (enc d s) (0 1)) - (label 19) - (parent 18) - (unrealized (1 0) (2 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k20">Item <a href="#t18">20</a>, Parent: <a href="#k18">18</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>s</title><circle cx='239.880' cy='189.960' r='6.000'/></g> - <g><title>s</title> - <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 20</text></svg></div> - -<pre>(defskeleton blanchet-corrected - (vars (d data) (s skey) (a b akey)) - (defstrand init 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (deflistener s) - (precedes ((0 0) (2 0)) ((2 1) (0 1))) - (non-orig (invk b)) - (uniq-orig s) - (operation encryption-test (added-listener s) (enc d s) (0 1)) - (label 20) - (parent 18) - (unrealized (2 0)) - (comment "empty cohort"))</pre> - -<p id="k21">Item <a href="#t18">21</a>, Parent: <a href="#k19">19</a>, Child: <a href="#k22">22</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <path - d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='239.880' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 21</text></svg></div> - -<pre>(defskeleton blanchet-corrected - (vars (d data) (s skey) (a b akey)) - (defstrand init 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0))) - (non-orig (invk b)) - (uniq-orig d s) - (operation nonce-test (contracted (a-0 a) (b-0 b)) s (2 0) - (enc (enc s b (invk a)) b)) - (label 21) - (parent 19) - (unrealized (1 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k22">Item <a href="#t18">22</a>, Parent: <a href="#k21">21</a>.</p> - -<div> - <svg - class='diagram' width='379.800pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 379.800 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='339.840' y1='114.960' x2='339.840' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='239.880' y1='114.960' x2='239.880' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 339.840 189.960 Q 242.880 152.460 145.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>s</title><circle cx='339.840' cy='189.960' r='6.000'/></g> - <g><title>s</title> - <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g> - <path - d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <path - d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='239.880' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <path - d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='189.900' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 22</text></svg></div> - -<pre>(defskeleton blanchet-corrected - (vars (d data) (s skey) (a b akey)) - (defstrand init 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (deflistener s) - (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((2 1) (0 1)) ((2 1) (1 0)) - ((3 1) (1 0))) - (non-orig (invk b)) - (uniq-orig d s) - (operation nonce-test (added-listener s) d (1 0) (enc d s)) - (label 22) - (parent 21) - (unrealized (3 0)) - (comment "empty cohort"))</pre> - -<p id="t23">Tree <a href="#top">23</a>.</p> - -<div> - <svg - class='diagram' width='129.840pt' height='79.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 129.840 79.920' font-size='12.000'> - <text - x='89.880' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k24", "_self")'>24</text> - <line - x1='39.960' y1='39.960' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k23", "_self")'>23</text> - </svg></div> - -<pre>(defprotocol blanchet-corrected basic - (defrole init - (vars (a b akey) (s skey) (d data)) - (trace (send (enc (enc s b (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 b (invk a)) b)) (send (enc d s))) - (uniq-orig d)) - (comment "Corrected Blanchet's protocol"))</pre> - -<p id="k23">Item <a href="#t23">23</a>, Child: <a href="#k24">24</a>.</p> - -<div> - <svg - class='diagram' width='79.920pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 79.920 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>(enc d s)</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='39.960' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 23</text></svg></div> - -<pre>(defskeleton blanchet-corrected - (vars (d data) (s skey) (a b akey)) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (non-orig (invk a) (invk b)) - (uniq-orig d) - (comment "Analyze from the responder's perspective") - (label 23) - (unrealized (0 0)) - (origs (d (0 1))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k24">Item <a href="#t23">24</a>, Parent: <a href="#k23">23</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((s s) (a a) (b b))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 24 (realized)</text> - </svg></div> - -<pre>(defskeleton blanchet-corrected - (vars (d data) (s skey) (a b akey)) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (defstrand init 1 (s s) (a a) (b b)) - (precedes ((1 0) (0 0))) - (non-orig (invk a) (invk b)) - (uniq-orig d s) - (operation encryption-test (added-strand init 1) (enc s b (invk a)) - (0 0)) - (label 24) - (parent 23) - (unrealized) - (shape) - (maps ((0) ((a a) (b b) (s s) (d d)))) - (origs (s (1 0)) (d (0 1))))</pre> - -<p id="t25">Tree <a href="#top">25</a>.</p> - -<div> - <svg - class='diagram' width='229.680pt' height='79.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 229.680 79.920' font-size='12.000'> - <text - x='189.720' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k28", "_self")'>28</text> - <line - x1='139.800' y1='39.960' x2='189.720' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k27", "_self")'>27</text> - <line - x1='89.880' y1='39.960' x2='139.800' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k26", "_self")'>26</text> - <line - x1='39.960' y1='39.960' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k25", "_self")'>25</text> - </svg></div> - -<pre>(defprotocol blanchet-corrected basic - (defrole init - (vars (a b akey) (s skey) (d data)) - (trace (send (enc (enc s b (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 b (invk a)) b)) (send (enc d s))) - (uniq-orig d)) - (comment "Corrected Blanchet's protocol"))</pre> - -<p id="k25">Item <a href="#t25">25</a>, Child: <a href="#k26">26</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc d s)</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 25</text></svg></div> - -<pre>(defskeleton blanchet-corrected - (vars (d data) (s skey) (a b akey)) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (non-orig (invk a) (invk b)) - (uniq-orig d) - (comment "From the responders's perspective, is the secret leaked?") - (label 25) - (unrealized (0 0) (1 0)) - (preskeleton) - (comment "Not a skeleton"))</pre> - -<p id="k26">Item <a href="#t25">26</a>, Parent: <a href="#k25">25</a>, Child: <a href="#k27">27</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 26</text></svg></div> - -<pre>(defskeleton blanchet-corrected - (vars (d data) (s skey) (a b akey)) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (precedes ((0 1) (1 0))) - (non-orig (invk a) (invk b)) - (uniq-orig d) - (label 26) - (parent 25) - (unrealized (0 0)) - (origs (d (0 1))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k27">Item <a href="#t25">27</a>, Parent: <a href="#k26">26</a>, Child: <a href="#k28">28</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 114.960 Q 142.920 77.460 45.960 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((s s) (a a) (b b))</title> - <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 27</text></svg></div> - -<pre>(defskeleton blanchet-corrected - (vars (d data) (s skey) (a b akey)) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (defstrand init 1 (s s) (a a) (b b)) - (precedes ((0 1) (1 0)) ((2 0) (0 0))) - (non-orig (invk a) (invk b)) - (uniq-orig d s) - (operation encryption-test (added-strand init 1) (enc s b (invk a)) - (0 0)) - (label 27) - (parent 26) - (unrealized (1 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k28">Item <a href="#t25">28</a>, Parent: <a href="#k27">27</a>.</p> - -<div> - <svg - class='diagram' width='379.800pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 379.800 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='339.840' y1='114.960' x2='339.840' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='239.880' y1='114.960' x2='239.880' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 339.840 189.960 Q 242.880 152.460 145.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>s</title><circle cx='339.840' cy='189.960' r='6.000'/></g> - <g><title>s</title> - <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g> - <path - d='M 239.880 114.960 Q 142.920 77.460 45.960 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <path - d='M 239.880 114.960 Q 286.860 114.960 333.840 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g> - <g><title>d</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc d s)</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc (enc s b (invk a)) b)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((s s) (a a) (b b))</title> - <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <g><title>((d d) (s s) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='189.900' y='39.960' - style='text-anchor: middle;'>blanchet-corrected 28</text></svg></div> - -<pre>(defskeleton blanchet-corrected - (vars (d data) (s skey) (a b akey)) - (defstrand resp 2 (d d) (s s) (a a) (b b)) - (deflistener d) - (defstrand init 1 (s s) (a a) (b b)) - (deflistener s) - (precedes ((0 1) (1 0)) ((2 0) (0 0)) ((2 0) (3 0)) ((3 1) (1 0))) - (non-orig (invk a) (invk b)) - (uniq-orig d s) - (operation nonce-test (added-listener s) d (1 0) (enc d s)) - (label 28) - (parent 27) - (unrealized (3 0)) - (comment "empty cohort"))</pre> - -</body> -</html> +<?xml version="1.0"?>+<!-- CPSA 3.4.0 -->+<html xmlns="http://www.w3.org/1999/xhtml">+<head>+ <title>Blanchet's Simple Example Protocol</title>+ <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />+ <style>+ svg.diagram { border-width: 1px; border-style: solid }+ </style>+</head>+<body>++<pre>(herald "Blanchet's Simple Example Protocol"+ (comment "There is a flaw in this protocol by design"))+(comment "CPSA 3.4.0")+(comment "All input read from blanchet.scm")</pre>++<p id="top">Trees: <a href="#t0">0</a> <a href="#t4">4</a> <a href="#t6">6</a> <a href="#t11">11</a> <a href="#t14">14</a> <a href="#t18">18</a> <a href="#t23">23</a> <a href="#t25">25</a>.</p>++<p id="t0">Tree <a href="#top">0</a>.</p>++<div>+ <svg+ class='diagram' width='179.760pt' height='154.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.760 154.920' font-size='12.000'>+ <text+ x='89.880' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k2", "_self")'>2</text>+ <line+ x1='39.960' y1='77.460' x2='89.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k3", "_self")'>3</text>+ <line+ x1='89.880' y1='39.960' x2='139.800' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k1", "_self")'>1</text>+ <line+ x1='39.960' y1='77.460' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='63.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k0", "_self")'>0</text>+ </svg></div>++<pre>(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"))</pre>++<p id="k0">Item <a href="#t0">0</a>, Children: <a href="#k1">1</a> <a href="#k2">2</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>(enc d s)</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960' style='text-anchor: middle;'>blanchet 0</text>+ </svg></div>++<pre>(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")+ (label 0)+ (unrealized (0 1))+ (origs (s (0 0)))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s (invk a-0)) b-0)</title>+ <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a-0) (b b-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 1</text>+ </svg></div>++<pre>(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 d s)+ (operation encryption-test (added-strand resp 2) (enc d s) (0 1))+ (label 1)+ (parent 0)+ (unrealized (1 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k0">0</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>s</title><circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>s</title>+ <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 2</text>+ </svg></div>++<pre>(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))+ (label 2)+ (parent 0)+ (unrealized (1 0))+ (comment "empty cohort"))</pre>++<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k1">1</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>blanchet 3 (realized)</text></svg></div>++<pre>(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 d s)+ (operation nonce-test (contracted (a-0 a) (b-0 b)) s (1 0)+ (enc (enc s (invk a)) b))+ (label 3)+ (parent 1)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (s s) (d d))))+ (origs (d (1 1)) (s (0 0))))</pre>++<p id="t4">Tree <a href="#top">4</a>.</p>++<div>+ <svg+ class='diagram' width='129.840pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 129.840 79.920' font-size='12.000'>+ <text+ x='89.880' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k5", "_self")'>5</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k4", "_self")'>4</text>+ </svg></div>++<pre>(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"))</pre>++<p id="k4">Item <a href="#t4">4</a>, Child: <a href="#k5">5</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>(enc d s)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='39.960' y='39.960' style='text-anchor: middle;'>blanchet 4</text>+ </svg></div>++<pre>(defskeleton blanchet+ (vars (d data) (s skey) (a b akey))+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (non-orig (invk a) (invk b))+ (uniq-orig d)+ (comment "Analyze from the responder's perspective")+ (label 4)+ (unrealized (0 0))+ (origs (d (0 1)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k5">Item <a href="#t4">5</a>, Parent: <a href="#k4">4</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s (invk a)) b-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((s s) (a a) (b b-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>blanchet 5 (realized)</text></svg></div>++<pre>(defskeleton blanchet+ (vars (d data) (s skey) (a b b-0 akey))+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (defstrand init 1 (s s) (a a) (b b-0))+ (precedes ((1 0) (0 0)))+ (non-orig (invk a) (invk b))+ (uniq-orig d s)+ (operation encryption-test (added-strand init 1) (enc s (invk a))+ (0 0))+ (label 5)+ (parent 4)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (s s) (d d))))+ (origs (s (1 0)) (d (0 1))))</pre>++<p id="t6">Tree <a href="#top">6</a>.</p>++<div>+ <svg+ class='diagram' width='229.680pt' height='154.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 229.680 154.920' font-size='12.000'>+ <text+ x='89.880' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k8", "_self")'>8</text>+ <line+ x1='39.960' y1='77.460' x2='89.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k10", "_self")'>10</text>+ <line+ x1='139.800' y1='39.960' x2='189.720' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k9", "_self")'>9</text>+ <line+ x1='89.880' y1='39.960' x2='139.800' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k7", "_self")'>7</text>+ <line+ x1='39.960' y1='77.460' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='63.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k6", "_self")'>6</text>+ </svg></div>++<pre>(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"))</pre>++<p id="k6">Item <a href="#t6">6</a>, Children: <a href="#k7">7</a> <a href="#k8">8</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 6</text>+ </svg></div>++<pre>(defskeleton blanchet+ (vars (d data) (s skey) (a b akey))+ (defstrand init 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (non-orig (invk b))+ (uniq-orig s)+ (comment "From the initiator's perspective, is the secret leaked?")+ (label 6)+ (unrealized (0 1))+ (origs (s (0 0)))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k7">Item <a href="#t6">7</a>, Parent: <a href="#k6">6</a>, Child: <a href="#k9">9</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s (invk a-0)) b-0)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a-0) (b b-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>blanchet 7</text>+ </svg></div>++<pre>(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))+ (deflistener d)+ (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))+ (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))+ (non-orig (invk b))+ (uniq-orig d s)+ (operation encryption-test (added-strand resp 2) (enc d s) (0 1))+ (label 7)+ (parent 6)+ (unrealized (1 0) (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k8">Item <a href="#t6">8</a>, Parent: <a href="#k6">6</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>s</title><circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>s</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>blanchet 8</text>+ </svg></div>++<pre>(defskeleton blanchet+ (vars (d data) (s skey) (a b akey))+ (defstrand init 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (deflistener s)+ (precedes ((0 0) (2 0)) ((2 1) (0 1)))+ (non-orig (invk b))+ (uniq-orig s)+ (operation encryption-test (added-listener s) (enc d s) (0 1))+ (label 8)+ (parent 6)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k9">Item <a href="#t6">9</a>, Parent: <a href="#k7">7</a>, Child: <a href="#k10">10</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>blanchet 9</text>+ </svg></div>++<pre>(defskeleton blanchet+ (vars (d data) (s skey) (a b akey))+ (defstrand init 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))+ (non-orig (invk b))+ (uniq-orig d s)+ (operation nonce-test (contracted (a-0 a) (b-0 b)) s (2 0)+ (enc (enc s (invk a)) b))+ (label 9)+ (parent 7)+ (unrealized (1 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k10">Item <a href="#t6">10</a>, Parent: <a href="#k9">9</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 242.880 152.460 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>s</title><circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>s</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>blanchet 10</text></svg></div>++<pre>(defskeleton blanchet+ (vars (d data) (s skey) (a b akey))+ (defstrand init 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (deflistener s)+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((2 1) (0 1)) ((2 1) (1 0))+ ((3 1) (1 0)))+ (non-orig (invk b))+ (uniq-orig d s)+ (operation nonce-test (added-listener s) d (1 0) (enc d s))+ (label 10)+ (parent 9)+ (unrealized (3 0))+ (comment "empty cohort"))</pre>++<p id="t11">Tree <a href="#top">11</a>.</p>++<div>+ <svg+ class='diagram' width='179.760pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.760 79.920' font-size='12.000'>+ <text+ x='139.800' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k13", "_self")'>13</text>+ <line+ x1='89.880' y1='39.960' x2='139.800' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k12", "_self")'>12</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k11", "_self")'>11</text>+ </svg></div>++<pre>(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"))</pre>++<p id="k11">Item <a href="#t11">11</a>, Child: <a href="#k12">12</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 11</text>+ </svg></div>++<pre>(defskeleton blanchet+ (vars (d data) (s skey) (a b akey))+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (non-orig (invk a) (invk b))+ (uniq-orig d)+ (comment "From the responders's perspective, is the secret leaked?")+ (label 11)+ (unrealized (0 0) (1 0))+ (preskeleton)+ (comment "Not a skeleton"))</pre>++<p id="k12">Item <a href="#t11">12</a>, Parent: <a href="#k11">11</a>, Child: <a href="#k13">13</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 12</text>+ </svg></div>++<pre>(defskeleton blanchet+ (vars (d data) (s skey) (a b akey))+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (precedes ((0 1) (1 0)))+ (non-orig (invk a) (invk b))+ (uniq-orig d)+ (comment "From the responders's perspective, is the secret leaked?")+ (label 12)+ (parent 11)+ (unrealized (0 0))+ (origs (d (0 1)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k13">Item <a href="#t11">13</a>, Parent: <a href="#k12">12</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 114.960 Q 142.920 77.460 45.960 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s (invk a)) b-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s (invk a)) b)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((s s) (a a) (b b-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>blanchet 13 (realized)</text></svg>+ </div>++<pre>(defskeleton blanchet+ (vars (d data) (s skey) (a b b-0 akey))+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (defstrand init 1 (s s) (a a) (b b-0))+ (precedes ((0 1) (1 0)) ((2 0) (0 0)))+ (non-orig (invk a) (invk b))+ (uniq-orig d s)+ (operation encryption-test (added-strand init 1) (enc s (invk a))+ (0 0))+ (label 13)+ (parent 12)+ (unrealized)+ (shape)+ (maps ((0 1) ((a a) (b b) (s s) (d d))))+ (origs (s (2 0)) (d (0 1))))</pre>++<p id="t14">Tree <a href="#top">14</a>.</p>++<div>+ <svg+ class='diagram' width='179.760pt' height='154.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.760 154.920' font-size='12.000'>+ <text+ x='89.880' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k16", "_self")'>16</text>+ <line+ x1='39.960' y1='77.460' x2='89.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k17", "_self")'>17</text>+ <line+ x1='89.880' y1='39.960' x2='139.800' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k15", "_self")'>15</text>+ <line+ x1='39.960' y1='77.460' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='63.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k14", "_self")'>14</text>+ </svg></div>++<pre>(defprotocol blanchet-corrected basic+ (defrole init+ (vars (a b akey) (s skey) (d data))+ (trace (send (enc (enc s b (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 b (invk a)) b)) (send (enc d s)))+ (uniq-orig d))+ (comment "Corrected Blanchet's protocol"))</pre>++<p id="k14">Item <a href="#t14">14</a>, Children: <a href="#k15">15</a> <a href="#k16">16</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>(enc d s)</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 14</text></svg></div>++<pre>(defskeleton blanchet-corrected+ (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")+ (label 14)+ (unrealized (0 1))+ (origs (s (0 0)))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k15">Item <a href="#t14">15</a>, Parent: <a href="#k14">14</a>, Child: <a href="#k17">17</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s b-0 (invk a-0)) b-0)</title>+ <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a-0) (b b-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 15</text></svg></div>++<pre>(defskeleton blanchet-corrected+ (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 d s)+ (operation encryption-test (added-strand resp 2) (enc d s) (0 1))+ (label 15)+ (parent 14)+ (unrealized (1 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k16">Item <a href="#t14">16</a>, Parent: <a href="#k14">14</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>s</title><circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>s</title>+ <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 16</text></svg></div>++<pre>(defskeleton blanchet-corrected+ (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))+ (label 16)+ (parent 14)+ (unrealized (1 0))+ (comment "empty cohort"))</pre>++<p id="k17">Item <a href="#t14">17</a>, Parent: <a href="#k15">15</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 17 (realized)</text>+ </svg></div>++<pre>(defskeleton blanchet-corrected+ (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 d s)+ (operation nonce-test (contracted (a-0 a) (b-0 b)) s (1 0)+ (enc (enc s b (invk a)) b))+ (label 17)+ (parent 15)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (s s) (d d))))+ (origs (d (1 1)) (s (0 0))))</pre>++<p id="t18">Tree <a href="#top">18</a>.</p>++<div>+ <svg+ class='diagram' width='229.680pt' height='154.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 229.680 154.920' font-size='12.000'>+ <text+ x='89.880' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k20", "_self")'>20</text>+ <line+ x1='39.960' y1='77.460' x2='89.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k22", "_self")'>22</text>+ <line+ x1='139.800' y1='39.960' x2='189.720' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k21", "_self")'>21</text>+ <line+ x1='89.880' y1='39.960' x2='139.800' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k19", "_self")'>19</text>+ <line+ x1='39.960' y1='77.460' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='63.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k18", "_self")'>18</text>+ </svg></div>++<pre>(defprotocol blanchet-corrected basic+ (defrole init+ (vars (a b akey) (s skey) (d data))+ (trace (send (enc (enc s b (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 b (invk a)) b)) (send (enc d s)))+ (uniq-orig d))+ (comment "Corrected Blanchet's protocol"))</pre>++<p id="k18">Item <a href="#t18">18</a>, Children: <a href="#k19">19</a> <a href="#k20">20</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 18</text></svg></div>++<pre>(defskeleton blanchet-corrected+ (vars (d data) (s skey) (a b akey))+ (defstrand init 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (non-orig (invk b))+ (uniq-orig s)+ (comment "From the initiator's perspective, is the secret leaked?")+ (label 18)+ (unrealized (0 1))+ (origs (s (0 0)))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k19">Item <a href="#t18">19</a>, Parent: <a href="#k18">18</a>, Child: <a href="#k21">21</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s b-0 (invk a-0)) b-0)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a-0) (b b-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 19</text></svg></div>++<pre>(defskeleton blanchet-corrected+ (vars (d data) (s skey) (a b a-0 b-0 akey))+ (defstrand init 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))+ (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))+ (non-orig (invk b))+ (uniq-orig d s)+ (operation encryption-test (added-strand resp 2) (enc d s) (0 1))+ (label 19)+ (parent 18)+ (unrealized (1 0) (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k20">Item <a href="#t18">20</a>, Parent: <a href="#k18">18</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>s</title><circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>s</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 20</text></svg></div>++<pre>(defskeleton blanchet-corrected+ (vars (d data) (s skey) (a b akey))+ (defstrand init 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (deflistener s)+ (precedes ((0 0) (2 0)) ((2 1) (0 1)))+ (non-orig (invk b))+ (uniq-orig s)+ (operation encryption-test (added-listener s) (enc d s) (0 1))+ (label 20)+ (parent 18)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k21">Item <a href="#t18">21</a>, Parent: <a href="#k19">19</a>, Child: <a href="#k22">22</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 21</text></svg></div>++<pre>(defskeleton blanchet-corrected+ (vars (d data) (s skey) (a b akey))+ (defstrand init 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))+ (non-orig (invk b))+ (uniq-orig d s)+ (operation nonce-test (contracted (a-0 a) (b-0 b)) s (2 0)+ (enc (enc s b (invk a)) b))+ (label 21)+ (parent 19)+ (unrealized (1 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k22">Item <a href="#t18">22</a>, Parent: <a href="#k21">21</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 242.880 152.460 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>s</title><circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>s</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 22</text></svg></div>++<pre>(defskeleton blanchet-corrected+ (vars (d data) (s skey) (a b akey))+ (defstrand init 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (deflistener s)+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((2 1) (0 1)) ((2 1) (1 0))+ ((3 1) (1 0)))+ (non-orig (invk b))+ (uniq-orig d s)+ (operation nonce-test (added-listener s) d (1 0) (enc d s))+ (label 22)+ (parent 21)+ (unrealized (3 0))+ (comment "empty cohort"))</pre>++<p id="t23">Tree <a href="#top">23</a>.</p>++<div>+ <svg+ class='diagram' width='129.840pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 129.840 79.920' font-size='12.000'>+ <text+ x='89.880' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k24", "_self")'>24</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k23", "_self")'>23</text>+ </svg></div>++<pre>(defprotocol blanchet-corrected basic+ (defrole init+ (vars (a b akey) (s skey) (d data))+ (trace (send (enc (enc s b (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 b (invk a)) b)) (send (enc d s)))+ (uniq-orig d))+ (comment "Corrected Blanchet's protocol"))</pre>++<p id="k23">Item <a href="#t23">23</a>, Child: <a href="#k24">24</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>(enc d s)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 23</text></svg></div>++<pre>(defskeleton blanchet-corrected+ (vars (d data) (s skey) (a b akey))+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (non-orig (invk a) (invk b))+ (uniq-orig d)+ (comment "Analyze from the responder's perspective")+ (label 23)+ (unrealized (0 0))+ (origs (d (0 1)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k24">Item <a href="#t23">24</a>, Parent: <a href="#k23">23</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((s s) (a a) (b b))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 24 (realized)</text>+ </svg></div>++<pre>(defskeleton blanchet-corrected+ (vars (d data) (s skey) (a b akey))+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (defstrand init 1 (s s) (a a) (b b))+ (precedes ((1 0) (0 0)))+ (non-orig (invk a) (invk b))+ (uniq-orig d s)+ (operation encryption-test (added-strand init 1) (enc s b (invk a))+ (0 0))+ (label 24)+ (parent 23)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (s s) (d d))))+ (origs (s (1 0)) (d (0 1))))</pre>++<p id="t25">Tree <a href="#top">25</a>.</p>++<div>+ <svg+ class='diagram' width='229.680pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 229.680 79.920' font-size='12.000'>+ <text+ x='189.720' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k28", "_self")'>28</text>+ <line+ x1='139.800' y1='39.960' x2='189.720' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k27", "_self")'>27</text>+ <line+ x1='89.880' y1='39.960' x2='139.800' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k26", "_self")'>26</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k25", "_self")'>25</text>+ </svg></div>++<pre>(defprotocol blanchet-corrected basic+ (defrole init+ (vars (a b akey) (s skey) (d data))+ (trace (send (enc (enc s b (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 b (invk a)) b)) (send (enc d s)))+ (uniq-orig d))+ (comment "Corrected Blanchet's protocol"))</pre>++<p id="k25">Item <a href="#t25">25</a>, Child: <a href="#k26">26</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc d s)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 25</text></svg></div>++<pre>(defskeleton blanchet-corrected+ (vars (d data) (s skey) (a b akey))+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (non-orig (invk a) (invk b))+ (uniq-orig d)+ (comment "From the responders's perspective, is the secret leaked?")+ (label 25)+ (unrealized (0 0) (1 0))+ (preskeleton)+ (comment "Not a skeleton"))</pre>++<p id="k26">Item <a href="#t25">26</a>, Parent: <a href="#k25">25</a>, Child: <a href="#k27">27</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 26</text></svg></div>++<pre>(defskeleton blanchet-corrected+ (vars (d data) (s skey) (a b akey))+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (precedes ((0 1) (1 0)))+ (non-orig (invk a) (invk b))+ (uniq-orig d)+ (comment "From the responders's perspective, is the secret leaked?")+ (label 26)+ (parent 25)+ (unrealized (0 0))+ (origs (d (0 1)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k27">Item <a href="#t25">27</a>, Parent: <a href="#k26">26</a>, Child: <a href="#k28">28</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 114.960 Q 142.920 77.460 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((s s) (a a) (b b))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 27</text></svg></div>++<pre>(defskeleton blanchet-corrected+ (vars (d data) (s skey) (a b akey))+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (defstrand init 1 (s s) (a a) (b b))+ (precedes ((0 1) (1 0)) ((2 0) (0 0)))+ (non-orig (invk a) (invk b))+ (uniq-orig d s)+ (operation encryption-test (added-strand init 1) (enc s b (invk a))+ (0 0))+ (label 27)+ (parent 26)+ (unrealized (1 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k28">Item <a href="#t25">28</a>, Parent: <a href="#k27">27</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 242.880 152.460 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>s</title><circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>s</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 142.920 77.460 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 114.960 Q 286.860 114.960 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>d</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc d s)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc s b (invk a)) b)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((s s) (a a) (b b))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((d d) (s s) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>blanchet-corrected 28</text></svg></div>++<pre>(defskeleton blanchet-corrected+ (vars (d data) (s skey) (a b akey))+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (deflistener d)+ (defstrand init 1 (s s) (a a) (b b))+ (deflistener s)+ (precedes ((0 1) (1 0)) ((2 0) (0 0)) ((2 0) (3 0)) ((3 1) (1 0)))+ (non-orig (invk a) (invk b))+ (uniq-orig d s)+ (operation nonce-test (added-listener s) d (1 0) (enc d s))+ (label 28)+ (parent 27)+ (unrealized (3 0))+ (comment "empty cohort"))</pre>++</body>+</html>
doc/examples/bltk_or.xhtml view
@@ -1,5 +1,5 @@ <?xml version="1.0"?>-<!-- CPSA 3.2.2 -->+<!-- CPSA 3.4.0 --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Otway-Rees Protocol</title>@@ -13,7 +13,7 @@ <pre>(herald "Otway-Rees Protocol" (comment "Standard version using variables of sort mesg") (algebra diffie-hellman))-(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from bltk_or.scm")</pre> <p id="t0">Tree 0.</p>
+ doc/examples/dh_mim.scm view
@@ -0,0 +1,40 @@+; Unauthenticated Diffie-Hellman key exchange++; In this example, the initiator and responder roles participate in a+; Diffie-Hellman exchange, and then a nonce is transmitted by the+; initiator and received by the responder. ++; A man-in-the-middle attack is possible, because there is no +; attempt made to authenticate either of the parties. Therefore, the+; adversary may emulate the responder to the initator and vice versa.++(herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman)+)++(defprotocol dh_mim diffie-hellman+ (defrole init+ (vars (x expn) (h base) (n text))+ (trace+ (send (exp (gen) x))+ (recv h)+ (send (enc n (exp h x))))+ (uniq-gen x))+ (defrole resp+ (vars (y expn) (h base) (n text))+ (trace+ (recv h)+ (send (exp (gen) y))+ (recv (enc n (exp h y))))+ (uniq-gen y))+ (comment "Diffie-hellman key exchange followed by an encryption"))+++(defskeleton dh_mim+ (vars (n text) (hx hy base) (x y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h hx) (y y))+ (precedes ((0 2) (1 2)))+ (uniq-orig n)+ (pen-non-orig x y)+ (comment "Agreement on the encrypted text only"))+
+ doc/examples/dh_mim.xhtml view
file too large to diff
doc/examples/envelope.xhtml view
@@ -1,5 +1,5 @@ <?xml version="1.0"?>-<!-- CPSA 3.2.2 -->+<!-- CPSA 3.4.0 --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Envelope Protocol</title>@@ -11,8 +11,8 @@ <body> <pre>(herald "Envelope Protocol" (bound 20))-(comment "CPSA 3.2.2")-(comment "All input read from envelope_short.scm")+(comment "CPSA 3.4.0")+(comment "All input read from envelope.scm") (comment "Strand count bounded at 20")</pre> <p id="top">Trees: <a href="#t0">0</a> <a href="#t59">59</a>.</p>
+ doc/examples/ffgg.xhtml view
@@ -0,0 +1,447 @@+<?xml version="1.0"?>+<!-- CPSA 3.4.0 -->+<html xmlns="http://www.w3.org/1999/xhtml">+<head>+ <title>The ffgg Protocol</title>+ <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />+ <style>+ svg.diagram { border-width: 1px; border-style: solid }+ </style>+</head>+<body>++<pre>(herald "The ffgg Protocol"+ (comment "From A Necessarily Parallel Attack by Jon K. Millen"))+(comment "CPSA 3.4.0")+(comment "All input read from ffgg.scm")</pre>++<p id="t0">Tree 0.</p>++<div>+ <svg+ class='diagram' width='279.600pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.600 79.920' font-size='12.000'>+ <text+ x='239.640' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k4", "_self")'>4</text>+ <line+ x1='189.720' y1='39.960' x2='239.640' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k3", "_self")'>3</text>+ <line+ x1='139.800' y1='39.960' x2='189.720' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k2", "_self")'>2</text>+ <line+ x1='89.880' y1='39.960' x2='139.800' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k1", "_self")'>1</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k0", "_self")'>0</text>+ </svg></div>++<pre>(defprotocol ffgg basic+ (defrole init+ (vars (a b name) (n1 n2 m x y text))+ (trace (send a) (recv (cat b n1 n2))+ (send (cat a (enc n1 n2 m (pubk b))))+ (recv (cat n1 x (enc x y n1 (pubk b))))))+ (defrole resp+ (vars (b a name) (n1 n2 x y text))+ (trace (recv a) (send (cat b n1 n2))+ (recv (cat a (enc n1 x y (pubk b))))+ (send (cat n1 x (enc x y n1 (pubk b)))))+ (uniq-orig n1 n2)))</pre>++<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>m</title><circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>m</title>+ <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(cat n1 x (enc x y n1 (pubk b)))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(cat a (enc n1 n2 m (pubk b)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(cat b n1 n2)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>a</title><circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text x='89.940' y='39.960' style='text-anchor: middle;'>ffgg 0</text>+ </svg></div>++<pre>(defskeleton ffgg+ (vars (m n1 n2 x y text) (b a name))+ (defstrand init 4 (n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))+ (deflistener m)+ (non-orig (privk b))+ (uniq-orig m)+ (label 0)+ (unrealized (1 0))+ (preskeleton)+ (comment "Not a skeleton"))</pre>++<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k2">2</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>m</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(cat n1 x (enc x y n1 (pubk b)))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat a (enc n1 n2 m (pubk b)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(cat b n1 n2)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>a</title><circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text x='89.940' y='39.960' style='text-anchor: middle;'>ffgg 1</text>+ </svg></div>++<pre>(defskeleton ffgg+ (vars (m n1 n2 x y text) (b a name))+ (defstrand init 4 (n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))+ (deflistener m)+ (precedes ((0 2) (1 0)))+ (non-orig (privk b))+ (uniq-orig m)+ (label 1)+ (parent 0)+ (unrealized (1 0))+ (origs (m (0 2)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k1">1</a>, Child: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='339.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat n1 n2 (enc n2 m n1 (pubk b)))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(cat a-0 (enc n1 n2 m (pubk b)))</title>+ <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat b n1 n2-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>a-0</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>m</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>m</title>+ <circle style='fill: red;' cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(cat n1 x (enc x y n1 (pubk b)))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 136.920 227.460 233.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat a (enc n1 n2 m (pubk b)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(cat b n1 n2)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>a</title><circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n1 n1) (n2 n2-0) (x n2) (y m) (b b) (a a-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>ffgg 2</text>+ </svg></div>++<pre>(defskeleton ffgg+ (vars (m n1 n2 x y n2-0 text) (b a a-0 name))+ (defstrand init 4 (n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))+ (deflistener m)+ (defstrand resp 4 (n1 n1) (n2 n2-0) (x n2) (y m) (b b) (a a-0))+ (precedes ((0 2) (2 2)) ((2 1) (0 1)) ((2 3) (1 0)))+ (non-orig (privk b))+ (uniq-orig m n1 n2-0)+ (operation nonce-test (added-strand resp 4) m (1 0)+ (enc n1 n2 m (pubk b)))+ (label 2)+ (parent 1)+ (unrealized (1 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k2">2</a>, Child: <a href="#k4">4</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='339.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 339.960 Q 242.880 302.460 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat n2 m (enc m n1 n2 (pubk b)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat a-1 (enc n2 m n1 (pubk b)))</title>+ <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat b n2 n2-1)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>a-1</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat n1 n2 (enc n2 m n1 (pubk b)))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(cat a-0 (enc n1 n2 m (pubk b)))</title>+ <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat b n1 n2-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>a-0</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>m</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>m</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(cat n1 x (enc x y n1 (pubk b)))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 136.920 227.460 233.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 264.960 Q 186.900 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat a (enc n1 n2 m (pubk b)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(cat b n1 n2)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>a</title><circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n1 n2) (n2 n2-1) (x m) (y n1) (b b) (a a-1))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n1 n1) (n2 n2-0) (x n2) (y m) (b b) (a a-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>ffgg 3</text>+ </svg></div>++<pre>(defskeleton ffgg+ (vars (m n1 n2 x y n2-0 n2-1 text) (b a a-0 a-1 name))+ (defstrand init 4 (n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))+ (deflistener m)+ (defstrand resp 4 (n1 n1) (n2 n2-0) (x n2) (y m) (b b) (a a-0))+ (defstrand resp 4 (n1 n2) (n2 n2-1) (x m) (y n1) (b b) (a a-1))+ (precedes ((0 2) (2 2)) ((0 2) (3 2)) ((2 1) (0 1)) ((2 3) (1 0))+ ((3 1) (0 1)) ((3 3) (1 0)))+ (non-orig (privk b))+ (uniq-orig m n1 n2 n2-0 n2-1)+ (operation nonce-test (added-strand resp 4) m (1 0)+ (enc n1 n2 m (pubk b)) (enc n2 m n1 (pubk b)))+ (label 3)+ (parent 2)+ (unrealized (3 2))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='414.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 414.960 Q 242.880 377.460 145.920 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat n2 m (enc m n1 n2 (pubk b)))</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g><title>(cat a-1 (enc n2 m n1 (pubk b)))</title>+ <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat b n2 n2-1)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>a-1</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 286.860 339.960 333.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat n1 n2 (enc n2 m n1 (pubk b)))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(cat a-0 (enc n1 n2 m (pubk b)))</title>+ <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat b n1 n2-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>a-0</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>m</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>m</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(cat n1 x (enc x y n1 (pubk b)))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 136.920 227.460 233.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat a (enc n1 n2 m (pubk b)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(cat b n1 n2)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>a</title><circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n1 n2) (n2 n2-1) (x m) (y n1) (b b) (a a-1))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n1 n1) (n2 n2-0) (x n2) (y m) (b b) (a a-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>ffgg 4 (realized)</text></svg></div>++<pre>(defskeleton ffgg+ (vars (m n1 n2 x y n2-0 n2-1 text) (b a a-0 a-1 name))+ (defstrand init 4 (n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))+ (deflistener m)+ (defstrand resp 4 (n1 n1) (n2 n2-0) (x n2) (y m) (b b) (a a-0))+ (defstrand resp 4 (n1 n2) (n2 n2-1) (x m) (y n1) (b b) (a a-1))+ (precedes ((0 2) (2 2)) ((2 1) (0 1)) ((2 3) (3 2)) ((3 1) (0 1))+ ((3 3) (1 0)))+ (non-orig (privk b))+ (uniq-orig m n1 n2 n2-0 n2-1)+ (operation nonce-test (displaced 4 2 resp 4) m (3 2)+ (enc n1 n2 m (pubk b)))+ (label 4)+ (parent 3)+ (unrealized)+ (shape)+ (maps ((0 1) ((b b) (m m) (a a) (n1 n1) (n2 n2) (x x) (y y))))+ (origs (n1 (2 1)) (n2-0 (2 1)) (n2 (3 1)) (n2-1 (3 1)) (m (0 2))))</pre>++</body>+</html>
+ doc/examples/fluffy_draft03_fixing_gske.scm view
@@ -0,0 +1,51 @@+(herald "GSKE, part of Fluffy: Simplified Key Exchange for Constrained Environments draft-hardjono-ace-fluffy-03"+ (comment "Proposed fixes to the Internet-Draft: https://www.ietf.org/archive/id/draft-hardjono-ace-fluffy-03.txt"))++;; This model does not include timestamps or optional fields.+(defprotocol fluffy basic+ (defrole sp + (vars (b s name) (nb g text) (gk skey))+ (trace + (send (cat "req" s g (enc (hash (cat "req" s g)) b nb (ltk s b))))+ (recv (cat "resp" b (enc s g nb gk (ltk s b))))))+ (defrole keyserv+ (vars (a b s name) (nb na g text) (gk skey))+ (trace+ (recv (cat "req" s g (enc (hash (cat "req" s g)) b nb (ltk s b))))+ (send (cat "resp" b (enc s g nb gk (ltk s b))))+ (recv (cat "fetch" s g (enc (hash (cat "fetch" s g)) a na (ltk s a))))+ (send (cat "deliver" a (enc s g na gk (ltk s a)))))+ (uniq-gen gk))+ (defrole client+ (vars (a b s name) (na g text) (gk skey))+ (trace+ (send (cat "fetch" s g + (enc (hash (cat "fetch" s g)) a na (ltk s a))))+ (recv (cat "deliver" a (enc s g na gk (ltk s a)))))))++;; Service principal's (sp) point-of-view+(defskeleton fluffy+ (vars (b s name) (nb text) (gk skey))+ (defstrand sp 2 (b b) (s s) (nb nb) (gk gk))+ (non-orig (ltk s b))+ (uniq-orig nb)+ (comment "Service Principal's point-of-view"))++;; Simple key distribution center's (skdc) point-of-view+(defskeleton fluffy+ (vars (a b s name) (nb na text) (gk skey))+ (defstrand keyserv 4 (a a) (b b) (s s) (nb nb) (na na) (gk gk))+ (non-orig (ltk s b) (ltk s a))+ (uniq-gen gk)+ (comment "SKDC's point-of-view"))++;; Client's point-of-view+(defskeleton fluffy+ (vars (a s name) (na text) (gk skey))+ (defstrand client 2 (a a) (s s) (na na) (gk gk))+ (non-orig (ltk s a))+ (uniq-orig na)+ (comment "Clients's point-of-view"))+++
+ doc/examples/fluffy_draft03_gske.scm view
@@ -0,0 +1,50 @@+(herald "GSKE, part of Fluffy: Simplified Key Exchange for Constrained Environments draft-hardjono-ace-fluffy-03"+ (comment "Based on the Internet-Draft: https://www.ietf.org/archive/id/draft-hardjono-ace-fluffy-03.txt"))++;; This model does not include timestamps or optional fields.+(defprotocol fluffy basic+ (defrole sp + (vars (b s name) (nb g text) (gk skey))+ (trace + (send (cat "req" s g (enc b nb (ltk s b))))+ (recv (cat "resp" b (enc s g nb gk (ltk s b))))))+ (defrole keyserv+ (vars (a b s name) (nb na g text) (gk skey))+ (trace+ (recv (cat "req" s g (enc b nb (ltk s b))))+ (send (cat "resp" b (enc s g nb gk (ltk s b))))+ (recv (cat "fetch" s g (enc a na (ltk s a))))+ (send (cat "deliver" a (enc s g na gk (ltk s a)))))+ (uniq-gen gk))+ (defrole client+ (vars (a b s name) (na g text) (gk skey))+ (trace+ (send (cat "fetch" s g (enc a na (ltk s a))))+ (recv (cat "deliver" a (enc s g na gk (ltk s a)))))))++;; Service principal's (sp) point-of-view+(defskeleton fluffy+ (vars (b s name) (nb text) (gk skey))+ (defstrand sp 2 (b b) (s s) (nb nb) (gk gk))+ (non-orig (ltk s b))+ (uniq-orig nb)+ (comment "Service Principal's point-of-view"))++;; Simple key distribution center's (skdc) point-of-view+(defskeleton fluffy+ (vars (a b s name) (nb na text) (gk skey))+ (defstrand keyserv 4 (a a) (b b) (s s) (nb nb) (na na) (gk gk))+ (non-orig (ltk s b) (ltk s a))+ (uniq-gen gk)+ (comment "SKDC's point-of-view"))++;; Client's point-of-view+(defskeleton fluffy+ (vars (a s name) (na text) (gk skey))+ (defstrand client 2 (a a) (s s) (na na) (gk gk))+ (non-orig (ltk s a))+ (uniq-orig na)+ (comment "Clients's point-of-view"))+++
+ doc/examples/fluffy_draft03_improving_pske.scm view
@@ -0,0 +1,47 @@+(herald "Fluffy: Simplified Key Exchange for Constrained Environments draft-hardjono-ace-fluffy-03"+ (comment "This version does not include timestamps or optional fields"))++;; The protocol aims to provide mutual authentication in addition to key establishment.+;; This model does not include timestamps or optional fields.+(defprotocol fluffy basic+ (defrole client + (vars (a b s name) (n1 n2 text) (k skey) (m mesg))+ (trace + (send (cat "req" a s b (enc (hash (cat "req" a s b)) a n1 (ltk s a))))+ (recv (cat "resp" a s b m (enc s b n1 k (ltk s a))))+ (send (cat "est" a s b m (enc (hash (cat "est" a s b m)) a n2 k)))+ (recv (enc "ack" a b n2 k))))+ (defrole skdc+ (vars (a b s name) (n1 text) (k skey))+ (trace+ (recv (cat "req" a s b (enc (hash (cat "req" a s b)) a n1 (ltk s a))))+ (send (cat "resp" a s b (enc a k (ltk s b)) (enc s b n1 k (ltk s a)))))+ (uniq-gen k))+ (defrole sp+ (vars (a b s name) (n2 text) (k skey))+ (trace+ (recv (cat "est" a s b (enc a k (ltk s b)) (enc (hash (cat "est" a s b (enc a k (ltk s b)))) a n2 k)))+ (send (enc "ack" a b n2 k)))))++;; Client's point-of-view+(defskeleton fluffy+ (vars (a b s name) (n1 n2 text) (k skey) (m mesg))+ (defstrand client 4 (a a) (b b) (s s) (n1 n1) (n2 n2) (k k) (m m))+ (non-orig (ltk s b) (ltk s a))+ (uniq-orig n1 n2)+ (comment "Client's point-of-view"))++;; Simple key distribution center principal's (SKDC) point-of-view+(defskeleton fluffy+ (vars (a b s name) (n1 text) (k skey))+ (defstrand skdc 2 (a a) (b b) (s s) (n1 n1) (k k))+ (non-orig (ltk s b) (ltk s a))+ (comment "Simple Key Distribution Center's point-of-view"))++;; Service principal or SP's point-of-view+(defskeleton fluffy+ (vars (a b s name) (n2 text) (k skey))+ (defstrand sp 2 (a a) (b b) (s s) (n2 n2) (k k))+ (non-orig (ltk s b) (ltk s a))+ (comment "Service Principal's point-of-view"))+
+ doc/examples/fluffy_draft03_pske.scm view
@@ -0,0 +1,47 @@+(herald "PSKE, part of Fluffy: Simplified Key Exchange for Constrained Environments draft-hardjono-ace-fluffy-03"+ (comment "Based on the Internet-Draft: https://www.ietf.org/archive/id/draft-hardjono-ace-fluffy-03.txt"))++;; The protocol aims to provide mutual authentication in addition to key establishment.+;; This model does not include timestamps or optional fields.+(defprotocol fluffy basic+ (defrole client + (vars (a b s name) (n1 n2 text) (k skey) (m mesg))+ (trace + (send (cat "req" a s b (enc a n1 (ltk s a))))+ (recv (cat "resp" a s b m (enc s b n1 k (ltk s a))))+ (send (cat "est" a s b m (enc a n2 k)))+ (recv (enc "ack" a b n2 k))))+ (defrole skdc+ (vars (a b s name) (n1 text) (k skey))+ (trace+ (recv (cat "req" a s b (enc a n1 (ltk s a))))+ (send (cat "resp" a s b (enc a k (ltk s b)) (enc s b n1 k (ltk s a)))))+ (uniq-gen k))+ (defrole sp+ (vars (a b s name) (n2 text) (k skey))+ (trace+ (recv (cat "est" a s b (enc a k (ltk s b)) (enc a n2 k)))+ (send (enc "ack" a b n2 k)))))++;; Client's point-of-view+(defskeleton fluffy+ (vars (a b s name) (n1 n2 text) (k skey) (m mesg))+ (defstrand client 4 (a a) (b b) (s s) (n1 n1) (n2 n2) (k k) (m m))+ (non-orig (ltk s b) (ltk s a))+ (uniq-orig n1 n2)+ (comment "Client's point-of-view"))++;; Simple key distribution center principal's (skdc) point-of-view+(defskeleton fluffy+ (vars (a b s name) (n1 text) (k skey))+ (defstrand skdc 2 (a a) (b b) (s s) (n1 n1) (k k))+ (non-orig (ltk s b) (ltk s a))+ (comment "Simple Key Distribution Center's point-of-view"))++;; Service principal's (sp) point-of-view+(defskeleton fluffy+ (vars (a b s name) (n2 text) (k skey))+ (defstrand sp 2 (a a) (b b) (s s) (n2 n2) (k k))+ (non-orig (ltk s b) (ltk s a))+ (comment "Service Principal's point-of-view"))+
+ doc/examples/fnof_test.xhtml view
@@ -0,0 +1,658 @@+<?xml version="1.0"?>+<!-- CPSA 3.4.0 -->+<html xmlns="http://www.w3.org/1999/xhtml">+<head>+ <title>Function constraint test protocol</title>+ <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />+ <style>+ svg.diagram { border-width: 1px; border-style: solid }+ </style>+</head>+<body>++<pre>(herald "Function constraint test protocol"+ (comment "Skeletons 2, 4, and 7 should have no shapes."))+(comment "CPSA 3.4.0")+(comment "All input read from fnof_test.scm")</pre>++<p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t3">3</a> <a href="#t5">5</a> <a href="#t6">6</a> <a href="#t8">8</a> <a href="#t10">10</a>.</p>++<p id="t0">Tree <a href="#top">0</a>.</p>++<div>+ <svg+ class='diagram' width='129.840pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 129.840 79.920' font-size='12.000'>+ <text+ x='89.880' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k1", "_self")'>1</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k0", "_self")'>0</text>+ </svg></div>++<pre>(defprotocol fnoftest basic+ (defrole init+ (vars (an0 an1 n0 n1 text) (k skey))+ (trace (send (cat n0 (enc an0 an1 n0 n1 k))) (recv n1))+ (non-orig k)+ (uniq-orig n0 n1)))</pre>++<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n1</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n0 (enc an0 an1 n0 n1 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960' style='text-anchor: middle;'>fnoftest 0</text>+ </svg></div>++<pre>(defskeleton fnoftest+ (vars (an0 an1 n0 n1 text) (k skey))+ (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))+ (non-orig k)+ (uniq-orig n0 n1)+ (label 0)+ (unrealized (0 1))+ (origs (n0 (0 0)) (n1 (0 0)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n0</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n0 (enc an0 an1 n0 n0 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((an0 an0) (an1 an1) (n0 n0) (n1 n0) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>fnoftest 1 (realized)</text></svg></div>++<pre>(defskeleton fnoftest+ (vars (an0 an1 n0 text) (k skey))+ (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n0) (k k))+ (non-orig k)+ (uniq-orig n0)+ (operation nonce-test (displaced 1 0 init 1) n1 (0 1)+ (enc an0 an1 n0 n1 k))+ (label 1)+ (parent 0)+ (unrealized)+ (shape)+ (maps ((0) ((an0 an0) (an1 an1) (n0 n0) (n1 n0) (k k))))+ (origs (n0 (0 0))))</pre>++<p id="t2">Tree <a href="#top">2</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 79.920' font-size='12.000'>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k2", "_self")'>2</text>+ </svg></div>++<pre>(defprotocol fnoftest basic+ (defrole init+ (vars (an0 an1 n0 n1 text) (k skey))+ (trace (send (cat n0 (enc an0 an1 n0 n1 k))) (recv n1))+ (non-orig k)+ (uniq-orig n0 n1)))</pre>++<p id="k2">Item <a href="#t2">2</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n1</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n0 (enc an0 an1 n0 n1 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960' style='text-anchor: middle;'>fnoftest 2</text>+ </svg></div>++<pre>(defskeleton fnoftest+ (vars (an0 an1 n0 n1 text) (k skey))+ (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))+ (fn-of (a (an0 n0) (an1 n1)))+ (neq (an0 an1))+ (non-orig k)+ (uniq-orig n0 n1)+ (label 2)+ (unrealized (0 1))+ (origs (n0 (0 0)) (n1 (0 0)))+ (comment "empty cohort"))</pre>++<p id="t3">Tree <a href="#top">3</a>.</p>++<div>+ <svg+ class='diagram' width='129.840pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 129.840 79.920' font-size='12.000'>+ <text+ x='89.880' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k4", "_self")'>4</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k3", "_self")'>3</text>+ </svg></div>++<pre>(defprotocol fnoftest basic+ (defrole init+ (vars (an0 an1 n0 n1 text) (k skey))+ (trace (send (cat n0 (enc an0 an1 n0 n1 k))) (recv n1))+ (non-orig k)+ (uniq-orig n0 n1)))</pre>++<p id="k3">Item <a href="#t3">3</a>, Child: <a href="#k4">4</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n1</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n1 (enc an0 an1 n1 n1 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((an0 an0) (an1 an1) (n0 n1) (n1 n1) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>fnoftest 3 (realized)</text></svg></div>++<pre>(defskeleton fnoftest+ (vars (an0 an1 n1 text) (k skey))+ (defstrand init 2 (an0 an0) (an1 an1) (n0 n1) (n1 n1) (k k))+ (fn-of (a (an0 n1) (an1 n1)))+ (non-orig k)+ (uniq-orig n1)+ (label 3)+ (unrealized)+ (preskeleton)+ (comment "Not a skeleton"))</pre>++<p id="k4">Item <a href="#t3">4</a>, Parent: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n1</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n1 (enc an1 an1 n1 n1 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((an0 an1) (an1 an1) (n0 n1) (n1 n1) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>fnoftest 4 (realized)</text></svg></div>++<pre>(defskeleton fnoftest+ (vars (an1 n1 text) (k skey))+ (defstrand init 2 (an0 an1) (an1 an1) (n0 n1) (n1 n1) (k k))+ (fn-of (a (an1 n1)))+ (non-orig k)+ (uniq-orig n1)+ (label 4)+ (parent 3)+ (unrealized)+ (shape)+ (maps ((0) ((an1 an1) (n1 n1) (k k))))+ (origs (n1 (0 0))))</pre>++<p id="t5">Tree <a href="#top">5</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 79.920' font-size='12.000'>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k5", "_self")'>5</text>+ </svg></div>++<pre>(defprotocol fnoftest basic+ (defrole init+ (vars (an0 an1 n0 n1 text) (k skey))+ (trace (send (cat n0 (enc an0 an1 n0 n1 k))) (recv n1))+ (non-orig k)+ (uniq-orig n0 n1)))</pre>++<p id="k5">Item <a href="#t5">5</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n1</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n1 (enc an0 an1 n1 n1 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((an0 an0) (an1 an1) (n0 n1) (n1 n1) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>fnoftest 5 (realized)</text></svg></div>++<pre>(defskeleton fnoftest+ (vars (an0 an1 n1 text) (k skey))+ (defstrand init 2 (an0 an0) (an1 an1) (n0 n1) (n1 n1) (k k))+ (fn-of (a (an0 n1) (an1 n1)))+ (neq (an0 an1))+ (non-orig k)+ (uniq-orig n1)+ (label 5)+ (unrealized)+ (comment "Input cannot be made into a skeleton--nothing to do"))</pre>++<p id="t6">Tree <a href="#top">6</a>.</p>++<div>+ <svg+ class='diagram' width='129.840pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 129.840 79.920' font-size='12.000'>+ <text+ x='89.880' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k7", "_self")'>7</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k6", "_self")'>6</text>+ </svg></div>++<pre>(defprotocol fnoftest2 basic+ (defrole init+ (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))+ (trace (send (cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))) (recv n1))+ (non-orig k)+ (uniq-orig n0 n1)+ (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn0) an0)))))</pre>++<p id="k6">Item <a href="#t6">6</a>, Child: <a href="#k7">7</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n1</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0) (bn1 bn1) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960' style='text-anchor: middle;'>fnoftest2 6</text>+ </svg></div>++<pre>(defskeleton fnoftest2+ (vars (an0 an1 n0 n1 text) (bn0 bn1 name) (k skey))+ (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0)+ (bn1 bn1) (k k))+ (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn1) an1) ((pubk bn0) an0)))+ (non-orig k)+ (uniq-orig n0 n1)+ (label 6)+ (unrealized (0 1))+ (origs (n0 (0 0)) (n1 (0 0)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k7">Item <a href="#t6">7</a>, Parent: <a href="#k6">6</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n0</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n0 (enc bn1 bn1 an1 an1 n0 n0 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((an0 an1) (an1 an1) (n0 n0) (n1 n0) (bn0 bn1) (bn1 bn1) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>fnoftest2 7 (realized)</text></svg>+ </div>++<pre>(defskeleton fnoftest2+ (vars (an1 n0 text) (bn1 name) (k skey))+ (defstrand init 2 (an0 an1) (an1 an1) (n0 n0) (n1 n0) (bn0 bn1)+ (bn1 bn1) (k k))+ (fn-of (a (an1 n0)) (b ((pubk bn1) an1)))+ (non-orig k)+ (uniq-orig n0)+ (operation nonce-test (displaced 1 0 init 1) n1 (0 1)+ (enc bn0 bn1 an0 an1 n0 n1 k))+ (label 7)+ (parent 6)+ (unrealized)+ (shape)+ (maps+ ((0)+ ((bn0 bn1) (bn1 bn1) (an0 an1) (an1 an1) (n0 n0) (n1 n0) (k k))))+ (origs (n0 (0 0))))</pre>++<p id="t8">Tree <a href="#top">8</a>.</p>++<div>+ <svg+ class='diagram' width='129.840pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 129.840 79.920' font-size='12.000'>+ <text+ x='89.880' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k9", "_self")'>9</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k8", "_self")'>8</text>+ </svg></div>++<pre>(defprotocol fnoftest2 basic+ (defrole init+ (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))+ (trace (send (cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))) (recv n1))+ (non-orig k)+ (uniq-orig n0 n1)+ (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn0) an0)))))</pre>++<p id="k8">Item <a href="#t8">8</a>, Child: <a href="#k9">9</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n1</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0) (bn1 bn1) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960' style='text-anchor: middle;'>fnoftest2 8</text>+ </svg></div>++<pre>(defskeleton fnoftest2+ (vars (an0 an1 n0 n1 text) (bn0 bn1 name) (k skey))+ (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0)+ (bn1 bn1) (k k))+ (decl foo ((n0 n1) (0 1)) ((k k k n0) (0 0) (0 0) (0 1)))+ (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn0) an0))+ (c ((pubk bn1) an1)))+ (non-orig k)+ (uniq-orig n0 n1)+ (label 8)+ (unrealized (0 1))+ (origs (n0 (0 0)) (n1 (0 0)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k9">Item <a href="#t8">9</a>, Parent: <a href="#k8">8</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n0</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n0 (enc bn0 bn1 an1 an1 n0 n0 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((an0 an1) (an1 an1) (n0 n0) (n1 n0) (bn0 bn0) (bn1 bn1) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>fnoftest2 9 (realized)</text></svg>+ </div>++<pre>(defskeleton fnoftest2+ (vars (an1 n0 text) (bn0 bn1 name) (k skey))+ (defstrand init 2 (an0 an1) (an1 an1) (n0 n0) (n1 n0) (bn0 bn0)+ (bn1 bn1) (k k))+ (decl foo ((n0 n0) (0 1)) ((k k k n0) (0 0) (0 0) (0 1)))+ (fn-of (a (an1 n0)) (b ((pubk bn0) an1)) (c ((pubk bn1) an1)))+ (non-orig k)+ (uniq-orig n0)+ (operation nonce-test (displaced 1 0 init 1) n1 (0 1)+ (enc bn0 bn1 an0 an1 n0 n1 k))+ (label 9)+ (parent 8)+ (unrealized)+ (shape)+ (maps+ ((0)+ ((bn0 bn0) (bn1 bn1) (an0 an1) (an1 an1) (n0 n0) (n1 n0) (k k))))+ (origs (n0 (0 0))))</pre>++<p id="t10">Tree <a href="#top">10</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 79.920' font-size='12.000'>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k10", "_self")'>10</text>+ </svg></div>++<pre>(defprotocol fnoftest2 basic+ (defrole init+ (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))+ (trace (send (cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))) (recv n1))+ (non-orig k)+ (uniq-orig n0 n1)+ (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn0) an0)))))</pre>++<p id="k10">Item <a href="#t10">10</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n1</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0) (bn1 bn1) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>fnoftest2 10</text></svg></div>++<pre>(defskeleton fnoftest2+ (vars (an0 an1 n0 n1 text) (bn0 bn1 name) (k skey))+ (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0)+ (bn1 bn1) (k k))+ (decl foo ((n0 n1) (0 1)) ((k k k n0) (0 0) (0 0) (0 1)))+ (fn-of (a (an0 n0) (an1 n1)) (b ((privk bn0) an1) ((pubk bn0) an0)))+ (non-orig k)+ (uniq-orig n0 n1)+ (label 10)+ (unrealized (0 1))+ (origs (n0 (0 0)) (n1 (0 0)))+ (comment "empty cohort"))</pre>++</body>+</html>
doc/examples/fnof_yahalom.xhtml view
@@ -1,5 +1,5 @@ <?xml version="1.0"?>-<!-- CPSA 3.2.2 -->+<!-- CPSA 3.4.0 --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Yahalom Protocol with Forwarding Removed, using fnof to emulate ltk function</title>@@ -13,7 +13,7 @@ <pre>(herald "Yahalom Protocol with Forwarding Removed, using fnof to emulate ltk function" (bound 12))-(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from fnof_yahalom.scm")</pre> <p id="top">Trees: <a href="#t0">0</a> <a href="#t4">4</a> <a href="#t10">10</a> <a href="#t15">15</a>.</p>
doc/examples/goals.xhtml view
@@ -1,5 +1,5 @@ <?xml version="1.0"?>-<!-- CPSA 3.2.2 -->+<!-- CPSA 3.4.0 --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>goals</title>@@ -11,7 +11,7 @@ <body> <pre>(herald goals)-(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from goals.scm")</pre> <p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t4">4</a> <a href="#t6">6</a> <a href="#t8">8</a> <a href="#t17">17</a> <a href="#t19">19</a> <a href="#t21">21</a> <a href="#t23">23</a> <a href="#t26">26</a> <a href="#t28">28</a> <a href="#t33">33</a> <a href="#t41">41</a> <a href="#t45">45</a> <a href="#t47">47</a> <a href="#t49">49</a> <a href="#t52">52</a> <a href="#t54">54</a> <a href="#t57">57</a> <a href="#t62">62</a> <a href="#t65">65</a>.</p>@@ -778,6 +778,14 @@ (precedes ((1 0) (0 0))) (non-orig (privk a) (privk b)) (uniq-orig n1)+ (goals+ (forall ((a b name) (n1 text) (z0 z1 node))+ (implies+ (and (p "init" 2 z0) (p "init" "n1" z0 n1) (p "init" "a" z0 a)+ (p "init" "b" z0 b) (p "" 0 z1) (p "" "x" z1 n1)+ (non (privk a)) (non (privk b)) (uniq n1)) (false))))+ (comment "Initiator point of view"+ "Secrecy goal: nonce n1 not revealed") (label 9) (parent 8) (unrealized (0 0) (1 1))@@ -2256,6 +2264,14 @@ (precedes ((1 1) (0 0))) (non-orig (privk a) (privk b)) (uniq-orig n2)+ (goals+ (forall ((a b name) (n2 text) (z0 z1 node))+ (implies+ (and (p "resp" 2 z0) (p "resp" "n2" z0 n2) (p "resp" "a" z0 a)+ (p "resp" "b" z0 b) (p "" 0 z1) (p "" "x" z1 n2)+ (non (privk a)) (non (privk b)) (uniq n2)) (false))))+ (comment "Responder point of view"+ "Failed secrecy goal: nonce n2 not revealed") (label 29) (parent 28) (unrealized (0 0) (1 2))@@ -3271,6 +3287,13 @@ (precedes ((1 1) (0 0))) (non-orig (privk a) (privk b)) (uniq-orig n2)+ (goals+ (forall ((n2 text) (a b name) (z z-0 node))+ (implies+ (and (p "resp" 1 z) (p "" 0 z-0) (p "resp" "n2" z n2)+ (p "resp" "b" z b) (p "resp" "a" z a) (p "" "x" z-0 n2)+ (non (privk a)) (non (privk b)) (uniq n2)) (false))))+ (comment "Shows typeflaw in typeless NSL") (label 42) (parent 41) (unrealized (0 0))
+ doc/examples/iadh_um.scm view
@@ -0,0 +1,73 @@+; Unified Model++; This file models the "Unified Model" method of determining a fresh+; key from long-term and ephemeral Diffie-Hellman exponents. Since+; CPSA does not provide an intrinsic association between names and+; Diffie-Hellman values, we use digital signatures to link+; authentication of a Diffie-Hellman long-term public value to a+; public key.++; A role is provided in which a party signs a fresh long-term+; Diffie-Hellman value, and then leaks the exponent. The latter step+; is used to test the notion of forward security.++; Two inputs are analyzed. In the first, we model that two+; participants exist that agree on the UM key. The notion of+; "implicit authentication" suggests that if one participant exists+; and another party knows the same key, that party must be either the+; participant or the participant's intended partner.++; In this version, we assume that the long-term keys of the+; participants do not leak.++; The second input checks whether the key can be learned when the key+; is generated honestly. In this version, we do NOT assume that the+; long-term keys of the participants do not leak.++(herald "IADH: unified model (UM)" (bound 20) (limit 2000) (algebra diffie-hellman))++(defprotocol iadh-um diffie-hellman+ (defrole participant+ (vars (l e expn) (hl he base) (self peer name) (key n data))+ (trace+ (recv (enc "cert" (exp (gen) l) self (privk self)))+ (recv (enc "cert" hl peer (privk peer)))+ (send (exp (gen) e))+ (recv he)+ (send key))+ (fn-of (foo ((hash (exp hl l) (exp he e)) key)))+ (uniq-gen e)+ (neq (he (gen))))+ (defrole ltx-gen+ (vars (self name) (l expn))+ (trace+ (send (enc "cert" (exp (gen) l) self (privk self)))+ (send l))+ (uniq-gen l)+ (fn-of ("principal-of" (l self))))+ )+++;; Implicit authentication: participants will agree on the resulting key+;; foo(key). Therefore they should agree on the names A and B.+ (defskeleton iadh-um+ (vars (key data) (eA lA eB lB expn) (A B C D name))+ (defstrand participant 5 (key key) (e eA) (l lA) (self A) (peer C))+ (defstrand participant 5 (key key) (e eB) (l lB) (self B) (peer D))+ (non-orig lA lB)+ (neq (eA eB))+ (non-orig (privk C) (privk D) (privk A) (privk B))+ (comment "Implicit authentication")+)++ ;; Security: +(defskeleton iadh-um+ (vars (e1 e2 l expn) (hl base) (A B name))+ (defstrand participant 5 (e e1) (l l) (he (exp (gen) e2)) (hl hl) (self A) (peer B))+ (defstrand participant 3 (e e2))+ (deflistener (hash (exp hl l) (exp (gen) (mul e1 e2))))+ (non-orig (privk A) (privk B))+)+++
+ doc/examples/iadh_um.xhtml view
file too large to diff
doc/examples/kerb.xhtml view
@@ -1,620 +1,620 @@-<?xml version="1.0"?> -<!-- CPSA 3.2.2 --> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> - <title>kerb-flawed</title> - <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /> - <style> - svg.diagram { border-width: 1px; border-style: solid } - </style> -</head> -<body> - -<pre>(comment "CPSA 3.2.2") -(comment "All input read from kerb.scm")</pre> - -<p id="top">Trees: <a href="#t0">0</a> <a href="#t5">5</a>.</p> - -<p id="t0">Tree <a href="#top">0</a>.</p> - -<div> - <svg - class='diagram' width='279.600pt' height='79.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.600 79.920' font-size='12.000'> - <text - x='239.640' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k4", "_self")'>4</text> - <line - x1='189.720' y1='39.960' x2='239.640' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='189.720' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k3", "_self")'>3</text> - <line - x1='139.800' y1='39.960' x2='189.720' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k2", "_self")'>2</text> - <line - x1='89.880' y1='39.960' x2='139.800' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k1", "_self")'>1</text> - <line - x1='39.960' y1='39.960' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='26.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k0", "_self")'>0</text> - </svg></div> - -<pre>(defprotocol kerb-flawed basic - (defrole init - (vars (a b s name) (m n text) (k skey)) - (trace (send (cat a b n)) - (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))) - (send (cat (enc m k) (enc k a b (ltk b s))))) - (uniq-orig n)) - (defrole resp - (vars (a b s name) (m text) (k skey)) - (trace (recv (cat (enc m k) (enc k a b (ltk b s)))))) - (defrole keyserv - (vars (a b s name) (n text) (k skey)) - (trace (recv (cat a b n)) - (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))) - (uniq-orig k)))</pre> - -<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>m</title><circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>m</title> - <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat a b n)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>kerb-flawed 0</text></svg></div> - -<pre>(defskeleton kerb-flawed - (vars (m n text) (a b s name) (k skey)) - (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k)) - (deflistener m) - (non-orig (ltk a s) (ltk b s)) - (uniq-orig m n) - (label 0) - (unrealized (0 1) (1 0)) - (preskeleton) - (comment "Not a skeleton"))</pre> - -<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k2">2</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='264.960' x2='139.920' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g> - <g><title>m</title> - <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat a b n)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>kerb-flawed 1</text></svg></div> - -<pre>(defskeleton kerb-flawed - (vars (m n text) (a b s name) (k skey)) - (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k)) - (deflistener m) - (precedes ((0 2) (1 0))) - (non-orig (ltk a s) (ltk b s)) - (uniq-orig m n) - (label 1) - (parent 0) - (unrealized (0 1)) - (origs (n (0 0)) (m (0 2))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k1">1</a>, Child: <a href="#k3">3</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='264.960' x2='139.920' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc k n (ltk a s)) (enc k a b-0 (ltk b-0 s)))</title> - <circle cx='239.880' cy='189.960' r='6.000'/></g> - <g><title>(cat a b-0 n)</title> - <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g> - <g><title>m</title> - <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat a b n)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n n) (a a) (b b-0) (s s) (k k))</title> - <text - x='239.880' y='77.460' style='text-anchor: middle;'>keyserv</text> - </g> - <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>kerb-flawed 2</text></svg></div> - -<pre>(defskeleton kerb-flawed - (vars (m n text) (a b s b-0 name) (k skey)) - (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k)) - (deflistener m) - (defstrand keyserv 2 (n n) (a a) (b b-0) (s s) (k k)) - (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1))) - (non-orig (ltk a s) (ltk b s)) - (uniq-orig m n k) - (operation encryption-test (added-strand keyserv 2) - (enc k n (ltk a s)) (0 1)) - (label 2) - (parent 1) - (unrealized (0 1)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k2">2</a>, Child: <a href="#k4">4</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='264.960' x2='139.920' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title> - <circle cx='239.880' cy='189.960' r='6.000'/></g> - <g><title>(cat a b n)</title> - <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g> - <g><title>m</title> - <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat a b n)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n n) (a a) (b b) (s s) (k k))</title> - <text - x='239.880' y='77.460' style='text-anchor: middle;'>keyserv</text> - </g> - <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>kerb-flawed 3</text></svg></div> - -<pre>(defskeleton kerb-flawed - (vars (m n text) (a s b name) (k skey)) - (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k)) - (deflistener m) - (defstrand keyserv 2 (n n) (a a) (b b) (s s) (k k)) - (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1))) - (non-orig (ltk a s) (ltk b s)) - (uniq-orig m n k) - (operation encryption-test (displaced 3 2 keyserv 2) - (enc k a b-0 (ltk b-0 s)) (0 1)) - (label 3) - (parent 2) - (unrealized (1 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k3">3</a>.</p> - -<div> - <svg - class='diagram' width='379.800pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 379.800 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='339.840' y1='189.960' x2='339.840' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='239.880' y1='114.960' x2='239.880' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='264.960' x2='139.920' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 339.840 264.960 Q 242.880 227.460 145.920 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>k</title><circle cx='339.840' cy='264.960' r='6.000'/></g> - <g><title>k</title> - <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g> - <path - d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <path - d='M 239.880 189.960 Q 286.860 189.960 333.840 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title> - <circle cx='239.880' cy='189.960' r='6.000'/></g> - <g><title>(cat a b n)</title> - <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g> - <g><title>m</title> - <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat a b n)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n n) (a a) (b b) (s s) (k k))</title> - <text - x='239.880' y='77.460' style='text-anchor: middle;'>keyserv</text> - </g> - <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='189.900' y='39.960' - style='text-anchor: middle;'>kerb-flawed 4</text></svg></div> - -<pre>(defskeleton kerb-flawed - (vars (m n text) (a s b name) (k skey)) - (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k)) - (deflistener m) - (defstrand keyserv 2 (n n) (a a) (b b) (s s) (k k)) - (deflistener k) - (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)) ((2 1) (3 0)) - ((3 1) (1 0))) - (non-orig (ltk a s) (ltk b s)) - (uniq-orig m n k) - (operation nonce-test (added-listener k) m (1 0) (enc m k)) - (label 4) - (parent 3) - (unrealized (3 0)) - (comment "empty cohort"))</pre> - -<p id="t5">Tree <a href="#top">5</a>.</p> - -<div> - <svg - class='diagram' width='179.760pt' height='79.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.760 79.920' font-size='12.000'> - <text - x='139.800' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k7", "_self")'>7</text> - <line - x1='89.880' y1='39.960' x2='139.800' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k6", "_self")'>6</text> - <line - x1='39.960' y1='39.960' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k5", "_self")'>5</text> - </svg></div> - -<pre>(defprotocol kerb-flawed2 basic - (defrole init - (vars (a b s name) (ticket mesg) (m n text) (k skey)) - (trace (send (cat a b n)) (recv (cat (enc k n (ltk a s)) ticket)) - (send (cat (enc m k) ticket))) - (uniq-orig n)) - (defrole resp - (vars (a b s name) (m text) (k skey)) - (trace (recv (cat (enc m k) (enc k a b (ltk b s)))))) - (defrole keyserv - (vars (a b s name) (n text) (k skey)) - (trace (recv (cat a b n)) - (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))) - (uniq-orig k)))</pre> - -<p id="k5">Item <a href="#t5">5</a>, Child: <a href="#k6">6</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>m</title><circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>m</title> - <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(cat (enc m k) ticket)</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(cat (enc k n (ltk a s)) ticket)</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat a b n)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>kerb-flawed2 5</text></svg></div> - -<pre>(defskeleton kerb-flawed2 - (vars (ticket mesg) (m n text) (a b s name) (k skey)) - (defstrand init 3 (ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k)) - (deflistener m) - (non-orig (ltk a s) (ltk b s)) - (uniq-orig m n) - (label 5) - (unrealized (0 1) (1 0)) - (preskeleton) - (comment "Not a skeleton"))</pre> - -<p id="k6">Item <a href="#t5">6</a>, Parent: <a href="#k5">5</a>, Child: <a href="#k7">7</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='264.960' x2='139.920' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g> - <g><title>m</title> - <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc m k) ticket)</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(cat (enc k n (ltk a s)) ticket)</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat a b n)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>kerb-flawed2 6</text></svg></div> - -<pre>(defskeleton kerb-flawed2 - (vars (ticket mesg) (m n text) (a b s name) (k skey)) - (defstrand init 3 (ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k)) - (deflistener m) - (precedes ((0 2) (1 0))) - (non-orig (ltk a s) (ltk b s)) - (uniq-orig m n) - (label 6) - (parent 5) - (unrealized (0 1)) - (origs (n (0 0)) (m (0 2))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k7">Item <a href="#t5">7</a>, Parent: <a href="#k6">6</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='264.960' x2='139.920' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc k n (ltk a s)) (enc k a b-0 (ltk b-0 s)))</title> - <circle cx='239.880' cy='189.960' r='6.000'/></g> - <g><title>(cat a b-0 n)</title> - <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g> - <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g> - <g><title>m</title> - <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc m k) ticket)</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(cat (enc k n (ltk a s)) ticket)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat a b n)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n n) (a a) (b b-0) (s s) (k k))</title> - <text - x='239.880' y='77.460' style='text-anchor: middle;'>keyserv</text> - </g> - <g> - <title>((ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>kerb-flawed2 7 (realized)</text></svg> - </div> - -<pre>(defskeleton kerb-flawed2 - (vars (ticket mesg) (m n text) (a b s b-0 name) (k skey)) - (defstrand init 3 (ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k)) - (deflistener m) - (defstrand keyserv 2 (n n) (a a) (b b-0) (s s) (k k)) - (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1))) - (non-orig (ltk a s) (ltk b s)) - (uniq-orig m n k) - (operation encryption-test (added-strand keyserv 2) - (enc k n (ltk a s)) (0 1)) - (label 7) - (parent 6) - (unrealized) - (shape) - (maps ((0 1) ((a a) (b b) (s s) (m m) (ticket ticket) (n n) (k k)))) - (origs (k (2 1)) (n (0 0)) (m (0 2))))</pre> - -</body> -</html> +<?xml version="1.0"?>+<!-- CPSA 3.4.0 -->+<html xmlns="http://www.w3.org/1999/xhtml">+<head>+ <title>kerb-flawed</title>+ <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />+ <style>+ svg.diagram { border-width: 1px; border-style: solid }+ </style>+</head>+<body>++<pre>(comment "CPSA 3.4.0")+(comment "All input read from kerb.scm")</pre>++<p id="top">Trees: <a href="#t0">0</a> <a href="#t5">5</a>.</p>++<p id="t0">Tree <a href="#top">0</a>.</p>++<div>+ <svg+ class='diagram' width='279.600pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.600 79.920' font-size='12.000'>+ <text+ x='239.640' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k4", "_self")'>4</text>+ <line+ x1='189.720' y1='39.960' x2='239.640' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k3", "_self")'>3</text>+ <line+ x1='139.800' y1='39.960' x2='189.720' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k2", "_self")'>2</text>+ <line+ x1='89.880' y1='39.960' x2='139.800' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k1", "_self")'>1</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k0", "_self")'>0</text>+ </svg></div>++<pre>(defprotocol kerb-flawed basic+ (defrole init+ (vars (a b s name) (m n text) (k skey))+ (trace (send (cat a b n))+ (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))+ (send (cat (enc m k) (enc k a b (ltk b s)))))+ (uniq-orig n))+ (defrole resp+ (vars (a b s name) (m text) (k skey))+ (trace (recv (cat (enc m k) (enc k a b (ltk b s))))))+ (defrole keyserv+ (vars (a b s name) (n text) (k skey))+ (trace (recv (cat a b n))+ (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))+ (uniq-orig k)))</pre>++<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>m</title><circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>m</title>+ <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat a b n)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>kerb-flawed 0</text></svg></div>++<pre>(defskeleton kerb-flawed+ (vars (m n text) (a b s name) (k skey))+ (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))+ (deflistener m)+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig m n)+ (label 0)+ (unrealized (0 1) (1 0))+ (preskeleton)+ (comment "Not a skeleton"))</pre>++<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k2">2</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>m</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat a b n)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>kerb-flawed 1</text></svg></div>++<pre>(defskeleton kerb-flawed+ (vars (m n text) (a b s name) (k skey))+ (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))+ (deflistener m)+ (precedes ((0 2) (1 0)))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig m n)+ (label 1)+ (parent 0)+ (unrealized (0 1))+ (origs (n (0 0)) (m (0 2)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k1">1</a>, Child: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc k n (ltk a s)) (enc k a b-0 (ltk b-0 s)))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat a b-0 n)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>m</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat a b n)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (a a) (b b-0) (s s) (k k))</title>+ <text+ x='239.880' y='77.460' style='text-anchor: middle;'>keyserv</text>+ </g>+ <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>kerb-flawed 2</text></svg></div>++<pre>(defskeleton kerb-flawed+ (vars (m n text) (a b s b-0 name) (k skey))+ (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))+ (deflistener m)+ (defstrand keyserv 2 (n n) (a a) (b b-0) (s s) (k k))+ (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig m n k)+ (operation encryption-test (added-strand keyserv 2)+ (enc k n (ltk a s)) (0 1))+ (label 2)+ (parent 1)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k2">2</a>, Child: <a href="#k4">4</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat a b n)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>m</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat a b n)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (a a) (b b) (s s) (k k))</title>+ <text+ x='239.880' y='77.460' style='text-anchor: middle;'>keyserv</text>+ </g>+ <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>kerb-flawed 3</text></svg></div>++<pre>(defskeleton kerb-flawed+ (vars (m n text) (a s b name) (k skey))+ (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))+ (deflistener m)+ (defstrand keyserv 2 (n n) (a a) (b b) (s s) (k k))+ (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig m n k)+ (operation encryption-test (displaced 3 2 keyserv 2)+ (enc k a b-0 (ltk b-0 s)) (0 1))+ (label 3)+ (parent 2)+ (unrealized (1 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 242.880 227.460 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>k</title><circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>k</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 286.860 189.960 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat a b n)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>m</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat a b n)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (a a) (b b) (s s) (k k))</title>+ <text+ x='239.880' y='77.460' style='text-anchor: middle;'>keyserv</text>+ </g>+ <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>kerb-flawed 4</text></svg></div>++<pre>(defskeleton kerb-flawed+ (vars (m n text) (a s b name) (k skey))+ (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))+ (deflistener m)+ (defstrand keyserv 2 (n n) (a a) (b b) (s s) (k k))+ (deflistener k)+ (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)) ((2 1) (3 0))+ ((3 1) (1 0)))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig m n k)+ (operation nonce-test (added-listener k) m (1 0) (enc m k))+ (label 4)+ (parent 3)+ (unrealized (3 0))+ (comment "empty cohort"))</pre>++<p id="t5">Tree <a href="#top">5</a>.</p>++<div>+ <svg+ class='diagram' width='179.760pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.760 79.920' font-size='12.000'>+ <text+ x='139.800' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k7", "_self")'>7</text>+ <line+ x1='89.880' y1='39.960' x2='139.800' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k6", "_self")'>6</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k5", "_self")'>5</text>+ </svg></div>++<pre>(defprotocol kerb-flawed2 basic+ (defrole init+ (vars (a b s name) (ticket mesg) (m n text) (k skey))+ (trace (send (cat a b n)) (recv (cat (enc k n (ltk a s)) ticket))+ (send (cat (enc m k) ticket)))+ (uniq-orig n))+ (defrole resp+ (vars (a b s name) (m text) (k skey))+ (trace (recv (cat (enc m k) (enc k a b (ltk b s))))))+ (defrole keyserv+ (vars (a b s name) (n text) (k skey))+ (trace (recv (cat a b n))+ (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))+ (uniq-orig k)))</pre>++<p id="k5">Item <a href="#t5">5</a>, Child: <a href="#k6">6</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>m</title><circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>m</title>+ <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(cat (enc m k) ticket)</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(cat (enc k n (ltk a s)) ticket)</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat a b n)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>kerb-flawed2 5</text></svg></div>++<pre>(defskeleton kerb-flawed2+ (vars (ticket mesg) (m n text) (a b s name) (k skey))+ (defstrand init 3 (ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))+ (deflistener m)+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig m n)+ (label 5)+ (unrealized (0 1) (1 0))+ (preskeleton)+ (comment "Not a skeleton"))</pre>++<p id="k6">Item <a href="#t5">6</a>, Parent: <a href="#k5">5</a>, Child: <a href="#k7">7</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>m</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc m k) ticket)</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(cat (enc k n (ltk a s)) ticket)</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat a b n)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>kerb-flawed2 6</text></svg></div>++<pre>(defskeleton kerb-flawed2+ (vars (ticket mesg) (m n text) (a b s name) (k skey))+ (defstrand init 3 (ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))+ (deflistener m)+ (precedes ((0 2) (1 0)))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig m n)+ (label 6)+ (parent 5)+ (unrealized (0 1))+ (origs (n (0 0)) (m (0 2)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k7">Item <a href="#t5">7</a>, Parent: <a href="#k6">6</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc k n (ltk a s)) (enc k a b-0 (ltk b-0 s)))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat a b-0 n)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>m</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc m k) ticket)</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(cat (enc k n (ltk a s)) ticket)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat a b n)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (a a) (b b-0) (s s) (k k))</title>+ <text+ x='239.880' y='77.460' style='text-anchor: middle;'>keyserv</text>+ </g>+ <g>+ <title>((ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>kerb-flawed2 7 (realized)</text></svg>+ </div>++<pre>(defskeleton kerb-flawed2+ (vars (ticket mesg) (m n text) (a b s b-0 name) (k skey))+ (defstrand init 3 (ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))+ (deflistener m)+ (defstrand keyserv 2 (n n) (a a) (b b-0) (s s) (k k))+ (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig m n k)+ (operation encryption-test (added-strand keyserv 2)+ (enc k n (ltk a s)) (0 1))+ (label 7)+ (parent 6)+ (unrealized)+ (shape)+ (maps ((0 1) ((a a) (b b) (s s) (m m) (ticket ticket) (n n) (k k))))+ (origs (k (2 1)) (n (0 0)) (m (0 2))))</pre>++</body>+</html>
doc/examples/lt_test.xhtml view
@@ -1,5 +1,5 @@ <?xml version="1.0"?>-<!-- CPSA 3.2.2 -->+<!-- CPSA 3.4.0 --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Less-than constraint test protocol</title>@@ -13,7 +13,7 @@ <pre>(herald "Less-than constraint test protocol" (comment "First and third skeletons should have a shape," "second and fourth should be dead."))-(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from lt_test.scm")</pre> <p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t3">3</a> <a href="#t5">5</a>.</p>
doc/examples/neq_test.xhtml view
@@ -1,5 +1,5 @@ <?xml version="1.0"?>-<!-- CPSA 3.2.2 -->+<!-- CPSA 3.4.0 --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Inequality constraint test protocol</title>@@ -13,7 +13,7 @@ <pre>(herald "Inequality constraint test protocol" (comment "First skeleton should have a shape," "second, and hird should be dead."))-(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from neq_test.scm")</pre> <p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t3">3</a>.</p>
doc/examples/ns.xhtml view
@@ -1,358 +1,358 @@-<?xml version="1.0"?> -<!-- CPSA 3.2.2 --> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> - <title>Needham-Schroeder Public-Key Protocol</title> - <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /> - <style> - svg.diagram { border-width: 1px; border-style: solid } - </style> -</head> -<body> - -<pre>(herald "Needham-Schroeder Public-Key Protocol" - (comment "This protocol contains a man-in-the-middle" - "attack discovered by Galvin Lowe.")) -(comment "CPSA 3.2.2") -(comment "All input read from ns.scm")</pre> - -<p id="top">Trees: <a href="#t0">0</a> <a href="#t3">3</a>.</p> - -<p id="t0">Tree <a href="#top">0</a>.</p> - -<div> - <svg - class='diagram' width='179.760pt' height='79.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.760 79.920' font-size='12.000'> - <text - x='139.800' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k2", "_self")'>2</text> - <line - x1='89.880' y1='39.960' x2='139.800' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k1", "_self")'>1</text> - <line - x1='39.960' y1='39.960' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k0", "_self")'>0</text> - </svg></div> - -<pre>(defprotocol ns basic - (defrole init - (vars (a b name) (n1 n2 text)) - (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a))) - (send (enc n2 (pubk b))))) - (defrole resp - (vars (b a name) (n2 n1 text)) - (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a))) - (recv (enc n2 (pubk b))))) - (comment "Needham-Schroeder"))</pre> - -<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p> - -<div> - <svg - class='diagram' width='79.920pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 79.920 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>(enc n2 (pubk b))</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(enc n1 n2 (pubk a))</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc n1 a (pubk b))</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n1 n1) (n2 n2) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text x='39.960' y='39.960' style='text-anchor: middle;'>ns 0</text> - </svg></div> - -<pre>(defskeleton ns - (vars (n1 n2 text) (a b name)) - (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b)) - (non-orig (privk a) (privk b)) - (uniq-orig n1) - (comment "Initiator point-of-view") - (label 0) - (unrealized (0 1)) - (origs (n1 (0 0))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k2">2</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc n1 n2-0 (pubk a))</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(enc n1 a (pubk b))</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc n2 (pubk b))</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(enc n1 n2 (pubk a))</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc n1 a (pubk b))</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n2 n2-0) (n1 n1) (b b) (a a))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((n1 n1) (n2 n2) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text x='89.940' y='39.960' style='text-anchor: middle;'>ns 1</text> - </svg></div> - -<pre>(defskeleton ns - (vars (n1 n2 n2-0 text) (a b name)) - (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b)) - (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a)) - (precedes ((0 0) (1 0)) ((1 1) (0 1))) - (non-orig (privk a) (privk b)) - (uniq-orig n1) - (operation nonce-test (added-strand resp 2) n1 (0 1) - (enc n1 a (pubk b))) - (label 1) - (parent 0) - (unrealized (0 1)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k1">1</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc n1 n2 (pubk a))</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(enc n1 a (pubk b))</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc n2 (pubk b))</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(enc n1 n2 (pubk a))</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc n1 a (pubk b))</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n2 n2) (n1 n1) (b b) (a a))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((n1 n1) (n2 n2) (a a) (b b))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>ns 2 (realized)</text></svg></div> - -<pre>(defskeleton ns - (vars (n1 n2 text) (a b name)) - (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b)) - (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a)) - (precedes ((0 0) (1 0)) ((1 1) (0 1))) - (non-orig (privk a) (privk b)) - (uniq-orig n1) - (operation nonce-test (contracted (n2-0 n2)) n1 (0 1) - (enc n1 n2 (pubk a)) (enc n1 a (pubk b))) - (label 2) - (parent 1) - (unrealized) - (shape) - (maps ((0) ((a a) (b b) (n1 n1) (n2 n2)))) - (origs (n1 (0 0))))</pre> - -<p id="t3">Tree <a href="#top">3</a>.</p> - -<div> - <svg - class='diagram' width='129.840pt' height='79.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 129.840 79.920' font-size='12.000'> - <text - x='89.880' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k4", "_self")'>4</text> - <line - x1='39.960' y1='39.960' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k3", "_self")'>3</text> - </svg></div> - -<pre>(defprotocol ns basic - (defrole init - (vars (a b name) (n1 n2 text)) - (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a))) - (send (enc n2 (pubk b))))) - (defrole resp - (vars (b a name) (n2 n1 text)) - (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a))) - (recv (enc n2 (pubk b))))) - (comment "Needham-Schroeder"))</pre> - -<p id="k3">Item <a href="#t3">3</a>, Child: <a href="#k4">4</a>.</p> - -<div> - <svg - class='diagram' width='79.920pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 79.920 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>(enc n2 (pubk b))</title> - <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(enc n1 n2 (pubk a))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc n1 a (pubk b))</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n2 n2) (n1 n1) (b b) (a a))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text x='39.960' y='39.960' style='text-anchor: middle;'>ns 3</text> - </svg></div> - -<pre>(defskeleton ns - (vars (n2 n1 text) (a b name)) - (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a)) - (non-orig (privk a) (privk b)) - (uniq-orig n2) - (comment "Responder point-of-view") - (label 3) - (unrealized (0 2)) - (origs (n2 (0 1))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k4">Item <a href="#t3">4</a>, Parent: <a href="#k3">3</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc n2 (pubk b-0))</title> - <circle cx='139.920' cy='264.960' r='6.000'/></g> - <g><title>(enc n1 n2 (pubk a))</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(enc n1 a (pubk b-0))</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>(enc n2 (pubk b))</title> - <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc n1 n2 (pubk a))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(enc n1 a (pubk b))</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n1 n1) (n2 n2) (a a) (b b-0))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <g><title>((n2 n2) (n1 n1) (b b) (a a))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>ns 4 (realized)</text></svg></div> - -<pre>(defskeleton ns - (vars (n2 n1 text) (a b b-0 name)) - (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a)) - (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0)) - (precedes ((0 1) (1 1)) ((1 2) (0 2))) - (non-orig (privk a) (privk b)) - (uniq-orig n2) - (operation nonce-test (added-strand init 3) n2 (0 2) - (enc n1 n2 (pubk a))) - (label 4) - (parent 3) - (unrealized) - (shape) - (maps ((0) ((a a) (b b) (n2 n2) (n1 n1)))) - (origs (n2 (0 1))))</pre> - -</body> -</html> +<?xml version="1.0"?>+<!-- CPSA 3.4.0 -->+<html xmlns="http://www.w3.org/1999/xhtml">+<head>+ <title>Needham-Schroeder Public-Key Protocol</title>+ <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />+ <style>+ svg.diagram { border-width: 1px; border-style: solid }+ </style>+</head>+<body>++<pre>(herald "Needham-Schroeder Public-Key Protocol"+ (comment "This protocol contains a man-in-the-middle"+ "attack discovered by Galvin Lowe."))+(comment "CPSA 3.4.0")+(comment "All input read from ns.scm")</pre>++<p id="top">Trees: <a href="#t0">0</a> <a href="#t3">3</a>.</p>++<p id="t0">Tree <a href="#top">0</a>.</p>++<div>+ <svg+ class='diagram' width='179.760pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.760 79.920' font-size='12.000'>+ <text+ x='139.800' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k2", "_self")'>2</text>+ <line+ x1='89.880' y1='39.960' x2='139.800' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k1", "_self")'>1</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k0", "_self")'>0</text>+ </svg></div>++<pre>(defprotocol ns basic+ (defrole init+ (vars (a b name) (n1 n2 text))+ (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))+ (send (enc n2 (pubk b)))))+ (defrole resp+ (vars (b a name) (n2 n1 text))+ (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))+ (recv (enc n2 (pubk b)))))+ (comment "Needham-Schroeder"))</pre>++<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>(enc n2 (pubk b))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(enc n1 n2 (pubk a))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc n1 a (pubk b))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text x='39.960' y='39.960' style='text-anchor: middle;'>ns 0</text>+ </svg></div>++<pre>(defskeleton ns+ (vars (n1 n2 text) (a b name))+ (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))+ (non-orig (privk a) (privk b))+ (uniq-orig n1)+ (comment "Initiator point-of-view")+ (label 0)+ (unrealized (0 1))+ (origs (n1 (0 0)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k2">2</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n1 n2-0 (pubk a))</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc n1 a (pubk b))</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc n2 (pubk b))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(enc n1 n2 (pubk a))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n1 a (pubk b))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n2 n2-0) (n1 n1) (b b) (a a))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text x='89.940' y='39.960' style='text-anchor: middle;'>ns 1</text>+ </svg></div>++<pre>(defskeleton ns+ (vars (n1 n2 n2-0 text) (a b name))+ (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))+ (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-orig n1)+ (operation nonce-test (added-strand resp 2) n1 (0 1)+ (enc n1 a (pubk b)))+ (label 1)+ (parent 0)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k1">1</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n1 n2 (pubk a))</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc n1 a (pubk b))</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc n2 (pubk b))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(enc n1 n2 (pubk a))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n1 a (pubk b))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>ns 2 (realized)</text></svg></div>++<pre>(defskeleton ns+ (vars (n1 n2 text) (a b name))+ (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))+ (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-orig n1)+ (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)+ (enc n1 n2 (pubk a)) (enc n1 a (pubk b)))+ (label 2)+ (parent 1)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))+ (origs (n1 (0 0))))</pre>++<p id="t3">Tree <a href="#top">3</a>.</p>++<div>+ <svg+ class='diagram' width='129.840pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 129.840 79.920' font-size='12.000'>+ <text+ x='89.880' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k4", "_self")'>4</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k3", "_self")'>3</text>+ </svg></div>++<pre>(defprotocol ns basic+ (defrole init+ (vars (a b name) (n1 n2 text))+ (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))+ (send (enc n2 (pubk b)))))+ (defrole resp+ (vars (b a name) (n2 n1 text))+ (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))+ (recv (enc n2 (pubk b)))))+ (comment "Needham-Schroeder"))</pre>++<p id="k3">Item <a href="#t3">3</a>, Child: <a href="#k4">4</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>(enc n2 (pubk b))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(enc n1 n2 (pubk a))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc n1 a (pubk b))</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text x='39.960' y='39.960' style='text-anchor: middle;'>ns 3</text>+ </svg></div>++<pre>(defskeleton ns+ (vars (n2 n1 text) (a b name))+ (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))+ (non-orig (privk a) (privk b))+ (uniq-orig n2)+ (comment "Responder point-of-view")+ (label 3)+ (unrealized (0 2))+ (origs (n2 (0 1)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k4">Item <a href="#t3">4</a>, Parent: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n2 (pubk b-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(enc n1 n2 (pubk a))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc n1 a (pubk b-0))</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc n2 (pubk b))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n1 n2 (pubk a))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(enc n1 a (pubk b))</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n1 n1) (n2 n2) (a a) (b b-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>ns 4 (realized)</text></svg></div>++<pre>(defskeleton ns+ (vars (n2 n1 text) (a b b-0 name))+ (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))+ (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))+ (precedes ((0 1) (1 1)) ((1 2) (0 2)))+ (non-orig (privk a) (privk b))+ (uniq-orig n2)+ (operation nonce-test (added-strand init 3) n2 (0 2)+ (enc n1 n2 (pubk a)))+ (label 4)+ (parent 3)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))+ (origs (n2 (0 1))))</pre>++</body>+</html>
doc/examples/or.xhtml view
@@ -1,785 +1,785 @@-<?xml version="1.0"?> -<!-- CPSA 3.2.2 --> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> - <title>Otway-Rees Protocol</title> - <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /> - <style> - svg.diagram { border-width: 1px; border-style: solid } - </style> -</head> -<body> - -<pre>(herald "Otway-Rees Protocol" - (comment "Standard version using variables of sort mesg")) -(comment "CPSA 3.2.2") -(comment "All input read from or.scm")</pre> - -<p id="t0">Tree 0.</p> - -<div> - <svg - class='diagram' width='229.680pt' height='454.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 229.680 454.920' font-size='12.000'> - <text - x='189.720' y='401.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k9", "_self")'>9</text> - <line - x1='139.800' y1='339.960' x2='189.720' y2='414.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='189.720' y='326.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k8", "_self")'>8</text> - <line - x1='139.800' y1='339.960' x2='189.720' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='189.720' y='251.040' - style='font-style: italic; text-anchor: middle; fill: green;' - onclick='window.open("#k6", "_self")'>6</text> - <line - x1='139.800' y1='339.960' x2='189.720' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='326.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k4", "_self")'>4</text> - <line - x1='89.880' y1='339.960' x2='139.800' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='326.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k2", "_self")'>2</text> - <line - x1='39.960' y1='227.460' x2='89.880' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='189.720' y='176.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k7", "_self")'>7</text> - <line - x1='139.800' y1='114.960' x2='189.720' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='189.720' y='101.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k6", "_self")'>6</text> - <line - x1='139.800' y1='114.960' x2='189.720' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='189.720' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k5", "_self")'>5</text> - <line - x1='139.800' y1='114.960' x2='189.720' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='101.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k3", "_self")'>3</text> - <line - x1='89.880' y1='114.960' x2='139.800' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='101.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k1", "_self")'>1</text> - <line - x1='39.960' y1='227.460' x2='89.880' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='213.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k0", "_self")'>0</text> - </svg></div> - -<pre>(defprotocol or basic - (defrole init - (vars (a b s name) (na text) (k skey) (m text)) - (trace (send (cat m a b (enc na m a b (ltk a s)))) - (recv (cat m (enc na k (ltk a s)))))) - (defrole resp - (vars (a b s name) (nb text) (k skey) (m text) (x y mesg)) - (trace (recv (cat m a b x)) - (send (cat m a b x (enc nb m a b (ltk b s)))) - (recv (cat m y (enc nb k (ltk b s)))) (send y))) - (defrole serv - (vars (a b s name) (na nb text) (k skey) (m text)) - (trace - (recv - (cat m a b (enc na m a b (ltk a s)) (enc nb m a b (ltk b s)))) - (send (cat m (enc na k (ltk a s)) (enc nb k (ltk b s))))) - (uniq-orig k)))</pre> - -<p id="k0">Item <a href="#t0">0</a>, Children: <a href="#k1">1</a> <a href="#k2">2</a>.</p> - -<div> - <svg - class='diagram' width='79.920pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 79.920 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g> - <g><title>(cat m y (enc nb k (ltk b s)))</title> - <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat m a b x)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text x='39.960' y='39.960' style='text-anchor: middle;'>or 0</text> - </svg></div> - -<pre>(defskeleton or - (vars (x y mesg) (nb m text) (s a b name) (k skey)) - (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)) - (non-orig (ltk a s) (ltk b s)) - (uniq-orig nb) - (label 0) - (unrealized (0 2)) - (origs (nb (0 1))) - (comment "2 in cohort - 2 not yet seen"))</pre> - -<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k3">3</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat m-0 (enc na k (ltk a-0 s)) (enc nb k (ltk b s)))</title> - <circle cx='139.920' cy='264.960' r='6.000'/></g> - <g> - <title>(cat m-0 a-0 b (enc na m-0 a-0 b (ltk a-0 s)) (enc nb m-0 a-0 b (ltk b s)))</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g> - <g><title>(cat m y (enc nb k (ltk b s)))</title> - <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat m a b x)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((na na) (nb nb) (m m-0) (a a-0) (b b) (s s) (k k))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text> - </g> - <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text x='89.940' y='39.960' style='text-anchor: middle;'>or 1</text> - </svg></div> - -<pre>(defskeleton or - (vars (x y mesg) (nb m na m-0 text) (s a b a-0 name) (k skey)) - (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)) - (defstrand serv 2 (na na) (nb nb) (m m-0) (a a-0) (b b) (s s) (k k)) - (precedes ((0 1) (1 0)) ((1 1) (0 2))) - (non-orig (ltk a s) (ltk b s)) - (uniq-orig nb k) - (operation encryption-test (added-strand serv 2) (enc nb k (ltk b s)) - (0 2)) - (label 1) - (parent 0) - (unrealized (1 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k4">4</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat m-0 (enc nb k (ltk b s)) (enc nb-0 k (ltk b-0 s)))</title> - <circle cx='139.920' cy='264.960' r='6.000'/></g> - <g> - <title>(cat m-0 b b-0 (enc nb m-0 b b-0 (ltk b s)) (enc nb-0 m-0 b b-0 (ltk b-0 s)))</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g> - <g><title>(cat m y (enc nb k (ltk b s)))</title> - <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat m a b x)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((na nb) (nb nb-0) (m m-0) (a b) (b b-0) (s s) (k k))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text> - </g> - <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text x='89.940' y='39.960' style='text-anchor: middle;'>or 2</text> - </svg></div> - -<pre>(defskeleton or - (vars (x y mesg) (nb m nb-0 m-0 text) (s a b b-0 name) (k skey)) - (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)) - (defstrand serv 2 (na nb) (nb nb-0) (m m-0) (a b) (b b-0) (s s) (k k)) - (precedes ((0 1) (1 0)) ((1 1) (0 2))) - (non-orig (ltk a s) (ltk b s)) - (uniq-orig nb k) - (operation encryption-test (added-strand serv 2) (enc nb k (ltk b s)) - (0 2)) - (label 2) - (parent 0) - (unrealized (1 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k1">1</a>, Children: <a href="#k5">5</a> <a href="#k6">6</a> <a href="#k7">7</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))</title> - <circle cx='139.920' cy='264.960' r='6.000'/></g> - <g> - <title>(cat m a b (enc na m a b (ltk a s)) (enc nb m a b (ltk b s)))</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g> - <g><title>(cat m y (enc nb k (ltk b s)))</title> - <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat m a b x)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((na na) (nb nb) (m m) (a a) (b b) (s s) (k k))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text> - </g> - <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text x='89.940' y='39.960' style='text-anchor: middle;'>or 3</text> - </svg></div> - -<pre>(defskeleton or - (vars (x y mesg) (nb m na text) (s a b name) (k skey)) - (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)) - (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k)) - (precedes ((0 1) (1 0)) ((1 1) (0 2))) - (non-orig (ltk a s) (ltk b s)) - (uniq-orig nb k) - (operation encryption-test (displaced 2 0 resp 2) - (enc nb m-0 a-0 b (ltk b s)) (1 0)) - (label 3) - (parent 1) - (unrealized (1 0)) - (comment "3 in cohort - 3 not yet seen"))</pre> - -<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k2">2</a>, Children: <a href="#k8">8</a> <a href="#k9">9</a>, Seen Child: <a href="#k6">6</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m (enc nb k (ltk a s)) (enc nb-0 k (ltk a s)))</title> - <circle cx='139.920' cy='264.960' r='6.000'/></g> - <g> - <title>(cat m a a (enc nb m a a (ltk a s)) (enc nb-0 m a a (ltk a s)))</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g> - <g><title>(cat m y (enc nb k (ltk a s)))</title> - <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat m a a x)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text> - </g> - <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text x='89.940' y='39.960' style='text-anchor: middle;'>or 4</text> - </svg></div> - -<pre>(defskeleton or - (vars (x y mesg) (nb m nb-0 text) (s a name) (k skey)) - (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k)) - (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k)) - (precedes ((0 1) (1 0)) ((1 1) (0 2))) - (non-orig (ltk a s)) - (uniq-orig nb k) - (operation encryption-test (displaced 2 0 resp 2) - (enc nb m-0 b b (ltk b s)) (1 0)) - (label 4) - (parent 2) - (seen 6) - (unrealized (1 0)) - (comment "3 in cohort - 2 not yet seen"))</pre> - -<p id="k5">Item <a href="#t0">5</a>, Parent: <a href="#k3">3</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 114.960 Q 192.300 150.660 144.719 186.359' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m a b (enc na m a b (ltk a s)))</title> - <circle cx='239.880' cy='114.960' r='6.000'/></g> - <path - d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))</title> - <circle cx='139.920' cy='264.960' r='6.000'/></g> - <g> - <title>(cat m a b (enc na m a b (ltk a s)) (enc nb m a b (ltk b s)))</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g> - <g><title>(cat m y (enc nb k (ltk b s)))</title> - <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat m a b x)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((na na) (m m) (a a) (b b) (s s))</title> - <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <g><title>((na na) (nb nb) (m m) (a a) (b b) (s s) (k k))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text> - </g> - <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>or 5 (realized)</text></svg></div> - -<pre>(defskeleton or - (vars (x y mesg) (nb m na text) (s a b name) (k skey)) - (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)) - (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k)) - (defstrand init 1 (na na) (m m) (a a) (b b) (s s)) - (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0))) - (non-orig (ltk a s) (ltk b s)) - (uniq-orig nb k) - (operation encryption-test (added-strand init 1) - (enc na m a b (ltk a s)) (1 0)) - (label 5) - (parent 3) - (unrealized) - (shape) - (maps ((0) ((nb nb) (s s) (a a) (b b) (k k) (m m) (x x) (y y)))) - (origs (k (1 1)) (nb (0 1))))</pre> - -<p id="k6">Item <a href="#t0">6</a>, Parent: <a href="#k3">3</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m (enc nb k (ltk a s)) (enc nb k (ltk a s)))</title> - <circle cx='139.920' cy='264.960' r='6.000'/></g> - <g> - <title>(cat m a a (enc nb m a a (ltk a s)) (enc nb m a a (ltk a s)))</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g> - <g><title>(cat m y (enc nb k (ltk a s)))</title> - <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat m a a x)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((na nb) (nb nb) (m m) (a a) (b a) (s s) (k k))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text> - </g> - <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>or 6 (realized)</text></svg></div> - -<pre>(defskeleton or - (vars (x y mesg) (nb m text) (s a name) (k skey)) - (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k)) - (defstrand serv 2 (na nb) (nb nb) (m m) (a a) (b a) (s s) (k k)) - (precedes ((0 1) (1 0)) ((1 1) (0 2))) - (non-orig (ltk a s)) - (uniq-orig nb k) - (operation encryption-test (displaced 2 0 resp 2) - (enc na m a a (ltk a s)) (1 0)) - (label 6) - (parent 3) - (unrealized) - (shape) - (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y)))) - (origs (k (1 1)) (nb (0 1))))</pre> - -<p id="k7">Item <a href="#t0">7</a>, Parent: <a href="#k3">3</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m a a x-0 (enc na m a a (ltk a s)))</title> - <circle cx='239.880' cy='189.960' r='6.000'/></g> - <g><title>(cat m a a x-0)</title> - <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g> - <path - d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m (enc na k (ltk a s)) (enc nb k (ltk a s)))</title> - <circle cx='139.920' cy='264.960' r='6.000'/></g> - <g> - <title>(cat m a a (enc na m a a (ltk a s)) (enc nb m a a (ltk a s)))</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g> - <g><title>(cat m y (enc nb k (ltk a s)))</title> - <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat m a a x)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((x x-0) (nb na) (m m) (a a) (b a) (s s))</title> - <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((na na) (nb nb) (m m) (a a) (b a) (s s) (k k))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text> - </g> - <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>or 7 (realized)</text></svg></div> - -<pre>(defskeleton or - (vars (x y x-0 mesg) (nb m na text) (s a name) (k skey)) - (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k)) - (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b a) (s s) (k k)) - (defstrand resp 2 (x x-0) (nb na) (m m) (a a) (b a) (s s)) - (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0))) - (non-orig (ltk a s)) - (uniq-orig nb k) - (operation encryption-test (added-strand resp 2) - (enc na m a a (ltk a s)) (1 0)) - (label 7) - (parent 3) - (unrealized) - (shape) - (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y)))) - (origs (k (1 1)) (nb (0 1))))</pre> - -<p id="k8">Item <a href="#t0">8</a>, Parent: <a href="#k4">4</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 114.960 Q 192.300 150.660 144.719 186.359' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m a a (enc nb-0 m a a (ltk a s)))</title> - <circle cx='239.880' cy='114.960' r='6.000'/></g> - <path - d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m (enc nb k (ltk a s)) (enc nb-0 k (ltk a s)))</title> - <circle cx='139.920' cy='264.960' r='6.000'/></g> - <g> - <title>(cat m a a (enc nb m a a (ltk a s)) (enc nb-0 m a a (ltk a s)))</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g> - <g><title>(cat m y (enc nb k (ltk a s)))</title> - <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat m a a x)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((na nb-0) (m m) (a a) (b a) (s s))</title> - <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <g><title>((na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text> - </g> - <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>or 8 (realized)</text></svg></div> - -<pre>(defskeleton or - (vars (x y mesg) (nb m nb-0 text) (s a name) (k skey)) - (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k)) - (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k)) - (defstrand init 1 (na nb-0) (m m) (a a) (b a) (s s)) - (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0))) - (non-orig (ltk a s)) - (uniq-orig nb k) - (operation encryption-test (added-strand init 1) - (enc nb-0 m a a (ltk a s)) (1 0)) - (label 8) - (parent 4) - (unrealized) - (shape) - (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y)))) - (origs (k (1 1)) (nb (0 1))))</pre> - -<p id="k9">Item <a href="#t0">9</a>, Parent: <a href="#k4">4</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='114.960' x2='239.880' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='189.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m a a x-0 (enc nb-0 m a a (ltk a s)))</title> - <circle cx='239.880' cy='189.960' r='6.000'/></g> - <g><title>(cat m a a x-0)</title> - <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g> - <path - d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m (enc nb k (ltk a s)) (enc nb-0 k (ltk a s)))</title> - <circle cx='139.920' cy='264.960' r='6.000'/></g> - <g> - <title>(cat m a a (enc nb m a a (ltk a s)) (enc nb-0 m a a (ltk a s)))</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g> - <g><title>(cat m y (enc nb k (ltk a s)))</title> - <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat m a a x)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((x x-0) (nb nb-0) (m m) (a a) (b a) (s s))</title> - <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text> - </g> - <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>or 9 (realized)</text></svg></div> - -<pre>(defskeleton or - (vars (x y x-0 mesg) (nb m nb-0 text) (s a name) (k skey)) - (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k)) - (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k)) - (defstrand resp 2 (x x-0) (nb nb-0) (m m) (a a) (b a) (s s)) - (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0))) - (non-orig (ltk a s)) - (uniq-orig nb k) - (operation encryption-test (added-strand resp 2) - (enc nb-0 m a a (ltk a s)) (1 0)) - (label 9) - (parent 4) - (unrealized) - (shape) - (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y)))) - (origs (k (1 1)) (nb (0 1))))</pre> - -</body> -</html> +<?xml version="1.0"?>+<!-- CPSA 3.4.0 -->+<html xmlns="http://www.w3.org/1999/xhtml">+<head>+ <title>Otway-Rees Protocol</title>+ <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />+ <style>+ svg.diagram { border-width: 1px; border-style: solid }+ </style>+</head>+<body>++<pre>(herald "Otway-Rees Protocol"+ (comment "Standard version using variables of sort mesg"))+(comment "CPSA 3.4.0")+(comment "All input read from or.scm")</pre>++<p id="t0">Tree 0.</p>++<div>+ <svg+ class='diagram' width='229.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 229.680 454.920' font-size='12.000'>+ <text+ x='189.720' y='401.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k9", "_self")'>9</text>+ <line+ x1='139.800' y1='339.960' x2='189.720' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='326.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k8", "_self")'>8</text>+ <line+ x1='139.800' y1='339.960' x2='189.720' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='251.040'+ style='font-style: italic; text-anchor: middle; fill: green;'+ onclick='window.open("#k6", "_self")'>6</text>+ <line+ x1='139.800' y1='339.960' x2='189.720' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='326.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k4", "_self")'>4</text>+ <line+ x1='89.880' y1='339.960' x2='139.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='326.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k2", "_self")'>2</text>+ <line+ x1='39.960' y1='227.460' x2='89.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='176.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k7", "_self")'>7</text>+ <line+ x1='139.800' y1='114.960' x2='189.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='101.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k6", "_self")'>6</text>+ <line+ x1='139.800' y1='114.960' x2='189.720' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k5", "_self")'>5</text>+ <line+ x1='139.800' y1='114.960' x2='189.720' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='101.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k3", "_self")'>3</text>+ <line+ x1='89.880' y1='114.960' x2='139.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='101.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k1", "_self")'>1</text>+ <line+ x1='39.960' y1='227.460' x2='89.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='213.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k0", "_self")'>0</text>+ </svg></div>++<pre>(defprotocol or basic+ (defrole init+ (vars (a b s name) (na text) (k skey) (m text))+ (trace (send (cat m a b (enc na m a b (ltk a s))))+ (recv (cat m (enc na k (ltk a s))))))+ (defrole resp+ (vars (a b s name) (nb text) (k skey) (m text) (x y mesg))+ (trace (recv (cat m a b x))+ (send (cat m a b x (enc nb m a b (ltk b s))))+ (recv (cat m y (enc nb k (ltk b s)))) (send y)))+ (defrole serv+ (vars (a b s name) (na nb text) (k skey) (m text))+ (trace+ (recv+ (cat m a b (enc na m a b (ltk a s)) (enc nb m a b (ltk b s))))+ (send (cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))))+ (uniq-orig k)))</pre>++<p id="k0">Item <a href="#t0">0</a>, Children: <a href="#k1">1</a> <a href="#k2">2</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(cat m y (enc nb k (ltk b s)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat m a b x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text x='39.960' y='39.960' style='text-anchor: middle;'>or 0</text>+ </svg></div>++<pre>(defskeleton or+ (vars (x y mesg) (nb m text) (s a b name) (k skey))+ (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig nb)+ (label 0)+ (unrealized (0 2))+ (origs (nb (0 1)))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat m-0 (enc na k (ltk a-0 s)) (enc nb k (ltk b s)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat m-0 a-0 b (enc na m-0 a-0 b (ltk a-0 s)) (enc nb m-0 a-0 b (ltk b s)))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(cat m y (enc nb k (ltk b s)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat m a b x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((na na) (nb nb) (m m-0) (a a-0) (b b) (s s) (k k))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>+ </g>+ <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text x='89.940' y='39.960' style='text-anchor: middle;'>or 1</text>+ </svg></div>++<pre>(defskeleton or+ (vars (x y mesg) (nb m na m-0 text) (s a b a-0 name) (k skey))+ (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))+ (defstrand serv 2 (na na) (nb nb) (m m-0) (a a-0) (b b) (s s) (k k))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig nb k)+ (operation encryption-test (added-strand serv 2) (enc nb k (ltk b s))+ (0 2))+ (label 1)+ (parent 0)+ (unrealized (1 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k4">4</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat m-0 (enc nb k (ltk b s)) (enc nb-0 k (ltk b-0 s)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat m-0 b b-0 (enc nb m-0 b b-0 (ltk b s)) (enc nb-0 m-0 b b-0 (ltk b-0 s)))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(cat m y (enc nb k (ltk b s)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat m a b x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((na nb) (nb nb-0) (m m-0) (a b) (b b-0) (s s) (k k))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>+ </g>+ <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text x='89.940' y='39.960' style='text-anchor: middle;'>or 2</text>+ </svg></div>++<pre>(defskeleton or+ (vars (x y mesg) (nb m nb-0 m-0 text) (s a b b-0 name) (k skey))+ (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))+ (defstrand serv 2 (na nb) (nb nb-0) (m m-0) (a b) (b b-0) (s s) (k k))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig nb k)+ (operation encryption-test (added-strand serv 2) (enc nb k (ltk b s))+ (0 2))+ (label 2)+ (parent 0)+ (unrealized (1 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k1">1</a>, Children: <a href="#k5">5</a> <a href="#k6">6</a> <a href="#k7">7</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat m a b (enc na m a b (ltk a s)) (enc nb m a b (ltk b s)))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(cat m y (enc nb k (ltk b s)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat m a b x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((na na) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>+ </g>+ <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text x='89.940' y='39.960' style='text-anchor: middle;'>or 3</text>+ </svg></div>++<pre>(defskeleton or+ (vars (x y mesg) (nb m na text) (s a b name) (k skey))+ (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))+ (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig nb k)+ (operation encryption-test (displaced 2 0 resp 2)+ (enc nb m-0 a-0 b (ltk b s)) (1 0))+ (label 3)+ (parent 1)+ (unrealized (1 0))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k2">2</a>, Children: <a href="#k8">8</a> <a href="#k9">9</a>, Seen Child: <a href="#k6">6</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m (enc nb k (ltk a s)) (enc nb-0 k (ltk a s)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat m a a (enc nb m a a (ltk a s)) (enc nb-0 m a a (ltk a s)))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(cat m y (enc nb k (ltk a s)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat m a a x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>+ </g>+ <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text x='89.940' y='39.960' style='text-anchor: middle;'>or 4</text>+ </svg></div>++<pre>(defskeleton or+ (vars (x y mesg) (nb m nb-0 text) (s a name) (k skey))+ (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))+ (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (non-orig (ltk a s))+ (uniq-orig nb k)+ (operation encryption-test (displaced 2 0 resp 2)+ (enc nb m-0 b b (ltk b s)) (1 0))+ (label 4)+ (parent 2)+ (seen 6)+ (unrealized (1 0))+ (comment "3 in cohort - 2 not yet seen"))</pre>++<p id="k5">Item <a href="#t0">5</a>, Parent: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 114.960 Q 192.300 150.660 144.719 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m a b (enc na m a b (ltk a s)))</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat m a b (enc na m a b (ltk a s)) (enc nb m a b (ltk b s)))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(cat m y (enc nb k (ltk b s)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat m a b x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((na na) (m m) (a a) (b b) (s s))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((na na) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>+ </g>+ <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>or 5 (realized)</text></svg></div>++<pre>(defskeleton or+ (vars (x y mesg) (nb m na text) (s a b name) (k skey))+ (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))+ (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k))+ (defstrand init 1 (na na) (m m) (a a) (b b) (s s))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig nb k)+ (operation encryption-test (added-strand init 1)+ (enc na m a b (ltk a s)) (1 0))+ (label 5)+ (parent 3)+ (unrealized)+ (shape)+ (maps ((0) ((nb nb) (s s) (a a) (b b) (k k) (m m) (x x) (y y))))+ (origs (k (1 1)) (nb (0 1))))</pre>++<p id="k6">Item <a href="#t0">6</a>, Parent: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m (enc nb k (ltk a s)) (enc nb k (ltk a s)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat m a a (enc nb m a a (ltk a s)) (enc nb m a a (ltk a s)))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(cat m y (enc nb k (ltk a s)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat m a a x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((na nb) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>+ </g>+ <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>or 6 (realized)</text></svg></div>++<pre>(defskeleton or+ (vars (x y mesg) (nb m text) (s a name) (k skey))+ (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))+ (defstrand serv 2 (na nb) (nb nb) (m m) (a a) (b a) (s s) (k k))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (non-orig (ltk a s))+ (uniq-orig nb k)+ (operation encryption-test (displaced 2 0 resp 2)+ (enc na m a a (ltk a s)) (1 0))+ (label 6)+ (parent 3)+ (unrealized)+ (shape)+ (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))+ (origs (k (1 1)) (nb (0 1))))</pre>++<p id="k7">Item <a href="#t0">7</a>, Parent: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m a a x-0 (enc na m a a (ltk a s)))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat m a a x-0)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m (enc na k (ltk a s)) (enc nb k (ltk a s)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat m a a (enc na m a a (ltk a s)) (enc nb m a a (ltk a s)))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(cat m y (enc nb k (ltk a s)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat m a a x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0) (nb na) (m m) (a a) (b a) (s s))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((na na) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>+ </g>+ <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>or 7 (realized)</text></svg></div>++<pre>(defskeleton or+ (vars (x y x-0 mesg) (nb m na text) (s a name) (k skey))+ (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))+ (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b a) (s s) (k k))+ (defstrand resp 2 (x x-0) (nb na) (m m) (a a) (b a) (s s))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))+ (non-orig (ltk a s))+ (uniq-orig nb k)+ (operation encryption-test (added-strand resp 2)+ (enc na m a a (ltk a s)) (1 0))+ (label 7)+ (parent 3)+ (unrealized)+ (shape)+ (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))+ (origs (k (1 1)) (nb (0 1))))</pre>++<p id="k8">Item <a href="#t0">8</a>, Parent: <a href="#k4">4</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 114.960 Q 192.300 150.660 144.719 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m a a (enc nb-0 m a a (ltk a s)))</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m (enc nb k (ltk a s)) (enc nb-0 k (ltk a s)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat m a a (enc nb m a a (ltk a s)) (enc nb-0 m a a (ltk a s)))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(cat m y (enc nb k (ltk a s)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat m a a x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((na nb-0) (m m) (a a) (b a) (s s))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>+ </g>+ <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>or 8 (realized)</text></svg></div>++<pre>(defskeleton or+ (vars (x y mesg) (nb m nb-0 text) (s a name) (k skey))+ (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))+ (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))+ (defstrand init 1 (na nb-0) (m m) (a a) (b a) (s s))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))+ (non-orig (ltk a s))+ (uniq-orig nb k)+ (operation encryption-test (added-strand init 1)+ (enc nb-0 m a a (ltk a s)) (1 0))+ (label 8)+ (parent 4)+ (unrealized)+ (shape)+ (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))+ (origs (k (1 1)) (nb (0 1))))</pre>++<p id="k9">Item <a href="#t0">9</a>, Parent: <a href="#k4">4</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m a a x-0 (enc nb-0 m a a (ltk a s)))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat m a a x-0)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m (enc nb k (ltk a s)) (enc nb-0 k (ltk a s)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat m a a (enc nb m a a (ltk a s)) (enc nb-0 m a a (ltk a s)))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(cat m y (enc nb k (ltk a s)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat m a a x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0) (nb nb-0) (m m) (a a) (b a) (s s))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>+ </g>+ <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>or 9 (realized)</text></svg></div>++<pre>(defskeleton or+ (vars (x y x-0 mesg) (nb m nb-0 text) (s a name) (k skey))+ (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))+ (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))+ (defstrand resp 2 (x x-0) (nb nb-0) (m m) (a a) (b a) (s s))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))+ (non-orig (ltk a s))+ (uniq-orig nb k)+ (operation encryption-test (added-strand resp 2)+ (enc nb-0 m a a (ltk a s)) (1 0))+ (label 9)+ (parent 4)+ (unrealized)+ (shape)+ (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))+ (origs (k (1 1)) (nb (0 1))))</pre>++</body>+</html>
doc/examples/pkinit.xhtml view
@@ -1,2612 +1,2353 @@-<?xml version="1.0"?> -<!-- CPSA 3.2.1 --> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> - <title>Kerberos PKINIT</title> - <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /> - <style> - svg.diagram { border-width: 1px; border-style: solid } - </style> -</head> -<body> - -<pre>(herald "Kerberos PKINIT") -(comment "CPSA 3.2.1") -(comment "All input read from pkinit.scm")</pre> - -<p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t8">8</a> <a href="#t13">13</a> <a href="#t16">16</a> <a href="#t23">23</a>.</p> - -<p id="t0">Tree <a href="#top">0</a>.</p> - -<div> - <svg - class='diagram' width='129.840pt' height='79.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 129.840 79.920' font-size='12.000'> - <text - x='89.880' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k1", "_self")'>1</text> - <line - x1='39.960' y1='39.960' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k0", "_self")'>0</text> - </svg></div> - -<pre>(defprotocol pkinit-flawed basic - (defrole client - (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey)) - (trace (send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - (uniq-orig n2 n1)) - (defrole auth - (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey)) - (trace (recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - (uniq-orig k ak)))</pre> - -<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p> - -<div> - <svg - class='diagram' width='79.920pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 79.920 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k n2 (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text - x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g> - <text - x='39.960' y='39.960' - style='text-anchor: middle;'>pkinit-flawed 0</text></svg></div> - -<pre>(defskeleton pkinit-flawed - (vars (n2 n1 text) (tc tk tgt data) (c as t name) (k ak skey)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1) - (goals - (forall ((c as name) (k skey) (z node)) - (implies - (and (p "client" 1 z) (p "client" "c" z c) - (p "client" "as" z as) (p "client" "k" z k) (non (privk as)) - (non (privk c))) - (exists ((z-0 node)) - (and (p "auth" 1 z-0) (p "auth" "as" z-0 as) - (p "auth" "k" z-0 k) (p "auth" "c" z-0 c)))))) - (traces - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k))))) - (label 0) - (unrealized (0 1)) - (origs (n1 (0 0)) (n2 (0 0))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k n2 (privk as)) (pubk c-0)) c-0 tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc-0 n2 (privk c-0)) c-0 t-0 n1-0)</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc k n2 (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c-0) (t t-0) (as as) (k k) (ak ak-0))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text - x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-flawed 1 (realized)</text></svg> - </div> - -<pre>(defskeleton pkinit-flawed - (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data) - (c as t c-0 t-0 name) (k ak ak-0 skey)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) - (c c-0) (t t-0) (as as) (k k) (ak ak-0)) - (precedes ((0 0) (1 0)) ((1 1) (0 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 k ak-0) - (operation encryption-test (added-strand auth 2) (enc k n2 (privk as)) - (0 1)) - (traces - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - ((recv (cat (enc tc-0 n2 (privk c-0)) c-0 t-0 n1-0)) - (send - (cat (enc (enc k n2 (privk as)) (pubk c-0)) c-0 tgt-0 - (enc ak-0 n1-0 tk-0 t-0 k))))) - (label 1) - (parent 0) - (unrealized) - (shape) - (satisfies (no (c c) (as as) (k k) (z (0 1)))) - (maps - ((0) - ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk) - (tgt tgt) (ak ak)))) - (origs (k (1 1)) (ak-0 (1 1)) (n1 (0 0)) (n2 (0 0))))</pre> - -<p id="t2">Tree <a href="#top">2</a>.</p> - -<div> - <svg - class='diagram' width='279.600pt' height='154.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.600 154.920' font-size='12.000'> - <text - x='239.640' y='101.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k7", "_self")'>7</text> - <line - x1='189.720' y1='114.960' x2='239.640' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='189.720' y='101.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k6", "_self")'>6</text> - <line - x1='139.800' y1='77.460' x2='189.720' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='189.720' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k5", "_self")'>5</text> - <line - x1='139.800' y1='77.460' x2='189.720' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='63.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k4", "_self")'>4</text> - <line - x1='89.880' y1='77.460' x2='139.800' y2='77.460' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='63.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k3", "_self")'>3</text> - <line - x1='39.960' y1='77.460' x2='89.880' y2='77.460' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='63.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k2", "_self")'>2</text> - </svg></div> - -<pre>(defprotocol pkinit-fix1 basic - (defrole client - (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey)) - (trace (send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - (uniq-orig n2 n1)) - (defrole auth - (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey)) - (trace (recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - (uniq-orig k ak)))</pre> - -<p id="k2">Item <a href="#t2">2</a>, Child: <a href="#k3">3</a>.</p> - -<div> - <svg - class='diagram' width='79.920pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 79.920 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text - x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g> - <text - x='39.960' y='39.960' - style='text-anchor: middle;'>pkinit-fix1 2</text></svg></div> - -<pre>(defskeleton pkinit-fix1 - (vars (n2 n1 text) (tc tk tgt data) (c as t name) (k ak skey)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1) - (goals - (forall ((c as name) (k skey) (z node)) - (implies - (and (p "client" 1 z) (p "client" "c" z c) - (p "client" "as" z as) (p "client" "k" z k) (non (privk as)) - (non (privk c))) - (exists ((z-0 node)) - (and (p "auth" 1 z-0) (p "auth" "as" z-0 as) - (p "auth" "k" z-0 k) (p "auth" "c" z-0 c)))))) - (traces - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k))))) - (label 2) - (unrealized (0 1)) - (origs (n1 (0 0)) (n2 (0 0))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k3">Item <a href="#t2">3</a>, Parent: <a href="#k2">2</a>, Child: <a href="#k4">4</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title> - <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text - x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-fix1 3</text></svg></div> - -<pre>(defskeleton pkinit-fix1 - (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data) - (c as t t-0 name) (k ak ak-0 skey)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) - (c c) (t t-0) (as as) (k k) (ak ak-0)) - (precedes ((0 0) (1 0)) ((1 1) (0 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 k ak-0) - (operation encryption-test (added-strand auth 2) - (enc k n2 c (privk as)) (0 1)) - (traces - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - ((recv (cat (enc tc-0 n2 (privk c)) c t-0 n1-0)) - (send - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 - (enc ak-0 n1-0 tk-0 t-0 k))))) - (label 3) - (parent 2) - (unrealized (0 1) (1 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k4">Item <a href="#t2">4</a>, Parent: <a href="#k3">3</a>, Children: <a href="#k5">5</a> <a href="#k6">6</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t-0 n1-0)</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text - x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-fix1 4</text></svg></div> - -<pre>(defskeleton pkinit-fix1 - (vars (n2 n1 n1-0 text) (tc tk tgt tk-0 tgt-0 data) (c as t t-0 name) - (k ak ak-0 skey)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0) - (c c) (t t-0) (as as) (k k) (ak ak-0)) - (precedes ((0 0) (1 0)) ((1 1) (0 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 k ak-0) - (operation encryption-test (displaced 2 0 client 1) - (enc tc-0 n2 (privk c)) (1 0)) - (traces - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - ((recv (cat (enc tc n2 (privk c)) c t-0 n1-0)) - (send - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 - (enc ak-0 n1-0 tk-0 t-0 k))))) - (label 4) - (parent 3) - (unrealized (0 1)) - (comment "2 in cohort - 2 not yet seen"))</pre> - -<p id="k5">Item <a href="#t2">5</a>, Parent: <a href="#k4">4</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text - x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-fix1 5 (realized)</text></svg> - </div> - -<pre>(defskeleton pkinit-fix1 - (vars (n2 n1 text) (tc tgt tk tgt-0 data) (c as t name) (k ak skey)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) - (t t) (as as) (k k) (ak ak)) - (precedes ((0 0) (1 0)) ((1 1) (0 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 k ak) - (operation encryption-test (displaced 2 1 auth 2) - (enc ak-0 n1-0 tk-0 t-0 k) (0 1)) - (traces - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - ((recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 - (enc ak n1 tk t k))))) - (label 5) - (parent 4) - (unrealized) - (shape) - (satisfies yes) - (maps - ((0) - ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk) - (tgt tgt) (ak ak)))) - (origs (k (1 1)) (ak (1 1)) (n1 (0 0)) (n2 (0 0))))</pre> - -<p id="k6">Item <a href="#t2">6</a>, Parent: <a href="#k4">4</a>, Child: <a href="#k7">7</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='189.960' x2='239.880' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>k</title><circle cx='239.880' cy='264.960' r='6.000'/></g> - <g><title>k</title> - <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g> - <path - d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t-0 n1-0)</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text - x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>pkinit-fix1 6</text></svg></div> - -<pre>(defskeleton pkinit-fix1 - (vars (n2 n1 n1-0 text) (tc tk tgt tk-0 tgt-0 data) (c as t t-0 name) - (k ak ak-0 skey)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0) - (c c) (t t-0) (as as) (k k) (ak ak-0)) - (deflistener k) - (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 k ak-0) - (operation encryption-test (added-listener k) (enc ak n1 tk t k) - (0 1)) - (traces - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - ((recv (cat (enc tc n2 (privk c)) c t-0 n1-0)) - (send - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 - (enc ak-0 n1-0 tk-0 t-0 k)))) ((recv k) (send k))) - (label 6) - (parent 4) - (unrealized (2 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k7">Item <a href="#t2">7</a>, Parent: <a href="#k6">6</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='189.960' x2='239.880' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>ak-0</title><circle cx='239.880' cy='264.960' r='6.000'/> - </g> - <g><title>ak-0</title> - <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g> - <path - d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc ak-0 n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 ak-0))</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t-0 n1-0)</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc ak-0 n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t ak-0))</title> - <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k ak-0) (ak ak-0))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k ak-0) (ak ak))</title> - <text - x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>pkinit-fix1 7</text></svg></div> - -<pre>(defskeleton pkinit-fix1 - (vars (n2 n1 n1-0 text) (tc tk tgt tk-0 tgt-0 data) (c as t t-0 name) - (ak ak-0 skey)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k ak-0) (ak ak)) - (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0) - (c c) (t t-0) (as as) (k ak-0) (ak ak-0)) - (deflistener ak-0) - (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 ak-0) - (operation nonce-test (displaced 3 1 auth 2) k (2 0) - (enc (enc k n2 c (privk as)) (pubk c))) - (traces - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat (enc (enc ak-0 n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t ak-0)))) - ((recv (cat (enc tc n2 (privk c)) c t-0 n1-0)) - (send - (cat (enc (enc ak-0 n2 c (privk as)) (pubk c)) c tgt-0 - (enc ak-0 n1-0 tk-0 t-0 ak-0)))) ((recv ak-0) (send ak-0))) - (label 7) - (parent 6) - (unrealized (2 0)) - (comment "empty cohort"))</pre> - -<p id="t8">Tree <a href="#top">8</a>.</p> - -<div> - <svg - class='diagram' width='229.680pt' height='154.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 229.680 154.920' font-size='12.000'> - <text - x='189.720' y='101.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k12", "_self")'>12</text> - <line - x1='139.800' y1='114.960' x2='189.720' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='101.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k11", "_self")'>11</text> - <line - x1='89.880' y1='77.460' x2='139.800' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k10", "_self")'>10</text> - <line - x1='89.880' y1='77.460' x2='139.800' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='63.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k9", "_self")'>9</text> - <line - x1='39.960' y1='77.460' x2='89.880' y2='77.460' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='63.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k8", "_self")'>8</text> - </svg></div> - -<pre>(defprotocol pkinit-fix2 basic - (defrole client - (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey)) - (trace (send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt (enc ak n1 tk t k)))) - (uniq-orig n2 n1)) - (defrole auth - (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey)) - (trace (recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt (enc ak n1 tk t k)))) - (uniq-orig k ak)))</pre> - -<p id="k8">Item <a href="#t8">8</a>, Child: <a href="#k9">9</a>.</p> - -<div> - <svg - class='diagram' width='79.920pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 79.920 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text - x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g> - <text - x='39.960' y='39.960' - style='text-anchor: middle;'>pkinit-fix2 8</text></svg></div> - -<pre>(defskeleton pkinit-fix2 - (vars (n2 n1 text) (tc tk tgt data) (c as t name) (k ak skey)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1) - (goals - (forall ((c as name) (k skey) (z node)) - (implies - (and (p "client" 1 z) (p "client" "c" z c) - (p "client" "as" z as) (p "client" "k" z k) (non (privk as)) - (non (privk c))) - (exists ((z-0 node)) - (and (p "auth" 1 z-0) (p "auth" "as" z-0 as) - (p "auth" "k" z-0 k) (p "auth" "c" z-0 c)))))) - (traces - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt (enc ak n1 tk t k))))) - (label 8) - (unrealized (0 1)) - (origs (n1 (0 0)) (n2 (0 0))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k9">Item <a href="#t8">9</a>, Parent: <a href="#k8">8</a>, Children: <a href="#k10">10</a> <a href="#k11">11</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak-0))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text - x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-fix2 9</text></svg></div> - -<pre>(defskeleton pkinit-fix2 - (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c as t name) - (k ak ak-0 skey)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) - (t t) (as as) (k k) (ak ak-0)) - (precedes ((0 0) (1 0)) ((1 1) (0 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 k ak-0) - (operation encryption-test (added-strand auth 2) - (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (0 1)) - (traces - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt (enc ak n1 tk t k)))) - ((recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))))) - (label 9) - (parent 8) - (unrealized (0 1)) - (comment "2 in cohort - 2 not yet seen"))</pre> - -<p id="k10">Item <a href="#t8">10</a>, Parent: <a href="#k9">9</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text - x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-fix2 10 (realized)</text></svg> - </div> - -<pre>(defskeleton pkinit-fix2 - (vars (n2 n1 text) (tc tgt tk tgt-0 data) (c as t name) (k ak skey)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) - (t t) (as as) (k k) (ak ak)) - (precedes ((0 0) (1 0)) ((1 1) (0 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 k ak) - (operation encryption-test (displaced 2 1 auth 2) - (enc ak-0 n1 tk-0 t k) (0 1)) - (traces - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt (enc ak n1 tk t k)))) - ((recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt-0 (enc ak n1 tk t k))))) - (label 10) - (parent 9) - (unrealized) - (shape) - (satisfies yes) - (maps - ((0) - ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk) - (tgt tgt) (ak ak)))) - (origs (k (1 1)) (ak (1 1)) (n1 (0 0)) (n2 (0 0))))</pre> - -<p id="k11">Item <a href="#t8">11</a>, Parent: <a href="#k9">9</a>, Child: <a href="#k12">12</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='189.960' x2='239.880' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>k</title><circle cx='239.880' cy='264.960' r='6.000'/></g> - <g><title>k</title> - <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g> - <path - d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak-0))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text - x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>pkinit-fix2 11</text></svg></div> - -<pre>(defskeleton pkinit-fix2 - (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c as t name) - (k ak ak-0 skey)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) - (t t) (as as) (k k) (ak ak-0)) - (deflistener k) - (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 k ak-0) - (operation encryption-test (added-listener k) (enc ak n1 tk t k) - (0 1)) - (traces - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt (enc ak n1 tk t k)))) - ((recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k)))) - ((recv k) (send k))) - (label 11) - (parent 9) - (unrealized (2 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k12">Item <a href="#t8">12</a>, Parent: <a href="#k11">11</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='189.960' x2='239.880' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>ak-0</title><circle cx='239.880' cy='264.960' r='6.000'/> - </g> - <g><title>ak-0</title> - <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g> - <path - d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc ak-0 (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t ak-0))</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc ak-0 (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t ak-0))</title> - <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k ak-0) (ak ak-0))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k ak-0) (ak ak))</title> - <text - x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>pkinit-fix2 12</text></svg></div> - -<pre>(defskeleton pkinit-fix2 - (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c as t name) - (ak ak-0 skey)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k ak-0) (ak ak)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) - (t t) (as as) (k ak-0) (ak ak-0)) - (deflistener ak-0) - (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 ak-0) - (operation nonce-test (displaced 3 1 auth 2) k (2 0) - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c))) - (traces - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat - (enc (enc ak-0 (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt (enc ak n1 tk t ak-0)))) - ((recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat - (enc (enc ak-0 (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t ak-0)))) - ((recv ak-0) (send ak-0))) - (label 12) - (parent 11) - (unrealized (2 0)) - (comment "empty cohort"))</pre> - -<p id="t13">Tree <a href="#top">13</a>.</p> - -<div> - <svg - class='diagram' width='179.760pt' height='79.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.760 79.920' font-size='12.000'> - <text - x='139.800' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k15", "_self")'>15</text> - <line - x1='89.880' y1='39.960' x2='139.800' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k14", "_self")'>14</text> - <line - x1='39.960' y1='39.960' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k13", "_self")'>13</text> - </svg></div> - -<pre>(defprotocol pkinit-flawed basic - (defrole client - (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey)) - (trace (send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - (uniq-orig n2 n1)) - (defrole auth - (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey)) - (trace (recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - (uniq-orig k ak)))</pre> - -<p id="k13">Item <a href="#t13">13</a>, Child: <a href="#k14">14</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k n2-0 (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc k n2 (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-flawed 13</text></svg></div> - -<pre>(defskeleton pkinit-flawed - (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data) - (c c-0 as t as-0 t-0 name) (k ak ak-0 skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) - (t t) (as as-0) (k k) (ak ak)) - (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) - (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0)) - (non-orig (privk c) (privk as)) - (uniq-orig n2-0 n1-0 k ak) - (goals - (forall ((c c-0 as name) (k skey) (z z-0 node)) - (implies - (and (p "client" 1 z) (p "client" "c" z c) - (p "client" "as" z as) (p "client" "k" z k) (p "auth" 1 z-0) - (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as)) - (non (privk c))) (= c c-0)))) - (traces - ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)) - (send - (cat (enc (enc k n2 (privk as-0)) (pubk c-0)) c-0 tgt - (enc ak n1 tk t k)))) - ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)) - (recv - (cat (enc (enc k n2-0 (privk as)) (pubk c)) c tgt-0 - (enc ak-0 n1-0 tk-0 t-0 k))))) - (label 13) - (unrealized (1 1)) - (preskeleton) - (comment "Not a skeleton"))</pre> - -<p id="k14">Item <a href="#t13">14</a>, Parent: <a href="#k13">13</a>, Child: <a href="#k15">15</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k n2-0 (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k n2 (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-flawed 14</text></svg></div> - -<pre>(defskeleton pkinit-flawed - (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data) - (c c-0 as t as-0 t-0 name) (k ak ak-0 skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) - (t t) (as as-0) (k k) (ak ak)) - (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) - (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0)) - (precedes ((0 1) (1 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2-0 n1-0 k ak) - (traces - ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)) - (send - (cat (enc (enc k n2 (privk as-0)) (pubk c-0)) c-0 tgt - (enc ak n1 tk t k)))) - ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)) - (recv - (cat (enc (enc k n2-0 (privk as)) (pubk c)) c tgt-0 - (enc ak-0 n1-0 tk-0 t-0 k))))) - (label 14) - (parent 13) - (unrealized (1 1)) - (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k15">Item <a href="#t13">15</a>, Parent: <a href="#k14">14</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k n2 (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <path - d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k n2 (privk as)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as) (k k) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-flawed 15 (realized)</text></svg> - </div> - -<pre>(defskeleton pkinit-flawed - (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data) - (c c-0 t as t-0 name) (k ak ak-0 skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) - (t t) (as as) (k k) (ak ak)) - (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) - (c c) (t t-0) (as as) (k k) (ak ak-0)) - (precedes ((0 1) (1 1)) ((1 0) (0 0))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1-0 k ak) - (operation encryption-test (displaced 2 0 auth 2) - (enc k n2-0 (privk as-0)) (1 1)) - (traces - ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)) - (send - (cat (enc (enc k n2 (privk as)) (pubk c-0)) c-0 tgt - (enc ak n1 tk t k)))) - ((send (cat (enc tc-0 n2 (privk c)) c t-0 n1-0)) - (recv - (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt-0 - (enc ak-0 n1-0 tk-0 t-0 k))))) - (label 15) - (parent 14) - (unrealized) - (shape) - (satisfies (no (c c) (c-0 c-0) (as as) (k k) (z (1 1)) (z-0 (0 1)))) - (maps - ((0 1) - ((c c) (c-0 c-0) (as as) (k k) (t t) (as-0 as) (n2 n2) (n1 n1) - (tc tc) (tk tk) (tgt tgt) (ak ak) (t-0 t-0) (n2-0 n2) - (n1-0 n1-0) (tc-0 tc-0) (tk-0 tk-0) (tgt-0 tgt-0) (ak-0 ak-0)))) - (origs (k (0 1)) (ak (0 1)) (n1-0 (1 0)) (n2 (1 0))))</pre> - -<p id="t16">Tree <a href="#top">16</a>.</p> - -<div> - <svg - class='diagram' width='279.600pt' height='154.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.600 154.920' font-size='12.000'> - <text - x='239.640' y='101.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k22", "_self")'>22</text> - <line - x1='189.720' y1='114.960' x2='239.640' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='189.720' y='101.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k20", "_self")'>20</text> - <line - x1='139.800' y1='77.460' x2='189.720' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='239.640' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k21", "_self")'>21</text> - <line - x1='189.720' y1='39.960' x2='239.640' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='189.720' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k19", "_self")'>19</text> - <line - x1='139.800' y1='77.460' x2='189.720' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='63.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k18", "_self")'>18</text> - <line - x1='89.880' y1='77.460' x2='139.800' y2='77.460' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='63.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k17", "_self")'>17</text> - <line - x1='39.960' y1='77.460' x2='89.880' y2='77.460' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='63.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k16", "_self")'>16</text> - </svg></div> - -<pre>(defprotocol pkinit-fix1 basic - (defrole client - (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey)) - (trace (send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - (uniq-orig n2 n1)) - (defrole auth - (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey)) - (trace (recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - (uniq-orig k ak)))</pre> - -<p id="k16">Item <a href="#t16">16</a>, Child: <a href="#k17">17</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc k n2 c-0 (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-fix1 16</text></svg></div> - -<pre>(defskeleton pkinit-fix1 - (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data) - (c c-0 as t as-0 t-0 name) (k ak ak-0 skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) - (t t) (as as-0) (k k) (ak ak)) - (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) - (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0)) - (non-orig (privk c) (privk as)) - (uniq-orig n2-0 n1-0 k ak) - (goals - (forall ((c c-0 as name) (k skey) (z z-0 node)) - (implies - (and (p "client" 1 z) (p "client" "c" z c) - (p "client" "as" z as) (p "client" "k" z k) (p "auth" 1 z-0) - (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as)) - (non (privk c))) (exists ((z-1 node)) (p "client" 1 z-1))))) - (traces - ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)) - (send - (cat (enc (enc k n2 c-0 (privk as-0)) (pubk c-0)) c-0 tgt - (enc ak n1 tk t k)))) - ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)) - (recv - (cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt-0 - (enc ak-0 n1-0 tk-0 t-0 k))))) - (label 16) - (unrealized (1 1)) - (preskeleton) - (comment "Not a skeleton"))</pre> - -<p id="k17">Item <a href="#t16">17</a>, Parent: <a href="#k16">16</a>, Child: <a href="#k18">18</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k n2 c-0 (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-fix1 17</text></svg></div> - -<pre>(defskeleton pkinit-fix1 - (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data) - (c c-0 as t as-0 t-0 name) (k ak ak-0 skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) - (t t) (as as-0) (k k) (ak ak)) - (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) - (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0)) - (precedes ((0 1) (1 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2-0 n1-0 k ak) - (traces - ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)) - (send - (cat (enc (enc k n2 c-0 (privk as-0)) (pubk c-0)) c-0 tgt - (enc ak n1 tk t k)))) - ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)) - (recv - (cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt-0 - (enc ak-0 n1-0 tk-0 t-0 k))))) - (label 17) - (parent 16) - (unrealized (1 1)) - (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k18">Item <a href="#t16">18</a>, Parent: <a href="#k17">17</a>, Children: <a href="#k19">19</a> <a href="#k20">20</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <path - d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-fix1 18</text></svg></div> - -<pre>(defskeleton pkinit-fix1 - (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data) - (c t as t-0 name) (k ak ak-0 skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) - (c c) (t t-0) (as as) (k k) (ak ak-0)) - (precedes ((0 1) (1 1)) ((1 0) (0 0))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1-0 k ak) - (operation encryption-test (displaced 2 0 auth 2) - (enc k n2-0 c-0 (privk as-0)) (1 1)) - (traces - ((recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - ((send (cat (enc tc-0 n2 (privk c)) c t-0 n1-0)) - (recv - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 - (enc ak-0 n1-0 tk-0 t-0 k))))) - (label 18) - (parent 17) - (unrealized (0 0) (1 1)) - (origs (k (0 1)) (ak (0 1)) (n1-0 (1 0)) (n2 (1 0))) - (comment "2 in cohort - 2 not yet seen"))</pre> - -<p id="k19">Item <a href="#t16">19</a>, Parent: <a href="#k18">18</a>, Child: <a href="#k21">21</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <path - d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc-0 n2 (privk c)) c t n1)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1) (tc tc-0) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-fix1 19</text></svg></div> - -<pre>(defskeleton pkinit-fix1 - (vars (n2 n1 text) (tc tk tgt tc-0 tgt-0 data) (c t as name) - (k ak skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc-0) (tk tk) (tgt tgt-0) - (c c) (t t) (as as) (k k) (ak ak)) - (precedes ((0 1) (1 1)) ((1 0) (0 0))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 k ak) - (operation encryption-test (displaced 2 0 auth 2) - (enc ak-0 n1-0 tk-0 t-0 k) (1 1)) - (traces - ((recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - ((send (cat (enc tc-0 n2 (privk c)) c t n1)) - (recv - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 - (enc ak n1 tk t k))))) - (label 19) - (parent 18) - (unrealized (0 0)) - (origs (k (0 1)) (ak (0 1)) (n1 (1 0)) (n2 (1 0))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k20">Item <a href="#t16">20</a>, Parent: <a href="#k18">18</a>, Child: <a href="#k22">22</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='189.960' x2='239.880' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='114.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>k</title><circle cx='239.880' cy='264.960' r='6.000'/></g> - <g><title>k</title> - <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title> - <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g> - <path - d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>pkinit-fix1 20</text></svg></div> - -<pre>(defskeleton pkinit-fix1 - (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data) - (c t as t-0 name) (k ak ak-0 skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) - (c c) (t t-0) (as as) (k k) (ak ak-0)) - (deflistener k) - (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1-0 k ak) - (operation encryption-test (added-listener k) - (enc ak-0 n1-0 tk-0 t-0 k) (1 1)) - (traces - ((recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - ((send (cat (enc tc-0 n2 (privk c)) c t-0 n1-0)) - (recv - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 - (enc ak-0 n1-0 tk-0 t-0 k)))) ((recv k) (send k))) - (label 20) - (parent 18) - (unrealized (0 0) (2 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k21">Item <a href="#t16">21</a>, Parent: <a href="#k19">19</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <path - d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-fix1 21 (realized)</text></svg> - </div> - -<pre>(defskeleton pkinit-fix1 - (vars (n2 n1 text) (tk tgt tc tgt-0 data) (c t as name) (k ak skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) - (t t) (as as) (k k) (ak ak)) - (precedes ((0 1) (1 1)) ((1 0) (0 0))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 k ak) - (operation encryption-test (displaced 2 1 client 1) - (enc tc-0 n2 (privk c)) (0 0)) - (traces - ((recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t k)))) - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 - (enc ak n1 tk t k))))) - (label 21) - (parent 19) - (unrealized) - (shape) - (satisfies yes) - (maps - ((0 1) - ((c c) (c-0 c) (as as) (k k) (t t) (as-0 as) (n2 n2) (n1 n1) - (tc tc) (tk tk) (tgt tgt) (ak ak) (t-0 t) (n2-0 n2) (n1-0 n1) - (tc-0 tc) (tk-0 tk) (tgt-0 tgt-0) (ak-0 ak)))) - (origs (n1 (1 0)) (n2 (1 0)) (k (0 1)) (ak (0 1))))</pre> - -<p id="k22">Item <a href="#t16">22</a>, Parent: <a href="#k20">20</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='189.960' x2='239.880' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='114.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>ak</title><circle cx='239.880' cy='264.960' r='6.000'/></g> - <g><title>ak</title> - <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc ak n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 ak))</title> - <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g> - <path - d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc ak n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t ak))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k ak) (ak ak-0))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k ak) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>pkinit-fix1 22</text></svg></div> - -<pre>(defskeleton pkinit-fix1 - (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data) - (c t as t-0 name) (ak ak-0 skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k ak) (ak ak)) - (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) - (c c) (t t-0) (as as) (k ak) (ak ak-0)) - (deflistener ak) - (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1-0 ak) - (operation nonce-test (displaced 3 0 auth 2) k (2 0) - (enc (enc k n2 c (privk as)) (pubk c))) - (traces - ((recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat (enc (enc ak n2 c (privk as)) (pubk c)) c tgt - (enc ak n1 tk t ak)))) - ((send (cat (enc tc-0 n2 (privk c)) c t-0 n1-0)) - (recv - (cat (enc (enc ak n2 c (privk as)) (pubk c)) c tgt-0 - (enc ak-0 n1-0 tk-0 t-0 ak)))) ((recv ak) (send ak))) - (label 22) - (parent 20) - (unrealized (0 0) (2 0)) - (comment "empty cohort"))</pre> - -<p id="t23">Tree <a href="#top">23</a>.</p> - -<div> - <svg - class='diagram' width='279.600pt' height='154.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.600 154.920' font-size='12.000'> - <text - x='239.640' y='101.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k28", "_self")'>28</text> - <line - x1='189.720' y1='114.960' x2='239.640' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='189.720' y='101.040' style='text-anchor: middle; fill: red;' - onclick='window.open("#k27", "_self")'>27</text> - <line - x1='139.800' y1='77.460' x2='189.720' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='189.720' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k26", "_self")'>26</text> - <line - x1='139.800' y1='77.460' x2='189.720' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='63.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k25", "_self")'>25</text> - <line - x1='89.880' y1='77.460' x2='139.800' y2='77.460' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='63.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k24", "_self")'>24</text> - <line - x1='39.960' y1='77.460' x2='89.880' y2='77.460' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='63.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k23", "_self")'>23</text> - </svg></div> - -<pre>(defprotocol pkinit-fix2 basic - (defrole client - (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey)) - (trace (send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt (enc ak n1 tk t k)))) - (uniq-orig n2 n1)) - (defrole auth - (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey)) - (trace (recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt (enc ak n1 tk t k)))) - (uniq-orig k ak)))</pre> - -<p id="k23">Item <a href="#t23">23</a>, Child: <a href="#k24">24</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c-0)) c-0 t n1) (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-fix2 23</text></svg></div> - -<pre>(defskeleton pkinit-fix2 - (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data) - (c c-0 as t as-0 t-0 name) (k ak ak-0 skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) - (t t) (as as-0) (k k) (ak ak)) - (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) - (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0)) - (non-orig (privk c) (privk as)) - (uniq-orig n2-0 n1-0 k ak) - (goals - (forall ((c c-0 as name) (k skey) (z z-0 node)) - (implies - (and (p "client" 1 z) (p "client" "c" z c) - (p "client" "as" z as) (p "client" "k" z k) (p "auth" 1 z-0) - (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as)) - (non (privk c))) (exists ((z-1 node)) (p "client" 1 z-1))))) - (traces - ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)) - (send - (cat - (enc - (enc k (hash (enc tc n2 (privk c-0)) c-0 t n1) (privk as-0)) - (pubk c-0)) c-0 tgt (enc ak n1 tk t k)))) - ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)) - (recv - (cat - (enc - (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0) - (privk as)) (pubk c)) c tgt-0 - (enc ak-0 n1-0 tk-0 t-0 k))))) - (label 23) - (unrealized (1 1)) - (preskeleton) - (comment "Not a skeleton"))</pre> - -<p id="k24">Item <a href="#t23">24</a>, Parent: <a href="#k23">23</a>, Child: <a href="#k25">25</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c-0)) c-0 t n1) (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-fix2 24</text></svg></div> - -<pre>(defskeleton pkinit-fix2 - (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data) - (c c-0 as t as-0 t-0 name) (k ak ak-0 skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) - (t t) (as as-0) (k k) (ak ak)) - (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) - (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0)) - (precedes ((0 1) (1 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2-0 n1-0 k ak) - (traces - ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)) - (send - (cat - (enc - (enc k (hash (enc tc n2 (privk c-0)) c-0 t n1) (privk as-0)) - (pubk c-0)) c-0 tgt (enc ak n1 tk t k)))) - ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)) - (recv - (cat - (enc - (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0) - (privk as)) (pubk c)) c tgt-0 - (enc ak-0 n1-0 tk-0 t-0 k))))) - (label 24) - (parent 23) - (unrealized (1 1)) - (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1))) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k25">Item <a href="#t23">25</a>, Parent: <a href="#k24">24</a>, Children: <a href="#k26">26</a> <a href="#k27">27</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))</title> - <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g> - <path - d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak-0))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-fix2 25</text></svg></div> - -<pre>(defskeleton pkinit-fix2 - (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c t as name) - (k ak ak-0 skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) - (c c) (t t) (as as) (k k) (ak ak-0)) - (precedes ((0 1) (1 1)) ((1 0) (0 0))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 k ak) - (operation encryption-test (displaced 2 0 auth 2) - (enc k (hash (enc tc-0 n2-0 (privk c-0)) c-0 t-0 n1-0) (privk as-0)) - (1 1)) - (traces - ((recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt (enc ak n1 tk t k)))) - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))))) - (label 25) - (parent 24) - (unrealized (1 1)) - (origs (k (0 1)) (ak (0 1)) (n1 (1 0)) (n2 (1 0))) - (comment "2 in cohort - 2 not yet seen"))</pre> - -<p id="k26">Item <a href="#t23">26</a>, Parent: <a href="#k25">25</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='229.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 229.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title> - <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g> - <path - d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>pkinit-fix2 26 (realized)</text></svg> - </div> - -<pre>(defskeleton pkinit-fix2 - (vars (n2 n1 text) (tc tk tgt tgt-0 data) (c t as name) (k ak skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) - (t t) (as as) (k k) (ak ak)) - (precedes ((0 1) (1 1)) ((1 0) (0 0))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 k ak) - (operation encryption-test (displaced 2 0 auth 2) - (enc ak-0 n1 tk-0 t k) (1 1)) - (traces - ((recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt (enc ak n1 tk t k)))) - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt-0 (enc ak n1 tk t k))))) - (label 26) - (parent 25) - (unrealized) - (shape) - (satisfies yes) - (maps - ((0 1) - ((c c) (c-0 c) (as as) (k k) (t t) (as-0 as) (n2 n2) (n1 n1) - (tc tc) (tk tk) (tgt tgt) (ak ak) (t-0 t) (n2-0 n2) (n1-0 n1) - (tc-0 tc) (tk-0 tk) (tgt-0 tgt-0) (ak-0 ak)))) - (origs (k (0 1)) (ak (0 1)) (n1 (1 0)) (n2 (1 0))))</pre> - -<p id="k27">Item <a href="#t23">27</a>, Parent: <a href="#k25">25</a>, Child: <a href="#k28">28</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='189.960' x2='239.880' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='114.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>k</title><circle cx='239.880' cy='264.960' r='6.000'/></g> - <g><title>k</title> - <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))</title> - <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g> - <path - d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak-0))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>pkinit-fix2 27</text></svg></div> - -<pre>(defskeleton pkinit-fix2 - (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c t as name) - (k ak ak-0 skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k k) (ak ak)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) - (c c) (t t) (as as) (k k) (ak ak-0)) - (deflistener k) - (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 k ak) - (operation encryption-test (added-listener k) (enc ak-0 n1 tk-0 t k) - (1 1)) - (traces - ((recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt (enc ak n1 tk t k)))) - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k)))) - ((recv k) (send k))) - (label 27) - (parent 25) - (unrealized (2 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k28">Item <a href="#t23">28</a>, Parent: <a href="#k27">27</a>.</p> - -<div> - <svg - class='diagram' width='279.840pt' height='304.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 279.840 304.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='239.880' y1='189.960' x2='239.880' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='139.920' y1='114.960' x2='139.920' y2='264.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>ak</title><circle cx='239.880' cy='264.960' r='6.000'/></g> - <g><title>ak</title> - <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g> - <g> - <title>(cat (enc (enc ak (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t ak))</title> - <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g> - <path - d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle cx='139.920' cy='114.960' r='6.000'/></g> - <path - d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g> - <title>(cat (enc (enc ak (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t ak))</title> - <circle cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(cat (enc tc n2 (privk c)) c t n1)</title> - <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k ak) (ak ak-0))</title> - <text - x='139.920' y='77.460' style='text-anchor: middle;'>client</text> - </g> - <g> - <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k ak) (ak ak))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text> - </g> - <text - x='139.920' y='39.960' - style='text-anchor: middle;'>pkinit-fix2 28</text></svg></div> - -<pre>(defskeleton pkinit-fix2 - (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c t as name) - (ak ak-0 skey)) - (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) - (t t) (as as) (k ak) (ak ak)) - (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) - (c c) (t t) (as as) (k ak) (ak ak-0)) - (deflistener ak) - (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1))) - (non-orig (privk c) (privk as)) - (uniq-orig n2 n1 ak) - (operation nonce-test (displaced 3 0 auth 2) k (2 0) - (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c))) - (traces - ((recv (cat (enc tc n2 (privk c)) c t n1)) - (send - (cat - (enc (enc ak (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt (enc ak n1 tk t ak)))) - ((send (cat (enc tc n2 (privk c)) c t n1)) - (recv - (cat - (enc (enc ak (hash (enc tc n2 (privk c)) c t n1) (privk as)) - (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t ak)))) - ((recv ak) (send ak))) - (label 28) - (parent 27) - (unrealized (2 0)) - (comment "empty cohort"))</pre> - -</body> -</html> +<?xml version="1.0"?>+<!-- CPSA 3.4.0 -->+<html xmlns="http://www.w3.org/1999/xhtml">+<head>+ <title>Kerberos PKINIT</title>+ <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />+ <style>+ svg.diagram { border-width: 1px; border-style: solid }+ </style>+</head>+<body>++<pre>(herald "Kerberos PKINIT")+(comment "CPSA 3.4.0")+(comment "All input read from pkinit.scm")</pre>++<p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t8">8</a> <a href="#t13">13</a> <a href="#t16">16</a> <a href="#t23">23</a>.</p>++<p id="t0">Tree <a href="#top">0</a>.</p>++<div>+ <svg+ class='diagram' width='129.840pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 129.840 79.920' font-size='12.000'>+ <text+ x='89.880' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k1", "_self")'>1</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k0", "_self")'>0</text>+ </svg></div>++<pre>(defprotocol pkinit-flawed basic+ (defrole client+ (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))+ (trace (send (cat (enc tc n2 (privk c)) c t n1))+ (recv+ (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt+ (enc ak n1 tk t k))))+ (uniq-orig n2 n1))+ (defrole auth+ (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))+ (trace (recv (cat (enc tc n2 (privk c)) c t n1))+ (send+ (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt+ (enc ak n1 tk t k))))+ (uniq-orig k ak)))</pre>++<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k n2 (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>pkinit-flawed 0</text></svg></div>++<pre>(defskeleton pkinit-flawed+ (vars (n2 n1 text) (tc tk tgt data) (c as t name) (k ak skey))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1)+ (goals+ (forall ((c as name) (k skey) (z node))+ (implies+ (and (p "client" 1 z) (p "client" "c" z c)+ (p "client" "as" z as) (p "client" "k" z k) (non (privk as))+ (non (privk c)))+ (exists ((z-0 node))+ (and (p "auth" 1 z-0) (p "auth" "as" z-0 as)+ (p "auth" "k" z-0 k) (p "auth" "c" z-0 c))))))+ (label 0)+ (unrealized (0 1))+ (origs (n1 (0 0)) (n2 (0 0)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k n2 (privk as)) (pubk c-0)) c-0 tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc-0 n2 (privk c-0)) c-0 t-0 n1-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc k n2 (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c-0) (t t-0) (as as) (k k) (ak ak-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-flawed 1 (realized)</text></svg>+ </div>++<pre>(defskeleton pkinit-flawed+ (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)+ (c as t c-0 t-0 name) (k ak ak-0 skey))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)+ (c c-0) (t t-0) (as as) (k k) (ak ak-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 k ak-0)+ (operation encryption-test (added-strand auth 2) (enc k n2 (privk as))+ (0 1))+ (label 1)+ (parent 0)+ (unrealized)+ (shape)+ (satisfies (no (c c) (as as) (k k) (z (0 1))))+ (maps+ ((0)+ ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk)+ (tgt tgt) (ak ak))))+ (origs (k (1 1)) (ak-0 (1 1)) (n1 (0 0)) (n2 (0 0))))</pre>++<p id="t2">Tree <a href="#top">2</a>.</p>++<div>+ <svg+ class='diagram' width='279.600pt' height='154.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.600 154.920' font-size='12.000'>+ <text+ x='239.640' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k7", "_self")'>7</text>+ <line+ x1='189.720' y1='114.960' x2='239.640' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k6", "_self")'>6</text>+ <line+ x1='139.800' y1='77.460' x2='189.720' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k5", "_self")'>5</text>+ <line+ x1='139.800' y1='77.460' x2='189.720' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='63.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k4", "_self")'>4</text>+ <line+ x1='89.880' y1='77.460' x2='139.800' y2='77.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='63.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k3", "_self")'>3</text>+ <line+ x1='39.960' y1='77.460' x2='89.880' y2='77.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='63.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k2", "_self")'>2</text>+ </svg></div>++<pre>(defprotocol pkinit-fix1 basic+ (defrole client+ (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))+ (trace (send (cat (enc tc n2 (privk c)) c t n1))+ (recv+ (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt+ (enc ak n1 tk t k))))+ (uniq-orig n2 n1))+ (defrole auth+ (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))+ (trace (recv (cat (enc tc n2 (privk c)) c t n1))+ (send+ (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt+ (enc ak n1 tk t k))))+ (uniq-orig k ak)))</pre>++<p id="k2">Item <a href="#t2">2</a>, Child: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>pkinit-fix1 2</text></svg></div>++<pre>(defskeleton pkinit-fix1+ (vars (n2 n1 text) (tc tk tgt data) (c as t name) (k ak skey))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1)+ (goals+ (forall ((c as name) (k skey) (z node))+ (implies+ (and (p "client" 1 z) (p "client" "c" z c)+ (p "client" "as" z as) (p "client" "k" z k) (non (privk as))+ (non (privk c)))+ (exists ((z-0 node))+ (and (p "auth" 1 z-0) (p "auth" "as" z-0 as)+ (p "auth" "k" z-0 k) (p "auth" "c" z-0 c))))))+ (label 2)+ (unrealized (0 1))+ (origs (n1 (0 0)) (n2 (0 0)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k3">Item <a href="#t2">3</a>, Parent: <a href="#k2">2</a>, Child: <a href="#k4">4</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title>+ <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-fix1 3</text></svg></div>++<pre>(defskeleton pkinit-fix1+ (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)+ (c as t t-0 name) (k ak ak-0 skey))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)+ (c c) (t t-0) (as as) (k k) (ak ak-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 k ak-0)+ (operation encryption-test (added-strand auth 2)+ (enc k n2 c (privk as)) (0 1))+ (label 3)+ (parent 2)+ (unrealized (0 1) (1 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k4">Item <a href="#t2">4</a>, Parent: <a href="#k3">3</a>, Children: <a href="#k5">5</a> <a href="#k6">6</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t-0 n1-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-fix1 4</text></svg></div>++<pre>(defskeleton pkinit-fix1+ (vars (n2 n1 n1-0 text) (tc tk tgt tk-0 tgt-0 data) (c as t t-0 name)+ (k ak ak-0 skey))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0)+ (c c) (t t-0) (as as) (k k) (ak ak-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 k ak-0)+ (operation encryption-test (displaced 2 0 client 1)+ (enc tc-0 n2 (privk c)) (1 0))+ (label 4)+ (parent 3)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k5">Item <a href="#t2">5</a>, Parent: <a href="#k4">4</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-fix1 5 (realized)</text></svg>+ </div>++<pre>(defskeleton pkinit-fix1+ (vars (n2 n1 text) (tc tgt tk tgt-0 data) (c as t name) (k ak skey))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c)+ (t t) (as as) (k k) (ak ak))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 k ak)+ (operation encryption-test (displaced 2 1 auth 2)+ (enc ak-0 n1-0 tk-0 t-0 k) (0 1))+ (label 5)+ (parent 4)+ (unrealized)+ (shape)+ (satisfies yes)+ (maps+ ((0)+ ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk)+ (tgt tgt) (ak ak))))+ (origs (k (1 1)) (ak (1 1)) (n1 (0 0)) (n2 (0 0))))</pre>++<p id="k6">Item <a href="#t2">6</a>, Parent: <a href="#k4">4</a>, Child: <a href="#k7">7</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>k</title><circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>k</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t-0 n1-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>pkinit-fix1 6</text></svg></div>++<pre>(defskeleton pkinit-fix1+ (vars (n2 n1 n1-0 text) (tc tk tgt tk-0 tgt-0 data) (c as t t-0 name)+ (k ak ak-0 skey))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0)+ (c c) (t t-0) (as as) (k k) (ak ak-0))+ (deflistener k)+ (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 k ak-0)+ (operation encryption-test (added-listener k) (enc ak n1 tk t k)+ (0 1))+ (label 6)+ (parent 4)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k7">Item <a href="#t2">7</a>, Parent: <a href="#k6">6</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>ak-0</title><circle cx='239.880' cy='264.960' r='6.000'/>+ </g>+ <g><title>ak-0</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc ak-0 n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 ak-0))</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t-0 n1-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc ak-0 n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t ak-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k ak-0) (ak ak-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k ak-0) (ak ak))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>pkinit-fix1 7</text></svg></div>++<pre>(defskeleton pkinit-fix1+ (vars (n2 n1 n1-0 text) (tc tk tgt tk-0 tgt-0 data) (c as t t-0 name)+ (ak ak-0 skey))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k ak-0) (ak ak))+ (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0)+ (c c) (t t-0) (as as) (k ak-0) (ak ak-0))+ (deflistener ak-0)+ (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 ak-0)+ (operation nonce-test (displaced 3 1 auth 2) k (2 0)+ (enc (enc k n2 c (privk as)) (pubk c)))+ (label 7)+ (parent 6)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="t8">Tree <a href="#top">8</a>.</p>++<div>+ <svg+ class='diagram' width='229.680pt' height='154.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 229.680 154.920' font-size='12.000'>+ <text+ x='189.720' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k12", "_self")'>12</text>+ <line+ x1='139.800' y1='114.960' x2='189.720' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k11", "_self")'>11</text>+ <line+ x1='89.880' y1='77.460' x2='139.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k10", "_self")'>10</text>+ <line+ x1='89.880' y1='77.460' x2='139.800' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='63.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k9", "_self")'>9</text>+ <line+ x1='39.960' y1='77.460' x2='89.880' y2='77.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='63.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k8", "_self")'>8</text>+ </svg></div>++<pre>(defprotocol pkinit-fix2 basic+ (defrole client+ (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))+ (trace (send (cat (enc tc n2 (privk c)) c t n1))+ (recv+ (cat+ (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))+ (pubk c)) c tgt (enc ak n1 tk t k))))+ (uniq-orig n2 n1))+ (defrole auth+ (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))+ (trace (recv (cat (enc tc n2 (privk c)) c t n1))+ (send+ (cat+ (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))+ (pubk c)) c tgt (enc ak n1 tk t k))))+ (uniq-orig k ak)))</pre>++<p id="k8">Item <a href="#t8">8</a>, Child: <a href="#k9">9</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>pkinit-fix2 8</text></svg></div>++<pre>(defskeleton pkinit-fix2+ (vars (n2 n1 text) (tc tk tgt data) (c as t name) (k ak skey))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1)+ (goals+ (forall ((c as name) (k skey) (z node))+ (implies+ (and (p "client" 1 z) (p "client" "c" z c)+ (p "client" "as" z as) (p "client" "k" z k) (non (privk as))+ (non (privk c)))+ (exists ((z-0 node))+ (and (p "auth" 1 z-0) (p "auth" "as" z-0 as)+ (p "auth" "k" z-0 k) (p "auth" "c" z-0 c))))))+ (label 8)+ (unrealized (0 1))+ (origs (n1 (0 0)) (n2 (0 0)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k9">Item <a href="#t8">9</a>, Parent: <a href="#k8">8</a>, Children: <a href="#k10">10</a> <a href="#k11">11</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-fix2 9</text></svg></div>++<pre>(defskeleton pkinit-fix2+ (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c as t name)+ (k ak ak-0 skey))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c)+ (t t) (as as) (k k) (ak ak-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 k ak-0)+ (operation encryption-test (added-strand auth 2)+ (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (0 1))+ (label 9)+ (parent 8)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k10">Item <a href="#t8">10</a>, Parent: <a href="#k9">9</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-fix2 10 (realized)</text></svg>+ </div>++<pre>(defskeleton pkinit-fix2+ (vars (n2 n1 text) (tc tgt tk tgt-0 data) (c as t name) (k ak skey))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c)+ (t t) (as as) (k k) (ak ak))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 k ak)+ (operation encryption-test (displaced 2 1 auth 2)+ (enc ak-0 n1 tk-0 t k) (0 1))+ (label 10)+ (parent 9)+ (unrealized)+ (shape)+ (satisfies yes)+ (maps+ ((0)+ ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk)+ (tgt tgt) (ak ak))))+ (origs (k (1 1)) (ak (1 1)) (n1 (0 0)) (n2 (0 0))))</pre>++<p id="k11">Item <a href="#t8">11</a>, Parent: <a href="#k9">9</a>, Child: <a href="#k12">12</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>k</title><circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>k</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>pkinit-fix2 11</text></svg></div>++<pre>(defskeleton pkinit-fix2+ (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c as t name)+ (k ak ak-0 skey))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c)+ (t t) (as as) (k k) (ak ak-0))+ (deflistener k)+ (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 k ak-0)+ (operation encryption-test (added-listener k) (enc ak n1 tk t k)+ (0 1))+ (label 11)+ (parent 9)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k12">Item <a href="#t8">12</a>, Parent: <a href="#k11">11</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>ak-0</title><circle cx='239.880' cy='264.960' r='6.000'/>+ </g>+ <g><title>ak-0</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc ak-0 (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t ak-0))</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc ak-0 (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t ak-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k ak-0) (ak ak-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k ak-0) (ak ak))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>pkinit-fix2 12</text></svg></div>++<pre>(defskeleton pkinit-fix2+ (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c as t name)+ (ak ak-0 skey))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k ak-0) (ak ak))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c)+ (t t) (as as) (k ak-0) (ak ak-0))+ (deflistener ak-0)+ (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 ak-0)+ (operation nonce-test (displaced 3 1 auth 2) k (2 0)+ (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))+ (pubk c)))+ (label 12)+ (parent 11)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="t13">Tree <a href="#top">13</a>.</p>++<div>+ <svg+ class='diagram' width='179.760pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.760 79.920' font-size='12.000'>+ <text+ x='139.800' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k15", "_self")'>15</text>+ <line+ x1='89.880' y1='39.960' x2='139.800' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k14", "_self")'>14</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k13", "_self")'>13</text>+ </svg></div>++<pre>(defprotocol pkinit-flawed basic+ (defrole client+ (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))+ (trace (send (cat (enc tc n2 (privk c)) c t n1))+ (recv+ (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt+ (enc ak n1 tk t k))))+ (uniq-orig n2 n1))+ (defrole auth+ (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))+ (trace (recv (cat (enc tc n2 (privk c)) c t n1))+ (send+ (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt+ (enc ak n1 tk t k))))+ (uniq-orig k ak)))</pre>++<p id="k13">Item <a href="#t13">13</a>, Child: <a href="#k14">14</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k n2-0 (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc k n2 (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-flawed 13</text></svg></div>++<pre>(defskeleton pkinit-flawed+ (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)+ (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)+ (t t) (as as-0) (k k) (ak ak))+ (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)+ (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))+ (non-orig (privk c) (privk as))+ (uniq-orig n2-0 n1-0 k ak)+ (goals+ (forall ((c c-0 as name) (k skey) (z z-0 node))+ (implies+ (and (p "client" 1 z) (p "client" "c" z c)+ (p "client" "as" z as) (p "client" "k" z k) (p "auth" 1 z-0)+ (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))+ (non (privk c))) (= c c-0))))+ (label 13)+ (unrealized (1 1))+ (preskeleton)+ (comment "Not a skeleton"))</pre>++<p id="k14">Item <a href="#t13">14</a>, Parent: <a href="#k13">13</a>, Child: <a href="#k15">15</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k n2-0 (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k n2 (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-flawed 14</text></svg></div>++<pre>(defskeleton pkinit-flawed+ (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)+ (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)+ (t t) (as as-0) (k k) (ak ak))+ (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)+ (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))+ (precedes ((0 1) (1 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2-0 n1-0 k ak)+ (goals+ (forall ((c c-0 as name) (k skey) (z z-0 node))+ (implies+ (and (p "client" 1 z) (p "client" "c" z c)+ (p "client" "as" z as) (p "client" "k" z k) (p "auth" 1 z-0)+ (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))+ (non (privk c))) (= c c-0))))+ (label 14)+ (parent 13)+ (unrealized (1 1))+ (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k15">Item <a href="#t13">15</a>, Parent: <a href="#k14">14</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k n2 (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k n2 (privk as)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as) (k k) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-flawed 15 (realized)</text></svg>+ </div>++<pre>(defskeleton pkinit-flawed+ (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)+ (c c-0 t as t-0 name) (k ak ak-0 skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)+ (t t) (as as) (k k) (ak ak))+ (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)+ (c c) (t t-0) (as as) (k k) (ak ak-0))+ (precedes ((0 1) (1 1)) ((1 0) (0 0)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1-0 k ak)+ (operation encryption-test (displaced 2 0 auth 2)+ (enc k n2-0 (privk as-0)) (1 1))+ (label 15)+ (parent 14)+ (unrealized)+ (shape)+ (satisfies (no (c c) (c-0 c-0) (as as) (k k) (z (1 1)) (z-0 (0 1))))+ (maps+ ((0 1)+ ((c c) (c-0 c-0) (as as) (k k) (t t) (as-0 as) (n2 n2) (n1 n1)+ (tc tc) (tk tk) (tgt tgt) (ak ak) (t-0 t-0) (n2-0 n2)+ (n1-0 n1-0) (tc-0 tc-0) (tk-0 tk-0) (tgt-0 tgt-0) (ak-0 ak-0))))+ (origs (k (0 1)) (ak (0 1)) (n1-0 (1 0)) (n2 (1 0))))</pre>++<p id="t16">Tree <a href="#top">16</a>.</p>++<div>+ <svg+ class='diagram' width='279.600pt' height='154.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.600 154.920' font-size='12.000'>+ <text+ x='239.640' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k22", "_self")'>22</text>+ <line+ x1='189.720' y1='114.960' x2='239.640' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k20", "_self")'>20</text>+ <line+ x1='139.800' y1='77.460' x2='189.720' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k21", "_self")'>21</text>+ <line+ x1='189.720' y1='39.960' x2='239.640' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k19", "_self")'>19</text>+ <line+ x1='139.800' y1='77.460' x2='189.720' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='63.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k18", "_self")'>18</text>+ <line+ x1='89.880' y1='77.460' x2='139.800' y2='77.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='63.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k17", "_self")'>17</text>+ <line+ x1='39.960' y1='77.460' x2='89.880' y2='77.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='63.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k16", "_self")'>16</text>+ </svg></div>++<pre>(defprotocol pkinit-fix1 basic+ (defrole client+ (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))+ (trace (send (cat (enc tc n2 (privk c)) c t n1))+ (recv+ (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt+ (enc ak n1 tk t k))))+ (uniq-orig n2 n1))+ (defrole auth+ (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))+ (trace (recv (cat (enc tc n2 (privk c)) c t n1))+ (send+ (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt+ (enc ak n1 tk t k))))+ (uniq-orig k ak)))</pre>++<p id="k16">Item <a href="#t16">16</a>, Child: <a href="#k17">17</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc k n2 c-0 (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-fix1 16</text></svg></div>++<pre>(defskeleton pkinit-fix1+ (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)+ (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)+ (t t) (as as-0) (k k) (ak ak))+ (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)+ (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))+ (non-orig (privk c) (privk as))+ (uniq-orig n2-0 n1-0 k ak)+ (goals+ (forall ((c c-0 as name) (k skey) (z z-0 node))+ (implies+ (and (p "client" 1 z) (p "client" "c" z c)+ (p "client" "as" z as) (p "client" "k" z k) (p "auth" 1 z-0)+ (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))+ (non (privk c))) (exists ((z-1 node)) (p "client" 1 z-1)))))+ (label 16)+ (unrealized (1 1))+ (preskeleton)+ (comment "Not a skeleton"))</pre>++<p id="k17">Item <a href="#t16">17</a>, Parent: <a href="#k16">16</a>, Child: <a href="#k18">18</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k n2 c-0 (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-fix1 17</text></svg></div>++<pre>(defskeleton pkinit-fix1+ (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)+ (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)+ (t t) (as as-0) (k k) (ak ak))+ (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)+ (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))+ (precedes ((0 1) (1 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2-0 n1-0 k ak)+ (goals+ (forall ((c c-0 as name) (k skey) (z z-0 node))+ (implies+ (and (p "client" 1 z) (p "client" "c" z c)+ (p "client" "as" z as) (p "client" "k" z k) (p "auth" 1 z-0)+ (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))+ (non (privk c))) (exists ((z-1 node)) (p "client" 1 z-1)))))+ (label 17)+ (parent 16)+ (unrealized (1 1))+ (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k18">Item <a href="#t16">18</a>, Parent: <a href="#k17">17</a>, Children: <a href="#k19">19</a> <a href="#k20">20</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-fix1 18</text></svg></div>++<pre>(defskeleton pkinit-fix1+ (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)+ (c t as t-0 name) (k ak ak-0 skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)+ (c c) (t t-0) (as as) (k k) (ak ak-0))+ (precedes ((0 1) (1 1)) ((1 0) (0 0)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1-0 k ak)+ (operation encryption-test (displaced 2 0 auth 2)+ (enc k n2-0 c-0 (privk as-0)) (1 1))+ (label 18)+ (parent 17)+ (unrealized (0 0) (1 1))+ (origs (k (0 1)) (ak (0 1)) (n1-0 (1 0)) (n2 (1 0)))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k19">Item <a href="#t16">19</a>, Parent: <a href="#k18">18</a>, Child: <a href="#k21">21</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc-0 n2 (privk c)) c t n1)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc-0) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-fix1 19</text></svg></div>++<pre>(defskeleton pkinit-fix1+ (vars (n2 n1 text) (tc tk tgt tc-0 tgt-0 data) (c t as name)+ (k ak skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc-0) (tk tk) (tgt tgt-0)+ (c c) (t t) (as as) (k k) (ak ak))+ (precedes ((0 1) (1 1)) ((1 0) (0 0)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 k ak)+ (operation encryption-test (displaced 2 0 auth 2)+ (enc ak-0 n1-0 tk-0 t-0 k) (1 1))+ (label 19)+ (parent 18)+ (unrealized (0 0))+ (origs (k (0 1)) (ak (0 1)) (n1 (1 0)) (n2 (1 0)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k20">Item <a href="#t16">20</a>, Parent: <a href="#k18">18</a>, Child: <a href="#k22">22</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>k</title><circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>k</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>pkinit-fix1 20</text></svg></div>++<pre>(defskeleton pkinit-fix1+ (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)+ (c t as t-0 name) (k ak ak-0 skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)+ (c c) (t t-0) (as as) (k k) (ak ak-0))+ (deflistener k)+ (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1-0 k ak)+ (operation encryption-test (added-listener k)+ (enc ak-0 n1-0 tk-0 t-0 k) (1 1))+ (label 20)+ (parent 18)+ (unrealized (0 0) (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k21">Item <a href="#t16">21</a>, Parent: <a href="#k19">19</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-fix1 21 (realized)</text></svg>+ </div>++<pre>(defskeleton pkinit-fix1+ (vars (n2 n1 text) (tk tgt tc tgt-0 data) (c t as name) (k ak skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c)+ (t t) (as as) (k k) (ak ak))+ (precedes ((0 1) (1 1)) ((1 0) (0 0)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 k ak)+ (operation encryption-test (displaced 2 1 client 1)+ (enc tc-0 n2 (privk c)) (0 0))+ (label 21)+ (parent 19)+ (unrealized)+ (shape)+ (satisfies yes)+ (maps+ ((0 1)+ ((c c) (c-0 c) (as as) (k k) (t t) (as-0 as) (n2 n2) (n1 n1)+ (tc tc) (tk tk) (tgt tgt) (ak ak) (t-0 t) (n2-0 n2) (n1-0 n1)+ (tc-0 tc) (tk-0 tk) (tgt-0 tgt-0) (ak-0 ak))))+ (origs (n1 (1 0)) (n2 (1 0)) (k (0 1)) (ak (0 1))))</pre>++<p id="k22">Item <a href="#t16">22</a>, Parent: <a href="#k20">20</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>ak</title><circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>ak</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc ak n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 ak))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc ak n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t ak))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k ak) (ak ak-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k ak) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>pkinit-fix1 22</text></svg></div>++<pre>(defskeleton pkinit-fix1+ (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)+ (c t as t-0 name) (ak ak-0 skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k ak) (ak ak))+ (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)+ (c c) (t t-0) (as as) (k ak) (ak ak-0))+ (deflistener ak)+ (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1-0 ak)+ (operation nonce-test (displaced 3 0 auth 2) k (2 0)+ (enc (enc k n2 c (privk as)) (pubk c)))+ (label 22)+ (parent 20)+ (unrealized (0 0) (2 0))+ (comment "empty cohort"))</pre>++<p id="t23">Tree <a href="#top">23</a>.</p>++<div>+ <svg+ class='diagram' width='279.600pt' height='154.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.600 154.920' font-size='12.000'>+ <text+ x='239.640' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k28", "_self")'>28</text>+ <line+ x1='189.720' y1='114.960' x2='239.640' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k27", "_self")'>27</text>+ <line+ x1='139.800' y1='77.460' x2='189.720' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k26", "_self")'>26</text>+ <line+ x1='139.800' y1='77.460' x2='189.720' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='63.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k25", "_self")'>25</text>+ <line+ x1='89.880' y1='77.460' x2='139.800' y2='77.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='63.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k24", "_self")'>24</text>+ <line+ x1='39.960' y1='77.460' x2='89.880' y2='77.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='63.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k23", "_self")'>23</text>+ </svg></div>++<pre>(defprotocol pkinit-fix2 basic+ (defrole client+ (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))+ (trace (send (cat (enc tc n2 (privk c)) c t n1))+ (recv+ (cat+ (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))+ (pubk c)) c tgt (enc ak n1 tk t k))))+ (uniq-orig n2 n1))+ (defrole auth+ (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))+ (trace (recv (cat (enc tc n2 (privk c)) c t n1))+ (send+ (cat+ (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))+ (pubk c)) c tgt (enc ak n1 tk t k))))+ (uniq-orig k ak)))</pre>++<p id="k23">Item <a href="#t23">23</a>, Child: <a href="#k24">24</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c-0)) c-0 t n1) (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-fix2 23</text></svg></div>++<pre>(defskeleton pkinit-fix2+ (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)+ (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)+ (t t) (as as-0) (k k) (ak ak))+ (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)+ (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))+ (non-orig (privk c) (privk as))+ (uniq-orig n2-0 n1-0 k ak)+ (goals+ (forall ((c c-0 as name) (k skey) (z z-0 node))+ (implies+ (and (p "client" 1 z) (p "client" "c" z c)+ (p "client" "as" z as) (p "client" "k" z k) (p "auth" 1 z-0)+ (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))+ (non (privk c))) (exists ((z-1 node)) (p "client" 1 z-1)))))+ (label 23)+ (unrealized (1 1))+ (preskeleton)+ (comment "Not a skeleton"))</pre>++<p id="k24">Item <a href="#t23">24</a>, Parent: <a href="#k23">23</a>, Child: <a href="#k25">25</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c-0)) c-0 t n1) (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-fix2 24</text></svg></div>++<pre>(defskeleton pkinit-fix2+ (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)+ (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)+ (t t) (as as-0) (k k) (ak ak))+ (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)+ (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))+ (precedes ((0 1) (1 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2-0 n1-0 k ak)+ (goals+ (forall ((c c-0 as name) (k skey) (z z-0 node))+ (implies+ (and (p "client" 1 z) (p "client" "c" z c)+ (p "client" "as" z as) (p "client" "k" z k) (p "auth" 1 z-0)+ (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))+ (non (privk c))) (exists ((z-1 node)) (p "client" 1 z-1)))))+ (label 24)+ (parent 23)+ (unrealized (1 1))+ (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k25">Item <a href="#t23">25</a>, Parent: <a href="#k24">24</a>, Children: <a href="#k26">26</a> <a href="#k27">27</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-fix2 25</text></svg></div>++<pre>(defskeleton pkinit-fix2+ (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c t as name)+ (k ak ak-0 skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0)+ (c c) (t t) (as as) (k k) (ak ak-0))+ (precedes ((0 1) (1 1)) ((1 0) (0 0)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 k ak)+ (operation encryption-test (displaced 2 0 auth 2)+ (enc k (hash (enc tc-0 n2-0 (privk c-0)) c-0 t-0 n1-0) (privk as-0))+ (1 1))+ (label 25)+ (parent 24)+ (unrealized (1 1))+ (origs (k (0 1)) (ak (0 1)) (n1 (1 0)) (n2 (1 0)))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k26">Item <a href="#t23">26</a>, Parent: <a href="#k25">25</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>pkinit-fix2 26 (realized)</text></svg>+ </div>++<pre>(defskeleton pkinit-fix2+ (vars (n2 n1 text) (tc tk tgt tgt-0 data) (c t as name) (k ak skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c)+ (t t) (as as) (k k) (ak ak))+ (precedes ((0 1) (1 1)) ((1 0) (0 0)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 k ak)+ (operation encryption-test (displaced 2 0 auth 2)+ (enc ak-0 n1 tk-0 t k) (1 1))+ (label 26)+ (parent 25)+ (unrealized)+ (shape)+ (satisfies yes)+ (maps+ ((0 1)+ ((c c) (c-0 c) (as as) (k k) (t t) (as-0 as) (n2 n2) (n1 n1)+ (tc tc) (tk tk) (tgt tgt) (ak ak) (t-0 t) (n2-0 n2) (n1-0 n1)+ (tc-0 tc) (tk-0 tk) (tgt-0 tgt-0) (ak-0 ak))))+ (origs (k (0 1)) (ak (0 1)) (n1 (1 0)) (n2 (1 0))))</pre>++<p id="k27">Item <a href="#t23">27</a>, Parent: <a href="#k25">25</a>, Child: <a href="#k28">28</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>k</title><circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>k</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>pkinit-fix2 27</text></svg></div>++<pre>(defskeleton pkinit-fix2+ (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c t as name)+ (k ak ak-0 skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k k) (ak ak))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0)+ (c c) (t t) (as as) (k k) (ak ak-0))+ (deflistener k)+ (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 k ak)+ (operation encryption-test (added-listener k) (enc ak-0 n1 tk-0 t k)+ (1 1))+ (label 27)+ (parent 25)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k28">Item <a href="#t23">28</a>, Parent: <a href="#k27">27</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>ak</title><circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>ak</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <g>+ <title>(cat (enc (enc ak (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t ak))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (enc (enc ak (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t ak))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k ak) (ak ak-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>client</text>+ </g>+ <g>+ <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k ak) (ak ak))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>pkinit-fix2 28</text></svg></div>++<pre>(defskeleton pkinit-fix2+ (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c t as name)+ (ak ak-0 skey))+ (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)+ (t t) (as as) (k ak) (ak ak))+ (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0)+ (c c) (t t) (as as) (k ak) (ak ak-0))+ (deflistener ak)+ (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1)))+ (non-orig (privk c) (privk as))+ (uniq-orig n2 n1 ak)+ (operation nonce-test (displaced 3 0 auth 2) k (2 0)+ (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))+ (pubk c)))+ (label 28)+ (parent 27)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++</body>+</html>
doc/examples/plaindh.xhtml view
@@ -1,457 +1,25183 @@-<?xml version="1.0"?> -<!-- CPSA 3.2.1 --> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> - <title>Plain diffie-hellman protocol with challenge-response</title> - <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /> - <style> - svg.diagram { border-width: 1px; border-style: solid } - </style> -</head> -<body> - -<pre>(herald "Plain diffie-hellman protocol with challenge-response" - (algebra diffie-hellman)) -(comment "CPSA 3.2.1") -(comment "All input read from plaindh.scm")</pre> - -<p id="t0">Tree 0.</p> - -<div> - <svg - class='diagram' width='229.680pt' height='154.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 229.680 154.920' font-size='12.000'> - <text - x='189.720' y='101.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k5", "_self")'>5</text> - <line - x1='139.800' y1='114.960' x2='189.720' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='101.040' style='text-anchor: middle; fill: blue;' - onclick='window.open("#k4", "_self")'>4</text> - <line - x1='89.880' y1='114.960' x2='139.800' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='101.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k2", "_self")'>2</text> - <line - x1='39.960' y1='77.460' x2='89.880' y2='114.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='139.800' y='26.040' - style='font-weight: bold; text-anchor: middle; fill: blue;' - onclick='window.open("#k3", "_self")'>3</text> - <line - x1='89.880' y1='39.960' x2='139.800' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='89.880' y='26.040' style='text-anchor: middle; fill: black;' - onclick='window.open("#k1", "_self")'>1</text> - <line - x1='39.960' y1='77.460' x2='89.880' y2='39.960' - style='stroke-width: 0.960; stroke: gray;'/> - <text - x='39.960' y='63.540' style='text-anchor: middle; fill: black;' - onclick='window.open("#k0", "_self")'>0</text> - </svg></div> - -<pre>(defprotocol plaindh diffie-hellman - (defrole init - (vars (x expn) (h base) (n text)) - (trace (send (exp (gen) x)) (recv h) (send (enc n (exp h x))) - (recv n)) - (uniq-orig n) - (uniq-gen x)) - (defrole resp - (vars (y expn) (h base) (n text)) - (trace (recv h) (send (exp (gen) y)) (recv (enc n (exp h y))) - (send n)) - (uniq-gen y) - (ind-zero-in (y h))) - (comment "Diffie-hellman key exchange followed by an encryption"))</pre> - -<p id="k0">Item <a href="#t0">0</a>, Children: <a href="#k1">1</a> <a href="#k2">2</a>.</p> - -<div> - <svg - class='diagram' width='79.920pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 79.920 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>n</title> - <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g> - <g><title>(enc n (exp h x))</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>h</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(exp (gen) x)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n n) (h h) (x x))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='39.960' y='39.960' style='text-anchor: middle;'>plaindh 0</text> - </svg></div> - -<pre>(defskeleton plaindh - (vars (n text) (h base) (x expn)) - (defstrand init 4 (n n) (h h) (x x)) - (uniq-gen x) - (uniq-orig n) - (traces - ((send (exp (gen) x)) (recv h) (send (enc n (exp h x))) (recv n))) - (label 0) - (unrealized (0 3)) - (origs (n (0 2))) - (comment "2 in cohort - 2 not yet seen"))</pre> - -<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k3">3</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>n</title><circle cx='139.920' cy='339.960' r='6.000'/></g> - <g><title>(enc n (exp h (mul x y)))</title> - <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(exp (gen) y)</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(exp h x)</title> - <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>n</title> - <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g> - <path - d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc n (exp h (mul x y)))</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(exp h y)</title> - <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(exp (gen) x)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n n) (h (exp h x)) (y y))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((n n) (h (exp h y)) (x x))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' style='text-anchor: middle;'>plaindh 1</text> - </svg></div> - -<pre>(defskeleton plaindh - (vars (n text) (h base) (x y expn)) - (defstrand init 4 (n n) (h (exp h y)) (x x)) - (defstrand resp 4 (n n) (h (exp h x)) (y y)) - (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))) - (ind-zero-in (y (exp h x))) - (uniq-gen x y) - (uniq-orig n) - (operation nonce-test (added-strand resp 4) n (0 3) - (enc n (exp h (mul x y)))) - (traces - ((send (exp (gen) x)) (recv (exp h y)) - (send (enc n (exp h (mul x y)))) (recv n)) - ((recv (exp h x)) (send (exp (gen) y)) - (recv (enc n (exp h (mul x y)))) (send n))) - (label 1) - (parent 0) - (unrealized (0 1) (1 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k4">4</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(exp h x)</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(exp h x)</title> - <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>n</title> - <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g> - <g><title>(enc n (exp h x))</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>h</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(exp (gen) x)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n n) (h h) (x x))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' style='text-anchor: middle;'>plaindh 2</text> - </svg></div> - -<pre>(defskeleton plaindh - (vars (n text) (h base) (x expn)) - (defstrand init 4 (n n) (h h) (x x)) - (deflistener (exp h x)) - (precedes ((0 0) (1 0)) ((1 1) (0 3))) - (uniq-gen x) - (uniq-orig n) - (operation nonce-test (added-listener (exp h x)) n (0 3) - (enc n (exp h x))) - (traces - ((send (exp (gen) x)) (recv h) (send (enc n (exp h x))) (recv n)) - ((recv (exp h x)) (send (exp h x)))) - (label 2) - (parent 0) - (unrealized (1 0)) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k1">1</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>n</title><circle cx='139.920' cy='339.960' r='6.000'/></g> - <g><title>(enc n (exp (gen) (mul x y x-0)))</title> - <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g> - <path - d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(exp (gen) y)</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(exp (gen) (mul x x-0))</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>n</title> - <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g> - <path - d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960' - style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(enc n (exp (gen) (mul x y x-0)))</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(exp (gen) (mul y x-0))</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(exp (gen) x)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n n) (h (exp (gen) (mul x x-0))) (y y))</title> - <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text> - </g> - <g><title>((n n) (h (exp (gen) (mul y x-0))) (x x))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>plaindh 3 (realized)</text></svg></div> - -<pre>(defskeleton plaindh - (vars (n text) (x y expn) (x-0 expr)) - (defstrand init 4 (n n) (h (exp (gen) (mul y x-0))) (x x)) - (defstrand resp 4 (n n) (h (exp (gen) (mul x x-0))) (y y)) - (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))) - (ind-zero-in (y (exp (gen) (mul x x-0)))) - (uniq-gen x y) - (uniq-orig n) - (operation nonce-test (algebra-contracted (h (exp (gen) x-0))) - (exp (gen) (mul x x-0)) (1 0) (exp (gen) x)) - (traces - ((send (exp (gen) x)) (recv (exp (gen) (mul y x-0))) - (send (enc n (exp (gen) (mul x y x-0)))) (recv n)) - ((recv (exp (gen) (mul x x-0))) (send (exp (gen) y)) - (recv (enc n (exp (gen) (mul x y x-0)))) (send n))) - (label 3) - (parent 1) - (unrealized) - (shape) - (maps ((0) ((x x) (h (exp (gen) (mul y x-0))) (n n)))) - (origs (n (0 2))))</pre> - -<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k2">2</a>, Child: <a href="#k5">5</a>.</p> - -<div> - <svg - class='diagram' width='179.880pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 179.880 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='139.920' y1='114.960' x2='139.920' y2='189.960' - style='stroke-width: 0.960; stroke: gray;'/> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <path - d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(exp (gen) (mul x x-0))</title> - <circle cx='139.920' cy='189.960' r='6.000'/></g> - <g><title>(exp (gen) (mul x x-0))</title> - <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g> - <g><title>n</title> - <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g> - <g><title>(enc n (exp (gen) (mul x x-0)))</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(exp (gen) x-0)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <path - d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960' - style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/> - <g><title>(exp (gen) x)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n n) (h (exp (gen) x-0)) (x x))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='89.940' y='39.960' - style='text-anchor: middle;'>plaindh 4 (realized)</text></svg></div> - -<pre>(defskeleton plaindh - (vars (n text) (x expn) (x-0 expr)) - (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x)) - (deflistener (exp (gen) (mul x x-0))) - (precedes ((0 0) (1 0)) ((1 1) (0 3))) - (uniq-gen x) - (uniq-orig n) - (operation nonce-test (algebra-contracted (h (exp (gen) x-0))) - (exp (gen) (mul x x-0)) (1 0) (exp (gen) x)) - (traces - ((send (exp (gen) x)) (recv (exp (gen) x-0)) - (send (enc n (exp (gen) (mul x x-0)))) (recv n)) - ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))) - (label 4) - (parent 2) - (unrealized) - (comment "1 in cohort - 1 not yet seen"))</pre> - -<p id="k5">Item <a href="#t0">5</a>, Parent: <a href="#k4">4</a>.</p> - -<div> - <svg - class='diagram' width='79.920pt' height='379.920pt' - xmlns='http://www.w3.org/2000/svg' version='1.1' - viewBox='0 0 79.920 379.920' font-size='12.000'> - <defs> - <marker - id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5' - refY='5'> - <path - d='M 0 0 5 5 0 10' - style='stroke-width: 2; fill: none; stroke: black;'/></marker> - </defs> - <line - x1='39.960' y1='114.960' x2='39.960' y2='339.960' - style='stroke-width: 0.960; stroke: gray;'/> - <g><title>n</title> - <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g> - <g><title>(enc n (exp (gen) (mul x x-0)))</title> - <circle cx='39.960' cy='264.960' r='6.000'/></g> - <g><title>(exp (gen) x-0)</title> - <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g> - <g><title>(exp (gen) x)</title> - <circle cx='39.960' cy='114.960' r='6.000'/></g> - <g><title>((n n) (h (exp (gen) x-0)) (x x))</title> - <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text> - </g> - <text - x='39.960' y='39.960' - style='text-anchor: middle;'>plaindh 5 (realized)</text></svg></div> - -<pre>(defskeleton plaindh - (vars (n text) (x expn) (x-0 expr)) - (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x)) - (uniq-gen x) - (uniq-orig n) - (operation generalization deleted (1 0)) - (traces - ((send (exp (gen) x)) (recv (exp (gen) x-0)) - (send (enc n (exp (gen) (mul x x-0)))) (recv n))) - (label 5) - (parent 4) - (unrealized) - (shape) - (maps ((0) ((x x) (h (exp (gen) x-0)) (n n)))) - (origs (n (0 2))))</pre> - -</body> -</html> +<?xml version="1.0"?>+<!-- CPSA 3.4.0 -->+<html xmlns="http://www.w3.org/1999/xhtml">+<head>+ <title>Plain diffie-hellman protocol with challenge-response</title>+ <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />+ <style>+ svg.diagram { border-width: 1px; border-style: solid }+ </style>+</head>+<body>++<pre>(herald "Plain diffie-hellman protocol with challenge-response"+ (algebra diffie-hellman))+(comment "CPSA 3.4.0")+(comment "All input read from plaindh.scm")</pre>++<p id="t0">Tree 0.</p>++<div>+ <svg+ class='diagram' width='429.360pt' height='9079.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 429.360 9079.920' font-size='12.000'>+ <text+ x='389.400' y='9026.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k232", "_self")'>232</text>+ <line+ x1='339.480' y1='9039.960' x2='389.400' y2='9039.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='9026.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k194", "_self")'>194</text>+ <line+ x1='289.560' y1='8927.460' x2='339.480' y2='9039.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='8951.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k231", "_self")'>231</text>+ <line+ x1='339.480' y1='8964.960' x2='389.400' y2='8964.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='8951.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k193", "_self")'>193</text>+ <line+ x1='289.560' y1='8927.460' x2='339.480' y2='8964.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='8876.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k230", "_self")'>230</text>+ <line+ x1='339.480' y1='8889.960' x2='389.400' y2='8889.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='8876.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k192", "_self")'>192</text>+ <line+ x1='289.560' y1='8927.460' x2='339.480' y2='8889.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='8801.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k191", "_self")'>191</text>+ <line+ x1='289.560' y1='8927.460' x2='339.480' y2='8814.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='8913.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k124", "_self")'>124</text>+ <line+ x1='239.640' y1='8439.960' x2='289.560' y2='8927.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='8726.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k190", "_self")'>190</text>+ <line+ x1='289.560' y1='8664.960' x2='339.480' y2='8739.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='8651.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k229", "_self")'>229</text>+ <line+ x1='339.480' y1='8664.960' x2='389.400' y2='8664.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='8651.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k189", "_self")'>189</text>+ <line+ x1='289.560' y1='8664.960' x2='339.480' y2='8664.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='8576.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k228", "_self")'>228</text>+ <line+ x1='339.480' y1='8589.960' x2='389.400' y2='8589.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='8576.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k188", "_self")'>188</text>+ <line+ x1='289.560' y1='8664.960' x2='339.480' y2='8589.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='8651.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k123", "_self")'>123</text>+ <line+ x1='239.640' y1='8439.960' x2='289.560' y2='8664.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='8501.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k227", "_self")'>227</text>+ <line+ x1='339.480' y1='8514.960' x2='389.400' y2='8514.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='8501.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k187", "_self")'>187</text>+ <line+ x1='289.560' y1='8402.460' x2='339.480' y2='8514.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='8426.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k226", "_self")'>226</text>+ <line+ x1='339.480' y1='8439.960' x2='389.400' y2='8439.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='8426.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k186", "_self")'>186</text>+ <line+ x1='289.560' y1='8402.460' x2='339.480' y2='8439.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='8351.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k225", "_self")'>225</text>+ <line+ x1='339.480' y1='8364.960' x2='389.400' y2='8364.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='8351.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k185", "_self")'>185</text>+ <line+ x1='289.560' y1='8402.460' x2='339.480' y2='8364.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='8276.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k184", "_self")'>184</text>+ <line+ x1='289.560' y1='8402.460' x2='339.480' y2='8289.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='8388.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k122", "_self")'>122</text>+ <line+ x1='239.640' y1='8439.960' x2='289.560' y2='8402.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='8201.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k224", "_self")'>224</text>+ <line+ x1='339.480' y1='8214.960' x2='389.400' y2='8214.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='8201.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k183", "_self")'>183</text>+ <line+ x1='289.560' y1='8139.960' x2='339.480' y2='8214.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='8126.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k223", "_self")'>223</text>+ <line+ x1='339.480' y1='8139.960' x2='389.400' y2='8139.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='8126.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k182", "_self")'>182</text>+ <line+ x1='289.560' y1='8139.960' x2='339.480' y2='8139.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='8051.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k181", "_self")'>181</text>+ <line+ x1='289.560' y1='8139.960' x2='339.480' y2='8064.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='8126.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k121", "_self")'>121</text>+ <line+ x1='239.640' y1='8439.960' x2='289.560' y2='8139.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='7976.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k222", "_self")'>222</text>+ <line+ x1='339.480' y1='7989.960' x2='389.400' y2='7989.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='7976.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k180", "_self")'>180</text>+ <line+ x1='289.560' y1='7914.960' x2='339.480' y2='7989.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='7901.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k221", "_self")'>221</text>+ <line+ x1='339.480' y1='7914.960' x2='389.400' y2='7914.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='7901.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k179", "_self")'>179</text>+ <line+ x1='289.560' y1='7914.960' x2='339.480' y2='7914.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='7826.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k178", "_self")'>178</text>+ <line+ x1='289.560' y1='7914.960' x2='339.480' y2='7839.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='7901.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k120", "_self")'>120</text>+ <line+ x1='239.640' y1='8439.960' x2='289.560' y2='7914.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='8426.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k85", "_self")'>85</text>+ <line+ x1='189.720' y1='8252.460' x2='239.640' y2='8439.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='7751.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k84", "_self")'>84</text>+ <line+ x1='189.720' y1='8252.460' x2='239.640' y2='7764.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='7676.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k83", "_self")'>83</text>+ <line+ x1='189.720' y1='8252.460' x2='239.640' y2='7689.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='7601.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k82", "_self")'>82</text>+ <line+ x1='189.720' y1='8252.460' x2='239.640' y2='7614.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='7526.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k81", "_self")'>81</text>+ <line+ x1='189.720' y1='8252.460' x2='239.640' y2='7539.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='7451.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k80", "_self")'>80</text>+ <line+ x1='189.720' y1='8252.460' x2='239.640' y2='7464.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='8238.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k28", "_self")'>28</text>+ <line+ x1='139.800' y1='6789.960' x2='189.720' y2='8252.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='7376.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k220", "_self")'>220</text>+ <line+ x1='339.480' y1='7389.960' x2='389.400' y2='7389.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='7376.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k177", "_self")'>177</text>+ <line+ x1='289.560' y1='7277.460' x2='339.480' y2='7389.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='7301.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k219", "_self")'>219</text>+ <line+ x1='339.480' y1='7314.960' x2='389.400' y2='7314.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='7301.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k176", "_self")'>176</text>+ <line+ x1='289.560' y1='7277.460' x2='339.480' y2='7314.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='7226.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k218", "_self")'>218</text>+ <line+ x1='339.480' y1='7239.960' x2='389.400' y2='7239.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='7226.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k175", "_self")'>175</text>+ <line+ x1='289.560' y1='7277.460' x2='339.480' y2='7239.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='7151.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k174", "_self")'>174</text>+ <line+ x1='289.560' y1='7277.460' x2='339.480' y2='7164.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='7263.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k119", "_self")'>119</text>+ <line+ x1='239.640' y1='6789.960' x2='289.560' y2='7277.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='7076.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k217", "_self")'>217</text>+ <line+ x1='339.480' y1='7089.960' x2='389.400' y2='7089.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='7076.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k173", "_self")'>173</text>+ <line+ x1='289.560' y1='6977.460' x2='339.480' y2='7089.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='7001.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k216", "_self")'>216</text>+ <line+ x1='339.480' y1='7014.960' x2='389.400' y2='7014.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='7001.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k172", "_self")'>172</text>+ <line+ x1='289.560' y1='6977.460' x2='339.480' y2='7014.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='6926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k215", "_self")'>215</text>+ <line+ x1='339.480' y1='6939.960' x2='389.400' y2='6939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='6926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k171", "_self")'>171</text>+ <line+ x1='289.560' y1='6977.460' x2='339.480' y2='6939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='6851.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k170", "_self")'>170</text>+ <line+ x1='289.560' y1='6977.460' x2='339.480' y2='6864.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='6963.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k118", "_self")'>118</text>+ <line+ x1='239.640' y1='6789.960' x2='289.560' y2='6977.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='6776.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k169", "_self")'>169</text>+ <line+ x1='289.560' y1='6714.960' x2='339.480' y2='6789.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='6701.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k214", "_self")'>214</text>+ <line+ x1='339.480' y1='6714.960' x2='389.400' y2='6714.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='6701.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k168", "_self")'>168</text>+ <line+ x1='289.560' y1='6714.960' x2='339.480' y2='6714.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='6626.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k213", "_self")'>213</text>+ <line+ x1='339.480' y1='6639.960' x2='389.400' y2='6639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='6626.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k167", "_self")'>167</text>+ <line+ x1='289.560' y1='6714.960' x2='339.480' y2='6639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='6701.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k117", "_self")'>117</text>+ <line+ x1='239.640' y1='6789.960' x2='289.560' y2='6714.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='6551.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k212", "_self")'>212</text>+ <line+ x1='339.480' y1='6564.960' x2='389.400' y2='6564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='6551.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k166", "_self")'>166</text>+ <line+ x1='289.560' y1='6489.960' x2='339.480' y2='6564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='6476.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k211", "_self")'>211</text>+ <line+ x1='339.480' y1='6489.960' x2='389.400' y2='6489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='6476.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k165", "_self")'>165</text>+ <line+ x1='289.560' y1='6489.960' x2='339.480' y2='6489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='6401.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k164", "_self")'>164</text>+ <line+ x1='289.560' y1='6489.960' x2='339.480' y2='6414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='6476.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k116", "_self")'>116</text>+ <line+ x1='239.640' y1='6789.960' x2='289.560' y2='6489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='6326.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k210", "_self")'>210</text>+ <line+ x1='339.480' y1='6339.960' x2='389.400' y2='6339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='6326.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k163", "_self")'>163</text>+ <line+ x1='289.560' y1='6264.960' x2='339.480' y2='6339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='6251.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k209", "_self")'>209</text>+ <line+ x1='339.480' y1='6264.960' x2='389.400' y2='6264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='6251.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k162", "_self")'>162</text>+ <line+ x1='289.560' y1='6264.960' x2='339.480' y2='6264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='6176.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k161", "_self")'>161</text>+ <line+ x1='289.560' y1='6264.960' x2='339.480' y2='6189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='6251.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k115", "_self")'>115</text>+ <line+ x1='239.640' y1='6789.960' x2='289.560' y2='6264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='6776.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k79", "_self")'>79</text>+ <line+ x1='189.720' y1='6602.460' x2='239.640' y2='6789.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='6101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k78", "_self")'>78</text>+ <line+ x1='189.720' y1='6602.460' x2='239.640' y2='6114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='6026.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k77", "_self")'>77</text>+ <line+ x1='189.720' y1='6602.460' x2='239.640' y2='6039.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='5951.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k76", "_self")'>76</text>+ <line+ x1='189.720' y1='6602.460' x2='239.640' y2='5964.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='5876.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k75", "_self")'>75</text>+ <line+ x1='189.720' y1='6602.460' x2='239.640' y2='5889.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='5801.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k74", "_self")'>74</text>+ <line+ x1='189.720' y1='6602.460' x2='239.640' y2='5814.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='6588.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k27", "_self")'>27</text>+ <line+ x1='139.800' y1='6789.960' x2='189.720' y2='6602.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='5726.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k114", "_self")'>114</text>+ <line+ x1='239.640' y1='5739.960' x2='289.560' y2='5739.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='5726.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k73", "_self")'>73</text>+ <line+ x1='189.720' y1='5739.960' x2='239.640' y2='5739.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='5726.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k26", "_self")'>26</text>+ <line+ x1='139.800' y1='6789.960' x2='189.720' y2='5739.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='5651.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k208", "_self")'>208</text>+ <line+ x1='339.480' y1='5664.960' x2='389.400' y2='5664.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='5651.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k160", "_self")'>160</text>+ <line+ x1='289.560' y1='5589.960' x2='339.480' y2='5664.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='5576.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k207", "_self")'>207</text>+ <line+ x1='339.480' y1='5589.960' x2='389.400' y2='5589.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='5576.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k159", "_self")'>159</text>+ <line+ x1='289.560' y1='5589.960' x2='339.480' y2='5589.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='5501.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k158", "_self")'>158</text>+ <line+ x1='289.560' y1='5589.960' x2='339.480' y2='5514.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='5576.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k113", "_self")'>113</text>+ <line+ x1='239.640' y1='5252.460' x2='289.560' y2='5589.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='5426.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k206", "_self")'>206</text>+ <line+ x1='339.480' y1='5439.960' x2='389.400' y2='5439.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='5426.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k157", "_self")'>157</text>+ <line+ x1='289.560' y1='5364.960' x2='339.480' y2='5439.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='5351.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k205", "_self")'>205</text>+ <line+ x1='339.480' y1='5364.960' x2='389.400' y2='5364.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='5351.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k156", "_self")'>156</text>+ <line+ x1='289.560' y1='5364.960' x2='339.480' y2='5364.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='5276.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k155", "_self")'>155</text>+ <line+ x1='289.560' y1='5364.960' x2='339.480' y2='5289.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='5351.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k112", "_self")'>112</text>+ <line+ x1='239.640' y1='5252.460' x2='289.560' y2='5364.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='5201.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k154", "_self")'>154</text>+ <line+ x1='289.560' y1='5139.960' x2='339.480' y2='5214.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='5126.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k204", "_self")'>204</text>+ <line+ x1='339.480' y1='5139.960' x2='389.400' y2='5139.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='5126.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k153", "_self")'>153</text>+ <line+ x1='289.560' y1='5139.960' x2='339.480' y2='5139.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='5051.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k203", "_self")'>203</text>+ <line+ x1='339.480' y1='5064.960' x2='389.400' y2='5064.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='5051.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k152", "_self")'>152</text>+ <line+ x1='289.560' y1='5139.960' x2='339.480' y2='5064.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='5126.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k111", "_self")'>111</text>+ <line+ x1='239.640' y1='5252.460' x2='289.560' y2='5139.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='4976.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k151", "_self")'>151</text>+ <line+ x1='289.560' y1='4914.960' x2='339.480' y2='4989.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='4901.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k202", "_self")'>202</text>+ <line+ x1='339.480' y1='4914.960' x2='389.400' y2='4914.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='4901.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k150", "_self")'>150</text>+ <line+ x1='289.560' y1='4914.960' x2='339.480' y2='4914.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='4826.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k201", "_self")'>201</text>+ <line+ x1='339.480' y1='4839.960' x2='389.400' y2='4839.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='4826.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k149", "_self")'>149</text>+ <line+ x1='289.560' y1='4914.960' x2='339.480' y2='4839.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='4901.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k110", "_self")'>110</text>+ <line+ x1='239.640' y1='5252.460' x2='289.560' y2='4914.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='5238.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k72", "_self")'>72</text>+ <line+ x1='189.720' y1='5102.460' x2='239.640' y2='5252.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='4751.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k71", "_self")'>71</text>+ <line+ x1='189.720' y1='5102.460' x2='239.640' y2='4764.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='4676.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k70", "_self")'>70</text>+ <line+ x1='189.720' y1='5102.460' x2='239.640' y2='4689.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='4601.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k109", "_self")'>109</text>+ <line+ x1='239.640' y1='4614.960' x2='289.560' y2='4614.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='4601.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k69", "_self")'>69</text>+ <line+ x1='189.720' y1='5102.460' x2='239.640' y2='4614.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='4526.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k68", "_self")'>68</text>+ <line+ x1='189.720' y1='5102.460' x2='239.640' y2='4539.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='5088.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k25", "_self")'>25</text>+ <line+ x1='139.800' y1='6789.960' x2='189.720' y2='5102.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='6776.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k12", "_self")'>12</text>+ <line+ x1='89.880' y1='6227.460' x2='139.800' y2='6789.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='4451.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k67", "_self")'>67</text>+ <line+ x1='189.720' y1='4314.960' x2='239.640' y2='4464.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='4376.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k108", "_self")'>108</text>+ <line+ x1='239.640' y1='4389.960' x2='289.560' y2='4389.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='4376.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k66", "_self")'>66</text>+ <line+ x1='189.720' y1='4314.960' x2='239.640' y2='4389.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='4301.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k65", "_self")'>65</text>+ <line+ x1='189.720' y1='4314.960' x2='239.640' y2='4314.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='4226.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k64", "_self")'>64</text>+ <line+ x1='189.720' y1='4314.960' x2='239.640' y2='4239.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='4151.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k63", "_self")'>63</text>+ <line+ x1='189.720' y1='4314.960' x2='239.640' y2='4164.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='4301.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k24", "_self")'>24</text>+ <line+ x1='139.800' y1='4314.960' x2='189.720' y2='4314.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='4301.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k11", "_self")'>11</text>+ <line+ x1='89.880' y1='6227.460' x2='139.800' y2='4314.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='4076.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k62", "_self")'>62</text>+ <line+ x1='189.720' y1='3939.960' x2='239.640' y2='4089.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='4001.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k61", "_self")'>61</text>+ <line+ x1='189.720' y1='3939.960' x2='239.640' y2='4014.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='3926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k107", "_self")'>107</text>+ <line+ x1='239.640' y1='3939.960' x2='289.560' y2='3939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='3926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k60", "_self")'>60</text>+ <line+ x1='189.720' y1='3939.960' x2='239.640' y2='3939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='3851.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k59", "_self")'>59</text>+ <line+ x1='189.720' y1='3939.960' x2='239.640' y2='3864.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='3776.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k58", "_self")'>58</text>+ <line+ x1='189.720' y1='3939.960' x2='239.640' y2='3789.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='3926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k23", "_self")'>23</text>+ <line+ x1='139.800' y1='3939.960' x2='189.720' y2='3939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='3926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k10", "_self")'>10</text>+ <line+ x1='89.880' y1='6227.460' x2='139.800' y2='3939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='3701.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k22", "_self")'>22</text>+ <line+ x1='139.800' y1='3714.960' x2='189.720' y2='3714.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='3701.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k9", "_self")'>9</text>+ <line+ x1='89.880' y1='6227.460' x2='139.800' y2='3714.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='3626.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k57", "_self")'>57</text>+ <line+ x1='189.720' y1='3527.460' x2='239.640' y2='3639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='3551.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k56", "_self")'>56</text>+ <line+ x1='189.720' y1='3527.460' x2='239.640' y2='3564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='3476.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k106", "_self")'>106</text>+ <line+ x1='239.640' y1='3489.960' x2='289.560' y2='3489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='3476.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k55", "_self")'>55</text>+ <line+ x1='189.720' y1='3527.460' x2='239.640' y2='3489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='3401.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k105", "_self")'>105</text>+ <line+ x1='239.640' y1='3414.960' x2='289.560' y2='3414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='3401.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k54", "_self")'>54</text>+ <line+ x1='189.720' y1='3527.460' x2='239.640' y2='3414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='3513.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k21", "_self")'>21</text>+ <line+ x1='139.800' y1='3527.460' x2='189.720' y2='3527.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='3513.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k8", "_self")'>8</text>+ <line+ x1='89.880' y1='6227.460' x2='139.800' y2='3527.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='6213.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k2", "_self")'>2</text>+ <line+ x1='39.960' y1='4539.960' x2='89.880' y2='6227.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='3326.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k148", "_self")'>148</text>+ <line+ x1='289.560' y1='3339.960' x2='339.480' y2='3339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='3326.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k104", "_self")'>104</text>+ <line+ x1='239.640' y1='3077.460' x2='289.560' y2='3339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='3251.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k147", "_self")'>147</text>+ <line+ x1='289.560' y1='3264.960' x2='339.480' y2='3264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='3251.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k103", "_self")'>103</text>+ <line+ x1='239.640' y1='3077.460' x2='289.560' y2='3264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='3176.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k200", "_self")'>200</text>+ <line+ x1='339.480' y1='3189.960' x2='389.400' y2='3189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='3176.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k146", "_self")'>146</text>+ <line+ x1='289.560' y1='3114.960' x2='339.480' y2='3189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='3101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k199", "_self")'>199</text>+ <line+ x1='339.480' y1='3114.960' x2='389.400' y2='3114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='3101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k145", "_self")'>145</text>+ <line+ x1='289.560' y1='3114.960' x2='339.480' y2='3114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='3026.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k144", "_self")'>144</text>+ <line+ x1='289.560' y1='3114.960' x2='339.480' y2='3039.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='3101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k102", "_self")'>102</text>+ <line+ x1='239.640' y1='3077.460' x2='289.560' y2='3114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='2951.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k143", "_self")'>143</text>+ <line+ x1='289.560' y1='2964.960' x2='339.480' y2='2964.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='2951.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k101", "_self")'>101</text>+ <line+ x1='239.640' y1='3077.460' x2='289.560' y2='2964.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='2876.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k142", "_self")'>142</text>+ <line+ x1='289.560' y1='2889.960' x2='339.480' y2='2889.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='2876.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k100", "_self")'>100</text>+ <line+ x1='239.640' y1='3077.460' x2='289.560' y2='2889.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='2801.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k141", "_self")'>141</text>+ <line+ x1='289.560' y1='2814.960' x2='339.480' y2='2814.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='2801.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k99", "_self")'>99</text>+ <line+ x1='239.640' y1='3077.460' x2='289.560' y2='2814.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='3063.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k53", "_self")'>53</text>+ <line+ x1='189.720' y1='3039.960' x2='239.640' y2='3077.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='2726.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k52", "_self")'>52</text>+ <line+ x1='189.720' y1='3039.960' x2='239.640' y2='2739.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='3026.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k20", "_self")'>20</text>+ <line+ x1='139.800' y1='2364.960' x2='189.720' y2='3039.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='2651.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k140", "_self")'>140</text>+ <line+ x1='289.560' y1='2664.960' x2='339.480' y2='2664.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='2651.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k98", "_self")'>98</text>+ <line+ x1='239.640' y1='2402.460' x2='289.560' y2='2664.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='2576.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k198", "_self")'>198</text>+ <line+ x1='339.480' y1='2589.960' x2='389.400' y2='2589.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='2576.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k139", "_self")'>139</text>+ <line+ x1='289.560' y1='2514.960' x2='339.480' y2='2589.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='2501.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k197", "_self")'>197</text>+ <line+ x1='339.480' y1='2514.960' x2='389.400' y2='2514.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='2501.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k138", "_self")'>138</text>+ <line+ x1='289.560' y1='2514.960' x2='339.480' y2='2514.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='2426.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k137", "_self")'>137</text>+ <line+ x1='289.560' y1='2514.960' x2='339.480' y2='2439.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='2501.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k97", "_self")'>97</text>+ <line+ x1='239.640' y1='2402.460' x2='289.560' y2='2514.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='2351.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k136", "_self")'>136</text>+ <line+ x1='289.560' y1='2364.960' x2='339.480' y2='2364.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='2351.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k96", "_self")'>96</text>+ <line+ x1='239.640' y1='2402.460' x2='289.560' y2='2364.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='2276.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k135", "_self")'>135</text>+ <line+ x1='289.560' y1='2289.960' x2='339.480' y2='2289.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='2276.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k95", "_self")'>95</text>+ <line+ x1='239.640' y1='2402.460' x2='289.560' y2='2289.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='2201.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k134", "_self")'>134</text>+ <line+ x1='289.560' y1='2214.960' x2='339.480' y2='2214.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='2201.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k94", "_self")'>94</text>+ <line+ x1='239.640' y1='2402.460' x2='289.560' y2='2214.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='2126.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k133", "_self")'>133</text>+ <line+ x1='289.560' y1='2139.960' x2='339.480' y2='2139.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='2126.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k93", "_self")'>93</text>+ <line+ x1='239.640' y1='2402.460' x2='289.560' y2='2139.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='2388.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k51", "_self")'>51</text>+ <line+ x1='189.720' y1='2364.960' x2='239.640' y2='2402.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='2051.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k50", "_self")'>50</text>+ <line+ x1='189.720' y1='2364.960' x2='239.640' y2='2064.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='2351.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k19", "_self")'>19</text>+ <line+ x1='139.800' y1='2364.960' x2='189.720' y2='2364.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1976.040'+ style='font-style: italic; text-anchor: middle; fill: green;'+ onclick='window.open("#k114", "_self")'>114</text>+ <line+ x1='339.480' y1='1989.960' x2='389.400' y2='1989.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='1976.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k132", "_self")'>132</text>+ <line+ x1='289.560' y1='1989.960' x2='339.480' y2='1989.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='1976.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k92", "_self")'>92</text>+ <line+ x1='239.640' y1='1989.960' x2='289.560' y2='1989.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1976.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k49", "_self")'>49</text>+ <line+ x1='189.720' y1='1989.960' x2='239.640' y2='1989.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='1976.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k18", "_self")'>18</text>+ <line+ x1='139.800' y1='2364.960' x2='189.720' y2='1989.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='1901.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k131", "_self")'>131</text>+ <line+ x1='289.560' y1='1914.960' x2='339.480' y2='1914.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='1901.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k91", "_self")'>91</text>+ <line+ x1='239.640' y1='1689.960' x2='289.560' y2='1914.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='1826.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k130", "_self")'>130</text>+ <line+ x1='289.560' y1='1764.960' x2='339.480' y2='1839.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1751.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k196", "_self")'>196</text>+ <line+ x1='339.480' y1='1764.960' x2='389.400' y2='1764.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='1751.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k129", "_self")'>129</text>+ <line+ x1='289.560' y1='1764.960' x2='339.480' y2='1764.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1676.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k195", "_self")'>195</text>+ <line+ x1='339.480' y1='1689.960' x2='389.400' y2='1689.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='1676.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k128", "_self")'>128</text>+ <line+ x1='289.560' y1='1764.960' x2='339.480' y2='1689.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='1751.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k90", "_self")'>90</text>+ <line+ x1='239.640' y1='1689.960' x2='289.560' y2='1764.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='1601.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k127", "_self")'>127</text>+ <line+ x1='289.560' y1='1614.960' x2='339.480' y2='1614.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='1601.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k89", "_self")'>89</text>+ <line+ x1='239.640' y1='1689.960' x2='289.560' y2='1614.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='1526.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k126", "_self")'>126</text>+ <line+ x1='289.560' y1='1539.960' x2='339.480' y2='1539.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='1526.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k88", "_self")'>88</text>+ <line+ x1='239.640' y1='1689.960' x2='289.560' y2='1539.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='1451.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k125", "_self")'>125</text>+ <line+ x1='289.560' y1='1464.960' x2='339.480' y2='1464.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='1451.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k87", "_self")'>87</text>+ <line+ x1='239.640' y1='1689.960' x2='289.560' y2='1464.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1676.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k48", "_self")'>48</text>+ <line+ x1='189.720' y1='1652.460' x2='239.640' y2='1689.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1376.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k47", "_self")'>47</text>+ <line+ x1='189.720' y1='1652.460' x2='239.640' y2='1389.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='1638.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k17", "_self")'>17</text>+ <line+ x1='139.800' y1='2364.960' x2='189.720' y2='1652.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='2351.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k7", "_self")'>7</text>+ <line+ x1='89.880' y1='1689.960' x2='139.800' y2='2364.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1301.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k46", "_self")'>46</text>+ <line+ x1='189.720' y1='1127.460' x2='239.640' y2='1314.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1226.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k45", "_self")'>45</text>+ <line+ x1='189.720' y1='1127.460' x2='239.640' y2='1239.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1151.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k44", "_self")'>44</text>+ <line+ x1='189.720' y1='1127.460' x2='239.640' y2='1164.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1076.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k43", "_self")'>43</text>+ <line+ x1='189.720' y1='1127.460' x2='239.640' y2='1089.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1001.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k42", "_self")'>42</text>+ <line+ x1='189.720' y1='1127.460' x2='239.640' y2='1014.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k41", "_self")'>41</text>+ <line+ x1='189.720' y1='1127.460' x2='239.640' y2='939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='1113.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k16", "_self")'>16</text>+ <line+ x1='139.800' y1='1127.460' x2='189.720' y2='1127.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='1113.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k6", "_self")'>6</text>+ <line+ x1='89.880' y1='1689.960' x2='139.800' y2='1127.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='851.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k40", "_self")'>40</text>+ <line+ x1='189.720' y1='677.460' x2='239.640' y2='864.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='776.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k39", "_self")'>39</text>+ <line+ x1='189.720' y1='677.460' x2='239.640' y2='789.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='701.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k38", "_self")'>38</text>+ <line+ x1='189.720' y1='677.460' x2='239.640' y2='714.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='626.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k37", "_self")'>37</text>+ <line+ x1='189.720' y1='677.460' x2='239.640' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='551.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k36", "_self")'>36</text>+ <line+ x1='189.720' y1='677.460' x2='239.640' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='476.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k35", "_self")'>35</text>+ <line+ x1='189.720' y1='677.460' x2='239.640' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='663.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k15", "_self")'>15</text>+ <line+ x1='139.800' y1='677.460' x2='189.720' y2='677.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='663.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k5", "_self")'>5</text>+ <line+ x1='89.880' y1='1689.960' x2='139.800' y2='677.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='401.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k34", "_self")'>34</text>+ <line+ x1='189.720' y1='414.960' x2='239.640' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='401.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k14", "_self")'>14</text>+ <line+ x1='139.800' y1='414.960' x2='189.720' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='401.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k4", "_self")'>4</text>+ <line+ x1='89.880' y1='1689.960' x2='139.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='326.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k33", "_self")'>33</text>+ <line+ x1='189.720' y1='189.960' x2='239.640' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='251.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k86", "_self")'>86</text>+ <line+ x1='239.640' y1='264.960' x2='289.560' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='251.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k32", "_self")'>32</text>+ <line+ x1='189.720' y1='189.960' x2='239.640' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='176.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k31", "_self")'>31</text>+ <line+ x1='189.720' y1='189.960' x2='239.640' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k30", "_self")'>30</text>+ <line+ x1='189.720' y1='189.960' x2='239.640' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k29", "_self")'>29</text>+ <line+ x1='189.720' y1='189.960' x2='239.640' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='176.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k13", "_self")'>13</text>+ <line+ x1='139.800' y1='189.960' x2='189.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='176.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k3", "_self")'>3</text>+ <line+ x1='89.880' y1='1689.960' x2='139.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='1676.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k1", "_self")'>1</text>+ <line+ x1='39.960' y1='4539.960' x2='89.880' y2='1689.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='4526.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k0", "_self")'>0</text>+ </svg></div>++<pre>(defprotocol plaindh diffie-hellman+ (defrole init+ (vars (x expn) (h base) (n text))+ (trace (send (exp (gen) x)) (recv h) (send (enc n (exp h x)))+ (recv n))+ (uniq-orig n)+ (uniq-gen x))+ (defrole resp+ (vars (y expn) (h base) (n text))+ (trace (recv h) (send (exp (gen) y)) (recv (enc n (exp h y)))+ (send n))+ (uniq-gen y)+ (absent (y h)))+ (comment "Diffie-hellman key exchange followed by an encryption"))</pre>++<p id="k0">Item <a href="#t0">0</a>, Children: <a href="#k1">1</a> <a href="#k2">2</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp h x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h h) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960' style='text-anchor: middle;'>plaindh 0</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn))+ (defstrand init 4 (n n) (h h) (x x))+ (uniq-gen x)+ (uniq-orig n)+ (label 0)+ (unrealized (0 3))+ (origs (n (0 2)))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Children: <a href="#k3">3</a> <a href="#k4">4</a> <a href="#k5">5</a> <a href="#k6">6</a> <a href="#k7">7</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp h (mul x y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp h x)</title>+ <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp h (mul x y)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp h y)</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp h x)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp h y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960' style='text-anchor: middle;'>plaindh 1</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp h y)) (x x))+ (defstrand resp 4 (n n) (h (exp h x)) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))+ (absent (y (exp h x)))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 4) n (0 3)+ (enc n (exp h (mul x y))))+ (label 1)+ (parent 0)+ (unrealized (0 1) (1 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k0">0</a>, Children: <a href="#k8">8</a> <a href="#k9">9</a> <a href="#k10">10</a> <a href="#k11">11</a> <a href="#k12">12</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp h x)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp h x)</title>+ <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp h x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h h) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960' style='text-anchor: middle;'>plaindh 2</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn))+ (defstrand init 4 (n n) (h h) (x x))+ (deflistener (exp h x))+ (precedes ((0 0) (1 0)) ((1 1) (0 3)))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (added-listener (exp h x)) n (0 3)+ (enc n (exp h x)))+ (label 2)+ (parent 0)+ (unrealized (1 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k1">1</a>, Child: <a href="#k13">13</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (gen)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960' style='text-anchor: middle;'>plaindh 3</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))+ (absent (y (gen)))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (h (exp (gen) (rec x)))) (gen)+ (1 0))+ (label 3)+ (parent 1)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k1">1</a>, Child: <a href="#k14">14</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) x)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>plaindh 4 (realized)</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))+ (absent (y (exp (gen) x)))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))+ (label 4)+ (parent 1)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k5">Item <a href="#t0">5</a>, Parent: <a href="#k1">1</a>, Child: <a href="#k15">15</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y x-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y x-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) x-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 5</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 0) (1 0)))+ (absent (y (exp (gen) x-0)))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+ (label 5)+ (parent 1)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k6">Item <a href="#t0">6</a>, Parent: <a href="#k1">1</a>, Child: <a href="#k16">16</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 6</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))+ (label 6)+ (parent 1)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k7">Item <a href="#t0">7</a>, Parent: <a href="#k1">1</a>, Children: <a href="#k17">17</a> <a href="#k18">18</a> <a href="#k19">19</a> <a href="#k20">20</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp h (mul x (rec w))) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp h (mul x (rec w))) w)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp h (mul x y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp h x)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp h (mul x y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp h y)</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp h x)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp h y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 7</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr))+ (defstrand init 4 (n n) (h (exp h y)) (x x))+ (defstrand resp 4 (n n) (h (exp h x)) (y y))+ (deflistener (cat (exp h (mul x (rec w))) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)))+ (absent (y (exp h x)))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (added-listener (cat (exp h (mul x (rec w))) w))+ (exp h x) (1 0))+ (label 7)+ (parent 1)+ (unrealized (0 1) (2 0))+ (comment "4 in cohort - 4 not yet seen"))</pre>++<p id="k8">Item <a href="#t0">8</a>, Parent: <a href="#k2">2</a>, Child: <a href="#k21">21</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='189.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (gen))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (rec x))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960' style='text-anchor: middle;'>plaindh 8</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (precedes ((0 0) (1 0)) ((1 1) (0 3)))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (contracted (h (exp (gen) (rec x)))) (gen)+ (1 0))+ (label 8)+ (parent 2)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k9">Item <a href="#t0">9</a>, Parent: <a href="#k2">2</a>, Child: <a href="#k22">22</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (gen)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>plaindh 9 (realized)</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (gen)) (x x))+ (deflistener (exp (gen) x))+ (precedes ((0 0) (1 0)) ((1 1) (0 3)))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))+ (label 9)+ (parent 2)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k10">Item <a href="#t0">10</a>, Parent: <a href="#k2">2</a>, Child: <a href="#k23">23</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 114.960 Q 142.729 113.906 45.578 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x-0))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 10</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 3)) ((2 0) (0 1)) ((2 0) (1 0)))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+ (label 10)+ (parent 2)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k11">Item <a href="#t0">11</a>, Parent: <a href="#k2">2</a>, Child: <a href="#k24">24</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 87.540 150.660 135.121 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 11</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 3)) ((2 1) (0 1)) ((2 1) (1 0)))+ (absent (y h))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (1 0))+ (label 11)+ (parent 2)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k12">Item <a href="#t0">12</a>, Parent: <a href="#k2">2</a>, Children: <a href="#k25">25</a> <a href="#k26">26</a> <a href="#k27">27</a> <a href="#k28">28</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp h (mul x (rec w))) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp h (mul x (rec w))) w)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp h x)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp h x)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp h x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h h) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 12</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr))+ (defstrand init 4 (n n) (h h) (x x))+ (deflistener (exp h x))+ (deflistener (cat (exp h (mul x (rec w))) w))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (added-listener (cat (exp h (mul x (rec w))) w))+ (exp h x) (1 0))+ (label 12)+ (parent 2)+ (unrealized (2 0))+ (comment "4 in cohort - 4 not yet seen"))</pre>++<p id="k13">Item <a href="#t0">13</a>, Parent: <a href="#k3">3</a>, Children: <a href="#k29">29</a> <a href="#k30">30</a> <a href="#k31">31</a> <a href="#k32">32</a> <a href="#k33">33</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul (rec x) y (rec w))) w)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul (rec x) y (rec w))) w)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (gen)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 13</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (0 1)))+ (absent (y (gen)))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (exp (gen) (mul (rec x) y)) (0 1))+ (label 13)+ (parent 3)+ (unrealized (2 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k14">Item <a href="#t0">14</a>, Parent: <a href="#k4">4</a>, Child: <a href="#k34">34</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>plaindh 14 (realized)</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (absent (y (exp (gen) x)))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization deleted (1 0))+ (label 14)+ (parent 4)+ (unrealized)+ (origs (n (0 2)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k15">Item <a href="#t0">15</a>, Parent: <a href="#k5">5</a>, Children: <a href="#k35">35</a> <a href="#k36">36</a> <a href="#k37">37</a> <a href="#k38">38</a> <a href="#k39">39</a> <a href="#k40">40</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul (rec x) y x-0 (rec w))) w)</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul (rec x) y x-0 (rec w))) w)</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y x-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 236.880 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) x-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 15</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y x-0 expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 0) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+ (exp (gen) (mul (rec x) y x-0)) (0 1))+ (label 15)+ (parent 5)+ (unrealized (3 0))+ (comment "6 in cohort - 6 not yet seen"))</pre>++<p id="k16">Item <a href="#t0">16</a>, Parent: <a href="#k6">6</a>, Children: <a href="#k41">41</a> <a href="#k42">42</a> <a href="#k43">43</a> <a href="#k44">44</a> <a href="#k45">45</a> <a href="#k46">46</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul (rec x) y y-0 (rec w))) w)</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul (rec x) y y-0 (rec w))) w)</title>+ <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y y-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 16</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) (mul (rec x) y y-0 (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y y-0 (rec w))) w))+ (exp (gen) (mul (rec x) y y-0)) (0 1))+ (label 16)+ (parent 6)+ (unrealized (3 0))+ (comment "6 in cohort - 6 not yet seen"))</pre>++<p id="k17">Item <a href="#t0">17</a>, Parent: <a href="#k7">7</a>, Children: <a href="#k47">47</a> <a href="#k48">48</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y w)))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y w)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y w))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) w)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y w))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 17</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)))+ (absent (y (exp (gen) w)))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (h (exp (gen) (mul (rec x) w))))+ (gen) (2 0))+ (label 17)+ (parent 7)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k18">Item <a href="#t0">18</a>, Parent: <a href="#k7">7</a>, Child: <a href="#k49">49</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y w x)))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y w x)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y w))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul w x))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul y w))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>plaindh 18 (realized)</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y w))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x))) (y y))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)))+ (absent (y (exp (gen) (mul w x))))+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (label 18)+ (parent 7)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k19">Item <a href="#t0">19</a>, Parent: <a href="#k7">7</a>, Children: <a href="#k50">50</a> <a href="#k51">51</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y w x-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y w x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y w x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y w x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 19</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)))+ (absent (y (exp (gen) (mul w x-0))))+ (precur (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (label 19)+ (parent 7)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k20">Item <a href="#t0">20</a>, Parent: <a href="#k7">7</a>, Children: <a href="#k52">52</a> <a href="#k53">53</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) w)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y w y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y w y-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y w y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y-0))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y w y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 20</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)))+ (absent (y-0 h) (y (exp (gen) (mul w y-0))))+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))+ (label 20)+ (parent 7)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k21">Item <a href="#t0">21</a>, Parent: <a href="#k8">8</a>, Children: <a href="#k54">54</a> <a href="#k55">55</a> <a href="#k56">56</a> <a href="#k57">57</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul (rec x) (rec w))) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul (rec x) (rec w))) w)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='189.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (gen))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (rec x))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 21</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (exp (gen) (mul (rec x) (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) (rec w))) w))+ (exp (gen) (rec x)) (0 1))+ (label 21)+ (parent 8)+ (unrealized (2 0))+ (comment "4 in cohort - 4 not yet seen"))</pre>++<p id="k22">Item <a href="#t0">22</a>, Parent: <a href="#k9">9</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (gen)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>plaindh 22 (realized)</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (gen)) (x x))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization deleted (1 0))+ (label 22)+ (parent 9)+ (unrealized)+ (shape)+ (maps ((0) ((x x) (h (gen)) (n n))))+ (origs (n (0 2))))</pre>++<p id="k23">Item <a href="#t0">23</a>, Parent: <a href="#k10">10</a>, Children: <a href="#k58">58</a> <a href="#k59">59</a> <a href="#k60">60</a> <a href="#k61">61</a> <a href="#k62">62</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul (rec x) x-0 (rec w))) w)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul (rec x) x-0 (rec w))) w)</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 114.960 Q 286.860 114.960 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x-0))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 23</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) x-0 (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 0) (1 0))+ ((2 0) (3 0)) ((3 1) (0 1)))+ (uniq-gen x x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) x-0 (rec w))) w))+ (exp (gen) (mul (rec x) x-0)) (0 1))+ (label 23)+ (parent 10)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k24">Item <a href="#t0">24</a>, Parent: <a href="#k11">11</a>, Children: <a href="#k63">63</a> <a href="#k64">64</a> <a href="#k65">65</a> <a href="#k66">66</a> <a href="#k67">67</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul (rec x) y (rec w))) w)</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul (rec x) y (rec w))) w)</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 286.860 189.960 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 24</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((2 1) (3 0)) ((3 1) (0 1)))+ (absent (y h))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (exp (gen) (mul (rec x) y)) (0 1))+ (label 24)+ (parent 11)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k25">Item <a href="#t0">25</a>, Parent: <a href="#k12">12</a>, Children: <a href="#k68">68</a> <a href="#k69">69</a> <a href="#k70">70</a> <a href="#k71">71</a> <a href="#k72">72</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) w))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) w))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) w))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 25</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (h (exp (gen) (mul (rec x) w))))+ (gen) (2 0))+ (label 25)+ (parent 12)+ (unrealized (0 1))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k26">Item <a href="#t0">26</a>, Parent: <a href="#k12">12</a>, Child: <a href="#k73">73</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>plaindh 26 (realized)</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))+ (precur (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (label 26)+ (parent 12)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k27">Item <a href="#t0">27</a>, Parent: <a href="#k12">12</a>, Children: <a href="#k74">74</a> <a href="#k75">75</a> <a href="#k76">76</a> <a href="#k77">77</a> <a href="#k78">78</a> <a href="#k79">79</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 114.960 Q 192.810 114.232 45.781 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) w x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) w x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 27</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w x-0))) (x x))+ (deflistener (exp (gen) (mul w x-0)))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))+ ((3 0) (2 0)))+ (precur (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (label 27)+ (parent 12)+ (unrealized (0 1))+ (comment "6 in cohort - 6 not yet seen"))</pre>++<p id="k28">Item <a href="#t0">28</a>, Parent: <a href="#k12">12</a>, Children: <a href="#k80">80</a> <a href="#k81">81</a> <a href="#k82">82</a> <a href="#k83">83</a> <a href="#k84">84</a> <a href="#k85">85</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) w y))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 28</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w y))) (x x))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))+ ((3 1) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (2 0))+ (label 28)+ (parent 12)+ (unrealized (0 1))+ (comment "6 in cohort - 6 not yet seen"))</pre>++<p id="k29">Item <a href="#t0">29</a>, Parent: <a href="#k13">13</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul (rec x) y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (gen)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 29</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (gen) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (0 1)))+ (absent (y (gen)))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul (rec x) y)))+ (gen) (2 0))+ (label 29)+ (parent 13)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))</pre>++<p id="k30">Item <a href="#t0">30</a>, Parent: <a href="#k13">13</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul y (rec x) (rec x)))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul y (rec x) (rec x)))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (gen)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul y (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 30</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (0 1)))+ (absent (y (gen)))+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (label 30)+ (parent 13)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))</pre>++<p id="k31">Item <a href="#t0">31</a>, Parent: <a href="#k13">13</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (gen)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 31</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (0 1)) ((3 0) (2 0)))+ (absent (y (gen)))+ (precur (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (label 31)+ (parent 13)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))</pre>++<p id="k32">Item <a href="#t0">32</a>, Parent: <a href="#k13">13</a>, Child: <a href="#k86">86</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (gen)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 32</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (0 1)))+ (absent (y (gen)))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))+ (label 32)+ (parent 13)+ (unrealized (0 1) (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k33">Item <a href="#t0">33</a>, Parent: <a href="#k13">13</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (gen)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 33</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (0 1)) ((3 1) (2 0)))+ (absent (y-0 h) (y (gen)))+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))+ (label 33)+ (parent 13)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))</pre>++<p id="k34">Item <a href="#t0">34</a>, Parent: <a href="#k14">14</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>plaindh 34 (realized)</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization forgot y)+ (label 34)+ (parent 14)+ (unrealized)+ (shape)+ (maps ((0) ((x x) (h (exp (gen) y)) (n n))))+ (origs (n (0 2))))</pre>++<p id="k35">Item <a href="#t0">35</a>, Parent: <a href="#k15">15</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul (rec x) y x-0))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul (rec x) y x-0))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y x-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 236.880 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) x-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 35</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul (rec x) y x-0)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 0) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (contracted (x-1 x) (y-0 y) (x-2 x-0) (w (mul (rec x) y x-0))) (gen)+ (3 0))+ (label 35)+ (parent 15)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k36">Item <a href="#t0">36</a>, Parent: <a href="#k15">15</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0)))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 236.880 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y x)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x (rec x-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) x)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul y x (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 36</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (y x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (defstrand resp 4 (n n) (h (exp (gen) x)) (y y))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 0) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) x)))+ (precur (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-1) (3 0))+ (label 36)+ (parent 15)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k37">Item <a href="#t0">37</a>, Parent: <a href="#k15">15</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul (rec x) y))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y x-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 236.880 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) x-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 37</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 0) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (precur (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 2 init 1) (exp (gen) x-1) (3 0))+ (label 37)+ (parent 15)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k38">Item <a href="#t0">38</a>, Parent: <a href="#k15">15</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 114.960 Q 392.220 150.660 344.639 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul (rec x) y x-0 (rec x-1)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul (rec x) y x-0 (rec x-1)))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y x-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 236.880 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-1))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) x-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 38</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul (rec x) y x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 0) (1 0)) ((3 1) (0 1)) ((4 0) (3 0)))+ (absent (y (exp (gen) x-0)))+ (precur (3 0))+ (uniq-gen x y x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (3 0))+ (label 38)+ (parent 15)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k39">Item <a href="#t0">39</a>, Parent: <a href="#k15">15</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec x) x-0))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec x) x-0))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x-0 y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 236.880 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x-0 y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) x-0 y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) x-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) x-0 y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 39</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0 y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 0) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (precur (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))+ (label 39)+ (parent 15)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k40">Item <a href="#t0">40</a>, Parent: <a href="#k15">15</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul (rec x) y x-0 (rec y-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul (rec x) y x-0 (rec y-0)))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y x-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 236.880 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) x-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 40</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y x-0 y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y x-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 0) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y-0 h) (y (exp (gen) x-0)))+ (precur (3 0))+ (uniq-gen x y x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (label 40)+ (parent 15)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k41">Item <a href="#t0">41</a>, Parent: <a href="#k16">16</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul (rec x) y y-0))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul (rec x) y y-0))</title>+ <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 41</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul (rec x) y y-0)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (contracted (x-0 x) (y-1 y) (y-2 y-0) (w (mul (rec x) y y-0))) (gen)+ (3 0))+ (label 41)+ (parent 16)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k42">Item <a href="#t0">42</a>, Parent: <a href="#k16">16</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul y y-0 (rec x) (rec x)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul y y-0 (rec x) (rec x)))</title>+ <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y y-0 (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul y y-0 (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 42</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y y-0 x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y y-0 (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul y y-0 (rec x) (rec x))))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (precur (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (label 42)+ (parent 16)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k43">Item <a href="#t0">43</a>, Parent: <a href="#k16">16</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 114.960 Q 391.484 187.464 343.167 259.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul (rec x) y y-0 (rec x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul (rec x) y y-0 (rec x-0)))</title>+ <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((h h) (y y-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 43</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y y-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 0) (3 0)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (precur (3 0))+ (uniq-gen x y y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (label 43)+ (parent 16)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k44">Item <a href="#t0">44</a>, Parent: <a href="#k16">16</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul (rec x) y))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y)) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 44</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y)) (y y-0))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y-0 (exp (gen) y)) (y h))+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-1) (3 0))+ (label 44)+ (parent 16)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k45">Item <a href="#t0">45</a>, Parent: <a href="#k16">16</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul (rec x) y))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 45</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 2 resp 2) (exp (gen) y-1) (3 0))+ (label 45)+ (parent 16)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k46">Item <a href="#t0">46</a>, Parent: <a href="#k16">16</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.220 225.660 344.639 261.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-1)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h-0</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-1) (mul (rec x) y y-0 (rec y-1)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-1) (mul (rec x) y y-0 (rec y-1)))</title>+ <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h-0) (y y-1))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((h h) (y y-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 46</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y y-0 y-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul (rec x) y y-0 (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y-1 h-0) (y-0 h) (y (exp (gen) y-0)))+ (precur (3 0))+ (uniq-gen x y y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (3 0))+ (label 46)+ (parent 16)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k47">Item <a href="#t0">47</a>, Parent: <a href="#k17">17</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) x)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) x)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) x)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 47</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x)) (y y))+ (deflistener (cat (gen) x))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)))+ (absent (y (exp (gen) x)))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (0 1))+ (label 47)+ (parent 17)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k48">Item <a href="#t0">48</a>, Parent: <a href="#k17">17</a>, Children: <a href="#k87">87</a> <a href="#k88">88</a> <a href="#k89">89</a> <a href="#k90">90</a> <a href="#k91">91</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0)</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0)</title>+ <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y w)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y w)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y w))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) w)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y w))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 48</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y expn) (w w-0 expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) w)))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y w)) (0 1))+ (label 48)+ (parent 17)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k49">Item <a href="#t0">49</a>, Parent: <a href="#k18">18</a>, Child: <a href="#k92">92</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y w x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y w))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul y w))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>plaindh 49 (realized)</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y w))) (x x))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (absent (y (exp (gen) (mul w x))))+ (precur (1 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization deleted (1 0))+ (label 49)+ (parent 18)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k50">Item <a href="#t0">50</a>, Parent: <a href="#k19">19</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0)))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0)))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) x)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 50</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)))+ (absent (y (exp (gen) x)))+ (precur (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (0 1))+ (label 50)+ (parent 19)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k51">Item <a href="#t0">51</a>, Parent: <a href="#k19">19</a>, Children: <a href="#k93">93</a> <a href="#k94">94</a> <a href="#k95">95</a> <a href="#k96">96</a> <a href="#k97">97</a> <a href="#k98">98</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0)</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0)</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y w x-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 286.860 227.460 433.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y w x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y w x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y w x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 51</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y expn) (w expr) (x-0 expn) (w-0 expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul w x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener+ (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y w x-0)) (0 1))+ (label 51)+ (parent 19)+ (unrealized (4 0))+ (comment "6 in cohort - 6 not yet seen"))</pre>++<p id="k52">Item <a href="#t0">52</a>, Parent: <a href="#k20">20</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y)))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y)))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x y-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) y-0)</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) x)) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 52</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x)) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)))+ (absent (y-0 (exp (gen) x)) (y h))+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-1) (0 1))+ (label 52)+ (parent 20)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k53">Item <a href="#t0">53</a>, Parent: <a href="#k20">20</a>, Children: <a href="#k99">99</a> <a href="#k100">100</a> <a href="#k101">101</a> <a href="#k102">102</a> <a href="#k103">103</a> <a href="#k104">104</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0)</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0)</title>+ <circle style='fill: red;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) w)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y w y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 286.860 302.460 433.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y w y-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y w y-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y-0))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y w y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 53</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn) (w-0 expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) (mul w y-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener+ (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y w y-0)) (0 1))+ (label 53)+ (parent 20)+ (unrealized (4 0))+ (comment "6 in cohort - 6 not yet seen"))</pre>++<p id="k54">Item <a href="#t0">54</a>, Parent: <a href="#k21">21</a>, Child: <a href="#k105">105</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (rec x))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (rec x))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='189.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (gen))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (rec x))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 54</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (rec x)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (x-0 x) (w (rec x))) (gen) (2 0))+ (label 54)+ (parent 21)+ (unrealized (0 1) (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k55">Item <a href="#t0">55</a>, Parent: <a href="#k21">21</a>, Child: <a href="#k106">106</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) (rec x)))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) (rec x)))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='189.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (gen))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (rec x))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 55</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1)))+ (precur (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (label 55)+ (parent 21)+ (unrealized (0 1) (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k56">Item <a href="#t0">56</a>, Parent: <a href="#k21">21</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul (rec x) (rec x-0)))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul (rec x) (rec x-0)))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='189.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (gen))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (rec x))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 56</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1))+ ((3 0) (2 0)))+ (precur (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (label 56)+ (parent 21)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))</pre>++<p id="k57">Item <a href="#t0">57</a>, Parent: <a href="#k21">21</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec x) (rec y)))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec x) (rec y)))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.158 299.718 42.396 409.477'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='189.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (gen))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (rec x))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 57</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (exp (gen) y) (mul (rec x) (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1))+ ((3 1) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (2 0))+ (label 57)+ (parent 21)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))</pre>++<p id="k58">Item <a href="#t0">58</a>, Parent: <a href="#k23">23</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul (rec x) x-0))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul (rec x) x-0))</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 114.960 Q 286.860 114.960 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x-0))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 58</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul (rec x) x-0)))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 0) (1 0))+ ((2 0) (3 0)) ((3 1) (0 1)))+ (uniq-gen x x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (gen) (3 0))+ (label 58)+ (parent 23)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k59">Item <a href="#t0">59</a>, Parent: <a href="#k23">23</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0)))</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 114.960 Q 286.860 114.960 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x (rec x-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 59</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) x))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 0) (1 0))+ ((2 0) (3 0)) ((3 1) (0 1)))+ (precur (3 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-1) (3 0))+ (label 59)+ (parent 23)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k60">Item <a href="#t0">60</a>, Parent: <a href="#k23">23</a>, Child: <a href="#k107">107</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (rec x))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (rec x))</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 114.960 Q 286.860 114.960 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x-0))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 60</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (rec x)))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 0) (1 0))+ ((2 0) (3 0)) ((3 1) (0 1)))+ (precur (3 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 2 init 1) (exp (gen) x-1) (3 0))+ (label 60)+ (parent 23)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k61">Item <a href="#t0">61</a>, Parent: <a href="#k23">23</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 114.960 Q 392.820 114.960 345.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1)))</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 114.960 Q 286.860 114.960 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x-0))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-1))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 61</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 0) (1 0))+ ((2 0) (3 0)) ((3 1) (0 1)) ((4 0) (3 0)))+ (precur (3 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (3 0))+ (label 61)+ (parent 23)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k62">Item <a href="#t0">62</a>, Parent: <a href="#k23">23</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec x) x-0 (rec y)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec x) x-0 (rec y)))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 114.960 Q 287.460 150.660 335.041 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.158 299.718 42.396 409.477'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x-0))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.990 114.232 334.019 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 62</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 0) (1 0))+ ((2 0) (3 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y h))+ (precur (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (3 0))+ (label 62)+ (parent 23)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k63">Item <a href="#t0">63</a>, Parent: <a href="#k24">24</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul (rec x) y))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 286.860 189.960 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 63</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((2 1) (3 0)) ((3 1) (0 1)))+ (absent (y h))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul (rec x) y)))+ (gen) (3 0))+ (label 63)+ (parent 24)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k64">Item <a href="#t0">64</a>, Parent: <a href="#k24">24</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul y (rec x) (rec x)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul y (rec x) (rec x)))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 286.860 189.960 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul y (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 64</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((2 1) (3 0)) ((3 1) (0 1)))+ (absent (y h))+ (precur (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (label 64)+ (parent 24)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k65">Item <a href="#t0">65</a>, Parent: <a href="#k24">24</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 114.960 Q 392.220 150.660 344.639 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 286.860 189.960 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 65</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((2 1) (3 0)) ((3 1) (0 1)) ((4 0) (3 0)))+ (absent (y h))+ (precur (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (label 65)+ (parent 24)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k66">Item <a href="#t0">66</a>, Parent: <a href="#k24">24</a>, Child: <a href="#k108">108</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 286.860 189.960 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 66</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((2 1) (3 0)) ((3 1) (0 1)))+ (absent (y h))+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 2 resp 2) (exp (gen) y-0) (3 0))+ (label 66)+ (parent 24)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k67">Item <a href="#t0">67</a>, Parent: <a href="#k24">24</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h-0</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 286.860 189.960 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h-0) (y y-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 67</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((2 1) (3 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y-0 h-0) (y h))+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (label 67)+ (parent 24)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k68">Item <a href="#t0">68</a>, Parent: <a href="#k25">25</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) x)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) x)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (gen)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 68</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (gen)) (x x))+ (deflistener (exp (gen) x))+ (deflistener (cat (gen) x))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (x-0 x) (w x)) (gen) (0 1))+ (label 68)+ (parent 25)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k69">Item <a href="#t0">69</a>, Parent: <a href="#k25">25</a>, Child: <a href="#k109">109</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) x)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>plaindh 69</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) x)) (x x))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (gen) (mul x x)))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))+ (precur (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (0 1))+ (label 69)+ (parent 25)+ (unrealized (1 0) (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k70">Item <a href="#t0">70</a>, Parent: <a href="#k25">25</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 114.960 Q 192.810 114.232 45.781 188.504'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 70</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))+ ((3 0) (2 0)))+ (precur (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))+ (label 70)+ (parent 25)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))</pre>++<p id="k71">Item <a href="#t0">71</a>, Parent: <a href="#k25">25</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 71</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (gen) (mul x y)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))+ ((3 1) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (0 1))+ (label 71)+ (parent 25)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))</pre>++<p id="k72">Item <a href="#t0">72</a>, Parent: <a href="#k25">25</a>, Children: <a href="#k110">110</a> <a href="#k111">111</a> <a href="#k112">112</a> <a href="#k113">113</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul (rec x) w (rec w-0))) w-0)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul (rec x) w (rec w-0))) w-0)</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) w))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) w))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) w))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 72</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w w-0 expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) (mul (rec x) w (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w (rec w-0))) w-0))+ (exp (gen) (mul (rec x) w)) (0 1))+ (label 72)+ (parent 25)+ (unrealized (3 0))+ (comment "4 in cohort - 4 not yet seen"))</pre>++<p id="k73">Item <a href="#t0">73</a>, Parent: <a href="#k26">26</a>, Child: <a href="#k114">114</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 91.604 262.464 43.287 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>plaindh 73 (realized)</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (1 0)) ((1 1) (0 3)))+ (precur (1 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization deleted (1 0))+ (label 73)+ (parent 26)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k74">Item <a href="#t0">74</a>, Parent: <a href="#k27">27</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 114.960 Q 192.810 114.232 45.781 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0)))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0)))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (gen)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 74</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (gen)) (x x))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))+ ((3 0) (2 0)))+ (precur (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w (mul x (rec x-0))) (x-2 x-0)) (gen) (0 1))+ (label 74)+ (parent 27)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k75">Item <a href="#t0">75</a>, Parent: <a href="#k27">27</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 114.960 Q 192.810 114.232 45.781 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) x-0 x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) x-0 x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x-0 x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x-0 x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x-0 x-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) x-0)) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 75</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x-0))+ (deflistener (exp (gen) (mul x-0 x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) x-0 x-0)))+ (defstrand init 1 (x x))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))+ ((3 0) (2 0)))+ (precur (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-1) (0 1))+ (label 75)+ (parent 27)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))</pre>++<p id="k76">Item <a href="#t0">76</a>, Parent: <a href="#k27">27</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 114.960 Q 192.810 114.232 45.781 188.504'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 76</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))+ ((3 0) (2 0)))+ (precur (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 3 init 1) (exp (gen) x-1) (0 1))+ (label 76)+ (parent 27)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k77">Item <a href="#t0">77</a>, Parent: <a href="#k27">27</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 114.960 Q 242.829 114.407 45.857 188.854'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 192.810 114.232 45.781 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) x-1))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) x-1))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x x-1)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x-1)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-1))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) x-1)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 77</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) x-1)) (x x))+ (deflistener (exp (gen) (mul x x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))+ (defstrand init 1 (x x-0))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))+ ((3 0) (2 0)) ((4 0) (0 1)) ((4 0) (2 0)))+ (precur (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (0 1))+ (label 77)+ (parent 27)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))</pre>++<p id="k78">Item <a href="#t0">78</a>, Parent: <a href="#k27">27</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 192.810 114.232 45.781 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 78</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y)))+ (defstrand init 1 (x x-0))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))+ ((3 0) (2 0)) ((4 1) (0 1)) ((4 1) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (0 1))+ (label 78)+ (parent 27)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))</pre>++<p id="k79">Item <a href="#t0">79</a>, Parent: <a href="#k27">27</a>, Children: <a href="#k115">115</a> <a href="#k116">116</a> <a href="#k117">117</a> <a href="#k118">118</a> <a href="#k119">119</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0)</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) w x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) w x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 79</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn) (w-0 expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w x-0))) (x x))+ (deflistener (exp (gen) (mul w x-0)))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) w x-0)) (0 1))+ (label 79)+ (parent 27)+ (unrealized (4 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k80">Item <a href="#t0">80</a>, Parent: <a href="#k28">28</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y)))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y)))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (gen)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 80</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (gen)) (x x))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))+ ((3 1) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w (mul x (rec y))) (y-0 y))+ (gen) (0 1))+ (label 80)+ (parent 28)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k81">Item <a href="#t0">81</a>, Parent: <a href="#k28">28</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) x x))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) x x))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) x)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 81</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) x)) (x x))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) x x)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))+ ((3 1) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (0 1))+ (label 81)+ (parent 28)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))</pre>++<p id="k82">Item <a href="#t0">82</a>, Parent: <a href="#k28">28</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 114.960 Q 242.829 114.407 45.857 188.854'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 342.649 113.906 245.498 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 82</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))+ (defstrand resp 2 (h h) (y y))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))+ ((3 1) (2 0)) ((4 0) (0 1)) ((4 0) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))+ (label 82)+ (parent 28)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))</pre>++<p id="k83">Item <a href="#t0">83</a>, Parent: <a href="#k28">28</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 83</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))+ ((3 1) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 3 resp 2) (exp (gen) y-0) (0 1))+ (label 83)+ (parent 28)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k84">Item <a href="#t0">84</a>, Parent: <a href="#k28">28</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h-0</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) y-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) y-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x y-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y-0)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h-0) (y y-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 84</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) y-0)) (x x))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))+ (defstrand resp 2 (h h) (y y))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))+ ((3 1) (2 0)) ((4 1) (0 1)) ((4 1) (2 0)))+ (absent (y-0 h-0) (y h))+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (0 1))+ (label 84)+ (parent 28)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))</pre>++<p id="k85">Item <a href="#t0">85</a>, Parent: <a href="#k28">28</a>, Children: <a href="#k120">120</a> <a href="#k121">121</a> <a href="#k122">122</a> <a href="#k123">123</a> <a href="#k124">124</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0)</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0)</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 85</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn) (w-0 expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w y))) (x x))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))+ (exp (gen) (mul (rec x) w y)) (0 1))+ (label 85)+ (parent 28)+ (unrealized (4 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k86">Item <a href="#t0">86</a>, Parent: <a href="#k32">32</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 86.940 339.960 133.920 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (gen)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 86</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 3) (0 3)) ((2 1) (0 1)) ((3 1) (2 0)))+ (absent (y (gen)))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (2 0))+ (label 86)+ (parent 32)+ (unrealized (3 0))+ (comment "empty cohort"))</pre>++<p id="k87">Item <a href="#t0">87</a>, Parent: <a href="#k48">48</a>, Child: <a href="#k125">125</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w y))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w y))</title>+ <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul x w))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 87</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test+ (contracted (x-0 x) (y-0 y) (w-0 (mul x w)) (w-1 (mul w y)) (y-1 y)+ (w (mul w y))) (gen) (3 0))+ (label 87)+ (parent 48)+ (unrealized (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k88">Item <a href="#t0">88</a>, Parent: <a href="#k48">48</a>, Child: <a href="#k126">126</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w x x))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w x x))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x x y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x x))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul w x x y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x y))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul w x x))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 88</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x x))) (y y))+ (deflistener (cat (gen) (mul w x x)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) (mul w x x))))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (label 88)+ (parent 48)+ (unrealized (0 1) (1 0) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k89">Item <a href="#t0">89</a>, Parent: <a href="#k48">48</a>, Child: <a href="#k127">127</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0 y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w x-0 y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 y))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w x-0))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0 y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 89</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 0) (2 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (precur (3 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (label 89)+ (parent 48)+ (unrealized (0 1) (1 0) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k90">Item <a href="#t0">90</a>, Parent: <a href="#k48">48</a>, Children: <a href="#k128">128</a> <a href="#k129">129</a> <a href="#k130">130</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul x w))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960' style='text-anchor: middle;'>plaindh 90</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))+ (label 90)+ (parent 48)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k91">Item <a href="#t0">91</a>, Parent: <a href="#k48">48</a>, Child: <a href="#k131">131</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='339.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle style='fill: red;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 236.880 302.460 333.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w y))) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 91</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (precur (3 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (3 0))+ (label 91)+ (parent 48)+ (unrealized (0 1) (1 0) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k92">Item <a href="#t0">92</a>, Parent: <a href="#k49">49</a>, Child: <a href="#k132">132</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y w x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y w))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul y w))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>plaindh 92 (realized)</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y w))) (x x))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (1 0)))+ (absent (y (exp (gen) (mul w x))))+ (precur (1 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization deleted (1 1))+ (label 92)+ (parent 49)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k93">Item <a href="#t0">93</a>, Parent: <a href="#k51">51</a>, Child: <a href="#k133">133</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w y))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w y))</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 286.860 227.460 433.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 93</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (y-0 y) (w-0 (mul x (rec x-0) w)) (x-2 x-0)+ (w-1 (mul w y)) (y-1 y) (w (mul w y))) (gen) (4 0))+ (label 93)+ (parent 51)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k94">Item <a href="#t0">94</a>, Parent: <a href="#k51">51</a>, Child: <a href="#k134">134</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) w x-0 x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) w x-0 x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x-0 x-0 y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 286.860 227.460 433.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul w x-0 x-0 y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 y))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0 x-0))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0 y))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 94</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x-0))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x-0 x-0))) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul w x-0 x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-1) (4 0))+ (label 94)+ (parent 51)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k95">Item <a href="#t0">95</a>, Parent: <a href="#k51">51</a>, Child: <a href="#k135">135</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0 y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 286.860 227.460 433.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w x-0 y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 y))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w x-0))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0 y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 95</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 3 init 1) (exp (gen) x-1) (4 0))+ (label 95)+ (parent 51)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k96">Item <a href="#t0">96</a>, Parent: <a href="#k51">51</a>, Child: <a href="#k136">136</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 114.960 Q 392.820 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul w y))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul w y))</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w x-1))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w x-1))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-1 y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 286.860 227.460 433.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-1))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w x-1 y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-1 y))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-1))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w x-1))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-1 y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960' style='text-anchor: middle;'>plaindh 96</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (x-1 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-1 y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-1))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w y)))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 0) (2 0)))+ (absent (y (exp (gen) (mul x w x-1))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1 y)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (4 0))+ (label 96)+ (parent 51)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k97">Item <a href="#t0">97</a>, Parent: <a href="#k51">51</a>, Children: <a href="#k137">137</a> <a href="#k138">138</a> <a href="#k139">139</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 286.860 227.460 433.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 97</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (4 0))+ (label 97)+ (parent 51)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k98">Item <a href="#t0">98</a>, Parent: <a href="#k51">51</a>, Child: <a href="#k140">140</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle style='fill: red;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 286.860 302.460 433.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w y))) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960' style='text-anchor: middle;'>plaindh 98</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x x-0 expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (4 0))+ (label 98)+ (parent 51)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k99">Item <a href="#t0">99</a>, Parent: <a href="#k53">53</a>, Child: <a href="#k141">141</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w y-0))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w y-0))</title>+ <circle style='fill: red;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 286.860 302.460 433.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w))) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960' style='text-anchor: middle;'>plaindh 99</text>+ </svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y h) (y-0 (exp (gen) (mul x w))))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y-0) (w-0 (mul x (rec y) w)) (y-2 y)+ (w-1 (mul w y-0)) (y-3 y-0) (w (mul w y-0))) (gen) (4 0))+ (label 99)+ (parent 53)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k100">Item <a href="#t0">100</a>, Parent: <a href="#k53">53</a>, Child: <a href="#k142">142</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w y-0))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w y-0))</title>+ <circle style='fill: red;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) w x x))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) w x x))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x x y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 286.860 302.460 433.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x x))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul w x x y-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x x))) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 100</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x x))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y h) (y-0 (exp (gen) (mul w x x))))+ (precur (4 0) (2 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (4 0))+ (label 100)+ (parent 53)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k101">Item <a href="#t0">101</a>, Parent: <a href="#k53">53</a>, Child: <a href="#k143">143</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 114.960 Q 392.730 114.232 245.701 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w y-0))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w y-0))</title>+ <circle style='fill: red;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0 y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 286.860 302.460 433.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w x-0 y-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w x-0))) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0 y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 101</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (x-0 y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w y-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 0) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))+ (label 101)+ (parent 53)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k102">Item <a href="#t0">102</a>, Parent: <a href="#k53">53</a>, Children: <a href="#k144">144</a> <a href="#k145">145</a> <a href="#k146">146</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) w)</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) w)</title>+ <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 286.860 302.460 433.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w))) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 102</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y-0 (exp (gen) (mul x w))) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-1) (4 0))+ (label 102)+ (parent 53)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k103">Item <a href="#t0">103</a>, Parent: <a href="#k53">53</a>, Child: <a href="#k147">147</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle style='fill: red;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 286.860 302.460 433.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w y))) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 103</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 3 resp 2) (exp (gen) y-1) (4 0))+ (label 103)+ (parent 53)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k104">Item <a href="#t0">104</a>, Parent: <a href="#k53">53</a>, Child: <a href="#k148">148</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h-0</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul w y-1))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul w y-1))</title>+ <circle style='fill: red;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w y-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w y-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y-0 y-1)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 286.860 302.460 433.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-1)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y-0 y-1)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y-0 y-1))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h-0) (y y-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w y-0))) (y y-1))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y-0 y-1))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 104</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y expn) (w expr) (y-0 y-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0 y-1))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y-0))) (y y-1))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w y-1)))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (2 0)))+ (absent (y-0 h-0) (y h) (y-1 (exp (gen) (mul x w y-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))+ (label 104)+ (parent 53)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k105">Item <a href="#t0">105</a>, Parent: <a href="#k54">54</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (rec x))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (rec x))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.158 299.718 42.396 409.477'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='189.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (gen))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (rec x))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>plaindh 105</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (rec x)))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (0 1))+ ((3 1) (2 0)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (added-listener x) (rec x) (2 0))+ (label 105)+ (parent 54)+ (unrealized (3 0))+ (comment "empty cohort"))</pre>++<p id="k106">Item <a href="#t0">106</a>, Parent: <a href="#k55">55</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) (rec x)))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) (rec x)))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.158 299.718 42.396 409.477'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='189.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (gen))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (rec x))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>plaindh 106</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (0 1))+ ((3 1) (2 0)))+ (precur (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul (rec x) (rec x)) (2 0))+ (label 106)+ (parent 55)+ (unrealized (3 0))+ (comment "empty cohort"))</pre>++<p id="k107">Item <a href="#t0">107</a>, Parent: <a href="#k60">60</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (rec x))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (rec x))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 114.960 Q 287.460 150.660 335.041 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 91.158 299.718 42.396 409.477'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x-0))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 107</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (rec x)))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 0) (1 0))+ ((2 0) (3 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (precur (3 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (3 0))+ (label 107)+ (parent 60)+ (unrealized (4 0))+ (comment "empty cohort"))</pre>++<p id="k108">Item <a href="#t0">108</a>, Parent: <a href="#k66">66</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 239.880 189.960 Q 286.860 189.960 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 87.540 150.660 135.121 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 108</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((2 1) (3 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y h))+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (3 0))+ (label 108)+ (parent 66)+ (unrealized (4 0))+ (comment "empty cohort"))</pre>++<p id="k109">Item <a href="#t0">109</a>, Parent: <a href="#k69">69</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) x)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>plaindh 109</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) x)) (x x))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (gen) (mul x x)))+ (deflistener x)+ (precedes ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (2 0)))+ (precur (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x x) (2 0))+ (label 109)+ (parent 69)+ (unrealized (3 0))+ (comment "empty cohort"))</pre>++<p id="k110">Item <a href="#t0">110</a>, Parent: <a href="#k72">72</a>, Children: <a href="#k149">149</a> <a href="#k150">150</a> <a href="#k151">151</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>plaindh 110</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test (contracted (x-0 x) (w-0 (mul x w)) (w-1 w))+ (gen) (3 0))+ (label 110)+ (parent 72)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k111">Item <a href="#t0">111</a>, Parent: <a href="#k72">72</a>, Children: <a href="#k152">152</a> <a href="#k153">153</a> <a href="#k154">154</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w x x))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w x x))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x x))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x x))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul w x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>plaindh 111</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x))) (x x))+ (deflistener (exp (gen) (mul w x x)))+ (deflistener (cat (gen) (mul w x x)))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (precur (3 0) (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (label 111)+ (parent 72)+ (unrealized (1 0) (2 0))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k112">Item <a href="#t0">112</a>, Parent: <a href="#k72">72</a>, Children: <a href="#k155">155</a> <a href="#k156">156</a> <a href="#k157">157</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 392.820 114.960 345.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 112</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)) ((4 0) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (label 112)+ (parent 72)+ (unrealized (1 0) (2 0))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k113">Item <a href="#t0">113</a>, Parent: <a href="#k72">72</a>, Children: <a href="#k158">158</a> <a href="#k159">159</a> <a href="#k160">160</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 113</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) w))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)) ((4 1) (3 0)))+ (absent (y h))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (3 0))+ (label 113)+ (parent 72)+ (unrealized (1 0) (2 0))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k114">Item <a href="#t0">114</a>, Parent: <a href="#k73">73</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>plaindh 114 (realized)</text></svg>+ </div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization deleted (1 0))+ (label 114)+ (parent 73)+ (unrealized)+ (shape)+ (maps ((0) ((x x) (h (exp (gen) w)) (n n))))+ (origs (n (0 2))))</pre>++<p id="k115">Item <a href="#t0">115</a>, Parent: <a href="#k79">79</a>, Children: <a href="#k161">161</a> <a href="#k162">162</a> <a href="#k163">163</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 115</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w-0 (mul x (rec x-0) w)) (x-2 x-0) (w-1 w))+ (gen) (4 0))+ (label 115)+ (parent 79)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k116">Item <a href="#t0">116</a>, Parent: <a href="#k79">79</a>, Children: <a href="#k164">164</a> <a href="#k165">165</a> <a href="#k166">166</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) w x-0 x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) w x-0 x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x-0 x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x-0 x-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 116</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x-0))+ (deflistener (exp (gen) (mul w x-0 x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) w))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-1) (4 0))+ (label 116)+ (parent 79)+ (unrealized (1 0) (2 0))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k117">Item <a href="#t0">117</a>, Parent: <a href="#k79">79</a>, Children: <a href="#k167">167</a> <a href="#k168">168</a> <a href="#k169">169</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 117</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) w))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 3 init 1) (exp (gen) x-1) (4 0))+ (label 117)+ (parent 79)+ (unrealized (1 0) (2 0))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k118">Item <a href="#t0">118</a>, Parent: <a href="#k79">79</a>, Children: <a href="#k170">170</a> <a href="#k171">171</a> <a href="#k172">172</a> <a href="#k173">173</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 114.960 Q 392.820 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 492.780 114.960 445.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) w)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) w)</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w x-1))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w x-1))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w x-1))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-1))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-1)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-1))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-1))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-1))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 118</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-1))) (x x))+ (deflistener (exp (gen) (mul x w x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) w))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (4 0))+ (label 118)+ (parent 79)+ (unrealized (1 0) (2 0))+ (comment "4 in cohort - 4 not yet seen"))</pre>++<p id="k119">Item <a href="#t0">119</a>, Parent: <a href="#k79">79</a>, Children: <a href="#k174">174</a> <a href="#k175">175</a> <a href="#k176">176</a> <a href="#k177">177</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 387.420 150.660 435.001 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 119</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x x-0 expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) w))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (4 0))+ (label 119)+ (parent 79)+ (unrealized (1 0) (2 0))+ (comment "4 in cohort - 4 not yet seen"))</pre>++<p id="k120">Item <a href="#t0">120</a>, Parent: <a href="#k85">85</a>, Children: <a href="#k178">178</a> <a href="#k179">179</a> <a href="#k180">180</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 120</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-0 (mul x (rec y) w)) (y-0 y) (w-1 w)) (gen)+ (4 0))+ (label 120)+ (parent 85)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k121">Item <a href="#t0">121</a>, Parent: <a href="#k85">85</a>, Children: <a href="#k181">181</a> <a href="#k182">182</a> <a href="#k183">183</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) w x x))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) w x x))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x x))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x x))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x x)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 121</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x))) (x x))+ (deflistener (exp (gen) (mul w x x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (4 0))+ (label 121)+ (parent 85)+ (unrealized (1 0) (2 0))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k122">Item <a href="#t0">122</a>, Parent: <a href="#k85">85</a>, Children: <a href="#k184">184</a> <a href="#k185">185</a> <a href="#k186">186</a> <a href="#k187">187</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 114.960 Q 392.730 114.232 245.701 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 492.180 150.660 444.599 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 122</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))+ (label 122)+ (parent 85)+ (unrealized (1 0) (2 0))+ (comment "4 in cohort - 4 not yet seen"))</pre>++<p id="k123">Item <a href="#t0">123</a>, Parent: <a href="#k85">85</a>, Children: <a href="#k188">188</a> <a href="#k189">189</a> <a href="#k190">190</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 123</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 3 resp 2) (exp (gen) y-0) (4 0))+ (label 123)+ (parent 85)+ (unrealized (1 0) (2 0))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k124">Item <a href="#t0">124</a>, Parent: <a href="#k85">85</a>, Children: <a href="#k191">191</a> <a href="#k192">192</a> <a href="#k193">193</a> <a href="#k194">194</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h-0</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) w)</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) w)</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w y-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w y-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w y-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h-0) (y y-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 124</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (deflistener (exp (gen) (mul x w y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (y-0 h-0) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))+ (label 124)+ (parent 85)+ (unrealized (1 0) (2 0))+ (comment "4 in cohort - 4 not yet seen"))</pre>++<p id="k125">Item <a href="#t0">125</a>, Parent: <a href="#k87">87</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='339.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 339.960 Q 392.820 339.960 345.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w y))</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 286.860 227.460 433.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul x w))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 125</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y (exp (gen) (mul x w))))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (label 125)+ (parent 87)+ (unrealized (2 0) (4 0))+ (comment "empty cohort"))</pre>++<p id="k126">Item <a href="#t0">126</a>, Parent: <a href="#k88">88</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='339.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 339.960 Q 392.820 339.960 345.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w x x))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w x x))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x x y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 286.860 227.460 433.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x x))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul w x x y)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x y))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul w x x))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 126</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x x))) (y y))+ (deflistener (cat (gen) (mul w x x)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y (exp (gen) (mul w x x))))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (label 126)+ (parent 88)+ (unrealized (1 0) (2 0) (4 0))+ (comment "empty cohort"))</pre>++<p id="k127">Item <a href="#t0">127</a>, Parent: <a href="#k89">89</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='264.960' x2='539.760' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='339.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 339.960 Q 442.800 302.460 345.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='539.760' cy='339.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='539.760' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0 y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 336.840 227.460 533.760 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w x-0 y)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 y))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w x-0))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0 y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 127</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 0) (2 0)) ((5 1) (3 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (precur (3 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (label 127)+ (parent 89)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k128">Item <a href="#t0">128</a>, Parent: <a href="#k90">90</a>, Child: <a href="#k195">195</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (one))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (gen)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul y (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>plaindh 128</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y (gen)))+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w (rec x))) (one) (2 0))+ (label 128)+ (parent 90)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k129">Item <a href="#t0">129</a>, Parent: <a href="#k90">90</a>, Child: <a href="#k196">196</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w (rec x)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w (rec x)))</title>+ <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) w)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>plaindh 129</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (x w) (y (exp (gen) w)))+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w) w (2 0))+ (label 129)+ (parent 90)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k130">Item <a href="#t0">130</a>, Parent: <a href="#k90">90</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='339.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 236.880 302.460 333.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul x w))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 130</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (2 0)))+ (absent (y (exp (gen) (mul x w))))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w) (2 0))+ (label 130)+ (parent 90)+ (unrealized (4 0))+ (comment "empty cohort"))</pre>++<p id="k131">Item <a href="#t0">131</a>, Parent: <a href="#k91">91</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='679.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 679.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='339.960' x2='539.760' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='414.960' x2='339.840' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 414.960 Q 442.800 377.460 345.840 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y-0</title><circle cx='539.760' cy='414.960' r='6.000'/></g>+ <g><title>y-0</title>+ <circle style='fill: red;' cx='539.760' cy='339.960' r='6.000'/></g>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 489.960 Q 192.900 452.460 45.960 489.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle cx='339.840' cy='489.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 639.960 Q 92.940 639.960 45.960 639.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='639.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='564.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 336.840 302.460 533.760 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='639.960' r='6.000'/></g>+ <path+ d='M 39.960 564.960 Q 86.940 564.960 133.920 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle cx='39.960' cy='564.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w y))) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 131</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (2 0)) ((5 1) (3 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (precur (3 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (3 0))+ (label 131)+ (parent 91)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k132">Item <a href="#t0">132</a>, Parent: <a href="#k92">92</a>, Seen Child: <a href="#k114">114</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y w x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y w))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul y w))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>plaindh 132 (realized)</text></svg>+ </div>++<pre>(defskeleton plaindh+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y w))) (x x))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (1 0)))+ (precur (1 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization forgot y)+ (label 132)+ (parent 92)+ (seen 114)+ (unrealized)+ (comment "1 in cohort - 0 not yet seen"))</pre>++<p id="k133">Item <a href="#t0">133</a>, Parent: <a href="#k93">93</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='264.960' x2='539.760' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 339.960 Q 492.780 339.960 445.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='539.760' cy='339.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='539.760' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w y))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 336.840 227.460 533.760 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 133</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul x w))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (label 133)+ (parent 93)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k134">Item <a href="#t0">134</a>, Parent: <a href="#k94">94</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='264.960' x2='539.760' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 339.960 Q 492.780 339.960 445.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='539.760' cy='339.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='539.760' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) w x-0 x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) w x-0 x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x-0 x-0 y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 336.840 227.460 533.760 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul w x-0 x-0 y)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 y))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0 x-0))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0 y))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 134</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x-0))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x-0 x-0))) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul w x-0 x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (label 134)+ (parent 94)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k135">Item <a href="#t0">135</a>, Parent: <a href="#k95">95</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='264.960' x2='539.760' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 339.960 Q 492.780 339.960 445.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='539.760' cy='339.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='539.760' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0 y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 336.840 227.460 533.760 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w x-0 y)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 y))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w x-0))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0 y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 135</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (label 135)+ (parent 95)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k136">Item <a href="#t0">136</a>, Parent: <a href="#k96">96</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='264.960' x2='639.720' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 339.960 Q 542.760 302.460 445.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='639.720' cy='339.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='639.720' cy='264.960' r='6.000'/></g>+ <path+ d='M 539.760 114.960 Q 392.820 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul w y))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul w y))</title>+ <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w x-1))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w x-1))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-1 y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 386.820 227.460 633.720 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-1))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w x-1 y)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-1 y))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-1))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w x-1))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-1 y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 136</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (x-1 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-1 y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-1))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w y)))+ (defstrand init 1 (x x-1))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((6 1) (4 0)))+ (absent (y (exp (gen) (mul x w x-1))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (label 136)+ (parent 96)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k137">Item <a href="#t0">137</a>, Parent: <a href="#k97">97</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec x) x-0))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec x) x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (one))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y x-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 286.860 227.460 433.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y (rec x) x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) x-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul y (rec x) x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 137</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (y x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x) x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (precur (4 0) (2 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (2 0))+ (label 137)+ (parent 97)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))</pre>++<p id="k138">Item <a href="#t0">138</a>, Parent: <a href="#k97">97</a>, Child: <a href="#k197">197</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w (rec x-0)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w (rec x-0)))</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 286.860 227.460 433.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y (rec x-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 138</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w (rec x-0))))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (x-0 (mul (rec x) w)) (y (exp (gen) w)))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w))+ (mul (rec x) w) (2 0))+ (label 138)+ (parent 97)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k139">Item <a href="#t0">139</a>, Parent: <a href="#k97">97</a>, Child: <a href="#k198">198</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w x-0))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y x-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 286.860 227.460 433.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w x-0))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 139</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w x-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (x-0 (mul x w)) (y (exp (gen) (mul x w x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w)) (mul x w) (2 0))+ (label 139)+ (parent 97)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k140">Item <a href="#t0">140</a>, Parent: <a href="#k98">98</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='679.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 679.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='339.960' x2='639.720' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='414.960' x2='439.800' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 414.960 Q 542.760 377.460 445.800 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y-0</title><circle cx='639.720' cy='414.960' r='6.000'/></g>+ <g><title>y-0</title>+ <circle style='fill: red;' cx='639.720' cy='339.960' r='6.000'/></g>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 489.960 Q 242.880 452.460 45.960 489.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle cx='439.800' cy='489.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='414.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 639.960 Q 92.940 639.960 45.960 639.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='639.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='564.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 386.820 302.460 633.720 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='639.960' r='6.000'/></g>+ <path+ d='M 39.960 564.960 Q 86.940 564.960 133.920 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle cx='39.960' cy='564.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w y))) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 140</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x x-0 expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((6 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (label 140)+ (parent 98)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k141">Item <a href="#t0">141</a>, Parent: <a href="#k99">99</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='679.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 679.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='339.960' x2='539.760' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='414.960' x2='439.800' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 414.960 Q 492.780 414.960 445.800 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y-0</title><circle cx='539.760' cy='414.960' r='6.000'/></g>+ <g><title>y-0</title>+ <circle style='fill: red;' cx='539.760' cy='339.960' r='6.000'/></g>+ <path+ d='M 439.800 489.960 Q 242.880 452.460 45.960 489.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w y-0))</title>+ <circle cx='439.800' cy='489.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w y-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='414.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 639.960 Q 92.940 639.960 45.960 639.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='639.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='564.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 336.840 302.460 533.760 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='639.960' r='6.000'/></g>+ <path+ d='M 39.960 564.960 Q 86.940 564.960 133.920 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y-0)))</title>+ <circle cx='39.960' cy='564.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w))) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 141</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w))))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (label 141)+ (parent 99)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k142">Item <a href="#t0">142</a>, Parent: <a href="#k100">100</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='679.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 679.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='339.960' x2='539.760' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='414.960' x2='439.800' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 414.960 Q 492.780 414.960 445.800 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y-0</title><circle cx='539.760' cy='414.960' r='6.000'/></g>+ <g><title>y-0</title>+ <circle style='fill: red;' cx='539.760' cy='339.960' r='6.000'/></g>+ <path+ d='M 439.800 489.960 Q 242.880 452.460 45.960 489.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w y-0))</title>+ <circle cx='439.800' cy='489.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w y-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='414.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) w x x))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) w x x))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 639.960 Q 92.940 639.960 45.960 639.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='639.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x x y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='564.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 336.840 302.460 533.760 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x x))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='639.960' r='6.000'/></g>+ <path+ d='M 39.960 564.960 Q 86.940 564.960 133.920 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul w x x y-0)))</title>+ <circle cx='39.960' cy='564.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x y-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x x))) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 142</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x x))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul w x x))))+ (precur (4 0) (2 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (label 142)+ (parent 100)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k143">Item <a href="#t0">143</a>, Parent: <a href="#k101">101</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='679.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 679.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='339.960' x2='639.720' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='414.960' x2='439.800' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 414.960 Q 542.760 377.460 445.800 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y-0</title><circle cx='639.720' cy='414.960' r='6.000'/></g>+ <g><title>y-0</title>+ <circle style='fill: red;' cx='639.720' cy='339.960' r='6.000'/></g>+ <path+ d='M 539.760 114.960 Q 392.730 114.232 245.701 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 489.960 Q 242.880 452.460 45.960 489.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w y-0))</title>+ <circle cx='439.800' cy='489.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w y-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='414.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 639.960 Q 92.940 639.960 45.960 639.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='639.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0 y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='564.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 386.820 302.460 633.720 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='639.960' r='6.000'/></g>+ <path+ d='M 39.960 564.960 Q 86.940 564.960 133.920 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w x-0 y-0)))</title>+ <circle cx='39.960' cy='564.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 y-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w x-0))) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0 y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 143</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (x-0 y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w y-0)))+ (defstrand init 1 (x x-0))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((6 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (label 143)+ (parent 101)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k144">Item <a href="#t0">144</a>, Parent: <a href="#k102">102</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec x) y-0))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec x) y-0))</title>+ <circle style='fill: red;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (one))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 286.860 302.460 433.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) y-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul y y-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y (rec x) y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) y-0)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul y (rec x) y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 144</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y x y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x) y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) y-0)) (y-0 h))+ (precur (4 0) (2 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (2 0))+ (label 144)+ (parent 102)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))</pre>++<p id="k145">Item <a href="#t0">145</a>, Parent: <a href="#k102">102</a>, Child: <a href="#k199">199</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul w (rec x)))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul w (rec x)))</title>+ <circle style='fill: red;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 286.860 302.460 433.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul w y-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y-0 (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 145</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (x (mul (rec y) w)) (y-0 (exp (gen) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w))+ (mul (rec y) w) (2 0))+ (label 145)+ (parent 102)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k146">Item <a href="#t0">146</a>, Parent: <a href="#k102">102</a>, Child: <a href="#k200">200</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle style='fill: red;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul x w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 286.860 302.460 433.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w y-0))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 146</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) (mul x w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y-0 (mul x w)) (y (exp (gen) (mul x w y-0))) (y-0 h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w)) (mul x w) (2 0))+ (label 146)+ (parent 102)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k147">Item <a href="#t0">147</a>, Parent: <a href="#k103">103</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='679.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 679.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='339.960' x2='539.760' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='414.960' x2='439.800' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 414.960 Q 492.780 414.960 445.800 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y-0</title><circle cx='539.760' cy='414.960' r='6.000'/></g>+ <g><title>y-0</title>+ <circle style='fill: red;' cx='539.760' cy='339.960' r='6.000'/></g>+ <path+ d='M 439.800 489.960 Q 242.880 452.460 45.960 489.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle cx='439.800' cy='489.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='414.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 639.960 Q 92.940 639.960 45.960 639.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='639.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='564.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 336.840 302.460 533.760 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='639.960' r='6.000'/></g>+ <path+ d='M 39.960 564.960 Q 86.940 564.960 133.920 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle cx='39.960' cy='564.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w y))) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 147</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (label 147)+ (parent 103)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k148">Item <a href="#t0">148</a>, Parent: <a href="#k104">104</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='679.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 679.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='339.960' x2='639.720' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='414.960' x2='439.800' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 414.960 Q 542.760 377.460 445.800 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y-1</title><circle cx='639.720' cy='414.960' r='6.000'/></g>+ <g><title>y-1</title>+ <circle style='fill: red;' cx='639.720' cy='339.960' r='6.000'/></g>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h-0</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 489.960 Q 242.880 452.460 45.960 489.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul w y-1))</title>+ <circle cx='439.800' cy='489.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul w y-1))</title>+ <circle style='fill: blue;' cx='439.800' cy='414.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w y-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w y-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 639.960 Q 92.940 639.960 45.960 639.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='639.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y-0 y-1)))</title>+ <circle style='fill: blue;' cx='139.920' cy='564.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 386.820 302.460 633.720 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-1)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='639.960' r='6.000'/></g>+ <path+ d='M 39.960 564.960 Q 86.940 564.960 133.920 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y-0 y-1)))</title>+ <circle cx='39.960' cy='564.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y-0 y-1))</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h-0) (y y-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w y-0))) (y y-1))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y-0 y-1))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 148</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y expn) (w expr) (y-0 y-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0 y-1))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y-0))) (y y-1))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w y-1)))+ (defstrand resp 2 (h h-0) (y y-0))+ (deflistener y-1)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((6 1) (4 0)))+ (absent (y-0 h-0) (y h) (y-1 (exp (gen) (mul x w y-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-listener y-1) (mul w y-1) (4 0))+ (label 148)+ (parent 104)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k149">Item <a href="#t0">149</a>, Parent: <a href="#k110">110</a>, Child: <a href="#k201">201</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (rec x))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (rec x))</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (one))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='264.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (gen))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (rec x))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>plaindh 149</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (gen) (rec x)))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test (contracted (x-0 x) (w (rec x))) (one) (2 0))+ (label 149)+ (parent 110)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k150">Item <a href="#t0">150</a>, Parent: <a href="#k110">110</a>, Child: <a href="#k202">202</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w (rec x)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w (rec x)))</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) w))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul w (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>plaindh 150</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (gen) (mul w (rec x))))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (absent (x w))+ (operation nonce-test (added-absence x w) w (2 0))+ (label 150)+ (parent 110)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k151">Item <a href="#t0">151</a>, Parent: <a href="#k110">110</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 151</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (gen) w))+ (deflistener x)+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test (added-listener x) (mul x w) (2 0))+ (label 151)+ (parent 110)+ (unrealized (4 0))+ (comment "empty cohort"))</pre>++<p id="k152">Item <a href="#t0">152</a>, Parent: <a href="#k111">111</a>, Child: <a href="#k203">203</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) (rec x)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) (rec x)))</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (one))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='264.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (gen))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (rec x))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>plaindh 152</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (precur (3 0) (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (contracted (w (mul (rec x) (rec x))) (x-0 x))+ (one) (2 0))+ (label 152)+ (parent 111)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k153">Item <a href="#t0">153</a>, Parent: <a href="#k111">111</a>, Child: <a href="#k204">204</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w (rec x) (rec x)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w (rec x) (rec x)))</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) w))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul w (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>plaindh 153</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (precur (3 0) (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (absent (x w))+ (operation nonce-test (added-absence x w) w (2 0))+ (label 153)+ (parent 111)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k154">Item <a href="#t0">154</a>, Parent: <a href="#k111">111</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w x x))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w x x))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x x))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x x))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul w x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 154</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x))) (x x))+ (deflistener (exp (gen) (mul w x x)))+ (deflistener (cat (gen) (mul w x x)))+ (deflistener (cat (exp (gen) x) w))+ (deflistener x)+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)))+ (precur (3 0) (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w x x) (2 0))+ (label 154)+ (parent 111)+ (unrealized (4 0))+ (comment "empty cohort"))</pre>++<p id="k155">Item <a href="#t0">155</a>, Parent: <a href="#k112">112</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 392.820 114.960 345.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul (rec x) (rec x-0)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul (rec x) (rec x-0)))</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (one))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='264.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (gen))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (rec x))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 155</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)) ((4 0) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w (mul (rec x) (rec x-0))) (x-2 x-0)) (one)+ (2 0))+ (label 155)+ (parent 112)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k156">Item <a href="#t0">156</a>, Parent: <a href="#k112">112</a>, Child: <a href="#k205">205</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 392.820 114.960 345.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w (rec x-0)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w (rec x-0)))</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w x))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w x))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x (rec x-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 156</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (defstrand init 1 (x x))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)) ((4 0) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul w x)))+ (operation nonce-test (added-absence x-0 (mul w x)) (mul w x) (2 0))+ (label 156)+ (parent 112)+ (unrealized (0 1) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k157">Item <a href="#t0">157</a>, Parent: <a href="#k112">112</a>, Child: <a href="#k206">206</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 392.820 114.960 345.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-0)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-0)))</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 157</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)) ((4 0) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul x w)))+ (operation nonce-test (added-absence x-0 (mul x w)) (mul x w) (2 0))+ (label 157)+ (parent 112)+ (unrealized (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k158">Item <a href="#t0">158</a>, Parent: <a href="#k113">113</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec x) (rec y)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec x) (rec y)))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (one))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='339.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (gen))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (rec x))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 158</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) y) (mul (rec x) (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)) ((4 1) (3 0)))+ (absent (y h))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w (mul (rec x) (rec y))) (y-0 y)) (one) (2 0))+ (label 158)+ (parent 113)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))</pre>++<p id="k159">Item <a href="#t0">159</a>, Parent: <a href="#k113">113</a>, Child: <a href="#k207">207</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w (rec x)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w (rec x)))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 159</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (w expr) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)) ((4 1) (3 0)))+ (absent (x (mul w y)) (y h))+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul w y)) (mul w y) (2 0))+ (label 159)+ (parent 113)+ (unrealized (0 1) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k160">Item <a href="#t0">160</a>, Parent: <a href="#k113">113</a>, Child: <a href="#k208">208</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w (rec y)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w (rec y)))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 160</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul w (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)) ((4 1) (3 0)))+ (absent (y (mul x w)) (y h))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w)) (mul x w) (2 0))+ (label 160)+ (parent 113)+ (unrealized (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k161">Item <a href="#t0">161</a>, Parent: <a href="#k115">115</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul (rec x) x-0))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul (rec x) x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (one))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x-0))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 161</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul (rec x) x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (2 0))+ (label 161)+ (parent 115)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))</pre>++<p id="k162">Item <a href="#t0">162</a>, Parent: <a href="#k115">115</a>, Child: <a href="#k209">209</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w (rec x-0)))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w (rec x-0)))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) w))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w (rec x-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 162</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (gen) (mul w (rec x-0))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul (rec x) w)))+ (operation nonce-test (added-absence x-0 (mul (rec x) w))+ (mul (rec x) w) (2 0))+ (label 162)+ (parent 115)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k163">Item <a href="#t0">163</a>, Parent: <a href="#k115">115</a>, Child: <a href="#k210">210</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w x-0))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 163</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul x w)))+ (operation nonce-test (added-absence x-0 (mul x w)) (mul x w) (2 0))+ (label 163)+ (parent 115)+ (unrealized (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k164">Item <a href="#t0">164</a>, Parent: <a href="#k116">116</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0)))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0)))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (one))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x (rec x-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 164</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w (mul x (rec x-0) (rec x-0))) (x-2 x-0)) (one)+ (2 0))+ (label 164)+ (parent 116)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))</pre>++<p id="k165">Item <a href="#t0">165</a>, Parent: <a href="#k116">116</a>, Child: <a href="#k211">211</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w x-0))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w x x))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w x x))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x x x-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 165</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x x-0))) (x x))+ (deflistener (exp (gen) (mul w x x x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w x x)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x) (mul w x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul w x x)))+ (operation nonce-test (added-absence x-0 (mul w x x)) (mul w x x)+ (2 0))+ (label 165)+ (parent 116)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k166">Item <a href="#t0">166</a>, Parent: <a href="#k116">116</a>, Child: <a href="#k212">212</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0)))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0)))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) w))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w (rec x-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 166</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul (rec x) w)))+ (operation nonce-test (added-absence x-0 (mul (rec x) w))+ (mul (rec x) w) (2 0))+ (label 166)+ (parent 116)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k167">Item <a href="#t0">167</a>, Parent: <a href="#k117">117</a>, Child: <a href="#k213">213</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (rec x-0))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (rec x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (one))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x (rec x-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 167</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (rec x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (contracted (x-1 x-0) (w (rec x-0))) (one)+ (2 0))+ (label 167)+ (parent 117)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k168">Item <a href="#t0">168</a>, Parent: <a href="#k117">117</a>, Child: <a href="#k214">214</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w (rec x-0)))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w (rec x-0)))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x (rec x-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 168</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) w))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 w))+ (operation nonce-test (added-absence x-0 w) w (2 0))+ (label 168)+ (parent 117)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k169">Item <a href="#t0">169</a>, Parent: <a href="#k117">117</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 169</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) w))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w) (2 0))+ (label 169)+ (parent 117)+ (unrealized (5 0))+ (comment "empty cohort"))</pre>++<p id="k170">Item <a href="#t0">170</a>, Parent: <a href="#k118">118</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 114.960 Q 392.820 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 492.780 114.960 445.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1)))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1)))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (one))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x-0))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-1))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 170</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-2 x) (x-3 x-0) (w (mul (rec x) x-0 (rec x-1)))+ (x-4 x-1)) (one) (2 0))+ (label 170)+ (parent 118)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))</pre>++<p id="k171">Item <a href="#t0">171</a>, Parent: <a href="#k118">118</a>, Child: <a href="#k215">215</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 114.960 Q 392.820 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 492.780 114.960 445.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-1)))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-1)))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) w x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) w x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x-0)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 (rec x-1)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g>+ <title>((n n) (h (exp (gen) (mul w x-0 (rec x-1)))) (x x-1))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 171</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 (rec x-1)))) (x x-1))+ (deflistener (exp (gen) (mul w x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-1))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (absent (x-1 (mul (rec x) w x-0)))+ (operation nonce-test (added-absence x-1 (mul (rec x) w x-0))+ (mul (rec x) w x-0) (2 0))+ (label 171)+ (parent 118)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k172">Item <a href="#t0">172</a>, Parent: <a href="#k118">118</a>, Child: <a href="#k216">216</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 114.960 Q 392.820 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 492.780 114.960 445.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w x-1))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w x-1))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul x w x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul x w x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w x-0 x-1))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0 x-1))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0 x-1)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 x-1))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-1))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0 x-1))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 172</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 x-1))) (x x))+ (deflistener (exp (gen) (mul x w x-0 x-1)))+ (deflistener (cat (exp (gen) x-1) (mul x w x-0)))+ (defstrand init 1 (x x-1))+ (deflistener (cat (exp (gen) x-0) (mul w x-1)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (absent (x-1 (mul x w x-0)))+ (operation nonce-test (added-absence x-1 (mul x w x-0)) (mul x w x-0)+ (2 0))+ (label 172)+ (parent 118)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k173">Item <a href="#t0">173</a>, Parent: <a href="#k118">118</a>, Child: <a href="#k217">217</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 114.960 Q 392.820 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 492.780 114.960 445.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 189.960 Q 242.880 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul w (rec x-1)))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul w (rec x-1)))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-1))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 173</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (absent (x-1 (mul x (rec x-0) w)))+ (operation nonce-test (added-absence x-1 (mul x (rec x-0) w))+ (mul x (rec x-0) w) (2 0))+ (label 173)+ (parent 118)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k174">Item <a href="#t0">174</a>, Parent: <a href="#k119">119</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec x) x-0 (rec y)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec x) x-0 (rec y)))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 387.420 150.660 435.001 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (one))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x-0))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 174</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0 (rec y))) (y-0 y))+ (one) (2 0))+ (label 174)+ (parent 119)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))</pre>++<p id="k175">Item <a href="#t0">175</a>, Parent: <a href="#k119">119</a>, Child: <a href="#k218">218</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w (rec x-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w (rec x-0)))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 387.420 150.660 435.001 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y (rec x-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 175</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w y)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w (rec x-0))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (x-0 (mul (rec x) w y)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w y))+ (mul (rec x) w y) (2 0))+ (label 175)+ (parent 119)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k176">Item <a href="#t0">176</a>, Parent: <a href="#k119">119</a>, Child: <a href="#k219">219</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 387.420 150.660 435.001 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w y x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y x-0))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 176</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y x-0))) (x x))+ (deflistener (exp (gen) (mul x w y x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w x-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (x-0 (mul x w y)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w y)) (mul x w y)+ (2 0))+ (label 176)+ (parent 119)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k177">Item <a href="#t0">177</a>, Parent: <a href="#k119">119</a>, Child: <a href="#k220">220</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w (rec y)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w (rec y)))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 387.420 150.660 435.001 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 177</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x x-0 expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (y (mul x (rec x-0) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x (rec x-0) w))+ (mul x (rec x-0) w) (2 0))+ (label 177)+ (parent 119)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k178">Item <a href="#t0">178</a>, Parent: <a href="#k120">120</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul (rec x) y))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (one))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 178</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul (rec x) y)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul (rec x) y)))+ (one) (2 0))+ (label 178)+ (parent 120)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))</pre>++<p id="k179">Item <a href="#t0">179</a>, Parent: <a href="#k120">120</a>, Child: <a href="#k221">221</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w (rec x)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w (rec x)))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) w))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 179</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w (rec x))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (x (mul (rec y) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w))+ (mul (rec y) w) (2 0))+ (label 179)+ (parent 120)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k180">Item <a href="#t0">180</a>, Parent: <a href="#k120">120</a>, Child: <a href="#k222">222</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w y))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w y))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 180</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y (mul x w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w)) (mul x w) (2 0))+ (label 180)+ (parent 120)+ (unrealized (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k181">Item <a href="#t0">181</a>, Parent: <a href="#k121">121</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul y (rec x) (rec x)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul y (rec x) (rec x)))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (one))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul y (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 181</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test+ (contracted (y-0 y) (w (mul y (rec x) (rec x))) (x-0 x)) (one)+ (2 0))+ (label 181)+ (parent 121)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))</pre>++<p id="k182">Item <a href="#t0">182</a>, Parent: <a href="#k121">121</a>, Child: <a href="#k223">223</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w x x))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w x x))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x x y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x x y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 182</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (w expr) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x y))) (x x))+ (deflistener (exp (gen) (mul w x x y)))+ (deflistener (cat (exp (gen) y) (mul w x x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y (mul w x x)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul w x x)) (mul w x x) (2 0))+ (label 182)+ (parent 121)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k183">Item <a href="#t0">183</a>, Parent: <a href="#k121">121</a>, Child: <a href="#k224">224</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w (rec x) (rec x)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w (rec x) (rec x)))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) w))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 183</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (x (mul (rec y) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w))+ (mul (rec y) w) (2 0))+ (label 183)+ (parent 121)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k184">Item <a href="#t0">184</a>, Parent: <a href="#k122">122</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 114.960 Q 392.730 114.232 245.701 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 492.180 150.660 444.599 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (one))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 184</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (y-0 y) (w (mul (rec x) y (rec x-0))) (x-2 x-0))+ (one) (2 0))+ (label 184)+ (parent 122)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))</pre>++<p id="k185">Item <a href="#t0">185</a>, Parent: <a href="#k122">122</a>, Child: <a href="#k225">225</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 114.960 Q 392.730 114.232 245.701 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 492.180 150.660 444.599 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w (rec x-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w (rec x-0)))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) w x))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) w x))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x (rec x-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 185</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (defstrand init 1 (x x))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (absent (x-0 (mul (rec y) w x)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec y) w x))+ (mul (rec y) w x) (2 0))+ (label 185)+ (parent 122)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k186">Item <a href="#t0">186</a>, Parent: <a href="#k122">122</a>, Child: <a href="#k226">226</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 114.960 Q 392.730 114.232 245.701 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 492.180 150.660 444.599 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x w x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x w x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w x-0 y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0 y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0 y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0 y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 186</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (deflistener (exp (gen) (mul x w x-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (absent (y (mul x w x-0)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w x-0)) (mul x w x-0)+ (2 0))+ (label 186)+ (parent 122)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k187">Item <a href="#t0">187</a>, Parent: <a href="#k122">122</a>, Child: <a href="#k227">227</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 114.960 Q 392.730 114.232 245.701 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 492.180 150.660 444.599 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-0)))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 187</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (absent (x-0 (mul x (rec y) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x (rec y) w))+ (mul x (rec y) w) (2 0))+ (label 187)+ (parent 122)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k188">Item <a href="#t0">188</a>, Parent: <a href="#k123">123</a>, Child: <a href="#k228">228</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (one))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul y (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 188</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w (rec x))) (one) (2 0))+ (label 188)+ (parent 123)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k189">Item <a href="#t0">189</a>, Parent: <a href="#k123">123</a>, Child: <a href="#k229">229</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w (rec x)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w (rec x)))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 189</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (w expr) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (x w) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w) w (2 0))+ (label 189)+ (parent 123)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k190">Item <a href="#t0">190</a>, Parent: <a href="#k123">123</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x w))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 236.931 114.407 433.903 188.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 190</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) w))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w) (2 0))+ (label 190)+ (parent 123)+ (unrealized (5 0))+ (comment "empty cohort"))</pre>++<p id="k191">Item <a href="#t0">191</a>, Parent: <a href="#k124">124</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h-0</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (one))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul (rec x) y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h-0) (y y-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 191</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (y-0 h-0) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y) (w (mul (rec x) y (rec y-0))) (y-2 y-0))+ (one) (2 0))+ (label 191)+ (parent 124)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))</pre>++<p id="k192">Item <a href="#t0">192</a>, Parent: <a href="#k124">124</a>, Child: <a href="#k230">230</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h-0</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul w (rec x)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul w (rec x)))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) w y-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) w y-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y-0 (rec x)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h-0) (y y-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 192</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h h-0 base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (x (mul (rec y) w y-0)) (y-0 h-0) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w y-0))+ (mul (rec y) w y-0) (2 0))+ (label 192)+ (parent 124)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k193">Item <a href="#t0">193</a>, Parent: <a href="#k124">124</a>, Child: <a href="#k231">231</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h-0</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul x w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul x w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w y y-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y y-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h-0) (y y))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((h h) (y y-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 193</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h h-0 base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (deflistener (exp (gen) (mul x w y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w y)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h-0) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (y-0 (mul x w y)) (y h-0) (y-0 h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w y)) (mul x w y)+ (2 0))+ (label 193)+ (parent 124)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k194">Item <a href="#t0">194</a>, Parent: <a href="#k124">124</a>, Child: <a href="#k232">232</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h-0</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul w (rec y-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul w (rec y-0)))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h-0) (y y-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 194</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec y-0))))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (y-0 (mul x (rec y) w)) (y-0 h-0) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x (rec y) w))+ (mul x (rec y) w) (2 0))+ (label 194)+ (parent 124)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k195">Item <a href="#t0">195</a>, Parent: <a href="#k128">128</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.220 225.660 344.639 261.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (one))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y (rec x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (gen)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul y (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 195</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 3) (0 3)) ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y (gen)))+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (3 0))+ (label 195)+ (parent 128)+ (unrealized (4 0))+ (comment "empty cohort"))</pre>++<p id="k196">Item <a href="#t0">196</a>, Parent: <a href="#k129">129</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.220 225.660 344.639 261.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w (rec x)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w (rec x)))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y (rec x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) w)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 196</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 3) (0 3)) ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (x w) (y (exp (gen) w)))+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (3 0))+ (label 196)+ (parent 129)+ (unrealized (4 0))+ (comment "empty cohort"))</pre>++<p id="k197">Item <a href="#t0">197</a>, Parent: <a href="#k138">138</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.180 225.660 444.599 261.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-0</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x-0</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w (rec x-0)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w (rec x-0)))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 286.860 227.460 433.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y (rec x-0)))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 197</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (4 0))+ ((1 3) (0 3)) ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1))+ ((5 1) (4 0)))+ (absent (x-0 (mul (rec x) w)) (y (exp (gen) w)))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (4 0))+ (label 197)+ (parent 138)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k198">Item <a href="#t0">198</a>, Parent: <a href="#k139">139</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.180 225.660 444.599 261.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-0</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x-0</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w x-0))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w x-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y x-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 286.860 227.460 433.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 414.960 Q 86.940 414.960 133.920 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w x-0))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 198</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w x-0)))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 1))+ ((5 1) (4 0)))+ (absent (x-0 (mul x w)) (y (exp (gen) (mul x w x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w x-0) (4 0))+ (label 198)+ (parent 139)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k199">Item <a href="#t0">199</a>, Parent: <a href="#k145">145</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 491.444 262.464 443.127 334.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul w (rec x)))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul w (rec x)))</title>+ <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 286.860 302.460 433.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul w y-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y-0 (rec x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (y y-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 199</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (4 0))+ ((1 3) (0 3)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1))+ ((5 1) (4 0)))+ (absent (x (mul (rec y) w)) (y-0 (exp (gen) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (4 0))+ (label 199)+ (parent 145)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k200">Item <a href="#t0">200</a>, Parent: <a href="#k146">146</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 604.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='339.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 264.960 Q 492.180 300.660 444.599 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y-0</title><circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>y-0</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 436.800 152.460 533.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul x w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='139.920' cy='564.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 286.860 302.460 433.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>+ <path+ d='M 39.960 489.960 Q 86.940 489.960 133.920 489.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x w y-0))) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 200</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) (mul x w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((3 1) (5 0)) ((4 1) (0 1))+ ((5 1) (4 0)))+ (absent (y-0 (mul x w)) (y (exp (gen) (mul x w y-0))) (y-0 h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (label 200)+ (parent 146)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k201">Item <a href="#t0">201</a>, Parent: <a href="#k149">149</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (rec x))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (rec x))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (one))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='264.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (gen))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (rec x))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 201</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (gen) (rec x)))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test (added-listener x) (rec x) (3 0))+ (label 201)+ (parent 149)+ (unrealized (4 0))+ (comment "empty cohort"))</pre>++<p id="k202">Item <a href="#t0">202</a>, Parent: <a href="#k150">150</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w (rec x)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w (rec x)))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) w))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w (rec x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul w (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 202</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (gen) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (absent (x w))+ (operation nonce-test (added-listener x) (mul w (rec x)) (3 0))+ (label 202)+ (parent 150)+ (unrealized (4 0))+ (comment "empty cohort"))</pre>++<p id="k203">Item <a href="#t0">203</a>, Parent: <a href="#k152">152</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) (rec x)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) (rec x)))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (one))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='264.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (gen))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (rec x))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 203</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul (rec x) (rec x)) (3 0))+ (label 203)+ (parent 152)+ (unrealized (4 0))+ (comment "empty cohort"))</pre>++<p id="k204">Item <a href="#t0">204</a>, Parent: <a href="#k153">153</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w (rec x) (rec x)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w (rec x) (rec x)))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) w))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w (rec x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (h (exp (gen) (mul w (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>plaindh 204</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (absent (x w))+ (operation nonce-test (added-listener x) (mul w (rec x) (rec x))+ (3 0))+ (label 204)+ (parent 153)+ (unrealized (4 0))+ (comment "empty cohort"))</pre>++<p id="k205">Item <a href="#t0">205</a>, Parent: <a href="#k156">156</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 442.800 152.460 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-0</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x-0</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 392.220 150.660 344.639 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w (rec x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w (rec x-0)))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w x))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w x))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x (rec x-0)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 205</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (defstrand init 1 (x x))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)) ((4 0) (3 0)) ((5 1) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul w x)))+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (3 0))+ (label 205)+ (parent 156)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k206">Item <a href="#t0">206</a>, Parent: <a href="#k157">157</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 442.800 152.460 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-0</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x-0</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 486.780 114.960 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-0)))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.990 114.232 334.019 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 206</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0))))+ (defstrand init 1 (x x-0))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)) ((4 0) (5 0)) ((5 1) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul x w)))+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (3 0))+ (label 206)+ (parent 157)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k207">Item <a href="#t0">207</a>, Parent: <a href="#k159">159</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 442.800 152.460 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w (rec x)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w (rec x)))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y (rec x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 207</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (w expr) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (defstrand resp 2 (h h) (y y))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)) ((4 1) (3 0)) ((5 1) (3 0)))+ (absent (x (mul w y)) (y h))+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (3 0))+ (label 207)+ (parent 159)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k208">Item <a href="#t0">208</a>, Parent: <a href="#k160">160</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='264.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 264.960 Q 442.800 227.460 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 189.960 Q 486.780 189.960 533.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w (rec y)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w (rec y)))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 91.604 412.464 43.287 484.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.990 189.232 334.019 263.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 208</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul w (rec y))))+ (defstrand resp 2 (h h) (y y))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)) ((4 1) (5 0)) ((5 1) (3 0)))+ (absent (y (mul x w)) (y h))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w (rec y)) (3 0))+ (label 208)+ (parent 160)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k209">Item <a href="#t0">209</a>, Parent: <a href="#k162">162</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-0</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x-0</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w (rec x-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w (rec x-0)))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 387.420 150.660 435.001 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) w))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w (rec x-0)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 209</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (gen) (mul w (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul (rec x) w)))+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (4 0))+ (label 209)+ (parent 162)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k210">Item <a href="#t0">210</a>, Parent: <a href="#k163">163</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-0</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x-0</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.931 114.407 433.903 188.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 210</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w x-0)))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul x w)))+ (operation nonce-test (added-listener x-0) (mul w x-0) (4 0))+ (label 210)+ (parent 163)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k211">Item <a href="#t0">211</a>, Parent: <a href="#k165">165</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-0</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x-0</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w x-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w x x))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w x x))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x x x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.931 114.407 433.903 188.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 211</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x x-0))) (x x))+ (deflistener (exp (gen) (mul w x x x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w x x)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x) (mul w x-0)))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul w x x)))+ (operation nonce-test (added-listener x-0) (mul w x-0) (4 0))+ (label 211)+ (parent 165)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k212">Item <a href="#t0">212</a>, Parent: <a href="#k166">166</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-0</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x-0</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0)))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 387.420 150.660 435.001 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) w))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w (rec x-0)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 212</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul (rec x) w)))+ (operation nonce-test (added-listener x-0) (mul w (rec x-0) (rec x-0))+ (4 0))+ (label 212)+ (parent 166)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k213">Item <a href="#t0">213</a>, Parent: <a href="#k167">167</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-0</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x-0</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (rec x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (rec x-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 387.420 150.660 435.001 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (one))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) x))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x (rec x-0)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 213</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (rec x-0)))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (rec x-0) (4 0))+ (label 213)+ (parent 167)+ (unrealized (5 0))+ (comment "empty cohort"))</pre>++<p id="k214">Item <a href="#t0">214</a>, Parent: <a href="#k168">168</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-0</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x-0</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w (rec x-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w (rec x-0)))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 387.420 150.660 435.001 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x (rec x-0)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 214</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) w))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 w))+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (4 0))+ (label 214)+ (parent 168)+ (unrealized (5 0))+ (comment "empty cohort"))</pre>++<p id="k215">Item <a href="#t0">215</a>, Parent: <a href="#k171">171</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 542.760 152.460 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-1</title><circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>x-1</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 114.960 Q 392.820 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 492.180 150.660 444.599 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-1)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-1)))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 387.420 150.660 435.001 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) w x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) w x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 (rec x-1)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g>+ <title>((n n) (h (exp (gen) (mul w x-0 (rec x-1)))) (x x-1))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 215</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 (rec x-1)))) (x x-1))+ (deflistener (exp (gen) (mul w x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-1))))+ (defstrand init 1 (x x-0))+ (deflistener x-1)+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)) ((6 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (absent (x-1 (mul (rec x) w x-0)))+ (operation nonce-test (added-listener x-1) (mul w (rec x-1)) (4 0))+ (label 215)+ (parent 171)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k216">Item <a href="#t0">216</a>, Parent: <a href="#k172">172</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 542.760 152.460 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-1</title><circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>x-1</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 114.960 Q 392.820 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 492.180 150.660 444.599 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w x-1))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w x-1))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 486.780 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul x w x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul x w x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w x-0 x-1))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0 x-1))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0 x-1)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 x-1))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.931 114.407 433.903 188.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-1))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0 x-1))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 216</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 x-1))) (x x))+ (deflistener (exp (gen) (mul x w x-0 x-1)))+ (deflistener (cat (exp (gen) x-1) (mul x w x-0)))+ (defstrand init 1 (x x-1))+ (deflistener (cat (exp (gen) x-0) (mul w x-1)))+ (defstrand init 1 (x x-0))+ (deflistener x-1)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)) ((6 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (absent (x-1 (mul x w x-0)))+ (operation nonce-test (added-listener x-1) (mul w x-1) (4 0))+ (label 216)+ (parent 172)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k217">Item <a href="#t0">217</a>, Parent: <a href="#k173">173</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 542.760 152.460 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-1</title><circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>x-1</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 114.960 Q 392.820 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 586.740 114.960 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul w (rec x-1)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul w (rec x-1)))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 387.420 150.660 435.001 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.931 114.407 433.903 188.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-1))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 217</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w (rec x-1))))+ (defstrand init 1 (x x-1))+ (deflistener x-1)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (6 0)) ((6 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (absent (x-1 (mul x (rec x-0) w)))+ (operation nonce-test (added-listener x-1) (mul w (rec x-1)) (4 0))+ (label 217)+ (parent 173)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k218">Item <a href="#t0">218</a>, Parent: <a href="#k175">175</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 542.760 152.460 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-0</title><circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>x-0</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w (rec x-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w (rec x-0)))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 387.420 150.660 435.001 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y (rec x-0)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 218</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w y)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w (rec x-0))))+ (defstrand resp 2 (h h) (y y))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)) ((6 1) (4 0)))+ (absent (x-0 (mul (rec x) w y)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (4 0))+ (label 218)+ (parent 175)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k219">Item <a href="#t0">219</a>, Parent: <a href="#k176">176</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 542.760 152.460 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-0</title><circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>x-0</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w x-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 486.780 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w y x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y x-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 219</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y x-0))) (x x))+ (deflistener (exp (gen) (mul x w y x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)) ((6 1) (4 0)))+ (absent (x-0 (mul x w y)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w x-0) (4 0))+ (label 219)+ (parent 176)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k220">Item <a href="#t0">220</a>, Parent: <a href="#k177">177</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='189.960' x2='639.720' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 264.960 Q 542.760 227.460 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='639.720' cy='264.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='639.720' cy='189.960' r='6.000'/></g>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 586.740 189.960 633.720 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w (rec y)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w (rec y)))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 388.156 187.464 436.473 259.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 91.604 412.464 43.287 484.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.931 189.407 433.903 263.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 220</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x x-0 expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w (rec y))))+ (defstrand resp 2 (h h) (y y))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (6 0)) ((6 1) (4 0)))+ (absent (y (mul x (rec x-0) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w (rec y)) (4 0))+ (label 220)+ (parent 177)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k221">Item <a href="#t0">221</a>, Parent: <a href="#k179">179</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w (rec x)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w (rec x)))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) w))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w (rec x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 221</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (x (mul (rec y) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (4 0))+ (label 221)+ (parent 179)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k222">Item <a href="#t0">222</a>, Parent: <a href="#k180">180</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w y))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 436.800 152.460 533.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 91.604 412.464 43.287 484.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.931 189.407 433.903 263.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 222</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (5 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (mul x w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (label 222)+ (parent 180)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k223">Item <a href="#t0">223</a>, Parent: <a href="#k182">182</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 436.800 152.460 533.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w x x))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w x x))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 91.604 412.464 43.287 484.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x x y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x x y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x y))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.931 189.407 433.903 263.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 223</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (w expr) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x y))) (x x))+ (deflistener (exp (gen) (mul w x x y)))+ (deflistener (cat (exp (gen) y) (mul w x x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (5 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (mul w x x)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (label 223)+ (parent 182)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k224">Item <a href="#t0">224</a>, Parent: <a href="#k183">183</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w (rec x) (rec x)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w (rec x) (rec x)))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) w))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w (rec x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 224</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (x (mul (rec y) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x) (rec x))+ (4 0))+ (label 224)+ (parent 183)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k225">Item <a href="#t0">225</a>, Parent: <a href="#k185">185</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 542.760 152.460 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-0</title><circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>x-0</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 114.960 Q 392.730 114.232 245.701 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 492.180 150.660 444.599 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w (rec x-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w (rec x-0)))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) w x))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) w x))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w x)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x (rec x-0)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 225</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (defstrand init 1 (x x))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)) ((6 1) (4 0)))+ (absent (x-0 (mul (rec y) w x)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (4 0))+ (label 225)+ (parent 185)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k226">Item <a href="#t0">226</a>, Parent: <a href="#k186">186</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='189.960' x2='639.720' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 264.960 Q 542.760 227.460 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='639.720' cy='264.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='639.720' cy='189.960' r='6.000'/></g>+ <path+ d='M 539.760 114.960 Q 392.730 114.232 245.701 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 491.444 187.464 443.127 259.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w y))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 486.780 152.460 633.720 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x w x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x w x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 91.604 412.464 43.287 484.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w x-0 y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w x-0 y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w x-0 y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0 y))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.931 189.407 433.903 263.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w x-0 y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 226</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (deflistener (exp (gen) (mul x w x-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (6 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)) ((6 1) (4 0)))+ (absent (y (mul x w x-0)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (label 226)+ (parent 186)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k227">Item <a href="#t0">227</a>, Parent: <a href="#k187">187</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 542.760 152.460 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x-0</title><circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>x-0</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 114.960 Q 392.730 114.232 245.701 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 114.960 Q 586.740 114.960 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul w (rec x-0)))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 227</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0))))+ (defstrand init 1 (x x-0))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (6 0)) ((6 1) (4 0)))+ (absent (x-0 (mul x (rec y) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (4 0))+ (label 227)+ (parent 187)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k228">Item <a href="#t0">228</a>, Parent: <a href="#k188">188</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (rec x))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (one))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (one))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y (rec x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul y (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 228</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (4 0))+ (label 228)+ (parent 188)+ (unrealized (5 0))+ (comment "empty cohort"))</pre>++<p id="k229">Item <a href="#t0">229</a>, Parent: <a href="#k189">189</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w (rec x)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w (rec x)))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y (rec x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>plaindh 229</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h base) (w expr) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (x w) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (4 0))+ (label 229)+ (parent 189)+ (unrealized (5 0))+ (comment "empty cohort"))</pre>++<p id="k230">Item <a href="#t0">230</a>, Parent: <a href="#k192">192</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 542.760 152.460 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h-0</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul w (rec x)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul w (rec x)))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 386.820 189.960 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) w y-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) w y-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul w y-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y-0 (rec x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((h h-0) (y y-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 230</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h h-0 base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (defstrand resp 2 (h h-0) (y y-0))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)) ((6 1) (4 0)))+ (absent (x (mul (rec y) w y-0)) (y-0 h-0) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (4 0))+ (label 230)+ (parent 192)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k231">Item <a href="#t0">231</a>, Parent: <a href="#k193">193</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='189.960' x2='639.720' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 264.960 Q 542.760 227.460 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y-0</title><circle cx='639.720' cy='264.960' r='6.000'/></g>+ <g><title>y-0</title>+ <circle style='fill: red;' cx='639.720' cy='189.960' r='6.000'/></g>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 492.180 225.660 444.599 261.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h-0</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 486.780 152.460 633.720 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul x w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul x w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 91.604 412.464 43.287 484.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w y y-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w y y-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w y y-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.931 189.407 433.903 263.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h-0) (y y))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((h h) (y y-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) (mul w y y-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 231</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h h-0 base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (deflistener (exp (gen) (mul x w y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w y)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h-0) (y y))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (6 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)) ((6 1) (4 0)))+ (absent (y-0 (mul x w y)) (y h-0) (y-0 h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (label 231)+ (parent 193)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k232">Item <a href="#t0">232</a>, Parent: <a href="#k194">194</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='189.960' x2='639.720' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 264.960 Q 542.760 227.460 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y-0</title><circle cx='639.720' cy='264.960' r='6.000'/></g>+ <g><title>y-0</title>+ <circle style='fill: red;' cx='639.720' cy='189.960' r='6.000'/></g>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 539.760 189.960 Q 586.740 189.960 633.720 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y-0)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>h-0</title>+ <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul w (rec y-0)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul w (rec y-0)))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 387.420 225.660 435.001 261.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) w))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 91.604 412.464 43.287 484.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x w))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x w))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>+ <g><title>(enc n (exp (gen) (mul x w)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.931 189.407 433.903 263.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((h h-0) (y y-0))</title>+ <text x='539.760' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((n n) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>plaindh 232</text></svg></div>++<pre>(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec y-0))))+ (defstrand resp 2 (h h-0) (y y-0))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (6 0)) ((6 1) (4 0)))+ (absent (y-0 (mul x (rec y) w)) (y-0 h-0) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w (rec y-0)) (4 0))+ (label 232)+ (parent 194)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))</pre>++</body>+</html>
doc/examples/priority_test.xhtml view
@@ -1,5 +1,5 @@ <?xml version="1.0"?>-<!-- CPSA 3.2.2 -->+<!-- CPSA 3.4.0 --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Receive priority test protocol</title>@@ -11,7 +11,7 @@ <body> <pre>(herald "Receive priority test protocol")-(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from priority_test.scm")</pre> <p id="top">Trees: <a href="#t0">0</a> <a href="#t3">3</a>.</p>
doc/examples/station.scm view
@@ -1,19 +1,29 @@-(herald "Station-to-station protocol" (algebra diffie-hellman)-; (limit 1)-)+; Station-to-station +; This is an authenticated form of a Diffie-Hellman key exchange.++; The file contains two different models of the station-to-station+; protocol. In the first, an assumption is made that *any* initiator+; or responder properly picks a fresh random exponent and does not+; allow it to be obtained by the adversary.++; In the second, we do not include this assumption, and as a result,+; less can be guaranteed.++(herald "Station-to-station protocol" (algebra diffie-hellman))+ (defprotocol station-to-station diffie-hellman (defrole init (vars (x expn) (h base) (a b name))- (trace - (send (exp (gen) x)) + (trace+ (send (exp (gen) x)) (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x)))) (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))) (uniq-gen x)) (defrole resp (vars (y expn) (h base) (a b name))- (trace - (recv h) + (trace+ (recv h) (send (cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b)) (exp h y)))) (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))) (uniq-gen y))@@ -31,3 +41,34 @@ (non-orig (privk a) (privk b)) ) +(defprotocol station-weak diffie-hellman+ (defrole weak-init+ (vars (x expn) (h base) (a b name))+ (trace+ (send (exp (gen) x))+ (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))+ (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))+ )+ (defrole weak-resp+ (vars (y expn) (h base) (a b name))+ (trace+ (recv h)+ (send (cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b)) (exp h y))))+ (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))+ (absent (y h))+ )+)++(defskeleton station-weak+ (vars (a b name) (x expn))+ (defstrand weak-init 3 (a a) (b b) (x x))+ (uniq-gen x)+ (non-orig (privk b) (privk a))+)++(defskeleton station-weak+ (vars (a b name) (y expn))+ (defstrand weak-resp 3 (a a) (b b) (y y))+ (uniq-gen y)+ (non-orig (privk a) (privk b))+)
doc/examples/station.xhtml view
@@ -1,1484 +1,15235 @@ <?xml version="1.0"?>-<!-- CPSA 3.2.2 -->-<html xmlns="http://www.w3.org/1999/xhtml">-<head>- <title>Station-to-station protocol</title>- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />- <style>- svg.diagram { border-width: 1px; border-style: solid }- </style>-</head>-<body>--<pre>(herald "Station-to-station protocol" (algebra diffie-hellman))-(comment "CPSA 3.2.2")-(comment "All input read from station_to_station.scm")</pre>--<p id="top">Trees: <a href="#t0">0</a> <a href="#t9">9</a>.</p>--<p id="t0">Tree <a href="#top">0</a>.</p>--<div>- <svg- class='diagram' width='279.600pt' height='304.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 279.600 304.920' font-size='12.000'>- <text- x='189.720' y='251.040' style='text-anchor: middle; fill: red;'- onclick='window.open("#k7", "_self")'>7</text>- <line- x1='139.800' y1='227.460' x2='189.720' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='239.640' y='176.040' style='text-anchor: middle; fill: red;'- onclick='window.open("#k8", "_self")'>8</text>- <line- x1='189.720' y1='189.960' x2='239.640' y2='189.960'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='189.720' y='176.040' style='text-anchor: middle; fill: red;'- onclick='window.open("#k6", "_self")'>6</text>- <line- x1='139.800' y1='227.460' x2='189.720' y2='189.960'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='139.800' y='213.540' style='text-anchor: middle; fill: red;'- onclick='window.open("#k5", "_self")'>5</text>- <line- x1='89.880' y1='227.460' x2='139.800' y2='227.460'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='89.880' y='213.540' style='text-anchor: middle; fill: red;'- onclick='window.open("#k3", "_self")'>3</text>- <line- x1='39.960' y1='152.460' x2='89.880' y2='227.460'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='89.880' y='101.040'- style='font-weight: bold; text-anchor: middle; fill: blue;'- onclick='window.open("#k2", "_self")'>2</text>- <line- x1='39.960' y1='152.460' x2='89.880' y2='114.960'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='139.800' y='26.040' style='text-anchor: middle; fill: red;'- onclick='window.open("#k4", "_self")'>4</text>- <line- x1='89.880' y1='39.960' x2='139.800' y2='39.960'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='89.880' y='26.040' style='text-anchor: middle; fill: red;'- onclick='window.open("#k1", "_self")'>1</text>- <line- x1='39.960' y1='152.460' x2='89.880' y2='39.960'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='39.960' y='138.540' style='text-anchor: middle; fill: black;'- onclick='window.open("#k0", "_self")'>0</text>- </svg></div>--<pre>(defprotocol station-to-station diffie-hellman- (defrole init- (vars (x expn) (h base) (a b name))- (trace (send (exp (gen) x))- (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))- (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))- (uniq-gen x))- (defrole resp- (vars (y expn) (h base) (a b name))- (trace (recv h)- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) h (privk b)) (exp h y))))- (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))- (uniq-gen y)- (ind-zero-in (y h))))</pre>--<p id="k0">Item <a href="#t0">0</a>, Children: <a href="#k1">1</a> <a href="#k2">2</a> <a href="#k3">3</a>.</p>--<div>- <svg- class='diagram' width='79.920pt' height='304.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 79.920 304.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='39.960' y1='114.960' x2='39.960' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <g><title>(enc (enc (exp (gen) x) h (privk a)) (exp h x))</title>- <circle cx='39.960' cy='264.960' r='6.000'/></g>- <g>- <title>(cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x)))</title>- <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) x)</title>- <circle cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a a) (b b) (h h) (x x))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <text- x='39.960' y='39.960'- style='text-anchor: middle;'>station-to-station 0</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b name) (h base) (x expn))- (defstrand init 3 (a a) (b b) (h h) (x x))- (non-orig (privk a) (privk b))- (uniq-gen x)- (label 0)- (unrealized (0 1))- (origs)- (comment "3 in cohort - 3 not yet seen"))</pre>--<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k4">4</a>.</p>--<div>- <svg- class='diagram' width='179.880pt' height='379.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 179.880 379.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='139.920' y1='114.960' x2='139.920' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='189.960' x2='39.960' y2='339.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>- <circle cx='139.920' cy='264.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>- <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) x-0)</title>- <circle cx='139.920' cy='114.960' r='6.000'/></g>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>- <circle cx='39.960' cy='339.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>- <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>- <path- d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x)</title>- <circle cx='39.960' cy='189.960' r='6.000'/></g>- <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>- <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <text- x='89.940' y='39.960'- style='text-anchor: middle;'>station-to-station 1</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b b-0 name) (x x-0 expn))- (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))- (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))- (precedes ((0 0) (1 1)) ((1 2) (0 1)))- (non-orig (privk a) (privk b))- (uniq-gen x x-0)- (operation encryption-test (added-strand init 3)- (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))- (exp (gen) (mul x x-0))) (0 1))- (label 1)- (parent 0)- (unrealized (1 1))- (comment "1 in cohort - 1 not yet seen"))</pre>--<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k0">0</a>.</p>--<div>- <svg- class='diagram' width='179.880pt' height='304.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 179.880 304.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='139.920' y1='114.960' x2='139.920' y2='189.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>- <circle cx='139.920' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) x)</title>- <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>- <circle cx='39.960' cy='264.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>- <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>- <path- d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x)</title>- <circle cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((b b) (h (exp (gen) x)) (y y))</title>- <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>- </g>- <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <text- x='89.940' y='39.960'- style='text-anchor: middle;'>station-to-station 2 (realized)</text>- </svg></div>--<pre>(defskeleton station-to-station- (vars (a b name) (x y expn))- (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))- (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen x y)- (operation encryption-test (added-strand resp 2)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b))- (exp (gen) (mul x y))) (0 1))- (label 2)- (parent 0)- (unrealized)- (shape)- (maps ((0) ((a a) (b b) (x x) (h (exp (gen) y)))))- (origs))</pre>--<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k5">5</a>.</p>--<div>- <svg- class='diagram' width='179.880pt' height='304.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 179.880 304.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='139.920' y1='114.960' x2='139.920' y2='189.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp h x)</title>- <circle cx='139.920' cy='189.960' r='6.000'/></g>- <g><title>(exp h x)</title>- <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>- <g><title>(enc (enc (exp (gen) x) h (privk a)) (exp h x))</title>- <circle cx='39.960' cy='264.960' r='6.000'/></g>- <g>- <title>(cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x)))</title>- <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>- <path- d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x)</title>- <circle cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a a) (b b) (h h) (x x))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <text- x='89.940' y='39.960'- style='text-anchor: middle;'>station-to-station 3</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b name) (h base) (x expn))- (defstrand init 3 (a a) (b b) (h h) (x x))- (deflistener (exp h x))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (non-orig (privk a) (privk b))- (uniq-gen x)- (operation encryption-test (added-listener (exp h x))- (enc (enc h (exp (gen) x) (privk b)) (exp h x)) (0 1))- (label 3)- (parent 0)- (unrealized (0 1) (1 0))- (comment "1 in cohort - 1 not yet seen"))</pre>--<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k1">1</a>.</p>--<div>- <svg- class='diagram' width='279.840pt' height='379.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 279.840 379.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='239.880' y1='114.960' x2='239.880' y2='189.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='139.920' y1='114.960' x2='139.920' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='339.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) (mul x x-0))</title>- <circle cx='239.880' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) (mul x x-0))</title>- <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>- <path- d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>- <circle cx='139.920' cy='264.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>- <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>- <path- d='M 139.920 114.960 Q 186.900 114.960 233.880 114.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x-0)</title>- <circle cx='139.920' cy='114.960' r='6.000'/></g>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>- <circle cx='39.960' cy='339.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>- <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>- <path- d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x)</title>- <circle cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>- <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <text- x='139.920' y='39.960'- style='text-anchor: middle;'>station-to-station 4</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b b-0 name) (x x-0 expn))- (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))- (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))- (deflistener (exp (gen) (mul x x-0)))- (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))- (non-orig (privk a) (privk b))- (uniq-gen x x-0)- (operation encryption-test (added-listener (exp (gen) (mul x x-0)))- (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))- (exp (gen) (mul x x-0))) (1 1))- (label 4)- (parent 1)- (unrealized (2 0))- (comment "empty cohort"))</pre>--<p id="k5">Item <a href="#t0">5</a>, Parent: <a href="#k3">3</a>, Children: <a href="#k6">6</a> <a href="#k7">7</a>.</p>--<div>- <svg- class='diagram' width='179.880pt' height='304.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 179.880 304.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='139.920' y1='114.960' x2='139.920' y2='189.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) (mul x x-0))</title>- <circle cx='139.920' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) (mul x x-0))</title>- <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>- <circle cx='39.960' cy='264.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>- <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>- <path- d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x)</title>- <circle cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <text- x='89.940' y='39.960'- style='text-anchor: middle;'>station-to-station 5</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b name) (x expn) (x-0 expr))- (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))- (deflistener (exp (gen) (mul x x-0)))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (non-orig (privk a) (privk b))- (uniq-gen x)- (operation nonce-test (algebra-contracted (h (exp (gen) x-0)))- (exp (gen) (mul x x-0)) (1 0) (exp (gen) x))- (label 5)- (parent 3)- (unrealized (0 1))- (comment "2 in cohort - 2 not yet seen"))</pre>--<p id="k6">Item <a href="#t0">6</a>, Parent: <a href="#k5">5</a>, Child: <a href="#k8">8</a>.</p>--<div>- <svg- class='diagram' width='279.840pt' height='379.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 279.840 379.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='239.880' y1='114.960' x2='239.880' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='139.920' y1='114.960' x2='139.920' y2='189.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='339.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>- <circle cx='239.880' cy='264.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>- <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>- <path- d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x-0)</title>- <circle cx='239.880' cy='114.960' r='6.000'/></g>- <path- d='M 139.920 189.960 Q 92.340 225.660 44.759 261.359'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) (mul x x-0))</title>- <circle cx='139.920' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) (mul x x-0))</title>- <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>- <circle cx='39.960' cy='339.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>- <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>- <path- d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <path- d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x)</title>- <circle cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>- <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <text- x='139.920' y='39.960'- style='text-anchor: middle;'>station-to-station 6</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b b-0 name) (x x-0 expn))- (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))- (deflistener (exp (gen) (mul x x-0)))- (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))- (precedes ((0 0) (1 0)) ((0 0) (2 1)) ((1 1) (0 1)) ((2 0) (1 0))- ((2 2) (0 1)))- (non-orig (privk a) (privk b))- (uniq-gen x x-0)- (operation encryption-test (added-strand init 3)- (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))- (label 6)- (parent 5)- (unrealized (1 0) (2 1))- (comment "1 in cohort - 1 not yet seen"))</pre>--<p id="k7">Item <a href="#t0">7</a>, Parent: <a href="#k5">5</a>.</p>--<div>- <svg- class='diagram' width='279.840pt' height='379.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 279.840 379.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='239.880' y1='114.960' x2='239.880' y2='189.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='139.920' y1='189.960' x2='139.920' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='339.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>- <circle cx='239.880' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) x)</title>- <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>- <path- d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) (mul x y))</title>- <circle cx='139.920' cy='264.960' r='6.000'/></g>- <g><title>(exp (gen) (mul x y))</title>- <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>- <circle cx='39.960' cy='339.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>- <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>- <path- d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x)</title>- <circle cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((b b) (h (exp (gen) x)) (y y))</title>- <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>- </g>- <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <text- x='139.920' y='39.960'- style='text-anchor: middle;'>station-to-station 7</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b name) (x y expn))- (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))- (deflistener (exp (gen) (mul x y)))- (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))- (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen x y)- (operation encryption-test (added-strand resp 2)- (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))- (label 7)- (parent 5)- (unrealized (1 0))- (comment "empty cohort"))</pre>--<p id="k8">Item <a href="#t0">8</a>, Parent: <a href="#k6">6</a>.</p>--<div>- <svg- class='diagram' width='379.800pt' height='379.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 379.800 379.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='339.840' y1='114.960' x2='339.840' y2='189.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='239.880' y1='114.960' x2='239.880' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='139.920' y1='114.960' x2='139.920' y2='189.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='339.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) (mul x x-0))</title>- <circle cx='339.840' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) (mul x x-0))</title>- <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>- <path- d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>- <circle cx='239.880' cy='264.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>- <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>- <path- d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <path- d='M 239.880 114.960 Q 286.860 114.960 333.840 114.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x-0)</title>- <circle cx='239.880' cy='114.960' r='6.000'/></g>- <path- d='M 139.920 189.960 Q 92.340 225.660 44.759 261.359'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) (mul x x-0))</title>- <circle cx='139.920' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) (mul x x-0))</title>- <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>- <circle cx='39.960' cy='339.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>- <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>- <path- d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <path- d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x)</title>- <circle cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>- <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <text- x='189.900' y='39.960'- style='text-anchor: middle;'>station-to-station 8</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b b-0 name) (x x-0 expn))- (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))- (deflistener (exp (gen) (mul x x-0)))- (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))- (deflistener (exp (gen) (mul x x-0)))- (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 0) (1 0))- ((2 0) (3 0)) ((2 2) (0 1)) ((3 1) (2 1)))- (non-orig (privk a) (privk b))- (uniq-gen x x-0)- (operation encryption-test (added-listener (exp (gen) (mul x x-0)))- (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))- (exp (gen) (mul x x-0))) (2 1))- (label 8)- (parent 6)- (unrealized (1 0) (3 0))- (comment "empty cohort"))</pre>--<p id="t9">Tree <a href="#top">9</a>.</p>--<div>- <svg- class='diagram' width='279.600pt' height='304.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 279.600 304.920' font-size='12.000'>- <text- x='239.640' y='251.040' style='text-anchor: middle; fill: red;'- onclick='window.open("#k17", "_self")'>17</text>- <line- x1='189.720' y1='227.460' x2='239.640' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='239.640' y='176.040' style='text-anchor: middle; fill: red;'- onclick='window.open("#k16", "_self")'>16</text>- <line- x1='189.720' y1='227.460' x2='239.640' y2='189.960'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='189.720' y='213.540' style='text-anchor: middle; fill: red;'- onclick='window.open("#k15", "_self")'>15</text>- <line- x1='139.800' y1='227.460' x2='189.720' y2='227.460'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='139.800' y='213.540' style='text-anchor: middle; fill: red;'- onclick='window.open("#k14", "_self")'>14</text>- <line- x1='89.880' y1='227.460' x2='139.800' y2='227.460'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='89.880' y='213.540' style='text-anchor: middle; fill: red;'- onclick='window.open("#k11", "_self")'>11</text>- <line- x1='39.960' y1='152.460' x2='89.880' y2='227.460'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='139.800' y='101.040' style='text-anchor: middle; fill: red;'- onclick='window.open("#k13", "_self")'>13</text>- <line- x1='89.880' y1='77.460' x2='139.800' y2='114.960'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='139.800' y='26.040'- style='font-weight: bold; text-anchor: middle; fill: blue;'- onclick='window.open("#k12", "_self")'>12</text>- <line- x1='89.880' y1='77.460' x2='139.800' y2='39.960'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='89.880' y='63.540' style='text-anchor: middle; fill: black;'- onclick='window.open("#k10", "_self")'>10</text>- <line- x1='39.960' y1='152.460' x2='89.880' y2='77.460'- style='stroke-width: 0.960; stroke: gray;'/>- <text- x='39.960' y='138.540' style='text-anchor: middle; fill: black;'- onclick='window.open("#k9", "_self")'>9</text>- </svg></div>--<pre>(defprotocol station-to-station diffie-hellman- (defrole init- (vars (x expn) (h base) (a b name))- (trace (send (exp (gen) x))- (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))- (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))- (uniq-gen x))- (defrole resp- (vars (y expn) (h base) (a b name))- (trace (recv h)- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) h (privk b)) (exp h y))))- (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))- (uniq-gen y)- (ind-zero-in (y h))))</pre>--<p id="k9">Item <a href="#t9">9</a>, Children: <a href="#k10">10</a> <a href="#k11">11</a>.</p>--<div>- <svg- class='diagram' width='79.920pt' height='304.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 79.920 304.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='39.960' y1='114.960' x2='39.960' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <g><title>(enc (enc h (exp (gen) y) (privk a)) (exp h y))</title>- <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b)) (exp h y)))</title>- <circle cx='39.960' cy='189.960' r='6.000'/></g>- <g><title>h</title>- <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a a) (b b) (h h) (y y))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>- </g>- <text- x='39.960' y='39.960'- style='text-anchor: middle;'>station-to-station 9</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b name) (h base) (y expn))- (defstrand resp 3 (a a) (b b) (h h) (y y))- (ind-zero-in (y h))- (non-orig (privk a) (privk b))- (uniq-gen y)- (label 9)- (unrealized (0 2))- (origs)- (comment "2 in cohort - 2 not yet seen"))</pre>--<p id="k10">Item <a href="#t9">10</a>, Parent: <a href="#k9">9</a>, Children: <a href="#k12">12</a> <a href="#k13">13</a>.</p>--<div>- <svg- class='diagram' width='179.880pt' height='304.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 179.880 304.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='139.920' y1='114.960' x2='139.920' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>- <circle cx='139.920' cy='264.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>- <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>- <path- d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x)</title>- <circle cx='139.920' cy='114.960' r='6.000'/></g>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>- <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>- <path- d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>- <circle cx='39.960' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) x)</title>- <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>- <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>- </g>- <text- x='89.940' y='39.960'- style='text-anchor: middle;'>station-to-station 10</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b b-0 name) (y x expn))- (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))- (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))- (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x)- (operation encryption-test (added-strand init 3)- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul y x))) (0 2))- (label 10)- (parent 9)- (unrealized (1 1))- (comment "2 in cohort - 2 not yet seen"))</pre>--<p id="k11">Item <a href="#t9">11</a>, Parent: <a href="#k9">9</a>, Child: <a href="#k14">14</a>.</p>--<div>- <svg- class='diagram' width='179.880pt' height='304.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 179.880 304.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='139.920' y1='189.960' x2='139.920' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp h y)</title>- <circle cx='139.920' cy='264.960' r='6.000'/></g>- <g><title>(exp h y)</title>- <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>- <g><title>(enc (enc h (exp (gen) y) (privk a)) (exp h y))</title>- <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>- <path- d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b)) (exp h y)))</title>- <circle cx='39.960' cy='189.960' r='6.000'/></g>- <g><title>h</title>- <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a a) (b b) (h h) (y y))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>- </g>- <text- x='89.940' y='39.960'- style='text-anchor: middle;'>station-to-station 11</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b name) (h base) (y expn))- (defstrand resp 3 (a a) (b b) (h h) (y y))- (deflistener (exp h y))- (precedes ((0 1) (1 0)) ((1 1) (0 2)))- (ind-zero-in (y h))- (non-orig (privk a) (privk b))- (uniq-gen y)- (operation encryption-test (added-listener (exp h y))- (enc (enc h (exp (gen) y) (privk a)) (exp h y)) (0 2))- (label 11)- (parent 9)- (unrealized (0 2) (1 0))- (comment "1 in cohort - 1 not yet seen"))</pre>--<p id="k12">Item <a href="#t9">12</a>, Parent: <a href="#k10">10</a>.</p>--<div>- <svg- class='diagram' width='179.880pt' height='304.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 179.880 304.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='139.920' y1='114.960' x2='139.920' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>- <circle cx='139.920' cy='264.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>- <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>- <path- d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x)</title>- <circle cx='139.920' cy='114.960' r='6.000'/></g>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>- <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>- <path- d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>- <circle cx='39.960' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) x)</title>- <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>- <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>- </g>- <text- x='89.940' y='39.960'- style='text-anchor: middle;'>station-to-station 12 (realized)</text>- </svg></div>--<pre>(defskeleton station-to-station- (vars (a b name) (x y expn))- (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))- (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))- (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen x y)- (operation encryption-test (displaced 2 0 resp 2)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))- (exp (gen) (mul x y))) (1 1))- (label 12)- (parent 10)- (unrealized)- (shape)- (maps ((0) ((a a) (b b) (y y) (h (exp (gen) x)))))- (origs))</pre>--<p id="k13">Item <a href="#t9">13</a>, Parent: <a href="#k10">10</a>.</p>--<div>- <svg- class='diagram' width='279.840pt' height='379.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 279.840 379.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='239.880' y1='189.960' x2='239.880' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='139.920' y1='114.960' x2='139.920' y2='339.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='339.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) (mul y x))</title>- <circle cx='239.880' cy='264.960' r='6.000'/></g>- <g><title>(exp (gen) (mul y x))</title>- <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>- <path- d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>- <circle cx='139.920' cy='339.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>- <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>- <path- d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x)</title>- <circle cx='139.920' cy='114.960' r='6.000'/></g>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>- <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>- <path- d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>- <circle cx='39.960' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) x)</title>- <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>- <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>- </g>- <text- x='139.920' y='39.960'- style='text-anchor: middle;'>station-to-station 13</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b b-0 name) (y x expn))- (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))- (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))- (deflistener (exp (gen) (mul y x)))- (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x)- (operation encryption-test (added-listener (exp (gen) (mul y x)))- (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))- (exp (gen) (mul y x))) (1 1))- (label 13)- (parent 10)- (unrealized (2 0))- (comment "empty cohort"))</pre>--<p id="k14">Item <a href="#t9">14</a>, Parent: <a href="#k11">11</a>, Child: <a href="#k15">15</a>.</p>--<div>- <svg- class='diagram' width='179.880pt' height='304.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 179.880 304.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='139.920' y1='189.960' x2='139.920' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) (mul y y-0))</title>- <circle cx='139.920' cy='264.960' r='6.000'/></g>- <g><title>(exp (gen) (mul y y-0))</title>- <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>- <g>- <title>(enc (enc (exp (gen) y-0) (exp (gen) y) (privk a)) (exp (gen) (mul y y-0)))</title>- <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>- <path- d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) y-0) (privk b)) (exp (gen) (mul y y-0))))</title>- <circle cx='39.960' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) y-0)</title>- <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a a) (b b) (h (exp (gen) y-0)) (y y))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>- </g>- <text- x='89.940' y='39.960'- style='text-anchor: middle;'>station-to-station 14</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b name) (y expn) (y-0 expr))- (defstrand resp 3 (a a) (b b) (h (exp (gen) y-0)) (y y))- (deflistener (exp (gen) (mul y y-0)))- (precedes ((0 1) (1 0)) ((1 1) (0 2)))- (ind-zero-in (y (exp (gen) y-0)))- (non-orig (privk a) (privk b))- (uniq-gen y)- (operation nonce-test (algebra-contracted (h (exp (gen) y-0)))- (exp (gen) (mul y y-0)) (1 0) (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) y-0) (privk b))- (exp (gen) (mul y y-0))))- (label 14)- (parent 11)- (unrealized (0 2))- (comment "1 in cohort - 1 not yet seen"))</pre>--<p id="k15">Item <a href="#t9">15</a>, Parent: <a href="#k14">14</a>, Children: <a href="#k16">16</a> <a href="#k17">17</a>.</p>--<div>- <svg- class='diagram' width='279.840pt' height='304.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 279.840 304.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='239.880' y1='114.960' x2='239.880' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='139.920' y1='189.960' x2='139.920' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>- <circle cx='239.880' cy='264.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>- <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>- <path- d='M 239.880 114.960 Q 142.920 77.460 45.960 114.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x)</title>- <circle cx='239.880' cy='114.960' r='6.000'/></g>- <path- d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) (mul y x))</title>- <circle cx='139.920' cy='264.960' r='6.000'/></g>- <g><title>(exp (gen) (mul y x))</title>- <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>- <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>- <path- d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <path- d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>- <circle cx='39.960' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) x)</title>- <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>- <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>- </g>- <text- x='139.920' y='39.960'- style='text-anchor: middle;'>station-to-station 15</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b b-0 name) (y x expn))- (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))- (deflistener (exp (gen) (mul y x)))- (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))- (precedes ((0 1) (1 0)) ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0))- ((2 2) (0 2)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x)- (operation encryption-test (added-strand init 3)- (enc (exp (gen) x) (exp (gen) y) (privk a)) (0 2))- (label 15)- (parent 14)- (unrealized (1 0) (2 1))- (comment "2 in cohort - 2 not yet seen"))</pre>--<p id="k16">Item <a href="#t9">16</a>, Parent: <a href="#k15">15</a>.</p>--<div>- <svg- class='diagram' width='279.840pt' height='304.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 279.840 304.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='239.880' y1='114.960' x2='239.880' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='139.920' y1='189.960' x2='139.920' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>- <circle cx='239.880' cy='264.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>- <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>- <path- d='M 239.880 114.960 Q 142.920 77.460 45.960 114.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x)</title>- <circle cx='239.880' cy='114.960' r='6.000'/></g>- <path- d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) (mul x y))</title>- <circle cx='139.920' cy='264.960' r='6.000'/></g>- <g><title>(exp (gen) (mul x y))</title>- <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>- <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>- <path- d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <path- d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>- <circle cx='39.960' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) x)</title>- <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>- <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>- </g>- <text- x='139.920' y='39.960'- style='text-anchor: middle;'>station-to-station 16</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b name) (x y expn))- (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))- (deflistener (exp (gen) (mul x y)))- (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))- (precedes ((0 1) (1 0)) ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0))- ((2 2) (0 2)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen x y)- (operation encryption-test (displaced 3 0 resp 2)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))- (exp (gen) (mul x y))) (2 1))- (label 16)- (parent 15)- (unrealized (1 0))- (comment "empty cohort"))</pre>--<p id="k17">Item <a href="#t9">17</a>, Parent: <a href="#k15">15</a>.</p>--<div>- <svg- class='diagram' width='379.800pt' height='379.920pt'- xmlns='http://www.w3.org/2000/svg' version='1.1'- viewBox='0 0 379.800 379.920' font-size='12.000'>- <defs>- <marker- id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'- refY='5'>- <path- d='M 0 0 5 5 0 10'- style='stroke-width: 2; fill: none; stroke: black;'/></marker>- </defs>- <line- x1='339.840' y1='189.960' x2='339.840' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='239.880' y1='114.960' x2='239.880' y2='339.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='139.920' y1='189.960' x2='139.920' y2='264.960'- style='stroke-width: 0.960; stroke: gray;'/>- <line- x1='39.960' y1='114.960' x2='39.960' y2='339.960'- style='stroke-width: 0.960; stroke: gray;'/>- <path- d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) (mul y x))</title>- <circle cx='339.840' cy='264.960' r='6.000'/></g>- <g><title>(exp (gen) (mul y x))</title>- <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>- <path- d='M 239.880 339.960 Q 142.920 302.460 45.960 339.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>- <circle cx='239.880' cy='339.960' r='6.000'/></g>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>- <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>- <path- d='M 239.880 114.960 Q 142.920 77.460 45.960 114.960'- style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) x)</title>- <circle cx='239.880' cy='114.960' r='6.000'/></g>- <path- d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g><title>(exp (gen) (mul y x))</title>- <circle cx='139.920' cy='264.960' r='6.000'/></g>- <g><title>(exp (gen) (mul y x))</title>- <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>- <g>- <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>- <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>- <path- d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <path- d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'- style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>- <g>- <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>- <circle cx='39.960' cy='189.960' r='6.000'/></g>- <g><title>(exp (gen) x)</title>- <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>- <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>- <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>- </g>- <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>- <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>- </g>- <text- x='189.900' y='39.960'- style='text-anchor: middle;'>station-to-station 17</text></svg></div>--<pre>(defskeleton station-to-station- (vars (a b b-0 name) (y x expn))- (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))- (deflistener (exp (gen) (mul y x)))- (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))- (deflistener (exp (gen) (mul y x)))- (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 0) (0 0))- ((2 2) (0 2)) ((3 1) (2 1)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x)- (operation encryption-test (added-listener (exp (gen) (mul y x)))- (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))- (exp (gen) (mul y x))) (2 1))- (label 17)- (parent 15)- (unrealized (1 0) (3 0))- (comment "empty cohort"))</pre>+<!-- CPSA 3.4.0 -->+<html xmlns="http://www.w3.org/1999/xhtml">+<head>+ <title>Station-to-station protocol</title>+ <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />+ <style>+ svg.diagram { border-width: 1px; border-style: solid }+ </style>+</head>+<body>++<pre>(herald "Station-to-station protocol" (algebra diffie-hellman))+(comment "CPSA 3.4.0")+(comment "All input read from station.scm")</pre>++<p id="top">Trees: <a href="#t0">0</a> <a href="#t67">67</a> <a href="#t96">96</a> <a href="#t127">127</a>.</p>++<p id="t0">Tree <a href="#top">0</a>.</p>++<div>+ <svg+ class='diagram' width='429.360pt' height='3154.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 429.360 3154.920' font-size='12.000'>+ <text+ x='239.640' y='3101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k29", "_self")'>29</text>+ <line+ x1='189.720' y1='2852.460' x2='239.640' y2='3114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='3026.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k28", "_self")'>28</text>+ <line+ x1='189.720' y1='2852.460' x2='239.640' y2='3039.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='2951.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k66", "_self")'>66</text>+ <line+ x1='339.480' y1='2777.460' x2='389.400' y2='2964.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='2876.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k65", "_self")'>65</text>+ <line+ x1='339.480' y1='2777.460' x2='389.400' y2='2889.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='2801.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k64", "_self")'>64</text>+ <line+ x1='339.480' y1='2777.460' x2='389.400' y2='2814.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='2726.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k63", "_self")'>63</text>+ <line+ x1='339.480' y1='2777.460' x2='389.400' y2='2739.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='2651.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k62", "_self")'>62</text>+ <line+ x1='339.480' y1='2777.460' x2='389.400' y2='2664.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='2576.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k61", "_self")'>61</text>+ <line+ x1='339.480' y1='2777.460' x2='389.400' y2='2589.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='2763.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k39", "_self")'>39</text>+ <line+ x1='289.560' y1='2777.460' x2='339.480' y2='2777.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='2763.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k34", "_self")'>34</text>+ <line+ x1='239.640' y1='2777.460' x2='289.560' y2='2777.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='2763.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k27", "_self")'>27</text>+ <line+ x1='189.720' y1='2852.460' x2='239.640' y2='2777.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='2838.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k14", "_self")'>14</text>+ <line+ x1='139.800' y1='1952.460' x2='189.720' y2='2852.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='2501.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k26", "_self")'>26</text>+ <line+ x1='189.720' y1='2102.460' x2='239.640' y2='2514.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='2426.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k60", "_self")'>60</text>+ <line+ x1='339.480' y1='2252.460' x2='389.400' y2='2439.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='2351.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k59", "_self")'>59</text>+ <line+ x1='339.480' y1='2252.460' x2='389.400' y2='2364.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='2276.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k58", "_self")'>58</text>+ <line+ x1='339.480' y1='2252.460' x2='389.400' y2='2289.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='2201.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k57", "_self")'>57</text>+ <line+ x1='339.480' y1='2252.460' x2='389.400' y2='2214.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='2126.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k56", "_self")'>56</text>+ <line+ x1='339.480' y1='2252.460' x2='389.400' y2='2139.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='2051.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k55", "_self")'>55</text>+ <line+ x1='339.480' y1='2252.460' x2='389.400' y2='2064.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='2238.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k38", "_self")'>38</text>+ <line+ x1='289.560' y1='2252.460' x2='339.480' y2='2252.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='2238.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k33", "_self")'>33</text>+ <line+ x1='239.640' y1='2252.460' x2='289.560' y2='2252.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='2238.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k25", "_self")'>25</text>+ <line+ x1='189.720' y1='2102.460' x2='239.640' y2='2252.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1976.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k54", "_self")'>54</text>+ <line+ x1='339.480' y1='1839.960' x2='389.400' y2='1989.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1901.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k53", "_self")'>53</text>+ <line+ x1='339.480' y1='1839.960' x2='389.400' y2='1914.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1826.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k52", "_self")'>52</text>+ <line+ x1='339.480' y1='1839.960' x2='389.400' y2='1839.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1751.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k51", "_self")'>51</text>+ <line+ x1='339.480' y1='1839.960' x2='389.400' y2='1764.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1676.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k50", "_self")'>50</text>+ <line+ x1='339.480' y1='1839.960' x2='389.400' y2='1689.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='1826.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k37", "_self")'>37</text>+ <line+ x1='289.560' y1='1839.960' x2='339.480' y2='1839.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='1826.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k32", "_self")'>32</text>+ <line+ x1='239.640' y1='1839.960' x2='289.560' y2='1839.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1826.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k24", "_self")'>24</text>+ <line+ x1='189.720' y1='2102.460' x2='239.640' y2='1839.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='2088.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k13", "_self")'>13</text>+ <line+ x1='139.800' y1='1952.460' x2='189.720' y2='2102.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1601.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k23", "_self")'>23</text>+ <line+ x1='189.720' y1='1427.460' x2='239.640' y2='1614.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1526.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k49", "_self")'>49</text>+ <line+ x1='339.480' y1='1389.960' x2='389.400' y2='1539.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1451.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k48", "_self")'>48</text>+ <line+ x1='339.480' y1='1389.960' x2='389.400' y2='1464.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1376.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k47", "_self")'>47</text>+ <line+ x1='339.480' y1='1389.960' x2='389.400' y2='1389.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1301.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k46", "_self")'>46</text>+ <line+ x1='339.480' y1='1389.960' x2='389.400' y2='1314.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1226.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k45", "_self")'>45</text>+ <line+ x1='339.480' y1='1389.960' x2='389.400' y2='1239.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='1376.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k36", "_self")'>36</text>+ <line+ x1='289.560' y1='1389.960' x2='339.480' y2='1389.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='1376.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k31", "_self")'>31</text>+ <line+ x1='239.640' y1='1389.960' x2='289.560' y2='1389.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1376.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k22", "_self")'>22</text>+ <line+ x1='189.720' y1='1427.460' x2='239.640' y2='1389.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='1413.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k12", "_self")'>12</text>+ <line+ x1='139.800' y1='1952.460' x2='189.720' y2='1427.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1151.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k21", "_self")'>21</text>+ <line+ x1='189.720' y1='977.460' x2='239.640' y2='1164.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1076.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k44", "_self")'>44</text>+ <line+ x1='339.480' y1='939.960' x2='389.400' y2='1089.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1001.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k43", "_self")'>43</text>+ <line+ x1='339.480' y1='939.960' x2='389.400' y2='1014.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k42", "_self")'>42</text>+ <line+ x1='339.480' y1='939.960' x2='389.400' y2='939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='851.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k41", "_self")'>41</text>+ <line+ x1='339.480' y1='939.960' x2='389.400' y2='864.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='776.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k40", "_self")'>40</text>+ <line+ x1='339.480' y1='939.960' x2='389.400' y2='789.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k35", "_self")'>35</text>+ <line+ x1='289.560' y1='939.960' x2='339.480' y2='939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k30", "_self")'>30</text>+ <line+ x1='239.640' y1='939.960' x2='289.560' y2='939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k20", "_self")'>20</text>+ <line+ x1='189.720' y1='977.460' x2='239.640' y2='939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='963.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k11", "_self")'>11</text>+ <line+ x1='139.800' y1='1952.460' x2='189.720' y2='977.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='1938.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k9", "_self")'>9</text>+ <line+ x1='89.880' y1='1802.460' x2='139.800' y2='1952.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='701.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k8", "_self")'>8</text>+ <line+ x1='89.880' y1='1802.460' x2='139.800' y2='714.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='626.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k7", "_self")'>7</text>+ <line+ x1='89.880' y1='1802.460' x2='139.800' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='551.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k6", "_self")'>6</text>+ <line+ x1='89.880' y1='1802.460' x2='139.800' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='476.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k5", "_self")'>5</text>+ <line+ x1='89.880' y1='1802.460' x2='139.800' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='1788.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k3", "_self")'>3</text>+ <line+ x1='39.960' y1='1577.460' x2='89.880' y2='1802.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='401.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k2", "_self")'>2</text>+ <line+ x1='39.960' y1='1577.460' x2='89.880' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='326.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k19", "_self")'>19</text>+ <line+ x1='189.720' y1='189.960' x2='239.640' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='251.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k18", "_self")'>18</text>+ <line+ x1='189.720' y1='189.960' x2='239.640' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='176.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k17", "_self")'>17</text>+ <line+ x1='189.720' y1='189.960' x2='239.640' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k16", "_self")'>16</text>+ <line+ x1='189.720' y1='189.960' x2='239.640' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k15", "_self")'>15</text>+ <line+ x1='189.720' y1='189.960' x2='239.640' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='176.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k10", "_self")'>10</text>+ <line+ x1='139.800' y1='189.960' x2='189.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='176.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k4", "_self")'>4</text>+ <line+ x1='89.880' y1='189.960' x2='139.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='176.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k1", "_self")'>1</text>+ <line+ x1='39.960' y1='1577.460' x2='89.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='1563.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k0", "_self")'>0</text>+ </svg></div>++<pre>(defprotocol station-to-station diffie-hellman+ (defrole init+ (vars (x expn) (h base) (a b name))+ (trace (send (exp (gen) x))+ (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))+ (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))+ (uniq-gen x))+ (defrole resp+ (vars (y expn) (h base) (a b name))+ (trace (recv h)+ (send+ (cat (exp (gen) y)+ (enc (enc (exp (gen) y) h (privk b)) (exp h y))))+ (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))+ (uniq-gen y)+ (absent (y h))))</pre>++<p id="k0">Item <a href="#t0">0</a>, Children: <a href="#k1">1</a> <a href="#k2">2</a> <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>(enc (enc (exp (gen) x) h (privk a)) (exp h x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h h) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>station-to-station 0</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (h base) (x expn))+ (defstrand init 3 (a a) (b b) (h h) (x x))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (label 0)+ (unrealized (0 1))+ (origs)+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k4">4</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-to-station 1</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (precedes ((0 0) (1 1)) ((1 2) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x x-0)+ (operation encryption-test (added-strand init 3)+ (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))+ (exp (gen) (mul x x-0))) (0 1))+ (label 1)+ (parent 0)+ (unrealized (1 1))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k0">0</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-to-station 2 (realized)</text>+ </svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (x y expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (operation encryption-test (added-strand resp 2)+ (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+ (exp (gen) (mul x y))) (0 1))+ (label 2)+ (parent 0)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (x x) (h (exp (gen) y)))))+ (origs))</pre>++<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k0">0</a>, Children: <a href="#k5">5</a> <a href="#k6">6</a> <a href="#k7">7</a> <a href="#k8">8</a> <a href="#k9">9</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp h x)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp h x)</title>+ <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc (enc (exp (gen) x) h (privk a)) (exp h x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h h) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-to-station 3</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (h base) (x expn))+ (defstrand init 3 (a a) (b b) (h h) (x x))+ (deflistener (exp h x))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (operation encryption-test (added-listener (exp h x))+ (enc (enc h (exp (gen) x) (privk b)) (exp h x)) (0 1))+ (label 3)+ (parent 0)+ (unrealized (0 1) (1 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k1">1</a>, Child: <a href="#k10">10</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 186.900 114.960 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-to-station 4</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x x-0)+ (operation encryption-test (added-listener (exp (gen) (mul x x-0)))+ (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))+ (exp (gen) (mul x x-0))) (1 1))+ (label 4)+ (parent 1)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k5">Item <a href="#t0">5</a>, Parent: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='189.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) (rec x)) (privk a)) (gen))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) (rec x)) (enc (enc (exp (gen) (rec x)) (exp (gen) x) (privk b)) (gen)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (exp (gen) (rec x))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-to-station 5</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (x expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (operation nonce-test (contracted (h (exp (gen) (rec x)))) (gen)+ (1 0))+ (label 5)+ (parent 3)+ (unrealized (0 1))+ (comment "empty cohort"))</pre>++<p id="k6">Item <a href="#t0">6</a>, Parent: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (gen) (privk a)) (exp (gen) x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (gen) (enc (enc (gen) (exp (gen) x) (privk b)) (exp (gen) x)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (gen)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-to-station 6</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (x expn))+ (defstrand init 3 (a a) (b b) (h (gen)) (x x))+ (deflistener (exp (gen) x))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))+ (label 6)+ (parent 3)+ (unrealized (0 1))+ (comment "empty cohort"))</pre>++<p id="k7">Item <a href="#t0">7</a>, Parent: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) (mul (rec x) x-0)) (privk a)) (exp (gen) x-0))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) (mul (rec x) x-0)) (enc (enc (exp (gen) (mul (rec x) x-0)) (exp (gen) x) (privk b)) (exp (gen) x-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g>+ <title>((a a) (b b) (h (exp (gen) (mul (rec x) x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-to-station 7</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))+ (non-orig (privk a) (privk b))+ (uniq-gen x x-0)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+ (label 7)+ (parent 3)+ (unrealized (0 1))+ (comment "empty cohort"))</pre>++<p id="k8">Item <a href="#t0">8</a>, Parent: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) (mul (rec x) y)) (privk a)) (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) (mul (rec x) y)) (enc (enc (exp (gen) (mul (rec x) y)) (exp (gen) x) (privk b)) (exp (gen) y)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-to-station 8</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (h base) (x y expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (b b-0) (h h) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (1 0))+ (label 8)+ (parent 3)+ (unrealized (0 1))+ (comment "empty cohort"))</pre>++<p id="k9">Item <a href="#t0">9</a>, Parent: <a href="#k3">3</a>, Children: <a href="#k11">11</a> <a href="#k12">12</a> <a href="#k13">13</a> <a href="#k14">14</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp h (mul x (rec w))) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp h (mul x (rec w))) w)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp h x)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp h x)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc (exp (gen) x) h (privk a)) (exp h x))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h h) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-to-station 9</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (h base) (x expn) (w expr))+ (defstrand init 3 (a a) (b b) (h h) (x x))+ (deflistener (exp h x))+ (deflistener (cat (exp h (mul x (rec w))) w))+ (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (precur (2 0))+ (operation nonce-test (added-listener (cat (exp h (mul x (rec w))) w))+ (exp h x) (1 0))+ (label 9)+ (parent 3)+ (unrealized (0 1) (2 0))+ (comment "4 in cohort - 4 not yet seen"))</pre>++<p id="k10">Item <a href="#t0">10</a>, Parent: <a href="#k4">4</a>, Children: <a href="#k15">15</a> <a href="#k16">16</a> <a href="#k17">17</a> <a href="#k18">18</a> <a href="#k19">19</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul x x-0 (rec w))) w)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul x x-0 (rec w))) w)</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 236.880 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 10</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn) (w expr))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) (mul x x-0 (rec w))) w))+ (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))+ ((3 1) (2 0)))+ (non-orig (privk a) (privk b))+ (uniq-gen x x-0)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x x-0 (rec w))) w))+ (exp (gen) (mul x x-0)) (2 0))+ (label 10)+ (parent 4)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k11">Item <a href="#t0">11</a>, Parent: <a href="#k9">9</a>, Children: <a href="#k20">20</a> <a href="#k21">21</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) (mul (rec x) w)) (privk a)) (exp (gen) w))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) (mul (rec x) w)) (enc (enc (exp (gen) (mul (rec x) w)) (exp (gen) x) (privk b)) (exp (gen) w)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (exp (gen) (mul (rec x) w))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-to-station 11</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (x expn) (w expr))+ (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (precur (2 0))+ (operation nonce-test (contracted (h (exp (gen) (mul (rec x) w))))+ (gen) (2 0))+ (label 11)+ (parent 9)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k12">Item <a href="#t0">12</a>, Parent: <a href="#k9">9</a>, Children: <a href="#k22">22</a> <a href="#k23">23</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) w) (privk a)) (exp (gen) (mul w x)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) w) (enc (enc (exp (gen) w) (exp (gen) x) (privk b)) (exp (gen) (mul w x))))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (exp (gen) w)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-to-station 12</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (w expr) (x expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (label 12)+ (parent 9)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k13">Item <a href="#t0">13</a>, Parent: <a href="#k9">9</a>, Children: <a href="#k24">24</a> <a href="#k25">25</a> <a href="#k26">26</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) (mul (rec x) w x-0)) (privk a)) (exp (gen) (mul w x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) (mul (rec x) w x-0)) (enc (enc (exp (gen) (mul (rec x) w x-0)) (exp (gen) x) (privk b)) (exp (gen) (mul w x-0))))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g>+ <title>((a a) (b b) (h (exp (gen) (mul (rec x) w x-0))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 13</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (x expn) (w expr) (x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w x-0)))+ (x x))+ (deflistener (exp (gen) (mul w x-0)))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 0) (2 0)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x x-0)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (label 13)+ (parent 9)+ (unrealized (0 1))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k14">Item <a href="#t0">14</a>, Parent: <a href="#k9">9</a>, Children: <a href="#k27">27</a> <a href="#k28">28</a> <a href="#k29">29</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) (mul (rec x) w y)) (privk a)) (exp (gen) (mul w y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) (mul (rec x) w y)) (enc (enc (exp (gen) (mul (rec x) w y)) (exp (gen) x) (privk b)) (exp (gen) (mul w y))))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g>+ <title>((a a) (b b) (h (exp (gen) (mul (rec x) w y))) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 14</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (h base) (x expn) (w expr) (y expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w y))) (x x))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (defstrand resp 2 (b b-0) (h h) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x y)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (2 0))+ (label 14)+ (parent 9)+ (unrealized (0 1))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k15">Item <a href="#t0">15</a>, Parent: <a href="#k10">10</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 236.880 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 15</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))+ ((3 1) (2 0)))+ (non-orig (privk a) (privk b))+ (uniq-gen x x-0)+ (precur (3 0))+ (operation nonce-test (contracted (x-1 x) (x-2 x-0) (w (mul x x-0)))+ (gen) (3 0))+ (label 15)+ (parent 10)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))</pre>++<p id="k16">Item <a href="#t0">16</a>, Parent: <a href="#k10">10</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 236.880 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x-0)) (x x))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 16</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x)) (x x-0))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))+ ((3 1) (2 0)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x x-0)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-1) (3 0))+ (label 16)+ (parent 10)+ (unrealized (3 0))+ (comment "empty cohort"))</pre>++<p id="k17">Item <a href="#t0">17</a>, Parent: <a href="#k10">10</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 236.880 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 17</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))+ ((3 1) (2 0)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x x-0)+ (operation nonce-test (displaced 4 1 init 1) (exp (gen) x-1) (3 0))+ (label 17)+ (parent 10)+ (unrealized (3 0))+ (comment "empty cohort"))</pre>++<p id="k18">Item <a href="#t0">18</a>, Parent: <a href="#k10">10</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 114.960 Q 392.820 114.960 345.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>+ <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 236.880 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-1))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-to-station 18</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 x-1 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-1) (mul x x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))+ ((3 1) (2 0)) ((4 0) (3 0)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x x-0 x-1)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (3 0))+ (label 18)+ (parent 10)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))</pre>++<p id="k19">Item <a href="#t0">19</a>, Parent: <a href="#k10">10</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='264.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-1)) (exp h y)))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x x-0 (rec y)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x x-0 (rec y)))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 236.880 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((b b-1) (h h) (y y))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-to-station 19</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (x x-0 y expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x x-0 (rec y))))+ (defstrand resp 2 (b b-1) (h h) (y y))+ (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))+ ((3 1) (2 0)) ((4 1) (3 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x x-0 y)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (3 0))+ (label 19)+ (parent 10)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))</pre>++<p id="k20">Item <a href="#t0">20</a>, Parent: <a href="#k11">11</a>, Child: <a href="#k30">30</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.990 114.232 334.019 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 20</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (3 1)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 2) (0 1)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x x-0)+ (operation encryption-test (added-strand init 3)+ (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))+ (label 20)+ (parent 11)+ (unrealized (1 0) (2 0) (3 1))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k21">Item <a href="#t0">21</a>, Parent: <a href="#k11">11</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 21</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (x y expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (gen) (mul x y)))+ (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x y)+ (operation encryption-test (added-strand resp 2)+ (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))+ (label 21)+ (parent 11)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))</pre>++<p id="k22">Item <a href="#t0">22</a>, Parent: <a href="#k12">12</a>, Child: <a href="#k31">31</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.990 114.232 334.019 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 22</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x) x-0))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (3 1)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 2) (0 1)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x x-0)+ (operation encryption-test (added-strand init 3)+ (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))+ (label 22)+ (parent 12)+ (unrealized (2 0) (3 1))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k23">Item <a href="#t0">23</a>, Parent: <a href="#k12">12</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) y)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) y)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 23</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (x y expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) x) y))+ (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x y)+ (operation encryption-test (added-strand resp 2)+ (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))+ (label 23)+ (parent 12)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k24">Item <a href="#t0">24</a>, Parent: <a href="#k13">13</a>, Child: <a href="#k32">32</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.990 114.232 334.019 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 24</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (3 1)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 2) (0 1)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x x-0)+ (operation encryption-test (displaced 3 4 init 3)+ (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (0 1))+ (label 24)+ (parent 13)+ (unrealized (2 0) (3 1))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k25">Item <a href="#t0">25</a>, Parent: <a href="#k13">13</a>, Child: <a href="#k33">33</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (exp (gen) (mul x x-1)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0)) (exp (gen) (mul x x-1))))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) x-1))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) x-1))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-1) (privk a)) (exp (gen) (mul x x-1)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-1) (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (exp (gen) (mul x x-1))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.931 114.407 433.903 188.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-1))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-1)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-to-station 25</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 x-1 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x))+ (deflistener (exp (gen) (mul x x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))+ (defstrand init 1 (x x-0))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-1))+ (precedes ((0 0) (2 0)) ((0 0) (4 1)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 0) (2 0)) ((4 2) (0 1)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x x-0 x-1)+ (operation encryption-test (added-strand init 3)+ (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (0 1))+ (label 25)+ (parent 13)+ (unrealized (1 0) (2 0) (4 1))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k26">Item <a href="#t0">26</a>, Parent: <a href="#k13">13</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-to-station 26</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (x x-0 y expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y)))+ (defstrand init 1 (x x-0))+ (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 0) (2 0))+ ((4 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x x-0 y)+ (operation encryption-test (added-strand resp 2)+ (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))+ (label 26)+ (parent 13)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))</pre>++<p id="k27">Item <a href="#t0">27</a>, Parent: <a href="#k14">14</a>, Child: <a href="#k34">34</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.829 264.407 45.857 338.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.649 113.906 245.498 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((a b) (b b-1) (h (exp (gen) x)) (x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-to-station 27</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (x y x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))+ (defstrand resp 2 (b b-0) (h h) (y y))+ (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 1)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 0) (2 0)) ((4 2) (0 1)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x y x-0)+ (operation encryption-test (added-strand init 3)+ (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))+ (label 27)+ (parent 14)+ (unrealized (1 0) (2 0) (4 1))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k28">Item <a href="#t0">28</a>, Parent: <a href="#k14">14</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 28</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (x y expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x y)+ (operation encryption-test (displaced 4 3 resp 2)+ (enc (exp (gen) y-0) (exp (gen) x) (privk b-0)) (0 1))+ (label 28)+ (parent 14)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k29">Item <a href="#t0">29</a>, Parent: <a href="#k14">14</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b)) (exp (gen) (mul x y-0))))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) y-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) y-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y-0) (privk a)) (exp (gen) (mul x y-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b)) (exp (gen) (mul x y-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-to-station 29</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (h base) (x y y-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) y-0)) (x x))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))+ (defstrand resp 2 (b b-0) (h h) (y y))+ (defstrand resp 2 (b b) (h (exp (gen) x)) (y y-0))+ (precedes ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0))+ ((4 1) (2 0)))+ (absent (y-0 (exp (gen) x)) (y h))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x y y-0)+ (operation encryption-test (added-strand resp 2)+ (enc (exp (gen) y-0) (exp (gen) x) (privk b)) (0 1))+ (label 29)+ (parent 14)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))</pre>++<p id="k30">Item <a href="#t0">30</a>, Parent: <a href="#k20">20</a>, Child: <a href="#k35">35</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-to-station 30</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((3 2) (0 1)) ((4 1) (3 1)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x x-0)+ (operation encryption-test (added-listener (exp (gen) (mul x x-0)))+ (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))+ (exp (gen) (mul x x-0))) (3 1))+ (label 30)+ (parent 20)+ (unrealized (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k31">Item <a href="#t0">31</a>, Parent: <a href="#k22">22</a>, Child: <a href="#k36">36</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-to-station 31</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x) x-0))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((3 2) (0 1)) ((4 1) (3 1)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x x-0)+ (operation encryption-test (added-listener (exp (gen) (mul x x-0)))+ (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))+ (exp (gen) (mul x x-0))) (3 1))+ (label 31)+ (parent 22)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k32">Item <a href="#t0">32</a>, Parent: <a href="#k24">24</a>, Child: <a href="#k37">37</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 386.820 114.960 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-to-station 32</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((3 2) (0 1)) ((4 1) (3 1)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x x-0)+ (operation encryption-test (added-listener (exp (gen) (mul x x-0)))+ (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))+ (exp (gen) (mul x x-0))) (3 1))+ (label 32)+ (parent 24)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k33">Item <a href="#t0">33</a>, Parent: <a href="#k25">25</a>, Child: <a href="#k38">38</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (exp (gen) (mul x x-1)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0)) (exp (gen) (mul x x-1))))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 486.780 114.960 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) x-1))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) x-1))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-1) (privk a)) (exp (gen) (mul x x-1)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-1) (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (exp (gen) (mul x x-1))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-1))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-1)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 33</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 x-1 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x))+ (deflistener (exp (gen) (mul x x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))+ (defstrand init 1 (x x-0))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-1))+ (deflistener (exp (gen) (mul x x-1)))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 0) (2 0)) ((4 0) (5 0)) ((4 2) (0 1))+ ((5 1) (4 1)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x x-0 x-1)+ (operation encryption-test (added-listener (exp (gen) (mul x x-1)))+ (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0))+ (exp (gen) (mul x x-1))) (4 1))+ (label 33)+ (parent 25)+ (unrealized (1 0) (2 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k34">Item <a href="#t0">34</a>, Parent: <a href="#k27">27</a>, Child: <a href="#k39">39</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.829 264.407 45.857 338.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.649 113.906 245.498 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 486.780 114.960 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-1) (h (exp (gen) x)) (x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 34</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (x y x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))+ (defstrand resp 2 (b b-0) (h h) (y y))+ (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 0) (2 0)) ((4 0) (5 0)) ((4 2) (0 1))+ ((5 1) (4 1)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x y x-0)+ (operation encryption-test (added-listener (exp (gen) (mul x x-0)))+ (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1))+ (exp (gen) (mul x x-0))) (4 1))+ (label 34)+ (parent 27)+ (unrealized (1 0) (2 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k35">Item <a href="#t0">35</a>, Parent: <a href="#k30">30</a>, Children: <a href="#k40">40</a> <a href="#k41">41</a> <a href="#k42">42</a> <a href="#k43">43</a> <a href="#k44">44</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul x x-0 (rec w))) w)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul x x-0 (rec w))) w)</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 35</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn) (w expr))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) (mul x x-0 (rec w))) w))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x x-0 (rec w))) w))+ (exp (gen) (mul x x-0)) (4 0))+ (label 35)+ (parent 30)+ (unrealized (1 0) (2 0) (5 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k36">Item <a href="#t0">36</a>, Parent: <a href="#k31">31</a>, Children: <a href="#k45">45</a> <a href="#k46">46</a> <a href="#k47">47</a> <a href="#k48">48</a> <a href="#k49">49</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul x x-0 (rec w))) w)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul x x-0 (rec w))) w)</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 36</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn) (w expr))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x) x-0))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) (mul x x-0 (rec w))) w))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x x-0 (rec w))) w))+ (exp (gen) (mul x x-0)) (4 0))+ (label 36)+ (parent 31)+ (unrealized (2 0) (5 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k37">Item <a href="#t0">37</a>, Parent: <a href="#k32">32</a>, Children: <a href="#k50">50</a> <a href="#k51">51</a> <a href="#k52">52</a> <a href="#k53">53</a> <a href="#k54">54</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul x x-0 (rec w))) w)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul x x-0 (rec w))) w)</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 37</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn) (w expr))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) (mul x x-0 (rec w))) w))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x x-0 (rec w))) w))+ (exp (gen) (mul x x-0)) (4 0))+ (label 37)+ (parent 32)+ (unrealized (2 0) (5 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k38">Item <a href="#t0">38</a>, Parent: <a href="#k33">33</a>, Children: <a href="#k55">55</a> <a href="#k56">56</a> <a href="#k57">57</a> <a href="#k58">58</a> <a href="#k59">59</a> <a href="#k60">60</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul x x-1 (rec w))) w)</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul x x-1 (rec w))) w)</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (exp (gen) (mul x x-1)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0)) (exp (gen) (mul x x-1))))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 536.760 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) x-1))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) x-1))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-1) (privk a)) (exp (gen) (mul x x-1)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-1) (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (exp (gen) (mul x x-1))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-1))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-1)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 38</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 x-1 expn) (w expr))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x))+ (deflistener (exp (gen) (mul x x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))+ (defstrand init 1 (x x-0))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-1))+ (deflistener (exp (gen) (mul x x-1)))+ (deflistener (cat (exp (gen) (mul x x-1 (rec w))) w))+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))+ ((5 1) (4 1)) ((6 1) (5 0)))+ (non-orig (privk a) (privk b))+ (precur (6 0) (2 0))+ (uniq-gen x x-0 x-1)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x x-1 (rec w))) w))+ (exp (gen) (mul x x-1)) (5 0))+ (label 38)+ (parent 33)+ (unrealized (1 0) (2 0) (6 0))+ (comment "6 in cohort - 6 not yet seen"))</pre>++<p id="k39">Item <a href="#t0">39</a>, Parent: <a href="#k34">34</a>, Children: <a href="#k61">61</a> <a href="#k62">62</a> <a href="#k63">63</a> <a href="#k64">64</a> <a href="#k65">65</a> <a href="#k66">66</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul x x-0 (rec w))) w)</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul x x-0 (rec w))) w)</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.649 113.906 245.498 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 536.760 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-1) (h (exp (gen) x)) (x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 39</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (x y x-0 expn) (w expr))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))+ (defstrand resp 2 (b b-0) (h h) (y y))+ (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) (mul x x-0 (rec w))) w))+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))+ ((5 1) (4 1)) ((6 1) (5 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (6 0) (2 0))+ (uniq-gen x y x-0)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x x-0 (rec w))) w))+ (exp (gen) (mul x x-0)) (5 0))+ (label 39)+ (parent 34)+ (unrealized (1 0) (2 0) (6 0))+ (comment "6 in cohort - 6 not yet seen"))</pre>++<p id="k40">Item <a href="#t0">40</a>, Parent: <a href="#k35">35</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 40</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0)+ (operation nonce-test (contracted (x-1 x) (x-2 x-0) (w (mul x x-0)))+ (gen) (5 0))+ (label 40)+ (parent 35)+ (unrealized (1 0) (2 0) (4 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k41">Item <a href="#t0">41</a>, Parent: <a href="#k35">35</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x-0)) (x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 41</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-1) (5 0))+ (label 41)+ (parent 35)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k42">Item <a href="#t0">42</a>, Parent: <a href="#k35">35</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 42</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0)+ (operation nonce-test (displaced 6 3 init 1) (exp (gen) x-1) (5 0))+ (label 42)+ (parent 35)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k43">Item <a href="#t0">43</a>, Parent: <a href="#k35">35</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 114.960 Q 592.740 114.960 545.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-1))</title>+ <text x='639.720' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 43</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 x-1 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-1) (mul x x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)) ((6 0) (5 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0 x-1)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (5 0))+ (label 43)+ (parent 35)+ (unrealized (1 0) (2 0) (4 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k44">Item <a href="#t0">44</a>, Parent: <a href="#k35">35</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-1)) (exp h y)))</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x x-0 (rec y)))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x x-0 (rec y)))</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 392.820 339.960 345.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.991 113.906 534.142 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.893 114.515 533.826 189.070'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b-1) (h h) (y y))</title>+ <text x='639.720' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 44</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (x x-0 y expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x x-0 (rec y))))+ (defstrand resp 2 (b b-1) (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)) ((6 1) (5 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0 y)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (5 0))+ (label 44)+ (parent 35)+ (unrealized (1 0) (2 0) (4 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k45">Item <a href="#t0">45</a>, Parent: <a href="#k36">36</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 45</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x) x-0))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0)+ (operation nonce-test (contracted (x-1 x) (x-2 x-0) (w (mul x x-0)))+ (gen) (5 0))+ (label 45)+ (parent 36)+ (unrealized (2 0) (4 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k46">Item <a href="#t0">46</a>, Parent: <a href="#k36">36</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x-0)) (x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 46</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-1) (5 0))+ (label 46)+ (parent 36)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k47">Item <a href="#t0">47</a>, Parent: <a href="#k36">36</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 47</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x) x-0))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0)+ (operation nonce-test (displaced 6 3 init 1) (exp (gen) x-1) (5 0))+ (label 47)+ (parent 36)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k48">Item <a href="#t0">48</a>, Parent: <a href="#k36">36</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 114.960 Q 592.740 114.960 545.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-1))</title>+ <text x='639.720' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 48</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 x-1 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x) x-0))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-1) (mul x x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)) ((6 0) (5 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0 x-1)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (5 0))+ (label 48)+ (parent 36)+ (unrealized (2 0) (4 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k49">Item <a href="#t0">49</a>, Parent: <a href="#k36">36</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-1)) (exp h y)))</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x x-0 (rec y)))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x x-0 (rec y)))</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 392.820 339.960 345.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.991 113.906 534.142 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.893 114.515 533.826 189.070'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b-1) (h h) (y y))</title>+ <text x='639.720' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 49</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (x x-0 y expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x) x-0))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x x-0 (rec y))))+ (defstrand resp 2 (b b-1) (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)) ((6 1) (5 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0 y)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (5 0))+ (label 49)+ (parent 36)+ (unrealized (2 0) (4 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k50">Item <a href="#t0">50</a>, Parent: <a href="#k37">37</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 50</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0)+ (operation nonce-test (contracted (x-1 x) (x-2 x-0) (w (mul x x-0)))+ (gen) (5 0))+ (label 50)+ (parent 37)+ (unrealized (2 0) (4 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k51">Item <a href="#t0">51</a>, Parent: <a href="#k37">37</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x-0)) (x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 51</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x) x-0))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-1) (5 0))+ (label 51)+ (parent 37)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k52">Item <a href="#t0">52</a>, Parent: <a href="#k37">37</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 52</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0)+ (operation nonce-test (displaced 6 3 init 1) (exp (gen) x-1) (5 0))+ (label 52)+ (parent 37)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k53">Item <a href="#t0">53</a>, Parent: <a href="#k37">37</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 114.960 Q 592.740 114.960 545.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 189.960 Q 492.780 189.960 445.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>+ <circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.800 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-1))</title>+ <text x='639.720' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 53</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 x-1 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-1) (mul x x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)) ((6 0) (5 0)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0 x-1)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (5 0))+ (label 53)+ (parent 37)+ (unrealized (2 0) (4 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k54">Item <a href="#t0">54</a>, Parent: <a href="#k37">37</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-1)) (exp h y)))</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x x-0 (rec y)))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x x-0 (rec y)))</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 392.820 339.960 345.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 436.991 113.906 534.142 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.893 114.515 533.826 189.070'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b-1) (h h) (y y))</title>+ <text x='639.720' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 54</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (x x-0 y expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x x-0 (rec y))))+ (defstrand resp 2 (b b-1) (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))+ ((5 1) (4 0)) ((6 1) (5 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x x-0 y)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (5 0))+ (label 54)+ (parent 37)+ (unrealized (2 0) (4 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k55">Item <a href="#t0">55</a>, Parent: <a href="#k38">38</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x-0 x-1))</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x-0 x-1))</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-1) (exp (gen) x-0) (privk b)) (exp (gen) (mul x-0 x-1)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x-1) (privk b-0)) (exp (gen) (mul x-0 x-1))))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 536.760 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) x-0 x-1))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) x-0 x-1))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x-1) (privk a)) (exp (gen) (mul x-0 x-1)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-1) (enc (enc (exp (gen) x-1) (exp (gen) x-0) (privk b)) (exp (gen) (mul x-0 x-1))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x-0)) (x x-1))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-1)) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 55</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 x-1 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x-0))+ (deflistener (exp (gen) (mul x-0 x-1)))+ (deflistener (cat (exp (gen) x) (mul (rec x) x-0 x-1)))+ (defstrand init 1 (x x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x-0)) (x x-1))+ (deflistener (exp (gen) (mul x-0 x-1)))+ (deflistener (cat (gen) (mul x-0 x-1)))+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))+ ((5 1) (4 1)) ((6 1) (5 0)))+ (non-orig (privk a) (privk b))+ (precur (6 0) (2 0))+ (uniq-gen x x-0 x-1)+ (operation nonce-test+ (contracted (x-2 x-0) (x-3 x-1) (w (mul x-0 x-1))) (gen) (6 0))+ (label 55)+ (parent 38)+ (unrealized (1 0) (2 0) (5 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k56">Item <a href="#t0">56</a>, Parent: <a href="#k38">38</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) x-0)</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) x-0)</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x-1) (privk b)) (exp (gen) (mul x-0 x-1)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-1) (enc (enc (exp (gen) x-1) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x-0 x-1))))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 536.760 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) x-0 x-1))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) x-0 x-1))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x-1) (exp (gen) x-0) (privk a)) (exp (gen) (mul x-0 x-1)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x-1) (privk b)) (exp (gen) (mul x-0 x-1))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x-1)) (x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x-1))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 56</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 x-1 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x-1))+ (deflistener (exp (gen) (mul x-0 x-1)))+ (deflistener (cat (exp (gen) x) (mul (rec x) x-0 x-1)))+ (defstrand init 1 (x x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x-1)) (x x-0))+ (deflistener (exp (gen) (mul x-0 x-1)))+ (deflistener (cat (exp (gen) x-1) x-0))+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))+ ((5 1) (4 1)) ((6 1) (5 0)))+ (non-orig (privk a) (privk b))+ (precur (6 0) (2 0))+ (uniq-gen x x-0 x-1)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-2) (6 0))+ (label 56)+ (parent 38)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k57">Item <a href="#t0">57</a>, Parent: <a href="#k38">38</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 536.760 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 114.960 Q 486.780 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x-1))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 57</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 x-1 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-1) (mul x x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-1) (mul x x-0 (rec x-1))))+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (6 0)) ((4 0) (2 0)) ((4 0) (6 0))+ ((4 2) (0 1)) ((5 1) (4 1)) ((6 1) (5 0)))+ (non-orig (privk a) (privk b))+ (precur (6 0) (2 0))+ (uniq-gen x x-0 x-1)+ (operation nonce-test (displaced 7 3 init 1) (exp (gen) x-2) (6 0))+ (label 57)+ (parent 38)+ (unrealized (1 0) (2 0) (5 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k58">Item <a href="#t0">58</a>, Parent: <a href="#k38">38</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) x-0)</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) x-0)</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-1) (exp (gen) x-0) (privk b)) (exp (gen) (mul x-0 x-1)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x-1) (privk b-0)) (exp (gen) (mul x-0 x-1))))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 536.760 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) x-0 x-1))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) x-0 x-1))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x-1) (privk a)) (exp (gen) (mul x-0 x-1)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-1) (enc (enc (exp (gen) x-1) (exp (gen) x-0) (privk b)) (exp (gen) (mul x-0 x-1))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x-0)) (x x-1))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-1)) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 58</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 x-1 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x-0))+ (deflistener (exp (gen) (mul x-0 x-1)))+ (deflistener (cat (exp (gen) x) (mul (rec x) x-0 x-1)))+ (defstrand init 1 (x x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x-0)) (x x-1))+ (deflistener (exp (gen) (mul x-0 x-1)))+ (deflistener (cat (exp (gen) x-1) x-0))+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))+ ((5 1) (4 1)) ((6 1) (5 0)))+ (non-orig (privk a) (privk b))+ (precur (6 0) (2 0))+ (uniq-gen x x-0 x-1)+ (operation nonce-test (displaced 7 4 init 1) (exp (gen) x-2) (6 0))+ (label 58)+ (parent 38)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k59">Item <a href="#t0">59</a>, Parent: <a href="#k38">38</a>.</p>++<div>+ <svg+ class='diagram' width='779.640pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 779.640 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='739.680' y1='114.960' x2='739.680' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 739.680 114.960 Q 692.700 114.960 645.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-2)</title>+ <circle cx='739.680' cy='114.960' r='6.000'/></g>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-2) (mul x-0 x-1 (rec x-2)))</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-2) (mul x-0 x-1 (rec x-2)))</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-1) (exp (gen) x-0) (privk b)) (exp (gen) (mul x-0 x-1)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x-1) (privk b-0)) (exp (gen) (mul x-0 x-1))))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 536.760 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) x-0 x-1))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) x-0 x-1))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.340 300.660 44.759 336.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x-1) (privk a)) (exp (gen) (mul x-0 x-1)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-1) (enc (enc (exp (gen) x-1) (exp (gen) x-0) (privk b)) (exp (gen) (mul x-0 x-1))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-2))</title>+ <text x='739.680' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a b) (b b-0) (h (exp (gen) x-0)) (x x-1))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-1)) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='389.820' y='39.960'+ style='text-anchor: middle;'>station-to-station 59</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x x-0 x-1 x-2 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x-0))+ (deflistener (exp (gen) (mul x-0 x-1)))+ (deflistener (cat (exp (gen) x) (mul (rec x) x-0 x-1)))+ (defstrand init 1 (x x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x-0)) (x x-1))+ (deflistener (exp (gen) (mul x-0 x-1)))+ (deflistener (cat (exp (gen) x-2) (mul x-0 x-1 (rec x-2))))+ (defstrand init 1 (x x-2))+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))+ ((5 1) (4 1)) ((6 1) (5 0)) ((7 0) (6 0)))+ (non-orig (privk a) (privk b))+ (precur (6 0) (2 0))+ (uniq-gen x x-0 x-1 x-2)+ (operation nonce-test (added-strand init 1) (exp (gen) x-2) (6 0))+ (label 59)+ (parent 38)+ (unrealized (1 0) (2 0) (5 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k60">Item <a href="#t0">60</a>, Parent: <a href="#k38">38</a>.</p>++<div>+ <svg+ class='diagram' width='779.640pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 779.640 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='739.680' y1='114.960' x2='739.680' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='639.720' y1='189.960' x2='639.720' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='264.960' x2='539.760' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 739.680 189.960 Q 692.700 189.960 645.720 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-1)) (exp h y)))</title>+ <circle cx='739.680' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='739.680' cy='114.960' r='6.000'/></g>+ <path+ d='M 639.720 264.960 Q 592.740 264.960 545.760 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x-0 x-1 (rec y)))</title>+ <circle cx='639.720' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x-0 x-1 (rec y)))</title>+ <circle style='fill: red;' cx='639.720' cy='189.960' r='6.000'/></g>+ <path+ d='M 539.760 339.960 Q 492.780 339.960 445.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle cx='539.760' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle style='fill: red;' cx='539.760' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-1) (exp (gen) x-0) (privk b)) (exp (gen) (mul x-0 x-1)))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x-1) (privk b-0)) (exp (gen) (mul x-0 x-1))))</title>+ <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.840 77.460 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 536.951 113.906 634.102 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul (rec x) x-0 x-1))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul (rec x) x-0 x-1))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 91.604 337.464 43.287 409.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x-0 x-1))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x-1) (privk a)) (exp (gen) (mul x-0 x-1)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-1) (enc (enc (exp (gen) x-1) (exp (gen) x-0) (privk b)) (exp (gen) (mul x-0 x-1))))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.863 114.588 633.766 189.215'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b-1) (h h) (y y))</title>+ <text x='739.680' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a b) (b b-0) (h (exp (gen) x-0)) (x x-1))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-1)) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='389.820' y='39.960'+ style='text-anchor: middle;'>station-to-station 60</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (x x-0 x-1 y expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x-0))+ (deflistener (exp (gen) (mul x-0 x-1)))+ (deflistener (cat (exp (gen) x) (mul (rec x) x-0 x-1)))+ (defstrand init 1 (x x))+ (defstrand init 3 (a b) (b b-0) (h (exp (gen) x-0)) (x x-1))+ (deflistener (exp (gen) (mul x-0 x-1)))+ (deflistener (cat (exp (gen) y) (mul x-0 x-1 (rec y))))+ (defstrand resp 2 (b b-1) (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))+ ((5 1) (4 1)) ((6 1) (5 0)) ((7 1) (6 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (6 0) (2 0))+ (uniq-gen x x-0 x-1 y)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (6 0))+ (label 60)+ (parent 38)+ (unrealized (1 0) (2 0) (5 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k61">Item <a href="#t0">61</a>, Parent: <a href="#k39">39</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.649 113.906 245.498 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 536.760 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) x x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-1) (h (exp (gen) x)) (x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 61</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (y x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) x x-0)))+ (defstrand resp 2 (b b-0) (h h) (y y))+ (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))+ ((5 1) (4 1)) ((6 1) (5 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (6 0) (2 0))+ (uniq-gen y x x-0)+ (operation nonce-test (contracted (x-1 x) (x-2 x-0) (w (mul x x-0)))+ (gen) (6 0))+ (label 61)+ (parent 39)+ (unrealized (1 0) (2 0) (5 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k62">Item <a href="#t0">62</a>, Parent: <a href="#k39">39</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-1)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.649 113.906 245.498 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 536.760 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) x x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-1) (h (exp (gen) x-0)) (x x))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (x x-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 62</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (y x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) x x-0)))+ (defstrand resp 2 (b b-0) (h h) (y y))+ (defstrand init 3 (a b) (b b-1) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))+ ((5 1) (4 1)) ((6 1) (5 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (6 0) (2 0))+ (uniq-gen y x x-0)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-1) (6 0))+ (label 62)+ (parent 39)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k63">Item <a href="#t0">63</a>, Parent: <a href="#k39">39</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.649 113.906 245.498 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 536.760 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) x x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-1) (h (exp (gen) x)) (x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 63</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (y x x-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) x x-0)))+ (defstrand resp 2 (b b-0) (h h) (y y))+ (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))+ ((5 1) (4 1)) ((6 1) (5 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (6 0) (2 0))+ (uniq-gen y x x-0)+ (operation nonce-test (displaced 7 4 init 1) (exp (gen) x-1) (6 0))+ (label 63)+ (parent 39)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k64">Item <a href="#t0">64</a>, Parent: <a href="#k39">39</a>.</p>++<div>+ <svg+ class='diagram' width='779.640pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 779.640 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='739.680' y1='114.960' x2='739.680' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 739.680 114.960 Q 692.700 114.960 645.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='739.680' cy='114.960' r='6.000'/></g>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>+ <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 242.880 302.460 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 114.960 Q 342.649 113.906 245.498 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 114.960 Q 536.760 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) x x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 336.840 77.460 633.720 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-1))</title>+ <text x='739.680' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a b) (b b-1) (h (exp (gen) x)) (x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='389.820' y='39.960'+ style='text-anchor: middle;'>station-to-station 64</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (y x x-0 x-1 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) x x-0)))+ (defstrand resp 2 (b b-0) (h h) (y y))+ (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-1) (mul x x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))+ ((5 1) (4 1)) ((6 1) (5 0)) ((7 0) (6 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (6 0) (2 0))+ (uniq-gen y x x-0 x-1)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (6 0))+ (label 64)+ (parent 39)+ (unrealized (1 0) (2 0) (5 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k65">Item <a href="#t0">65</a>, Parent: <a href="#k39">39</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='189.960' x2='639.720' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='264.960' x2='539.760' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 264.960 Q 592.740 264.960 545.760 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x x-0 (rec y)))</title>+ <circle cx='639.720' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x x-0 (rec y)))</title>+ <circle style='fill: red;' cx='639.720' cy='189.960' r='6.000'/></g>+ <path+ d='M 539.760 339.960 Q 492.780 339.960 445.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='539.760' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='539.760' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 189.960 Q 536.760 152.460 633.720 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 339.840 189.960 Q 486.780 152.460 633.720 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x x-0 (rec y)))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x x-0 (rec y)))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 336.840 152.460 633.720 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((a b) (b b-1) (h (exp (gen) x)) (x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 65</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (x x-0 y expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x x-0 (rec y))))+ (defstrand resp 2 (b b-0) (h h) (y y))+ (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x x-0 (rec y))))+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (6 0)) ((4 0) (2 0)) ((4 0) (6 0))+ ((4 2) (0 1)) ((5 1) (4 1)) ((6 1) (5 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (6 0) (2 0))+ (uniq-gen x x-0 y)+ (operation nonce-test (displaced 7 3 resp 2) (exp (gen) y-0) (6 0))+ (label 65)+ (parent 39)+ (unrealized (1 0) (2 0) (5 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="k66">Item <a href="#t0">66</a>, Parent: <a href="#k39">39</a>.</p>++<div>+ <svg+ class='diagram' width='779.640pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 779.640 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='739.680' y1='114.960' x2='739.680' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='639.720' y1='189.960' x2='639.720' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='264.960' x2='539.760' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 739.680 189.960 Q 692.700 189.960 645.720 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) h-0 (privk b-2)) (exp h-0 y-0)))</title>+ <circle cx='739.680' cy='189.960' r='6.000'/></g>+ <g><title>h-0</title>+ <circle style='fill: blue;' cx='739.680' cy='114.960' r='6.000'/></g>+ <path+ d='M 639.720 264.960 Q 592.740 264.960 545.760 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul x x-0 (rec y-0)))</title>+ <circle cx='639.720' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul x x-0 (rec y-0)))</title>+ <circle style='fill: red;' cx='639.720' cy='189.960' r='6.000'/></g>+ <path+ d='M 539.760 339.960 Q 492.780 339.960 445.800 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='539.760' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='539.760' cy='264.960' r='6.000'/></g>+ <path+ d='M 439.800 414.960 Q 242.880 377.460 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='439.800' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 439.800 189.960 Q 536.760 152.460 633.720 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul (rec y) x x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul (rec y) x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='489.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 336.840 152.460 633.720 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((b b-2) (h h-0) (y y-0))</title>+ <text x='739.680' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a b) (b b-1) (h (exp (gen) x)) (x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='389.820' y='39.960'+ style='text-anchor: middle;'>station-to-station 66</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 b-2 name) (h h-0 base) (y x x-0 y-0 expn))+ (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) x x-0)))+ (defstrand resp 2 (b b-0) (h h) (y y))+ (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y-0) (mul x x-0 (rec y-0))))+ (defstrand resp 2 (b b-2) (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))+ ((5 1) (4 1)) ((6 1) (5 0)) ((7 1) (6 0)))+ (absent (y-0 h-0) (y h))+ (non-orig (privk a) (privk b))+ (precur (6 0) (2 0))+ (uniq-gen y x x-0 y-0)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (6 0))+ (label 66)+ (parent 39)+ (unrealized (1 0) (2 0) (5 0) (6 0))+ (comment "empty cohort"))</pre>++<p id="t67">Tree <a href="#top">67</a>.</p>++<div>+ <svg+ class='diagram' width='429.360pt' height='1204.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 429.360 1204.920' font-size='12.000'>+ <text+ x='239.640' y='1151.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k87", "_self")'>87</text>+ <line+ x1='189.720' y1='1164.960' x2='239.640' y2='1164.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='1151.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k78", "_self")'>78</text>+ <line+ x1='139.800' y1='864.960' x2='189.720' y2='1164.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1076.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k95", "_self")'>95</text>+ <line+ x1='339.480' y1='939.960' x2='389.400' y2='1089.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='1001.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k94", "_self")'>94</text>+ <line+ x1='339.480' y1='939.960' x2='389.400' y2='1014.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k93", "_self")'>93</text>+ <line+ x1='339.480' y1='939.960' x2='389.400' y2='939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='851.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k92", "_self")'>92</text>+ <line+ x1='339.480' y1='939.960' x2='389.400' y2='864.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='389.400' y='776.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k91", "_self")'>91</text>+ <line+ x1='339.480' y1='939.960' x2='389.400' y2='789.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k90", "_self")'>90</text>+ <line+ x1='289.560' y1='939.960' x2='339.480' y2='939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k89", "_self")'>89</text>+ <line+ x1='239.640' y1='902.460' x2='289.560' y2='939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='701.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k88", "_self")'>88</text>+ <line+ x1='239.640' y1='902.460' x2='289.560' y2='714.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='888.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k86", "_self")'>86</text>+ <line+ x1='189.720' y1='902.460' x2='239.640' y2='902.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='888.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k77", "_self")'>77</text>+ <line+ x1='139.800' y1='864.960' x2='189.720' y2='902.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='626.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k85", "_self")'>85</text>+ <line+ x1='189.720' y1='639.960' x2='239.640' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='626.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k76", "_self")'>76</text>+ <line+ x1='139.800' y1='864.960' x2='189.720' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='551.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k84", "_self")'>84</text>+ <line+ x1='189.720' y1='564.960' x2='239.640' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='551.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k75", "_self")'>75</text>+ <line+ x1='139.800' y1='864.960' x2='189.720' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='851.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k73", "_self")'>73</text>+ <line+ x1='89.880' y1='827.460' x2='139.800' y2='864.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='476.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k72", "_self")'>72</text>+ <line+ x1='89.880' y1='827.460' x2='139.800' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='813.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k69", "_self")'>69</text>+ <line+ x1='39.960' y1='602.460' x2='89.880' y2='827.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='401.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k83", "_self")'>83</text>+ <line+ x1='189.720' y1='264.960' x2='239.640' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='326.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k82", "_self")'>82</text>+ <line+ x1='189.720' y1='264.960' x2='239.640' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='251.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k81", "_self")'>81</text>+ <line+ x1='189.720' y1='264.960' x2='239.640' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='176.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k80", "_self")'>80</text>+ <line+ x1='189.720' y1='264.960' x2='239.640' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='101.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k79", "_self")'>79</text>+ <line+ x1='189.720' y1='264.960' x2='239.640' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='251.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k74", "_self")'>74</text>+ <line+ x1='139.800' y1='264.960' x2='189.720' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='251.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k71", "_self")'>71</text>+ <line+ x1='89.880' y1='227.460' x2='139.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k70", "_self")'>70</text>+ <line+ x1='89.880' y1='227.460' x2='139.800' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='213.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k68", "_self")'>68</text>+ <line+ x1='39.960' y1='602.460' x2='89.880' y2='227.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='588.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k67", "_self")'>67</text>+ </svg></div>++<pre>(defprotocol station-to-station diffie-hellman+ (defrole init+ (vars (x expn) (h base) (a b name))+ (trace (send (exp (gen) x))+ (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))+ (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))+ (uniq-gen x))+ (defrole resp+ (vars (y expn) (h base) (a b name))+ (trace (recv h)+ (send+ (cat (exp (gen) y)+ (enc (enc (exp (gen) y) h (privk b)) (exp h y))))+ (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))+ (uniq-gen y)+ (absent (y h))))</pre>++<p id="k67">Item <a href="#t67">67</a>, Children: <a href="#k68">68</a> <a href="#k69">69</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>(enc (enc h (exp (gen) y) (privk a)) (exp h y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b)) (exp h y)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h h) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>station-to-station 67</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (h base) (y expn))+ (defstrand resp 3 (a a) (b b) (h h) (y y))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (label 67)+ (unrealized (0 2))+ (origs)+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k68">Item <a href="#t67">68</a>, Parent: <a href="#k67">67</a>, Children: <a href="#k70">70</a> <a href="#k71">71</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-to-station 68</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (y x expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (operation encryption-test (added-strand init 3)+ (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+ (exp (gen) (mul y x))) (0 2))+ (label 68)+ (parent 67)+ (unrealized (1 1))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k69">Item <a href="#t67">69</a>, Parent: <a href="#k67">67</a>, Children: <a href="#k72">72</a> <a href="#k73">73</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp h y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp h y)</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc h (exp (gen) y) (privk a)) (exp h y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b)) (exp h y)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h h) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-to-station 69</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (h base) (y expn))+ (defstrand resp 3 (a a) (b b) (h h) (y y))+ (deflistener (exp h y))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (operation encryption-test (added-listener (exp h y))+ (enc (enc h (exp (gen) y) (privk a)) (exp h y)) (0 2))+ (label 69)+ (parent 67)+ (unrealized (0 2) (1 0))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k70">Item <a href="#t67">70</a>, Parent: <a href="#k68">68</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-to-station 70 (realized)</text>+ </svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (x y expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (operation encryption-test (displaced 2 0 resp 2)+ (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+ (exp (gen) (mul x y))) (1 1))+ (label 70)+ (parent 68)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (y y) (h (exp (gen) x)))))+ (origs))</pre>++<p id="k71">Item <a href="#t67">71</a>, Parent: <a href="#k68">68</a>, Child: <a href="#k74">74</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-to-station 71</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (y x expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (operation encryption-test (added-listener (exp (gen) (mul y x)))+ (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+ (exp (gen) (mul y x))) (1 1))+ (label 71)+ (parent 68)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k72">Item <a href="#t67">72</a>, Parent: <a href="#k69">69</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (gen) (exp (gen) y) (privk a)) (exp (gen) y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (gen) (privk b)) (exp (gen) y)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (gen)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-to-station 72</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (y expn))+ (defstrand resp 3 (a a) (b b) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (absent (y (gen)))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (operation nonce-test (displaced 2 0 resp 2) (exp (gen) y-0) (1 0))+ (label 72)+ (parent 69)+ (unrealized (0 2))+ (comment "empty cohort"))</pre>++<p id="k73">Item <a href="#t67">73</a>, Parent: <a href="#k69">69</a>, Children: <a href="#k75">75</a> <a href="#k76">76</a> <a href="#k77">77</a> <a href="#k78">78</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp h (mul y (rec w))) w)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp h (mul y (rec w))) w)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp h y)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp h y)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(enc (enc h (exp (gen) y) (privk a)) (exp h y))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b)) (exp h y)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h h) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-to-station 73</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (h base) (y expn) (w expr))+ (defstrand resp 3 (a a) (b b) (h h) (y y))+ (deflistener (exp h y))+ (deflistener (cat (exp h (mul y (rec w))) w))+ (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (precur (2 0))+ (operation nonce-test (added-listener (cat (exp h (mul y (rec w))) w))+ (exp h y) (1 0))+ (label 73)+ (parent 69)+ (unrealized (0 2) (2 0))+ (comment "4 in cohort - 4 not yet seen"))</pre>++<p id="k74">Item <a href="#t67">74</a>, Parent: <a href="#k71">71</a>, Children: <a href="#k79">79</a> <a href="#k80">80</a> <a href="#k81">81</a> <a href="#k82">82</a> <a href="#k83">83</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='264.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul y x (rec w))) w)</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul y x (rec w))) w)</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 74</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (y x expn) (w expr))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) (mul y x (rec w))) w))+ (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))+ ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y x (rec w))) w))+ (exp (gen) (mul y x)) (2 0))+ (label 74)+ (parent 71)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k75">Item <a href="#t67">75</a>, Parent: <a href="#k73">73</a>, Child: <a href="#k84">84</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) w) (exp (gen) y) (privk a)) (exp (gen) (mul w y)))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) w) (privk b)) (exp (gen) (mul w y))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (exp (gen) w)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-to-station 75</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (w expr) (y expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))+ (absent (y (exp (gen) w)))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (precur (2 0))+ (operation nonce-test+ (contracted (y-0 y) (h (exp (gen) w)) (w (mul w y))) (gen) (2 0))+ (label 75)+ (parent 73)+ (unrealized (0 2) (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k76">Item <a href="#t67">76</a>, Parent: <a href="#k73">73</a>, Child: <a href="#k85">85</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 114.960 Q 192.900 77.460 45.960 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x y))</title>+ <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) (mul w x)) (exp (gen) y) (privk a)) (exp (gen) (mul w x y)))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) (mul w x)) (privk b)) (exp (gen) (mul w x y))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) (mul w x))) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 76</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (w expr) (x y expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) (mul w x))) (y y))+ (deflistener (exp (gen) (mul w x y)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (defstrand init 1 (x x))+ (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0)))+ (absent (y (exp (gen) (mul w x))))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x y)+ (operation nonce-test (added-strand init 1) (exp (gen) x) (2 0))+ (label 76)+ (parent 73)+ (unrealized (0 2) (1 0) (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k77">Item <a href="#t67">77</a>, Parent: <a href="#k73">73</a>, Child: <a href="#k86">86</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) w) (exp (gen) y) (privk a)) (exp (gen) (mul w y)))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) w) (privk b)) (exp (gen) (mul w y))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (exp (gen) w)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-to-station 77</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (w expr) (y expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))+ (absent (y (exp (gen) w)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y)+ (operation nonce-test (displaced 3 0 resp 2) (exp (gen) y-0) (2 0))+ (label 77)+ (parent 73)+ (unrealized (0 2))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k78">Item <a href="#t67">78</a>, Parent: <a href="#k73">73</a>, Child: <a href="#k87">87</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='264.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='339.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle style='fill: red;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle style='fill: red;' cx='139.920' cy='339.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) (mul w y)) (exp (gen) y-0) (privk a)) (exp (gen) (mul w y y-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 136.920 227.460 233.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) (mul w y)) (privk b)) (exp (gen) (mul w y y-0))))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) (mul w y))) (y y-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 78</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (h base) (w expr) (y y-0 expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) (mul w y))) (y y-0))+ (deflistener (exp (gen) (mul w y y-0)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (b b-0) (h h) (y y))+ (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0)))+ (absent (y h) (y-0 (exp (gen) (mul w y))))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y y-0)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (2 0))+ (label 78)+ (parent 73)+ (unrealized (0 2) (1 0) (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k79">Item <a href="#t67">79</a>, Parent: <a href="#k74">74</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='264.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul y x))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul y x))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: red;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 79</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (y x expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (gen) (mul y x)))+ (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))+ ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (precur (3 0))+ (operation nonce-test (contracted (y-0 y) (x-0 x) (w (mul y x))) (gen)+ (3 0))+ (label 79)+ (parent 74)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))</pre>++<p id="k80">Item <a href="#t67">80</a>, Parent: <a href="#k74">74</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='264.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) y)</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) y)</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 80</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (y x expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) x) y))+ (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))+ ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x)+ (operation nonce-test (displaced 4 1 init 1) (exp (gen) x-0) (3 0))+ (label 80)+ (parent 74)+ (unrealized (3 0))+ (comment "empty cohort"))</pre>++<p id="k81">Item <a href="#t67">81</a>, Parent: <a href="#k74">74</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='264.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 114.960 Q 392.220 150.660 344.639 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul y x (rec x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul y x (rec x-0)))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: red;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-to-station 81</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (y x x-0 expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))+ ((3 1) (2 0)) ((4 0) (3 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x x-0)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (label 81)+ (parent 74)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))</pre>++<p id="k82">Item <a href="#t67">82</a>, Parent: <a href="#k74">74</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='264.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 82</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x y expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))+ ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x y)+ (operation nonce-test (displaced 4 0 resp 2) (exp (gen) y-0) (3 0))+ (label 82)+ (parent 74)+ (unrealized (3 0))+ (comment "empty cohort"))</pre>++<p id="k83">Item <a href="#t67">83</a>, Parent: <a href="#k74">74</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='264.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) h (privk b-1)) (exp h y-0)))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul y x (rec y-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul y x (rec y-0)))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: red;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b-1) (h h) (y y-0))</title>+ <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-to-station 83</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (y x y-0 expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) y-0) (mul y x (rec y-0))))+ (defstrand resp 2 (b b-1) (h h) (y y-0))+ (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))+ ((3 1) (2 0)) ((4 1) (3 0)))+ (absent (y-0 h) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x y-0)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (label 83)+ (parent 74)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))</pre>++<p id="k84">Item <a href="#t67">84</a>, Parent: <a href="#k75">75</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='264.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='339.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w y))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) w) (exp (gen) y) (privk a)) (exp (gen) (mul w y)))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) w) (privk b)) (exp (gen) (mul w y))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (exp (gen) w)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 84</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (w expr) (y expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)))+ (absent (y (exp (gen) w)))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (precur (2 0))+ (operation nonce-test (added-listener y) (mul w y) (2 0))+ (label 84)+ (parent 75)+ (unrealized (0 2) (3 0))+ (comment "empty cohort"))</pre>++<p id="k85">Item <a href="#t67">85</a>, Parent: <a href="#k76">76</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='264.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='339.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 342.840 227.460 245.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 192.900 77.460 45.960 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x y))</title>+ <circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x y))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) (mul w x)) (exp (gen) y) (privk a)) (exp (gen) (mul w x y)))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) (mul w x)) (privk b)) (exp (gen) (mul w x y))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) (mul w x))) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-to-station 85</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (w expr) (x y expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) (mul w x))) (y y))+ (deflistener (exp (gen) (mul w x y)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (defstrand init 1 (x x))+ (deflistener y)+ (precedes ((0 1) (4 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))+ ((4 1) (2 0)))+ (absent (y (exp (gen) (mul w x))))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x y)+ (operation nonce-test (added-listener y) (mul w y) (2 0))+ (label 85)+ (parent 76)+ (unrealized (0 2) (4 0))+ (comment "empty cohort"))</pre>++<p id="k86">Item <a href="#t67">86</a>, Parent: <a href="#k77">77</a>, Children: <a href="#k88">88</a> <a href="#k89">89</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.810 264.232 45.781 338.504'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 192.900 77.460 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 86</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (y x expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) y) x))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (precedes ((0 1) (2 0)) ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0))+ ((3 0) (0 0)) ((3 2) (0 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y x)+ (operation encryption-test (added-strand init 3)+ (enc (exp (gen) x) (exp (gen) y) (privk a)) (0 2))+ (label 86)+ (parent 77)+ (unrealized (2 0) (3 1))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k87">Item <a href="#t67">87</a>, Parent: <a href="#k78">78</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='529.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 529.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='339.960' x2='239.880' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='414.960' x2='139.920' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 339.960 Q 342.840 302.460 245.880 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y-0</title><circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>y-0</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 414.960 Q 192.900 414.960 145.920 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle cx='239.880' cy='414.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 489.960 Q 92.940 489.960 45.960 489.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle cx='139.920' cy='489.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) (mul w y)) (exp (gen) y-0) (privk a)) (exp (gen) (mul w y y-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='489.960' r='6.000'/></g>+ <path+ d='M 39.960 264.960 Q 236.880 227.460 433.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) (mul w y)) (privk b)) (exp (gen) (mul w y y-0))))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) (mul w y))) (y y-0))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-to-station 87</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (h base) (w expr) (y y-0 expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) (mul w y))) (y y-0))+ (deflistener (exp (gen) (mul w y y-0)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (b b-0) (h h) (y y))+ (deflistener y-0)+ (precedes ((0 1) (4 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0))+ ((4 1) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul w y))))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y y-0)+ (operation nonce-test (added-listener y-0) (mul w y-0) (2 0))+ (label 87)+ (parent 78)+ (unrealized (0 2) (4 0))+ (comment "empty cohort"))</pre>++<p id="k88">Item <a href="#t67">88</a>, Parent: <a href="#k86">86</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.810 264.232 45.781 338.504'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 192.900 77.460 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-to-station 88</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b name) (x y expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (precedes ((0 1) (2 0)) ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0))+ ((3 0) (0 0)) ((3 2) (0 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x y)+ (operation encryption-test (displaced 4 0 resp 2)+ (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+ (exp (gen) (mul x y))) (3 1))+ (label 88)+ (parent 86)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k89">Item <a href="#t67">89</a>, Parent: <a href="#k86">86</a>, Child: <a href="#k90">90</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 339.960 Q 192.900 302.460 45.960 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='339.840' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 192.900 77.460 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-to-station 89</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (y x expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) y) x))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (precedes ((0 1) (2 0)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 1) (1 0))+ ((3 0) (0 0)) ((3 2) (0 2)) ((4 1) (3 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y x)+ (operation encryption-test (added-listener (exp (gen) (mul y x)))+ (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+ (exp (gen) (mul y x))) (3 1))+ (label 89)+ (parent 86)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k90">Item <a href="#t67">90</a>, Parent: <a href="#k89">89</a>, Children: <a href="#k91">91</a> <a href="#k92">92</a> <a href="#k93">93</a> <a href="#k94">94</a> <a href="#k95">95</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) (mul y x (rec w))) w)</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) (mul y x (rec w))) w)</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 392.820 339.960 345.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 192.900 77.460 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 286.860 152.460 533.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 90</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (y x expn) (w expr))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) y) x))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) (mul y x (rec w))) w))+ (precedes ((0 1) (2 0)) ((0 1) (5 0)) ((1 1) (0 2)) ((2 1) (1 0))+ ((3 0) (0 0)) ((3 2) (0 2)) ((4 1) (3 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen y x)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y x (rec w))) w))+ (exp (gen) (mul y x)) (4 0))+ (label 90)+ (parent 89)+ (unrealized (2 0) (5 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k91">Item <a href="#t67">91</a>, Parent: <a href="#k90">90</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul y x))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul y x))</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 392.820 339.960 345.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 192.900 77.460 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 286.860 152.460 533.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 91</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (y x expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) y) x))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (gen) (mul y x)))+ (precedes ((0 1) (2 0)) ((0 1) (5 0)) ((1 1) (0 2)) ((2 1) (1 0))+ ((3 0) (0 0)) ((3 2) (0 2)) ((4 1) (3 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen y x)+ (operation nonce-test (contracted (y-0 y) (x-0 x) (w (mul y x))) (gen)+ (5 0))+ (label 91)+ (parent 90)+ (unrealized (2 0) (4 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k92">Item <a href="#t67">92</a>, Parent: <a href="#k90">90</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) y)</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) y)</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 392.820 339.960 345.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 192.900 77.460 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 286.860 152.460 533.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 92</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (y x expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) y) x))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) x) y))+ (precedes ((0 1) (2 0)) ((0 1) (5 0)) ((1 1) (0 2)) ((2 1) (1 0))+ ((3 0) (0 0)) ((3 2) (0 2)) ((4 1) (3 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen y x)+ (operation nonce-test (displaced 6 3 init 1) (exp (gen) x-0) (5 0))+ (label 92)+ (parent 90)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k93">Item <a href="#t67">93</a>, Parent: <a href="#k90">90</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 114.960 Q 592.140 150.660 544.559 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul y x (rec x-0)))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul y x (rec x-0)))</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 392.820 339.960 345.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 192.900 77.460 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 286.860 152.460 533.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text x='639.720' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 93</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (y x x-0 expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) y) x))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 1) (2 0)) ((0 1) (5 0)) ((1 1) (0 2)) ((2 1) (1 0))+ ((3 0) (0 0)) ((3 2) (0 2)) ((4 1) (3 1)) ((5 1) (4 0))+ ((6 0) (5 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen y x x-0)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (5 0))+ (label 93)+ (parent 90)+ (unrealized (2 0) (4 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k94">Item <a href="#t67">94</a>, Parent: <a href="#k90">90</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 392.820 339.960 345.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 192.900 77.460 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 286.860 152.460 533.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-to-station 94</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 name) (x y expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (precedes ((0 1) (2 0)) ((0 1) (5 0)) ((1 1) (0 2)) ((2 1) (1 0))+ ((3 0) (0 0)) ((3 2) (0 2)) ((4 1) (3 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen x y)+ (operation nonce-test (displaced 6 0 resp 2) (exp (gen) y-0) (5 0))+ (label 94)+ (parent 90)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="k95">Item <a href="#t67">95</a>, Parent: <a href="#k90">90</a>.</p>++<div>+ <svg+ class='diagram' width='679.680pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 679.680 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='639.720' y1='114.960' x2='639.720' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='539.760' y1='189.960' x2='539.760' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='264.960' x2='439.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 639.720 189.960 Q 592.740 189.960 545.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) h (privk b-1)) (exp h y-0)))</title>+ <circle cx='639.720' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>+ <path+ d='M 539.760 264.960 Q 492.780 264.960 445.800 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y-0) (mul y x (rec y-0)))</title>+ <circle cx='539.760' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y-0) (mul y x (rec y-0)))</title>+ <circle style='fill: red;' cx='539.760' cy='189.960' r='6.000'/></g>+ <path+ d='M 439.800 339.960 Q 392.820 339.960 345.840 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='439.800' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>+ <path+ d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='339.840' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 192.900 77.460 45.960 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 286.860 152.460 533.760 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b-1) (h h) (y y-0))</title>+ <text x='639.720' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='339.840' y='39.960'+ style='text-anchor: middle;'>station-to-station 95</text></svg></div>++<pre>(defskeleton station-to-station+ (vars (a b b-0 b-1 name) (h base) (y x y-0 expn))+ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) y) x))+ (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) y-0) (mul y x (rec y-0))))+ (defstrand resp 2 (b b-1) (h h) (y y-0))+ (precedes ((0 1) (2 0)) ((0 1) (5 0)) ((1 1) (0 2)) ((2 1) (1 0))+ ((3 0) (0 0)) ((3 2) (0 2)) ((4 1) (3 1)) ((5 1) (4 0))+ ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (5 0) (2 0))+ (uniq-gen y x y-0)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (5 0))+ (label 95)+ (parent 90)+ (unrealized (2 0) (4 0) (5 0))+ (comment "empty cohort"))</pre>++<p id="t96">Tree <a href="#top">96</a>.</p>++<div>+ <svg+ class='diagram' width='379.440pt' height='1204.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.440 1204.920' font-size='12.000'>+ <text+ x='289.560' y='1151.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k126", "_self")'>126</text>+ <line+ x1='239.640' y1='1164.960' x2='289.560' y2='1164.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1151.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k118", "_self")'>118</text>+ <line+ x1='189.720' y1='1089.960' x2='239.640' y2='1164.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1076.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k117", "_self")'>117</text>+ <line+ x1='189.720' y1='1089.960' x2='239.640' y2='1089.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='1001.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k125", "_self")'>125</text>+ <line+ x1='239.640' y1='1014.960' x2='289.560' y2='1014.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='1001.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k116", "_self")'>116</text>+ <line+ x1='189.720' y1='1089.960' x2='239.640' y2='1014.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='1076.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k108", "_self")'>108</text>+ <line+ x1='139.800' y1='827.460' x2='189.720' y2='1089.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k124", "_self")'>124</text>+ <line+ x1='239.640' y1='939.960' x2='289.560' y2='939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='926.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k115", "_self")'>115</text>+ <line+ x1='189.720' y1='864.960' x2='239.640' y2='939.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='851.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k123", "_self")'>123</text>+ <line+ x1='239.640' y1='864.960' x2='289.560' y2='864.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='851.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k114", "_self")'>114</text>+ <line+ x1='189.720' y1='864.960' x2='239.640' y2='864.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='776.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k113", "_self")'>113</text>+ <line+ x1='189.720' y1='864.960' x2='239.640' y2='789.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='851.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k107", "_self")'>107</text>+ <line+ x1='139.800' y1='827.460' x2='189.720' y2='864.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='701.040'+ style='font-style: italic; text-anchor: middle; fill: green;'+ onclick='window.open("#k98", "_self")'>98</text>+ <line+ x1='289.560' y1='714.960' x2='339.480' y2='714.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='701.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k122", "_self")'>122</text>+ <line+ x1='239.640' y1='714.960' x2='289.560' y2='714.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='701.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k112", "_self")'>112</text>+ <line+ x1='189.720' y1='677.460' x2='239.640' y2='714.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='626.040'+ style='font-style: italic; text-anchor: middle; fill: green;'+ onclick='window.open("#k97", "_self")'>97</text>+ <line+ x1='289.560' y1='639.960' x2='339.480' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='626.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k121", "_self")'>121</text>+ <line+ x1='239.640' y1='639.960' x2='289.560' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='626.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k111", "_self")'>111</text>+ <line+ x1='189.720' y1='677.460' x2='239.640' y2='639.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='663.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k106", "_self")'>106</text>+ <line+ x1='139.800' y1='827.460' x2='189.720' y2='677.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='551.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k120", "_self")'>120</text>+ <line+ x1='239.640' y1='564.960' x2='289.560' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='551.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k110", "_self")'>110</text>+ <line+ x1='189.720' y1='527.460' x2='239.640' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='476.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k119", "_self")'>119</text>+ <line+ x1='239.640' y1='489.960' x2='289.560' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='476.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k109", "_self")'>109</text>+ <line+ x1='189.720' y1='527.460' x2='239.640' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='513.540' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k105", "_self")'>105</text>+ <line+ x1='139.800' y1='827.460' x2='189.720' y2='527.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='813.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k104", "_self")'>104</text>+ <line+ x1='89.880' y1='677.460' x2='139.800' y2='827.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='401.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k103", "_self")'>103</text>+ <line+ x1='89.880' y1='677.460' x2='139.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='326.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k102", "_self")'>102</text>+ <line+ x1='89.880' y1='677.460' x2='139.800' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='251.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k101", "_self")'>101</text>+ <line+ x1='89.880' y1='677.460' x2='139.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='176.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k100", "_self")'>100</text>+ <line+ x1='89.880' y1='677.460' x2='139.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='663.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k99", "_self")'>99</text>+ <line+ x1='39.960' y1='602.460' x2='89.880' y2='677.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='101.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k98", "_self")'>98</text>+ <line+ x1='39.960' y1='602.460' x2='89.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k97", "_self")'>97</text>+ <line+ x1='39.960' y1='602.460' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='588.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k96", "_self")'>96</text>+ </svg></div>++<pre>(defprotocol station-weak diffie-hellman+ (defrole weak-init+ (vars (x expn) (h base) (a b name))+ (trace (send (exp (gen) x))+ (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))+ (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))))+ (defrole weak-resp+ (vars (y expn) (h base) (a b name))+ (trace (recv h)+ (send+ (cat (exp (gen) y)+ (enc (enc (exp (gen) y) h (privk b)) (exp h y))))+ (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))+ (absent (y h))))</pre>++<p id="k96">Item <a href="#t96">96</a>, Children: <a href="#k97">97</a> <a href="#k98">98</a> <a href="#k99">99</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>(enc (enc (exp (gen) x) h (privk a)) (exp h x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h h) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>station-weak 96</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (h base) (x expn))+ (defstrand weak-init 3 (a a) (b b) (h h) (x x))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (label 96)+ (unrealized (0 1))+ (origs)+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k97">Item <a href="#t96">97</a>, Parent: <a href="#k96">96</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-weak 97 (realized)</text></svg>+ </div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (defstrand weak-init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (precedes ((0 0) (1 1)) ((1 2) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (operation encryption-test (added-strand weak-init 3)+ (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))+ (exp (gen) (mul x x-0))) (0 1))+ (label 97)+ (parent 96)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (x x) (h (exp (gen) x-0)))))+ (origs))</pre>++<p id="k98">Item <a href="#t96">98</a>, Parent: <a href="#k96">96</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-weak 98 (realized)</text></svg>+ </div>++<pre>(defskeleton station-weak+ (vars (a b name) (x y expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (defstrand weak-resp 2 (b b) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (operation encryption-test (added-strand weak-resp 2)+ (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+ (exp (gen) (mul x y))) (0 1))+ (label 98)+ (parent 96)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (x x) (h (exp (gen) y)))))+ (origs))</pre>++<p id="k99">Item <a href="#t96">99</a>, Parent: <a href="#k96">96</a>, Children: <a href="#k100">100</a> <a href="#k101">101</a> <a href="#k102">102</a> <a href="#k103">103</a> <a href="#k104">104</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp h x)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp h x)</title>+ <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc (enc (exp (gen) x) h (privk a)) (exp h x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h h) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-weak 99</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (h base) (x expn))+ (defstrand weak-init 3 (a a) (b b) (h h) (x x))+ (deflistener (exp h x))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (operation encryption-test (added-listener (exp h x))+ (enc (enc h (exp (gen) x) (privk b)) (exp h x)) (0 1))+ (label 99)+ (parent 96)+ (unrealized (0 1) (1 0))+ (comment "5 in cohort - 5 not yet seen"))</pre>++<p id="k100">Item <a href="#t96">100</a>, Parent: <a href="#k99">99</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(gen)</title><circle cx='139.920' cy='189.960' r='6.000'/>+ </g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) (rec x)) (privk a)) (gen))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) (rec x)) (enc (enc (exp (gen) (rec x)) (exp (gen) x) (privk b)) (gen)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (exp (gen) (rec x))) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-weak 100</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (x expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (operation nonce-test (contracted (h (exp (gen) (rec x)))) (gen)+ (1 0))+ (label 100)+ (parent 99)+ (unrealized (0 1))+ (comment "empty cohort"))</pre>++<p id="k101">Item <a href="#t96">101</a>, Parent: <a href="#k99">99</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (gen) (privk a)) (exp (gen) x))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (gen) (enc (enc (gen) (exp (gen) x) (privk b)) (exp (gen) x)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (gen)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-weak 101</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (x expn))+ (defstrand weak-init 3 (a a) (b b) (h (gen)) (x x))+ (deflistener (exp (gen) x))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (operation nonce-test (displaced 2 0 weak-init 1) (exp (gen) x-0)+ (1 0))+ (label 101)+ (parent 99)+ (unrealized (0 1))+ (comment "empty cohort"))</pre>++<p id="k102">Item <a href="#t96">102</a>, Parent: <a href="#k99">99</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 114.960 Q 192.900 114.960 145.920 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) (mul (rec x) x-0)) (privk a)) (exp (gen) x-0))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) (mul (rec x) x-0)) (enc (enc (exp (gen) (mul (rec x) x-0)) (exp (gen) x) (privk b)) (exp (gen) x-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text+ x='239.880' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g>+ <title>((a a) (b b) (h (exp (gen) (mul (rec x) x-0))) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-weak 102</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (x x-0 expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) (mul (rec x) x-0)))+ (x x))+ (deflistener (exp (gen) x-0))+ (defstrand weak-init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (operation nonce-test (added-strand weak-init 1) (exp (gen) x-0)+ (1 0))+ (label 102)+ (parent 99)+ (unrealized (0 1))+ (comment "empty cohort"))</pre>++<p id="k103">Item <a href="#t96">103</a>, Parent: <a href="#k99">99</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) (mul (rec x) y)) (privk a)) (exp (gen) y))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) (mul (rec x) y)) (enc (enc (exp (gen) (mul (rec x) y)) (exp (gen) x) (privk b)) (exp (gen) y)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text+ x='239.880' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) (mul (rec x) y))) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-weak 103</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (h base) (x y expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) (mul (rec x) y)))+ (x x))+ (deflistener (exp (gen) y))+ (defstrand weak-resp 2 (b b-0) (h h) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (operation nonce-test (added-strand weak-resp 2) (exp (gen) y) (1 0))+ (label 103)+ (parent 99)+ (unrealized (0 1))+ (comment "empty cohort"))</pre>++<p id="k104">Item <a href="#t96">104</a>, Parent: <a href="#k99">99</a>, Children: <a href="#k105">105</a> <a href="#k106">106</a> <a href="#k107">107</a> <a href="#k108">108</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp h (mul x (rec w))) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp h (mul x (rec w))) w)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp h x)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp h x)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc (exp (gen) x) h (privk a)) (exp h x))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h h) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-weak 104</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (h base) (x expn) (w expr))+ (defstrand weak-init 3 (a a) (b b) (h h) (x x))+ (deflistener (exp h x))+ (deflistener (cat (exp h (mul x (rec w))) w))+ (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (precur (2 0))+ (operation nonce-test (added-listener (cat (exp h (mul x (rec w))) w))+ (exp h x) (1 0))+ (label 104)+ (parent 99)+ (unrealized (0 1) (2 0))+ (comment "4 in cohort - 4 not yet seen"))</pre>++<p id="k105">Item <a href="#t96">105</a>, Parent: <a href="#k104">104</a>, Children: <a href="#k109">109</a> <a href="#k110">110</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) w)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) (mul (rec x) w)) (privk a)) (exp (gen) w))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) (mul (rec x) w)) (enc (enc (exp (gen) (mul (rec x) w)) (exp (gen) x) (privk b)) (exp (gen) w)))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (exp (gen) (mul (rec x) w))) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-weak 105</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (x expn) (w expr))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w)))+ (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (precur (2 0))+ (operation nonce-test (contracted (h (exp (gen) (mul (rec x) w))))+ (gen) (2 0))+ (label 105)+ (parent 104)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k106">Item <a href="#t96">106</a>, Parent: <a href="#k104">104</a>, Children: <a href="#k111">111</a> <a href="#k112">112</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) w) (privk a)) (exp (gen) (mul w x)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) w) (enc (enc (exp (gen) w) (exp (gen) x) (privk b)) (exp (gen) (mul w x))))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (exp (gen) w)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-weak 106</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (w expr) (x expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (displaced 3 0 weak-init 1) (exp (gen) x-0)+ (2 0))+ (label 106)+ (parent 104)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k107">Item <a href="#t96">107</a>, Parent: <a href="#k104">104</a>, Children: <a href="#k113">113</a> <a href="#k114">114</a> <a href="#k115">115</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) (mul (rec x) w x-0)) (privk a)) (exp (gen) (mul w x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) (mul (rec x) w x-0)) (enc (enc (exp (gen) (mul (rec x) w x-0)) (exp (gen) x) (privk b)) (exp (gen) (mul w x-0))))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x-0))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g>+ <title>((a a) (b b) (h (exp (gen) (mul (rec x) w x-0))) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-weak 107</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (x expn) (w expr) (x-0 expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w x-0)))+ (x x))+ (deflistener (exp (gen) (mul w x-0)))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand weak-init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 0) (2 0)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (added-strand weak-init 1) (exp (gen) x-0)+ (2 0))+ (label 107)+ (parent 104)+ (unrealized (0 1))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k108">Item <a href="#t96">108</a>, Parent: <a href="#k104">104</a>, Children: <a href="#k116">116</a> <a href="#k117">117</a> <a href="#k118">118</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) (mul (rec x) w y)) (privk a)) (exp (gen) (mul w y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) (mul (rec x) w y)) (enc (enc (exp (gen) (mul (rec x) w y)) (exp (gen) x) (privk b)) (exp (gen) (mul w y))))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g>+ <title>((a a) (b b) (h (exp (gen) (mul (rec x) w y))) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-weak 108</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (h base) (x expn) (w expr) (y expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w y)))+ (x x))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (defstrand weak-resp 2 (b b-0) (h h) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (added-strand weak-resp 2) (exp (gen) y) (2 0))+ (label 108)+ (parent 104)+ (unrealized (0 1))+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k109">Item <a href="#t96">109</a>, Parent: <a href="#k105">105</a>, Child: <a href="#k119">119</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.990 114.232 334.019 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-weak 109</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand weak-init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (3 1)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 2) (0 1)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation encryption-test (added-strand weak-init 3)+ (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))+ (label 109)+ (parent 105)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k110">Item <a href="#t96">110</a>, Parent: <a href="#k105">105</a>, Child: <a href="#k120">120</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.810 189.232 45.781 263.504'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x y))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x y))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-weak 110</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (x y expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (gen) (mul x y)))+ (defstrand weak-resp 2 (b b) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation encryption-test (added-strand weak-resp 2)+ (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))+ (label 110)+ (parent 105)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k111">Item <a href="#t96">111</a>, Parent: <a href="#k106">106</a>, Child: <a href="#k121">121</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.990 114.232 334.019 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-weak 111 (realized)</text></svg>+ </div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x) x-0))+ (defstrand weak-init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (3 1)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 2) (0 1)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation encryption-test (added-strand weak-init 3)+ (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))+ (label 111)+ (parent 106)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k112">Item <a href="#t96">112</a>, Parent: <a href="#k106">106</a>, Child: <a href="#k122">122</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 192.810 189.232 45.781 263.504'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) y)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) y)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-weak 112 (realized)</text></svg>+ </div>++<pre>(defskeleton station-weak+ (vars (a b name) (x y expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) x) y))+ (defstrand weak-resp 2 (b b) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation encryption-test (added-strand weak-resp 2)+ (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))+ (label 112)+ (parent 106)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k113">Item <a href="#t96">113</a>, Parent: <a href="#k107">107</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) x)</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 186.990 114.232 334.019 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-weak 113</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (defstrand weak-init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (3 1)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 2) (0 1)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation encryption-test (displaced 3 4 weak-init 3)+ (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (0 1))+ (label 113)+ (parent 107)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k114">Item <a href="#t96">114</a>, Parent: <a href="#k107">107</a>, Child: <a href="#k123">123</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.880 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (exp (gen) (mul x x-1)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0)) (exp (gen) (mul x x-1))))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) x-1))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) x-1))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-1) (privk a)) (exp (gen) (mul x x-1)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-1) (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (exp (gen) (mul x x-1))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.931 114.407 433.903 188.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-1))</title>+ <text+ x='439.800' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((x x-0))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-1)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-weak 114</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (x x-0 x-1 expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) x-1)) (x x))+ (deflistener (exp (gen) (mul x x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))+ (defstrand weak-init 1 (x x-0))+ (defstrand weak-init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-1))+ (precedes ((0 0) (2 0)) ((0 0) (4 1)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 2) (0 1)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation encryption-test (added-strand weak-init 3)+ (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (0 1))+ (label 114)+ (parent 107)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k115">Item <a href="#t96">115</a>, Parent: <a href="#k107">107</a>, Child: <a href="#k124">124</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.829 189.407 45.857 263.854'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.860 114.960 245.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) y))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) y))</title>+ <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y))</title>+ <text+ x='439.800' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((x x-0))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-weak 115</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (x x-0 y expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y)))+ (defstrand weak-init 1 (x x-0))+ (defstrand weak-resp 2 (b b) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation encryption-test (added-strand weak-resp 2)+ (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))+ (label 115)+ (parent 107)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k116">Item <a href="#t96">116</a>, Parent: <a href="#k108">108</a>, Child: <a href="#k125">125</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='189.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 242.829 264.407 45.857 338.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) x-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>((a b) (b b-1) (h (exp (gen) x)) (x x-0))</title>+ <text+ x='439.800' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-weak 116</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b b-0 b-1 name) (h base) (x y x-0 expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))+ (defstrand weak-resp 2 (b b-0) (h h) (y y))+ (defstrand weak-init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 1)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 2) (0 1)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation encryption-test (added-strand weak-init 3)+ (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))+ (label 116)+ (parent 108)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k117">Item <a href="#t96">117</a>, Parent: <a href="#k108">108</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-weak 117</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (x y expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (defstrand weak-resp 2 (b b) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation encryption-test (displaced 4 3 weak-resp 2)+ (enc (exp (gen) y-0) (exp (gen) x) (privk b-0)) (0 1))+ (label 117)+ (parent 108)+ (unrealized (2 0))+ (comment "empty cohort"))</pre>++<p id="k118">Item <a href="#t96">118</a>, Parent: <a href="#k108">108</a>, Child: <a href="#k126">126</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 242.689 226.406 45.578 337.852'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b)) (exp (gen) (mul x y-0))))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) y-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) y-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y-0) (privk a)) (exp (gen) (mul x y-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b)) (exp (gen) (mul x y-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y-0))</title>+ <text+ x='439.800' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y-0)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-weak 118</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (h base) (x y y-0 expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) y-0)) (x x))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))+ (defstrand weak-resp 2 (b b-0) (h h) (y y))+ (defstrand weak-resp 2 (b b) (h (exp (gen) x)) (y y-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y-0 (exp (gen) x)) (y h))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation encryption-test (added-strand weak-resp 2)+ (enc (exp (gen) y-0) (exp (gen) x) (privk b)) (0 1))+ (label 118)+ (parent 108)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k119">Item <a href="#t96">119</a>, Parent: <a href="#k109">109</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 264.960 Q 192.810 264.232 45.781 338.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 186.990 114.232 334.019 188.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-weak 119</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand weak-init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (deflistener x)+ (precedes ((0 0) (3 1)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 2) (0 1)) ((4 1) (2 0)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (added-listener x) (mul x x-0) (2 0))+ (label 119)+ (parent 109)+ (unrealized (4 0))+ (comment "empty cohort"))</pre>++<p id="k120">Item <a href="#t96">120</a>, Parent: <a href="#k110">110</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 189.960 Q 342.840 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 192.583 226.118 45.326 337.276'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul x y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul x y))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-weak 120</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (x y expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (gen) (mul x y)))+ (defstrand weak-resp 2 (b b) (h (exp (gen) x)) (y y))+ (deflistener x)+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (added-listener x) (mul x y) (2 0))+ (label 120)+ (parent 110)+ (unrealized (4 0))+ (comment "empty cohort"))</pre>++<p id="k121">Item <a href="#t96">121</a>, Parent: <a href="#k111">111</a>, Seen Child: <a href="#k97">97</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 92.340 225.660 44.759 261.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) x-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 137.111 113.906 234.262 187.853'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-0))</title>+ <text+ x='239.880' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-weak 121 (realized)</text></svg>+ </div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (x x-0 expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (cat (exp (gen) x) x-0))+ (defstrand weak-init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))+ (precedes ((0 0) (1 0)) ((0 0) (2 1)) ((1 1) (0 1)) ((2 2) (0 1)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x)+ (operation generalization deleted (1 0))+ (label 121)+ (parent 111)+ (seen 97)+ (unrealized)+ (comment "1 in cohort - 0 not yet seen"))</pre>++<p id="k122">Item <a href="#t96">122</a>, Parent: <a href="#k112">112</a>, Seen Child: <a href="#k98">98</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) y)</title>+ <circle cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y))</title>+ <text+ x='239.880' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-weak 122 (realized)</text></svg>+ </div>++<pre>(defskeleton station-weak+ (vars (a b name) (x y expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (deflistener (cat (exp (gen) x) y))+ (defstrand weak-resp 2 (b b) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x)+ (operation generalization deleted (1 0))+ (label 122)+ (parent 112)+ (seen 98)+ (unrealized)+ (comment "1 in cohort - 0 not yet seen"))</pre>++<p id="k123">Item <a href="#t96">123</a>, Parent: <a href="#k114">114</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.829 264.407 45.857 338.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (exp (gen) (mul x x-1)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0)) (exp (gen) (mul x x-1))))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-1)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) x-1))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) x-1))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-1))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-1) (privk a)) (exp (gen) (mul x x-1)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-1) (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (exp (gen) (mul x x-1))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 236.931 114.407 433.903 188.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-0) (h (exp (gen) x)) (x x-1))</title>+ <text+ x='439.800' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((x x-0))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-1)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-weak 123</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (x x-0 x-1 expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) x-1)) (x x))+ (deflistener (exp (gen) (mul x x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))+ (defstrand weak-init 1 (x x-0))+ (defstrand weak-init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-1))+ (deflistener x)+ (precedes ((0 0) (4 1)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 2) (0 1)) ((5 1) (2 0)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (added-listener x) (mul x (rec x-0) x-1) (2 0))+ (label 123)+ (parent 114)+ (unrealized (5 0))+ (comment "empty cohort"))</pre>++<p id="k124">Item <a href="#t96">124</a>, Parent: <a href="#k115">115</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 189.960 Q 242.689 226.406 45.578 337.852'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x-0) (mul x (rec x-0) y))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y))</title>+ <text+ x='439.800' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((x x-0))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-weak 124</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (x x-0 y expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y)))+ (defstrand weak-init 1 (x x-0))+ (defstrand weak-resp 2 (b b) (h (exp (gen) x)) (y y))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (added-listener x) (mul x (rec x-0) y) (2 0))+ (label 124)+ (parent 115)+ (unrealized (5 0))+ (comment "empty cohort"))</pre>++<p id="k125">Item <a href="#t96">125</a>, Parent: <a href="#k116">116</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 264.960 Q 242.829 264.407 45.857 338.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>+ <circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x-0)</title>+ <circle cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) x-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) x-0))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x x-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 236.931 114.407 433.903 188.854'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a b) (b b-1) (h (exp (gen) x)) (x x-0))</title>+ <text+ x='439.800' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x-0)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-weak 125</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b b-0 b-1 name) (h base) (x y x-0 expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))+ (defstrand weak-resp 2 (b b-0) (h h) (y y))+ (defstrand weak-init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))+ (deflistener x)+ (precedes ((0 0) (4 1)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 2) (0 1)) ((5 1) (2 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (added-listener x) (mul x (rec y) x-0) (2 0))+ (label 125)+ (parent 116)+ (unrealized (5 0))+ (comment "empty cohort"))</pre>++<p id="k126">Item <a href="#t96">126</a>, Parent: <a href="#k118">118</a>.</p>++<div>+ <svg+ class='diagram' width='579.720pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 579.720 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='539.760' y1='114.960' x2='539.760' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='439.800' y1='114.960' x2='439.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 539.760 189.960 Q 392.820 152.460 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>x</title><circle cx='539.760' cy='189.960' r='6.000'/></g>+ <g><title>x</title>+ <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>+ <path+ d='M 439.800 189.960 Q 242.689 226.406 45.578 337.852'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b)) (exp (gen) (mul x y-0))))</title>+ <circle cx='439.800' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul x (rec y) y-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul x (rec y) y-0))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul x y-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul x y-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y-0) (privk a)) (exp (gen) (mul x y-0)))</title>+ <circle cx='39.960' cy='414.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b)) (exp (gen) (mul x y-0))))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 114.960 Q 236.880 77.460 433.800 114.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 114.960 Q 286.860 77.460 533.760 114.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b) (h (exp (gen) x)) (y y-0))</title>+ <text+ x='439.800' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y-0)) (x x))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <text+ x='289.860' y='39.960'+ style='text-anchor: middle;'>station-weak 126</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (h base) (x y y-0 expn))+ (defstrand weak-init 3 (a a) (b b) (h (exp (gen) y-0)) (x x))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))+ (defstrand weak-resp 2 (b b-0) (h h) (y y))+ (defstrand weak-resp 2 (b b) (h (exp (gen) x)) (y y-0))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (2 0)))+ (absent (y-0 (exp (gen) x)) (y h))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (added-listener x) (mul x (rec y) y-0) (2 0))+ (label 126)+ (parent 118)+ (unrealized (5 0))+ (comment "empty cohort"))</pre>++<p id="t127">Tree <a href="#top">127</a>.</p>++<div>+ <svg+ class='diagram' width='379.440pt' height='604.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.440 604.920' font-size='12.000'>+ <text+ x='239.640' y='551.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k141", "_self")'>141</text>+ <line+ x1='189.720' y1='564.960' x2='239.640' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='551.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k136", "_self")'>136</text>+ <line+ x1='139.800' y1='414.960' x2='189.720' y2='564.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='476.040'+ style='font-style: italic; text-anchor: middle; fill: green;'+ onclick='window.open("#k129", "_self")'>129</text>+ <line+ x1='289.560' y1='489.960' x2='339.480' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='476.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k143", "_self")'>143</text>+ <line+ x1='239.640' y1='489.960' x2='289.560' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='476.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k140", "_self")'>140</text>+ <line+ x1='189.720' y1='452.460' x2='239.640' y2='489.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='339.480' y='401.040'+ style='font-style: italic; text-anchor: middle; fill: green;'+ onclick='window.open("#k128", "_self")'>128</text>+ <line+ x1='289.560' y1='414.960' x2='339.480' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='289.560' y='401.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k142", "_self")'>142</text>+ <line+ x1='239.640' y1='414.960' x2='289.560' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='401.040' style='text-anchor: middle; fill: blue;'+ onclick='window.open("#k139", "_self")'>139</text>+ <line+ x1='189.720' y1='452.460' x2='239.640' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='438.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k135", "_self")'>135</text>+ <line+ x1='139.800' y1='414.960' x2='189.720' y2='452.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='326.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k138", "_self")'>138</text>+ <line+ x1='189.720' y1='339.960' x2='239.640' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='326.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k134", "_self")'>134</text>+ <line+ x1='139.800' y1='414.960' x2='189.720' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='239.640' y='251.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k137", "_self")'>137</text>+ <line+ x1='189.720' y1='264.960' x2='239.640' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='189.720' y='251.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k133", "_self")'>133</text>+ <line+ x1='139.800' y1='414.960' x2='189.720' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='401.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k132", "_self")'>132</text>+ <line+ x1='89.880' y1='377.460' x2='139.800' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='176.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k131", "_self")'>131</text>+ <line+ x1='89.880' y1='377.460' x2='139.800' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='363.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k130", "_self")'>130</text>+ <line+ x1='39.960' y1='302.460' x2='89.880' y2='377.460'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='101.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k129", "_self")'>129</text>+ <line+ x1='39.960' y1='302.460' x2='89.880' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k128", "_self")'>128</text>+ <line+ x1='39.960' y1='302.460' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='288.540' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k127", "_self")'>127</text>+ </svg></div>++<pre>(defprotocol station-weak diffie-hellman+ (defrole weak-init+ (vars (x expn) (h base) (a b name))+ (trace (send (exp (gen) x))+ (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))+ (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))))+ (defrole weak-resp+ (vars (y expn) (h base) (a b name))+ (trace (recv h)+ (send+ (cat (exp (gen) y)+ (enc (enc (exp (gen) y) h (privk b)) (exp h y))))+ (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))+ (absent (y h))))</pre>++<p id="k127">Item <a href="#t127">127</a>, Children: <a href="#k128">128</a> <a href="#k129">129</a> <a href="#k130">130</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>(enc (enc h (exp (gen) y) (privk a)) (exp h y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b)) (exp h y)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h h) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>station-weak 127</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (h base) (y expn))+ (defstrand weak-resp 3 (a a) (b b) (h h) (y y))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (label 127)+ (unrealized (0 2))+ (origs)+ (comment "3 in cohort - 3 not yet seen"))</pre>++<p id="k128">Item <a href="#t127">128</a>, Parent: <a href="#k127">127</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-weak 128 (realized)</text></svg>+ </div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (y x expn))+ (defstrand weak-resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (defstrand weak-init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (precedes ((0 1) (1 1)) ((1 2) (0 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (operation encryption-test (added-strand weak-init 3)+ (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+ (exp (gen) (mul y x))) (0 2))+ (label 128)+ (parent 127)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (y y) (h (exp (gen) x)))))+ (origs))</pre>++<p id="k129">Item <a href="#t127">129</a>, Parent: <a href="#k127">127</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) y) (privk a)) (exp (gen) (mul y y-0))))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) y-0) (exp (gen) y) (privk a)) (exp (gen) (mul y y-0)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) y-0) (privk b)) (exp (gen) (mul y y-0))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) y-0)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b a) (h (exp (gen) y)) (y y-0))</title>+ <text+ x='139.920' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y-0)) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-weak 129 (realized)</text></svg>+ </div>++<pre>(defskeleton station-weak+ (vars (a b name) (y y-0 expn))+ (defstrand weak-resp 3 (a a) (b b) (h (exp (gen) y-0)) (y y))+ (defstrand weak-resp 2 (b a) (h (exp (gen) y)) (y y-0))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (absent (y-0 (exp (gen) y)) (y (exp (gen) y-0)))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (operation encryption-test (added-strand weak-resp 2)+ (enc (enc (exp (gen) y-0) (exp (gen) y) (privk a))+ (exp (gen) (mul y y-0))) (0 2))+ (label 129)+ (parent 127)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (y y) (h (exp (gen) y-0)))))+ (origs))</pre>++<p id="k130">Item <a href="#t127">130</a>, Parent: <a href="#k127">127</a>, Children: <a href="#k131">131</a> <a href="#k132">132</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp h y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp h y)</title>+ <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>(enc (enc h (exp (gen) y) (privk a)) (exp h y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b)) (exp h y)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h h) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-weak 130</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (h base) (y expn))+ (defstrand weak-resp 3 (a a) (b b) (h h) (y y))+ (deflistener (exp h y))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (operation encryption-test (added-listener (exp h y))+ (enc (enc h (exp (gen) y) (privk a)) (exp h y)) (0 2))+ (label 130)+ (parent 127)+ (unrealized (0 2) (1 0))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k131">Item <a href="#t127">131</a>, Parent: <a href="#k130">130</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) y)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (gen) (exp (gen) y) (privk a)) (exp (gen) y))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (gen) (privk b)) (exp (gen) y)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(gen)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (gen)) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='89.940' y='39.960'+ style='text-anchor: middle;'>station-weak 131</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (y expn))+ (defstrand weak-resp 3 (a a) (b b) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (absent (y (gen)))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (operation nonce-test (displaced 2 0 weak-resp 2) (exp (gen) y-0)+ (1 0))+ (label 131)+ (parent 130)+ (unrealized (0 2))+ (comment "empty cohort"))</pre>++<p id="k132">Item <a href="#t127">132</a>, Parent: <a href="#k130">130</a>, Children: <a href="#k133">133</a> <a href="#k134">134</a> <a href="#k135">135</a> <a href="#k136">136</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp h (mul y (rec w))) w)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp h (mul y (rec w))) w)</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp h y)</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp h y)</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(enc (enc h (exp (gen) y) (privk a)) (exp h y))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b)) (exp h y)))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h h) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-weak 132</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (h base) (y expn) (w expr))+ (defstrand weak-resp 3 (a a) (b b) (h h) (y y))+ (deflistener (exp h y))+ (deflistener (cat (exp h (mul y (rec w))) w))+ (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))+ (absent (y h))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (precur (2 0))+ (operation nonce-test (added-listener (cat (exp h (mul y (rec w))) w))+ (exp h y) (1 0))+ (label 132)+ (parent 130)+ (unrealized (0 2) (2 0))+ (comment "4 in cohort - 4 not yet seen"))</pre>++<p id="k133">Item <a href="#t127">133</a>, Parent: <a href="#k132">132</a>, Child: <a href="#k137">137</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) w) (exp (gen) y) (privk a)) (exp (gen) (mul w y)))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) w) (privk b)) (exp (gen) (mul w y))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (exp (gen) w)) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-weak 133</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (w expr) (y expn))+ (defstrand weak-resp 3 (a a) (b b) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))+ (absent (y (exp (gen) w)))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (precur (2 0))+ (operation nonce-test+ (contracted (y-0 y) (h (exp (gen) w)) (w (mul w y))) (gen) (2 0))+ (label 133)+ (parent 132)+ (unrealized (0 2) (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k134">Item <a href="#t127">134</a>, Parent: <a href="#k132">132</a>, Child: <a href="#k138">138</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 114.960 Q 292.260 150.660 244.679 186.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) (mul w x)) (exp (gen) y) (privk a)) (exp (gen) (mul w x y)))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) (mul w x)) (privk b)) (exp (gen) (mul w x y))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) (mul w x))) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-weak 134</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (w expr) (x y expn))+ (defstrand weak-resp 3 (a a) (b b) (h (exp (gen) (mul w x))) (y y))+ (deflistener (exp (gen) (mul w x y)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (defstrand weak-init 1 (x x))+ (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (2 0)))+ (absent (y (exp (gen) (mul w x))))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y)+ (operation nonce-test (added-strand weak-init 1) (exp (gen) x) (2 0))+ (label 134)+ (parent 132)+ (unrealized (0 2) (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k135">Item <a href="#t127">135</a>, Parent: <a href="#k132">132</a>, Children: <a href="#k139">139</a> <a href="#k140">140</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) w)</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) w) (exp (gen) y) (privk a)) (exp (gen) (mul w y)))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) w) (privk b)) (exp (gen) (mul w y))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (exp (gen) w)) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-weak 135</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (w expr) (y expn))+ (defstrand weak-resp 3 (a a) (b b) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))+ (absent (y (exp (gen) w)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y)+ (operation nonce-test (displaced 3 0 weak-resp 2) (exp (gen) y-0)+ (2 0))+ (label 135)+ (parent 132)+ (unrealized (0 2))+ (comment "2 in cohort - 2 not yet seen"))</pre>++<p id="k136">Item <a href="#t127">136</a>, Parent: <a href="#k132">132</a>, Child: <a href="#k141">141</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) (mul w y)) (exp (gen) y-0) (privk a)) (exp (gen) (mul w y y-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) (mul w y)) (privk b)) (exp (gen) (mul w y y-0))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) (mul w y))) (y y-0))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-weak 136</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (h base) (w expr) (y y-0 expn))+ (defstrand weak-resp 3 (a a) (b b) (h (exp (gen) (mul w y))) (y y-0))+ (deflistener (exp (gen) (mul w y y-0)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand weak-resp 2 (b b-0) (h h) (y y))+ (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul w y))))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y-0)+ (operation nonce-test (added-strand weak-resp 2) (exp (gen) y) (2 0))+ (label 136)+ (parent 132)+ (unrealized (0 2) (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k137">Item <a href="#t127">137</a>, Parent: <a href="#k133">133</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='264.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='339.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (gen) (mul w y))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(cat (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y))</title>+ <circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) w) (exp (gen) y) (privk a)) (exp (gen) (mul w y)))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) w) (privk b)) (exp (gen) (mul w y))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) w)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b) (h (exp (gen) w)) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-weak 137</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (w expr) (y expn))+ (defstrand weak-resp 3 (a a) (b b) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)))+ (absent (y (exp (gen) w)))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (precur (2 0))+ (operation nonce-test (added-listener y) (mul w y) (2 0))+ (label 137)+ (parent 133)+ (unrealized (0 2) (3 0))+ (comment "empty cohort"))</pre>++<p id="k138">Item <a href="#t127">138</a>, Parent: <a href="#k134">134</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='114.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='264.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='339.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 342.840 227.460 245.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y</title><circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>y</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 114.960 Q 291.524 187.464 243.207 259.967'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) x) (mul w y))</title>+ <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w x y))</title>+ <circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x y))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) (mul w x)) (exp (gen) y) (privk a)) (exp (gen) (mul w x y)))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) (mul w x)) (privk b)) (exp (gen) (mul w x y))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w x))</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((x x))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) (mul w x))) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-weak 138</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b name) (w expr) (x y expn))+ (defstrand weak-resp 3 (a a) (b b) (h (exp (gen) (mul w x))) (y y))+ (deflistener (exp (gen) (mul w x y)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (defstrand weak-init 1 (x x))+ (deflistener y)+ (precedes ((0 1) (4 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (2 0))+ ((4 1) (2 0)))+ (absent (y (exp (gen) (mul w x))))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y)+ (operation nonce-test (added-listener y) (mul w y) (2 0))+ (label 138)+ (parent 134)+ (unrealized (0 2) (4 0))+ (comment "empty cohort"))</pre>++<p id="k139">Item <a href="#t127">139</a>, Parent: <a href="#k135">135</a>, Child: <a href="#k142">142</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.810 264.232 45.781 338.504'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y x))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y x))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-weak 139 (realized)</text></svg>+ </div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (y x expn))+ (defstrand weak-resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) y) x))+ (defstrand weak-init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (precedes ((0 1) (2 0)) ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0))+ ((3 2) (0 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y)+ (operation encryption-test (added-strand weak-init 3)+ (enc (exp (gen) x) (exp (gen) y) (privk a)) (0 2))+ (label 139)+ (parent 135)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k140">Item <a href="#t127">140</a>, Parent: <a href="#k135">135</a>, Child: <a href="#k143">143</a>.</p>++<div>+ <svg+ class='diagram' width='379.800pt' height='379.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 379.800 379.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='339.840' y1='189.960' x2='339.840' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='264.960' x2='139.920' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 339.840 264.960 Q 192.810 264.232 45.781 338.504'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) y) (privk a)) (exp (gen) (mul y y-0))))</title>+ <circle cx='339.840' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>+ <path+ d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) y-0)</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) y-0)</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul y y-0))</title>+ <circle cx='139.920' cy='339.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul y y-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) y-0) (exp (gen) y) (privk a)) (exp (gen) (mul y y-0)))</title>+ <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) y-0) (privk b)) (exp (gen) (mul y y-0))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) y-0)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b a) (h (exp (gen) y)) (y y-0))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y-0)) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='189.900' y='39.960'+ style='text-anchor: middle;'>station-weak 140 (realized)</text></svg>+ </div>++<pre>(defskeleton station-weak+ (vars (a b name) (y y-0 expn))+ (defstrand weak-resp 3 (a a) (b b) (h (exp (gen) y-0)) (y y))+ (deflistener (exp (gen) (mul y y-0)))+ (deflistener (cat (exp (gen) y) y-0))+ (defstrand weak-resp 2 (b a) (h (exp (gen) y)) (y y-0))+ (precedes ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0))+ ((3 1) (0 2)))+ (absent (y-0 (exp (gen) y)) (y (exp (gen) y-0)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y)+ (operation encryption-test (added-strand weak-resp 2)+ (enc (exp (gen) y-0) (exp (gen) y) (privk a)) (0 2))+ (label 140)+ (parent 135)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k141">Item <a href="#t127">141</a>, Parent: <a href="#k136">136</a>.</p>++<div>+ <svg+ class='diagram' width='479.760pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 479.760 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='439.800' y1='189.960' x2='439.800' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='339.840' y1='114.960' x2='339.840' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='239.880' y1='264.960' x2='239.880' y2='339.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='339.960' x2='139.920' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 439.800 264.960 Q 342.840 227.460 245.880 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>y-0</title><circle cx='439.800' cy='264.960' r='6.000'/></g>+ <g><title>y-0</title>+ <circle style='fill: red;' cx='439.800' cy='189.960' r='6.000'/></g>+ <path+ d='M 339.840 189.960 Q 292.260 225.660 244.679 261.359'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))</title>+ <circle cx='339.840' cy='189.960' r='6.000'/></g>+ <g><title>h</title>+ <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>+ <path+ d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle cx='239.880' cy='339.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) (mul w y-0))</title>+ <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>+ <path+ d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle cx='139.920' cy='414.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y y-0))</title>+ <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) (mul w y)) (exp (gen) y-0) (privk a)) (exp (gen) (mul w y y-0)))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) (mul w y)) (privk b)) (exp (gen) (mul w y y-0))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) (mul w y))</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b b-0) (h h) (y y))</title>+ <text+ x='339.840' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) (mul w y))) (y y-0))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='239.880' y='39.960'+ style='text-anchor: middle;'>station-weak 141</text></svg></div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (h base) (w expr) (y y-0 expn))+ (defstrand weak-resp 3 (a a) (b b) (h (exp (gen) (mul w y))) (y y-0))+ (deflistener (exp (gen) (mul w y y-0)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand weak-resp 2 (b b-0) (h h) (y y))+ (deflistener y-0)+ (precedes ((0 1) (4 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0))+ ((4 1) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul w y))))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y-0)+ (operation nonce-test (added-listener y-0) (mul w y-0) (2 0))+ (label 141)+ (parent 136)+ (unrealized (0 2) (4 0))+ (comment "empty cohort"))</pre>++<p id="k142">Item <a href="#t127">142</a>, Parent: <a href="#k139">139</a>, Seen Child: <a href="#k128">128</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='114.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle cx='239.880' cy='114.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) x)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) x)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((a a) (b b-0) (h (exp (gen) y)) (x x))</title>+ <text+ x='239.880' y='77.460' style='text-anchor: middle;'>weak-init</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) x)) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-weak 142 (realized)</text></svg>+ </div>++<pre>(defskeleton station-weak+ (vars (a b b-0 name) (y x expn))+ (defstrand weak-resp 3 (a a) (b b) (h (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) x))+ (defstrand weak-init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))+ (precedes ((0 1) (1 0)) ((0 1) (2 1)) ((1 1) (0 2)) ((2 2) (0 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen y)+ (operation generalization deleted (1 0))+ (label 142)+ (parent 139)+ (seen 128)+ (unrealized)+ (comment "1 in cohort - 0 not yet seen"))</pre>++<p id="k143">Item <a href="#t127">143</a>, Parent: <a href="#k140">140</a>, Seen Child: <a href="#k129">129</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='304.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 304.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='189.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) y) (privk a)) (exp (gen) (mul y y-0))))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(exp (gen) y)</title>+ <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(cat (exp (gen) y) y-0)</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>(cat (exp (gen) y) y-0)</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g>+ <title>(enc (enc (exp (gen) y-0) (exp (gen) y) (privk a)) (exp (gen) (mul y y-0)))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g>+ <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) y-0) (privk b)) (exp (gen) (mul y y-0))))</title>+ <circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(exp (gen) y-0)</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((b a) (h (exp (gen) y)) (y y-0))</title>+ <text+ x='239.880' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <g><title>((a a) (b b) (h (exp (gen) y-0)) (y y))</title>+ <text+ x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>station-weak 143 (realized)</text></svg>+ </div>++<pre>(defskeleton station-weak+ (vars (a b name) (y y-0 expn))+ (defstrand weak-resp 3 (a a) (b b) (h (exp (gen) y-0)) (y y))+ (deflistener (cat (exp (gen) y) y-0))+ (defstrand weak-resp 2 (b a) (h (exp (gen) y)) (y y-0))+ (precedes ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (0 2)))+ (absent (y-0 (exp (gen) y)) (y (exp (gen) y-0)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen y)+ (operation generalization deleted (1 0))+ (label 143)+ (parent 140)+ (seen 129)+ (unrealized)+ (comment "1 in cohort - 0 not yet seen"))</pre> </body> </html>
+ doc/examples/subsort_test.xhtml view
@@ -0,0 +1,409 @@+<?xml version="1.0"?>+<!-- CPSA 3.4.0 -->+<html xmlns="http://www.w3.org/1999/xhtml">+<head>+ <title>Subsort constraint test protocol</title>+ <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />+ <style>+ svg.diagram { border-width: 1px; border-style: solid }+ </style>+</head>+<body>++<pre>(herald "Subsort constraint test protocol"+ (comment "First, third, and fourth skeletons should have a shape,"+ "second should be dead."))+(comment "CPSA 3.4.0")+(comment "All input read from subsort_test.scm")</pre>++<p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t3">3</a> <a href="#t5">5</a>.</p>++<p id="t0">Tree <a href="#top">0</a>.</p>++<div>+ <svg+ class='diagram' width='129.840pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 129.840 79.920' font-size='12.000'>+ <text+ x='89.880' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k1", "_self")'>1</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k0", "_self")'>0</text>+ </svg></div>++<pre>(defprotocol subsorttest basic+ (defrole init+ (vars (n1 n2 text) (k skey))+ (trace (send (cat n1 (enc n1 n2 k))) (recv n2))+ (non-orig k)+ (uniq-orig n1 n2)))</pre>++<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n2</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n1 (enc n1 n2 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n1 n1) (n2 n2) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>subsorttest 0</text></svg></div>++<pre>(defskeleton subsorttest+ (vars (n1 n2 text) (k skey))+ (defstrand init 2 (n1 n1) (n2 n2) (k k))+ (non-orig k)+ (uniq-orig n1 n2)+ (label 0)+ (unrealized (0 1))+ (origs (n1 (0 0)) (n2 (0 0)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n1</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n1 (enc n1 n1 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n1 n1) (n2 n1) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>subsorttest 1 (realized)</text></svg>+ </div>++<pre>(defskeleton subsorttest+ (vars (n1 text) (k skey))+ (defstrand init 2 (n1 n1) (n2 n1) (k k))+ (non-orig k)+ (uniq-orig n1)+ (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))+ (label 1)+ (parent 0)+ (unrealized)+ (shape)+ (maps ((0) ((n1 n1) (n2 n1) (k k))))+ (origs (n1 (0 0))))</pre>++<p id="t2">Tree <a href="#top">2</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 79.920' font-size='12.000'>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: red;'+ onclick='window.open("#k2", "_self")'>2</text>+ </svg></div>++<pre>(defprotocol subsorttest basic+ (defrole init+ (vars (n1 n2 text) (k skey))+ (trace (send (cat n1 (enc n1 n2 k))) (recv n2))+ (non-orig k)+ (uniq-orig n1 n2)))</pre>++<p id="k2">Item <a href="#t2">2</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n2</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n1 (enc n1 n2 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n1 n1) (n2 n2) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>subsorttest 2</text></svg></div>++<pre>(defskeleton subsorttest+ (vars (n1 n2 text) (k skey))+ (defstrand init 2 (n1 n1) (n2 n2) (k k))+ (non-orig k)+ (subsort (A n1) (B n2))+ (uniq-orig n1 n2)+ (label 2)+ (unrealized (0 1))+ (origs (n1 (0 0)) (n2 (0 0)))+ (comment "empty cohort"))</pre>++<p id="t3">Tree <a href="#top">3</a>.</p>++<div>+ <svg+ class='diagram' width='129.840pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 129.840 79.920' font-size='12.000'>+ <text+ x='89.880' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k4", "_self")'>4</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k3", "_self")'>3</text>+ </svg></div>++<pre>(defprotocol subsorttest basic+ (defrole init+ (vars (n1 n2 text) (k skey))+ (trace (send (cat n1 (enc n1 n2 k))) (recv n2))+ (non-orig k)+ (uniq-orig n1 n2)))</pre>++<p id="k3">Item <a href="#t3">3</a>, Child: <a href="#k4">4</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n2</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n1 (enc n1 n2 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n1 n1) (n2 n2) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>subsorttest 3</text></svg></div>++<pre>(defskeleton subsorttest+ (vars (n1 n2 text) (k skey))+ (defstrand init 2 (n1 n1) (n2 n2) (k k))+ (non-orig k)+ (subsort (A n1))+ (uniq-orig n1 n2)+ (label 3)+ (unrealized (0 1))+ (origs (n1 (0 0)) (n2 (0 0)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k4">Item <a href="#t3">4</a>, Parent: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n1</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n1 (enc n1 n1 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n1 n1) (n2 n1) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>subsorttest 4 (realized)</text></svg>+ </div>++<pre>(defskeleton subsorttest+ (vars (n1 text) (k skey))+ (defstrand init 2 (n1 n1) (n2 n1) (k k))+ (non-orig k)+ (subsort (A n1))+ (uniq-orig n1)+ (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))+ (label 4)+ (parent 3)+ (unrealized)+ (shape)+ (maps ((0) ((n1 n1) (n2 n1) (k k))))+ (origs (n1 (0 0))))</pre>++<p id="t5">Tree <a href="#top">5</a>.</p>++<div>+ <svg+ class='diagram' width='129.840pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 129.840 79.920' font-size='12.000'>+ <text+ x='89.880' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k6", "_self")'>6</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k5", "_self")'>5</text>+ </svg></div>++<pre>(defprotocol subsorttest basic+ (defrole init+ (vars (n1 n2 text) (k skey))+ (trace (send (cat n1 (enc n1 n2 k))) (recv n2))+ (non-orig k)+ (uniq-orig n1 n2)))</pre>++<p id="k5">Item <a href="#t5">5</a>, Child: <a href="#k6">6</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n2</title>+ <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n1 (enc n1 n2 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n1 n1) (n2 n2) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>subsorttest 5</text></svg></div>++<pre>(defskeleton subsorttest+ (vars (n1 n2 text) (k skey))+ (defstrand init 2 (n1 n1) (n2 n2) (k k))+ (non-orig k)+ (subsort (A n1 n2))+ (uniq-orig n1 n2)+ (label 5)+ (unrealized (0 1))+ (origs (n1 (0 0)) (n2 (0 0)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k6">Item <a href="#t5">6</a>, Parent: <a href="#k5">5</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='229.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 229.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='189.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>n1</title>+ <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>(cat n1 (enc n1 n1 k))</title>+ <circle cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n1 n1) (n2 n1) (k k))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <text+ x='39.960' y='39.960'+ style='text-anchor: middle;'>subsorttest 6 (realized)</text></svg>+ </div>++<pre>(defskeleton subsorttest+ (vars (n1 text) (k skey))+ (defstrand init 2 (n1 n1) (n2 n1) (k k))+ (non-orig k)+ (subsort (A n1))+ (uniq-orig n1)+ (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))+ (label 6)+ (parent 5)+ (unrealized)+ (shape)+ (maps ((0) ((n1 n1) (n2 n1) (k k))))+ (origs (n1 (0 0))))</pre>++</body>+</html>
+ doc/examples/woolam.xhtml view
@@ -0,0 +1,341 @@+<?xml version="1.0"?>+<!-- CPSA 3.4.0 -->+<html xmlns="http://www.w3.org/1999/xhtml">+<head>+ <title>Woo-Lam Protocol</title>+ <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />+ <style>+ svg.diagram { border-width: 1px; border-style: solid }+ </style>+</head>+<body>++<pre>(herald "Woo-Lam Protocol")+(comment "CPSA 3.4.0")+(comment "All input read from woolam.scm")</pre>++<p id="t0">Tree 0.</p>++<div>+ <svg+ class='diagram' width='229.680pt' height='79.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 229.680 79.920' font-size='12.000'>+ <text+ x='189.720' y='26.040'+ style='font-weight: bold; text-anchor: middle; fill: blue;'+ onclick='window.open("#k3", "_self")'>3</text>+ <line+ x1='139.800' y1='39.960' x2='189.720' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='139.800' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k2", "_self")'>2</text>+ <line+ x1='89.880' y1='39.960' x2='139.800' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='89.880' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k1", "_self")'>1</text>+ <line+ x1='39.960' y1='39.960' x2='89.880' y2='39.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <text+ x='39.960' y='26.040' style='text-anchor: middle; fill: black;'+ onclick='window.open("#k0", "_self")'>0</text>+ </svg></div>++<pre>(defprotocol woolam basic+ (defrole init+ (vars (a s name) (n text))+ (trace (send a) (recv n) (send (enc n (ltk a s))))+ (non-orig (ltk a s)))+ (defrole resp+ (vars (a s b name) (n text))+ (trace (recv a) (send n) (recv (enc n (ltk a s)))+ (send (enc a (enc n (ltk a s)) (ltk b s)))+ (recv (enc a n (ltk b s))))+ (non-orig (ltk b s))+ (uniq-orig n))+ (defrole serv+ (vars (a s b name) (n text))+ (trace (recv (enc a (enc n (ltk a s)) (ltk b s)))+ (send (enc a n (ltk b s))))))</pre>++<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>++<div>+ <svg+ class='diagram' width='79.920pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 79.920 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <g><title>(enc a n (ltk b s))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc a (enc n (ltk a s)) (ltk b s))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (ltk a s))</title>+ <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>+ <g><title>n</title><circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>a</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (a a) (s s) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='39.960' y='39.960' style='text-anchor: middle;'>woolam 0</text>+ </svg></div>++<pre>(defskeleton woolam+ (vars (n text) (a s b name))+ (defstrand resp 5 (n n) (a a) (s s) (b b))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig n)+ (label 0)+ (unrealized (0 2) (0 4))+ (origs (n (0 1)))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k2">2</a>.</p>++<div>+ <svg+ class='diagram' width='179.880pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 179.880 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (ltk a s))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>a</title><circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc a n (ltk b s))</title>+ <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc a (enc n (ltk a s)) (ltk b s))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (ltk a s))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>a</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (a a) (s s))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (a a) (s s) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='89.940' y='39.960' style='text-anchor: middle;'>woolam 1</text>+ </svg></div>++<pre>(defskeleton woolam+ (vars (n text) (a s b name))+ (defstrand resp 5 (n n) (a a) (s s) (b b))+ (defstrand init 3 (n n) (a a) (s s))+ (precedes ((0 1) (1 1)) ((1 2) (0 2)))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig n)+ (operation encryption-test (added-strand init 3) (enc n (ltk a s))+ (0 2))+ (label 1)+ (parent 0)+ (unrealized (0 4))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k1">1</a>, Child: <a href="#k3">3</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='189.960' x2='239.880' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 264.960 Q 142.320 300.660 44.759 411.359'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc a n (ltk b s))</title>+ <circle cx='239.880' cy='264.960' r='6.000'/></g>+ <g><title>(enc a (enc n (ltk a s)) (ltk b s))</title>+ <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (ltk a s))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>a</title><circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc a n (ltk b s))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <g><title>(enc a (enc n (ltk a s)) (ltk b s))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (ltk a s))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <path+ d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'+ style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>a</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (a a) (s s) (b b))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>+ </g>+ <g><title>((n n) (a a) (s s))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (a a) (s s) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='139.920' y='39.960' style='text-anchor: middle;'>woolam 2</text>+ </svg></div>++<pre>(defskeleton woolam+ (vars (n text) (a s b name))+ (defstrand resp 5 (n n) (a a) (s s) (b b))+ (defstrand init 3 (n n) (a a) (s s))+ (defstrand serv 2 (n n) (a a) (s s) (b b))+ (precedes ((0 1) (1 1)) ((0 1) (2 0)) ((1 2) (0 2)) ((2 1) (0 4)))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig n)+ (operation encryption-test (added-strand serv 2) (enc a n (ltk b s))+ (0 4))+ (label 2)+ (parent 1)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))</pre>++<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k2">2</a>.</p>++<div>+ <svg+ class='diagram' width='279.840pt' height='454.920pt'+ xmlns='http://www.w3.org/2000/svg' version='1.1'+ viewBox='0 0 279.840 454.920' font-size='12.000'>+ <defs>+ <marker+ id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'+ refY='5'>+ <path+ d='M 0 0 5 5 0 10'+ style='stroke-width: 2; fill: none; stroke: black;'/></marker>+ </defs>+ <line+ x1='239.880' y1='339.960' x2='239.880' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='139.920' y1='114.960' x2='139.920' y2='264.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <line+ x1='39.960' y1='114.960' x2='39.960' y2='414.960'+ style='stroke-width: 0.960; stroke: gray;'/>+ <path+ d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc a n (ltk b s))</title>+ <circle cx='239.880' cy='414.960' r='6.000'/></g>+ <g><title>(enc a (enc n (ltk a s)) (ltk b s))</title>+ <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>+ <path+ d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc n (ltk a s))</title>+ <circle cx='139.920' cy='264.960' r='6.000'/></g>+ <g><title>n</title>+ <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>+ <g><title>a</title><circle cx='139.920' cy='114.960' r='6.000'/></g>+ <g><title>(enc a n (ltk b s))</title>+ <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>+ <path+ d='M 39.960 339.960 Q 136.920 302.460 233.880 339.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>(enc a (enc n (ltk a s)) (ltk b s))</title>+ <circle cx='39.960' cy='339.960' r='6.000'/></g>+ <g><title>(enc n (ltk a s))</title>+ <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>+ <path+ d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'+ style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>+ <g><title>n</title><circle cx='39.960' cy='189.960' r='6.000'/></g>+ <g><title>a</title>+ <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>+ <g><title>((n n) (a a) (s s) (b b))</title>+ <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>+ </g>+ <g><title>((n n) (a a) (s s))</title>+ <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>+ </g>+ <g><title>((n n) (a a) (s s) (b b))</title>+ <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>+ </g>+ <text+ x='139.920' y='39.960'+ style='text-anchor: middle;'>woolam 3 (realized)</text></svg></div>++<pre>(defskeleton woolam+ (vars (n text) (a s b name))+ (defstrand resp 5 (n n) (a a) (s s) (b b))+ (defstrand init 3 (n n) (a a) (s s))+ (defstrand serv 2 (n n) (a a) (s s) (b b))+ (precedes ((0 1) (1 1)) ((0 3) (2 0)) ((1 2) (0 2)) ((2 1) (0 4)))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig n)+ (operation encryption-test (displaced 3 0 resp 4)+ (enc a (enc n (ltk a s)) (ltk b s)) (2 0))+ (label 3)+ (parent 2)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (s s) (b b) (n n))))+ (origs (n (0 1))))</pre>++</body>+</html>
doc/examples/yahalom.xhtml view
@@ -1,5 +1,5 @@ <?xml version="1.0"?>-<!-- CPSA 3.2.2 -->+<!-- CPSA 3.4.0 --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Yahalom Protocol with Forwarding Removed</title>@@ -12,7 +12,7 @@ <pre>(herald "Yahalom Protocol with Forwarding Removed" (algebra diffie-hellman) (bound 12))-(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from yahalom.scm")</pre> <p id="top">Trees: <a href="#t0">0</a> <a href="#t52">52</a>.</p>
ghci view
@@ -1,4 +1,4 @@-:set -isrc:dist/build/autogen+: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
setup.bat view
@@ -1,8 +1,3 @@-@setlocal enableextensions-@cd /d "%~dp0"-runghc Setup.hs configure-runghc Setup.hs build--runghc Setup.hs install--pause+cabal configure+cabal build+cabal install
src/CPSA/Annotations/Annotations.hs view
@@ -12,7 +12,9 @@ import qualified Data.List as L import qualified Data.Set as S import qualified Data.Maybe as M-import CPSA.Lib.CPSA+import CPSA.Lib.Utilities+import CPSA.Lib.SExpr+import CPSA.Lib.Algebra import CPSA.Annotations.Formulas {--
src/CPSA/Annotations/Formulas.hs view
@@ -11,9 +11,9 @@ displayFormula) where import Control.Monad-import Control.Applicative import qualified Data.Set as S-import CPSA.Lib.CPSA+import CPSA.Lib.SExpr+import CPSA.Lib.Algebra -- A CPSA formula is first-order logic augmented with the says modal -- operator. True is And [], and false is Or [].
src/CPSA/Annotations/Main.hs view
@@ -12,7 +12,8 @@ module Main (main) where import System.IO-import CPSA.Lib.CPSA+import CPSA.Lib.SExpr+import CPSA.Lib.Algebra import CPSA.Lib.Entry import CPSA.Annotations.Annotations import qualified CPSA.Basic.Algebra@@ -64,7 +65,7 @@ case x of Right (ps, sexpr) -> do- writeLnSEexpr output margin sexpr+ writeLnSExpr output margin sexpr return ps Left err -> abort (show err)
src/CPSA/Basic/Algebra.hs view
@@ -25,8 +25,9 @@ import qualified Data.Map as M import Data.Map (Map) import Data.Char (isDigit)-import qualified CPSA.Lib.CPSA as C-import CPSA.Lib.CPSA (SExpr(..), Pos, annotation)+import qualified CPSA.Lib.Algebra as C+import qualified CPSA.Lib.Utilities as C+import CPSA.Lib.SExpr (SExpr(..), Pos, annotation) name :: String name = "basic"@@ -53,8 +54,11 @@ origin :: Gen origin = Gen (0) +gmerge :: Gen -> Gen -> Gen+gmerge (Gen i) (Gen j) = Gen $ max i j+ freshId :: Gen -> String -> (Gen, Id)-freshId (Gen (i)) name = (Gen (i + 1), Id (i, name))+freshId (Gen i) name = (Gen (i + 1), Id (i, name)) cloneId :: Gen -> Id -> (Gen, Id) cloneId gen x = freshId gen (idName x)@@ -107,6 +111,7 @@ | Data -- Another text-like item | Name -- Principal | Skey -- Symmetric key+ | Tag -- Tag atom | Ltk -- Long term shared symmetric key | Akey -- Asymmetric key | Invk -- Inverse of asymmetric key@@ -139,7 +144,7 @@ isVar (I _) = True -- Sort: mesg isVar (F s [I _]) = -- Sorts: text, data, name, skey, and akey- s == Text || s == Data || s == Name || s == Skey || s == Akey+ s == Text || s == Data || s == Name || s == Skey || s == Akey || s == Tag isVar _ = False -- Note that isVar of (D _) is false.@@ -153,12 +158,14 @@ indicator :: Term -> Term -> Maybe Int indicator _ _ = Nothing +{- forceVar :: Term -> Term forceVar (I x) = (I x) forceVar (C x) = (C x) -- no variable! forceVar (F Text y) = (F Text y) forceVar (F Data y) = (F Data y) forceVar (F Name y) = (F Name y)+forceVar (F Tag [(I x)]) = (F Tag [(I x)]) forceVar (F Skey [(I x)]) = (F Skey [(I x)]) forceVar (F Skey [(F Ltk ns)]) = forceVar (head ns) forceVar (F Akey [(I x)]) = (F Akey [(I x)])@@ -167,6 +174,7 @@ forceVar (F _ ns) = forceVar (head ns) -- for Cat, Enc. forceVar (D x) = (D x) forceVar (P x) = (P x) -- no variable!+-} -- Extract the identifier from a variable varId :: Term -> Id@@ -176,6 +184,7 @@ varId (F Name [I x]) = x varId (F Skey [I x]) = x varId (F Akey [I x]) = x+varId (F Tag [I x]) = x varId (D x) = x varId _ = C.assertError "Algebra.varId: term not a variable with its sort" @@ -183,6 +192,9 @@ isAcquiredVar (I _) = True isAcquiredVar _ = False +isObtainedVar :: Term -> Bool+isObtainedVar _ = False+ -- A list of terms are well-formed if each one has the correct -- structure and every occurrence of an identifier in a term has the -- same sort. Variable environments are used to check the sort@@ -234,6 +246,8 @@ extendVarEnv xts x t -- Name variable termWellFormed xts t@(F Skey [I x]) = extendVarEnv xts x t -- Symmetric key variable+termWellFormed xts t@(F Tag [I x]) =+ extendVarEnv xts x t -- Tag variable termWellFormed xts (F Skey [F Ltk [I x, I y]]) = -- Long term shared symmetric key doubleTermWellFormed xts (F Name [I x]) (F Name [I y])@@ -246,7 +260,7 @@ F Invk [F Pubk [I x]] -> extendVarEnv xts x (F Name [I x]) F Invk [F Pubk [C _, I x]] -> extendVarEnv xts x (F Name [I x]) _ -> Nothing-termWellFormed xts (C _) =+termWellFormed xts (F Tag [(C _)]) = Just xts -- Tags termWellFormed xts (F Cat [t0, t1]) = doubleTermWellFormed xts t0 t1 -- Concatenation@@ -272,9 +286,9 @@ -- Is the sort of the term a base sort? isAtom :: Term -> Bool isAtom (I _) = False-isAtom (C _) = False+isAtom (C _) = True isAtom (F s _) =- s == Text || s == Data || s == Name || s == Skey || s == Akey+ s == Text || s == Data || s == Name || s == Skey || s == Akey || s == Tag isAtom (D _) = False isAtom (P _) = False @@ -301,6 +315,7 @@ foldVars :: (a -> Term -> a) -> a -> Term -> a foldVars f acc t@(I _) = f acc t -- Mesg variable foldVars f acc t@(F Text [I _]) = f acc t -- Text variable+foldVars f acc t@(F Tag [I _]) = f acc t -- Tag variable foldVars f acc t@(F Data [I _]) = f acc t -- Data variable foldVars f acc t@(F Name [I _]) = f acc t -- Name variable foldVars f acc t@(F Skey [I _]) = f acc t -- Symmetric keys@@ -312,7 +327,7 @@ foldVars f acc (F Akey [F Pubk [C _, I x]]) = f acc (F Name [I x]) foldVars f acc (F Akey [F Invk [F Pubk [I x]]]) = f acc (F Name [I x]) foldVars f acc (F Akey [F Invk [F Pubk [C _, I x]]]) = f acc (F Name [I x])-foldVars _ acc (C _) = acc -- Tags+foldVars _ acc (F Tag [(C _)]) = acc -- Tags foldVars f acc (F Cat [t0, t1]) = -- Concatenation foldVars f (foldVars f acc t0) t1 foldVars f acc (F Enc [t0, t1]) = -- Encryption@@ -357,7 +372,6 @@ ba term where ba (I _) = True -- A mesg sorted variable is always buildable- ba (C _) = True -- and so is a tag ba (F Cat [t0, t1]) = ba t0 && ba t1 ba t@(F Enc [t0, t1]) =@@ -435,14 +449,38 @@ not (buildable ts a (inv key)) f _ = False +isBase :: Term -> Bool+isBase _ = False++isExpr :: Term -> Bool+isExpr _ = False++{-+isExpn :: Term -> Bool+isExpn _ = False+-}++expnInExpr :: Term -> Term -> Bool+expnInExpr _ _ = False++consts :: Term -> [Term] -> [Term]+consts (F Tag _) ts =+ loop [] ts+ where+ loop acc [] = acc+ loop acc ((C str): ts) = loop ((C str): acc) ts+ loop acc ((F _ subts): ts) = loop acc (subts ++ ts)+ loop acc (_ : ts) = loop acc ts+consts _ _ = []+ instance C.Term Term where derivable = derivable isNum = isNum subNums = subNums indicator = indicator- forceVar = forceVar isVar = isVar isAcquiredVar = isAcquiredVar+ isObtainedVar = isObtainedVar isAtom = isAtom isNodeVar = isNodeVar termsWellFormed = termsWellFormed@@ -457,6 +495,10 @@ encryptions = encryptions escapeSet = escapeSet loadTerm = loadTerm2+ isBase = isBase+ isExpr = isExpr+ expnInExpr = expnInExpr+ consts = consts -- Places @@ -538,9 +580,6 @@ placeIsPrefixOf = prefix placeStripPrefix = strip -genericize :: Gen -> Term -> (Gen, Term)-genericize g t = (g, t)- -- Rename the identifiers in a term. Gen keeps the state of the -- renamer. (Question: should alist be replaced by a Map?) clone :: Gen -> Term -> (Gen, Term)@@ -572,12 +611,23 @@ let (alist', gen', t') = cloneTerm (alist, gen) t in (alist', gen', t' : u) +basePrecursor :: Gen -> Term -> (Gen, Term)+basePrecursor _ _ =+ error "Algebra.basePrecursor: Not implemented for the basic algebra"++{-+mostGenPrecursors :: Gen -> Term -> [(Gen, Term)]+mostGenPrecursors _ _ = []+-}+ instance C.Gen Term Gen where origin = origin- genericize = genericize+ gmerge = gmerge+-- genericize = genericize -- genericVersion = genericize clone = clone loadVars = loadVars+ basePrecursor = basePrecursor -- Functions used in both unification and matching @@ -744,6 +794,11 @@ destroyer :: Term -> Maybe Subst destroyer _ = Nothing +-- Stub absence substitution generator.+absenceSubst :: Gen -> [(Term, Term)] -> [(Gen, Subst)]+absenceSubst g [] = [(g, emptySubst)]+absenceSubst _ _ = error "Algebra.absenceSubst: not supported"+ instance C.Subst Term Gen Subst where emptySubst = emptySubst destroyer = destroyer@@ -751,6 +806,7 @@ unify t t' (g, s) = maybe [] (\s -> [(g, s)]) $ unify t t' s compose = compose+ absenceSubst = absenceSubst -- Matching and instantiation @@ -793,25 +849,6 @@ maybe Nothing (matchLists u u') (match t t' r) matchLists _ _ _ = Nothing --- Does every varible in ts not occur in the domain of e?--- Trivial bindings in e are ignored.-identityEnvFor :: Env -> [Term] -> Bool-identityEnvFor (Env r) ts =- all (allId $ flip S.notMember dom) ts- where- dom = M.foldrWithKey f S.empty r -- The domain of r- f x (I y) dom- | x == y = dom -- Ignore trivial bindings- | otherwise = S.insert x dom- f x _ dom = S.insert x dom--allId :: (Id -> Bool) -> Term -> Bool-allId f (I x) = f x-allId _ (C _) = True-allId f (F _ u) = all (allId f) u-allId f (D x) = f x-allId _ (P _) = True- -- Cast an environment into a substitution by filtering out trivial -- bindings. @@ -840,21 +877,12 @@ | x == y = (F Skey [I x], F Skey [t]) loop (F Akey [I x] : _) (y, t) | x == y = (F Akey [I x], F Akey [t])+ loop (F Tag [I x] : _) (y, t)+ | x == y = (F Tag [I x], F Tag [t]) loop (D x : _) (y, t) | x == y = (D x, t) loop (_ : domain) pair = loop domain pair --- Ensure the range of an environment contains only variables and that--- the environment is injective.-matchRenaming :: Env -> Bool-matchRenaming (Env e) =- loop S.empty $ M.elems e- where- loop _ [] = True- loop s (I x:e) =- not (S.member x s) && loop (S.insert x s) e- loop _ _ = False- nodeMatch :: Term -> (Int, Int) -> Env -> Maybe Env nodeMatch t p env = match t (P p) env @@ -869,14 +897,8 @@ instantiate = instantiate match t t' (g, e) = maybe [] (\e -> [(g, e)]) $ match t t' e- identityEnvFor (g, e) ts =- if identityEnvFor e ts then- [(g, e)]- else- [] substitution = substitution reify = reify- matchRenaming (_, e) = matchRenaming e nodeMatch t t' (g, e) = maybe [] (\e -> [(g, e)]) $ nodeMatch t t' e nodeLookup = nodeLookup@@ -891,8 +913,8 @@ return (g, reverse vars) loadVarPair :: Monad m => SExpr Pos -> m [(SExpr Pos, SExpr Pos)]-loadVarPair (L _ (x:xs)) =- let (t:vs) = reverse (x:xs) in+loadVarPair (L _ (x:y:xs)) =+ let (t:vs) = reverse (x:y:xs) in return [(v,t) | v <- reverse vs] loadVarPair x = fail (shows (annotation x) "Bad variable declaration") @@ -916,6 +938,7 @@ "name" -> return $ F Name [I x] "skey" -> return $ F Skey [I x] "akey" -> return $ F Akey [I x]+ "tag" -> return $ F Tag [I x] "node" -> return (D x) _ -> fail (shows pos' "Sort " ++ sort ++ " not recognized") loadVar _ (x,_) = fail (shows (annotation x) "Malformed vars declaration")@@ -948,7 +971,7 @@ loadTerm vars (S pos s) = either fail return (loadLookup pos vars s) loadTerm _ (Q _ t) =- return (C t)+ return (F Tag [(C t)]) loadTerm vars (L pos (S _ s : l)) = case lookup s loadDispatch of Nothing -> fail (shows pos "Keyword " ++ s ++ " unknown")@@ -997,6 +1020,33 @@ do t <- loadLookupAkey pos vars s return $ F Akey [F Invk [I $ varId t]]+loadInvk _ vars [L _ [S _ pubk, S pos s]]+ | pubk == "pubk" =+ do+ t <- loadLookupName pos vars s+ return $ F Akey [F Invk [F Pubk [I $ varId t]]]+loadInvk _ vars [L _ [S _ pubk, Q _ c, S pos s]]+ | pubk == "pubk" =+ do+ t <- loadLookupName pos vars s+ return $ F Akey [F Invk [F Pubk [C c, I $ varId t]]]+loadInvk _ vars [L _ [S _ privk, S pos s]]+ | privk == "privk" =+ do+ t <- loadLookupName pos vars s+ return $ F Akey [F Pubk [I $ varId t]]+loadInvk _ vars [L _ [S _ privk, Q _ c, S pos s]]+ | privk == "privk" =+ do+ t <- loadLookupName pos vars s+ return $ F Akey [F Pubk [C c, I $ varId t]]+loadInvk _ vars [L _ [S _ invk, t]]+ | invk == "invk" =+ do+ a <- loadTerm vars t+ case a of+ F Akey _ -> return a+ _ -> fail (shows (annotation t) "Expecting an akey") loadInvk pos _ _ = fail (shows pos "Malformed invk") loadLtk :: Monad m => LoadFunction m@@ -1061,6 +1111,7 @@ displayVar ctx (F Name [I x]) = displaySortId "name" ctx x displayVar ctx (F Skey [I x]) = displaySortId "skey" ctx x displayVar ctx (F Akey [I x]) = displaySortId "akey" ctx x+displayVar ctx (F Tag [I x]) = displaySortId "tag" ctx x displayVar ctx (D x) = displaySortId "node" ctx x displayVar _ _ = C.assertError "Algebra.displayVar: term not a variable with its sort"@@ -1081,6 +1132,7 @@ displayTerm ctx (F Text [I x]) = displayId ctx x displayTerm ctx (F Data [I x]) = displayId ctx x displayTerm ctx (F Name [I x]) = displayId ctx x+displayTerm ctx (F Tag [I x]) = displayId ctx x displayTerm ctx (F Skey [I x]) = displayId ctx x displayTerm ctx (F Skey [F Ltk [I x, I y]]) = L () [S () "ltk", displayId ctx x, displayId ctx y]@@ -1094,6 +1146,7 @@ F Invk [F Pubk [C c, I x]] -> L () [S () "privk", Q () c, displayId ctx x] _ -> C.assertError ("Algebra.displayAkey: Bad term " ++ show t)+displayTerm _ (F Tag [(C t)]) = Q () t displayTerm _ (C t) = Q () t displayTerm ctx (F Cat [t0, t1]) = L () (S () "cat" : displayTerm ctx t0 : displayList ctx t1)@@ -1123,10 +1176,10 @@ -- variables that occur in s might not be in c. Enough sort -- inference is performed so as to allow the extension of the context. displaySubst :: Context -> Subst -> [SExpr ()]-displaySubst ctx s@(Subst r) =+displaySubst ctx (Subst r) = map (\(x, t) -> L () [displayTerm ctx' x, displayTerm ctx' t]) r' where- r' = map (\(x, t) -> (I x, inferSort (substitute s t))) $ M.assocs r+ r' = map (\(x, t) -> (I x, inferSort t)) $ M.assocs r ctx' = foldl (\ctx (x, t) -> addToContext ctx [x, t]) ctx r' inferSort :: Term -> Term
src/CPSA/Diff/Main.hs view
@@ -15,7 +15,8 @@ import System.Console.GetOpt import System.Exit import Paths_cpsa-import CPSA.Lib.CPSA+import CPSA.Lib.SExpr+import CPSA.Lib.Printer import CPSA.Lib.Entry main :: IO ()
src/CPSA/DiffieHellman/Algebra.hs view
@@ -113,26 +113,12 @@ import qualified Data.Map as M import Data.Map (Map) import Data.Char (isDigit)-import qualified CPSA.Lib.CPSA as C-import CPSA.Lib.CPSA (SExpr(..), Pos, annotation)--{- Export iUnify and iMatch for GHCi for debugging--For this to work, you must install the package bytestring-handle from-Hackage and tell GHCi that it is not hidden on the command line or-within GHCi with:--:set -package bytestring-handle---}+import qualified CPSA.Lib.Algebra as C+import qualified CPSA.Lib.Utilities as C+import CPSA.Lib.SExpr (SExpr(..), Pos, annotation) {---import System.IO (Handle)-import Data.ByteString.Lazy.Char8 (pack)-import Data.ByteString.Handle-import Control.Exception (try) --}-{----- Debugging support+-- Debugging support (Comment line above) import System.IO.Unsafe z :: Show a => a -> b -> b@@ -144,6 +130,10 @@ zzz :: (Show a, Show b) => a -> b -> b zzz x y = z (x,y) y +zcond :: (Show a, Show b) => Bool -> a -> b -> b+zcond True x y = zzz x y+zcond False _ y = y+ zn :: Show a => a -> Maybe b -> Maybe b zn x Nothing = z x Nothing zn _ y = y@@ -156,8 +146,38 @@ zt x True = z x True zt _ y = y --}-{-- +{-++Export iUnify and iMatch for GHCi for debugging (Comment marked line below)++For this to work, you must install the package bytestring-handle from+Hackage and tell GHCi that it is not hidden on the command line or+within GHCi with:++:set -package bytestring-handle++The best way is in add this line to the beginning of your .ghci, and+start ghci with:++$ ghci src/CPSA/DiffieHellman/Algebra.hs++Example++*CPSA.DiffieHellman.Algebra> iMatch "(a b text)" "a" "b"+[Env (+ fromList [],+ Id (0,"a") -> I (Id (1,"b")))]++-}++{- Comment this line to enable advanced debugging+import System.IO (Handle)+import System.IO.Unsafe+import Data.ByteString.Lazy.Char8 (pack)+import Data.ByteString.Handle+import Control.Exception (try)+ stringHandle :: String -> IO Handle stringHandle s = readHandle False (pack s) @@ -206,8 +226,8 @@ [t] <- sLoad t [t'] <- sLoad t' (gen, vars) <- loadVars origin vars- t <- loadTerm vars t- t' <- loadTerm vars t'+ t <- loadTerm vars False t+ t' <- loadTerm vars False t' (_, a) <- f t t' (gen, mt) return a @@ -252,8 +272,11 @@ origin :: Gen origin = Gen (0) +gmerge :: Gen -> Gen -> Gen+gmerge (Gen i) (Gen j) = Gen $ max i j+ freshId :: Gen -> String -> (Gen, Id)-freshId (Gen (i)) name = (Gen (i + 1), Id (i, name))+freshId (Gen i) name = (Gen (i + 1), Id (i, name)) cloneId :: Gen -> Id -> (Gen, Id) cloneId gen x = freshId gen (idName x)@@ -283,7 +306,7 @@ -- Assumes isGroupVar t == True or isBasisVar t == True! getGroupVar :: Group -> Id getGroupVar x = head $ M.keys x-+ -- Create group var as a basis element if be is true groupVar :: Bool -> Id -> Term groupVar be x = G $ M.singleton x (be, 1)@@ -311,7 +334,8 @@ g c Nothing = -- Variable x not currently mapped Just c -- so add a mapping g (b, c) (Just (b', c')) -- Variable x maps to c'- | b /= b' = C.assertError "Algebra.mul: sort mismatch"+ | b /= b' = C.assertError+ ("Algebra.mul: sort mismatch " ++ show t ++ " - " ++ show t') | c + c' == 0 = Nothing -- Delete the mapping | otherwise = Just $ (b, c + c') -- Adjust the mapping @@ -419,6 +443,7 @@ equalTerm (P p) (P p') = p == p' equalTerm _ _ = False +{- forceVar :: Term -> Term forceVar x | not $ termsWellFormed [x] = error ("Algebra.hs:forceVar: terms not well formed" ++ show x)@@ -444,6 +469,7 @@ forceVar (D x) = (D x) forceVar (P x) = (P x) -- no variable! forceVar _ = error ("Algebra.hs:forceVar: something unexpected happened.")+-} equalTermLists :: [Term] -> [Term] -> Bool equalTermLists [] [] = True@@ -567,10 +593,13 @@ isAcquiredVar :: Term -> Bool isAcquiredVar (I _) = True-isAcquiredVar (F Base [I _]) = True-isAcquiredVar (G x) = isExprVar x isAcquiredVar _ = False +isObtainedVar :: Term -> Bool+isObtainedVar (G x) = isExprVar x+isObtainedVar (F Base [I _]) = True+isObtainedVar _ = False+ -- A list of terms are well-formed if each one has the correct -- structure and every occurrence of an identifier in a term has the -- same sort. Variable environments are used to check the sort@@ -664,6 +693,16 @@ xts <- termWellFormed xts t0 termWellFormed xts t1 +{-+-- Is there an identifier incompatible with gen?+badGen :: Gen -> Term -> Bool+badGen (Gen g) t =+ foldVars f False t+ where+ f b t = b || i >= g+ where Id (i, _) = varId t+--}+ -- Is the sort of the term a base sort? isAtom :: Term -> Bool isAtom (I _) = False@@ -742,6 +781,7 @@ foldVars f acc (F Hash [t]) = -- Hashing foldVars f acc t foldVars f acc t@(D _) = f acc t -- Node variable+foldVars _ acc (C _) = acc foldVars _ _ t = error $ "Algebra.foldVars: Bad term " ++ show t -- Fold f through a term applying it to each term that is carried by the term.@@ -764,13 +804,13 @@ _ -> False -- Is a term relevant to t held by another term t'?-relevantCarriedBy :: Set Term -> Term -> Term -> Bool-relevantCarriedBy avoid t t' =- relevant avoid t t' ||- case t' of- F Cat [t0, t1] -> relevantCarriedBy avoid t t0 || relevantCarriedBy avoid t t1- F Enc [t0, _] -> relevantCarriedBy avoid t t0- _ -> False+-- relevantCarriedBy :: Set Term -> Term -> Term -> Bool+-- relevantCarriedBy avoid t t' =+-- relevant avoid t t' ||+-- case t' of+-- F Cat [t0, t1] -> relevantCarriedBy avoid t t0 || relevantCarriedBy avoid t t1+-- F Enc [t0, _] -> relevantCarriedBy avoid t t0+-- _ -> False -- Is atom a constituent of a term? In other words, is atom among -- the set of atoms required to construct the term?@@ -798,6 +838,7 @@ ba t@(F Hash [t1]) = S.member t knowns || ba t1 ba t@(F Base _) = bb t+ ba (G t1) = be t1 ba t = isAtom t && not (S.member t unguessable) -- Buildable base term bb (F Base [I _]) = True -- A variable of sort base is always buildable@@ -964,6 +1005,8 @@ indicatorBasis = S.fold mul M.empty numAvoid indicator _ t = error ("Algebra.hs: indicator called on a non-base " ++ show t) +-- Return Just (set) when ct is not derivable.+-- Return Nothing when ct is derivable. escapeSet :: Set Term -> Set Term -> Term -> Maybe (Set Term) escapeSet ts a ct = if buildable ts a ct then@@ -972,16 +1015,49 @@ Just $ S.filter f ts where f (F Enc [t, key]) =- relevantCarriedBy a ct t &&+ carriedBy ct t && not (buildable ts a (inv key))- f t = relevant a ct t+ f _ = False +isBase :: Term -> Bool+isBase (F Base _) = True+isBase _ = False++isExpr :: Term -> Bool+isExpr (G _) = True+isExpr _ = False++{-+isExpn :: Term -> Bool+isExpn (G t) = isBasisVar t+isExpn _ = False+-}++expnInExpr :: Term -> Term -> Bool+expnInExpr (G n) (G r) =+ isBasisVar n &&+ not (isBasisVar r) &&+ M.member (getGroupVar n) r+expnInExpr _ _ = False++consts :: Term -> [Term] -> [Term]+consts (F Base _) _ = [F Base [F Genr []]]+consts (G _) _ = [G M.empty]+consts (F Tag _) ts =+ loop [] ts+ where+ loop acc [] = acc+ loop acc ((C str): ts) = loop ((C str): acc) ts+ loop acc ((F _ subts): ts) = loop acc (subts ++ ts)+ loop acc (_ : ts) = loop acc ts+consts _ _ = []+ instance C.Term Term where derivable = derivable isNum = isNum isVar = isVar isAcquiredVar = isAcquiredVar- forceVar = forceVar+ isObtainedVar = isObtainedVar subNums = subNums indicator = calcIndicator isAtom = isAtom@@ -998,6 +1074,10 @@ encryptions = encryptions escapeSet = escapeSet loadTerm = loadTerm+ isBase = isBase+ isExpr = isExpr+ expnInExpr = expnInExpr+ consts = consts -- Places @@ -1121,11 +1201,12 @@ placeIsPrefixOf = prefix placeStripPrefix = strip +{- -- Genericize: transform h^e -> (h^e)^e' where e' is a cloned -- variable, cloned off the first variable in e.-genericize :: Gen -> Term -> (Gen, Term)+genericize :: Gen -> Term -> Maybe (Gen, [Term]) genericize gen (F Base [F Exp [base, G grp]]) =- (gen', F Base [F Exp [base, G (mul grp exp')]])+ Just (gen', [F Base [F Exp [base, G (mul grp' exp')]], gexp']) where (gen', gexp') = clone gen (G exp) exp = if (null (M.toList grp)) then@@ -1133,10 +1214,19 @@ else M.fromList [let (x, (_,n)) = head (M.toList grp) in (x, (False,n))]+ -- Get rid of non-basis element variables from grp.+ factors' = filter (\(_, (b, _)) -> b) (factors grp)+ grp' = M.fromList factors' exp' = case gexp' of G x -> x _ -> C.assertError "Algebra.genericize: Something odd happened"-genericize g t = (g, t)+genericize g (G grp) =+ if (isAtom (G grp)) then Nothing else+ -- list of variables occurring in grp+ Just (g, map (\(v, (b, _)) -> G (M.fromList [(v, (b, 1))]))+ (factors grp))+genericize _ _ = Nothing+-} {- genericVersion :: Gen -> Term -> (Gen, Term)@@ -1194,12 +1284,34 @@ let (gen', y) = cloneId gen x in ((x, y) : alist, gen', (y, (be, n)) : ts) +{-+mostGenPrecursors :: Gen -> Term -> [(Gen, Term)]+mostGenPrecursors g t =+ case (genericize g t) of+ Nothing -> []+ Just (_, []) -> []+ Just (gen, [v]) -> [(gen, v)]+ Just (gen, ts) -> [(gen, foldr1 (\a b -> F Cat [a, b]) ts)]+-}++basePrecursor :: Gen -> Term -> (Gen, Term)+basePrecursor g (F Base [t]) =+ (g', F Cat [F Base [F Exp [t, G $ invert x']], G x'])+ where+ (g', x) = freshId g "w"+ G x' = groupVar False x++basePrecursor _ t =+ error ("Algebra.basePrecursor: Bad term " ++ show (F Base [t]))+ instance C.Gen Term Gen where origin = origin- genericize = genericize+ gmerge = gmerge+-- genericize = genericize -- genericVersion = genericVersion clone = clone loadVars = loadVars+ basePrecursor = basePrecursor -- Functions used in both unification and matching @@ -1393,7 +1505,7 @@ unifyTerms (F Bltk u) (F Bltk u') s = L.nub $ unifyTermLists u u' s ++ unifyTermLists u (reverse u') s unifyTerms (F Base [t0]) (F Base [t1]) s =- unifyBase t0 t1 s+ unifyBase (chase (snd s) t0) (chase (snd s) t1) s unifyTerms (F sym u) (F sym' u') s | sym == sym' = unifyTermLists u u' s | otherwise = []@@ -1527,12 +1639,133 @@ Just $ Subst (M.fromList [(head $ M.keys m, G M.empty)]) destroyer _ = Nothing +-- Stub absence substitution generator. The current implementation+-- never identifies basis variables.++absenceSubst :: Gen -> [(Term, Term)] -> [(Gen, Subst)]+absenceSubst g as =+ latticeCrawl g $ simplifyAbs [] as+ where+ simplifyAbs as [] = as+ simplifyAbs acc (a : as) =+ case a of+ (G v, t) | isBasisVar v -> simplifyAbs ((getGroupVar v, t) : acc) as+ _ -> error ("Algebra.absenceSubst: bad absence assertion " ++ show a)++partitionSet :: [a] -> [[[a]]]+partitionSet [] = [[]]+partitionSet (x:xs) = [ys | yss <- partitionSet xs, ys <- bloat x yss]++bloat :: a -> [[a]] -> [[[a]]]+bloat x [] = [[[x]]]+bloat x (xs:xss) = ((x:xs):xss) : map (xs:) (bloat x xss)++{--+partitionMoreGeneral :: (Eq a, Foldable t, Foldable t1, Foldable t2, Foldable t3) =>+ t (t2 a) -> t1 (t3 a) -> Bool+partitionMoreGeneral p1 p2 =+ all (\c1 -> any (\c2 -> all (\e -> elem e c2) c1) p2) p1+--}++nontrivClasses :: [[a]] -> [[a]]+nontrivClasses xss = [xs | xs <- xss, length xs > 1]++fullCrawl :: Bool+fullCrawl = True -- False++-- This function should produce a comprehensive answer, involving expn unification+-- if necessary, and returning an empty list *only* if no solution is possible.+--+-- Full version not yet implemented.+latticeCrawl :: Gen -> [(Id, Term)] -> [(Gen, Subst)]+latticeCrawl g as =+ case nullifyAll g as of+ (gs : gss) -> (gs : gss)+ [] -> if fullCrawl then bruteForceResults else []+ where+ gatherAllExpns as = doGatherAll [] as+ doGatherAll acc [] = L.nub acc+ doGatherAll acc ((v,t):as) =+ doGatherAll (acc ++ [v] ++ (gatherInTerm t)) as+ gatherInTerm (G m) =+ map fst (filter (\(_,(b,_))->b) $ M.assocs m)+ gatherInTerm (F Base [F Genr []]) = []+ gatherInTerm (F Base [I _]) = []+ gatherInTerm (F Base [F Exp [_, G m]]) = gatherInTerm (G m)+ gatherInTerm _ = error ("Algebra.latticeCrawl: unexpected pattern")+ allExpns = map (\id -> G (M.singleton id (True,1))) $ gatherAllExpns as+ allExpnIds = map foo allExpns+ foo (G grp) = getGroupVar grp+ foo _ = C.assertError ("Algebra.latticeCrawl: critical failure!")+ allPartitions = map nontrivClasses (partitionSet allExpnIds)+ bruteForceResults = [gs | part <- allPartitions, gs <- nullifyAllPartition g as part]++nullifyAll :: Gen -> [(Id, Term)] -> [(Gen, Subst)]+nullifyAll g [] = [(g, emptySubst)]+nullifyAll g as@((v,_):_) =+ [(g1, s1) | (g2, s2) <- nullifyAll g (filter neqv as),+ (g1, s1) <- nullifyOne g2 (filter eqv as) s2]+ where+ eqv (v',_) = (v == v')+ neqv vm = not (eqv vm)++nullifyAllPartition :: Gen -> [(Id, Term)] -> [[Id]] -> [(Gen, Subst)]+nullifyAllPartition g [] _ = [(g, emptySubst)]+nullifyAllPartition g as part =+ [(g, compose s partUnifier) | (g', partUnifier) <- partUnifiers,+ (g,s) <- nullifyAll g' (apply partUnifier as)]+ where+ partUnifiers = partUnifierLoop part [(g, emptySubst)]+ partUnifierLoop [] acc = acc+ partUnifierLoop ([]:rest) acc = partUnifierLoop rest acc+ partUnifierLoop ([_]:rest) acc = partUnifierLoop rest acc+ partUnifierLoop ((a:(b:more)):rest) acc = partUnifierLoop ((b:more):rest)+ [gs' | gs <- acc, gs' <- unify (groupVar True a) (groupVar True b) gs]+ apply s as =+ map (substituteIdTerm s) as++-- Guaranteed that as has all first elements the same+nullifyOne :: Gen -> [(Id,Term)] -> Subst -> [(Gen, Subst)]+nullifyOne g as s =+ map (\(g,e) -> (g, compose (substitution e) s)) ges+ where+ isolateExprs (v, (G m)) =+ (v, G $ M.filterWithKey (\k (b,_) -> ((not b) || k == v)) m)+ isolateExprs (v, (F Base [F Exp [base, G m]])) =+ (v, F Base [F Exp [base, snd $ isolateExprs (v,(G m))]])+ isolateExprs (v, t@(F Base _)) = (v, t)+ isolateExprs _ = C.assertError "Algebra.nullifyOne: unexpected pattern"+ expnNullified v (G m) = G $ M.delete v m+ expnNullified v (F Base [F Exp [base, G m]]) =+ F Base [F Exp [base, expnNullified v (G m)]]+ expnNullified _ t@(F Base _) = t+ expnNullified _ _ = C.assertError "Algebra.nullifyOne: unexpected pattern"+ lefts = map snd isas+ rights = map (\(v, t) -> expnNullified v t) isas+ sas = map (substituteIdTerm s) as+ isas = map isolateExprs sas+ ges = matchLists lefts rights (g, emptyEnv)++substituteIdTerm :: Subst -> (Id, Term) -> (Id, Term)+substituteIdTerm s (v,t) =+ (substituteForceBasisVar s v, substitute s t)++substituteForceBasisVar :: Subst -> Id -> Id+substituteForceBasisVar (Subst s) v =+ case M.lookup v s of+ Nothing -> v+ Just t -> case t of+ (G v') | isBasisVar v' -> getGroupVar v'+ _ -> C.assertError ("Algebra.hs: Unable to force" +++ " substitution to produce basis variable")+ instance C.Subst Term Gen Subst where emptySubst = emptySubst destroyer = destroyer substitute = substitute unify = unify compose = compose+ absenceSubst = absenceSubst -- Matching and instantiation @@ -1576,6 +1809,18 @@ -- g is a generator for the destination/flex algebra -- variables in the domain of r are source variables -- terms in the range of r are destination/flex terms.++{-+xmatch :: Term -> Term -> GenEnv -> [GenEnv]+xmatch x y e@(g, _)+ | badGen g x =+ error ("match: " ++ show g ++ ": " ++ show x)+ | badGen g y =+ error ("match: " ++ show g ++ ": " ++ show y)+ | otherwise =+ match x y e+--}+ match :: Term -> Term -> GenEnv -> [GenEnv] match (I x) t (g, Env (v, r)) = case M.lookup x r of@@ -1622,7 +1867,13 @@ -- feed the appropriate inputs to matchExp. -- Take h to mean h^1 for either base variable h or h = (gen). -- Fall back to match algorithm when left side is F Genr [].+ matchBase :: Term -> Term -> GenEnv -> [GenEnv]+-- matchBase x y (g, _)+-- | badGen g (F Base [x]) =+-- error ("matchBase: " ++ show g ++ ": " ++ show x)+-- | badGen g (F Base [y]) =+-- error ("matchBase: " ++ show g ++ ": " ++ show y) matchBase (F Exp [t0, G t1]) (F Exp [t0', G t1']) ge = matchExp t0 t1 t0' t1' ge matchBase (F Exp [t0, G t1]) (I x) ge@@ -1707,15 +1958,15 @@ -- v is the set of previously freshly generated variables -- g is the generator --- Returns complete set of unifiers. Each unifier include the set of--- variables fresh generated and a generator.+-- Returns complete set of unifiers. Each unifier includes the set of+-- variables freshly generated and a generator. matchGroup :: Group -> Group -> Set Id -> Gen -> IdMap -> [(Set Id, Gen, IdMap)] matchGroup t0 t1 v g r = let (t0', t1') = merge t0 t1 r -- Apply subst to LHS (v', g', r') = genVars v g t0' r -- Gen vars for non-fresh vars- d = mkInitMatchDecis t1' in -- Ensure expns on RHS stay distinct+ d = mkInitMatchDecis v' t1' in -- Ensure expns on RHS stay distinct case partition (groupSubst r' t0') t1' v' of ([], []) -> return (v', g', r') ([], t) -> constSolve t v' g' r' d -- No variables of sort expr here@@ -1741,10 +1992,25 @@ genVars v g t r = M.foldlWithKey genVar (v, g, r) t where+ genVar (v, g, r) x (be, _)+ | S.member x v = (v, g, r)+ | otherwise =+ (S.insert x' v, g', M.insert x (groupVar be x') r)+ where+ (g', x') = cloneId g x++-- This was the long used version, but it generates fresh vars fo all+-- vars in t.+{-+genVars :: Set Id -> Gen -> Group -> IdMap -> (Set Id, Gen, IdMap)+genVars v g t r =+ M.foldlWithKey genVar (v, g, r) t+ where genVar (v, g, r) x (be, _) = (S.insert x' v, g', M.insert x (groupVar be x') r) where (g', x') = cloneId g x+--} -- A set of decisions records expn variables that have been identified -- and those that are distinct.@@ -1760,12 +2026,12 @@ same = [], dist = [] } --- Ensure bases elements in t are never identified-mkInitMatchDecis :: Group -> Decision Id-mkInitMatchDecis t =+-- Ensure non-freshly generated bases elements in t are never identified+mkInitMatchDecis :: Set Id -> Group -> Decision Id+mkInitMatchDecis vs t = mkDecis { dist = [(x, y) | x <- v, y <- v, x /= y] } where- v = [x | (x, (be, _)) <- M.assocs t, be]+ v = [x | (x, (be, _)) <- M.assocs t, be, not $ S.member x vs] -- Move fresh variables on the RHS of the equation to the LHS -- Move variables of sort expn on the LHS to the RHS@@ -1774,7 +2040,7 @@ (M.assocs lhs, M.assocs rhs) where (v1, c1) = M.partitionWithKey g t1 -- Fresh variables go in v1- g x _ = S.member x v+ g x y = S.member x v && f y -- only when they are exprs (v0, c0) = M.partition f t0 -- Basis elements go in c0 f (be, _) = not be lhs = mul v0 (invert v1)@@ -1997,30 +2263,6 @@ y' = groupVar True y d' = d {same = (x, y):same d} --- Does every varible in ts not occur in the domain of e?--- Trivial bindings in e are ignored.-identityEnvFor :: GenEnv -> [Term] -> Maybe GenEnv-identityEnvFor ge ts =- let env@(_, Env (_, r)) = nonTrivialEnv ge in- if all (allId $ flip S.notMember $ M.keysSet r) ts then- Just env- else- Nothing--allId :: (Id -> Bool) -> Term -> Bool-allId f (I x) = f x-allId _ (C _) = True-allId f (F _ u) = all (allId f) u-allId f (G t) = all f (M.keys t)-allId f (D x) = f x-allId _ (P _) = True---- Eliminate all trivial bindings so that an environment can be used--- as a substitution.-nonTrivialEnv :: GenEnv -> GenEnv-nonTrivialEnv (g, Env (v, r)) =- (g, Env (v, M.filterWithKey nonTrivialBinding r))- {- nonTrivialEnv :: GenEnv -> GenEnv nonTrivialEnv (g, Env (v, r)) =@@ -2091,57 +2333,22 @@ -- Ensure the range of an environment contains only variables and that -- the environment is injective.-{- matchRenaming :: GenEnv -> Bool-matchRenaming (_, Env (_, e)) =- loop S.empty $ M.elems e- where- loop _ [] = True- loop s (I x:e) =- S.notMember x s && loop (S.insert x s) e- loop s (G y:e) | isGroupVar y =- let x = getGroupVar y in- S.notMember x s && loop (S.insert x s) e- loop _ _ = False -} -matchRenaming :: GenEnv -> Bool-matchRenaming (gen, Env (v, e)) =+ {-+matchRenaming (gen, Env (v, e)) = True nonGrp S.empty (M.elems e) && groupMatchRenaming v gen (M.foldrWithKey grp M.empty e) where nonGrp _ [] = True nonGrp s (I x:e) = not (S.member x s) && nonGrp (S.insert x s) e+ nonGrp s (F Invk [I x]:e) =+ not (S.member x s) && nonGrp (S.insert x s) e nonGrp s (G _:e) = nonGrp s e -- Check group bindings elsewhere nonGrp _ _ = False grp x (G t) map = M.insert x t map grp _ _ map = map---- For exponents, what we're looking for is an invertible--- map. It doesn't have to be a strict renaming.--- For instance x -> yz, w -> z is not a renaming, but z -> w, y -> w^{-1}x inverts it.-groupMatchRenaming :: Set Id -> Gen -> Map Id Group -> Bool-groupMatchRenaming v gen map =- loop S.empty $ M.elems map- where- loop _ [] = True- loop s (t:ge)- | M.null t = False- | isGroupVar t =- let x = varId (G t) in- not (S.member x s) && loop (S.insert x s) ge- | M.size t == 1 && snd (head (M.elems t)) == -1 =- let x = getGroupVar t in- not (S.member x s) && loop (S.insert x s) ge- | otherwise = any (groupMatchElim v gen map t) (M.assocs t)--groupMatchElim :: Set Id -> Gen -> Map Id Group -> Group -> (Id, (Bool, Int)) -> Bool-groupMatchElim v gen ge t (x, (be,1)) =- let (t0, t1) = partition M.empty (mul t (M.singleton x (be,-1))) v in- case matchGroup (group t0) (group t1) S.empty gen M.empty of- [] -> False- ((v', gen', subst):_) ->- groupMatchRenaming (S.union v' v) gen' $ M.map (groupSubst subst) ge-groupMatchElim _ _ _ _ _ = False+-} nodeMatch :: Term -> (Int, Int) -> GenEnv -> [GenEnv] nodeMatch t p env = match t (P p) env@@ -2155,11 +2362,10 @@ instance C.Env Term Gen Subst Env where emptyEnv = emptyEnv instantiate = instantiate+-- match = xmatch match = match- identityEnvFor e ts = maybe [] (: []) $ identityEnvFor e ts substitution = substitution reify = reify- matchRenaming = matchRenaming nodeMatch = nodeMatch nodeLookup = nodeLookup @@ -2173,68 +2379,64 @@ return (g, reverse vars) loadVarPair :: Monad m => SExpr Pos -> m [(SExpr Pos, SExpr Pos)]-loadVarPair (L _ (x:xs)) =- let (t:vs) = reverse (x:xs) in+loadVarPair (L _ (x:y:xs)) =+ let (t:vs) = reverse (x:y:xs) in return [(v,t) | v <- reverse vs] loadVarPair x = fail (shows (annotation x) "Malformed vars declaration") loadVar :: Monad m => (Gen, [Term]) -> (SExpr Pos, SExpr Pos) -> m (Gen, [Term]) loadVar (gen, vars) (S pos name, S pos' sort) =- case loadLookup pos vars False name of+ case loadLookup pos vars name of Right _ -> fail (shows pos "Duplicate variable declaration for " ++ name) Left _ -> do let (gen', x) = freshId gen name- p <- mkVar x+ p <- mkVar pos' sort x return (gen', p : vars)- where- mkVar x =- let t = I x in- case sort of- "mesg" -> return t- "text" -> return $ F Text [t]- "data" -> return $ F Data [t]- "name" -> return $ F Name [t]- "skey" -> return $ F Skey [t]- "akey" -> return $ F Akey [t]- "base" -> return $ F Base [t]- "tag" -> return $ F Tag [t]- "expr" -> return $ groupVar False x- "expn" -> return $ groupVar True x- "node" -> return (D x)- _ -> fail (shows pos' "Sort " ++ sort ++ " not recognized") loadVar _ (x,_) = fail (shows (annotation x) "Bad variable syntax") -loadLookup :: Pos -> [Term] -> Bool -> String -> Either String Term-loadLookup pos [] _ name = Left (shows pos $ "Identifier " ++ name ++ " unknown")-loadLookup pos (t@(G _) : u) True name =- let name' = idName (varId t) in- if name' == name then Left (shows pos $ "Disallowed bare exponent")- else loadLookup pos u True name-loadLookup pos (t : u) flag name =+mkVar :: Monad m => Pos -> String -> Id -> m Term+mkVar pos sort x+ | sort == "mesg" = return $ I x+ | sort == "text" = return $ F Text [I x]+ | sort == "data" = return $ F Data [I x]+ | sort == "name" = return $ F Name [I x]+ | sort == "skey" = return $ F Skey [I x]+ | sort == "akey" = return $ F Akey [I x]+ | sort == "base" = return $ F Base [I x]+ | sort == "tag" = return $ F Tag [I x]+ | sort == "expr" = return $ groupVar False x+ | sort == "expn" = return $ groupVar True x+ | sort == "node" = return $ D x+ | otherwise = fail (shows pos "Sort " ++ sort ++ " not recognized")++loadLookup :: Pos -> [Term] -> String -> Either String Term+loadLookup pos [] name =+ Left (shows pos $ "Identifier " ++ name ++ " unknown")+loadLookup pos (t : u) name = let name' = idName (varId t) in- if name' == name then Right t else loadLookup pos u flag name+ if name' == name then Right t else loadLookup pos u name loadLookupName :: Monad m => Pos -> [Term] -> String -> m Term loadLookupName pos vars name =- either fail f (loadLookup pos vars True name)+ either fail f (loadLookup pos vars name) where f t@(F Name [I _]) = return t f _ = fail (shows pos $ "Expecting " ++ name ++ " to be a name") loadLookupAkey :: Monad m => Pos -> [Term] -> String -> m Term loadLookupAkey pos vars name =- either fail f (loadLookup pos vars True name)+ either fail f (loadLookup pos vars name) where f t@(F Akey [I _]) = return t f _ = fail (shows pos $ "Expecting " ++ name ++ " to be an akey") -- Load term and check that it is well-formed. loadTerm :: Monad m => [Term] -> Bool -> SExpr Pos -> m Term-loadTerm vars strict (S pos s) =- either fail return (loadLookup pos vars strict s)+loadTerm vars _ (S pos s) =+ either fail return (loadLookup pos vars s) loadTerm _ _ (Q _ t) = return (F Tag [(C t)]) loadTerm vars strict (L pos (S _ s : l)) =@@ -2291,6 +2493,16 @@ do t <- loadLookupAkey pos vars s return $ F Akey [F Invk [I $ varId t]]+loadInvk _ _ vars [L _ [S _ pubk, S pos s]]+ | pubk == "pubk" =+ do+ t <- loadLookupName pos vars s+ return $ F Akey [F Invk [F Pubk [I $ varId t]]]+loadInvk _ _ vars [L _ [S _ pubk, Q _ c, S pos s]]+ | pubk == "pubk" =+ do+ t <- loadLookupName pos vars s+ return $ F Akey [F Invk [F Pubk [C c, I $ varId t]]] loadInvk pos _ _ _ = fail (shows pos "Malformed invk") loadLtk :: Monad m => LoadFunction m@@ -2339,9 +2551,10 @@ case t of G t -> return t _ -> fail (shows (annotation x) "Malformed expr")-loadExpr _ True x =- do- fail (shows (annotation x) "Disallowed bare exponent")+loadExpr vars True x = loadExpr vars False x+--loadExpr _ True x =+-- do+-- fail (shows (annotation x) "Disallowed bare exponent") loadOne :: Monad m => LoadFunction m loadOne _ False _ [] =@@ -2508,18 +2721,19 @@ displayEnv :: Context -> Context -> Env -> [SExpr ()] displayEnv ctx ctx' (Env (_, r)) =- map (\(x, t) -> L () [displayTerm ctx x, displayTerm ctx' t]) r'+ map (\(x, t) -> L () [displayTerm ctx x, displayTerm ctx'' t]) r' where r' = map (\(x, t) -> (I x, inferSort t)) $ M.assocs r+ ctx'' = addToContext ctx' (map snd r') -- displaySubst c s displays a substitution s in context c, where some -- variables that occur in s might not be in c. Enough sort -- inference is performed so as to allow the extension of the context. displaySubst :: Context -> Subst -> [SExpr ()]-displaySubst ctx s@(Subst r) =+displaySubst ctx (Subst r) = map (\(x, t) -> L () [displayTerm ctx' x, displayTerm ctx' t]) r' where- r' = map (\(x, t) -> (I x, inferSort (substitute s t))) $ M.assocs r+ r' = map (\(x, t) -> (I x, inferSort t)) $ M.assocs r ctx' = foldl (\ctx (x, t) -> addToContext ctx [x, t]) ctx r' inferSort :: Term -> Term
− src/CPSA/DiffieHellman/IntLinEq.hs
@@ -1,197 +0,0 @@--- Integer Solutions of Linear Inhomogeneous Equations---- 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 : CPSA.DiffieHellman.IntLinEq--- Copyright : (c) 2009 The MITRE Corporation--- License : BSD------ Integer Solutions of Linear Inhomogeneous Equations------ A linear equation with integer coefficients is represented as a--- pair of lists of non-zero integers, the coefficients and the--- constants. If there are no constants, the linear equation--- represented by (c, []) is the homogeneous equation:------ > c[0]*x[0] + c[1]*x[1] + ... + c[n-1]*x[n-1] = 0------ where n is the length of c. Otherwise, (c, d) represents the--- inhomogeneous equation:------ > c[0]*x[0] + c[1]*x[1] + ... + c[n-1]*x[n-1] = g------ where g = gcd(d[0], d[1], ..., d[m-1]), and m is the length of d.--- Thus g is the greatest common denominator of the elements of d.------ A solution is a partial map from variables to terms, and a term is--- a pair of lists of integers, the variable part of the term followed--- by the constant part. The variable part may specify variables not--- in the input. In other words, the length of the coefficents in the--- answer may exceed the length of the coefficients in the input. For--- example, the solution of------ > 64x - 41y = 1------ is x = -41z - 16 and y = -64z - 25. The computed solution is read--- off the list returned as an answer.------ > intLinEq [64,-41] [1] =--- > [(0,([0,0,0,0,0,0,-41],[-16])),--- > (1,([0,0,0,0,0,0,-64],[-25]))]------ The algorithm used to find solutions is described in Vol. 2 of The--- Art of Computer Programming \/ Seminumerical Alorithms, 2nd Ed.,--- 1981, by Donald E. Knuth, pg. 327. To show sums, we write------ > sum[i] c[i]*x[i] for c[0]*x[0] + c[1]*x[1] + ... + c[n-1]*x[n-1].------ The algorithm's initial values are the linear equation (c,d) and an--- empty substitution s.------ 1. Let c[i] be the smallest non-zero coefficient in absolute value.------ 2. If c[i] < 0, multiply c and d by -1 and goto step 1.------ 3. If c[i] = 1, a general solution of the following form has been--- found:------ > x[i] = sum[j] -c'[j]*x[j] + d[k] for all k------ where c' is c with c'[i] = 0. Use the equation to eliminate x[i]--- from the range of the current substitution s. If variable x[i] is--- in the original equation, add the mapping to substitution s.------ 4. If c[i] divides every coefficient in c,------ * if c[i] divides every constant in d, divide c and d by c[i]--- and goto step 3,------ * otherwise fail because there is no solution.------ 5. Otherwise, eliminate x[i] as above in favor of freshly created--- variable x[n], where n is the length of c.------ > x[n] = sum[j] (c[j] div c[i] * x[j])------ Goto step 1 and solve the equation:------ > c[i]*x[n] + sum[j] (c[j] mod c[i])*x[j] = d[k] for all k--module CPSA.DiffieHellman.IntLinEq- (LinEq, Subst, intLinEq) where---- | A linear equation with integer coefficients is represented as a--- pair of lists of non-zero integers, the coefficients and the--- constants.-type LinEq = ([Int], [Int])---- | A solution to a linear equation is a partial map from variables--- to terms, and a term is a pair of lists of integers, the variable--- part of the term followed by the constant part. The variable part--- may specify variables not in the input. In other words, the length--- of the coefficents in the answer may exceed the length of the--- coefficients in the input.-type Subst = [(Int, LinEq)]---- | Find integer solutions to a linear equation or fail when there--- are no solutions.-intLinEq :: Monad m => LinEq -> m Subst-intLinEq (coefficients, constants) =- intLinEqLoop (length coefficients) (coefficients, constants) []---- The algorithm used to find solutions is described in Vol. 2 of The--- Art of Computer Programming / Seminumerical Alorithms, 2nd Ed.,--- 1981, by Donald E. Knuth, pg. 327.---- On input, n is the number of variables in the original problem, c--- is the coefficients, d is the constants, and subst is a list of--- eliminated variables.-intLinEqLoop :: Monad m => Int -> LinEq -> Subst -> m Subst-intLinEqLoop n (c, d) subst =- -- Find the smallest non-zero coefficient in absolute value- let (i, ci) = smallest c in- case () of- _ | ci < 0 -> intLinEqLoop n (invert c, invert d) subst- -- Ensure the smallest coefficient is positive- | ci == 0 -> fail "bad problem"- -- Lack of non-zero coefficients is an error- | ci == 1 ->- -- A general solution of the following form has been found:- -- x[i] = sum[j] -c'[j]*x[j] + d[k] for all k- -- where c' is c with c'[i] = 0.- return $ eliminate n (i, (invert (zero i c), d)) subst- | divisible ci c ->- -- If all the coefficients are divisible by c[i], a solution is- -- immediate if all the constants are divisible by c[i],- -- otherwise there is no solution.- if divisible ci d then- let c' = divide ci c- d' = divide ci d in- return $ eliminate n (i, (invert (zero i c'), d')) subst- else- fail "no solution"- | otherwise ->- -- Eliminate x[i] in favor of freshly created variable x[n],- -- where n is the length of c.- -- x[n] = sum[j] (c[j] div c[i] * x[j])- -- The new equation to be solved is:- -- c[i]*x[n] + sum[j] (c[j] mod c[i])*x[j] = d[k] for all k- intLinEqLoop n (map (\x -> mod x ci) c ++ [ci], d) subst'- where- subst' = eliminate n (i, (invert c' ++ [1], [])) subst- c' = divide ci (zero i c)---- Find the smallest non-zero coefficient in absolute value-smallest :: [Int] -> (Int, Int)-smallest xs =- foldl f (-1, 0) (zip [0..] xs)- where- f (i, n) (j, x)- | n == 0 = (j, x)- | x == 0 || abs n <= abs x = (i, n)- | otherwise = (j, x)--invert :: [Int] -> [Int]-invert t = map negate t---- Zero the ith position in a list-zero :: Int -> [Int] -> [Int]-zero _ [] = []-zero 0 (_:xs) = 0 : xs-zero i (x:xs) = x : zero (i - 1) xs---- Eliminate a variable from the existing substitution. If the--- variable is in the original problem, add it to the substitution.-eliminate :: Int -> (Int, LinEq) -> Subst -> Subst-eliminate n m@(i, (c, d)) subst =- if i < n then- m : map f subst- else- map f subst- where- f m'@(i', (c', d')) = -- Eliminate i in c' if it occurs in c'- case get i c' of- 0 -> m' -- i is not in c'- ci -> (i', (addmul ci (zero i c') c, addmul ci d' d))- -- Find ith coefficient- get _ [] = 0- get 0 (x:_) = x- get i (_:xs) = get (i - 1) xs- -- addnum n xs ys sums xs and ys after multiplying ys by n- addmul 1 [] ys = ys- addmul n [] ys = map (* n) ys- addmul _ xs [] = xs- addmul n (x:xs) (y:ys) = (x + n * y) : addmul n xs ys--divisible :: Int -> [Int] -> Bool-divisible small t =- all (\x -> mod x small == 0) t--divide :: Int -> [Int] -> [Int]-divide small t =- map (\x -> div x small) t
src/CPSA/Graph/Config.hs view
@@ -8,7 +8,9 @@ module CPSA.Graph.Config (Config(..), Notation(..), printer) where -import CPSA.Lib.CPSA (SExpr, pp, printItem)+import CPSA.Lib.SExpr (SExpr)+import CPSA.Lib.Printer (pp)+import CPSA.Lib.Notation (printItem) data Config = Config { units :: String, -- Unit of length
src/CPSA/Graph/ExpandedView.hs view
@@ -11,7 +11,7 @@ import Data.List (intersperse) import System.IO-import CPSA.Lib.CPSA+import CPSA.Lib.SExpr import CPSA.Graph.XMLOutput import CPSA.Graph.Config import CPSA.Graph.SVG
src/CPSA/Graph/LaTeXView.hs view
@@ -9,7 +9,8 @@ module CPSA.Graph.LaTeXView (latexView) where import System.IO-import CPSA.Lib.CPSA (nats, SExpr, Pos)+import CPSA.Lib.Utilities (nats)+import CPSA.Lib.SExpr (SExpr, Pos) import CPSA.Graph.Loader import CPSA.Graph.Layout
src/CPSA/Graph/Layout.hs view
@@ -9,7 +9,7 @@ module CPSA.Graph.Layout (Node, vnode, Rank, layout, maxRank) where import qualified Data.List as L-import CPSA.Lib.CPSA (adjoin)+import CPSA.Lib.Utilities (adjoin) import CPSA.Graph.Loader -- The node's rank determines its vertical position.
src/CPSA/Graph/Loader.hs view
@@ -21,7 +21,8 @@ import qualified Data.List as L import Control.Monad-import CPSA.Lib.CPSA+import CPSA.Lib.SExpr+import CPSA.Lib.Utilities import CPSA.Lib.Entry (gentlyReadSExpr) -- A view of protocols and preskeletons designed for display.
src/CPSA/Graph/Main.hs view
@@ -11,7 +11,7 @@ import Numeric import System.IO import System.Console.GetOpt-import CPSA.Lib.CPSA (PosHandle, SExpr, Pos)+import CPSA.Lib.SExpr (PosHandle, SExpr, Pos) import CPSA.Lib.Entry import CPSA.Graph.Config import CPSA.Graph.Loader
src/CPSA/Graph/Preskeleton.hs view
@@ -8,7 +8,8 @@ module CPSA.Graph.Preskeleton (skel) where -import CPSA.Lib.CPSA (SExpr, printMsg, printEnv)+import CPSA.Lib.SExpr (SExpr)+import CPSA.Lib.Notation (printMsg, printEnv) import CPSA.Graph.XMLOutput import CPSA.Graph.Config import CPSA.Graph.SVG
src/CPSA/Graph/Tree.hs view
@@ -13,7 +13,7 @@ import Data.List (foldl') import qualified Data.Set as S import Data.Set (Set)-import CPSA.Lib.CPSA (seqList)+import CPSA.Lib.Utilities (seqList) import CPSA.Graph.XMLOutput import CPSA.Graph.Config import CPSA.Graph.SVG
src/CPSA/Graph/XMLOutput.hs view
@@ -11,7 +11,7 @@ module CPSA.Graph.XMLOutput (Attribute, Element, mc, ec, props) where -import CPSA.Lib.CPSA+import CPSA.Lib.Pretty type Attribute = (String, String)
src/CPSA/JSON/Main.hs view
@@ -13,27 +13,29 @@ import System.IO import System.Environment import System.Console.GetOpt-import CPSA.Lib.CPSA+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- prefix :: Bool, -- Use prefix notation? margin :: Int } -- Output line length deriving Show -indent :: Int-indent = optIndent defaultOptions+defaultIndent :: Int+defaultIndent = optIndent defaultOptions +defaultMargin :: Int+defaultMargin = optMargin defaultOptions+ main :: IO () main = do (p, params) <- jStart options interp h <- outputHandle $ file params- let printer = if prefix params then pp else printItem- go (writeCpsaLn (printer (margin params) indent) h) p+ go (writeCpsaLn (pp (margin params) defaultIndent) h) p hClose h writeCpsaLn :: (SExpr a -> String) -> Handle -> SExpr a -> IO ()@@ -62,19 +64,14 @@ = Help -- Help | Info -- Version information | Margin String -- Output line length- | Infix -- Select output notation | Output String -- Output file name deriving Show -defaultMargin :: Int-defaultMargin = optMargin defaultOptions- 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 ['i'] ["infix"] (NoArg Infix) "output uses infix notation",+ ("set output margin (default " ++ show defaultIndent ++ ")"), Option ['h'] ["help"] (NoArg Help) "show help message", Option ['v'] ["version"] (NoArg Info) "show version number" ] @@ -82,15 +79,12 @@ interp :: [Flag] -> IO Params interp flags = loop flags (Params { file = Nothing, -- By default, no output file- prefix = True, margin = defaultMargin }) where loop [] params = return params loop (Output name : flags) params | file params == Nothing = loop flags $ params { file = Just name }- loop (Infix : flags) params =- loop flags $ params { prefix = False } loop (Margin value : flags) params = case readDec value of [(margin, "")] ->
src/CPSA/Lib/Algebra.hs view
@@ -30,6 +30,7 @@ -- These predicates succeed only on terms in the message algebra. isVar :: t -> Bool -- Is term a variable in the message algebra? isAcquiredVar :: t -> Bool -- Is term an acquired variable?+ isObtainedVar :: t -> Bool -- Is term an obtained variable? isAtom :: t -> Bool -- Is the sort of this term a base sort? -- Extension for security goals, a predicate that succeeds only@@ -98,16 +99,23 @@ -- Finds all (outermost) numeric subterms occurring in a given term subNums :: t -> Set t - -- Given a term t, return the first variable in t.- forceVar :: t -> t- -- Determines whether a given target is derivable, given a set -- of known messages and an avoidance set. derivable :: Set t -> Set t -> t -> Bool + -- Returns all constants of the same type as its first input.+ -- Second input used to narrow down the answer when infinite+ consts :: t -> [t] -> [t]++ -- For DH -- Returns the indicator in a given variable of a term. indicator :: t -> t -> Maybe Int + -- Recognise kinds of DH values by sort.+ isBase :: t -> Bool+ isExpr :: t -> Bool+ expnInExpr :: t -> t -> Bool+ -- The place at which a term occurs in another term class (Term t, Eq p, Show p) => Place t p | t -> p, p -> t where@@ -139,16 +147,14 @@ -- The starting generator. origin :: g + -- Merge two generators by picking the maximum.+ gmerge :: g -> g -> g+ -- Given a generator, generate a clone of a term in which each -- variable has been replaced by a variable that has never been -- generated by the generator. clone :: g -> t -> (g, t) - -- Given a generator and a single numeric term, create a generic- -- representative of values derivable from that term. Produces- -- a gen because this generates a variable.- genericize :: g -> t -> (g, t)- -- Given a generator and a single term, create a generic -- representative of values relevant to that term -- genericVersion :: g -> t -> (g, t)@@ -158,6 +164,11 @@ -- The varibles are returned in the reverse order. loadVars :: Monad m => g -> [SExpr Pos] -> m (g, [t]) + -- For DH++ -- Given a base value, create its precursor.+ basePrecursor :: g -> t -> (g, t)+ -- Substitutions -- A substitution is a map from variables to terms. Two terms unify@@ -169,6 +180,7 @@ substitute :: s -> t -> t unify :: t -> t -> (g, s) -> [(g, s)] compose :: s -> s -> s+ absenceSubst :: g -> [(t, t)] -> [(g, s)] -- Environments @@ -180,18 +192,12 @@ emptyEnv :: e instantiate :: e -> t -> t match :: t -> t -> (g, e) -> [(g, e)]- -- Can environment be refined so it is the identity when applied- -- to some terms?- identityEnvFor :: (g, e) -> [t] -> [(g, e)] -- Cast an environment into a substitution substitution :: e -> s -- Provide a concrete representation of an environment as an -- association list. The first argument is a list of variables -- that make up the domain of the environment. reify :: [t] -> e -> [(t, t)]- -- Is match a one-to-one variable-to-variable map? This function- -- is used while testing if two skeletons are isomorphic.- matchRenaming :: (g, e) -> Bool -- Extensions for security goals: node match. To succeed, the -- term must be a variable of sort node. nodeMatch :: t -> (Int, Int) -> (g, e) -> [(g, e)]
src/CPSA/Lib/AlgebraLibrary.hs view
@@ -33,6 +33,7 @@ matchMany_v _ [] _ = [] matchMany_v (t:ts) (t':ts') ge = concatMap (matchMany_v ts ts') (match t t' ge) +{- -- stripExp x t: apply the map (x -> 1) to t and return the result. stripExp :: Algebra t p g s e c => t -> t -> t stripExp x t@@ -40,6 +41,7 @@ | otherwise = case destroyer x of Nothing -> t Just s -> substitute s t+-} -- zeroIndicator: zero out the indicator of all restricted variables in t. zeroIndicator :: Algebra t p g s e c => t -> (g,e) -> [t] -> [(g,e)]
− src/CPSA/Lib/CPSA.hs
@@ -1,32 +0,0 @@--- Exports the types and functions used to construct an implementation--- of an algebra.---- Each algebra provides an instance of each type class in the Algebra--- module, and exports its name, and its starting variable generator.---- module CPSA.????.Loader (name, origin) where--- import qualified CPSA.Lib.CPSA as C--- import CPSA.Lib.CPSA (SExpr(..), Pos, annotation)---- The algebra is made available for use by adding the name origin--- pair to the association list in CPSA.Lib.Main.---- 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 CPSA.Lib.CPSA (module CPSA.Lib.Utilities,- module CPSA.Lib.SExpr,- module CPSA.Lib.Pretty,- module CPSA.Lib.Printer,- module CPSA.Lib.Notation,- module CPSA.Lib.Algebra) where--import CPSA.Lib.Utilities-import CPSA.Lib.SExpr-import CPSA.Lib.Pretty-import CPSA.Lib.Printer-import CPSA.Lib.Notation-import CPSA.Lib.Algebra
src/CPSA/Lib/Characteristic.hs view
@@ -202,7 +202,7 @@ let gr = foldr mkUgen [] as let decls = mkDcls nr ar ur gr let prios = []- let k = mkPreskel g p goals insts o [] decls comment prios+ let k = mkPreskel g p goals insts o [] decls comment prios Nothing [] mapM_ (checkUniqAt nmap k) as case termsWellFormed $ (termsInDlist decls) ++ kterms k of False -> fail (shows pos "Terms in skeleton not well formed")
src/CPSA/Lib/Cohort.hs view
@@ -18,8 +18,8 @@ import CPSA.Lib.Strand import CPSA.Lib.Utilities -{-- Debugging support-import CPSA.Lib.Debug+-- Debugging support+--import CPSA.Lib.Debug --import CPSA.Lib.DebugLibrary --}@@ -97,7 +97,7 @@ Sync t -> case (now t) of Nothing -> True Just st -> case lookup (s,i) (map T.swap leadsto) of- Nothing -> isAcquiredVar st+ Nothing -> isAcquiredVar st || isObtainedVar st Just (s2,i2) -> case (trace (insts k !! s2) !! i2) of Sync t2 -> Just st == (next t2) _ -> False@@ -112,15 +112,18 @@ -- 1. some member of anc(t", p) is in T', or -- -- 2. for some t in outpred(k', phi(v)), t' is not carried only within--- T in t, or------ 3. targetterms(t', T) \ sigma(targetterms(t, esc(k, v, t))) /= empty+-- T in t, OR+-- ("2a") targetterms(t', T) \ sigma(targetterms(t, esc(k, v, t))) /= empty -- and there are variables in k's protocol that are not atoms, or ----- 4. the decryption key for an element of T is derivable, or+-- 3. the decryption key for an element of T is derivable, or ----- 5. t' is an encryption and the encryption key for t' is derivable.+-- 4. t' is an encryption and the encryption key for t' is derivable, or --+-- 5. t' is derivable in k' at phi(v).+--+-- 6. k' has a distinct absent constraint+-- -- Haskell variables: -- ct = t -- pos = p@@ -130,18 +133,22 @@ -- (s, p) = v and n -- subst = sigma solved :: Algebra t p g s e c => t -> p -> [t] -> Set t ->- Preskel t g s e -> Node -> s -> Bool-solved ct pos eks escape k (s, p) subst =+ Preskel t g s e -> Node -> s -> [(t,t)] -> Bool+solved ct pos eks escape k (s, p) subst absent = -- Condition 1 isAncestorInSet escape' t pos || derivable a escape' ct' || -- Condition 2- any (\t -> (not $ carriedOnlyWithinRel ct' escape' t a)) (S.toList ts) ||- -- Condition 3+ any (\t -> (not $ carriedOnlyWithin ct' escape' t)) (S.toList ts) || not (varsAllAtoms (protocol k)) && not (S.null targetTermsDiff) ||- -- Condition 4+ -- Condition 3 any (maybe False (derivable a ts) . decryptionKey) (S.toList escape') ||+ -- Condition 4+ -- Bug fix: apply subst to eks+ any (derivable a ts) (map (substitute subst) eks) || -- Condition 5- any (derivable a ts) eks+ derivable a ts ct' ||+ -- Condition 6: hack!+ length (kabsent k) > length absent where v = vertex k (s, p) -- Look up vertex in k t = evt id erro errs (event v) -- Term at v@@ -149,15 +156,15 @@ errs = const $ assertError "Cohort.solved: got a state synchronization term" ct' = substitute subst ct -- Mapped critical term escape' = S.map (substitute subst) escape- mappedTargetTerms = S.map (substitute subst) (snd $ targetTerms (gen k) ct escape)- targetTermsDiff = S.difference (snd $ targetTerms (gen k) ct' escape') mappedTargetTerms+ mappedTargetTerms = S.map (substitute subst) (targetTerms ct escape)+ targetTermsDiff = S.difference (targetTerms ct' escape') mappedTargetTerms ts = transmissionsBefore S.empty v -- Outbound predecessors a = avoid k maybeSolved :: Algebra t p g s e c => t -> p -> [t] -> Set t ->- Preskel t g s e -> Node -> s -> Bool-maybeSolved ct pos eks escape k n subst =- not useSolvedFilter || solved ct pos eks escape k n subst+ Preskel t g s e -> Node -> s -> [(t,t)] -> Bool+maybeSolved ct pos eks escape k n subst absent =+ not useSolvedFilter || solved ct pos eks escape k n subst absent data Mode = Mode { noGeneralization :: Bool,@@ -208,6 +215,7 @@ firstJust (Just x : _) _ = x firstJust (Nothing : xs) x = firstJust xs x +-- Look for a critical term that makes this node a test node. testNode :: Algebra t p g s e c => Mode -> Preskel t g s e -> Set t -> Vertex t e -> Maybe [Preskel t g s e] testNode mode k a n =@@ -221,6 +229,16 @@ Just $ solveSyncNode mode k (graphNode n) (now t) _ -> Nothing +carriedOnlyWithin :: Algebra t p g s e c => t -> Set t -> t -> Bool+carriedOnlyWithin target escape source =+ all (isAncestorInSet escape source) (carriedPlaces target source)++-- isAncestorInSet set source position is true if there is one ancestor of+-- source at position that is in the set.+isAncestorInSet :: Algebra t p g s e c => Set t -> t -> p -> Bool+isAncestorInSet set source position =+ any (flip S.member set) (ancestors source position)+ -- Look for a critical term that makes this node a test node. solveNode :: Algebra t p g s e c => Mode -> Preskel t g s e -> Set t -> Set t -> Node -> t ->@@ -229,16 +247,16 @@ loop cts where loop [] = assertError ("Cohort.solveNode missing test at " ++ show n)- loop ((ct, eks) : cts) =+ loop ((ct, eks) : rest) = case escapeSet ts a ct of- Nothing -> loop cts+ Nothing -> loop rest Just escape -> places (carriedPlaces ct t)- where- places [] = loop cts -- Find position at which- places (p : ps) -- ct has escaped+ where+ places [] = loop rest -- Find position at which+ places (p : ps) -- ct has escaped | isAncestorInSet escape t p = places ps- | otherwise = solvePath k ct p eks n t escape ts+ | otherwise = solvePath k a ct p eks n t escape cts = -- Potential critical messages if nonceFirstOrder mode then nonces ++ encs@@ -247,45 +265,27 @@ -- include all carried terms that are in a or -- are numeric. nonces = map f (filter (flip carriedBy t) (S.toList a)) ++- (filter (\x -> ff a x) $ foldCarriedTerms fnum [] t)+ (foldCarriedTerms fnum [] t) encs = filter g (map h (encryptions t))- fnum nums t | isNum t = nums ++ [(t, [])]+ fnum nums t | isNum t && (not $ buildable ts a t) = nums ++ [(t, [])] | otherwise = nums f ct = (ct, []) -- A nonce tests has no eks g (_, []) = False -- An encryption test must have g _ = True -- at least one non-derivable key -- Dump derivable encryption keys h (ct, eks) = (ct, filter (not . (buildable ts a)) eks)- ff a (t, _) = any (nonTrivIndicator t) (S.elems a)- nonTrivIndicator t e = case indicator t e of- Just n -> n /= 0- Nothing -> False ---carriedOnlyWithin :: Algebra t p g s e c => t -> Set t -> t -> Bool---carriedOnlyWithin target escape source =--- all (isAncestorInSet escape source) (carriedPlaces target source)--carriedOnlyWithinRel :: Algebra t p g s e c => t -> Set t -> t -> Set t -> Bool-carriedOnlyWithinRel target escape source avoid =- all (isAncestorInSet escape source) (carriedRelPlaces target source avoid)---- isAncestorInSet set source position is true if there is one ancestor of--- source at position that is in the set.-isAncestorInSet :: Algebra t p g s e c => Set t -> t -> p -> Bool-isAncestorInSet set source position =- any (flip S.member set) (ancestors source position)- -- Solve critical message at position pos at node n. -- ct = t @ pos -- t = msg(k, n)-solvePath :: Algebra t p g s e c => Preskel t g s e ->- t -> p -> [t] -> Node -> t -> Set t -> Set t ->- [Preskel t g s e]-solvePath k ct pos eks n t escape ts =- mgs $ cons ++ augs ++ lsns ++ asols++solvePath :: Algebra t p g s e c => Preskel t g s e -> Set t ->+ t -> p -> [t] -> Node -> t -> Set t -> [Preskel t g s e]+solvePath k a ct pos eks n t escape =+ mgs $ cons ++ augs ++ lsns ++ dhs where- asols = algebraSolutions k ct pos eks n t escape ts cause- cons = contractions k ct pos eks n t escape cause+ dhs = theDHSubcohort k a ct pos eks n escape cause+ cons = contractions k ct pos eks n t escape cause augs = augmentations k ct pos eks n escape cause lsns = addListeners k ct pos eks n t escape cause cause = Cause (dir eks) n ct escape@@ -328,6 +328,44 @@ Just s' -> [ s':ss | ss <- perms alist range domain ] Nothing -> [ s':ss | s' <- range, ss <- perms alist range domain ] +-- DH Subcohort++theDHSubcohort :: Algebra t p g s e c => Preskel t g s e -> Set t ->+ t -> p -> [t] -> Node -> Set t -> Cause t ->+ [(Preskel t g s e, [Sid])]+theDHSubcohort k a ct pos eks n escape cause+ | isBase ct = baseDHSubcohort k ct pos eks n escape cause+ | isExpr ct = exprDHSubcohort k a ct pos eks n escape cause+ | otherwise = []++baseDHSubcohort :: Algebra t p g s e c => Preskel t g s e ->+ t -> p -> [t] -> Node -> Set t -> Cause t ->+ [(Preskel t g s e, [Sid])]+baseDHSubcohort k ct pos eks n escape cause+ | isNodePrecur k n = []+ | otherwise =+ [ (k', phi) |+ (k', n', phi, subst) <- addBaseListener k n cause ct,+ maybeSolved ct pos eks escape k' n' subst (kabsent k)]++exprDHSubcohort :: Algebra t p g s e c => Preskel t g s e -> Set t ->+ t -> p -> [t] -> Node -> Set t -> Cause t ->+ [(Preskel t g s e, [Sid])]+exprDHSubcohort k a ct pos eks n escape cause =+-- | isNodePrecur k n = []+-- | otherwise =+ do+ x <- S.toList a+ case expnInExpr x ct of+ False -> []+ True ->+ [ (k', phi) |+ (k', n', phi, subst) <- addAbsence k n cause x ct,+ maybeSolved ct pos eks escape k' n' subst (kabsent k) ] +++ [ (k', phi) |+ (k', n', phi, subst) <- addListener k n cause x,+ maybeSolved ct pos eks escape k' n' subst (kabsent k) ]+ -- Contractions -- Contract the critical message at the given position.@@ -335,15 +373,22 @@ t -> p -> [t] -> Node -> t -> Set t -> Cause t -> [(Preskel t g s e, [Sid])] contractions k ct pos eks n t escape cause =- [ (k, phi) | subst <- solve escape anc (gen k, emptySubst),+ [ (k, phi) | subst <- (solve escape anc (gen k, emptySubst) +++ constSolve (gen k, emptySubst) ct (kterms k)), (k, n, phi, subst') <- contract k n cause subst,- maybeSolved ct pos eks escape k n subst' ]+ maybeSolved ct pos eks escape k n subst' (kabsent k) ] where -- stick to only proper ancestors if ct is numeric; -- algebraSolve is strictly more general otherwise anc = if (isNum ct) then ancs else (ct : ancs) ancs = (ancestors t pos) ++constSolve :: Algebra t p g s e c => (g, s) -> t -> [t] -> [(g, s)]+constSolve subst ct kts =+ [ s | c <- consts ct kts,+ s <- unify ct c subst]+ solve :: Algebra t p g s e c => Set t -> [t] -> (g, s) -> [(g, s)] solve escape ancestors subst = [ s | e <- S.toList escape,@@ -351,9 +396,9 @@ s <- unify a e subst ] carriedOnlyWithinAtSubst :: Algebra t p g s e c =>- t -> Set t -> t -> (g, s) -> Set t -> Bool-carriedOnlyWithinAtSubst ct escape t (_, subst) avoid =- carriedOnlyWithinRel ct' escape' t' avoid+ t -> Set t -> t -> (g, s) -> Bool+carriedOnlyWithinAtSubst ct escape t (_, subst) =+ carriedOnlyWithin ct' escape' t' where ct' = substitute subst ct escape' = S.map (substitute subst) escape@@ -380,20 +425,23 @@ augmentations :: Algebra t p g s e c => Preskel t g s e -> t -> p -> [t] -> Node -> Set t -> Cause t -> [(Preskel t g s e, [Sid])]-augmentations k ct pos eks n escape cause =+augmentations k ct pos eks n escape cause+-- | ((not (isNodePrecur k n)) && ((isBase ct) || (isExpr ct))) = []+ | otherwise = [ k' | r <- roles (protocol k),- k' <- roleAugs g' k ct pos eks n escape cause targets r ]+ k' <- roleAugs (gen k) k ct pos eks n escape cause targets r ] where targets = S.toList tterms- (g', tterms) = targetTerms (gen k) ct escape+ tterms = targetTerms ct escape roleAugs :: Algebra t p g s e c => g -> Preskel t g s e -> t -> p -> [t] -> Node -> Set t -> Cause t -> [t] -> Role t -> [(Preskel t g s e, [Sid])] roleAugs g k ct pos eks n escape cause targets role =- [ (k', phi) | (subst', inst) <- transformingNode ct escape targets role subst (avoid k),+ [ (k', phi) | (subst', inst) <- transformingNode ct escape targets role subst+ (avoid k), (k', n', phi, subst'') <- augment k n cause role subst' inst False,- maybeSolved ct pos eks escape k' n' subst'' ]+ maybeSolved ct pos eks escape k' n' subst'' (kabsent k) ] where subst = cloneRoleVars g role @@ -414,6 +462,8 @@ [t] -> Role t -> (g, s) -> Set t -> [((g, s), Instance t e)] transformingNode ct escape targets role subst avoid =+ tNLoop ct escape targets role subst avoid 1 [] [] (rtrace role)+{- Fails the ambiguity check loop 1 [] [] (rtrace role) where -- loop height past acc trace@@ -429,24 +479,42 @@ substs = carriedBindings targets t subst substs' = cowt ct escape (stripSync past) substs avoid -- substs' = cowt ct escape past substs avoid- acc' = maybeAug ct escape role ht substs' acc t avoid+ acc' = maybeAug ct escape role ht substs' acc t+-} +tNLoop :: Algebra t p g s e c => t -> Set t ->+ [t] -> Role t -> (g, s) -> Set t -> Int -> Trace t ->+ [((g, s), Instance t e)] -> Trace t ->+ [((g, s), Instance t e)]+tNLoop _ _ _ _ _ _ _ _ acc [] = acc+-- receptions cannot be transforming+tNLoop ct escape targets role subst avoid ht past acc (In t : c) =+ tNLoop ct escape targets role subst avoid (ht + 1) (In t : past) acc c+tNLoop ct escape targets role subst avoid ht past acc (Sync t : c) =+ tNLoop ct escape targets role subst avoid (ht + 1) (Sync t : past) acc c+tNLoop ct escape targets role subst avoid ht past acc (Out t : c) =+ tNLoop ct escape targets role subst avoid (ht + 1) (Out t : past) acc' c+ where+ substs = carriedBindings targets t subst+ substs' = cowt ct escape (stripSync past) substs avoid+-- substs' = cowt ct escape past substs avoid+ acc' = maybeAug ct escape role ht substs' acc t+ -- Terms considered for binding with the carried terms in an outbound -- term.-targetTerms :: Algebra t p g s e c => g -> t -> Set t -> (g, Set t)-targetTerms g ct escape =+targetTerms :: Algebra t p g s e c => t -> Set t -> Set t+targetTerms ct escape = if useEscapeSetInTargetTerms then- (g', targetTermsWithEscapeSet)+ targetTermsWithEscapeSet else- (g', S.difference targetTermsWithEscapeSet escape)+ S.difference targetTermsWithEscapeSet escape where -- hack: including both ct and ct' for cases where ct' leads to something -- that doesn't pass the solved filter.- targetTermsWithEscapeSet = S.fold f (S.insert ct $ S.singleton ct') escape+ targetTermsWithEscapeSet = S.fold f (S.singleton ct) escape f t ts = foldl (flip S.insert) ts (concatMap (ancestors t) (carriedPlaces ct t))- (g', ct') = genericize g ct -- genericVersion g ct -- Find bindings for terms in the test. carriedBindings :: Algebra t p g s e c => [t] -> t -> (g, s) -> [(g, s)]@@ -480,7 +548,7 @@ cowt ct escape c (foldn ct escape c [subst] avoid) avoid where f subst evt =- carriedOnlyWithinAtSubst ct escape (evtTerm evt) subst (S.map (substitute (snd subst)) avoid)+ carriedOnlyWithinAtSubst ct escape (evtTerm evt) subst -- Apply fold to each message in the trace. foldn :: Algebra t p g s e c => t -> Set t ->@@ -499,25 +567,37 @@ -- accumulator. maybeAug :: Algebra t p g s e c => t -> Set t -> Role t -> Int -> [(g, s)] ->- [((g, s), Instance t e)] -> t -> Set t ->+ [((g, s), Instance t e)] -> t -> [((g, s), Instance t e)]-maybeAug ct escape role ht substs acc t avoid =+maybeAug ct escape role ht substs acc t = answer where answer = foldl f acc $ L.filter testSolved substs testSolved (_, subst) =- (not $ carriedOnlyWithinRel+ (not $ carriedOnlyWithin (substitute subst ct) (S.map (substitute subst) escape)- (substitute subst t)- (S.map (substitute subst) avoid))+ (substitute subst t))+ {- Fails the ambiguity check f acc (gen, subst) = case bldInstance role itrace gen of (gen, inst) : _ -> ((gen, subst), inst) : acc [] -> acc where itrace = map (evtMap $ substitute subst) (take ht (rtrace role))+-}+ f = maybeAugF role ht +maybeAugF :: Algebra t p g s e c => Role t -> Int ->+ [((g, s), Instance t e)] -> (g, s) ->+ [((g, s), Instance t e)]+maybeAugF role ht acc (gen, subst) =+ case bldInstance role itrace gen of+ (gen, inst) : _ -> ((gen, subst), inst) : acc+ [] -> acc+ where+ itrace = map (evtMap $ substitute subst) (take ht (rtrace role))+ -- Listener augmentations addListeners :: Algebra t p g s e c => Preskel t g s e ->@@ -526,7 +606,7 @@ addListeners k ct pos eks n t escape cause = [ (k', phi) | t' <- filter (/= t) (S.toList (escapeKeys eks escape)), (k', n', phi, subst) <- addListener k n cause t',- maybeSolved ct pos eks escape k' n' subst ]+ maybeSolved ct pos eks escape k' n' subst (kabsent k) ] escapeKeys :: Algebra t p g s e c => [t] -> Set t -> Set t escapeKeys eks escape =@@ -535,24 +615,6 @@ f e s = maybe s (flip S.insert s) (decryptionKey e) es = S.fromList eks --- Derive the critical message from exposed relevant values-algebraSolutions :: Algebra t p g s e c => Preskel t g s e ->- t -> p -> [t] -> Node -> t -> Set t -> Set t ->- Cause t -> [(Preskel t g s e, [Sid])]---algebraSolutions _ _ _ _ _ _ _ _ = []-algebraSolutions k ct pos eks n t escape ts cause =- [ (k', phi) | t' <- filter (/= t) tnums,- (k', n', phi, subst) <- algebraSolve k n cause ct t',- maybeSolved ct pos eks escape k' n' subst ]- where- tnums = filter isNum $ S.toList $ fst $ decompose ts (avoid k)---- algebraSolutions k ct pos eks n t escape cause =--- [ k | let anc = ancestors t pos,--- subst <- mgus $ solve escape anc (gen k, emptySubst),--- (k, n, subst') <- contract k n cause subst,--- maybeSolved ct pos eks escape k n subst' ]- -- solveSyncNode solveSyncNode :: Algebra t p g s e c => Mode -> Preskel t g s e -> Node -> Maybe t -> [Preskel t g s e]@@ -589,12 +651,24 @@ where substs = unify now next (cloneRoleVars g role) acc' = foldl f acc substs+ f = nextNodeF role ht+{- Fails the ambiguity check f acc (gen, subst) = case bldInstance role itrace gen of (gen, inst) : _ -> ((gen, subst), inst) : acc [] -> acc where itrace = map (evtMap $ substitute subst) (take ht (rtrace role))+-}++nextNodeF :: Algebra t p g s e c => Role t -> Int ->+ [((g, s), Instance t e)] -> (g, s) -> [((g, s), Instance t e)]+nextNodeF role ht acc (gen, subst) =+ case bldInstance role itrace gen of+ (gen, inst) : _ -> ((gen, subst), inst) : acc+ [] -> acc+ where+ itrace = map (evtMap $ substitute subst) (take ht (rtrace role)) -- Maximize a realized skeleton if possible
− src/CPSA/Lib/Debug.hs
@@ -1,68 +0,0 @@--- Debugging functions---- Copyright (c) 2013 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 CPSA.Lib.Debug where--import System.IO.Unsafe--z :: Show a => a -> b -> b-z x y = unsafePerformIO (print x >> return y)--zln :: Show a => a -> b -> b-zln x y = unsafePerformIO (putStrLn (show x) >> return y)--zz :: Show a => a -> a-zz x = z x x--zzz :: (Show a, Show b) => a -> b -> b-zzz x y = zfun (\y -> (x,y)) y--zcond :: Show a => Bool -> a -> b -> b-zcond True a b = z a b-zcond _ _ b = b--zzcond :: Show a => (a -> Bool) -> a -> a-zzcond p x- | p x = zz x- | otherwise = x--zfcond :: Show c => (b -> Bool) -> (b -> c) -> b -> b-zfcond p f x = zcond (p x) (f x) x--zmaybe :: Show a => Maybe a -> b -> b-zmaybe (Just x) y = z x y-zmaybe _ y = y--zlist :: Show a => [a] -> b -> b-zlist [] b = b-zlist (x:xs) b = (zln x (zlist xs b))--zb :: Show a => a -> Bool -> Bool-zb a False = z a False-zb _ b = b--zn :: Show a => a -> Maybe b -> Maybe b-zn x Nothing = z x Nothing-zn _ y = y--zf :: Show a => a -> Bool -> Bool-zf x False = z x False-zf _ y = y--zt :: Show a => a -> Bool -> Bool-zt x True = z x True-zt _ y = y--zl :: Show a => [a] -> [a]-zl a = z (length a) a--zfun :: (Show b) => (a -> b) -> a -> a-zfun f x = z (f x) x--zlfun :: (Show b) => (a -> [b]) -> a -> a-zlfun f x = zlist (f x) x
− src/CPSA/Lib/DebugLibrary.hs
@@ -1,32 +0,0 @@--- Debugging functions---- Copyright (c) 2013 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 CPSA.Lib.DebugLibrary where--import CPSA.Lib.Algebra-import CPSA.Lib.Protocol-import CPSA.Lib.Strand-import qualified Data.Set as S-import Data.Set(Set)--zi :: Algebra t p g s e c => Instance t p g s e c -> String-zi inst =- show (map f e)- where- domain = rvars (role inst)- e = reify domain (env inst)- range = map snd e- f (x, t) = (displayTerm (context domain) x,- displayTerm (context range) t)- context ts = addToContext emptyContext ts--zs :: Algebra t p g s e c => Set t -> String-zs s =- show $ map (displayTerm (addToContext emptyContext ts)) ts- where- ts = S.toList s
src/CPSA/Lib/Declaration.hs view
@@ -11,6 +11,7 @@ dknon, dkpnon, dkunique, dkuniqFull, mkDecls, declsUnion, dkuniqgen, tagDeclsTermsOnly, tagDeclsLocsOnly, declFormats, declInputFormats, dterms, dlocs, daux, declInst, declInstAux, DeclInst, dkugenFull,+ dkabsent, declsTerms, addDeclInst, declMember, DeclInstList, Declaration, DeclInFormat(..), DeclOutFormat(..), DeclList, declarationRoleTags, -- BasicOutFmt, MultiTermOutFmt, NullOutFmt, BasicRoleOutFmt, GeneralOutFmt,@@ -46,19 +47,21 @@ -- aux is a boolean, specifying whether a sub-name is used. -- areq = True means that all the terms must be atoms; this is in -- input requirements only.-data DeclInFormat =- BasicInFmt | MultiTermInFmt | NullInFmt | TwoTermInFmt | TermLocInFmt+data DeclInFormat+ = BasicInFmt | MultiTermInFmt | NullInFmt | TwoTermInFmt+ | TermLocInFmt | LocInFmt deriving Eq declInputFormats :: [(DeclInFormat, Bool, Bool)] declInputFormats =- [(BasicInFmt, True, False), -- non, pen-non, uniq+ [(BasicInFmt, True, False), -- non, pen-non, uniq (TwoTermInFmt, False, False), -- neq, lt (TwoTermInFmt, False, True), -- fn-of- (NullInFmt, False, True), -- inst-limit+ (NullInFmt, False, True), -- inst-limit (MultiTermInFmt, False, False), -- neq-list- (BasicInFmt, True, True), -- subsort- (TermLocInFmt, False, False) -- uniq-gen+ (BasicInFmt, True, True), -- subsort+ (TermLocInFmt, False, False), -- uniq-gen+ (LocInFmt, False, False) -- precur ] -- List of formats for output of declarations@@ -66,8 +69,9 @@ -- fmt specifies a descriptive choice for the format, describing -- contraints on numbers of terms and nodes in each declared item. -- aux is a boolean, specifying whether a sub-name is used.-data DeclOutFormat =- BasicOutFmt | MultiTermOutFmt | NullOutFmt | BasicRoleOutFmt | GeneralOutFmt | TermLocOutFmt+data DeclOutFormat+ = BasicOutFmt | MultiTermOutFmt | NullOutFmt | LocOutFmt+ | BasicRoleOutFmt | GeneralOutFmt | TermLocOutFmt deriving Eq declOutputFormats :: [(DeclOutFormat, Bool)]@@ -79,10 +83,11 @@ (BasicOutFmt, True), (BasicRoleOutFmt, False), (TermLocOutFmt, False),- (GeneralOutFmt, False)]+ (GeneralOutFmt, False),+ (LocOutFmt, False)] defaultOutFormat :: Int-defaultOutFormat = ((length declOutputFormats) - 1)+defaultOutFormat = 7 -- Entries are of the form (tag, (infmt, outfmt)) -- tag is associated with indices into declInputFormats@@ -97,6 +102,8 @@ -- ("inst-limit", (3, 3)), ("lt", (1, 1)), ("neq", (1, 1)),+ ("absent", (1, 1)),+ ("precur", (7, 8)), ("neqlist", (4, defaultOutFormat)), ("subsort", (5, 4)), ("ind-zero", (0, 0)),@@ -126,6 +133,25 @@ declInst :: [t] -> [l] -> DeclInst t l declInst ts ls = declInstAux ts ls "" +addDeclInst :: String -> [t] -> [l] -> Declarations t l -> Declarations t l+addDeclInst tag ts ls (Declarations {dlist = dl}) =+ Declarations {dlist = f dl}+ where+ f [] = [(tag, [declInst ts ls])]+ f ((t, l) : ds) | t == tag = (t, declInst ts ls : l) : ds+ f (d : ds) = d : f ds++declMember :: (Eq t, Eq l) => String -> [t] -> [l] ->+ Declarations t l -> Bool+declMember tag ts ls (Declarations {dlist = dl}) =+ any f dl+ where+ f (t, l) -- Find right tag+ | t == tag = any g l+ | otherwise = False+ g (DeclInst { dterms = ts', dlocs = ls' }) =+ ts == ts' && ls == ls'+ type DeclInstList t l = [DeclInst t l] type Declaration t l = (String, DeclInstList t l) type DeclList t l = [Declaration t l]@@ -150,6 +176,9 @@ duniqgen :: Declarations t l -> DeclInstList t l duniqgen decls = tagDecls "uniq-gen" decls +dabsent :: Declarations t l -> DeclInstList t l+dabsent decls = tagDecls "absent" decls+ -- Exported dknon :: Declarations t l -> [t] dknon d = map head $ map dterms (dnon d)@@ -178,6 +207,13 @@ ("Declaration:dkugenFull something odd happened") -- (head $ dterms x, Nothing) | otherwise = (head $ dterms x, Just (head $ dlocs x)) +dkabsent :: Declarations t l -> [(t, t)]+dkabsent d =+ map f $ dabsent d+ where+ f (DeclInst {dterms = [x, y]}) = (x, y)+ f _ = error "Bad absence decl"+ modname :: (Algebra t p g s e c, Loc l) => String -> DeclInstList t l -> Declarations t l -> Declarations t l modname name ds decls =@@ -281,7 +317,7 @@ Declarations t l -> (g, e) -> Bool declCheckOrigs d d' env = (S.fromList (map fst $ dlist d) == S.fromList (map fst $ dlist d')) &&- (any matchRenaming (checkAllDecls [env] d d' (map fst $ dlist d)))+ (not $ null (checkAllDecls [env] d d' (map fst $ dlist d))) checkAllDecls :: (Algebra t p g s e c, Loc l) => [(g,e)] -> Declarations t l -> Declarations t l -> [String] -> [(g,e)]@@ -303,6 +339,22 @@ env' <- matchMany (dterms i) (dterms i') env checkDecl env' is (delete i' is') checkDecl _ _ _ = []++-- Exported+declsTerms :: (Algebra t p g s e c, Loc l) => Declarations t l -> [t]+declsTerms decls =+ concatMap fdecls (dlist decls)+ where+ fdecls (_, ds) = concatMap gdecls ds+ gdecls (DeclInst {dterms = ts}) = ts++-- declsAbsentTerms :: (Algebra t p g s e c, Loc l) => Declarations t l -> [t]+-- declsAbsentTerms decls =+-- concatMap fdecls (dlist decls)+-- where+-- fdecls (name, ds) | name == "absent" = concatMap gdecls ds+-- fdecls _ = []+-- gdecls (DeclInst {dterms = ts}) = ts -- Exported declsMapTerms :: (Algebra t p g s e c, Loc l) => (t -> t) ->
src/CPSA/Lib/Displayer.hs view
@@ -182,6 +182,8 @@ displayOptional tag (displayTerms ctx (tagDeclsTermsOnly tag decls)) rest displaySkelDeclaration ctx (tag, (GeneralOutFmt, False)) decls rest = displayOptional tag (displaySkelDeclGen ctx (tagDecls tag decls)) rest+displaySkelDeclaration _ (tag, (LocOutFmt, False)) decls rest =+ displayOptional tag (displaySkelDeclLoc (tagDecls tag decls)) rest displaySkelDeclaration ctx (tag, (BasicRoleOutFmt, False)) decls rest = displayOptional tag (displayTermPlusMaybeOneNodes ctx (tagDecls tag decls)) rest displaySkelDeclaration ctx (tag, (MultiTermOutFmt, False)) decls rest =@@ -287,6 +289,19 @@ ts = dterms dinst ns = dlocs dinst +displaySkelDeclLoc :: (Algebra t p g s e c) => SkelDeclInstList t ->+ [SExpr ()]+displaySkelDeclLoc [] = []+displaySkelDeclLoc (d:ds) =+ displaySkelDeclLocItem d (displaySkelDeclLoc ds)++displaySkelDeclLocItem :: (Algebra t p g s e c) => SkelDeclInst t ->+ [SExpr ()] -> [SExpr ()]+displaySkelDeclLocItem dinst rest =+ displayNodes ns ++ rest+ where+ ns = dlocs dinst+ displayInst :: Algebra t p g s e c => c -> Instance t e -> SExpr () displayInst ctx s =@@ -352,6 +367,9 @@ (L () [S () "added-strand", S () role, N () height]) cause AddedListener t cause -> displayCause (L () [S () "added-listener", displayOpTerm ctx t]) cause+ AddedAbsence t1 t2 cause ->+ displayCause (L () [S () "added-absence", displayOpTerm ctx t1,+ displayOpTerm ctx t2]) cause AlgebraSolved subst cause -> let substitution = displaySubst ctx subst in displayCause (L () (S () "algebra-contracted" : substitution)) cause
src/CPSA/Lib/Entry.hs view
@@ -10,7 +10,7 @@ defaultOptions, algOptions, algInterp, filterOptions, filterInterp, readSExpr, gentlyReadSExpr, outputHandle, writeSExpr,- writeLnSEexpr, cpsaVersion, comment,+ writeLnSExpr, cpsaVersion, comment, writeComment, tryIO) where import Numeric@@ -227,8 +227,8 @@ writeSExpr h margin sexpr = hPutStrLn h (pp margin indent sexpr) -writeLnSEexpr :: Handle -> Int -> SExpr a -> IO ()-writeLnSEexpr h margin sexpr =+writeLnSExpr :: Handle -> Int -> SExpr a -> IO ()+writeLnSExpr h margin sexpr = do hPutStrLn h "" writeSExpr h margin sexpr
src/CPSA/Lib/Expand.hs view
@@ -11,7 +11,7 @@ import Control.Monad import System.IO (openFile, IOMode (ReadMode)) import CPSA.Lib.Entry (readSExpr, tryIO)-import CPSA.Lib.CPSA+import CPSA.Lib.SExpr -- The macroexpand loop limit limit :: Int
src/CPSA/Lib/Loader.hs view
@@ -239,6 +239,13 @@ case (length (dlocs dinst) > 1) of True -> fail (shows (annotation x1) "Too many locations in declaration") False -> return (tg, (dinst:insts))+-- LocInFmt, False format: get Int values+loadPredefRoleDecls height _ tag stag LocInFmt False exprs =+ do+ results <- loadPositions height exprs+ return (tag, map f results)+ where+ f pos = declInstAux [] [pos] stag -- Default: not supported. loadPredefRoleDecls _ _ _ _ _ _ xs = if (null xs)@@ -278,6 +285,12 @@ case (length (dlocs dinst) > 1) of True -> fail (shows (annotation x1) "Too many locations in declaration") False -> return (tg, (dinst:insts))+loadPredefSkelDecls heights _ tag stag LocInFmt False exprs =+ do+ result <- loadNodes heights exprs+ return (tag, map f result)+ where+ f pos = declInstAux [] [pos] stag -- Default: not supported. loadPredefSkelDecls _ _ _ _ _ _ xs = if (null xs)@@ -417,7 +430,7 @@ return $ Sync $ Tran (Nothing, Just t0, Just t1) loadEvt _ (L pos [S _ dir, _]) = fail (shows pos $ "Malformed direction: " ++ dir)-loadEvt _ x = fail (shows (annotation x) "Malformed direction")+loadEvt _ x = fail (shows (annotation x) "Malformed event") loadBaseTerms :: (Algebra t p g s e c, Monad m) => [t] -> [SExpr Pos] -> m [t] loadBaseTerms _ [] = return []@@ -469,6 +482,21 @@ True -> return (Nothing, t) False -> fail (shows (annotation x) "Expecting an atom") +loadPositions :: Monad m => Int -> [SExpr Pos] -> m [Int]+loadPositions _ [] = return []+loadPositions height (x : xs) =+ do+ p <- loadPosition height x+ ps <- loadPositions height xs+ return (p:ps)++loadPosition :: Monad m => Int -> SExpr Pos -> m Int+loadPosition height x@(N _ pos)+ | pos < 0 = fail (shows (annotation x) "Expecting a non-negative height")+ | pos >= height = fail (shows (annotation x) "Height out of range")+ | otherwise = do return pos+loadPosition _ x = fail (shows (annotation x) "Expecting an integer height")+ -- Find protocol and then load a preskeleton. findPreskel :: (Algebra t p g s e c, Monad m) => Pos ->@@ -516,13 +544,14 @@ priorities <- loadPriorities (assoc "priority" xs) insts' (gen, gs) <- loadGoals top p gen goals loadRest top p gs gen insts' order leadsto- (predefs ++ others) kcomment priorities+ (predefs ++ others) kcomment priorities pov where insts' = reverse insts heights = map (\ inst -> length $ trace inst) insts' order = assoc "precedes" xs leadsto = assoc "leadsto" xs goals = assoc "goals" xs+ pov = assoc "pov" xs kcomment = loadComment "subgoals" goals ++ loadComment "comment" (assoc "comment" xs)@@ -595,14 +624,15 @@ [t] -> g -> SExpr Pos -> m (g, Instance t e) loadListener p kvars gen x = do- t <- loadTerm kvars True x+ t <- loadTerm kvars False x return $ mkListener p gen t loadRest :: (Algebra t p g s e c, Monad m) => Pos -> Prot t g -> [Goal t] -> g -> [Instance t e] -> [SExpr Pos] -> [SExpr Pos] -> SkelDeclList t ->- [SExpr ()] -> [((Int,Int),Int)] -> m (Preskel t g s e)-loadRest pos p gs gen insts orderings leadsto decls comment priorities =+ [SExpr ()] -> [((Int,Int),Int)] -> [SExpr Pos] ->+ m (Preskel t g s e)+loadRest pos p gs gen insts orderings leadsto decls comment priorities pov = do case null insts of True -> fail (shows pos "No strands")@@ -610,7 +640,9 @@ let heights = map height insts o <- loadOrderings heights orderings True l <- loadOrderings heights leadsto False- let k = mkPreskel gen p gs insts o l decls comment priorities+ (pov, prob) <- loadPov pos p pov+ checkProb pos (length insts) prob+ let k = mkPreskel gen p gs insts o l decls comment priorities pov prob case termsWellFormed $ (termsInDlist decls) ++ kterms k of True -> return () False -> fail (shows pos "Terms in skeleton not well formed:" ++ show (termsInDlist decls ++ kterms k))@@ -696,11 +728,9 @@ do n0 <- loadNode heights x0 n1 <- loadNode heights x1- case (strict && sameStrands n0 n1) of -- Same strand+ case strict && fst n0 == fst n1 of -- Same strand True -> fail (shows pos "Malformed pair -- nodes in same strand") False -> return (n0, n1)- where- sameStrands (s0, _) (s1, _) = s0 == s1 loadPair _ x _ = fail (shows (annotation x) "Malformed pair") loadTerms :: (Algebra t p g s e c, Monad m) => [t] -> SExpr Pos -> m [t]@@ -751,10 +781,36 @@ | otherwise = height xs (s - 1) loadNode _ x = fail (shows (annotation x) "Malformed node") --- Security Goals+loadPov :: (Algebra t p g s e c, Monad m) => Pos -> Prot t g ->+ [SExpr Pos] -> m (Maybe (Preskel t g s e), [Sid])+loadPov _ _ [] = return (Nothing, [])+loadPov pos p [L _ xs, x] =+ do+ prob <- mapM loadInt xs+ k <- loadPovPreskel pos p x+ return (Just k, prob)+loadPov pos _ _ = fail (shows pos "Bad POV within a skeleton") --- Security goals+loadInt :: Monad m => SExpr Pos -> m Int+loadInt (N _ n) = return n+loadInt x = fail (shows (annotation x) "Expecting an integer") +loadPovPreskel :: (Algebra t p g s e c, Monad m) => Pos -> Prot t g ->+ SExpr Pos -> m (Preskel t g s e)+loadPovPreskel _ p (L pos (S _ "defskeleton" : S _ name : xs))+ | pname p == name = loadPreskel pos p xs+ | otherwise = fail (shows pos $ "Protocol " ++ name ++ " mismatch")+loadPovPreskel pos _ _ = fail (shows pos "Malformed defskeleton")++checkProb :: Monad m => Pos -> Int -> [Sid] -> m ()+checkProb pos nstrands prob =+ mapM_ f prob+ where+ f s | s >= 0 && s < nstrands = return ()+ | otherwise = fail (shows pos "Bad problem in POV")++-- Security Goals+ -- Load a defgoal form findGoal :: (Algebra t p g s e c, Monad m) => Pos -> [Prot t g] -> [SExpr Pos] -> m (Preskel t g s e)@@ -812,7 +868,7 @@ g -> [t] -> SExpr Pos -> m (g, Goal t, Conj t) loadImplication _ prot g vars (L pos [S _ "implies", a, c]) = do- (g, antec) <- loadRoleSpecific pos prot g vars vars a+ antec <- loadRoleSpecific pos prot vars vars a (g, concl) <- loadConclusion pos prot g vars c let goal = Goal { uvars = vars,@@ -847,119 +903,121 @@ loadExistential _ prot g vars (L pos [S _ "exists", L _ vs, x]) = do (g, evars) <- loadVars g vs- loadRoleSpecific pos prot g (evars ++ vars) evars x+ as <- loadRoleSpecific pos prot (evars ++ vars) evars x+ return (g, as) loadExistential pos prot g vars x =- loadRoleSpecific pos prot g vars [] x+ do+ as <- loadRoleSpecific pos prot vars [] x+ return (g, as) --- Load a conjunction of atomic formulas and ensure the formula is --- role specific. loadRoleSpecific :: (Algebra t p g s e c, Monad m) => Pos -> Prot t g ->- g -> [t] -> [t] -> SExpr Pos -> m (g, Conj t)-loadRoleSpecific pos prot g vars unbound x =+ [t] -> [t] -> SExpr Pos -> m (Conj t)+loadRoleSpecific pos prot vars unbound x = do- (g, as) <- loadConjunction pos prot vars g x+ as <- loadConjunction pos prot vars x let as' = L.sortBy (\(_, x) (_, y) -> aFormOrder x y) as unbound <- foldM roleSpecific unbound as' case unbound of- [] -> return (g, as')+ [] -> return as' (v : _) -> fail (shows (annotation x) ("Malformed defgoal: " ++ showst v " not used")) -- Load a conjunction of atomic formulas loadConjunction :: (Algebra t p g s e c, Monad m) => Pos -> Prot t g ->- [t] -> g -> SExpr Pos -> m (g, Conj t)-loadConjunction _ p kvars g (L pos (S _ "and" : xs)) =- loadConjuncts pos p kvars g xs []-loadConjunction top p kvars g x =+ [t] -> SExpr Pos -> m (Conj t)+loadConjunction _ p kvars (L pos (S _ "and" : xs)) =+ loadConjuncts pos p kvars xs []+loadConjunction top p kvars x = do- (g, pos, a) <- loadPrimary top p kvars g x- return (g, [(pos, a)])+ (pos, a) <- loadPrimary top p kvars x+ return [(pos, a)] loadConjuncts :: (Algebra t p g s e c, Monad m) => Pos -> Prot t g ->- [t] -> g -> [SExpr Pos] -> Conj t -> m (g, Conj t)-loadConjuncts _ _ _ g [] rest = return (g, reverse rest)-loadConjuncts top p kvars g (x : xs) rest =+ [t] -> [SExpr Pos] -> Conj t -> m (Conj t)+loadConjuncts _ _ _ [] rest = return (reverse rest)+loadConjuncts top p kvars (x : xs) rest = do- (g, pos, a) <- loadPrimary top p kvars g x- loadConjuncts top p kvars g xs ((pos, a) : rest)+ (pos, a) <- loadPrimary top p kvars x+ loadConjuncts top p kvars xs ((pos, a) : rest) -- Load the atomic formulas loadPrimary :: (Algebra t p g s e c, Monad m) => Pos -> Prot t g ->- [t] -> g -> SExpr Pos -> m (g, Pos, AForm t)-loadPrimary _ _ kvars g (L pos [S _ "=", x, y]) =+ [t] -> SExpr Pos -> m (Pos, AForm t)+loadPrimary _ _ kvars (L pos [S _ "=", x, y]) = do- (g, t) <- loadSgTerm kvars g x- (g, t') <- loadSgTerm kvars g y- return (g, pos, Equals t t')-loadPrimary _ _ kvars g (L pos [S _ "non", x]) =+ t <- loadTerm kvars False x+ t' <- loadTerm kvars False y+ return (pos, Equals t t')+loadPrimary _ _ kvars (L pos [S _ "non", x]) = do t <- loadAlgTerm kvars x- return (g, pos, Non t)-loadPrimary _ _ kvars g (L pos [S _ "pnon", x]) =+ return (pos, Non t)+loadPrimary _ _ kvars (L pos [S _ "pnon", x]) = do t <- loadAlgTerm kvars x- return (g, pos, Pnon t)-loadPrimary _ _ kvars g (L pos [S _ "uniq", x]) =+ return (pos, Pnon t)+loadPrimary _ _ kvars (L pos [S _ "uniq", x]) = do t <- loadAlgTerm kvars x- return (g, pos, Uniq t)-loadPrimary _ _ kvars g (L pos [S _ "uniq-at", x, y]) =+ return (pos, Uniq t)+loadPrimary _ _ kvars (L pos [S _ "uniq-at", x, y]) = do t <- loadAlgTerm kvars x- (g, t') <- loadNodeTerm kvars g y- return (g, pos, UniqAt t t')-loadPrimary _ _ kvars g (L pos [S _ "ugen-at", x, y]) =+ t' <- loadNodeTerm kvars y+ return (pos, UniqAt t t')+loadPrimary _ _ kvars (L pos [S _ "ugen-at", x, y]) = do t <- loadAlgTerm kvars x- (g, t') <- loadNodeTerm kvars g y- return (g, pos, UgenAt t t')-loadPrimary _ _ kvars g (L pos [S _ "ugen", x]) =+ t' <- loadNodeTerm kvars y+ return (pos, UgenAt t t')+loadPrimary _ _ kvars (L pos [S _ "ugen", x]) = do t <- loadAlgTerm kvars x- return (g, pos, Ugen t)-loadPrimary _ _ kvars g (L pos [S _ "str-prec", x, y]) =+ return (pos, Ugen t)+loadPrimary _ _ kvars (L pos [S _ "str-prec", x, y]) = do- (g, t) <- loadNodeTerm kvars g x- (g, t') <- loadNodeTerm kvars g y- return (g, pos, StrPrec t t')-loadPrimary _ _ kvars g (L pos [S _ "prec", x, y]) =+ t <- loadNodeTerm kvars x+ t' <- loadNodeTerm kvars y+ return (pos, StrPrec t t')+loadPrimary _ _ kvars (L pos [S _ "prec", x, y]) = do- (g, t) <- loadNodeTerm kvars g x- (g, t') <- loadNodeTerm kvars g y- return (g, pos, Prec t t')-loadPrimary _ p kvars g (L pos [S _ "p", Q _ name, N _ i, x]) =+ t <- loadNodeTerm kvars x+ t' <- loadNodeTerm kvars y+ return (pos, Prec t t')+loadPrimary _ p kvars (L pos [S _ "p", Q _ name, N _ i, x]) = do r <- lookupRole pos p name- (g, t) <- loadNodeTerm kvars g x+ t <- loadNodeTerm kvars x case i < 0 || i >= length (rtrace r) of True -> fail (shows pos "Bad index")- False -> return (g, pos, RolePred r i t)-loadPrimary _ p kvars g (L pos [S _ "p", Q _ name, Q var x, y, z]) =+ False -> return (pos, RolePred r i t)+loadPrimary _ p kvars (L pos [S _ "p", Q _ name, Q var x, y, z]) = do r <- lookupRole pos p name v <- loadAlgTerm (rvars r) (S var x)- (g, n) <- loadNodeTerm kvars g y+ n <- loadNodeTerm kvars y t <- loadAlgTerm kvars z case isVar v of False -> fail (shows pos "Bad parameter -- not a variable")- True -> return (g, pos, ParamPred r v n t)-loadPrimary _ _ _ _ (L pos (S _ "p" : Q _ name : _)) =+ True -> return (pos, ParamPred r v n t)+loadPrimary _ _ _ (L pos (S _ "p" : Q _ name : _)) = fail (shows pos ("Malformed role specific formula for role " ++ name))-loadPrimary _ _ _ _ (L pos (S _ pred : _)) =+loadPrimary _ _ _ (L pos (S _ pred : _)) = fail (shows pos ("Malformed formula for predicate " ++ pred))-loadPrimary pos _ _ _ _ = fail (shows pos "Bad formula")+loadPrimary pos _ _ _ = fail (shows pos "Bad formula") -- Load a term and make sure it has sort node -loadNodeTerm :: (Algebra t p g s e c, Monad m) => [t] -> g ->- SExpr Pos -> m (g, t)-loadNodeTerm ts g x =+loadNodeTerm :: (Algebra t p g s e c, Monad m) => [t] -> SExpr Pos -> m t+loadNodeTerm ts x = do- (g, t) <- loadSgTerm ts g x+ t <- loadTerm ts False x case isNodeVar t of- True -> return (g, t)+ True -> return t False -> fail (shows (annotation x) "Expecting a node variable") -- Load a term and make sure it does not have sort node@@ -973,13 +1031,6 @@ case isNodeVar t of True -> fail (shows (annotation x) "Expecting an algebra term") False -> return t--loadSgTerm :: (Algebra t p g s e c, Monad m) => [t] -> g ->- SExpr Pos -> m (g, t)-loadSgTerm ts g x =- do- t <- loadTerm ts False x- return (g, t) -- Role specific check
src/CPSA/Lib/Main.hs view
@@ -182,7 +182,7 @@ h <- outputHandle (optFile opts) writeComment h m cpsaVersion writeComment h m "Expanded macros"- mapM_ (writeLnSEexpr h m) sexprs+ mapM_ (writeLnSExpr h m) sexprs hClose h return ()
src/CPSA/Lib/Protocol.hs view
@@ -7,8 +7,8 @@ -- University of California. module CPSA.Lib.Protocol (Event (..), evtTerms, evtMesgTerms, evtMap, evt,- recvTerm, sendTerm, sync, Trace, stripSync, tterms, originates,- originationPos, acquiredPos, gainedPos, genGainedPos, usedPos,+ recvTerm, Trace, stripSync, tterms, originates,+ originationPos, gainedPos, genGainedPos, Role, rname, rvars, rtrace, rdecls, rcomment, rsearch, generationPos, ridecls, mkRole, roleWellFormed, RoleDeclInst, RoleDeclInstList, RoleDeclaration, RoleDeclList,@@ -68,10 +68,12 @@ recvTerm (In t) = Just t recvTerm _ = Nothing +{- -- Extract the transmission term sendTerm :: Event t -> Maybe t sendTerm (Out t) = Just t sendTerm _ = Nothing+-} -- Extract the term in an inbound event. inbnd :: Event t -> Maybe t@@ -85,10 +87,12 @@ outbnd (Sync (Tran (_,Just t,_))) = Just t outbnd _ = Nothing +{- -- Extract the term in an outbound event. sync :: Event t -> Maybe (Tran t) sync (Sync t) = Just t sync _ = Nothing+-} -- A trace is a list of events. The terms in the trace are -- stored in causal order.@@ -163,6 +167,13 @@ -- inbound message lookupPos t occursIn carriedBy occursIn ftest c +-- At what position is a term obtained in a trace?+obtainedPos :: Algebra t p g s e c => t -> Trace t -> Maybe Int+obtainedPos t c =+ -- Looking for where t first occurs, if it occurs there and that is an+ -- inbound message+ lookupPos t occursIn occursIn occursIn ftest c+ -- At what position is a term gained in a trace? gainedPos :: Algebra t p g s e c => t -> Trace t -> Maybe Int@@ -280,7 +291,7 @@ -- the generation point of uniq-gen numeric variables. indz_ins = case concatMap indz_ininsts (filter isNum (dkuniqgen decls)) of [] -> []- insts -> [("ind-zero-in", insts)]+ insts -> [("absent", insts)] indz_ininsts v = case generationPos (v) trace of Nothing -> error "Protocol.mkRole: Atom does not generate"@@ -326,7 +337,8 @@ mapM_ uniqueCheck $ dkunique $ rdecls role let chk = declCheck $ rdecls role failwith (snd chk) (fst chk)- mapM_ origVarCheck $ rvars role+ mapM_ acqVarCheck $ rvars role+ mapM_ obtVarCheck $ rvars role failwith "role trace is a prefix of a listener" $ notListenerPrefix $ rtrace role where@@ -342,10 +354,14 @@ uniqueCheck t = failwith (showString "[ASSERT FAILED] uniq-orig " $ showst t " doesn't originate") $ originates t (rtrace role)- origVarCheck v =+ acqVarCheck v = failwith (showString "variable " $ showst v " not acquired") $ not (isAcquiredVar v) || M.isJust (acquiredPos v (rtrace role))+ obtVarCheck v =+ failwith (showString "variable " $ showst v " not obtained")+ $ not (isObtainedVar v) ||+ M.isJust (obtainedPos v (rtrace role)) showst :: Algebra t p g s e c => t -> ShowS showst t =
src/CPSA/Lib/Reduction.hs view
@@ -23,6 +23,20 @@ import CPSA.Lib.Cohort import CPSA.Lib.Displayer +{--+-- Debugging support (Comment line above)+import CPSA.Lib.Debug+{--+import System.IO.Unsafe++z :: Show a => a -> b -> b+z x y = unsafePerformIO (print x >> return y)++zz :: Show a => a -> a+zz x = z x x+--}+--}+ -- Set when debugging an exception so that buffered results get out. useFlush :: Bool useFlush = True -- False@@ -31,7 +45,7 @@ wrt :: Options -> Handle -> SExpr a -> IO () wrt p h sexpr = do- writeLnSEexpr h (optMargin p) sexpr+ writeLnSExpr h (optMargin p) sexpr if useFlush then hFlush h else return () -- A labeled and linked preskeleton@@ -121,6 +135,7 @@ wrt p h (commentPreskel lk [] (unrealized k) Ordinary "Input cannot be made into a skeleton--nothing to do") solve p h ks (n + 1)+{-- -- Shouldn't need this case anymore [k'] -> if isomorphic (gist k) (gist k') then -- Input was a skeleton let lk' = LPreskel k' n 0 Nothing in@@ -134,7 +149,23 @@ let lk' = withParent k' (n + 1) lk begin p h ks (n + optLimit p) (n + 2) (hist (gist k', n + 1)) [lk']- _ -> error "Main.solve: can't handle more than one skeleton"+--}+ ks' ->+ -- If input was a skeleton, just proceed+ case [k''|k'' <- ks', isomorphic (gist k) (gist k'')] of+ (k' : _) -> begin p h ks (n + optLimit p) (n+1)+ (hist (gist k', n)) [LPreskel k' n 0 Nothing]+ [] -> + do+ let lk = LPreskel k n (-1) Nothing+ let ks'' = L.nubBy (\k1 k2 -> isomorphic (gist k1) (gist k2)) ks'+ wrt p h (commentPreskel lk [] (unrealized k) Ordinary+ "Not a skeleton")+ let lk_nums = zip [(n+1) .. (n+length(ks'))] ks''+ let lks' = map (\(n', k')-> withParent k' n' lk) lk_nums+ begin p h ks (n + optLimit p) (n+length(ks'')+1)+ (hist (gist (head ks'), n+1)) lks'+-- _ -> error "Main.solve: can't handle more than one first skeleton" -- Begin by collapsing the point-of-view skeleton as much as possible. begin :: Algebra t p g s e c => Options -> Handle ->
src/CPSA/Lib/Strand.hs view
@@ -9,11 +9,12 @@ module CPSA.Lib.Strand (Instance, mkInstance, bldInstance, mkListener, role, env, trace, height, listenerTerm, Sid, Node, mkPreskel, firstSkeleton, Pair, Preskel, gen, protocol, kgoals, insts, orderings, leadsto,- pov, korig, kugen, kcomment, nstrands, kvars, kpriority, kpriorities,+ pov, korig, kcomment, nstrands, kvars, kpriority, kpriorities, strandids, kterms, avoid, preskelWellFormed, verbosePreskelWellFormed,- Strand, inst, nodes, Vertex, preds, spreds, event, algebraSolve,+ Strand, inst, nodes, Vertex, preds, event, kabsent, graphNode, strands, vertex, Gist, gist, isomorphic, contract, augment,- addListener, Cause (..), Direction (..), Method (..), Operation (..),+ addListener, addBaseListener, addAbsence, isNodePrecur,+ Cause (..), Direction (..), Method (..), Operation (..), operation, SkelDeclInst, SkelDeclInstList, SkelDeclaration, SkelDeclList, SkelDeclarations, priority, prob, homomorphism, toSkeleton, generalize, collapse, decls, sat) where@@ -33,10 +34,9 @@ import CPSA.Lib.Protocol import CPSA.Lib.Goal --- Debugging support+-- Debugging support (Uncomment below) --import CPSA.Lib.Debug---import System.IO.Unsafe---}+ {-- Additional debugging support zi :: Algebra t p g s e c => Instance t e -> String zi inst =@@ -77,18 +77,6 @@ useCheckVars :: Bool useCheckVars = False -usePruningDuringCollapsing :: Bool-usePruningDuringCollapsing = False -- True--usePruningWhileSolving :: Bool-usePruningWhileSolving = True -- False--useStrictPrecedesCheck :: Bool-useStrictPrecedesCheck = False -- True--usePruningUnboundCheck :: Bool-usePruningUnboundCheck = False -- True- -- Instances and Strand Identifiers -- An Instance is an instance of a role, in the sense that each@@ -302,12 +290,6 @@ | i > 0 = (s, i - 1) : ns | otherwise = ns --- Does start node precede end node?-graphPrecedes :: GraphNode e i -> GraphNode e i -> Bool-graphPrecedes start end =- let predecessors = preds end in- any (== start) predecessors || any (graphPrecedes start) predecessors- -- Compute the transitive reduction graphReduce :: [GraphEdge e i] -> [GraphEdge e i] graphReduce orderings =@@ -340,12 +322,14 @@ | 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] spreds n = filter f (nodes $ strand n) where f n' = pos n' < pos n+-} -- Shared part of preskeletons @@ -374,6 +358,7 @@ edges :: ![Edge t e], cInfo :: ConstInfo t, decls :: SkelDeclarations t,+ extraDecls :: SkelDeclarations t, kcomment :: [SExpr ()], -- Comments from the input pov :: Maybe (Preskel t g s e), -- Point of view, the -- original problem statement.@@ -428,28 +413,32 @@ | Displaced Int Int String Int (Cause t) | AddedStrand String Int (Cause t) | AddedListener t (Cause t)+ | AddedAbsence t t (Cause t) | AlgebraSolved s (Cause t) | Generalized (Method t) | Collapsed Int Int deriving Show --- Create a preskeleton. The point of view field is not filled in.+-- Create a preskeleton. The point of view field might not be filled in. -- This version is exported for use by the loader. This preskeleton -- must be consumed by firstSkeleton. mkPreskel :: Algebra t p g s e c => g -> Prot t g -> [Goal t] -> [Instance t e] -> [Pair] -> [Pair] -> SkelDeclList t ->- [SExpr ()] -> [(Node,Int)] -> Preskel t g s e-mkPreskel gen protocol gs insts orderings leadsto dlist comment priorities =+ [SExpr ()] -> [(Node,Int)] -> Maybe (Preskel t g s e) ->+ [Sid] -> Preskel t g s e+mkPreskel gen protocol gs insts orderings leadsto dlist comment priorities+ maybePov maybeProb = k { kcomment = comment } where k = newPreskel gen shared insts orderings leadsto' decls'- New prob kpriority Nothing+ New prob kpriority maybePov shared = Shared { prot = protocol, goals = gs } decls' = foldl addInstOrigs decls (zip (nats (length insts)) insts) decls = mkDecls dlist' leadsto' = checkLeadsto leadsto [] dlist' = map g dlist- prob = strandids k -- Fixed point on k is okay.+ -- Fixed point on k is okay.+ prob = if M.isNothing maybePov then strandids k else maybeProb kpriority = priorities g ("uniq-orig", ds) = ("uniq-orig", map fuo ds) g ("uniq-gen", ds) = ("uniq-gen", map fug ds)@@ -508,8 +497,12 @@ firstSkeleton k = do k <- wellFormedPreskel k- k' <- toSkeleton False k -- only k' should have pov = Nothing- return $ k' { prob = strandids k', pov = Just k' }+ k' <- toSkeleton False k+ -- only k' or its parent should have pov = Nothing+ case pov k' of+ Nothing ->+ return $ k' { prob = strandids k', pov = Just k', kcomment = kcomment k }+ Just _ -> return k' -- Create a preskeleton. The node ordering relation is put into the -- preds field of each instance in this function. The maybe uniquely@@ -534,6 +527,7 @@ leadsto = leadsto, edges = edges, decls = decls',+ extraDecls = mkDecls [], cInfo = declsOrig strands decls', kcomment = [], tc = map graphPair tc,@@ -649,7 +643,10 @@ -- that only occur in a cause. kvars :: Algebra t p g s e c => Preskel t g s e -> [t] kvars k =- S.elems $ foldl addIvars S.empty (insts k)+ S.elems $ foldl addIvars dvars (insts k)+ where+ dvars = foldl f S.empty $ declsTerms (decls k)+ f s t = foldVars (flip S.insert) s t -- Isomorphism Check @@ -723,32 +720,44 @@ isomorphic :: Algebra t p g s e c => Gist t g -> Gist t g -> Bool isomorphic g g' =- nvars g == nvars g' &&+-- nvars g == nvars g' && -- Wrong in DH ntraces g == ntraces g' && norderings g == norderings g' && nleadsto g == nleadsto g' && nsndecls g == nsndecls g' && any (tryPerm g g') (permutations g g') +probIsomorphic :: Algebra t p g s e c => Preskel t g s e -> Preskel t g s e -> Bool+probIsomorphic k k' =+ any (tryPermProb g g' pr pr') (permutations g g')+ where+ g = gist k+ g' = gist k'+ pr = prob k+ pr' = prob k'+ -- Extend a permutation while extending a substitution -- Extend by matching later strands first permutations :: Algebra t p g s e c => Gist t g ->- Gist t g -> [((g, e), [Sid])]+ Gist t g -> [((g, e), (g, e), [Sid])] permutations g g' =- map rev $ perms (ggen g', emptyEnv)+ map rev $ perms (gg, emptyEnv)+ (gg, emptyEnv) (reverse $ gtraces g) (reverse $ nats $ ntraces g) where- perms env [] [] = [(env, [])]- perms env ((h, c):hcs) xs =- [ (env'', x:ys) |+ gg = gmerge (ggen g) (ggen g')+ perms fenv renv [] [] = [(fenv, renv, [])]+ perms fenv renv ((h, c):hcs) xs =+ [ (fenv'', renv'', x:ys) | x <- xs, let (h', c') = gtraces g' !! x, h == h',- env' <- jibeTraces c c' env,- (env'', ys) <- perms env' hcs (L.delete x xs) ]- perms _ _ _ = error "Strand.permutations: lists not same length"- rev (env, xs) = (env, reverse xs)+ fenv' <- jibeTraces c c' fenv,+ renv' <- jibeTraces c' c renv,+ (fenv'', renv'', ys) <- perms fenv' renv' hcs (L.delete x xs) ]+ perms _ _ _ _ = error "Strand.permutations: lists not same length"+ rev (fenv, renv, xs) = (fenv, renv, reverse xs) -- Length of matched traces must agree. jibeTraces :: Algebra t p g s e c => Trace t ->@@ -794,12 +803,25 @@ -} tryPerm :: Algebra t p g s e c => Gist t g ->- Gist t g -> ((g, e), [Sid]) -> Bool-tryPerm g g' (env, perm) =- checkOrigs g g' env perm &&+ Gist t g -> ((g, e), (g, e), [Sid]) -> Bool+tryPerm g g' (fenv, renv, perm) =+ checkOrigs g g' fenv perm &&+ checkOrigs g' g renv (invperm perm) && containsMapped (permutePair perm) (gorderings g') (gorderings g) && containsMapped (permutePair perm) (gleadsto g') (gleadsto g) +tryPermProb :: Algebra t p g s e c => Gist t g ->+ Gist t g -> [Sid] -> [Sid] -> ((g, e), (g, e), [Sid]) -> Bool+tryPermProb g g' prob prob' (fenv, renv, perm) =+ checkOrigs g g' fenv perm &&+ checkOrigs g' g renv perm &&+ containsMapped (permutePair perm) (gorderings g') (gorderings g) &&+ containsMapped (permutePair perm) (gleadsto g') (gleadsto g) &&+ all (\n -> perm !! (prob !! n) == prob' !! n) [0..((length prob)-1)]++invperm :: [Int] -> [Int]+invperm p = map snd (L.sortOn fst (zip p [0..]))+ -- containsMapped f xs ys is true when list xs contains each element -- in ys after being mapped with function f. containsMapped :: Eq a => (a -> a) -> [a] -> [a] -> Bool@@ -830,10 +852,6 @@ skel (_, k, _, _, _) = k -- Returns the preskeletons that result from applying a substitution.--- If validate is True, preskeletons that fail to preserve the nodes--- at which each maybe uniquely originating term originates are filter--- out.- ksubst :: Algebra t p g s e c => PRS t p g s e c -> (g, s) -> [PRS t p g s e c] ksubst (k0, k, n, phi, hsubst) (gen, subst) =@@ -871,6 +889,8 @@ AddedStrand role height (substCause subst cause) substOper subst (AddedListener t cause) = AddedListener (substitute subst t) (substCause subst cause)+substOper subst (AddedAbsence t1 t2 cause) =+ AddedAbsence (substitute subst t1) (substitute subst t2) (substCause subst cause) substOper subst (AlgebraSolved s cause) = AlgebraSolved (compose subst s) (substCause subst cause) substOper _ m@(Generalized _) = m@@ -962,8 +982,7 @@ Just p -> p Nothing -> rpriority (role $ (insts k !! s)) !! i --- Purge a strand. Used by thinning. The same as pruning except--- edges to the purged strand are forwarded as a first step.+-- Purge a strand. Used by thinning. purge :: Algebra t p g s e c => PRS t p g s e c -> Sid -> Sid -> [PRS t p g s e c] purge (k0, k, n, phi, hsubst) s s' =@@ -975,19 +994,21 @@ leadsto' <- normalizeOrderings False (permuteOrderings perm (forward s (leadsto k))) -- Pruning difference+ let insts' = (deleteNth s (insts k)) let k' = newPreskel (gen k) (shared k)- (deleteNth s (insts k))+ insts' orderings' leadsto'- (declsMapStrands perm (decls k))+ (declsMapStrands perm+ (declsFilterValid (iterms insts') (strandNotInSkel s) (decls k))) (operation k) (updateProb perm (prob k)) (updatePriority perm (kpriority k)) (pov k)- k'' <- wellFormedPreskel k'+ k'' <- wellFormedPreskel $ k' return (k0, k'', permuteNode perm n, map (perm !!) phi, hsubst) -- Forward orderings from strand s@@ -1002,72 +1023,6 @@ | s1 == s = [] -- Dump edges to strand s | otherwise = [p] -- Pass thru other edges -maybePrune :: Algebra t p g s e c => Bool -> PRS t p g s e c ->- [PRS t p g s e c]-maybePrune True prs- | useThinning = thin prs- | otherwise = prune prs-maybePrune False prs = reduce prs---- Redundant Strand Elimination (also known as pruning)--prune :: Algebra t p g s e c => PRS t p g s e c -> [PRS t p g s e c]-prune prs =- pruneStrands prs (reverse $ strandids $ skel prs) (strandids $ skel prs)--pruneStrands :: Algebra t p g s e c => PRS t p g s e c ->- [Sid] -> [Sid] -> [PRS t p g s e c]-pruneStrands prs [] _ =- reduce prs -- No redundant strands found-pruneStrands prs (_:ss) [] =- pruneStrands prs ss (strandids $ skel prs)-pruneStrands prs (s:ss) (s':ss')- | s == s' = pruneStrands prs (s:ss) ss'- | otherwise =- case pruneStrand prs s s' of- [] -> pruneStrands prs (s:ss) ss' -- Try next pair- prss -> -- Success- do- prs <- prss- prune prs---- Strand s is redundant if there is an environment that maps--- the trace of s into a prefix of the trace of s', but changes--- no other traces in the preskeleton.-pruneStrand :: Algebra t p g s e c => PRS t p g s e c ->- Sid -> Sid -> [PRS t p g s e c]-pruneStrand prs s s' =- do- let k = skel prs- case elem s (prob k) && elem s' (prob k) of- True -> fail "" -- Strands s and s' in image of POV skeleton- False -> return ()- env <- matchTraces- (trace (strandInst k s))- (trace (strandInst k s'))- (gen k, emptyEnv)- let ts = concatMap (tterms . trace) $ deleteNth s $ insts k- (gen', env') <- identityEnvFor env ts- case matchRenaming (gen', env') of- True -> return ()- False -> fail ""- case origCheck k env' of- True -> return ()- False -> fail ""- case all (precedesCheck k s s') (edges k) of- True -> return ()- False -> fail ""- case not useStrictPrecedesCheck ||- strictPrecedesCheck s s' (orderings k) &&- strictPrecedesCheck s' s (orderings k) of- True -> return ()- False -> fail ""- case not usePruningUnboundCheck || unboundCheck k s s' env' of- True -> return ()- False -> fail ""- prs <- ksubst prs (gen', substitution env')- compress True prs s s'- matchTraces :: Algebra t p g s e c => Trace t -> Trace t -> (g, e) -> [(g, e)] matchTraces [] _ env = [env] -- Pattern can be shorter@@ -1085,58 +1040,20 @@ matchTraces c c' e matchTraces _ _ _ = [] --- Ensure that if (s, p) precedes (s", p"), then (s', p) precedes (s", p")--- and if (s", p") precedes (s, p), then (s", p") precedes (s', p)-precedesCheck :: Preskel t g s e -> Sid -> Sid -> Edge t e -> Bool-precedesCheck k s s' (gn0, gn1)- | s == sid (strand gn0) = graphPrecedes (vertex k (s', pos gn0)) gn1- | s == sid (strand gn1) = graphPrecedes gn0 (vertex k (s', pos gn1))- | otherwise = True---- Experiment-strictPrecedesCheck :: Sid -> Sid -> [Pair] -> Bool-strictPrecedesCheck s s' pairs =- all (flip elem pairs) before &&- all (flip elem pairs) after- where- before = [ (n0, (s', i1)) |- (n0, (s1, i1)) <- pairs,- s1 == s ]- after = [ ((s', i0), n1) |- ((s0, i0), n1) <- pairs,- s0 == s ]---- Another experiment-unboundCheck :: Algebra t p g s e c => Preskel t g s e ->- Sid -> Sid -> e -> Bool-unboundCheck k s s' env =- all (flip S.member unbound) (map (instantiate env) (S.elems unbound))- where- -- The vars in s and s'- this = addIvars (addIvars S.empty (strandInst k s)) (strandInst k s')- -- The vars in strands other than s and s'- others = kvarsBut k s s'- unbound = S.difference this others--kvarsBut :: Algebra t p g s e c => Preskel t g s e ->- Sid -> Sid -> Set t-kvarsBut k s s' =- loop S.empty (insts k) 0- where- loop xs [] _ = xs- loop xs (i:is) s''- | s'' == s || s'' == s' =- loop xs is (s'' + 1)- | otherwise =- loop (addIvars xs i) is (s'' + 1)- -- Thinning +maybeThin :: Algebra t p g s e c => Bool -> PRS t p g s e c -> [PRS t p g s e c]+maybeThin True prs = thin prs+maybeThin False prs = twist prs+ thin :: Algebra t p g s e c => PRS t p g s e c -> [PRS t p g s e c]-thin prs =- thinStrands prs [] $ reverse ss- where -- Remove strands in image of POV- ss = filter (\s -> notElem s (prob $ skel prs)) (strandids $ skel prs)+thin prs = ans+ where+ ans = do+ prs <- twist prs+ thinStrands prs [] $ reverse ss+ --where -- Remove strands in image of POV+ ss = filter (\s -> notElem s (prob $ skel prs)) (strandids $ skel prs) -- Takes a skeleton, a list of pairs of strands that matched, and a -- list of strands yet to be analyzed, and produces the result of@@ -1148,7 +1065,7 @@ [(Sid, Sid)] -> [Sid] -> [PRS t p g s e c] thinStrands prs ps [] = -- All strands analyzied case multiPairs ps of -- Generate multipairs- [] -> reduce prs+ [] -> [prs] mps -> thinMany prs mps -- Try multistrand thinning thinStrands prs ps (s:ss) = thinStrandPairs prs ps s ss ss@@ -1178,49 +1095,25 @@ thinStrand :: Algebra t p g s e c => PRS t p g s e c -> Sid -> Sid -> Maybe [PRS t p g s e c] thinStrand prs s s' =- case thinStrandMatch k s s' (gen k, emptyEnv) of- [] -> Nothing- ges ->- Just $ do- e <- ges- (gen, env) <- thinStrandCheck k s e- [ prs' | prs <- ksubst prs (gen, substitution env),- prs <- reduce prs,- prs' <- purge prs s s',- prs'' <- purge prs s' s,- isomorphic (gist (skel prs')) (gist (skel prs'')) ]- where- k = skel prs+ let k = skel prs in+ case thinStrandMatch k s s' (gen k, emptyEnv) of+ False -> Nothing+ True ->+ Just [ prs' | prs' <- purge prs s s',+ prs'' <- purge prs s' s,+ probIsomorphic (skel prs') (skel prs'')] -- See if two strands match. thinStrandMatch :: Algebra t p g s e c => Preskel t g s e ->- Sid -> Sid -> (g, e) -> [(g, e)]-thinStrandMatch k s s' e =- ans+ Sid -> Sid -> (g, e) -> Bool+thinStrandMatch k s s' env =+ height i == height i'+ && not (null $ matchTraces (trace i) (trace i') env)+ && not (null $ matchTraces (trace i') (trace i) env) where i = strandInst k s i' = strandInst k s'- ans = do- case height i /= height i' of- True -> fail ""- False -> return ()- matchTraces (trace i) (trace i') e --- Do the identity, renaming, and origination check.-thinStrandCheck :: Algebra t p g s e c => Preskel t g s e ->- Sid -> (g, e) -> [(g, e)]-thinStrandCheck k s env =- do- (gen', env') <- identityEnvFor env ts- case matchRenaming (gen', env') of- True -> return ()- False -> fail ""- case origCheck k env' of- True -> return (gen', env')- False -> fail ""- where- ts = concatMap (tterms . trace) $ deleteNth s $ insts k- -- Multistrand thinning -- Generate all candidate pairings@@ -1249,7 +1142,7 @@ -- Try all multistrand pairings until one succeeds. thinMany :: Algebra t p g s e c => PRS t p g s e c -> [[(Sid, Sid)]] -> [PRS t p g s e c]-thinMany prs [] = reduce prs+thinMany prs [] = twist prs thinMany prs (ps:mps) = case thinManyStrands prs ps of [] -> thinMany prs mps@@ -1261,38 +1154,9 @@ thinManyStrands :: Algebra t p g s e c => PRS t p g s e c -> [(Sid, Sid)] -> [PRS t p g s e c] thinManyStrands prs ps =- do- let k = skel prs- (gen, env) <- thinManyMatch k ps- [ prs' | prs <- ksubst prs (gen, substitution env),- prs <- reduce prs,- prs' <- compressMany prs ps,- prs'' <- compressMany prs (swap ps),- isomorphic (gist (skel prs')) (gist (skel prs'')) ]--thinManyMatch :: Algebra t p g s e c => Preskel t g s e ->- [(Sid, Sid)] -> [(g, e)]-thinManyMatch k ps =- do- let f e (s, s') = thinStrandMatch k s s' e- env <- foldM f (gen k, emptyEnv) ps- let ss = concatMap (\(s, s') -> [s, s']) ps- let ts = concatMap (tterms . trace) $ deleteMany ss $ insts k- (gen', env') <- identityEnvFor env ts- case matchRenaming (gen', env') of- True -> return ()- False -> fail ""- case origCheck k env' of- True -> return (gen', env')- False -> fail ""--deleteMany :: [Int] -> [a] -> [a]-deleteMany nums xs =- loop 0 xs- where- loop _ [] = []- loop n (x:xs) | elem n nums = loop (n + 1) xs- | otherwise = x : loop (n + 1) xs+ [ prs' | prs' <- compressMany prs ps,+ prs'' <- compressMany prs (swap ps),+ isomorphic (gist (skel prs')) (gist (skel prs''))] compressMany :: Algebra t p g s e c => PRS t p g s e c -> [(Sid, Sid)] -> [PRS t p g s e c]@@ -1310,6 +1174,36 @@ updatePairs old new (s, s') = (updateStrand old new s, updateStrand old new s') +-- Enfore absence constraints.++useTwist :: Bool+useTwist = True -- False++twist :: Algebra t p g s e c => PRS t p g s e c -> [PRS t p g s e c]+twist prs | not useTwist = reduce prs+twist prs =+ do+ prs <- enforceAbsence prs+ reduce prs++{-+badabs :: Algebra t p g s e c => Preskel t g s e -> Bool+badabs k =+ any f (kabsent k)+ where+ f (x, y) = expnInExpr x y++chk :: Algebra t p g s e c => Preskel t g s e -> Preskel t g s e+chk k | badabs k = error ("No twist " ++ show (gen k))+ | otherwise = k++chkprs :: Algebra t p g s e c => PRS t p g s e c -> PRS t p g s e c+chkprs prs@(_, k, _, _, _)+ | badabs k = error ("No twist " ++ show (gen k))+ | otherwise = prs++-}+ -- Transitive Reduction -- An edge is essential if its removal eliminates all paths from its@@ -1379,7 +1273,7 @@ do prs <- ksubst (k, k { operation = Contracted emptySubst cause }, n, strandids k, emptySubst) subst- prs' <- skeletonize usePruningWhileSolving prs+ prs' <- skeletonize useThinning prs ans prs' -- Regular Augmentation@@ -1402,7 +1296,7 @@ augmentAndDisplace k0 n cause role subst inst isState = do prs <- substAndAugment k0 n cause role subst inst isState- augDisplace prs ++ skeletonize usePruningWhileSolving prs+ augDisplace prs ++ skeletonize useThinning prs -- Apply the substitution and apply augmentation operator. substAndAugment :: Algebra t p g s e c => Preskel t g s e ->@@ -1444,12 +1338,12 @@ augDisplaceStrands :: Algebra t p g s e c => PRS t p g s e c -> Sid -> Sid -> [PRS t p g s e c] augDisplaceStrands (k0, k, n, phi, hsubst) s s' =- do+ do (s, s', subst) <- us let op = addedToDisplaced (operation k) s s' prs <- ksubst (k0, k { operation = op}, n, phi, hsubst) subst prs <- compress True prs s s'- skeletonize usePruningWhileSolving prs+ skeletonize useThinning prs where us = unifyStrands k s s' @@ -1499,7 +1393,7 @@ addListener k n cause t = do k' <- wellFormedPreskel k'- prs <- skeletonize usePruningWhileSolving+ prs <- skeletonize useThinning (k, k', n, strandids k, emptySubst) ans prs where@@ -1510,20 +1404,57 @@ pair = ((length (insts k), 1), n) orderings' = pair : orderings k +addBaseListener :: Algebra t p g s e c => Preskel t g s e -> Node ->+ Cause t -> t -> [Ans t p g s e c]+addBaseListener k n cause t =+ do+ k' <- wellFormedPreskel k'+ prs <- skeletonize useThinning+ (k, k', n, strandids k, emptySubst)+ ans prs+ where+ k' = newPreskel gen'' (shared k) insts' orderings' (leadsto k) decls'+ (AddedListener t' cause) (prob k) (kpriority k) (pov k)+ (gen', t') = basePrecursor (gen k) t+ (gen'', inst) = mkListener (protocol k) gen' t'+ insts' = insts k ++ [inst]+ pair = ((length (insts k), 1), n)+ orderings' = pair : orderings k+ decls' = addDeclInst "precur" [] [(length (insts k), 0)] (decls k)++isNodePrecur :: Algebra t p g s e c => Preskel t g s e -> Node -> Bool+isNodePrecur k n =+ declMember "precur" [] [n] (decls k)++-- addAbsence+addAbsence :: Algebra t p g s e c => Preskel t g s e -> Node ->+ Cause t -> t -> t -> [Ans t p g s e c]+addAbsence k n cause x t =+ do+ k'' <- wellFormedPreskel k'+ prs <- skeletonize useThinning+ (k, k'', n, strandids k, emptySubst)+ ans prs+ where -- New cause should be added!+ k' = newPreskel (gen k) (shared k) (insts k) (orderings k)+ (leadsto k) decls' (AddedAbsence x t cause) (prob k)+ (kpriority k) (pov k)+ decls' = addDeclInst "absent" [x, t] [] (decls k)+ -- Numeric contraction -- MDL: Diffie-Hellman specific-algebraSolve :: Algebra t p g s e c => Preskel t g s e -> Node ->- Cause t -> t -> t -> [Ans t p g s e c]-algebraSolve k n cause ct t =- do- subst <- solutions- prs <- ksubst (k, k { operation = AlgebraSolved emptySubst cause },- n, strandids k, emptySubst) subst- prs' <- skeletonize usePruningWhileSolving prs- ans prs'- where- solutions = unify ct t' (gen', emptySubst)- (gen', t') = genericize (gen k) t+-- algebraSolve :: Algebra t p g s e c => Preskel t g s e -> Node ->+-- Cause t -> t -> t -> [Ans t p g s e c]+-- algebraSolve k n cause ct t =+-- do+-- subst <- solutions+-- prs <- ksubst (k, k { operation = AlgebraSolved emptySubst cause },+-- n, strandids k, emptySubst) subst+-- prs' <- skeletonize usePruningWhileSolving prs+-- ans prs'+-- where+-- solutions = unify ct t' (gen', emptySubst)+-- (gen', t') = genericize (gen k) t -- Homomorphisms @@ -1543,7 +1474,9 @@ findReplacement :: Algebra t p g s e c => Preskel t g s e -> Preskel t g s e -> [Sid] -> [(g, e)] findReplacement k k' mapping =- foldM (matchStrand k k' mapping) (gen k', emptyEnv) (strandids k)+ foldM (matchStrand k k' mapping) (gg, emptyEnv) (strandids k)+ where+ gg = gmerge (gen k) (gen k') matchStrand :: Algebra t p g s e c => Preskel t g s e -> Preskel t g s e -> [Sid] -> (g, e) -> Sid -> [(g, e)]@@ -1659,7 +1592,8 @@ (deleteOrderings s (leadsto k)) -- is this the right thing? decls' (Generalized (Deleted n))- (updatePerm s s (prob k))+ (updatePerm s s (prob k)) -- s shouldn't appear in prob, but we need to update+ -- in case any strands in prob are > s. (kpriority k) (pov k) where@@ -1973,7 +1907,7 @@ prs <- ksubst (k, k { operation = Collapsed s s' }, (0, 0), strandids k, emptySubst) subst prs <- compress True prs s s'- prs <- skeletonize usePruningDuringCollapsing prs+ prs <- skeletonize False prs return $ skel prs ------------------------------------------------------------------@@ -2004,6 +1938,9 @@ kunique :: Preskel t g s e -> [t] kunique = dkunique . decls +kabsent :: Preskel t g s e -> [(t, t)]+kabsent = dkabsent . decls+ -- Exported korig :: Preskel t g s e -> [(t, [Node])] korig = dkorig . cInfo@@ -2190,16 +2127,19 @@ skeletonize :: Algebra t p g s e c => Bool -> PRS t p g s e c -> [PRS t p g s e c] skeletonize prune prs =--- zfun (\ans -> (length ans, map (rname . role) (insts $ skel prs), hasMultipleOrig prs)) $- skeletonize2 prune 5 prs+ skeletonize2 prune 5 prs +enforceAbsence :: Algebra t p g s e c => PRS t p g s e c -> [PRS t p g s e c]+enforceAbsence prs@(_, k, _, _, _) =+ [prs'| s <- absenceSubst (gen k) (kabsent k), prs' <- ksubst prs s]+ skeletonize2 :: Algebra t p g s e c => Bool -> Int -> PRS t p g s e c -> [PRS t p g s e c] skeletonize2 _ 0 prs = [prs] skeletonize2 prune iter prs = concatMap maybeRectify coreResult where- coreResult = concatMap coreAlg [prs]+ coreResult = concatMap coreAlg (enforceAbsence prs) coreAlg | useDeOrigination = hull prune | otherwise = normalAlg@@ -2352,11 +2292,11 @@ [PRS t p g s e c] enrich prune (k0, k, n, phi, hsubst) = if length o == length (orderings k) then- maybePrune prune (k0, k, n, phi, hsubst) -- Nothing to add+ maybeThin prune (k0, k, n, phi, hsubst) -- Nothing to add else do k'' <- wellFormedPreskel k'- maybePrune prune (k0, k'', n, phi, hsubst)+ maybeThin prune (k0, k'', n, phi, hsubst) where o = addOrderings k k' = newPreskel@@ -2432,18 +2372,6 @@ g _ = False h t0 pes = filter (\(_,(t1,_))->t1==Sync t0) pes---- Make sure a substitution does not take a unique out of the set of--- uniques, and the same for nons and pnons.--- Exported-origCheck :: Algebra t p g s e c => Preskel t g s e -> e -> Bool-origCheck k env =- check (kunique k) && check (knon k) && check (kpnon k)- where- check orig =- all (pred orig) orig- pred set item =- elem (instantiate env item) set nodeMap :: [Sid] -> Node -> Node nodeMap mapping (s, i) =
src/CPSA/Lib/Utilities.hs view
@@ -9,7 +9,6 @@ module CPSA.Lib.Utilities where -import Control.Applicative import qualified Data.Set as S import qualified Data.List as L import Data.List (foldl')
− src/CPSA/Lib/Vector.hs
@@ -1,55 +0,0 @@--- Arrays using zero-based indexing---- 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 CPSA.Lib.Vector where--import Array--newtype Vector a = Vector (Array Int a)---- Vector construction-vector :: [a] -> Vector a-vector vs = Vector (listArray (0, length vs - 1) vs)---- The length of a vector-vlen :: Vector a -> Int-vlen (Vector a) = rangeSize (bounds a)---- The value stored at a given index-vref :: Vector a -> Int -> a-vref (Vector a) i = a ! i---- Update the vector with a new value at a given index-vmod :: Vector a -> Int -> a -> Vector a-vmod (Vector a) i v = Vector (a // [(i, v)])---- The list of values in the vector.-vlist :: Vector a -> [a]-vlist (Vector a) = elems a--instance Eq a => Eq (Vector a) where- Vector x == Vector y = x == y--instance Ord a => Ord (Vector a) where- compare (Vector x) (Vector y) = compare x y--instance Show a => Show (Vector a) where- showsPrec p (Vector a)- = showParen (p > vecPrec)- (showString "vector " .- showsPrec (vecPrec + 1) (elems a))--instance Read a => Read (Vector a) where- readsPrec p = readParen (p > vecPrec)- (\r -> [ (vector vs, t) |- ("vector", s) <- lex r,- (vs, t) <- readsPrec (vecPrec + 1) s])---- Precedence of the 'vector' function is that of application itself-vecPrec :: Int-vecPrec = 10
+ src/CPSA/Match/Main.hs view
@@ -0,0 +1,66 @@+-- Runs match, unify, or absent code++-- This is a test routine for the DH algebra. It runs test of the+-- matcher, the unifier, and the absence substitution code. The input+-- syntax is:+--+-- (MODE (VARS) TESTS)+--+-- where mode is one of match, unify, or absent, VARS are some+-- variable declarations, and TESTS is a list of tests. A test is a+-- list of pairs of terms. For mode match, the output is a list of+-- substitutions that cause the left hand sides of a test to match a+-- right hand side. Unify is like match except unification is+-- performed. Absent invokes the absenceSubst primitive in the+-- algebra interface.++-- Copyright (c) 2017 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 System.IO+import CPSA.Lib.SExpr (PosHandle, SExpr, Pos)+import CPSA.Lib.Entry+import CPSA.Match.Match++main :: IO ()+main =+ do+ (p, (output, margin)) <- start filterOptions filterInterp+ h <- outputHandle output+ writeComment h margin cpsaVersion+ writeComment h margin "Match"+ go (step h margin) p+ hClose h++go :: (SExpr Pos -> IO ()) -> PosHandle -> IO ()+go f p =+ loop+ where+ loop =+ do+ x <- gentlyReadSExpr p+ case x of+ Nothing ->+ return ()+ Just sexpr ->+ do+ f sexpr+ loop++step :: Handle -> Int -> SExpr Pos -> IO ()+step output margin sexpr =+ do+ writeLnSExpr output margin sexpr+ x <- tryIO (testMatcher sexpr)+ case x of+ Right sexpr ->+ do+ writeLnSExpr output margin sexpr+ return ()+ Left err ->+ abort (show err)
+ src/CPSA/Match/Match.hs view
@@ -0,0 +1,67 @@+-- Copyright (c) 2017 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 CPSA.Match.Match (testMatcher) where++import CPSA.Lib.SExpr+import CPSA.Lib.Algebra+import qualified CPSA.DiffieHellman.Algebra++testMatcher :: SExpr Pos -> IO (SExpr ())+testMatcher x = go CPSA.DiffieHellman.Algebra.origin x++go :: Algebra t p g s e c => g -> SExpr Pos -> IO (SExpr ())+go g (L _ (S _ "match" : L _ vs : xs)) =+ do+ (g, vs) <- loadVars g vs+ a <- mapM (loadMatch vs) xs+ return $ L () $ map (showEnv vs) (matchTerms a (g, emptyEnv))+go g (L _ (S _ "unify" : L _ vs : xs)) =+ do+ (g, vs) <- loadVars g vs+ a <- mapM (loadMatch vs) xs+ return $ L () $ map (showSubst vs) (unifyTerms a (g, emptySubst))+go g (L _ (S _ "absent" : L _ vs : xs)) =+ do+ (g, vs) <- loadVars g vs+ a <- mapM (loadMatch vs) xs+ return $ L () $ map (showSubst vs) (absenceSubst g a)+go _ x = fail (shows (annotation x) "Malformed input!")++loadMatch :: (Algebra t p g s e c, Monad m) =>+ [t] -> SExpr Pos -> m (t, t)+loadMatch vs (L _ [r, n]) =+ do+ r <- loadTerm vs False r+ n <- loadTerm vs False n+ return (r, n)+loadMatch _ x = fail (shows (annotation x) "Malformed match")++matchTerms :: Algebra t p g s e c => [(t, t)] -> (g, e) -> [(g, e)]+matchTerms [] e = [e]+matchTerms ((t0, t1) : ts) e =+ do+ e <- match t0 t1 e+ matchTerms ts e++showEnv :: Algebra t p g s e c => [t] -> (g, e) -> SExpr ()+showEnv vs (_, e) =+ L () $ displaySubst c (substitution e)+ where+ c = addToContext emptyContext vs++unifyTerms :: Algebra t p g s e c => [(t, t)] -> (g, s) -> [(g, s)]+unifyTerms [] e = [e]+unifyTerms ((t0, t1) : ts) e =+ do+ e <- unify t0 t1 e+ unifyTerms ts e++showSubst :: Algebra t p g s e c => [t] -> (g, s) -> SExpr ()+showSubst vs (_, s) =+ L () $ displaySubst c s+ where+ c = addToContext emptyContext vs
src/CPSA/Pretty/Main.hs view
@@ -11,29 +11,32 @@ import Numeric import System.IO import System.Console.GetOpt-import CPSA.Lib.CPSA+import CPSA.Lib.SExpr+import CPSA.Lib.Printer (pp)+import CPSA.Lib.Pretty import CPSA.Lib.Entry -- Runtime parameters data Params = Params { file :: Maybe FilePath, -- Nothing specifies standard output- prefix :: Bool, -- Use prefix notation? json :: Bool, -- Use JSON notation? margin :: Int } -- Output line length deriving Show -indent :: Int-indent = optIndent defaultOptions+defaultIndent :: Int+defaultIndent = optIndent defaultOptions +defaultMargin :: Int+defaultMargin = optMargin defaultOptions+ main :: IO () main = do (p, params) <- start options interp h <- outputHandle $ file params- let printer = if json params then pjson- else if prefix params then pp else printItem- go (writeCpsaLn (printer (margin params) indent) h) p+ let printer = if json params then pjson else pp+ go (writeCpsaLn (printer (margin params) defaultIndent) h) p hClose h writeCpsaLn :: (SExpr a -> String) -> Handle -> SExpr a -> IO ()@@ -67,15 +70,11 @@ | Output String -- Output file name deriving Show -defaultMargin :: Int-defaultMargin = optMargin defaultOptions- 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 ['i'] ["infix"] (NoArg Infix) "output uses infix notation", Option ['j'] ["json"] (NoArg Json) "output uses JSON notation", Option ['h'] ["help"] (NoArg Help) "show help message", Option ['v'] ["version"] (NoArg Info) "show version number" ]@@ -84,7 +83,6 @@ interp :: [Flag] -> IO Params interp flags = loop flags (Params { file = Nothing, -- By default, no output file- prefix = True, json = False, margin = defaultMargin }) where@@ -92,20 +90,8 @@ loop (Output name : flags) params | file params == Nothing = loop flags $ params { file = Just name }- loop (Infix : flags) params =- if json params then- do- msg <- usage options ["Bad option combination\n"]- abort msg- else- loop flags $ params { prefix = False } loop (Json : flags) params =- if not (prefix params) then- do- msg <- usage options ["Bad option combination\n"]- abort msg- else- loop flags $ params { json = True }+ loop flags $ params { json = True } loop (Margin value : flags) params = case readDec value of [(margin, "")] ->
src/CPSA/SAS/Main.hs view
@@ -9,7 +9,8 @@ module Main (main) where import System.IO-import CPSA.Lib.CPSA+import CPSA.Lib.SExpr+import CPSA.Lib.Algebra import CPSA.Lib.Entry import CPSA.SAS.SAS import qualified CPSA.Basic.Algebra@@ -88,7 +89,7 @@ step output _ _ margin state (Just sexpr@(L _ (S _ "comment" : _))) = do- writeLnSEexpr output margin sexpr+ writeLnSExpr output margin sexpr return state step output name origin margin state sexpr = do@@ -98,7 +99,7 @@ after output margin acc sexpr Right (acc, Just x) -> do- writeLnSEexpr output margin x+ writeLnSExpr output margin x after output margin acc sexpr Left err -> abort (show err)@@ -107,7 +108,7 @@ Maybe (SExpr Pos) -> IO (State t g c) after output margin state (Just sexpr@(L _ (S _ "defprotocol" : _))) = do- writeLnSEexpr output margin sexpr+ writeLnSExpr output margin sexpr return state after _ _ state _ = return state
src/CPSA/SAS/SAS.hs view
@@ -6,17 +6,23 @@ -- modify it under the terms of the BSD License as published by the -- University of California. -module CPSA.SAS.SAS (Prot, Preskel, State, sas) where+module CPSA.SAS.SAS (State, sas) where import Control.Monad (foldM) import qualified Data.List as L import qualified Data.Map as M-import CPSA.Lib.CPSA+import CPSA.Lib.Utilities+import CPSA.Lib.SExpr+import CPSA.Lib.Printer+import CPSA.Lib.Algebra {-- import System.IO.Unsafe z :: Show a => a -> b -> b z x y = unsafePerformIO (print x >> return y)++zz :: Show a => a -> a+zz x = z x x --} -- The root used for generated node names.@@ -211,7 +217,7 @@ nlookup n vm = case M.lookup n vm of Just t -> t- Nothing -> error ("SAS.lookup: cannot find " ++ show n)+ Nothing -> error ("SAS.nlookup: cannot find " ++ show n) -- Find a protocol @@ -626,7 +632,7 @@ form (pov, shapes) = let (c, vars, conj) = skel emptyContext pov in let disj = map (shape c conj) shapes in- L () [S () "defsas", S () (pname $ protocol pov), -- Name of protocol+ L () [S () "defgoal", S () (pname $ protocol pov), -- Name of protocol quantify "forall" vars (imply (conjoin conj) (disjoin disj))] -- Convert one skeleton into a declaration and a conjunction. The@@ -642,7 +648,7 @@ (kctx, displayVars kctx (kvars k) ++ listMap node nodes, map (nodeForm kctx k) (M.assocs (varmap k)) ++- map (strandForm kctx) (zip (strands k) $ insts k) +++ concatMap (strandForm kctx) (zip (strands k) $ insts k) ++ map (precForm kctx) (orderings k) ++ map (sprecForm kctx) (succs k) ++ map (unary "non" kctx) (nons k) ++@@ -676,9 +682,9 @@ quote x = x -- Creates the atomic formulas used to describe an instance of a role-strandForm :: Algebra t p g s e c => c -> (t, Instance t c) -> SExpr ()+strandForm :: Algebra t p g s e c => c -> (t, Instance t c) -> [SExpr ()] strandForm c (s, inst) =- conjoin (map f (env inst))+ map f (env inst) where f (x, t) = L () [S () "p",
src/CPSA/Shapes/Main.hs view
@@ -12,7 +12,7 @@ module Main (main) where import System.IO-import CPSA.Lib.CPSA (PosHandle, SExpr, Pos)+import CPSA.Lib.SExpr (PosHandle, SExpr, Pos) import CPSA.Lib.Entry import CPSA.Shapes.Shapes @@ -52,7 +52,7 @@ return acc Just sexpr -> do- writeLnSEexpr output margin sexpr+ writeLnSExpr output margin sexpr return acc Left err -> abort (show err)
src/CPSA/Shapes/Shapes.hs view
@@ -10,7 +10,7 @@ import qualified Data.IntMap as I import Data.IntMap (IntMap)-import CPSA.Lib.CPSA+import CPSA.Lib.SExpr -- An int map is used to bind a skeleton to its parent.
tst/axiom2.scm view
@@ -1,12 +1,11 @@ ;;; Test file to determine if we have implemented ;;; "axiom 2" of the Stateful Protocols paper correctly. -;;; This axiom states that when E1, E2, and E3 are all +;;; This axiom states that when E1, E2, and E3 are all ;;; state events, and E1 produces a state that E3 consumes, ;;; and E2 observes the state E1 produces, then E2 occurs before E3. (herald "Axiom 2 Protocol" (bound 20))- ;;; This version places E1 and E3 in distinct strands (defprotocol ax2 basic
tst/axiom2.tst view
@@ -1,6 +1,6 @@ (herald "Axiom 2 Protocol" (bound 20)) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from axiom2.scm") (comment "Strand count bounded at 20")
tst/blanchet.tst view
@@ -1,7 +1,7 @@ (herald "Blanchet's Simple Example Protocol" (comment "There is a flaw in this protocol by design")) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from blanchet.scm") (defprotocol blanchet basic@@ -250,6 +250,7 @@ (precedes ((0 1) (1 0))) (non-orig (invk a) (invk b)) (uniq-orig d)+ (comment "From the responders's perspective, is the secret leaked?") (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s))) ((recv d) (send d))) (label 12)@@ -525,6 +526,7 @@ (precedes ((0 1) (1 0))) (non-orig (invk a) (invk b)) (uniq-orig d)+ (comment "From the responders's perspective, is the secret leaked?") (traces ((recv (enc (enc s b (invk a)) b)) (send (enc d s))) ((recv d) (send d))) (label 26)
+ tst/bltk_example.lisp view
@@ -0,0 +1,23 @@+(herald "bltk example" (algebra diffie-hellman)+ ;(noisochk)+(limit 100))++(defprotocol bltks diffie-hellman+ (defrole init+ (vars (I R name) (n m data))+ (trace+ (send (enc I R n (bltk I R)))+ (recv (enc R I m (bltk I R))))+ (uniq-orig n))+ (defrole resp+ (vars (I R name) (n m data))+ (trace+ (recv (enc I R n (bltk I R)))+ (send (enc R I m (bltk I R))))+ (uniq-orig m))+ )++(defskeleton bltks+ (vars (I R name))+ (defstrand init 2 (I I) (R R))+ (non-orig (bltk I R)))
− tst/bltk_example.lsp
@@ -1,24 +0,0 @@-(herald "bltk example" (algebra diffie-hellman) - ;(noisochk)-(limit 100))--(defprotocol bltks diffie-hellman- (defrole init- (vars (I R name) (n m data))- (trace- (send (enc I R n (bltk I R)))- (recv (enc R I m (bltk I R))))- (uniq-orig n))- (defrole resp- (vars (I R name) (n m data))- (trace- (recv (enc I R n (bltk I R)))- (send (enc R I m (bltk I R))))- (uniq-orig m))- )--(defskeleton bltks- (vars (I R name))- (defstrand init 2 (I I) (R R))- (non-orig (bltk I R)))-
tst/bltk_example.tst view
@@ -1,6 +1,6 @@ (herald "bltk example" (algebra diffie-hellman) (limit 100)) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from bltk_example.lsp") (comment "Step count limited to 100")
tst/bltk_test.scm view
@@ -1,11 +1,12 @@ (herald "bltk Test File" (algebra diffie-hellman)+;; (limit 1) (bound 12)) (defprotocol test diffie-hellman (defrole r (vars (a b name) (n text))- (trace + (trace (send (enc n (bltk a b))) (recv (enc n (bltk b a)))) (uniq-orig n)))@@ -34,23 +35,22 @@ (defprotocol test2 diffie-hellman (defrole r (vars (a b name) (n text))- (trace + (trace (send (enc n (ltk a b))) (recv (enc n (ltk b a)))) (uniq-orig n))) ;; The only way to realize this skeleton is to learn that a = b. This-;; is in contrast to the first skeleton above. +;; is in contrast to the first skeleton above. (defskeleton test2 (vars (a b name)) (defstrand r 2 (a a) (b b)) (non-orig (ltk a b))) - ;; This protocol demonstrates that the position of the names a and b ;; in (bltk a b) are not enough to determine which principal is ;; inhabiting the role. The first send of each role commits to the-;; identity of itself and its peer. +;; identity of itself and its peer. (defprotocol test3 diffie-hellman (defrole recvr (vars (a b name) (n text))@@ -71,4 +71,5 @@ (vars (a b name)) (defstrand recvr 2 (a a) (b b)) (non-orig (bltk a b)))+
tst/bltk_test.tst view
@@ -1,6 +1,6 @@ (herald "bltk Test File" (algebra diffie-hellman) (bound 12)) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from bltk_test.scm") (defprotocol test diffie-hellman
tst/dh-ca.scm view
@@ -1,7 +1,7 @@ (herald dhca (algebra diffie-hellman)) (defprotocol dhca diffie-hellman- (defrole init + (defrole init (vars (x expn) (a b ca name) (h base) (n text)) (trace (send (enc "reg" (exp (gen) x) a (privk a)))@@ -11,10 +11,10 @@ (send (enc "check" n (exp h x)))) (uniq-gen x) (non-orig (privk ca)))- (defrole resp + (defrole resp (vars (y expn) (a b ca name) (h base) (n text)) (trace- (send (enc "reg" (exp (gen) y) b (privk b))) + (send (enc "reg" (exp (gen) y) b (privk b))) (recv (enc (exp (gen) y) b (privk ca))) (recv (cat h (enc h a (privk ca)))) (send (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
tst/dh-ca.tst view
@@ -1,2487 +1,3719 @@ (herald dhca (algebra diffie-hellman)) -(comment "CPSA 3.2.2")-(comment "All input read from dh-ca.scm")--(defprotocol dhca diffie-hellman- (defrole init- (vars (x expn) (a b ca name) (h base) (n text))- (trace (send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv (cat h (enc h b (privk ca)) (enc n (exp h x))))- (send (enc "check" n (exp h x))))- (non-orig (privk ca))- (uniq-gen x))- (defrole resp- (vars (y expn) (a b ca name) (h base) (n text))- (trace (send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat h (enc h a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp h y)))) (recv (enc "check" n (exp h y))))- (non-orig (privk ca))- (uniq-gen y))- (defrole ca- (vars (subject ca name) (h base))- (trace (recv (enc "reg" h subject (privk subject)))- (send (enc h subject (privk ca))))- (non-orig (privk subject)))- (comment A diffie-hellman exchange which uses a certificate authority- to certify long-term DH values))--(defskeleton dhca- (vars (n text) (a b ca name) (h base) (x expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h h) (x x))- (non-orig (privk ca))- (uniq-gen x)- (comment Full initiator POV No need to make extra assumptions)- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv (cat h (enc h b (privk ca)) (enc n (exp h x))))- (send (enc "check" n (exp h x)))))- (label 0)- (unrealized (0 1) (0 3))- (origs)- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca name) (h base) (x expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h h) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (non-orig (privk a) (privk ca))- (uniq-gen x)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) x) a (privk ca)) (0 1))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv (cat h (enc h b (privk ca)) (enc n (exp h x))))- (send (enc "check" n (exp h x))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca)))))- (label 1)- (parent 0)- (unrealized (0 3))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (a ca name) (x expn))- (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) x)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (non-orig (privk a) (privk ca))- (uniq-gen x)- (operation encryption-test (displaced 2 1 ca 2) (enc h b (privk ca))- (0 3))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))- (enc n (exp (gen) (mul x x)))))- (send (enc "check" n (exp (gen) (mul x x)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca)))))- (label 2)- (parent 1)- (unrealized (0 3))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca name) (h base) (x expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h h) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand ca 2 (subject b) (ca ca) (h h))- (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)))- (non-orig (privk a) (privk b) (privk ca))- (uniq-gen x)- (operation encryption-test (added-strand ca 2) (enc h b (privk ca))- (0 3))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv (cat h (enc h b (privk ca)) (enc n (exp h x))))- (send (enc "check" n (exp h x))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (enc "reg" h b (privk b))) (send (enc h b (privk ca)))))- (label 3)- (parent 1)- (unrealized (0 3) (2 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (a ca a-0 b ca-0 name) (x y expn))- (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) x)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0)- (h (exp (gen) (mul x x (rec y)))) (y y))- (precedes ((0 0) (1 0)) ((0 0) (2 2)) ((1 1) (0 1)) ((2 3) (0 3)))- (non-orig (privk a) (privk ca) (privk ca-0))- (uniq-gen x y)- (operation encryption-test (added-strand resp 4)- (enc n (exp (gen) (mul x x))) (0 3))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))- (enc n (exp (gen) (mul x x)))))- (send (enc "check" n (exp (gen) (mul x x)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca-0)))- (recv- (cat (exp (gen) (mul x x (rec y)))- (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))- (enc n (exp (gen) (mul x x)))))))- (label 4)- (parent 2)- (unrealized (2 1) (2 2))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a ca name) (x expn))- (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) x)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (deflistener (exp (gen) (mul x x)))- (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))- (non-orig (privk a) (privk ca))- (uniq-gen x)- (operation encryption-test (added-listener (exp (gen) (mul x x)))- (enc n (exp (gen) (mul x x))) (0 3))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))- (enc n (exp (gen) (mul x x)))))- (send (enc "check" n (exp (gen) (mul x x)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x)))))- (label 5)- (parent 2)- (unrealized (2 0))- (comment "empty cohort"))--(defskeleton dhca- (vars (n text) (a ca name) (y expn))- (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))- (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))- (non-orig (privk a) (privk ca))- (uniq-gen y)- (operation encryption-test (displaced 3 0 resp 1)- (enc "reg" (exp (gen) y-0) b (privk b)) (2 0))- (traces- ((send (enc "reg" (exp (gen) y) a (privk a)))- (recv (enc (exp (gen) y) a (privk ca)))- (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))- (enc n (exp (gen) (mul y y)))))- (send (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) a (privk a)))- (send (enc (exp (gen) y) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) a (privk a)))- (send (enc (exp (gen) y) a (privk ca)))))- (label 6)- (parent 3)- (unrealized (0 3))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand resp 1 (b b) (y y))- (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)) ((3 0) (2 0)))- (non-orig (privk a) (privk b) (privk ca))- (uniq-gen x y)- (operation encryption-test (added-strand resp 1)- (enc "reg" (exp (gen) y) b (privk b)) (2 0))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b)))))- (label 7)- (parent 3)- (unrealized (0 3))- (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhca- (vars (n text) (a ca a-0 b ca-0 name) (x y expn))- (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) x)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0)- (h (exp (gen) (mul x x (rec y)))) (y y))- (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y)))- (precedes ((0 0) (1 0)) ((0 0) (2 2)) ((1 1) (0 1)) ((2 0) (3 0))- ((2 3) (0 3)) ((3 1) (2 1)))- (non-orig (privk a) (privk ca) (privk b) (privk ca-0))- (uniq-gen x y)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) y) b (privk ca-0)) (2 1))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))- (enc n (exp (gen) (mul x x)))))- (send (enc "check" n (exp (gen) (mul x x)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca-0)))- (recv- (cat (exp (gen) (mul x x (rec y)))- (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))- (enc n (exp (gen) (mul x x))))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca-0)))))- (label 8)- (parent 4)- (unrealized (2 2))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a ca a-0 b ca-0 name) (y y-0 expn))- (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))- (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0)- (h (exp (gen) (mul y y (rec y-0)))) (y y-0))- (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 2)) ((1 1) (0 1))- ((2 1) (0 3)) ((3 3) (0 3)))- (non-orig (privk a) (privk ca) (privk ca-0))- (uniq-gen y y-0)- (operation encryption-test (added-strand resp 4)- (enc n (exp (gen) (mul y y))) (0 3))- (traces- ((send (enc "reg" (exp (gen) y) a (privk a)))- (recv (enc (exp (gen) y) a (privk ca)))- (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))- (enc n (exp (gen) (mul y y)))))- (send (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) a (privk a)))- (send (enc (exp (gen) y) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) a (privk a)))- (send (enc (exp (gen) y) a (privk ca))))- ((send (enc "reg" (exp (gen) y-0) b (privk b)))- (recv (enc (exp (gen) y-0) b (privk ca-0)))- (recv- (cat (exp (gen) (mul y y (rec y-0)))- (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0))))- (send- (cat (exp (gen) y-0) (enc (exp (gen) y-0) b (privk ca-0))- (enc n (exp (gen) (mul y y)))))))- (label 9)- (parent 6)- (unrealized (3 1) (3 2))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a ca name) (y expn))- (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))- (deflistener (exp (gen) (mul y y)))- (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))- ((2 1) (0 3)) ((3 1) (0 3)))- (non-orig (privk a) (privk ca))- (uniq-gen y)- (operation encryption-test (added-listener (exp (gen) (mul y y)))- (enc n (exp (gen) (mul y y))) (0 3))- (traces- ((send (enc "reg" (exp (gen) y) a (privk a)))- (recv (enc (exp (gen) y) a (privk ca)))- (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))- (enc n (exp (gen) (mul y y)))))- (send (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) a (privk a)))- (send (enc (exp (gen) y) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) a (privk a)))- (send (enc (exp (gen) y) a (privk ca))))- ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y)))))- (label 10)- (parent 6)- (unrealized (3 0))- (comment "empty cohort"))--(defskeleton dhca- (vars (n text) (a ca a-0 b ca-0 name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (h (exp (gen) x))- (y y))- (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))- ((3 0) (2 0)) ((3 3) (0 3)))- (non-orig (privk a) (privk ca) (privk b) (privk ca-0))- (uniq-gen x y)- (operation encryption-test (displaced 3 4 resp 4)- (enc n (exp (gen) (mul x y-0))) (0 3))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca-0)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))- (enc n (exp (gen) (mul x y)))))))- (label 11)- (parent 7)- (unrealized (3 1) (3 2))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y y-0 expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand resp 1 (b b) (y y))- (defstrand resp 4 (n n) (a a-0) (b b-0) (ca ca-0)- (h (exp (gen) (mul x y (rec y-0)))) (y y-0))- (precedes ((0 0) (1 0)) ((0 0) (4 2)) ((1 1) (0 1)) ((2 1) (0 3))- ((3 0) (2 0)) ((3 0) (4 2)) ((4 3) (0 3)))- (non-orig (privk a) (privk b) (privk ca) (privk ca-0))- (uniq-gen x y y-0)- (operation encryption-test (added-strand resp 4)- (enc n (exp (gen) (mul x y))) (0 3))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b))))- ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))- (recv (enc (exp (gen) y-0) b-0 (privk ca-0)))- (recv- (cat (exp (gen) (mul x y (rec y-0)))- (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0))))- (send- (cat (exp (gen) y-0) (enc (exp (gen) y-0) b-0 (privk ca-0))- (enc n (exp (gen) (mul x y)))))))- (label 12)- (parent 7)- (unrealized (4 1) (4 2))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand resp 1 (b b) (y y))- (deflistener (exp (gen) (mul x y)))- (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))- ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 3)))- (non-orig (privk a) (privk b) (privk ca))- (uniq-gen x y)- (operation encryption-test (added-listener (exp (gen) (mul x y)))- (enc n (exp (gen) (mul x y))) (0 3))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b))))- ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))- (label 13)- (parent 7)- (unrealized (4 0))- (comment "empty cohort"))--(defskeleton dhca- (vars (n text) (a ca a-0 b ca-0 name) (x y expn))- (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) x)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0)- (h (exp (gen) (mul x x (rec y)))) (y y))- (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y)))- (defstrand ca 2 (subject a-0) (ca ca-0)- (h (exp (gen) (mul x x (rec y)))))- (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 0) (3 0))- ((2 0) (4 0)) ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (2 2)))- (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))- (uniq-gen x y)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0)) (2 2))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))- (enc n (exp (gen) (mul x x)))))- (send (enc "check" n (exp (gen) (mul x x)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca-0)))- (recv- (cat (exp (gen) (mul x x (rec y)))- (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))- (enc n (exp (gen) (mul x x))))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca-0))))- ((recv (enc "reg" (exp (gen) (mul x x (rec y))) a-0 (privk a-0)))- (send (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0)))))- (label 14)- (parent 8)- (unrealized (4 0))- (comment "empty cohort"))--(defskeleton dhca- (vars (n text) (a ca a-0 b ca-0 name) (y y-0 expn))- (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))- (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0)- (h (exp (gen) (mul y y (rec y-0)))) (y y-0))- (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y-0)))- (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 2)) ((1 1) (0 1))- ((2 1) (0 3)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))- (non-orig (privk a) (privk ca) (privk b) (privk ca-0))- (uniq-gen y y-0)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) y-0) b (privk ca-0)) (3 1))- (traces- ((send (enc "reg" (exp (gen) y) a (privk a)))- (recv (enc (exp (gen) y) a (privk ca)))- (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))- (enc n (exp (gen) (mul y y)))))- (send (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) a (privk a)))- (send (enc (exp (gen) y) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) a (privk a)))- (send (enc (exp (gen) y) a (privk ca))))- ((send (enc "reg" (exp (gen) y-0) b (privk b)))- (recv (enc (exp (gen) y-0) b (privk ca-0)))- (recv- (cat (exp (gen) (mul y y (rec y-0)))- (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0))))- (send- (cat (exp (gen) y-0) (enc (exp (gen) y-0) b (privk ca-0))- (enc n (exp (gen) (mul y y))))))- ((recv (enc "reg" (exp (gen) y-0) b (privk b)))- (send (enc (exp (gen) y-0) b (privk ca-0)))))- (label 15)- (parent 9)- (unrealized (3 2))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a ca a-0 b name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (h (exp (gen) x)) (y y))- (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (3 1))- ((3 0) (2 0)) ((3 3) (0 3)))- (non-orig (privk a) (privk ca) (privk b))- (uniq-gen x y)- (operation encryption-test (displaced 4 2 ca 2)- (enc (exp (gen) y) b (privk ca-0)) (3 1))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))))- (label 16)- (parent 11)- (unrealized (3 2))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (a ca a-0 b ca-0 name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (h (exp (gen) x))- (y y))- (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y)))- (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))- ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))- (non-orig (privk a) (privk ca) (privk b) (privk ca-0))- (uniq-gen x y)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) y) b (privk ca-0)) (3 1))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca-0)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))- (enc n (exp (gen) (mul x y))))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca-0)))))- (label 17)- (parent 11)- (unrealized (3 2))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y y-0 expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand resp 1 (b b) (y y))- (defstrand resp 4 (n n) (a a-0) (b b-0) (ca ca-0)- (h (exp (gen) (mul x y (rec y-0)))) (y y-0))- (defstrand ca 2 (subject b-0) (ca ca-0) (h (exp (gen) y-0)))- (precedes ((0 0) (1 0)) ((0 0) (4 2)) ((1 1) (0 1)) ((2 1) (0 3))- ((3 0) (2 0)) ((3 0) (4 2)) ((4 0) (5 0)) ((4 3) (0 3))- ((5 1) (4 1)))- (non-orig (privk a) (privk b) (privk ca) (privk b-0) (privk ca-0))- (uniq-gen x y y-0)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) y-0) b-0 (privk ca-0)) (4 1))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b))))- ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))- (recv (enc (exp (gen) y-0) b-0 (privk ca-0)))- (recv- (cat (exp (gen) (mul x y (rec y-0)))- (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0))))- (send- (cat (exp (gen) y-0) (enc (exp (gen) y-0) b-0 (privk ca-0))- (enc n (exp (gen) (mul x y))))))- ((recv (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))- (send (enc (exp (gen) y-0) b-0 (privk ca-0)))))- (label 18)- (parent 12)- (unrealized (4 2))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a ca a-0 b ca-0 name) (y y-0 expn))- (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))- (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0)- (h (exp (gen) (mul y y (rec y-0)))) (y y-0))- (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y-0)))- (defstrand ca 2 (subject a-0) (ca ca-0)- (h (exp (gen) (mul y y (rec y-0)))))- (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))- ((2 1) (0 3)) ((3 0) (4 0)) ((3 0) (5 0)) ((3 3) (0 3))- ((4 1) (3 1)) ((5 1) (3 2)))- (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))- (uniq-gen y y-0)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0)) (3 2))- (traces- ((send (enc "reg" (exp (gen) y) a (privk a)))- (recv (enc (exp (gen) y) a (privk ca)))- (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))- (enc n (exp (gen) (mul y y)))))- (send (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) a (privk a)))- (send (enc (exp (gen) y) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) a (privk a)))- (send (enc (exp (gen) y) a (privk ca))))- ((send (enc "reg" (exp (gen) y-0) b (privk b)))- (recv (enc (exp (gen) y-0) b (privk ca-0)))- (recv- (cat (exp (gen) (mul y y (rec y-0)))- (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0))))- (send- (cat (exp (gen) y-0) (enc (exp (gen) y-0) b (privk ca-0))- (enc n (exp (gen) (mul y y))))))- ((recv (enc "reg" (exp (gen) y-0) b (privk b)))- (send (enc (exp (gen) y-0) b (privk ca-0))))- ((recv (enc "reg" (exp (gen) (mul y y (rec y-0))) a-0 (privk a-0)))- (send (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0)))))- (label 19)- (parent 15)- (unrealized (5 0))- (comment "empty cohort"))--(defskeleton dhca- (vars (n text) (a ca b name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand resp 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (3 1))- ((3 0) (2 0)) ((3 3) (0 3)))- (non-orig (privk a) (privk ca) (privk b))- (uniq-gen x y)- (operation encryption-test (displaced 4 1 ca 2)- (enc (exp (gen) x) a-0 (privk ca)) (3 2))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))))- (label 20)- (parent 16)- (unrealized)- (shape)- (maps ((0) ((x x) (a a) (b b) (ca ca) (h (exp (gen) y)) (n n))))- (origs))--(defskeleton dhca- (vars (n text) (a ca a-0 b name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject a-0) (ca ca) (h (exp (gen) x)))- (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))- ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))- (non-orig (privk a) (privk ca) (privk a-0) (privk b))- (uniq-gen x y)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) x) a-0 (privk ca)) (3 2))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y))))))- ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))- (send (enc (exp (gen) x) a-0 (privk ca)))))- (label 21)- (parent 16)- (unrealized (4 0))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a ca b name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand resp 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (0 3))- ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))- (non-orig (privk a) (privk ca) (privk b))- (uniq-gen x y)- (operation encryption-test (displaced 5 1 ca 2)- (enc (exp (gen) x) a-0 (privk ca-0)) (3 2))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y))))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca)))))- (label 22)- (parent 17)- (seen 20)- (unrealized)- (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhca- (vars (n text) (a ca a-0 b ca-0 name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (h (exp (gen) x))- (y y))- (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y)))- (defstrand ca 2 (subject a-0) (ca ca-0) (h (exp (gen) x)))- (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))- ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))- ((5 1) (3 2)))- (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))- (uniq-gen x y)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) x) a-0 (privk ca-0)) (3 2))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca-0)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))- (enc n (exp (gen) (mul x y))))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca-0))))- ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))- (send (enc (exp (gen) x) a-0 (privk ca-0)))))- (label 23)- (parent 17)- (unrealized (5 0))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y y-0 expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand resp 1 (b b) (y y))- (defstrand resp 4 (n n) (a a-0) (b b-0) (ca ca-0)- (h (exp (gen) (mul x y (rec y-0)))) (y y-0))- (defstrand ca 2 (subject b-0) (ca ca-0) (h (exp (gen) y-0)))- (defstrand ca 2 (subject a-0) (ca ca-0)- (h (exp (gen) (mul x y (rec y-0)))))- (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 3))- ((3 0) (2 0)) ((3 0) (6 0)) ((4 0) (5 0)) ((4 0) (6 0))- ((4 3) (0 3)) ((5 1) (4 1)) ((6 1) (4 2)))- (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk b-0)- (privk ca-0))- (uniq-gen x y y-0)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0)) (4 2))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b))))- ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))- (recv (enc (exp (gen) y-0) b-0 (privk ca-0)))- (recv- (cat (exp (gen) (mul x y (rec y-0)))- (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0))))- (send- (cat (exp (gen) y-0) (enc (exp (gen) y-0) b-0 (privk ca-0))- (enc n (exp (gen) (mul x y))))))- ((recv (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))- (send (enc (exp (gen) y-0) b-0 (privk ca-0))))- ((recv (enc "reg" (exp (gen) (mul x y (rec y-0))) a-0 (privk a-0)))- (send (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0)))))- (label 24)- (parent 18)- (unrealized (6 0))- (comment "empty cohort"))--(defskeleton dhca- (vars (n text) (a ca b name) (y y-0 expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x y-0))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand resp 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))- (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))- ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))- (non-orig (privk a) (privk ca) (privk b))- (uniq-gen y y-0)- (operation encryption-test (displaced 5 0 resp 1)- (enc "reg" (exp (gen) y-0) a-0 (privk a-0)) (4 0))- (traces- ((send (enc "reg" (exp (gen) y-0) a (privk a)))- (recv (enc (exp (gen) y-0) a (privk ca)))- (send (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y-0)))))- (send (enc "check" n (exp (gen) (mul y y-0)))))- ((recv (enc "reg" (exp (gen) y-0) a (privk a)))- (send (enc (exp (gen) y-0) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y-0))))))- ((recv (enc "reg" (exp (gen) y-0) a (privk a)))- (send (enc (exp (gen) y-0) a (privk ca)))))- (label 25)- (parent 21)- (unrealized)- (shape)- (maps ((0) ((x y-0) (a a) (b b) (ca ca) (h (exp (gen) y)) (n n))))- (origs))--(defskeleton dhca- (vars (n text) (a ca b ca-0 name) (y y-0 expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x y-0))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand resp 4 (n n) (a a) (b b) (ca ca-0) (h (exp (gen) y-0))- (y y))- (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) y-0)))- (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))- ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))- ((5 1) (3 2)))- (non-orig (privk a) (privk ca) (privk b) (privk ca-0))- (uniq-gen y y-0)- (operation encryption-test (displaced 6 0 resp 1)- (enc "reg" (exp (gen) y-0) a-0 (privk a-0)) (5 0))- (traces- ((send (enc "reg" (exp (gen) y-0) a (privk a)))- (recv (enc (exp (gen) y-0) a (privk ca)))- (send (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y-0)))))- (send (enc "check" n (exp (gen) (mul y y-0)))))- ((recv (enc "reg" (exp (gen) y-0) a (privk a)))- (send (enc (exp (gen) y-0) a (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca-0)))- (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca-0))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))- (enc n (exp (gen) (mul y y-0))))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca-0))))- ((recv (enc "reg" (exp (gen) y-0) a (privk a)))- (send (enc (exp (gen) y-0) a (privk ca-0)))))- (label 26)- (parent 23)- (unrealized)- (shape)- (maps ((0) ((x y-0) (a a) (b b) (ca ca) (h (exp (gen) y)) (n n))))- (origs))--(comment "Nothing left to do")--(defprotocol dhca diffie-hellman- (defrole init- (vars (x expn) (a b ca name) (h base) (n text))- (trace (send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv (cat h (enc h b (privk ca)) (enc n (exp h x))))- (send (enc "check" n (exp h x))))- (non-orig (privk ca))- (uniq-gen x))- (defrole resp- (vars (y expn) (a b ca name) (h base) (n text))- (trace (send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat h (enc h a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp h y)))) (recv (enc "check" n (exp h y))))- (non-orig (privk ca))- (uniq-gen y))- (defrole ca- (vars (subject ca name) (h base))- (trace (recv (enc "reg" h subject (privk subject)))- (send (enc h subject (privk ca))))- (non-orig (privk subject)))- (comment A diffie-hellman exchange which uses a certificate authority- to certify long-term DH values))--(defskeleton dhca- (vars (n text) (a b ca name) (h base) (y expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h h) (y y))- (non-orig (privk ca))- (uniq-gen y)- (uniq-orig n)- (comment Full responder point of view with freshly chosen n)- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat h (enc h a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp h y)))) (recv (enc "check" n (exp h y)))))- (label 27)- (unrealized (0 1) (0 2) (0 4))- (origs (n (0 3)))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca name) (h base) (y expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h h) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (non-orig (privk b) (privk ca))- (uniq-gen y)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) y) b (privk ca)) (0 1))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat h (enc h a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp h y)))) (recv (enc "check" n (exp h y))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca)))))- (label 28)- (parent 27)- (unrealized (0 2) (0 4))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (b ca name) (y expn))- (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (non-orig (privk b) (privk ca))- (uniq-gen y)- (uniq-orig n)- (operation encryption-test (displaced 2 1 ca 2) (enc h a (privk ca))- (0 2))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y)))))- (recv (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca)))))- (label 29)- (parent 28)- (unrealized (0 4))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca name) (h base) (y expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h h) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h h))- (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)))- (non-orig (privk a) (privk b) (privk ca))- (uniq-gen y)- (uniq-orig n)- (operation encryption-test (added-strand ca 2) (enc h a (privk ca))- (0 2))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat h (enc h a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp h y)))) (recv (enc "check" n (exp h y))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" h a (privk a))) (send (enc h a (privk ca)))))- (label 30)- (parent 28)- (unrealized (0 4) (2 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (b ca a b-0 ca-0 name) (y x expn))- (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0)- (h (exp (gen) (mul y y (rec x)))) (x x))- (precedes ((0 0) (1 0)) ((0 3) (2 3)) ((1 1) (0 1)) ((2 4) (0 4)))- (non-orig (privk b) (privk ca) (privk ca-0))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (added-strand init 5)- (enc "check" n (exp (gen) (mul y y))) (0 4))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y)))))- (recv (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca-0)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))- (recv- (cat (exp (gen) (mul y y (rec x)))- (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))- (enc n (exp (gen) (mul y y)))))- (send (enc "check" n (exp (gen) (mul y y))))))- (label 31)- (parent 29)- (unrealized (2 1) (2 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (b ca name) (y expn))- (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (deflistener (exp (gen) (mul y y)))- (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 4)))- (non-orig (privk b) (privk ca))- (uniq-gen y)- (uniq-orig n)- (operation encryption-test (added-listener (exp (gen) (mul y y)))- (enc "check" n (exp (gen) (mul y y))) (0 4))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y)))))- (recv (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y)))))- (label 32)- (parent 29)- (unrealized (2 0))- (comment "empty cohort"))--(defskeleton dhca- (vars (n text) (b ca name) (y expn))- (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))- (non-orig (privk b) (privk ca))- (uniq-gen y)- (uniq-orig n)- (operation encryption-test (displaced 3 0 resp 1)- (enc "reg" (exp (gen) y-0) a (privk a)) (2 0))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y)))))- (recv (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca)))))- (label 33)- (parent 30)- (unrealized (0 4))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca name) (y y-0 expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))- (defstrand resp 1 (b a) (y y-0))- (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 0) (2 0)))- (non-orig (privk a) (privk b) (privk ca))- (uniq-gen y y-0)- (uniq-orig n)- (operation encryption-test (added-strand resp 1)- (enc "reg" (exp (gen) y-0) a (privk a)) (2 0))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y-0)))))- (recv (enc "check" n (exp (gen) (mul y y-0)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) y-0) a (privk a)))- (send (enc (exp (gen) y-0) a (privk ca))))- ((send (enc "reg" (exp (gen) y-0) a (privk a)))))- (label 34)- (parent 30)- (unrealized (0 4))- (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhca- (vars (n text) (b ca a b-0 ca-0 name) (y x expn))- (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0)- (h (exp (gen) (mul y y (rec x)))) (x x))- (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) x)))- (precedes ((0 0) (1 0)) ((0 3) (2 3)) ((1 1) (0 1)) ((2 0) (3 0))- ((2 4) (0 4)) ((3 1) (2 1)))- (non-orig (privk b) (privk ca) (privk a) (privk ca-0))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) x) a (privk ca-0)) (2 1))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y)))))- (recv (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca-0)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))- (recv- (cat (exp (gen) (mul y y (rec x)))- (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))- (enc n (exp (gen) (mul y y)))))- (send (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca-0)))))- (label 35)- (parent 31)- (unrealized (2 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (b ca a b-0 ca-0 name) (y x expn))- (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0)- (h (exp (gen) (mul y y (rec x)))) (x x))- (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 3) (3 3)) ((1 1) (0 1))- ((2 1) (0 2)) ((3 4) (0 4)))- (non-orig (privk b) (privk ca) (privk ca-0))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (added-strand init 5)- (enc "check" n (exp (gen) (mul y y))) (0 4))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y)))))- (recv (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca-0)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))- (recv- (cat (exp (gen) (mul y y (rec x)))- (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))- (enc n (exp (gen) (mul y y)))))- (send (enc "check" n (exp (gen) (mul y y))))))- (label 36)- (parent 33)- (unrealized (3 1) (3 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (b ca name) (y expn))- (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (deflistener (exp (gen) (mul y y)))- (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))- ((2 1) (0 2)) ((3 1) (0 4)))- (non-orig (privk b) (privk ca))- (uniq-gen y)- (uniq-orig n)- (operation encryption-test (added-listener (exp (gen) (mul y y)))- (enc "check" n (exp (gen) (mul y y))) (0 4))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y)))))- (recv (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y)))))- (label 37)- (parent 33)- (unrealized (3 0))- (comment "empty cohort"))--(defskeleton dhca- (vars (n text) (b ca a b-0 ca-0 name) (y x expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (h (exp (gen) y))- (x x))- (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))- ((3 0) (2 0)) ((3 4) (0 4)))- (non-orig (privk b) (privk ca) (privk a) (privk ca-0))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (displaced 3 4 init 5)- (enc "check" n (exp (gen) (mul y y-0))) (0 4))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (recv (enc "check" n (exp (gen) (mul y x)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca-0)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca-0))- (enc n (exp (gen) (mul y x)))))- (send (enc "check" n (exp (gen) (mul y x))))))- (label 38)- (parent 34)- (unrealized (3 1) (3 3))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca a-0 b-0 ca-0 name) (y y-0 x expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))- (defstrand resp 1 (b a) (y y-0))- (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0)- (h (exp (gen) (mul y y-0 (rec x)))) (x x))- (precedes ((0 0) (1 0)) ((0 3) (4 3)) ((1 1) (0 1)) ((2 1) (0 2))- ((3 0) (2 0)) ((4 4) (0 4)))- (non-orig (privk a) (privk b) (privk ca) (privk ca-0))- (uniq-gen y y-0 x)- (uniq-orig n)- (operation encryption-test (added-strand init 5)- (enc "check" n (exp (gen) (mul y y-0))) (0 4))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y-0)))))- (recv (enc "check" n (exp (gen) (mul y y-0)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) y-0) a (privk a)))- (send (enc (exp (gen) y-0) a (privk ca))))- ((send (enc "reg" (exp (gen) y-0) a (privk a))))- ((send (enc "reg" (exp (gen) x) a-0 (privk a-0)))- (recv (enc (exp (gen) x) a-0 (privk ca-0)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))- (recv- (cat (exp (gen) (mul y y-0 (rec x)))- (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0))- (enc n (exp (gen) (mul y y-0)))))- (send (enc "check" n (exp (gen) (mul y y-0))))))- (label 39)- (parent 34)- (unrealized (4 1) (4 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca name) (y y-0 expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))- (defstrand resp 1 (b a) (y y-0))- (deflistener (exp (gen) (mul y y-0)))- (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 2))- ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 4)))- (non-orig (privk a) (privk b) (privk ca))- (uniq-gen y y-0)- (uniq-orig n)- (operation encryption-test (added-listener (exp (gen) (mul y y-0)))- (enc "check" n (exp (gen) (mul y y-0))) (0 4))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y-0)))))- (recv (enc "check" n (exp (gen) (mul y y-0)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) y-0) a (privk a)))- (send (enc (exp (gen) y-0) a (privk ca))))- ((send (enc "reg" (exp (gen) y-0) a (privk a))))- ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0)))))- (label 40)- (parent 34)- (unrealized (4 0))- (comment "empty cohort"))--(defskeleton dhca- (vars (n text) (b ca a b-0 ca-0 name) (y x expn))- (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0)- (h (exp (gen) (mul y y (rec x)))) (x x))- (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) x)))- (defstrand ca 2 (subject b-0) (ca ca-0)- (h (exp (gen) (mul y y (rec x)))))- (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (2 3)) ((1 1) (0 1))- ((2 0) (3 0)) ((2 0) (4 0)) ((2 4) (0 4)) ((3 1) (2 1))- ((4 1) (2 3)))- (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0)) (2 3))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y)))))- (recv (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca-0)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))- (recv- (cat (exp (gen) (mul y y (rec x)))- (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))- (enc n (exp (gen) (mul y y)))))- (send (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca-0))))- ((recv (enc "reg" (exp (gen) (mul y y (rec x))) b-0 (privk b-0)))- (send (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0)))))- (label 41)- (parent 35)- (unrealized (4 0))- (comment "empty cohort"))--(defskeleton dhca- (vars (n text) (b ca a b-0 ca-0 name) (y x expn))- (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0)- (h (exp (gen) (mul y y (rec x)))) (x x))- (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) x)))- (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 3) (3 3)) ((1 1) (0 1))- ((2 1) (0 2)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))- (non-orig (privk b) (privk ca) (privk a) (privk ca-0))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) x) a (privk ca-0)) (3 1))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y)))))- (recv (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca-0)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))- (recv- (cat (exp (gen) (mul y y (rec x)))- (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))- (enc n (exp (gen) (mul y y)))))- (send (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca-0)))))- (label 42)- (parent 36)- (unrealized (3 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (b ca a b-0 name) (y x expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand init 5 (n n) (a a) (b b-0) (ca ca) (h (exp (gen) y)) (x x))- (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))- ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))- (non-orig (privk b) (privk ca) (privk a))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (displaced 4 2 ca 2)- (enc (exp (gen) x) a (privk ca-0)) (3 1))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (recv (enc "check" n (exp (gen) (mul y x)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca))- (enc n (exp (gen) (mul y x)))))- (send (enc "check" n (exp (gen) (mul y x))))))- (label 43)- (parent 38)- (unrealized (3 3))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (b ca a b-0 ca-0 name) (y x expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (h (exp (gen) y))- (x x))- (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) x)))- (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))- ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))- (non-orig (privk b) (privk ca) (privk a) (privk ca-0))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) x) a (privk ca-0)) (3 1))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (recv (enc "check" n (exp (gen) (mul y x)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca-0)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca-0))- (enc n (exp (gen) (mul y x)))))- (send (enc "check" n (exp (gen) (mul y x)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca-0)))))- (label 44)- (parent 38)- (unrealized (3 3))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca a-0 b-0 ca-0 name) (y y-0 x expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))- (defstrand resp 1 (b a) (y y-0))- (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0)- (h (exp (gen) (mul y y-0 (rec x)))) (x x))- (defstrand ca 2 (subject a-0) (ca ca-0) (h (exp (gen) x)))- (precedes ((0 0) (1 0)) ((0 3) (4 3)) ((1 1) (0 1)) ((2 1) (0 2))- ((3 0) (2 0)) ((4 0) (5 0)) ((4 4) (0 4)) ((5 1) (4 1)))- (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk ca-0))- (uniq-gen y y-0 x)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) x) a-0 (privk ca-0)) (4 1))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y-0)))))- (recv (enc "check" n (exp (gen) (mul y y-0)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) y-0) a (privk a)))- (send (enc (exp (gen) y-0) a (privk ca))))- ((send (enc "reg" (exp (gen) y-0) a (privk a))))- ((send (enc "reg" (exp (gen) x) a-0 (privk a-0)))- (recv (enc (exp (gen) x) a-0 (privk ca-0)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))- (recv- (cat (exp (gen) (mul y y-0 (rec x)))- (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0))- (enc n (exp (gen) (mul y y-0)))))- (send (enc "check" n (exp (gen) (mul y y-0)))))- ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))- (send (enc (exp (gen) x) a-0 (privk ca-0)))))- (label 45)- (parent 39)- (unrealized (4 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (b ca a b-0 ca-0 name) (y x expn))- (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0)- (h (exp (gen) (mul y y (rec x)))) (x x))- (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) x)))- (defstrand ca 2 (subject b-0) (ca ca-0)- (h (exp (gen) (mul y y (rec x)))))- (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((0 3) (3 3))- ((1 1) (0 1)) ((2 1) (0 2)) ((3 0) (4 0)) ((3 0) (5 0))- ((3 4) (0 4)) ((4 1) (3 1)) ((5 1) (3 3)))- (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0)) (3 3))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y)))))- (recv (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca-0)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))- (recv- (cat (exp (gen) (mul y y (rec x)))- (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))- (enc n (exp (gen) (mul y y)))))- (send (enc "check" n (exp (gen) (mul y y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca-0))))- ((recv (enc "reg" (exp (gen) (mul y y (rec x))) b-0 (privk b-0)))- (send (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0)))))- (label 46)- (parent 42)- (unrealized (5 0))- (comment "empty cohort"))--(defskeleton dhca- (vars (n text) (b ca a name) (y x expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))- ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))- (non-orig (privk b) (privk ca) (privk a))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (displaced 4 1 ca 2)- (enc (exp (gen) y) b-0 (privk ca)) (3 3))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (recv (enc "check" n (exp (gen) (mul y x)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (send (enc "check" n (exp (gen) (mul y x))))))- (label 47)- (parent 43)- (unrealized)- (shape)- (maps ((0) ((n n) (y y) (a a) (b b) (ca ca) (h (exp (gen) x)))))- (origs (n (0 3))))--(defskeleton dhca- (vars (n text) (b ca a b-0 name) (y x expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand init 5 (n n) (a a) (b b-0) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject b-0) (ca ca) (h (exp (gen) y)))- (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))- ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))- ((4 1) (3 3)))- (non-orig (privk b) (privk ca) (privk a) (privk b-0))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) y) b-0 (privk ca)) (3 3))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (recv (enc "check" n (exp (gen) (mul y x)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca))- (enc n (exp (gen) (mul y x)))))- (send (enc "check" n (exp (gen) (mul y x)))))- ((recv (enc "reg" (exp (gen) y) b-0 (privk b-0)))- (send (enc (exp (gen) y) b-0 (privk ca)))))- (label 48)- (parent 43)- (unrealized (4 0))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (b ca a name) (y x expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))- ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))- (non-orig (privk b) (privk ca) (privk a))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (displaced 5 1 ca 2)- (enc (exp (gen) y) b-0 (privk ca-0)) (3 3))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (recv (enc "check" n (exp (gen) (mul y x)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (send (enc "check" n (exp (gen) (mul y x)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca)))))- (label 49)- (parent 44)- (unrealized)- (shape)- (maps ((0) ((n n) (y y) (a a) (b b) (ca ca) (h (exp (gen) x)))))- (origs (n (0 3))))--(defskeleton dhca- (vars (n text) (b ca a b-0 ca-0 name) (y x expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (h (exp (gen) y))- (x x))- (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) x)))- (defstrand ca 2 (subject b-0) (ca ca-0) (h (exp (gen) y)))- (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))- ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))- ((4 1) (3 1)) ((5 1) (3 3)))- (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) y) b-0 (privk ca-0)) (3 3))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (recv (enc "check" n (exp (gen) (mul y x)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca-0)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca-0))- (enc n (exp (gen) (mul y x)))))- (send (enc "check" n (exp (gen) (mul y x)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca-0))))- ((recv (enc "reg" (exp (gen) y) b-0 (privk b-0)))- (send (enc (exp (gen) y) b-0 (privk ca-0)))))- (label 50)- (parent 44)- (unrealized (5 0))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca a-0 b-0 ca-0 name) (y y-0 x expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))- (defstrand resp 1 (b a) (y y-0))- (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0)- (h (exp (gen) (mul y y-0 (rec x)))) (x x))- (defstrand ca 2 (subject a-0) (ca ca-0) (h (exp (gen) x)))- (defstrand ca 2 (subject b-0) (ca ca-0)- (h (exp (gen) (mul y y-0 (rec x)))))- (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((0 3) (4 3)) ((1 1) (0 1))- ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (6 0)) ((4 0) (5 0))- ((4 0) (6 0)) ((4 4) (0 4)) ((5 1) (4 1)) ((6 1) (4 3)))- (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk b-0)- (privk ca-0))- (uniq-gen y y-0 x)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0)) (4 3))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y y-0)))))- (recv (enc "check" n (exp (gen) (mul y y-0)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) y-0) a (privk a)))- (send (enc (exp (gen) y-0) a (privk ca))))- ((send (enc "reg" (exp (gen) y-0) a (privk a))))- ((send (enc "reg" (exp (gen) x) a-0 (privk a-0)))- (recv (enc (exp (gen) x) a-0 (privk ca-0)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))- (recv- (cat (exp (gen) (mul y y-0 (rec x)))- (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0))- (enc n (exp (gen) (mul y y-0)))))- (send (enc "check" n (exp (gen) (mul y y-0)))))- ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))- (send (enc (exp (gen) x) a-0 (privk ca-0))))- ((recv (enc "reg" (exp (gen) (mul y y-0 (rec x))) b-0 (privk b-0)))- (send (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0)))))- (label 51)- (parent 45)- (unrealized (6 0))- (comment "empty cohort"))--(defskeleton dhca- (vars (n text) (b ca a name) (x y expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))- ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))- ((4 1) (3 3)))- (non-orig (privk b) (privk ca) (privk a))- (uniq-gen x y)- (uniq-orig n)- (operation encryption-test (displaced 5 0 resp 1)- (enc "reg" (exp (gen) y) b-0 (privk b-0)) (4 0))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (recv (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca)))))- (label 52)- (parent 48)- (seen 47)- (unrealized)- (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhca- (vars (n text) (b ca a ca-0 name) (x y expn))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand init 5 (n n) (a a) (b b) (ca ca-0) (h (exp (gen) y)) (x x))- (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) x)))- (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y)))- (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))- ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))- ((4 1) (3 1)) ((5 1) (3 3)))- (non-orig (privk b) (privk ca) (privk a) (privk ca-0))- (uniq-gen x y)- (uniq-orig n)- (operation encryption-test (displaced 6 0 resp 1)- (enc "reg" (exp (gen) y) b-0 (privk b-0)) (5 0))- (traces- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (recv (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca-0)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca-0))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca-0)))))- (label 53)- (parent 50)- (unrealized)- (shape)- (maps ((0) ((n n) (y y) (a a) (b b) (ca ca) (h (exp (gen) x)))))- (origs (n (0 3))))--(comment "Nothing left to do")--(defprotocol dhca diffie-hellman- (defrole init- (vars (x expn) (a b ca name) (h base) (n text))- (trace (send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv (cat h (enc h b (privk ca)) (enc n (exp h x))))- (send (enc "check" n (exp h x))))- (non-orig (privk ca))- (uniq-gen x))- (defrole resp- (vars (y expn) (a b ca name) (h base) (n text))- (trace (send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat h (enc h a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp h y)))) (recv (enc "check" n (exp h y))))- (non-orig (privk ca))- (uniq-gen y))- (defrole ca- (vars (subject ca name) (h base))- (trace (recv (enc "reg" h subject (privk subject)))- (send (enc h subject (privk ca))))- (non-orig (privk subject)))- (comment A diffie-hellman exchange which uses a certificate authority- to certify long-term DH values))--(defskeleton dhca- (vars (n text) (a b ca name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (non-orig (privk ca))- (uniq-gen x y)- (uniq-orig n)- (comment point of view in which init and resp each complete and they- agree on the relevant parameters)- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (recv (enc "check" n (exp (gen) (mul x y))))))- (label 54)- (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))- (preskeleton)- (comment "Not a skeleton"))--(defskeleton dhca- (vars (n text) (a b ca name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (precedes ((0 0) (1 2)) ((1 3) (0 3)))- (non-orig (privk ca))- (uniq-gen x y)- (uniq-orig n)- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (recv (enc "check" n (exp (gen) (mul x y))))))- (label 55)- (parent 54)- (unrealized (0 1) (1 1) (1 2) (1 4))- (origs (n (1 3)))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (precedes ((0 0) (1 2)) ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))- (non-orig (privk b) (privk ca))- (uniq-gen x y)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) y) b (privk ca)) (1 1))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (recv (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca)))))- (label 56)- (parent 55)- (unrealized (0 1) (1 2) (1 4))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1))- ((3 1) (1 2)))- (non-orig (privk a) (privk b) (privk ca))- (uniq-gen x y)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) x) a (privk ca)) (1 2))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (recv (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca)))))- (label 57)- (parent 56)- (unrealized (0 1) (1 4))- (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca name) (y x expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))- ((2 1) (1 1)) ((3 1) (1 2)))- (non-orig (privk a) (privk b) (privk ca))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (displaced 4 0 init 5)- (enc "check" n (exp (gen) (mul x-0 y))) (1 4))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (send (enc "check" n (exp (gen) (mul y x)))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (recv (enc "check" n (exp (gen) (mul y x)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca)))))- (label 58)- (parent 57)- (unrealized (0 1))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y x-0 expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0)- (h (exp (gen) (mul x y (rec x-0)))) (x x-0))- (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))- ((2 1) (1 1)) ((3 1) (1 2)) ((4 4) (1 4)))- (non-orig (privk a) (privk b) (privk ca) (privk ca-0))- (uniq-gen x y x-0)- (uniq-orig n)- (operation encryption-test (added-strand init 5)- (enc "check" n (exp (gen) (mul x y))) (1 4))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (recv (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))- (recv (enc (exp (gen) x-0) a-0 (privk ca-0)))- (send- (cat (exp (gen) x-0) (enc (exp (gen) x-0) a-0 (privk ca-0))))- (recv- (cat (exp (gen) (mul x y (rec x-0)))- (enc (exp (gen) (mul x y (rec x-0))) b-0 (privk ca-0))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y))))))- (label 59)- (parent 57)- (unrealized (0 1) (4 1) (4 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (deflistener (exp (gen) (mul x y)))- (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 0) (2 0)) ((1 0) (4 0))- ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))- (non-orig (privk a) (privk b) (privk ca))- (uniq-gen x y)- (uniq-orig n)- (operation encryption-test (added-listener (exp (gen) (mul x y)))- (enc "check" n (exp (gen) (mul x y))) (1 4))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (recv (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))- (label 60)- (parent 57)- (unrealized (0 1) (4 0))- (comment "empty cohort"))--(defskeleton dhca- (vars (n text) (a b ca name) (y x expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))- ((2 1) (1 1)) ((3 1) (0 1)) ((3 1) (1 2)))- (non-orig (privk a) (privk b) (privk ca))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (displaced 4 3 ca 2)- (enc (exp (gen) x) a (privk ca)) (0 1))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (send (enc "check" n (exp (gen) (mul y x)))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (recv (enc "check" n (exp (gen) (mul y x)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca)))))- (label 61)- (parent 58)- (unrealized)- (shape)- (maps ((0 1) ((a a) (b b) (ca ca) (x x) (y y) (n n))))- (origs (n (1 3))))--(defskeleton dhca- (vars (n text) (a b ca name) (y x expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 4) (1 4)) ((1 0) (2 0))- ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (0 1)))- (non-orig (privk a) (privk b) (privk ca))- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) x) a (privk ca)) (0 1))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (send (enc "check" n (exp (gen) (mul y x)))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul y x)))))- (recv (enc "check" n (exp (gen) (mul y x)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca)))))- (label 62)- (parent 58)- (unrealized)- (shape)- (maps ((0 1) ((a a) (b b) (ca ca) (x x) (y y) (n n))))- (origs (n (1 3))))--(defskeleton dhca- (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y x-0 expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0)- (h (exp (gen) (mul x y (rec x-0)))) (x x-0))- (defstrand ca 2 (subject a-0) (ca ca-0) (h (exp (gen) x-0)))- (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))- ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (5 0)) ((4 4) (1 4))- ((5 1) (4 1)))- (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk ca-0))- (uniq-gen x y x-0)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) x-0) a-0 (privk ca-0)) (4 1))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (recv (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))- (recv (enc (exp (gen) x-0) a-0 (privk ca-0)))- (send- (cat (exp (gen) x-0) (enc (exp (gen) x-0) a-0 (privk ca-0))))- (recv- (cat (exp (gen) (mul x y (rec x-0)))- (enc (exp (gen) (mul x y (rec x-0))) b-0 (privk ca-0))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))- (send (enc (exp (gen) x-0) a-0 (privk ca-0)))))- (label 63)- (parent 59)- (unrealized (0 1) (4 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhca- (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y x-0 expn))- (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))- (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))- (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))- (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))- (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0)- (h (exp (gen) (mul x y (rec x-0)))) (x x-0))- (defstrand ca 2 (subject a-0) (ca ca-0) (h (exp (gen) x-0)))- (defstrand ca 2 (subject b-0) (ca ca-0)- (h (exp (gen) (mul x y (rec x-0)))))- (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))- ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))- ((4 0) (5 0)) ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (4 1))- ((6 1) (4 3)))- (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk b-0)- (privk ca-0))- (uniq-gen x y x-0)- (uniq-orig n)- (operation encryption-test (added-strand ca 2)- (enc (exp (gen) (mul x y (rec x-0))) b-0 (privk ca-0)) (4 3))- (traces- ((send (enc "reg" (exp (gen) x) a (privk a)))- (recv (enc (exp (gen) x) a (privk ca)))- (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (recv- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((send (enc "reg" (exp (gen) y) b (privk b)))- (recv (enc (exp (gen) y) b (privk ca)))- (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))- (send- (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))- (enc n (exp (gen) (mul x y)))))- (recv (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) y) b (privk b)))- (send (enc (exp (gen) y) b (privk ca))))- ((recv (enc "reg" (exp (gen) x) a (privk a)))- (send (enc (exp (gen) x) a (privk ca))))- ((send (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))- (recv (enc (exp (gen) x-0) a-0 (privk ca-0)))- (send- (cat (exp (gen) x-0) (enc (exp (gen) x-0) a-0 (privk ca-0))))- (recv- (cat (exp (gen) (mul x y (rec x-0)))- (enc (exp (gen) (mul x y (rec x-0))) b-0 (privk ca-0))- (enc n (exp (gen) (mul x y)))))- (send (enc "check" n (exp (gen) (mul x y)))))- ((recv (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))- (send (enc (exp (gen) x-0) a-0 (privk ca-0))))- ((recv (enc "reg" (exp (gen) (mul x y (rec x-0))) b-0 (privk b-0)))- (send (enc (exp (gen) (mul x y (rec x-0))) b-0 (privk ca-0)))))- (label 64)- (parent 63)- (unrealized (0 1) (6 0))+(comment "CPSA 3.4.0")+(comment "All input read from dh-ca.scm")++(defprotocol dhca diffie-hellman+ (defrole init+ (vars (x expn) (a b ca name) (h base) (n text))+ (trace (send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv (cat h (enc h b (privk ca)) (enc n (exp h x))))+ (send (enc "check" n (exp h x))))+ (non-orig (privk ca))+ (uniq-gen x))+ (defrole resp+ (vars (y expn) (a b ca name) (h base) (n text))+ (trace (send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat h (enc h a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp h y)))) (recv (enc "check" n (exp h y))))+ (non-orig (privk ca))+ (uniq-gen y))+ (defrole ca+ (vars (subject ca name) (h base))+ (trace (recv (enc "reg" h subject (privk subject)))+ (send (enc h subject (privk ca))))+ (non-orig (privk subject)))+ (comment A diffie-hellman exchange which uses a certificate authority+ to certify long-term DH values))++(defskeleton dhca+ (vars (n text) (a b ca name) (h base) (x expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h h) (x x))+ (non-orig (privk ca))+ (uniq-gen x)+ (comment Full initiator POV No need to make extra assumptions)+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv (cat h (enc h b (privk ca)) (enc n (exp h x))))+ (send (enc "check" n (exp h x)))))+ (label 0)+ (unrealized (0 1) (0 3))+ (origs)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (h base) (x expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h h) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk ca))+ (uniq-gen x)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) x) a (privk ca)) (0 1))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv (cat h (enc h b (privk ca)) (enc n (exp h x))))+ (send (enc "check" n (exp h x))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca)))))+ (label 1)+ (parent 0)+ (unrealized (0 3))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca name) (x expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) x)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk ca))+ (uniq-gen x)+ (operation encryption-test (displaced 2 1 ca 2) (enc h b (privk ca))+ (0 3))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))+ (enc n (exp (gen) (mul x x)))))+ (send (enc "check" n (exp (gen) (mul x x)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca)))))+ (label 2)+ (parent 1)+ (unrealized (0 3))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (h base) (x expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h h) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h h))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen x)+ (operation encryption-test (added-strand ca 2) (enc h b (privk ca))+ (0 3))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv (cat h (enc h b (privk ca)) (enc n (exp h x))))+ (send (enc "check" n (exp h x))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" h b (privk b))) (send (enc h b (privk ca)))))+ (label 3)+ (parent 1)+ (unrealized (0 3) (2 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca a-0 b ca-0 name) (x y expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) x)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0)+ (h (exp (gen) (mul x x (rec y)))) (y y))+ (precedes ((0 0) (1 0)) ((0 0) (2 2)) ((1 1) (0 1)) ((2 3) (0 3)))+ (non-orig (privk a) (privk ca) (privk ca-0))+ (uniq-gen x y)+ (operation encryption-test (added-strand resp 4)+ (enc n (exp (gen) (mul x x))) (0 3))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))+ (enc n (exp (gen) (mul x x)))))+ (send (enc "check" n (exp (gen) (mul x x)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca-0)))+ (recv+ (cat (exp (gen) (mul x x (rec y)))+ (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))+ (enc n (exp (gen) (mul x x)))))))+ (label 4)+ (parent 2)+ (unrealized (2 1) (2 2))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca name) (x expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) x)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (deflistener (exp (gen) (mul x x)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))+ (non-orig (privk a) (privk ca))+ (uniq-gen x)+ (operation encryption-test (added-listener (exp (gen) (mul x x)))+ (enc n (exp (gen) (mul x x))) (0 3))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))+ (enc n (exp (gen) (mul x x)))))+ (send (enc "check" n (exp (gen) (mul x x)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x)))))+ (label 5)+ (parent 2)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca name) (y expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))+ (non-orig (privk a) (privk ca))+ (uniq-gen y)+ (operation encryption-test (displaced 3 0 resp 1)+ (enc "reg" (exp (gen) y-0) b (privk b)) (2 0))+ (traces+ ((send (enc "reg" (exp (gen) y) a (privk a)))+ (recv (enc (exp (gen) y) a (privk ca)))+ (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca)))))+ (label 6)+ (parent 3)+ (unrealized (0 3))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 1 (b b) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)) ((3 0) (2 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen x y)+ (operation encryption-test (added-strand resp 1)+ (enc "reg" (exp (gen) y) b (privk b)) (2 0))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))))+ (label 7)+ (parent 3)+ (unrealized (0 3))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca a-0 b ca-0 name) (x y expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) x)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0)+ (h (exp (gen) (mul x x (rec y)))) (y y))+ (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y)))+ (precedes ((0 0) (1 0)) ((0 0) (2 2)) ((1 1) (0 1)) ((2 0) (3 0))+ ((2 3) (0 3)) ((3 1) (2 1)))+ (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+ (uniq-gen x y)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) y) b (privk ca-0)) (2 1))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))+ (enc n (exp (gen) (mul x x)))))+ (send (enc "check" n (exp (gen) (mul x x)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca-0)))+ (recv+ (cat (exp (gen) (mul x x (rec y)))+ (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))+ (enc n (exp (gen) (mul x x))))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca-0)))))+ (label 8)+ (parent 4)+ (unrealized (2 2))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca name) (x expn) (w expr))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) x)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (exp (gen) (mul x x (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 1) (2 0)))+ (non-orig (privk a) (privk ca))+ (uniq-gen x)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x x (rec w))) w))+ (exp (gen) (mul x x)) (2 0))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))+ (enc n (exp (gen) (mul x x)))))+ (send (enc "check" n (exp (gen) (mul x x)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (exp (gen) (mul x x (rec w))) w))+ (send (cat (exp (gen) (mul x x (rec w))) w))))+ (label 9)+ (parent 5)+ (unrealized (3 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca a-0 b ca-0 name) (y y-0 expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0)+ (h (exp (gen) (mul y y (rec y-0)))) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 2)) ((1 1) (0 1))+ ((2 1) (0 3)) ((3 3) (0 3)))+ (non-orig (privk a) (privk ca) (privk ca-0))+ (uniq-gen y y-0)+ (operation encryption-test (added-strand resp 4)+ (enc n (exp (gen) (mul y y))) (0 3))+ (traces+ ((send (enc "reg" (exp (gen) y) a (privk a)))+ (recv (enc (exp (gen) y) a (privk ca)))+ (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((send (enc "reg" (exp (gen) y-0) b (privk b)))+ (recv (enc (exp (gen) y-0) b (privk ca-0)))+ (recv+ (cat (exp (gen) (mul y y (rec y-0)))+ (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0))))+ (send+ (cat (exp (gen) y-0) (enc (exp (gen) y-0) b (privk ca-0))+ (enc n (exp (gen) (mul y y)))))))+ (label 10)+ (parent 6)+ (unrealized (3 1) (3 2))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca name) (y expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))+ ((2 1) (0 3)) ((3 1) (0 3)))+ (non-orig (privk a) (privk ca))+ (uniq-gen y)+ (operation encryption-test (added-listener (exp (gen) (mul y y)))+ (enc n (exp (gen) (mul y y))) (0 3))+ (traces+ ((send (enc "reg" (exp (gen) y) a (privk a)))+ (recv (enc (exp (gen) y) a (privk ca)))+ (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y)))))+ (label 11)+ (parent 6)+ (unrealized (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca a-0 b ca-0 name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (h (exp (gen) x))+ (y y))+ (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 0) (2 0)) ((3 3) (0 3)))+ (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+ (uniq-gen x y)+ (operation encryption-test (displaced 3 4 resp 4)+ (enc n (exp (gen) (mul x y-0))) (0 3))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca-0)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))+ (enc n (exp (gen) (mul x y)))))))+ (label 12)+ (parent 7)+ (unrealized (3 1) (3 2))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 1 (b b) (y y))+ (defstrand resp 4 (n n) (a a-0) (b b-0) (ca ca-0)+ (h (exp (gen) (mul x y (rec y-0)))) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (4 2)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 0) (2 0)) ((3 0) (4 2)) ((4 3) (0 3)))+ (non-orig (privk a) (privk b) (privk ca) (privk ca-0))+ (uniq-gen x y y-0)+ (operation encryption-test (added-strand resp 4)+ (enc n (exp (gen) (mul x y))) (0 3))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b))))+ ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))+ (recv (enc (exp (gen) y-0) b-0 (privk ca-0)))+ (recv+ (cat (exp (gen) (mul x y (rec y-0)))+ (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0))))+ (send+ (cat (exp (gen) y-0) (enc (exp (gen) y-0) b-0 (privk ca-0))+ (enc n (exp (gen) (mul x y)))))))+ (label 13)+ (parent 7)+ (unrealized (4 1) (4 2))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 1 (b b) (y y))+ (deflistener (exp (gen) (mul x y)))+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 3)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen x y)+ (operation encryption-test (added-listener (exp (gen) (mul x y)))+ (enc n (exp (gen) (mul x y))) (0 3))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))+ (label 14)+ (parent 7)+ (unrealized (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca a-0 b ca-0 name) (x y expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) x)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0)+ (h (exp (gen) (mul x x (rec y)))) (y y))+ (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y)))+ (defstrand ca 2 (subject a-0) (ca ca-0)+ (h (exp (gen) (mul x x (rec y)))))+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 0) (3 0))+ ((2 0) (4 0)) ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (2 2)))+ (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))+ (uniq-gen x y)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0)) (2 2))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))+ (enc n (exp (gen) (mul x x)))))+ (send (enc "check" n (exp (gen) (mul x x)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca-0)))+ (recv+ (cat (exp (gen) (mul x x (rec y)))+ (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))+ (enc n (exp (gen) (mul x x))))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca-0))))+ ((recv (enc "reg" (exp (gen) (mul x x (rec y))) a-0 (privk a-0)))+ (send (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0)))))+ (label 15)+ (parent 8)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a ca name) (x expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) x)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (gen) (mul x x)))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 1) (2 0)))+ (non-orig (privk a) (privk ca))+ (uniq-gen x)+ (precur (3 0))+ (operation nonce-test (contracted (x-0 x) (w (mul x x))) (gen) (3 0))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))+ (enc n (exp (gen) (mul x x)))))+ (send (enc "check" n (exp (gen) (mul x x)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x)))))+ (label 16)+ (parent 9)+ (unrealized (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca name) (y expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (exp (gen) y) y))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 1) (2 0)))+ (non-orig (privk a) (privk ca))+ (precur (3 0))+ (uniq-gen y)+ (operation nonce-test (displaced 4 0 resp 1) (exp (gen) y-0) (3 0))+ (traces+ ((send (enc "reg" (exp (gen) y) a (privk a)))+ (recv (enc (exp (gen) y) a (privk ca)))+ (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (exp (gen) y) y)) (send (cat (exp (gen) y) y))))+ (label 17)+ (parent 9)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a ca b name) (x y expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) x)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (exp (gen) y) (mul x x (rec y))))+ (defstrand resp 1 (b b) (y y))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 1) (2 0)) ((4 0) (3 0)))+ (non-orig (privk a) (privk ca))+ (precur (3 0))+ (uniq-gen x y)+ (operation nonce-test (added-strand resp 1) (exp (gen) y) (3 0))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))+ (enc n (exp (gen) (mul x x)))))+ (send (enc "check" n (exp (gen) (mul x x)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (exp (gen) y) (mul x x (rec y))))+ (send (cat (exp (gen) y) (mul x x (rec y)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))))+ (label 18)+ (parent 9)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a ca a-0 b ca-0 name) (y y-0 expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0)+ (h (exp (gen) (mul y y (rec y-0)))) (y y-0))+ (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y-0)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 2)) ((1 1) (0 1))+ ((2 1) (0 3)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))+ (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+ (uniq-gen y y-0)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) y-0) b (privk ca-0)) (3 1))+ (traces+ ((send (enc "reg" (exp (gen) y) a (privk a)))+ (recv (enc (exp (gen) y) a (privk ca)))+ (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((send (enc "reg" (exp (gen) y-0) b (privk b)))+ (recv (enc (exp (gen) y-0) b (privk ca-0)))+ (recv+ (cat (exp (gen) (mul y y (rec y-0)))+ (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0))))+ (send+ (cat (exp (gen) y-0) (enc (exp (gen) y-0) b (privk ca-0))+ (enc n (exp (gen) (mul y y))))))+ ((recv (enc "reg" (exp (gen) y-0) b (privk b)))+ (send (enc (exp (gen) y-0) b (privk ca-0)))))+ (label 19)+ (parent 10)+ (unrealized (3 2))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca name) (y expn) (w expr))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (exp (gen) (mul y y (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+ ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)))+ (non-orig (privk a) (privk ca))+ (uniq-gen y)+ (precur (4 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y y (rec w))) w))+ (exp (gen) (mul y y)) (3 0))+ (traces+ ((send (enc "reg" (exp (gen) y) a (privk a)))+ (recv (enc (exp (gen) y) a (privk ca)))+ (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (exp (gen) (mul y y (rec w))) w))+ (send (cat (exp (gen) (mul y y (rec w))) w))))+ (label 20)+ (parent 11)+ (unrealized (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca a-0 b name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (3 1))+ ((3 0) (2 0)) ((3 3) (0 3)))+ (non-orig (privk a) (privk ca) (privk b))+ (uniq-gen x y)+ (operation encryption-test (displaced 4 2 ca 2)+ (enc (exp (gen) y) b (privk ca-0)) (3 1))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))))+ (label 21)+ (parent 12)+ (unrealized (3 2))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca a-0 b ca-0 name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (h (exp (gen) x))+ (y y))+ (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y)))+ (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))+ (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+ (uniq-gen x y)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) y) b (privk ca-0)) (3 1))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca-0)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))+ (enc n (exp (gen) (mul x y))))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca-0)))))+ (label 22)+ (parent 12)+ (unrealized (3 2))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 1 (b b) (y y))+ (defstrand resp 4 (n n) (a a-0) (b b-0) (ca ca-0)+ (h (exp (gen) (mul x y (rec y-0)))) (y y-0))+ (defstrand ca 2 (subject b-0) (ca ca-0) (h (exp (gen) y-0)))+ (precedes ((0 0) (1 0)) ((0 0) (4 2)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 0) (2 0)) ((3 0) (4 2)) ((4 0) (5 0)) ((4 3) (0 3))+ ((5 1) (4 1)))+ (non-orig (privk a) (privk b) (privk ca) (privk b-0) (privk ca-0))+ (uniq-gen x y y-0)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) y-0) b-0 (privk ca-0)) (4 1))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b))))+ ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))+ (recv (enc (exp (gen) y-0) b-0 (privk ca-0)))+ (recv+ (cat (exp (gen) (mul x y (rec y-0)))+ (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0))))+ (send+ (cat (exp (gen) y-0) (enc (exp (gen) y-0) b-0 (privk ca-0))+ (enc n (exp (gen) (mul x y))))))+ ((recv (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))+ (send (enc (exp (gen) y-0) b-0 (privk ca-0)))))+ (label 23)+ (parent 13)+ (unrealized (4 2))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (x y expn) (w expr))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 1 (b b) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) (mul x y (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen x y)+ (precur (5 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x y (rec w))) w))+ (exp (gen) (mul x y)) (4 0))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) (mul x y (rec w))) w))+ (send (cat (exp (gen) (mul x y (rec w))) w))))+ (label 24)+ (parent 14)+ (unrealized (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca name) (x expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) x)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (gen) (mul x x)))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 1) (2 0)) ((4 1) (3 0)))+ (non-orig (privk a) (privk ca))+ (uniq-gen x)+ (precur (3 0))+ (operation nonce-test (added-listener x) (mul x x) (3 0))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))+ (enc n (exp (gen) (mul x x)))))+ (send (enc "check" n (exp (gen) (mul x x)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x))))+ ((recv x) (send x)))+ (label 25)+ (parent 16)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a ca a-0 b ca-0 name) (y y-0 expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0)+ (h (exp (gen) (mul y y (rec y-0)))) (y y-0))+ (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y-0)))+ (defstrand ca 2 (subject a-0) (ca ca-0)+ (h (exp (gen) (mul y y (rec y-0)))))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))+ ((2 1) (0 3)) ((3 0) (4 0)) ((3 0) (5 0)) ((3 3) (0 3))+ ((4 1) (3 1)) ((5 1) (3 2)))+ (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))+ (uniq-gen y y-0)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0)) (3 2))+ (traces+ ((send (enc "reg" (exp (gen) y) a (privk a)))+ (recv (enc (exp (gen) y) a (privk ca)))+ (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((send (enc "reg" (exp (gen) y-0) b (privk b)))+ (recv (enc (exp (gen) y-0) b (privk ca-0)))+ (recv+ (cat (exp (gen) (mul y y (rec y-0)))+ (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0))))+ (send+ (cat (exp (gen) y-0) (enc (exp (gen) y-0) b (privk ca-0))+ (enc n (exp (gen) (mul y y))))))+ ((recv (enc "reg" (exp (gen) y-0) b (privk b)))+ (send (enc (exp (gen) y-0) b (privk ca-0))))+ ((recv (enc "reg" (exp (gen) (mul y y (rec y-0))) a-0 (privk a-0)))+ (send (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0)))))+ (label 26)+ (parent 19)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a ca name) (y expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (gen) (mul y y)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+ ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)))+ (non-orig (privk a) (privk ca))+ (uniq-gen y)+ (precur (4 0))+ (operation nonce-test (contracted (y-0 y) (w (mul y y))) (gen) (4 0))+ (traces+ ((send (enc "reg" (exp (gen) y) a (privk a)))+ (recv (enc (exp (gen) y) a (privk ca)))+ (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y)))))+ (label 27)+ (parent 20)+ (unrealized (3 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca name) (y expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (exp (gen) y) y))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+ ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)))+ (non-orig (privk a) (privk ca))+ (precur (4 0))+ (uniq-gen y)+ (operation nonce-test (displaced 5 0 resp 1) (exp (gen) y-0) (4 0))+ (traces+ ((send (enc "reg" (exp (gen) y) a (privk a)))+ (recv (enc (exp (gen) y) a (privk ca)))+ (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (exp (gen) y) y)) (send (cat (exp (gen) y) y))))+ (label 28)+ (parent 20)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a ca b name) (y y-0 expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (exp (gen) y-0) (mul y y (rec y-0))))+ (defstrand resp 1 (b b) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+ ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)) ((5 0) (4 0)))+ (non-orig (privk a) (privk ca))+ (precur (4 0))+ (uniq-gen y y-0)+ (operation nonce-test (added-strand resp 1) (exp (gen) y-0) (4 0))+ (traces+ ((send (enc "reg" (exp (gen) y) a (privk a)))+ (recv (enc (exp (gen) y) a (privk ca)))+ (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (exp (gen) y-0) (mul y y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y y (rec y-0)))))+ ((send (enc "reg" (exp (gen) y-0) b (privk b)))))+ (label 29)+ (parent 20)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a ca b name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (3 1))+ ((3 0) (2 0)) ((3 3) (0 3)))+ (non-orig (privk a) (privk ca) (privk b))+ (uniq-gen x y)+ (operation encryption-test (displaced 4 1 ca 2)+ (enc (exp (gen) x) a-0 (privk ca)) (3 2))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))))+ (label 30)+ (parent 21)+ (unrealized)+ (shape)+ (maps ((0) ((x x) (a a) (b b) (ca ca) (h (exp (gen) y)) (n n))))+ (origs))++(defskeleton dhca+ (vars (n text) (a ca a-0 b name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject a-0) (ca ca) (h (exp (gen) x)))+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))+ ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))+ (non-orig (privk a) (privk ca) (privk a-0) (privk b))+ (uniq-gen x y)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) x) a-0 (privk ca)) (3 2))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y))))))+ ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))+ (send (enc (exp (gen) x) a-0 (privk ca)))))+ (label 31)+ (parent 21)+ (unrealized (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca b name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (0 3))+ ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))+ (non-orig (privk a) (privk ca) (privk b))+ (uniq-gen x y)+ (operation encryption-test (displaced 5 1 ca 2)+ (enc (exp (gen) x) a-0 (privk ca-0)) (3 2))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y))))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca)))))+ (label 32)+ (parent 22)+ (seen 30)+ (unrealized)+ (comment "1 in cohort - 0 not yet seen"))++(defskeleton dhca+ (vars (n text) (a ca a-0 b ca-0 name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (h (exp (gen) x))+ (y y))+ (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y)))+ (defstrand ca 2 (subject a-0) (ca ca-0) (h (exp (gen) x)))+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))+ ((5 1) (3 2)))+ (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))+ (uniq-gen x y)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) x) a-0 (privk ca-0)) (3 2))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca-0)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))+ (enc n (exp (gen) (mul x y))))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca-0))))+ ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))+ (send (enc (exp (gen) x) a-0 (privk ca-0)))))+ (label 33)+ (parent 22)+ (unrealized (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 1 (b b) (y y))+ (defstrand resp 4 (n n) (a a-0) (b b-0) (ca ca-0)+ (h (exp (gen) (mul x y (rec y-0)))) (y y-0))+ (defstrand ca 2 (subject b-0) (ca ca-0) (h (exp (gen) y-0)))+ (defstrand ca 2 (subject a-0) (ca ca-0)+ (h (exp (gen) (mul x y (rec y-0)))))+ (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 0) (2 0)) ((3 0) (6 0)) ((4 0) (5 0)) ((4 0) (6 0))+ ((4 3) (0 3)) ((5 1) (4 1)) ((6 1) (4 2)))+ (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk b-0)+ (privk ca-0))+ (uniq-gen x y y-0)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0)) (4 2))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b))))+ ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))+ (recv (enc (exp (gen) y-0) b-0 (privk ca-0)))+ (recv+ (cat (exp (gen) (mul x y (rec y-0)))+ (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0))))+ (send+ (cat (exp (gen) y-0) (enc (exp (gen) y-0) b-0 (privk ca-0))+ (enc n (exp (gen) (mul x y))))))+ ((recv (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))+ (send (enc (exp (gen) y-0) b-0 (privk ca-0))))+ ((recv (enc "reg" (exp (gen) (mul x y (rec y-0))) a-0 (privk a-0)))+ (send (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0)))))+ (label 34)+ (parent 23)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a b ca name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 1 (b b) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (gen) (mul x y)))+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen x y)+ (precur (5 0))+ (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul x y))) (gen)+ (5 0))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y)))))+ (label 35)+ (parent 24)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a b ca name) (y y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x y-0))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 1 (b b) (y y))+ (deflistener (exp (gen) (mul y y-0)))+ (deflistener (cat (exp (gen) y-0) y))+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (precur (5 0))+ (uniq-gen y y-0)+ (operation nonce-test (displaced 6 0 resp 1) (exp (gen) y-1) (5 0))+ (traces+ ((send (enc "reg" (exp (gen) y-0) a (privk a)))+ (recv (enc (exp (gen) y-0) a (privk ca)))+ (send (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (send (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b))))+ ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))+ ((recv (cat (exp (gen) y-0) y)) (send (cat (exp (gen) y-0) y))))+ (label 36)+ (parent 24)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a b ca name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 1 (b b) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (precur (5 0))+ (uniq-gen x y)+ (operation nonce-test (displaced 6 3 resp 1) (exp (gen) y-0) (5 0))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+ (label 37)+ (parent 24)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a b ca b-0 name) (x y y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 1 (b b) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y-0) (mul x y (rec y-0))))+ (defstrand resp 1 (b b-0) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0))+ ((6 0) (5 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (precur (5 0))+ (uniq-gen x y y-0)+ (operation nonce-test (added-strand resp 1) (exp (gen) y-0) (5 0))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y-0) (mul x y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul x y (rec y-0)))))+ ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))))+ (label 38)+ (parent 24)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a ca name) (y expn))+ (defstrand init 5 (n n) (a a) (b a) (ca ca) (h (exp (gen) y)) (x y))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (gen) (mul y y)))+ (deflistener y)+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))+ ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))+ (non-orig (privk a) (privk ca))+ (uniq-gen y)+ (precur (4 0))+ (operation nonce-test (added-listener y) (mul y y) (4 0))+ (traces+ ((send (enc "reg" (exp (gen) y) a (privk a)))+ (recv (enc (exp (gen) y) a (privk ca)))+ (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y))))+ ((recv y) (send y)))+ (label 39)+ (parent 27)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a ca b name) (y y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x y-0))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))+ ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))+ (non-orig (privk a) (privk ca) (privk b))+ (uniq-gen y y-0)+ (operation encryption-test (displaced 5 0 resp 1)+ (enc "reg" (exp (gen) y-0) a-0 (privk a-0)) (4 0))+ (traces+ ((send (enc "reg" (exp (gen) y-0) a (privk a)))+ (recv (enc (exp (gen) y-0) a (privk ca)))+ (send (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (send (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0))))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca)))))+ (label 40)+ (parent 31)+ (unrealized)+ (shape)+ (maps ((0) ((x y-0) (a a) (b b) (ca ca) (h (exp (gen) y)) (n n))))+ (origs))++(defskeleton dhca+ (vars (n text) (a ca b ca-0 name) (y y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x y-0))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand resp 4 (n n) (a a) (b b) (ca ca-0) (h (exp (gen) y-0))+ (y y))+ (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) y-0)))+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+ ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))+ ((5 1) (3 2)))+ (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+ (uniq-gen y y-0)+ (operation encryption-test (displaced 6 0 resp 1)+ (enc "reg" (exp (gen) y-0) a-0 (privk a-0)) (5 0))+ (traces+ ((send (enc "reg" (exp (gen) y-0) a (privk a)))+ (recv (enc (exp (gen) y-0) a (privk ca)))+ (send (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (send (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca-0)))+ (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca-0))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))+ (enc n (exp (gen) (mul y y-0))))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca-0))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca-0)))))+ (label 41)+ (parent 33)+ (unrealized)+ (shape)+ (maps ((0) ((x y-0) (a a) (b b) (ca ca) (h (exp (gen) y)) (n n))))+ (origs))++(comment "Nothing left to do")++(defprotocol dhca diffie-hellman+ (defrole init+ (vars (x expn) (a b ca name) (h base) (n text))+ (trace (send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv (cat h (enc h b (privk ca)) (enc n (exp h x))))+ (send (enc "check" n (exp h x))))+ (non-orig (privk ca))+ (uniq-gen x))+ (defrole resp+ (vars (y expn) (a b ca name) (h base) (n text))+ (trace (send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat h (enc h a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp h y)))) (recv (enc "check" n (exp h y))))+ (non-orig (privk ca))+ (uniq-gen y))+ (defrole ca+ (vars (subject ca name) (h base))+ (trace (recv (enc "reg" h subject (privk subject)))+ (send (enc h subject (privk ca))))+ (non-orig (privk subject)))+ (comment A diffie-hellman exchange which uses a certificate authority+ to certify long-term DH values))++(defskeleton dhca+ (vars (n text) (a b ca name) (h base) (y expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h h) (y y))+ (non-orig (privk ca))+ (uniq-gen y)+ (uniq-orig n)+ (comment Full responder point of view with freshly chosen n)+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat h (enc h a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp h y)))) (recv (enc "check" n (exp h y)))))+ (label 42)+ (unrealized (0 1) (0 2) (0 4))+ (origs (n (0 3)))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (h base) (y expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h h) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk b) (privk ca))+ (uniq-gen y)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) y) b (privk ca)) (0 1))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat h (enc h a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp h y)))) (recv (enc "check" n (exp h y))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca)))))+ (label 43)+ (parent 42)+ (unrealized (0 2) (0 4))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca name) (y expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk b) (privk ca))+ (uniq-gen y)+ (uniq-orig n)+ (operation encryption-test (displaced 2 1 ca 2) (enc h a (privk ca))+ (0 2))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca)))))+ (label 44)+ (parent 43)+ (unrealized (0 4))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (h base) (y expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h h) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h h))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen y)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2) (enc h a (privk ca))+ (0 2))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat h (enc h a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp h y)))) (recv (enc "check" n (exp h y))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" h a (privk a))) (send (enc h a (privk ca)))))+ (label 45)+ (parent 43)+ (unrealized (0 4) (2 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca a b-0 ca-0 name) (y x expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0)+ (h (exp (gen) (mul y y (rec x)))) (x x))+ (precedes ((0 0) (1 0)) ((0 3) (2 3)) ((1 1) (0 1)) ((2 4) (0 4)))+ (non-orig (privk b) (privk ca) (privk ca-0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (added-strand init 5)+ (enc "check" n (exp (gen) (mul y y))) (0 4))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca-0)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))+ (recv+ (cat (exp (gen) (mul y y (rec x)))+ (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y))))))+ (label 46)+ (parent 44)+ (unrealized (2 1) (2 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca name) (y expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 4)))+ (non-orig (privk b) (privk ca))+ (uniq-gen y)+ (uniq-orig n)+ (operation encryption-test (added-listener (exp (gen) (mul y y)))+ (enc "check" n (exp (gen) (mul y y))) (0 4))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y)))))+ (label 47)+ (parent 44)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca name) (y expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))+ (non-orig (privk b) (privk ca))+ (uniq-gen y)+ (uniq-orig n)+ (operation encryption-test (displaced 3 0 resp 1)+ (enc "reg" (exp (gen) y-0) a (privk a)) (2 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca)))))+ (label 48)+ (parent 45)+ (unrealized (0 4))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (y y-0 expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))+ (defstrand resp 1 (b a) (y y-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 0) (2 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen y y-0)+ (uniq-orig n)+ (operation encryption-test (added-strand resp 1)+ (enc "reg" (exp (gen) y-0) a (privk a)) (2 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (recv (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca))))+ ((send (enc "reg" (exp (gen) y-0) a (privk a)))))+ (label 49)+ (parent 45)+ (unrealized (0 4))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca a b-0 ca-0 name) (y x expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0)+ (h (exp (gen) (mul y y (rec x)))) (x x))+ (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) x)))+ (precedes ((0 0) (1 0)) ((0 3) (2 3)) ((1 1) (0 1)) ((2 0) (3 0))+ ((2 4) (0 4)) ((3 1) (2 1)))+ (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) x) a (privk ca-0)) (2 1))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca-0)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))+ (recv+ (cat (exp (gen) (mul y y (rec x)))+ (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca-0)))))+ (label 50)+ (parent 46)+ (unrealized (2 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca name) (y expn) (w expr))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (exp (gen) (mul y y (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))+ ((3 1) (2 0)))+ (non-orig (privk b) (privk ca))+ (uniq-gen y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y y (rec w))) w))+ (exp (gen) (mul y y)) (2 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (exp (gen) (mul y y (rec w))) w))+ (send (cat (exp (gen) (mul y y (rec w))) w))))+ (label 51)+ (parent 47)+ (unrealized (3 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca a b-0 ca-0 name) (y x expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0)+ (h (exp (gen) (mul y y (rec x)))) (x x))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 3) (3 3)) ((1 1) (0 1))+ ((2 1) (0 2)) ((3 4) (0 4)))+ (non-orig (privk b) (privk ca) (privk ca-0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (added-strand init 5)+ (enc "check" n (exp (gen) (mul y y))) (0 4))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca-0)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))+ (recv+ (cat (exp (gen) (mul y y (rec x)))+ (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y))))))+ (label 52)+ (parent 48)+ (unrealized (3 1) (3 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca name) (y expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))+ ((2 1) (0 2)) ((3 1) (0 4)))+ (non-orig (privk b) (privk ca))+ (uniq-gen y)+ (uniq-orig n)+ (operation encryption-test (added-listener (exp (gen) (mul y y)))+ (enc "check" n (exp (gen) (mul y y))) (0 4))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y)))))+ (label 53)+ (parent 48)+ (unrealized (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca a b-0 ca-0 name) (y x expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (h (exp (gen) y))+ (x x))+ (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+ ((3 0) (2 0)) ((3 4) (0 4)))+ (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (displaced 3 4 init 5)+ (enc "check" n (exp (gen) (mul y y-0))) (0 4))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (recv (enc "check" n (exp (gen) (mul y x)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca-0)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca-0))+ (enc n (exp (gen) (mul y x)))))+ (send (enc "check" n (exp (gen) (mul y x))))))+ (label 54)+ (parent 49)+ (unrealized (3 1) (3 3))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca a-0 b-0 ca-0 name) (y y-0 x expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))+ (defstrand resp 1 (b a) (y y-0))+ (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0)+ (h (exp (gen) (mul y y-0 (rec x)))) (x x))+ (precedes ((0 0) (1 0)) ((0 3) (4 3)) ((1 1) (0 1)) ((2 1) (0 2))+ ((3 0) (2 0)) ((4 4) (0 4)))+ (non-orig (privk a) (privk b) (privk ca) (privk ca-0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation encryption-test (added-strand init 5)+ (enc "check" n (exp (gen) (mul y y-0))) (0 4))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (recv (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca))))+ ((send (enc "reg" (exp (gen) y-0) a (privk a))))+ ((send (enc "reg" (exp (gen) x) a-0 (privk a-0)))+ (recv (enc (exp (gen) x) a-0 (privk ca-0)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))+ (recv+ (cat (exp (gen) (mul y y-0 (rec x)))+ (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0))+ (enc n (exp (gen) (mul y y-0)))))+ (send (enc "check" n (exp (gen) (mul y y-0))))))+ (label 55)+ (parent 49)+ (unrealized (4 1) (4 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (y y-0 expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))+ (defstrand resp 1 (b a) (y y-0))+ (deflistener (exp (gen) (mul y y-0)))+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 2))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 4)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen y y-0)+ (uniq-orig n)+ (operation encryption-test (added-listener (exp (gen) (mul y y-0)))+ (enc "check" n (exp (gen) (mul y y-0))) (0 4))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (recv (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca))))+ ((send (enc "reg" (exp (gen) y-0) a (privk a))))+ ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0)))))+ (label 56)+ (parent 49)+ (unrealized (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca a b-0 ca-0 name) (y x expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0)+ (h (exp (gen) (mul y y (rec x)))) (x x))+ (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) x)))+ (defstrand ca 2 (subject b-0) (ca ca-0)+ (h (exp (gen) (mul y y (rec x)))))+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (2 3)) ((1 1) (0 1))+ ((2 0) (3 0)) ((2 0) (4 0)) ((2 4) (0 4)) ((3 1) (2 1))+ ((4 1) (2 3)))+ (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0)) (2 3))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca-0)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))+ (recv+ (cat (exp (gen) (mul y y (rec x)))+ (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca-0))))+ ((recv (enc "reg" (exp (gen) (mul y y (rec x))) b-0 (privk b-0)))+ (send (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0)))))+ (label 57)+ (parent 50)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (b ca name) (y expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (gen) (mul y y)))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))+ ((3 1) (2 0)))+ (non-orig (privk b) (privk ca))+ (uniq-gen y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test (contracted (y-0 y) (w (mul y y))) (gen) (3 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y)))))+ (label 58)+ (parent 51)+ (unrealized (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca name) (y expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (exp (gen) y) y))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))+ ((3 1) (2 0)))+ (non-orig (privk b) (privk ca))+ (precur (3 0))+ (uniq-gen y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 resp 1) (exp (gen) y-0) (3 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (exp (gen) y) y)) (send (cat (exp (gen) y) y))))+ (label 59)+ (parent 51)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (b ca b-0 name) (y y-0 expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (exp (gen) y-0) (mul y y (rec y-0))))+ (defstrand resp 1 (b b-0) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))+ ((3 1) (2 0)) ((4 0) (3 0)))+ (non-orig (privk b) (privk ca))+ (precur (3 0))+ (uniq-gen y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 1) (exp (gen) y-0) (3 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (exp (gen) y-0) (mul y y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y y (rec y-0)))))+ ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))))+ (label 60)+ (parent 51)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (b ca a b-0 ca-0 name) (y x expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0)+ (h (exp (gen) (mul y y (rec x)))) (x x))+ (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) x)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 3) (3 3)) ((1 1) (0 1))+ ((2 1) (0 2)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))+ (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) x) a (privk ca-0)) (3 1))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca-0)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))+ (recv+ (cat (exp (gen) (mul y y (rec x)))+ (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca-0)))))+ (label 61)+ (parent 52)+ (unrealized (3 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca name) (y expn) (w expr))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (exp (gen) (mul y y (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+ ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)))+ (non-orig (privk b) (privk ca))+ (uniq-gen y)+ (uniq-orig n)+ (precur (4 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y y (rec w))) w))+ (exp (gen) (mul y y)) (3 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (exp (gen) (mul y y (rec w))) w))+ (send (cat (exp (gen) (mul y y (rec w))) w))))+ (label 62)+ (parent 53)+ (unrealized (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca a b-0 name) (y x expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand init 5 (n n) (a a) (b b-0) (ca ca) (h (exp (gen) y)) (x x))+ (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+ ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))+ (non-orig (privk b) (privk ca) (privk a))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (displaced 4 2 ca 2)+ (enc (exp (gen) x) a (privk ca-0)) (3 1))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (recv (enc "check" n (exp (gen) (mul y x)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (send (enc "check" n (exp (gen) (mul y x))))))+ (label 63)+ (parent 54)+ (unrealized (3 3))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca a b-0 ca-0 name) (y x expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (h (exp (gen) y))+ (x x))+ (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) x)))+ (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+ ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))+ (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) x) a (privk ca-0)) (3 1))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (recv (enc "check" n (exp (gen) (mul y x)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca-0)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca-0))+ (enc n (exp (gen) (mul y x)))))+ (send (enc "check" n (exp (gen) (mul y x)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca-0)))))+ (label 64)+ (parent 54)+ (unrealized (3 3))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca a-0 b-0 ca-0 name) (y y-0 x expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))+ (defstrand resp 1 (b a) (y y-0))+ (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0)+ (h (exp (gen) (mul y y-0 (rec x)))) (x x))+ (defstrand ca 2 (subject a-0) (ca ca-0) (h (exp (gen) x)))+ (precedes ((0 0) (1 0)) ((0 3) (4 3)) ((1 1) (0 1)) ((2 1) (0 2))+ ((3 0) (2 0)) ((4 0) (5 0)) ((4 4) (0 4)) ((5 1) (4 1)))+ (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk ca-0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) x) a-0 (privk ca-0)) (4 1))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (recv (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca))))+ ((send (enc "reg" (exp (gen) y-0) a (privk a))))+ ((send (enc "reg" (exp (gen) x) a-0 (privk a-0)))+ (recv (enc (exp (gen) x) a-0 (privk ca-0)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))+ (recv+ (cat (exp (gen) (mul y y-0 (rec x)))+ (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0))+ (enc n (exp (gen) (mul y y-0)))))+ (send (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))+ (send (enc (exp (gen) x) a-0 (privk ca-0)))))+ (label 65)+ (parent 55)+ (unrealized (4 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (y y-0 expn) (w expr))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))+ (defstrand resp 1 (b a) (y y-0))+ (deflistener (exp (gen) (mul y y-0)))+ (deflistener (cat (exp (gen) (mul y y-0 (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen y y-0)+ (uniq-orig n)+ (precur (5 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y y-0 (rec w))) w))+ (exp (gen) (mul y y-0)) (4 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (recv (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca))))+ ((send (enc "reg" (exp (gen) y-0) a (privk a))))+ ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))+ ((recv (cat (exp (gen) (mul y y-0 (rec w))) w))+ (send (cat (exp (gen) (mul y y-0 (rec w))) w))))+ (label 66)+ (parent 56)+ (unrealized (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca name) (y expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (gen) (mul y y)))+ (deflistener y)+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 4))+ ((3 1) (2 0)) ((4 1) (3 0)))+ (non-orig (privk b) (privk ca))+ (uniq-gen y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test (added-listener y) (mul y y) (3 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y))))+ ((recv y) (send y)))+ (label 67)+ (parent 58)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (b ca a b-0 ca-0 name) (y x expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0)+ (h (exp (gen) (mul y y (rec x)))) (x x))+ (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) x)))+ (defstrand ca 2 (subject b-0) (ca ca-0)+ (h (exp (gen) (mul y y (rec x)))))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((0 3) (3 3))+ ((1 1) (0 1)) ((2 1) (0 2)) ((3 0) (4 0)) ((3 0) (5 0))+ ((3 4) (0 4)) ((4 1) (3 1)) ((5 1) (3 3)))+ (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0)) (3 3))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca-0)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))+ (recv+ (cat (exp (gen) (mul y y (rec x)))+ (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))+ (enc n (exp (gen) (mul y y)))))+ (send (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca-0))))+ ((recv (enc "reg" (exp (gen) (mul y y (rec x))) b-0 (privk b-0)))+ (send (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0)))))+ (label 68)+ (parent 61)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (b ca name) (y expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (gen) (mul y y)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+ ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)))+ (non-orig (privk b) (privk ca))+ (uniq-gen y)+ (uniq-orig n)+ (precur (4 0))+ (operation nonce-test (contracted (y-0 y) (w (mul y y))) (gen) (4 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y)))))+ (label 69)+ (parent 62)+ (unrealized (3 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca name) (y expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (exp (gen) y) y))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+ ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)))+ (non-orig (privk b) (privk ca))+ (precur (4 0))+ (uniq-gen y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 resp 1) (exp (gen) y-0) (4 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (exp (gen) y) y)) (send (cat (exp (gen) y) y))))+ (label 70)+ (parent 62)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (b ca b-0 name) (y y-0 expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (exp (gen) y-0) (mul y y (rec y-0))))+ (defstrand resp 1 (b b-0) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+ ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 0) (4 0)))+ (non-orig (privk b) (privk ca))+ (precur (4 0))+ (uniq-gen y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 1) (exp (gen) y-0) (4 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (exp (gen) y-0) (mul y y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y y (rec y-0)))))+ ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))))+ (label 71)+ (parent 62)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (b ca a name) (y x expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+ ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))+ (non-orig (privk b) (privk ca) (privk a))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (displaced 4 1 ca 2)+ (enc (exp (gen) y) b-0 (privk ca)) (3 3))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (recv (enc "check" n (exp (gen) (mul y x)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (send (enc "check" n (exp (gen) (mul y x))))))+ (label 72)+ (parent 63)+ (unrealized)+ (shape)+ (maps ((0) ((n n) (y y) (a a) (b b) (ca ca) (h (exp (gen) x)))))+ (origs (n (0 3))))++(defskeleton dhca+ (vars (n text) (b ca a b-0 name) (y x expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand init 5 (n n) (a a) (b b-0) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject b-0) (ca ca) (h (exp (gen) y)))+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))+ ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))+ ((4 1) (3 3)))+ (non-orig (privk b) (privk ca) (privk a) (privk b-0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) y) b-0 (privk ca)) (3 3))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (recv (enc "check" n (exp (gen) (mul y x)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (send (enc "check" n (exp (gen) (mul y x)))))+ ((recv (enc "reg" (exp (gen) y) b-0 (privk b-0)))+ (send (enc (exp (gen) y) b-0 (privk ca)))))+ (label 73)+ (parent 63)+ (unrealized (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca a name) (y x expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+ ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))+ (non-orig (privk b) (privk ca) (privk a))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (displaced 5 1 ca 2)+ (enc (exp (gen) y) b-0 (privk ca-0)) (3 3))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (recv (enc "check" n (exp (gen) (mul y x)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (send (enc "check" n (exp (gen) (mul y x)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca)))))+ (label 74)+ (parent 64)+ (unrealized)+ (shape)+ (maps ((0) ((n n) (y y) (a a) (b b) (ca ca) (h (exp (gen) x)))))+ (origs (n (0 3))))++(defskeleton dhca+ (vars (n text) (b ca a b-0 ca-0 name) (y x expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (h (exp (gen) y))+ (x x))+ (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) x)))+ (defstrand ca 2 (subject b-0) (ca ca-0) (h (exp (gen) y)))+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))+ ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))+ ((4 1) (3 1)) ((5 1) (3 3)))+ (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) y) b-0 (privk ca-0)) (3 3))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (recv (enc "check" n (exp (gen) (mul y x)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca-0)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca-0))+ (enc n (exp (gen) (mul y x)))))+ (send (enc "check" n (exp (gen) (mul y x)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca-0))))+ ((recv (enc "reg" (exp (gen) y) b-0 (privk b-0)))+ (send (enc (exp (gen) y) b-0 (privk ca-0)))))+ (label 75)+ (parent 64)+ (unrealized (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca a-0 b-0 ca-0 name) (y y-0 x expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))+ (defstrand resp 1 (b a) (y y-0))+ (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0)+ (h (exp (gen) (mul y y-0 (rec x)))) (x x))+ (defstrand ca 2 (subject a-0) (ca ca-0) (h (exp (gen) x)))+ (defstrand ca 2 (subject b-0) (ca ca-0)+ (h (exp (gen) (mul y y-0 (rec x)))))+ (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((0 3) (4 3)) ((1 1) (0 1))+ ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (6 0)) ((4 0) (5 0))+ ((4 0) (6 0)) ((4 4) (0 4)) ((5 1) (4 1)) ((6 1) (4 3)))+ (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk b-0)+ (privk ca-0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0)) (4 3))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (recv (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca))))+ ((send (enc "reg" (exp (gen) y-0) a (privk a))))+ ((send (enc "reg" (exp (gen) x) a-0 (privk a-0)))+ (recv (enc (exp (gen) x) a-0 (privk ca-0)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))+ (recv+ (cat (exp (gen) (mul y y-0 (rec x)))+ (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0))+ (enc n (exp (gen) (mul y y-0)))))+ (send (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))+ (send (enc (exp (gen) x) a-0 (privk ca-0))))+ ((recv (enc "reg" (exp (gen) (mul y y-0 (rec x))) b-0 (privk b-0)))+ (send (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0)))))+ (label 76)+ (parent 65)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a b ca name) (y y-0 expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))+ (defstrand resp 1 (b a) (y y-0))+ (deflistener (exp (gen) (mul y y-0)))+ (deflistener (cat (gen) (mul y y-0)))+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen y y-0)+ (uniq-orig n)+ (precur (5 0))+ (operation nonce-test (contracted (y-1 y) (y-2 y-0) (w (mul y y-0)))+ (gen) (5 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (recv (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca))))+ ((send (enc "reg" (exp (gen) y-0) a (privk a))))+ ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))+ ((recv (cat (gen) (mul y y-0))) (send (cat (gen) (mul y y-0)))))+ (label 77)+ (parent 66)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a b ca name) (y y-0 expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (y y-0))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y-0)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y)))+ (defstrand resp 1 (b a) (y y))+ (deflistener (exp (gen) (mul y y-0)))+ (deflistener (cat (exp (gen) y-0) y))+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (precur (5 0))+ (uniq-gen y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 resp 1) (exp (gen) y-1) (5 0))+ (traces+ ((send (enc "reg" (exp (gen) y-0) b (privk b)))+ (recv (enc (exp (gen) y-0) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))+ (send+ (cat (exp (gen) y-0) (enc (exp (gen) y-0) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (recv (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) y-0) b (privk b)))+ (send (enc (exp (gen) y-0) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y) a (privk a)))+ (send (enc (exp (gen) y) a (privk ca))))+ ((send (enc "reg" (exp (gen) y) a (privk a))))+ ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))+ ((recv (cat (exp (gen) y-0) y)) (send (cat (exp (gen) y-0) y))))+ (label 78)+ (parent 66)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a b ca name) (y y-0 expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))+ (defstrand resp 1 (b a) (y y-0))+ (deflistener (exp (gen) (mul y y-0)))+ (deflistener (cat (exp (gen) y-0) y))+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (precur (5 0))+ (uniq-gen y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 6 3 resp 1) (exp (gen) y-1) (5 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (recv (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca))))+ ((send (enc "reg" (exp (gen) y-0) a (privk a))))+ ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))+ ((recv (cat (exp (gen) y-0) y)) (send (cat (exp (gen) y-0) y))))+ (label 79)+ (parent 66)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a b ca b-0 name) (y y-0 y-1 expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))+ (defstrand resp 1 (b a) (y y-0))+ (deflistener (exp (gen) (mul y y-0)))+ (deflistener (cat (exp (gen) y-1) (mul y y-0 (rec y-1))))+ (defstrand resp 1 (b b-0) (y y-1))+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0))+ ((6 0) (5 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (precur (5 0))+ (uniq-gen y y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 1) (exp (gen) y-1) (5 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (recv (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca))))+ ((send (enc "reg" (exp (gen) y-0) a (privk a))))+ ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))+ ((recv (cat (exp (gen) y-1) (mul y y-0 (rec y-1))))+ (send (cat (exp (gen) y-1) (mul y y-0 (rec y-1)))))+ ((send (enc "reg" (exp (gen) y-1) b-0 (privk b-0)))))+ (label 80)+ (parent 66)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (b ca name) (y expn))+ (defstrand resp 5 (n n) (a b) (b b) (ca ca) (h (exp (gen) y)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (deflistener (exp (gen) (mul y y)))+ (deflistener (cat (gen) (mul y y)))+ (deflistener y)+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))+ ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 1) (4 0)))+ (non-orig (privk b) (privk ca))+ (uniq-gen y)+ (uniq-orig n)+ (precur (4 0))+ (operation nonce-test (added-listener y) (mul y y) (4 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y)))))+ (recv (enc "check" n (exp (gen) (mul y y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))+ ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y))))+ ((recv y) (send y)))+ (label 81)+ (parent 69)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (b ca a name) (x y expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))+ ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))+ ((4 1) (3 3)))+ (non-orig (privk b) (privk ca) (privk a))+ (uniq-gen x y)+ (uniq-orig n)+ (operation encryption-test (displaced 5 0 resp 1)+ (enc "reg" (exp (gen) y) b-0 (privk b-0)) (4 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (recv (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca)))))+ (label 82)+ (parent 73)+ (seen 72)+ (unrealized)+ (comment "1 in cohort - 0 not yet seen"))++(defskeleton dhca+ (vars (n text) (b ca a ca-0 name) (x y expn))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand init 5 (n n) (a a) (b b) (ca ca-0) (h (exp (gen) y)) (x x))+ (defstrand ca 2 (subject a) (ca ca-0) (h (exp (gen) x)))+ (defstrand ca 2 (subject b) (ca ca-0) (h (exp (gen) y)))+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))+ ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))+ ((4 1) (3 1)) ((5 1) (3 3)))+ (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation encryption-test (displaced 6 0 resp 1)+ (enc "reg" (exp (gen) y) b-0 (privk b-0)) (5 0))+ (traces+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (recv (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca-0)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca-0))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca-0)))))+ (label 83)+ (parent 75)+ (unrealized)+ (shape)+ (maps ((0) ((n n) (y y) (a a) (b b) (ca ca) (h (exp (gen) x)))))+ (origs (n (0 3))))++(comment "Nothing left to do")++(defprotocol dhca diffie-hellman+ (defrole init+ (vars (x expn) (a b ca name) (h base) (n text))+ (trace (send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv (cat h (enc h b (privk ca)) (enc n (exp h x))))+ (send (enc "check" n (exp h x))))+ (non-orig (privk ca))+ (uniq-gen x))+ (defrole resp+ (vars (y expn) (a b ca name) (h base) (n text))+ (trace (send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat h (enc h a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp h y)))) (recv (enc "check" n (exp h y))))+ (non-orig (privk ca))+ (uniq-gen y))+ (defrole ca+ (vars (subject ca name) (h base))+ (trace (recv (enc "reg" h subject (privk subject)))+ (send (enc h subject (privk ca))))+ (non-orig (privk subject)))+ (comment A diffie-hellman exchange which uses a certificate authority+ to certify long-term DH values))++(defskeleton dhca+ (vars (n text) (a b ca name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (non-orig (privk ca))+ (uniq-gen x y)+ (uniq-orig n)+ (comment point of view in which init and resp each complete and they+ agree on the relevant parameters)+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (recv (enc "check" n (exp (gen) (mul x y))))))+ (label 84)+ (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))+ (preskeleton)+ (comment "Not a skeleton"))++(defskeleton dhca+ (vars (n text) (a b ca name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (1 2)) ((1 3) (0 3)))+ (non-orig (privk ca))+ (uniq-gen x y)+ (uniq-orig n)+ (comment point of view in which init and resp each complete and they+ agree on the relevant parameters)+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (recv (enc "check" n (exp (gen) (mul x y))))))+ (label 85)+ (parent 84)+ (unrealized (0 1) (1 1) (1 2) (1 4))+ (origs (n (1 3)))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (precedes ((0 0) (1 2)) ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))+ (non-orig (privk b) (privk ca))+ (uniq-gen x y)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) y) b (privk ca)) (1 1))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (recv (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca)))))+ (label 86)+ (parent 85)+ (unrealized (0 1) (1 2) (1 4))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1))+ ((3 1) (1 2)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen x y)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) x) a (privk ca)) (1 2))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (recv (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca)))))+ (label 87)+ (parent 86)+ (unrealized (0 1) (1 4))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))+ ((2 1) (1 1)) ((3 1) (1 2)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (displaced 4 0 init 5)+ (enc "check" n (exp (gen) (mul x-0 y))) (1 4))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (send (enc "check" n (exp (gen) (mul y x)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (recv (enc "check" n (exp (gen) (mul y x)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca)))))+ (label 88)+ (parent 87)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y x-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0)+ (h (exp (gen) (mul x y (rec x-0)))) (x x-0))+ (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+ ((2 1) (1 1)) ((3 1) (1 2)) ((4 4) (1 4)))+ (non-orig (privk a) (privk b) (privk ca) (privk ca-0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation encryption-test (added-strand init 5)+ (enc "check" n (exp (gen) (mul x y))) (1 4))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (recv (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))+ (recv (enc (exp (gen) x-0) a-0 (privk ca-0)))+ (send+ (cat (exp (gen) x-0) (enc (exp (gen) x-0) a-0 (privk ca-0))))+ (recv+ (cat (exp (gen) (mul x y (rec x-0)))+ (enc (exp (gen) (mul x y (rec x-0))) b-0 (privk ca-0))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y))))))+ (label 89)+ (parent 87)+ (unrealized (0 1) (4 1) (4 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (deflistener (exp (gen) (mul x y)))+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 0) (2 0)) ((1 0) (4 0))+ ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen x y)+ (uniq-orig n)+ (operation encryption-test (added-listener (exp (gen) (mul x y)))+ (enc "check" n (exp (gen) (mul x y))) (1 4))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (recv (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))+ (label 90)+ (parent 87)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))+ ((2 1) (1 1)) ((3 1) (0 1)) ((3 1) (1 2)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (displaced 4 3 ca 2)+ (enc (exp (gen) x) a (privk ca)) (0 1))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (send (enc "check" n (exp (gen) (mul y x)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (recv (enc "check" n (exp (gen) (mul y x)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca)))))+ (label 91)+ (parent 88)+ (unrealized)+ (shape)+ (maps ((0 1) ((a a) (b b) (ca ca) (x x) (y y) (n n))))+ (origs (n (1 3))))++(defskeleton dhca+ (vars (n text) (a b ca name) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 4) (1 4)) ((1 0) (2 0))+ ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (0 1)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen y x)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) x) a (privk ca)) (0 1))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (send (enc "check" n (exp (gen) (mul y x)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y x)))))+ (recv (enc "check" n (exp (gen) (mul y x)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca)))))+ (label 92)+ (parent 88)+ (unrealized)+ (shape)+ (maps ((0 1) ((a a) (b b) (ca ca) (x x) (y y) (n n))))+ (origs (n (1 3))))++(defskeleton dhca+ (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y x-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0)+ (h (exp (gen) (mul x y (rec x-0)))) (x x-0))+ (defstrand ca 2 (subject a-0) (ca ca-0) (h (exp (gen) x-0)))+ (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+ ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (5 0)) ((4 4) (1 4))+ ((5 1) (4 1)))+ (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk ca-0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) x-0) a-0 (privk ca-0)) (4 1))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (recv (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))+ (recv (enc (exp (gen) x-0) a-0 (privk ca-0)))+ (send+ (cat (exp (gen) x-0) (enc (exp (gen) x-0) a-0 (privk ca-0))))+ (recv+ (cat (exp (gen) (mul x y (rec x-0)))+ (enc (exp (gen) (mul x y (rec x-0))) b-0 (privk ca-0))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))+ (send (enc (exp (gen) x-0) a-0 (privk ca-0)))))+ (label 93)+ (parent 89)+ (unrealized (0 1) (4 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca name) (x y expn) (w expr))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) (mul x y (rec w))) w))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))+ ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (5 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x y (rec w))) w))+ (exp (gen) (mul x y)) (4 0))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (recv (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) (mul x y (rec w))) w))+ (send (cat (exp (gen) (mul x y (rec w))) w))))+ (label 94)+ (parent 90)+ (unrealized (0 1) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhca+ (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y x-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0)+ (h (exp (gen) (mul x y (rec x-0)))) (x x-0))+ (defstrand ca 2 (subject a-0) (ca ca-0) (h (exp (gen) x-0)))+ (defstrand ca 2 (subject b-0) (ca ca-0)+ (h (exp (gen) (mul x y (rec x-0)))))+ (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))+ ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+ ((4 0) (5 0)) ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (4 1))+ ((6 1) (4 3)))+ (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk b-0)+ (privk ca-0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation encryption-test (added-strand ca 2)+ (enc (exp (gen) (mul x y (rec x-0))) b-0 (privk ca-0)) (4 3))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (recv (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((send (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))+ (recv (enc (exp (gen) x-0) a-0 (privk ca-0)))+ (send+ (cat (exp (gen) x-0) (enc (exp (gen) x-0) a-0 (privk ca-0))))+ (recv+ (cat (exp (gen) (mul x y (rec x-0)))+ (enc (exp (gen) (mul x y (rec x-0))) b-0 (privk ca-0))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))+ (send (enc (exp (gen) x-0) a-0 (privk ca-0))))+ ((recv (enc "reg" (exp (gen) (mul x y (rec x-0))) b-0 (privk b-0)))+ (send (enc (exp (gen) (mul x y (rec x-0))) b-0 (privk ca-0)))))+ (label 95)+ (parent 93)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a b ca name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (gen) (mul x y)))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))+ ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (5 0))+ (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul x y))) (gen)+ (5 0))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (recv (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y)))))+ (label 96)+ (parent 94)+ (unrealized (0 1) (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a b ca name) (y y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x y-0))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y-0)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) y-0)))+ (deflistener (exp (gen) (mul y y-0)))+ (deflistener (cat (exp (gen) y-0) y))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))+ ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (precur (5 0))+ (uniq-gen y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 resp 1) (exp (gen) y-1) (5 0))+ (traces+ ((send (enc "reg" (exp (gen) y-0) a (privk a)))+ (recv (enc (exp (gen) y-0) a (privk ca)))+ (send (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (send (enc "check" n (exp (gen) (mul y y-0)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul y y-0)))))+ (recv (enc "check" n (exp (gen) (mul y y-0)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+ (send (enc (exp (gen) y-0) a (privk ca))))+ ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))+ ((recv (cat (exp (gen) y-0) y)) (send (cat (exp (gen) y-0) y))))+ (label 97)+ (parent 94)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a b ca name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))+ ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))+ ((5 1) (4 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (precur (5 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 1) (exp (gen) y-0) (5 0))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (recv (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+ (label 98)+ (parent 94)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dhca+ (vars (n text) (a b ca b-0 name) (x y y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))+ (defstrand resp 5 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y y))+ (defstrand ca 2 (subject b) (ca ca) (h (exp (gen) y)))+ (defstrand ca 2 (subject a) (ca ca) (h (exp (gen) x)))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y-0) (mul x y (rec y-0))))+ (defstrand resp 1 (b b-0) (y y-0))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))+ ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))+ ((5 1) (4 0)) ((6 0) (5 0)))+ (non-orig (privk a) (privk b) (privk ca))+ (precur (5 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 1) (exp (gen) y-0) (5 0))+ (traces+ ((send (enc "reg" (exp (gen) x) a (privk a)))+ (recv (enc (exp (gen) x) a (privk ca)))+ (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (recv+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (send (enc "check" n (exp (gen) (mul x y)))))+ ((send (enc "reg" (exp (gen) y) b (privk b)))+ (recv (enc (exp (gen) y) b (privk ca)))+ (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+ (send+ (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+ (enc n (exp (gen) (mul x y)))))+ (recv (enc "check" n (exp (gen) (mul x y)))))+ ((recv (enc "reg" (exp (gen) y) b (privk b)))+ (send (enc (exp (gen) y) b (privk ca))))+ ((recv (enc "reg" (exp (gen) x) a (privk a)))+ (send (enc (exp (gen) x) a (privk ca))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y-0) (mul x y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul x y (rec y-0)))))+ ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))))+ (label 99)+ (parent 94)+ (unrealized (0 1) (4 0) (5 0)) (comment "empty cohort")) (comment "Nothing left to do")
tst/dh_mim.scm view
@@ -1,42 +1,34 @@+; Unauthenticated Diffie-Hellman key exchange++; In this example, the initiator and responder roles participate in a+; Diffie-Hellman exchange, and then a nonce is transmitted by the+; initiator and received by the responder. ++; A man-in-the-middle attack is possible, because there is no +; attempt made to authenticate either of the parties. Therefore, the+; adversary may emulate the responder to the initator and vice versa.+ (herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman)-; (limit 1) ) (defprotocol dh_mim diffie-hellman (defrole init (vars (x expn) (h base) (n text))- (trace (send (exp (gen) x)) (recv h) (send (enc n (exp h x))))-; (uniq-orig n)+ (trace+ (send (exp (gen) x))+ (recv h)+ (send (enc n (exp h x)))) (uniq-gen x)) (defrole resp (vars (y expn) (h base) (n text))- (trace (recv h) (send (exp (gen) y)) (recv (enc n (exp h y))))+ (trace+ (recv h)+ (send (exp (gen) y))+ (recv (enc n (exp h y)))) (uniq-gen y)) (comment "Diffie-hellman key exchange followed by an encryption")) -(comment-(defskeleton dh_mim- (vars (n text) (hx base) (y x expn))- (defstrand init 3 (n n) (h (exp hx (mul (rec y) x))) (x y))- (defstrand resp 3 (n n) (h hx) (y x))- (precedes ((0 2) (1 2)) ((1 1) (0 1)))- (pen-non-orig y x)- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (displaced 2 0 init 3)- (enc n (exp hx (mul y-0 x-0))) (1 2))- (traces- ((send (exp (gen) y)) (recv (exp hx (mul (rec y) x)))- (send (enc n (exp hx x))))- ((recv hx) (send (exp (gen) x)) (recv (enc n (exp hx x)))))- (label 1)- (parent 0)- (unrealized (0 1))- (origs (n (0 2)))- (comment "empty cohort"))-) -;(comment (defskeleton dh_mim (vars (n text) (hx hy base) (x y expn)) (defstrand init 3 (n n) (h hy) (x x))@@ -45,39 +37,4 @@ (uniq-orig n) (pen-non-orig x y) (comment "Agreement on the encrypted text only"))-;) -(comment-(defskeleton dh_mim- (vars (n text) (x z y expn))- (defstrand init 3 (n n) (h (exp (gen) (mul x z y))) (x y))- (defstrand resp 3 (n n) (h (exp (gen) (mul z y y))) (y x))- (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n))-)--(comment-(defskeleton dh_mim- (vars (n text) (x y y-0 expn))- (defstrand init 3 (n n) (h (exp (gen) (mul y y-0))) (x y-0))- (defstrand resp 3 (n n) (h (exp (gen) (mul (rec x) y y-0 y-0))) (y x))- (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))- (pen-non-orig x y-0)- (uniq-gen x y-0)- (uniq-orig n)- (operation nonce-test (displaced 2 0 init 1) (exp (gen) (mul y x-0))- (0 1))- (traces- ((send (exp (gen) y-0)) (recv (exp (gen) (mul y y-0)))- (send (enc n (exp (gen) (mul y y-0 y-0)))))- ((recv (exp (gen) (mul (rec x) y y-0 y-0))) (send (exp (gen) x))- (recv (enc n (exp (gen) (mul y y-0 y-0))))))- (label 3)- (parent 1)- (seen 3)- (unrealized (1 0))- (origs (n (0 2)))- (comment "3 in cohort - 2 not yet seen"))-)
tst/dh_mim.tst view
@@ -1,296 +1,18884 @@ (herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman)) -(comment "CPSA 3.2.2")-(comment "All input read from dh_mim.scm")--(defprotocol dh_mim diffie-hellman- (defrole init- (vars (x expn) (h base) (n text))- (trace (send (exp (gen) x)) (recv h) (send (enc n (exp h x))))- (uniq-gen x))- (defrole resp- (vars (y expn) (h base) (n text))- (trace (recv h) (send (exp (gen) y)) (recv (enc n (exp h y))))- (uniq-gen y)- (ind-zero-in (y h)))- (comment "Diffie-hellman key exchange followed by an encryption"))--(defskeleton dh_mim- (vars (n text) (hx hy base) (x y expn))- (defstrand init 3 (n n) (h hy) (x x))- (defstrand resp 3 (n n) (h hx) (y y))- (precedes ((0 2) (1 2)))- (ind-zero-in (y hx))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (comment "Agreement on the encrypted text only")- (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))- ((recv hx) (send (exp (gen) y)) (recv (enc n (exp hx y)))))- (label 0)- (unrealized (1 2))- (origs (n (0 2)))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dh_mim- (vars (n text) (hy base) (y x expn))- (defstrand init 3 (n n) (h (exp hy y)) (x x))- (defstrand resp 3 (n n) (h (exp hy x)) (y y))- (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))- (ind-zero-in (y (exp hy x)))- (pen-non-orig y x)- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (displaced 2 0 init 3) (enc n (exp hx y-0))- (1 2))- (traces- ((send (exp (gen) x)) (recv (exp hy y))- (send (enc n (exp hy (mul y x)))))- ((recv (exp hy x)) (send (exp (gen) y))- (recv (enc n (exp hy (mul y x))))))- (label 1)- (parent 0)- (unrealized (0 1) (1 0))- (origs (n (0 2)))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dh_mim- (vars (n text) (hx hy base) (x y expn))- (defstrand init 3 (n n) (h hy) (x x))- (defstrand resp 3 (n n) (h hx) (y y))- (deflistener (exp hx y))- (precedes ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2)))- (ind-zero-in (y hx))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (operation encryption-test (added-listener (exp hx y))- (enc n (exp hx y)) (1 2))- (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))- ((recv hx) (send (exp (gen) y)) (recv (enc n (exp hx y))))- ((recv (exp hx y)) (send (exp hx y))))- (label 2)- (parent 0)- (unrealized (1 2) (2 0))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dh_mim- (vars (n text) (y x expn) (x-0 expr))- (defstrand init 3 (n n) (h (exp (gen) (mul y x-0))) (x x))- (defstrand resp 3 (n n) (h (exp (gen) (mul x x-0))) (y y))- (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))- (ind-zero-in (y (exp (gen) (mul x x-0))))- (pen-non-orig y x)- (uniq-gen y x)- (uniq-orig n)- (operation nonce-test (algebra-contracted (hy (exp (gen) x-0)))- (exp (gen) (mul x x-0)) (1 0) (exp (gen) x))- (traces- ((send (exp (gen) x)) (recv (exp (gen) (mul y x-0)))- (send (enc n (exp (gen) (mul y x x-0)))))- ((recv (exp (gen) (mul x x-0))) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y x x-0))))))- (label 3)- (parent 1)- (unrealized)- (shape)- (maps- ((0 1)- ((n n) (hx (exp (gen) (mul x x-0))) (hy (exp (gen) (mul y x-0)))- (x x) (y y))))- (origs (n (0 2))))--(defskeleton dh_mim- (vars (n text) (hy base) (x y expn) (y-0 expr))- (defstrand init 3 (n n) (h hy) (x x))- (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))- (deflistener (exp (gen) (mul y y-0)))- (precedes ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2)))- (ind-zero-in (y (exp (gen) y-0)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (operation nonce-test (algebra-contracted (hx (exp (gen) y-0)))- (exp (gen) (mul y y-0)) (2 0) (exp (gen) y))- (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))- ((recv (exp (gen) y-0)) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0)))))- (label 4)- (parent 2)- (unrealized (1 2))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dh_mim- (vars (n text) (x y expn) (y-0 expr))- (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))- (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))- (deflistener (exp (gen) (mul y y-0)))- (precedes ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (1 2)))- (ind-zero-in (y (exp (gen) y-0)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (operation nonce-test- (contracted (hy (exp (gen) (mul (rec x) y y-0)))) n (1 2)- (enc n (exp (gen) (mul y y-0))))- (traces- ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))- (send (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) y-0)) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0)))))- (label 5)- (parent 4)- (unrealized (0 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dh_mim- (vars (n text) (hy base) (x y expn) (y-0 expr))- (defstrand init 3 (n n) (h hy) (x x))- (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))- (deflistener (exp (gen) (mul y y-0)))- (deflistener (exp hy x))- (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))- ((3 1) (1 2)))- (ind-zero-in (y (exp (gen) y-0)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (operation nonce-test (added-listener (exp hy x)) n (1 2)- (enc n (exp hy x)))- (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))- ((recv (exp (gen) y-0)) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))- ((recv (exp hy x)) (send (exp hy x))))- (label 6)- (parent 4)- (unrealized (3 0))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dh_mim- (vars (n text) (y x expn) (y-0 expr))- (defstrand init 3 (n n) (h (exp (gen) (mul y y-0))) (x x))- (defstrand resp 3 (n n) (h (exp (gen) (mul x y-0))) (y y))- (deflistener (exp (gen) (mul y x y-0)))- (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0))- ((2 1) (1 2)))- (ind-zero-in (y (exp (gen) (mul x y-0))))- (pen-non-orig y x)- (uniq-gen y x)- (uniq-orig n)- (operation nonce-test- (algebra-contracted (x-0 x) (y-1 (mul x y-0)) (y-2 y-0))- (exp (gen) (mul y y-0)) (0 1))- (traces- ((send (exp (gen) x)) (recv (exp (gen) (mul y y-0)))- (send (enc n (exp (gen) (mul y x y-0)))))- ((recv (exp (gen) (mul x y-0))) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y x y-0)))))- ((recv (exp (gen) (mul y x y-0))) (send (exp (gen) (mul y x y-0)))))- (label 7)- (parent 5)- (unrealized (2 0))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dh_mim- (vars (n text) (x y expn) (y-0 x-0 expr))- (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))- (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))- (deflistener (exp (gen) (mul y y-0)))- (deflistener (exp (gen) (mul x x-0)))- (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))- ((3 1) (1 2)))- (ind-zero-in (y (exp (gen) y-0)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (operation nonce-test (algebra-contracted (hy (exp (gen) x-0)))- (exp (gen) (mul x x-0)) (3 0) (exp (gen) x))- (traces- ((send (exp (gen) x)) (recv (exp (gen) x-0))- (send (enc n (exp (gen) (mul x x-0)))))- ((recv (exp (gen) y-0)) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))- ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))- (label 8)- (parent 6)- (unrealized)- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dh_mim- (vars (n text) (y x expn) (y-0 expr))- (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x) y-0))) (x x))- (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))- (deflistener (exp (gen) (mul y y-0)))- (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0))- ((2 1) (1 2)))- (ind-zero-in (y (exp (gen) y-0)))- (pen-non-orig y x)- (uniq-gen y x)- (uniq-orig n)- (operation nonce-test- (algebra-contracted (x-0 x) (y-1 (mul (rec x) y-0)) (y-2 y-0))- (exp (gen) (mul y y-0)) (2 0))- (traces- ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x) y-0)))- (send (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) y-0)) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0)))))- (label 9)- (parent 7)- (seen 7)- (unrealized (0 1))- (comment "1 in cohort - 0 not yet seen"))--(defskeleton dh_mim- (vars (n text) (x y expn) (y-0 x-0 expr))- (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))- (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))- (deflistener (exp (gen) (mul x x-0)))- (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((2 1) (1 2)))- (ind-zero-in (y (exp (gen) y-0)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (operation generalization deleted (2 0))- (traces- ((send (exp (gen) x)) (recv (exp (gen) x-0))- (send (enc n (exp (gen) (mul x x-0)))))- ((recv (exp (gen) y-0)) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))- (label 10)- (parent 8)- (unrealized)- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dh_mim- (vars (n text) (x y expn) (y-0 x-0 expr))- (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))- (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))- (precedes ((0 2) (1 2)))- (ind-zero-in (y (exp (gen) y-0)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (operation generalization deleted (2 0))- (traces- ((send (exp (gen) x)) (recv (exp (gen) x-0))- (send (enc n (exp (gen) (mul x x-0)))))- ((recv (exp (gen) y-0)) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y y-0))))))- (label 11)- (parent 10)- (unrealized)- (shape)- (maps- ((0 1)- ((n n) (hx (exp (gen) y-0)) (hy (exp (gen) x-0)) (x x) (y y))))- (origs (n (0 2))))+(comment "CPSA 3.4.0")+(comment "All input read from dh_mim.scm")++(defprotocol dh_mim diffie-hellman+ (defrole init+ (vars (x expn) (h base) (n text))+ (trace (send (exp (gen) x)) (recv h) (send (enc n (exp h x))))+ (uniq-gen x))+ (defrole resp+ (vars (y expn) (h base) (n text))+ (trace (recv h) (send (exp (gen) y)) (recv (enc n (exp h y))))+ (uniq-gen y)+ (absent (y h)))+ (comment "Diffie-hellman key exchange followed by an encryption"))++(defskeleton dh_mim+ (vars (n text) (hx hy base) (x y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h hx) (y y))+ (precedes ((0 2) (1 2)))+ (absent (y hx))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (comment "Agreement on the encrypted text only")+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv hx) (send (exp (gen) y)) (recv (enc n (exp hx y)))))+ (label 0)+ (unrealized (1 2))+ (origs (n (0 2)))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x y expn))+ (defstrand init 3 (n n) (h (exp hy y)) (x x))+ (defstrand resp 3 (n n) (h (exp hy x)) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))+ (absent (y (exp hy x)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (operation encryption-test (displaced 2 0 init 3) (enc n (exp hx y-0))+ (1 2))+ (traces+ ((send (exp (gen) x)) (recv (exp hy y))+ (send (enc n (exp hy (mul x y)))))+ ((recv (exp hy x)) (send (exp (gen) y))+ (recv (enc n (exp hy (mul x y))))))+ (label 1)+ (parent 0)+ (unrealized (0 1) (1 0))+ (origs (n (0 2)))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hx hy base) (x y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h hx) (y y))+ (deflistener (exp hx y))+ (precedes ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2)))+ (absent (y hx))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (operation encryption-test (added-listener (exp hx y))+ (enc n (exp hx y)) (1 2))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv hx) (send (exp (gen) y)) (recv (enc n (exp hx y))))+ ((recv (exp hx y)) (send (exp hx y))))+ (label 2)+ (parent 0)+ (unrealized (1 2) (2 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (hy (exp (gen) (rec x)))) (gen)+ (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))))+ (label 3)+ (parent 1)+ (unrealized (0 1))+ (origs (n (0 2)))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))+ (absent (y (exp (gen) x)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul y x)))))+ ((recv (exp (gen) x)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x))))))+ (label 4)+ (parent 1)+ (unrealized)+ (shape)+ (maps+ ((0 1) ((n n) (hx (exp (gen) x)) (hy (exp (gen) y)) (x x) (y y))))+ (origs (n (0 2))))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 0) (1 0)))+ (absent (y (exp (gen) x-0)))+ (pen-non-orig x y)+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0))))) ((send (exp (gen) x-0))))+ (label 5)+ (parent 1)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (pen-non-orig x y)+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 6)+ (parent 1)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x y expn) (w expr))+ (defstrand init 3 (n n) (h (exp hy y)) (x x))+ (defstrand resp 3 (n n) (h (exp hy x)) (y y))+ (deflistener (cat (exp hy (mul x (rec w))) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y (exp hy x)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test+ (added-listener (cat (exp hy (mul x (rec w))) w)) (exp hy x) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp hy y))+ (send (enc n (exp hy (mul x y)))))+ ((recv (exp hy x)) (send (exp (gen) y))+ (recv (enc n (exp hy (mul x y)))))+ ((recv (cat (exp hy (mul x (rec w))) w))+ (send (cat (exp hy (mul x (rec w))) w))))+ (label 7)+ (parent 1)+ (unrealized (0 1) (2 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (precedes ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y))))+ (label 8)+ (parent 2)+ (unrealized (1 2))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hx hy base) (x y expn) (w expr))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h hx) (y y))+ (deflistener (exp hx y))+ (deflistener (cat (exp hx (mul y (rec w))) w))+ (precedes ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y hx))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp hx (mul y (rec w))) w)) (exp hx y) (2 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv hx) (send (exp (gen) y)) (recv (enc n (exp hx y))))+ ((recv (exp hx y)) (send (exp hx y)))+ ((recv (cat (exp hx (mul y (rec w))) w))+ (send (cat (exp hx (mul y (rec w))) w))))+ (label 9)+ (parent 2)+ (unrealized (1 2) (3 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (exp (gen) (mul (rec x) y)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) y (rec w))) w))))+ (label 10)+ (parent 3)+ (unrealized (2 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 0) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (pen-non-orig x y)+ (uniq-gen x y x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+ (exp (gen) (mul (rec x) y x-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0))))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))))+ (label 11)+ (parent 5)+ (unrealized (3 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) (mul (rec x) y y-0 (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (pen-non-orig x y)+ (uniq-gen x y y-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y y-0 (rec w))) w))+ (exp (gen) (mul (rec x) y y-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) (mul (rec x) y y-0 (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) y y-0 (rec w))) w))))+ (label 12)+ (parent 6)+ (unrealized (3 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y w))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (hy (exp (gen) (mul (rec x) w))))+ (gen) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w)))+ (send (enc n (exp (gen) (mul y w)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w)))))+ ((recv (cat (gen) w)) (send (cat (gen) w))))+ (label 13)+ (parent 7)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y w))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x))) (y y))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y (exp (gen) (mul w x))))+ (pen-non-orig y x)+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y w)))+ (send (enc n (exp (gen) (mul y w x)))))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w x)))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+ (label 14)+ (parent 7)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y w x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)))+ (absent (y (exp (gen) (mul w x-0))))+ (pen-non-orig x y)+ (precur (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w x-0)))+ (send (enc n (exp (gen) (mul y w x-0)))))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w x-0)))))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0))))+ (label 15)+ (parent 7)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y w y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)))+ (absent (y-0 h) (y (exp (gen) (mul w y-0))))+ (pen-non-orig x y)+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w y-0)))+ (send (enc n (exp (gen) (mul y w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w y-0)))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv h) (send (exp (gen) y-0))))+ (label 16)+ (parent 7)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (precedes ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (1 2)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (hy (exp (gen) (mul (rec x) y)))) n+ (1 2) (enc n (exp (gen) y)))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y))))+ (label 17)+ (parent 8)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp hy x))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener (exp hy x)) n (1 2)+ (enc n (exp hy x)))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp hy x)) (send (exp hy x))))+ (label 18)+ (parent 8)+ (unrealized (3 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (contracted (hx (exp (gen) w)) (y-0 y) (w (mul w y))) (gen) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+ (label 19)+ (parent 9)+ (unrealized (1 2) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (w expr) (x y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x))) (y y))+ (deflistener (exp (gen) (mul w x y)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)))+ (absent (y (exp (gen) (mul w x))))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x y)))))+ ((recv (exp (gen) (mul w x y))) (send (exp (gen) (mul w x y))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))))+ (label 20)+ (parent 9)+ (unrealized (1 2) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x-0))) (y y))+ (deflistener (exp (gen) (mul w x-0 y)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 0) (1 0)))+ (absent (y (exp (gen) (mul w x-0))))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x-0 y)))))+ ((recv (exp (gen) (mul w x-0 y))) (send (exp (gen) (mul w x-0 y))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0))))+ (label 21)+ (parent 9)+ (unrealized (1 2) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 22)+ (parent 9)+ (unrealized (1 2))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w y))) (y y-0))+ (deflistener (exp (gen) (mul w y y-0)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 0)))+ (absent (y h) (y-0 (exp (gen) (mul w y))))+ (pen-non-orig x y-0)+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y y-0)))))+ ((recv (exp (gen) (mul w y y-0))) (send (exp (gen) (mul w y y-0))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 23)+ (parent 9)+ (unrealized (1 2) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (cat (gen) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul (rec x) y)))+ (gen) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (cat (gen) (mul (rec x) y)))+ (send (cat (gen) (mul (rec x) y)))))+ (label 24)+ (parent 10)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x) (rec x))))))+ (label 25)+ (parent 10)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (0 1))+ ((3 0) (2 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 26)+ (parent 10)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))))+ (label 27)+ (parent 10)+ (unrealized (0 1) (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (0 1))+ ((3 1) (2 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig x y)+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 28)+ (parent 10)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul (rec x) y x-0)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 0) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (pen-non-orig x y)+ (uniq-gen x y x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (contracted (x-1 x) (y-0 y) (x-2 x-0) (w (mul (rec x) y x-0))) (gen)+ (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0))))) ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul (rec x) y x-0)))+ (send (cat (gen) (mul (rec x) y x-0)))))+ (label 29)+ (parent 11)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) x)) (y y))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 0) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) x)))+ (pen-non-orig y x-0)+ (precur (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-1) (3 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul y x (rec x-0))))+ (send (enc n (exp (gen) (mul y x)))))+ ((recv (exp (gen) x)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x))))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))))+ (label 30)+ (parent 11)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 0) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 2 init 1) (exp (gen) x-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0))))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y)))+ (send (cat (exp (gen) x-0) (mul (rec x) y)))))+ (label 31)+ (parent 11)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul (rec x) y x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 0) (1 0))+ ((3 1) (0 1)) ((4 0) (3 0)))+ (absent (y (exp (gen) x-0)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0))))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul (rec x) y x-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul (rec x) y x-0 (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 32)+ (parent 11)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 0) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0 y)))+ (send (enc n (exp (gen) (mul x-0 y)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x-0 y))))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0)))+ (send (cat (exp (gen) y) (mul (rec x) x-0)))))+ (label 33)+ (parent 11)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y x-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 0) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y-0 h) (y (exp (gen) x-0)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0))))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y x-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y x-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 34)+ (parent 11)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul (rec x) y y-0)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (pen-non-orig x y)+ (uniq-gen x y y-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (contracted (x-0 x) (y-1 y) (y-2 y-0) (w (mul (rec x) y y-0))) (gen)+ (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul (rec x) y y-0)))+ (send (cat (gen) (mul (rec x) y y-0)))))+ (label 35)+ (parent 12)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul y y-0 (rec x) (rec x))))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (pen-non-orig y x)+ (precur (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y y-0 (rec x))))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul y y-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y y-0 (rec x) (rec x))))))+ (label 36)+ (parent 12)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y y-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (3 0)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y y-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y y-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 37)+ (parent 12)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y)) (y y-0))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y-0 (exp (gen) y)) (y h))+ (pen-non-orig x y-0)+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y)))+ (send (cat (exp (gen) y-0) (mul (rec x) y)))))+ (label 38)+ (parent 12)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 2 resp 2) (exp (gen) y-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y)))+ (send (cat (exp (gen) y-0) (mul (rec x) y)))))+ (label 39)+ (parent 12)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (x y y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul (rec x) y y-0 (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y-1 h-0) (y-0 h) (y (exp (gen) y-0)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul (rec x) y y-0 (rec y-1))))+ (send (cat (exp (gen) y-1) (mul (rec x) y y-0 (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 40)+ (parent 12)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x)) (y y))+ (deflistener (cat (gen) x))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y (exp (gen) x)))+ (pen-non-orig x y)+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (exp (gen) x)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x y)))))+ ((recv (cat (gen) x)) (send (cat (gen) x))))+ (label 41)+ (parent 13)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y w))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y w)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w)))+ (send (enc n (exp (gen) (mul y w)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w)))))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))))+ (label 42)+ (parent 13)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y w))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x))) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))+ (absent (y (exp (gen) (mul w x))))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y w)))+ (send (enc n (exp (gen) (mul y w x)))))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w x))))))+ (label 43)+ (parent 14)+ (unrealized)+ (shape)+ (maps+ ((0 1)+ ((n n) (hx (exp (gen) (mul w x))) (hy (exp (gen) (mul y w))) (x x)+ (y y))))+ (origs (n (0 2))))++(defskeleton dh_mim+ (vars (n text) (x x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)))+ (absent (y (exp (gen) x)))+ (pen-non-orig x y)+ (precur (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (exp (gen) x)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x y)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 44)+ (parent 15)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr) (x-0 expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y w x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul w x-0))))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener+ (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y w x-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w x-0)))+ (send (enc n (exp (gen) (mul y w x-0)))))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w x-0)))))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))+ (label 45)+ (parent 15)+ (unrealized (4 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x)) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)))+ (absent (y-0 (exp (gen) x)) (y h))+ (pen-non-orig x y-0)+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (exp (gen) x)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x y-0)))))+ ((recv (cat (exp (gen) y) (mul x (rec y))))+ (send (cat (exp (gen) y) (mul x (rec y)))))+ ((recv h) (send (exp (gen) y))))+ (label 46)+ (parent 16)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y w y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) (mul w y-0))))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener+ (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y w y-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w y-0)))+ (send (enc n (exp (gen) (mul y w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w y-0)))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))+ (label 47)+ (parent 16)+ (unrealized (4 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (exp (gen) (mul (rec x) y)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) y (rec w))) w))))+ (label 48)+ (parent 17)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (hy (exp (gen) (rec x)))) (gen)+ (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen))))+ (label 49)+ (parent 18)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x)) (send (exp (gen) x))))+ (label 50)+ (parent 18)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 0) (0 1)) ((4 0) (3 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0))))+ (label 51)+ (parent 18)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0))+ ((1 1) (3 0)) ((2 1) (1 2)) ((3 1) (1 2)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y)) (send (exp (gen) y))))+ (label 52)+ (parent 18)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (0 1)) ((4 1) (3 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0))))+ (label 53)+ (parent 18)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x y expn) (w expr))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp hy x))+ (deflistener (cat (exp hy (mul x (rec w))) w))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (4 0))+ (operation nonce-test+ (added-listener (cat (exp hy (mul x (rec w))) w)) (exp hy x) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp hy x)) (send (exp hy x)))+ ((recv (cat (exp hy (mul x (rec w))) w))+ (send (cat (exp hy (mul x (rec w))) w))))+ (label 54)+ (parent 18)+ (unrealized (4 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (3 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv y) (send y)))+ (label 55)+ (parent 19)+ (unrealized (1 2) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (hy base) (w expr) (x y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x))) (y y))+ (deflistener (exp (gen) (mul w x y)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (3 0)))+ (absent (y (exp (gen) (mul w x))))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x y)))))+ ((recv (exp (gen) (mul w x y))) (send (exp (gen) (mul w x y))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+ (label 56)+ (parent 20)+ (unrealized (1 2) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x-0))) (y y))+ (deflistener (exp (gen) (mul w x-0 y)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (deflistener y)+ (precedes ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 0) (1 0)) ((5 1) (3 0)))+ (absent (y (exp (gen) (mul w x-0))))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x-0 y)))))+ ((recv (exp (gen) (mul w x-0 y))) (send (exp (gen) (mul w x-0 y))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0)))+ ((recv y) (send y)))+ (label 57)+ (parent 21)+ (unrealized (1 2) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (hy (exp (gen) (mul (rec x) w y))))+ n (1 2) (enc n (exp (gen) (mul w y))))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w y)))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 58)+ (parent 22)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp hy x))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener (exp hy x)) n (1 2)+ (enc n (exp hy x)))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp hy x)) (send (exp hy x))))+ (label 59)+ (parent 22)+ (unrealized (4 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w y))) (y y-0))+ (deflistener (exp (gen) (mul w y y-0)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 0)) ((5 1) (3 0)))+ (absent (y h) (y-0 (exp (gen) (mul w y))))+ (pen-non-orig x y-0)+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y y-0)))))+ ((recv (exp (gen) (mul w y y-0))) (send (exp (gen) (mul w y y-0))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))) ((recv y-0) (send y-0)))+ (label 60)+ (parent 23)+ (unrealized (1 2) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (0 1)) ((3 1) (2 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))+ (label 61)+ (parent 27)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test+ (contracted (x-0 x) (y-0 y) (w-0 (mul x w)) (w-1 (mul w y)) (y-1 y)+ (w (mul w y))) (gen) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+ (label 62)+ (parent 42)+ (unrealized (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x x))) (y y))+ (deflistener (cat (gen) (mul w x x)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) (mul w x x))))+ (pen-non-orig x y)+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y)))+ (send (enc n (exp (gen) (mul w x x y)))))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x x y)))))+ ((recv (cat (gen) (mul w x x))) (send (cat (gen) (mul w x x))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))))+ (label 63)+ (parent 42)+ (unrealized (0 1) (1 0) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (pen-non-orig x y)+ (precur (3 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (cat (gen) (mul x w x-0))) (send (cat (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0))))+ (label 64)+ (parent 42)+ (unrealized (0 1) (1 0) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (pen-non-orig x y)+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 65)+ (parent 42)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (pen-non-orig x y-0)+ (precur (3 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (gen) (mul x w y))) (send (cat (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 66)+ (parent 42)+ (unrealized (0 1) (1 0) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (y-0 y) (w-0 (mul x (rec x-0) w)) (x-2 x-0)+ (w-1 (mul w y)) (y-1 y) (w (mul w y))) (gen) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+ (label 67)+ (parent 45)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x-0 x-0))) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul w x-0 x-0))))+ (pen-non-orig x-0 y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-1) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul w x-0 x-0 y)))))+ ((recv (exp (gen) (mul w x-0 x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x-0 x-0 y)))))+ ((recv (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w x-0 x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))))+ (label 68)+ (parent 45)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w x-0))))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 3 init 1) (exp (gen) x-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))))+ (label 69)+ (parent 45)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x x-0 expn) (w expr) (x-1 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-1 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-1))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w y)))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 0) (2 0)))+ (absent (y (exp (gen) (mul x w x-1))))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1 y)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-1 y)))+ (send (enc n (exp (gen) (mul x w x-1 y)))))+ ((recv (exp (gen) (mul x w x-1))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-1 y)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w x-1))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul w y)))+ (send (cat (exp (gen) x-1) (mul w y)))) ((send (exp (gen) x-1))))+ (label 70)+ (parent 45)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 71)+ (parent 45)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x x-0 expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w y))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 72)+ (parent 45)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y h) (y-0 (exp (gen) (mul x w))))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y-0) (w-0 (mul x (rec y) w)) (y-2 y)+ (w-1 (mul w y-0)) (y-3 y-0) (w (mul w y-0))) (gen) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y-0)))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (gen) (mul w y-0))) (send (cat (gen) (mul w y-0)))))+ (label 73)+ (parent 47)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x x))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y h) (y-0 (exp (gen) (mul w x x))))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y-0)))+ (send (enc n (exp (gen) (mul w x x y-0)))))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w x x y-0)))))+ ((recv (cat (exp (gen) y) (mul (rec y) w x x)))+ (send (cat (exp (gen) y) (mul (rec y) w x x))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul w y-0)))+ (send (cat (exp (gen) x) (mul w y-0)))))+ (label 74)+ (parent 47)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w y-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 0) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w x-0))))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x y x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y-0)))+ (send (enc n (exp (gen) (mul x w x-0 y-0)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w x-0 y-0)))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w x-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul w y-0)))+ (send (cat (exp (gen) x-0) (mul w y-0))))+ ((send (exp (gen) x-0))))+ (label 75)+ (parent 47)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y-0 (exp (gen) (mul x w))) (y h))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y-0)))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))+ (label 76)+ (parent 47)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 3 resp 2) (exp (gen) y-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0)))))+ (label 77)+ (parent 47)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (x y expn) (w expr) (y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 y-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y-0))) (y y-1))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w y-1)))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (2 0)))+ (absent (y-0 h-0) (y h) (y-1 (exp (gen) (mul x w y-0))))+ (pen-non-orig x y-1)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 y-1)))+ (send (enc n (exp (gen) (mul x w y-0 y-1)))))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) y-1))+ (recv (enc n (exp (gen) (mul x w y-0 y-1)))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w y-1)))+ (send (cat (exp (gen) y-0) (mul w y-1))))+ ((recv h-0) (send (exp (gen) y-0))))+ (label 78)+ (parent 47)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (cat (gen) (mul (rec x) y)))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul (rec x) y)))+ (gen) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (gen) (mul (rec x) y)))+ (send (cat (gen) (mul (rec x) y)))))+ (label 79)+ (parent 48)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x) (rec x))))))+ (label 80)+ (parent 48)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (0 1)) ((4 0) (3 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 81)+ (parent 48)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))))+ (label 82)+ (parent 48)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 83)+ (parent 48)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (exp (gen) (mul (rec x) (rec w))) w))+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (4 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) (rec w))) w))+ (exp (gen) (rec x)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) (mul (rec x) (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) (rec w))) w))))+ (label 84)+ (parent 49)+ (unrealized (4 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) x))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((2 1) (1 2)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) x)) (send (exp (gen) x))))+ (label 85)+ (parent 50)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) x-0 (rec w))) w))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+ ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y x-0)+ (uniq-orig n)+ (precur (5 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) x-0 (rec w))) w))+ (exp (gen) (mul (rec x) x-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) (mul (rec x) x-0 (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) x-0 (rec w))) w))))+ (label 86)+ (parent 51)+ (unrealized (5 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (3 0)) ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (4 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (exp (gen) (mul (rec x) y)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) y (rec w))) w))))+ (label 87)+ (parent 52)+ (unrealized (4 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) (mul (rec x) y-0 (rec w))) w))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((4 1) (5 0))+ ((5 1) (0 1)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y y-0)+ (uniq-orig n)+ (precur (5 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y-0 (rec w))) w))+ (exp (gen) (mul (rec x) y-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) (mul (rec x) y-0 (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) y-0 (rec w))) w))))+ (label 88)+ (parent 53)+ (unrealized (5 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (4 0))+ (operation nonce-test (contracted (hy (exp (gen) (mul (rec x) w))))+ (gen) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w)))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (gen) w)) (send (cat (gen) w))))+ (label 89)+ (parent 54)+ (unrealized (0 1))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul w x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+ (label 90)+ (parent 54)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x-0)))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (0 1)) ((5 0) (4 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (4 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w x-0)))+ (send (enc n (exp (gen) (mul w x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) (mul w x-0))))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0))))+ (label 91)+ (parent 54)+ (unrealized (0 1))+ (comment "7 in cohort - 7 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w y)))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 92)+ (parent 54)+ (unrealized (0 1))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1)) ((5 1) (4 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig x y)+ (precur (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w y-0)))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv h) (send (exp (gen) y-0))))+ (label 93)+ (parent 54)+ (unrealized (0 1))+ (comment "7 in cohort - 7 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (exp (gen) x)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x y)))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+ (label 94)+ (parent 58)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))+ (exp (gen) (mul (rec x) w y)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w y)))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))))+ (label 95)+ (parent 58)+ (unrealized (4 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (hy (exp (gen) (rec x)))) (gen)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen))))+ (label 96)+ (parent 59)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x)) (send (exp (gen) x))))+ (label 97)+ (parent 59)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (0 1)) ((5 0) (4 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0))))+ (label 98)+ (parent 59)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y))))+ (label 99)+ (parent 59)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1)) ((5 1) (4 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0))))+ (label 100)+ (parent 59)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x expn) (w expr) (y expn) (w-0 expr))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp hy x))+ (deflistener (cat (exp hy (mul x (rec w-0))) w-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp hy (mul x (rec w-0))) w-0)) (exp hy x)+ (4 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp hy x)) (send (exp hy x)))+ ((recv (cat (exp hy (mul x (rec w-0))) w-0))+ (send (cat (exp hy (mul x (rec w-0))) w-0))))+ (label 101)+ (parent 59)+ (unrealized (5 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y (exp (gen) (mul x w))))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv y) (send y)))+ (label 102)+ (parent 62)+ (unrealized (2 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x x))) (y y))+ (deflistener (cat (gen) (mul w x x)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y (exp (gen) (mul w x x))))+ (pen-non-orig x y)+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y)))+ (send (enc n (exp (gen) (mul w x x y)))))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x x y)))))+ ((recv (cat (gen) (mul w x x))) (send (cat (gen) (mul w x x))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+ (label 103)+ (parent 63)+ (unrealized (1 0) (2 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)) ((5 1) (3 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (pen-non-orig x y)+ (precur (3 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (cat (gen) (mul x w x-0))) (send (cat (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0)))+ ((recv y) (send y)))+ (label 104)+ (parent 64)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w (rec x))) (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))))+ (label 105)+ (parent 65)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (x w) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w) w (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))))+ (label 106)+ (parent 65)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)))+ (absent (y (exp (gen) (mul x w))))+ (pen-non-orig x y)+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv x) (send x)))+ (label 107)+ (parent 65)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)) ((5 1) (3 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (pen-non-orig x y-0)+ (precur (3 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (gen) (mul x w y))) (send (cat (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))) ((recv y-0) (send y-0)))+ (label 108)+ (parent 66)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul x w))))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv y) (send y)))+ (label 109)+ (parent 67)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x-0 x-0))) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul w x-0 x-0))))+ (pen-non-orig x-0 y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul w x-0 x-0 y)))))+ ((recv (exp (gen) (mul w x-0 x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x-0 x-0 y)))))+ ((recv (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w x-0 x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((recv y) (send y)))+ (label 110)+ (parent 68)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((recv y) (send y)))+ (label 111)+ (parent 69)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x x-0 expn) (w expr) (x-1 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-1 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-1))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w y)))+ (defstrand init 1 (x x-1))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 0) (2 0)) ((6 1) (4 0)))+ (absent (y (exp (gen) (mul x w x-1))))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-1 y)))+ (send (enc n (exp (gen) (mul x w x-1 y)))))+ ((recv (exp (gen) (mul x w x-1))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-1 y)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w x-1))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul w y)))+ (send (cat (exp (gen) x-1) (mul w y)))) ((send (exp (gen) x-1)))+ ((recv y) (send y)))+ (label 112)+ (parent 70)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (pen-non-orig y x)+ (precur (4 0) (2 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x) x-0)))+ (send (enc n (exp (gen) (mul y x-0)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0)))))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0)))+ (send (cat (exp (gen) y) (mul (rec x) x-0)))))+ (label 113)+ (parent 71)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w (rec x-0))))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (x-0 (mul (rec x) w)) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w))+ (mul (rec x) w) (2 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w y (rec x-0))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (cat (exp (gen) x) (mul (rec x) w)))+ (send (cat (exp (gen) x) (mul (rec x) w)))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul w (rec x-0))))+ (send (cat (exp (gen) y) (mul w (rec x-0))))))+ (label 114)+ (parent 71)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w x-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (x-0 (mul x w)) (y (exp (gen) (mul x w x-0))))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w)) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y x-0)))+ (send (enc n (exp (gen) (mul x w y x-0)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y x-0)))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w x-0)))+ (send (cat (exp (gen) y) (mul w x-0)))))+ (label 115)+ (parent 71)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x x-0 expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (2 0)) ((6 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w y))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))) ((recv y-0) (send y-0)))+ (label 116)+ (parent 72)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w))))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y-0)))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (gen) (mul w y-0))) (send (cat (gen) (mul w y-0))))+ ((recv y-0) (send y-0)))+ (label 117)+ (parent 73)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x x))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul w x x))))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y-0)))+ (send (enc n (exp (gen) (mul w x x y-0)))))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w x x y-0)))))+ ((recv (cat (exp (gen) y) (mul (rec y) w x x)))+ (send (cat (exp (gen) y) (mul (rec y) w x x))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul w y-0)))+ (send (cat (exp (gen) x) (mul w y-0)))) ((recv y-0) (send y-0)))+ (label 118)+ (parent 74)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w y-0)))+ (defstrand init 1 (x x-0))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 0) (2 0)) ((6 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w x-0))))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x y x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y-0)))+ (send (enc n (exp (gen) (mul x w x-0 y-0)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w x-0 y-0)))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w x-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul w y-0)))+ (send (cat (exp (gen) x-0) (mul w y-0)))) ((send (exp (gen) x-0)))+ ((recv y-0) (send y-0)))+ (label 119)+ (parent 75)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) y-0)) (y-0 h))+ (pen-non-orig y x)+ (precur (4 0) (2 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x) y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) y-0)))+ (send (cat (exp (gen) y) (mul (rec x) y-0)))))+ (label 120)+ (parent 76)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (x (mul (rec y) w)) (y-0 (exp (gen) w)) (y h))+ (pen-non-orig y-0 x)+ (precur (4 0) (2 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w))+ (mul (rec y) w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (cat (exp (gen) y) (mul (rec y) w)))+ (send (cat (exp (gen) y) (mul (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x))))))+ (label 121)+ (parent 76)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) (mul x w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y-0 (mul x w)) (y (exp (gen) (mul x w y-0))) (y-0 h))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w)) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (exp (gen) y-0) (mul x w)))+ (send (cat (exp (gen) y-0) (mul x w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0)))))+ (label 122)+ (parent 76)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0)))) ((recv y-0) (send y-0)))+ (label 123)+ (parent 77)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (x y expn) (w expr) (y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 y-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y-0))) (y y-1))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w y-1)))+ (defstrand resp 2 (h h-0) (y y-0))+ (deflistener y-1)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (2 0)) ((6 1) (4 0)))+ (absent (y-0 h-0) (y h) (y-1 (exp (gen) (mul x w y-0))))+ (pen-non-orig x y-1)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-listener y-1) (mul w y-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 y-1)))+ (send (enc n (exp (gen) (mul x w y-0 y-1)))))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) y-1))+ (recv (enc n (exp (gen) (mul x w y-0 y-1)))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w y-1)))+ (send (cat (exp (gen) y-0) (mul w y-1))))+ ((recv h-0) (send (exp (gen) y-0))) ((recv y-1) (send y-1)))+ (label 124)+ (parent 78)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))+ (label 125)+ (parent 82)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (gen) (rec x)))+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (precur (4 0))+ (operation nonce-test (contracted (x-0 x) (w (rec x))) (gen) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x)))))+ (label 126)+ (parent 84)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x))))))+ (label 127)+ (parent 84)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (0 1)) ((5 0) (4 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 128)+ (parent 84)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (exp (gen) y) (mul (rec x) (rec y))))+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) y) (mul (rec x) (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) (rec y))))))+ (label 129)+ (parent 84)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 130)+ (parent 84)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (precedes ((0 2) (1 2)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))))+ (label 131)+ (parent 85)+ (unrealized)+ (shape)+ (maps ((0 1) ((n n) (hx (gen)) (hy (gen)) (x x) (y y))))+ (origs (n (0 2))))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul (rec x) x-0)))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+ ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x x-0)+ (uniq-orig n)+ (precur (5 0))+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (gen) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul (rec x) x-0)))+ (send (cat (gen) (mul (rec x) x-0)))))+ (label 132)+ (parent 86)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+ ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x-0)+ (precur (5 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-1) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x)) (send (exp (gen) x))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))))+ (label 133)+ (parent 86)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (rec x)))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+ ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (5 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 6 4 init 1) (exp (gen) x-1) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (rec x)))+ (send (cat (exp (gen) x-0) (rec x)))))+ (label 134)+ (parent 86)+ (unrealized (0 1) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+ ((5 1) (0 1)) ((6 0) (5 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (5 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 135)+ (parent 86)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2)) ((4 0) (3 0))+ ((4 0) (5 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (5 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))))+ (label 136)+ (parent 86)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+ ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 137)+ (parent 86)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y))+ (deflistener (cat (gen) (mul (rec x) y)))+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (3 0)) ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (4 0))+ (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul (rec x) y)))+ (gen) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (gen) (mul (rec x) y)))+ (send (cat (gen) (mul (rec x) y)))))+ (label 138)+ (parent 87)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (3 0)) ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x) (rec x))))))+ (label 139)+ (parent 87)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (3 0)) ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (0 1)) ((5 0) (4 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (4 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 140)+ (parent 87)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (3 0)) ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))))+ (label 141)+ (parent 87)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (3 0)) ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig x y)+ (precur (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 142)+ (parent 87)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul (rec x) y-0)))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((4 1) (5 0))+ ((5 1) (0 1)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x y-0)+ (uniq-orig n)+ (precur (5 0))+ (operation nonce-test+ (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (gen) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul (rec x) y-0)))+ (send (cat (gen) (mul (rec x) y-0)))))+ (label 143)+ (parent 88)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((4 1) (5 0))+ ((5 1) (0 1)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y-0 (rec x))))+ (send (enc n (exp (gen) y-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))))+ (label 144)+ (parent 88)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((4 1) (5 0))+ ((5 1) (0 1)) ((6 0) (5 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 145)+ (parent 88)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y-0))+ (deflistener (exp (gen) y-0))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0))+ ((4 1) (5 0)) ((5 1) (0 1)))+ (absent (y-0 (gen)) (y h))+ (pen-non-orig x y-0)+ (precur (5 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-1) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y-0)) (recv (enc n (exp (gen) y-0))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))))+ (label 146)+ (parent 88)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (rec x)))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((4 1) (5 0))+ ((5 1) (0 1)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 6 4 resp 2) (exp (gen) y-1) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (rec x)))+ (send (cat (exp (gen) y-0) (rec x)))))+ (label 147)+ (parent 88)+ (unrealized (0 1) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (y x y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((4 1) (5 0))+ ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (y-1 h-0) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1))))+ (send (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 148)+ (parent 88)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x))+ (deflistener (cat (gen) x))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (precur (4 0))+ (operation nonce-test (contracted (x-0 x) (w x)) (gen) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (gen) x)) (send (cat (gen) x))))+ (label 149)+ (parent 89)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) x)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (gen) (mul x x)))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x)))))+ (label 150)+ (parent 89)+ (unrealized (3 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (0 1)) ((5 0) (4 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0))))+ ((send (exp (gen) x-0))))+ (label 151)+ (parent 89)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (gen) (mul x y)))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y)))))+ (label 152)+ (parent 89)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (gen) (mul x y-0)))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1)) ((5 1) (4 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (gen) (mul x y-0))) (send (cat (gen) (mul x y-0))))+ ((recv h) (send (exp (gen) y-0))))+ (label 153)+ (parent 89)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) (mul (rec x) w (rec w-0))) w-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (5 0) (4 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w (rec w-0))) w-0))+ (exp (gen) (mul (rec x) w)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w)))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) (mul (rec x) w (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) w (rec w-0))) w-0))))+ (label 154)+ (parent 89)+ (unrealized (5 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul w x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+ (label 155)+ (parent 90)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (0 1)) ((5 0) (4 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w (mul x (rec x-0))) (x-2 x-0)) (gen) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 156)+ (parent 91)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x-0 x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) x-0 x-0)))+ (defstrand init 1 (x x))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (0 1)) ((5 0) (4 0)))+ (absent (y (gen)))+ (pen-non-orig y x-0)+ (precur (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-1) (0 1))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x-0 x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x-0 x-0))) (send (exp (gen) (mul x-0 x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) x-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) x-0 x-0))))+ ((send (exp (gen) x))))+ (label 157)+ (parent 91)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (0 1)) ((5 0) (4 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 6 5 init 1) (exp (gen) x-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x)))+ ((send (exp (gen) x-0))))+ (label 158)+ (parent 91)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-1)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))+ (defstrand init 1 (x x-0))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (0 1)) ((5 0) (4 0))+ ((6 0) (0 1)) ((6 0) (4 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-1))+ (send (enc n (exp (gen) (mul x x-1)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) x-1))))+ ((send (exp (gen) x-0))) ((send (exp (gen) x-1))))+ (label 159)+ (parent 91)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0))+ ((5 0) (0 1)) ((5 0) (4 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (4 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) y)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) y))))+ ((send (exp (gen) x-0))))+ (label 160)+ (parent 91)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y-0)))+ (defstrand init 1 (x x-0))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (0 1)) ((5 0) (4 0))+ ((6 1) (0 1)) ((6 1) (4 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) y-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) y-0))))+ ((send (exp (gen) x-0))) ((recv h) (send (exp (gen) y-0))))+ (label 161)+ (parent 91)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr) (x-0 expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x-0)))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (6 0) (4 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) w x-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w x-0)))+ (send (enc n (exp (gen) (mul w x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) (mul w x-0))))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0))))+ (label 162)+ (parent 91)+ (unrealized (6 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w (mul x (rec y))) (y-0 y))+ (gen) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul x (rec y))))+ (send (cat (exp (gen) y) (mul x (rec y))))))+ (label 163)+ (parent 92)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) x)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) x x)))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (exp (gen) y) (mul (rec y) x x)))+ (send (cat (exp (gen) y) (mul (rec y) x x)))))+ (label 164)+ (parent 92)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0))+ ((5 0) (0 1)) ((5 0) (4 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (4 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) x-0)))+ (send (cat (exp (gen) y) (mul x (rec y) x-0))))+ ((send (exp (gen) x-0))))+ (label 165)+ (parent 92)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+ (label 166)+ (parent 92)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0))+ ((5 1) (0 1)) ((5 1) (4 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig x y)+ (precur (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) y-0))))+ ((recv h) (send (exp (gen) y-0))))+ (label 167)+ (parent 92)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))+ (exp (gen) (mul (rec x) w y)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w y)))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))))+ (label 168)+ (parent 92)+ (unrealized (5 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1)) ((5 1) (4 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w (mul x (rec y-0))) (y-1 y-0)) (gen) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0))))+ (send (cat (exp (gen) y-0) (mul x (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 169)+ (parent 93)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) x)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) x x)))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1)) ((5 1) (4 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) x x)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) x x))))+ ((recv h) (send (exp (gen) y-0))))+ (label 170)+ (parent 93)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1)) ((5 1) (4 0))+ ((6 0) (0 1)) ((6 0) (4 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) x-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) x-0))))+ ((recv h) (send (exp (gen) y-0))) ((send (exp (gen) x-0))))+ (label 171)+ (parent 93)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y-0))+ (deflistener (exp (gen) y-0))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0))+ ((5 1) (0 1)) ((5 1) (4 0)))+ (absent (y-0 (gen)) (y h))+ (pen-non-orig x y-0)+ (precur (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (gen)) (send (exp (gen) y-0)) (recv (enc n (exp (gen) y-0))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 172)+ (parent 93)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) y-0) x))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1)) ((5 1) (4 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 6 5 resp 2) (exp (gen) y-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (exp (gen) y-0) x)) (send (cat (exp (gen) y-0) x)))+ ((recv h) (send (exp (gen) y-0))))+ (label 173)+ (parent 93)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (y x y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-1)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x y-1)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) y-1)))+ (defstrand resp 2 (h h) (y y-0))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1)) ((5 1) (4 0))+ ((6 1) (0 1)) ((6 1) (4 0)))+ (absent (y-1 h-0) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-1))+ (send (enc n (exp (gen) (mul x y-1)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x y-1))) (send (exp (gen) (mul x y-1))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) y-1)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) y-1))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 174)+ (parent 93)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) (mul (rec x) w y-0 (rec w-0))) w-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig x y)+ (precur (6 0) (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w y-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) w y-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w y-0)))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) (mul (rec x) w y-0 (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) w y-0 (rec w-0))) w-0))))+ (label 175)+ (parent 93)+ (unrealized (6 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-0 (mul x w)) (y-0 y) (w-1 (mul w y)) (y-1 y)+ (w (mul w y))) (gen) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+ (label 176)+ (parent 95)+ (unrealized (2 0) (3 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x x))) (y y))+ (deflistener (exp (gen) (mul w x x y)))+ (deflistener (cat (exp (gen) y) (mul w x x)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul w x x))))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y)))+ (send (enc n (exp (gen) (mul w x x y)))))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x x y)))))+ ((recv (exp (gen) (mul w x x y))) (send (exp (gen) (mul w x x y))))+ ((recv (cat (exp (gen) y) (mul w x x)))+ (send (cat (exp (gen) y) (mul w x x))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))))+ (label 177)+ (parent 95)+ (unrealized (0 1) (1 0) (2 0) (3 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (exp (gen) (mul x w x-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 0) (1 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0 y)))+ (send (exp (gen) (mul x w x-0 y))))+ ((recv (cat (exp (gen) y) (mul x w x-0)))+ (send (cat (exp (gen) y) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0))))+ (label 178)+ (parent 95)+ (unrealized (0 1) (1 0) (2 0) (3 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 179)+ (parent 95)+ (unrealized (2 0) (3 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (exp (gen) (mul x w y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (1 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (pen-non-orig x y-0)+ (precur (4 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y y-0)))+ (send (exp (gen) (mul x w y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w y)))+ (send (cat (exp (gen) y-0) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 180)+ (parent 95)+ (unrealized (0 1) (1 0) (2 0) (3 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (exp (gen) (mul (rec x) (rec w-0))) w-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) (rec w-0))) w-0))+ (exp (gen) (rec x)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) (mul (rec x) (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) (rec w-0))) w-0))))+ (label 181)+ (parent 96)+ (unrealized (5 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x)) (send (exp (gen) x))))+ (label 182)+ (parent 97)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) x-0 (rec w-0))) w-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) x-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) x-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) (mul (rec x) x-0 (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) x-0 (rec w-0))) w-0))))+ (label 183)+ (parent 98)+ (unrealized (6 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) (mul (rec x) y (rec w-0))) w-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) (mul (rec x) y (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) y (rec w-0))) w-0))))+ (label 184)+ (parent 99)+ (unrealized (5 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) (mul (rec x) y-0 (rec w-0))) w-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) (mul (rec x) y-0 (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) y-0 (rec w-0))) w-0))))+ (label 185)+ (parent 100)+ (unrealized (6 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (gen) w-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (hy (exp (gen) (mul (rec x) w-0))))+ (gen) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0)))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0))))+ (label 186)+ (parent 101)+ (unrealized (0 1))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) x) w-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0))))+ (label 187)+ (parent 101)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) w-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (0 1))+ ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0 x-0)))+ (send (enc n (exp (gen) (mul w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x-0))) (send (exp (gen) (mul w-0 x-0))))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0)))+ ((send (exp (gen) x-0))))+ (label 188)+ (parent 101)+ (unrealized (0 1))+ (comment "7 in cohort - 7 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) y) w-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0 y)))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0))))+ (label 189)+ (parent 101)+ (unrealized (0 1))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y expn) (w-0 expr)+ (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) w-0))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1))+ ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0 y-0)))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv h) (send (exp (gen) y-0))))+ (label 190)+ (parent 101)+ (unrealized (0 1))+ (comment "7 in cohort - 7 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))+ (label 191)+ (parent 105)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (x w) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))) ((recv x) (send x)))+ (label 192)+ (parent 106)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (4 0))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (x-0 (mul (rec x) w)) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w y (rec x-0))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (cat (exp (gen) x) (mul (rec x) w)))+ (send (cat (exp (gen) x) (mul (rec x) w)))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul w (rec x-0))))+ (send (cat (exp (gen) y) (mul w (rec x-0)))))+ ((recv x-0) (send x-0)))+ (label 193)+ (parent 114)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w x-0)))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (x-0 (mul x w)) (y (exp (gen) (mul x w x-0))))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y x-0)))+ (send (enc n (exp (gen) (mul x w y x-0)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y x-0)))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w x-0)))+ (send (cat (exp (gen) y) (mul w x-0)))) ((recv x-0) (send x-0)))+ (label 194)+ (parent 115)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (4 0))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (x (mul (rec y) w)) (y-0 (exp (gen) w)) (y h))+ (pen-non-orig y-0 x)+ (precur (4 0) (2 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (cat (exp (gen) y) (mul (rec y) w)))+ (send (cat (exp (gen) y) (mul (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x))))) ((recv x) (send x)))+ (label 195)+ (parent 121)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) (mul x w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (5 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y-0 (mul x w)) (y (exp (gen) (mul x w y-0))) (y-0 h))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (exp (gen) y-0) (mul x w)))+ (send (cat (exp (gen) y-0) (mul x w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0)))) ((recv y-0) (send y-0)))+ (label 196)+ (parent 122)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (gen) (rec x)))+ (deflistener x)+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (precur (4 0))+ (operation nonce-test (added-listener x) (rec x) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x))))+ ((recv x) (send x)))+ (label 197)+ (parent 126)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul (rec x) (rec x)) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 198)+ (parent 127)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (rec x)))+ (deflistener x)+ (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+ ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (5 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (rec x)))+ (send (cat (exp (gen) x-0) (rec x)))) ((recv x) (send x)))+ (label 199)+ (parent 134)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (3 0)) ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))+ (label 200)+ (parent 141)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (rec x)))+ (deflistener x)+ (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((4 1) (5 0))+ ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (rec x)))+ (send (cat (exp (gen) y-0) (rec x)))) ((recv x) (send x)))+ (label 201)+ (parent 147)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) x)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (gen) (mul x x)))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x x) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x))))+ ((recv x) (send x)))+ (label 202)+ (parent 150)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (precur (5 0) (4 0))+ (operation nonce-test (contracted (x-0 x) (w-0 (mul x w)) (w-1 w))+ (gen) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (gen) w)) (send (cat (gen) w))))+ (label 203)+ (parent 154)+ (unrealized (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x x)))+ (deflistener (cat (gen) (mul w x x)))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x)))+ (send (enc n (exp (gen) (mul w x x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) (mul w x x))))+ ((recv (cat (gen) (mul w x x))) (send (cat (gen) (mul w x x))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+ (label 204)+ (parent 154)+ (unrealized (3 0) (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 0) (4 0)) ((6 0) (5 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul x w x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))+ ((recv (cat (gen) (mul x w x-0))) (send (cat (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0))))+ (label 205)+ (parent 154)+ (unrealized (3 0) (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (gen) (mul x w y))) (send (cat (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 206)+ (parent 154)+ (unrealized (3 0) (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y-0)))+ (deflistener (cat (gen) (mul x w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 1) (4 0)) ((6 1) (5 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) (mul x w y-0))))+ ((recv (cat (gen) (mul x w y-0))) (send (cat (gen) (mul x w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv h) (send (exp (gen) y-0))))+ (label 207)+ (parent 154)+ (unrealized (3 0) (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((2 1) (1 2)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul w x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+ (label 208)+ (parent 155)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w-0 (mul x (rec x-0) w)) (x-2 x-0) (w-1 w))+ (gen) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) w)) (send (cat (gen) w))))+ (label 209)+ (parent 162)+ (unrealized (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x-0 x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) w))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-1) (6 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul w x-0 x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x-0 x-0)))+ (send (exp (gen) (mul w x-0 x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w x-0 x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w))))+ (label 210)+ (parent 162)+ (unrealized (3 0) (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) w))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 5 init 1) (exp (gen) x-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul x w x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w))))+ (label 211)+ (parent 162)+ (unrealized (3 0) (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn) (w expr) (x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-1))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) w))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (6 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-1)))+ (send (enc n (exp (gen) (mul x w x-1)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w x-1))) (send (exp (gen) (mul x w x-1))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w x-1))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) w)) (send (cat (exp (gen) x-1) w)))+ ((send (exp (gen) x-1))))+ (label 212)+ (parent 162)+ (unrealized (3 0) (4 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (6 0) (4 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 7 1 resp 2) (exp (gen) y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w y))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 213)+ (parent 162)+ (unrealized (3 0) (4 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x x-0 expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w y-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (6 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) (mul x w y-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w y-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w y-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv h) (send (exp (gen) y-0))))+ (label 214)+ (parent 162)+ (unrealized (3 0) (4 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-0 (mul x (rec y) w)) (y-0 y) (w-1 w)) (gen)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv (cat (gen) w)) (send (cat (gen) w))))+ (label 215)+ (parent 168)+ (unrealized (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x x)))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x)))+ (send (enc n (exp (gen) (mul w x x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) (mul w x x))))+ ((recv (cat (exp (gen) y) (mul (rec y) w x x)))+ (send (cat (exp (gen) y) (mul (rec y) w x x))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+ (label 216)+ (parent 168)+ (unrealized (3 0) (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 0) (4 0)) ((6 0) (5 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul x w x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w x-0))))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0))))+ (label 217)+ (parent 168)+ (unrealized (3 0) (4 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 218)+ (parent 168)+ (unrealized (3 0) (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (4 0)) ((6 1) (5 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) (mul x w y-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv h) (send (exp (gen) y-0))))+ (label 219)+ (parent 168)+ (unrealized (3 0) (4 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-0 (mul x (rec y-0) w)) (y-1 y-0) (w-1 w))+ (gen) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) w)) (send (cat (gen) w))))+ (label 220)+ (parent 175)+ (unrealized (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y y-0 expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x x)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w x x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x)))+ (send (enc n (exp (gen) (mul w x x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) (mul w x x))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w x x)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w x x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+ (label 221)+ (parent 175)+ (unrealized (3 0) (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (6 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul x w x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w x-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w x-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0))))+ (label 222)+ (parent 175)+ (unrealized (3 0) (4 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y-0))+ (deflistener (exp (gen) y-0))+ (deflistener (exp (gen) (mul x w y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (4 0)) ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 (gen)) (y h))+ (pen-non-orig x y-0)+ (precur (6 0) (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 1 resp 2) (exp (gen) y-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))))+ ((recv (gen)) (send (exp (gen) y-0)) (recv (enc n (exp (gen) y-0))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) (mul x w y-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))+ (label 223)+ (parent 175)+ (unrealized (3 0) (4 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) w))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 5 resp 2) (exp (gen) y-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) (mul x w y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w)))+ (send (cat (exp (gen) y-0) (mul x w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))+ (label 224)+ (parent 175)+ (unrealized (3 0) (4 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (y x y-0 expn) (w expr) (y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-1))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y-1)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w y-1)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) w))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (6 0)))+ (absent (y-1 h-0) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-1)))+ (send (enc n (exp (gen) (mul x w y-1)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y-1))) (send (exp (gen) (mul x w y-1))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w y-1)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w y-1))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) w)) (send (cat (exp (gen) y-1) w)))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 225)+ (parent 175)+ (unrealized (3 0) (4 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (5 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul x w))))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv y) (send y)))+ (label 226)+ (parent 176)+ (unrealized (2 0) (3 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x x))) (y y))+ (deflistener (exp (gen) (mul w x x y)))+ (deflistener (cat (exp (gen) y) (mul w x x)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (5 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul w x x))))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y)))+ (send (enc n (exp (gen) (mul w x x y)))))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x x y)))))+ ((recv (exp (gen) (mul w x x y))) (send (exp (gen) (mul w x x y))))+ ((recv (cat (exp (gen) y) (mul w x x)))+ (send (cat (exp (gen) y) (mul w x x))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+ (label 227)+ (parent 177)+ (unrealized (1 0) (2 0) (3 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (exp (gen) (mul x w x-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (deflistener y)+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (6 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 0) (1 0))+ ((6 1) (4 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0 y)))+ (send (exp (gen) (mul x w x-0 y))))+ ((recv (cat (exp (gen) y) (mul x w x-0)))+ (send (cat (exp (gen) y) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0)))+ ((recv y) (send y)))+ (label 228)+ (parent 178)+ (unrealized (1 0) (2 0) (3 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (4 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w (rec x))) (one) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))))+ (label 229)+ (parent 179)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (x w) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (4 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w) w (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))))+ (label 230)+ (parent 179)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1))+ ((5 1) (3 0)))+ (absent (y (exp (gen) (mul x w))))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv x) (send x)))+ (label 231)+ (parent 179)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (exp (gen) (mul x w y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (6 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (1 0))+ ((6 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (pen-non-orig x y-0)+ (precur (4 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y y-0)))+ (send (exp (gen) (mul x w y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w y)))+ (send (cat (exp (gen) y-0) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))) ((recv y-0) (send y-0)))+ (label 232)+ (parent 180)+ (unrealized (1 0) (2 0) (3 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (rec x)))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w-0 (rec x))) (gen) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x)))))+ (label 233)+ (parent 181)+ (unrealized (0 1) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x))))))+ (label 234)+ (parent 181)+ (unrealized (0 1) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1))+ ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 235)+ (parent 181)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (exp (gen) y) (mul (rec x) (rec y))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) y) (mul (rec x) (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) (rec y))))))+ (label 236)+ (parent 181)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1))+ ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 237)+ (parent 181)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) x))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((2 1) (1 2)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) x)) (send (exp (gen) x))))+ (label 238)+ (parent 182)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul (rec x) x-0)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w-0 (mul (rec x) x-0))) (gen) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul (rec x) x-0)))+ (send (cat (gen) (mul (rec x) x-0)))))+ (label 239)+ (parent 183)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (6 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-1) (6 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x)) (send (exp (gen) x))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))))+ (label 240)+ (parent 183)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (rec x)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 5 init 1) (exp (gen) x-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (rec x)))+ (send (cat (exp (gen) x-0) (rec x)))))+ (label 241)+ (parent 183)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 0) (6 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 242)+ (parent 183)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 7 1 resp 2) (exp (gen) y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))))+ (label 243)+ (parent 183)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 244)+ (parent 183)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (gen) (mul (rec x) y)))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-0 y) (w-0 (mul (rec x) y))) (gen) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (gen) (mul (rec x) y)))+ (send (cat (gen) (mul (rec x) y)))))+ (label 245)+ (parent 184)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x) (rec x))))))+ (label 246)+ (parent 184)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (0 1)) ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 247)+ (parent 184)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))))+ (label 248)+ (parent 184)+ (unrealized (0 1) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 249)+ (parent 184)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul (rec x) y-0)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y-0) (w-0 (mul (rec x) y-0))) (gen) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul (rec x) y-0)))+ (send (cat (gen) (mul (rec x) y-0)))))+ (label 250)+ (parent 185)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y-0 (rec x))))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))))+ (label 251)+ (parent 185)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 0) (6 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 252)+ (parent 185)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)) ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 (exp (gen) w)) (y h))+ (pen-non-orig x y-0)+ (precur (6 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 1 resp 2) (exp (gen) y-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))))+ (label 253)+ (parent 185)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (rec x)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 5 resp 2) (exp (gen) y-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (rec x)))+ (send (cat (exp (gen) y-0) (rec x)))))+ (label 254)+ (parent 185)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y-1 h-0) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1))))+ (send (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 255)+ (parent 185)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x))+ (deflistener (cat (gen) x))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w-0 x)) (gen) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (gen) x)) (send (cat (gen) x))))+ (label 256)+ (parent 186)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) x)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (gen) (mul x x)))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x)))))+ (label 257)+ (parent 186)+ (unrealized (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (0 1))+ ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0))))+ ((send (exp (gen) x-0))))+ (label 258)+ (parent 186)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (gen) (mul x y)))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y)))))+ (label 259)+ (parent 186)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (gen) (mul x y-0)))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1))+ ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (gen) (mul x y-0))) (send (cat (gen) (mul x y-0))))+ ((recv h) (send (exp (gen) y-0))))+ (label 260)+ (parent 186)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 w-1 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (gen) w-0))+ (deflistener (cat (exp (gen) (mul (rec x) w-0 (rec w-1))) w-1))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w-0 (rec w-1))) w-1))+ (exp (gen) (mul (rec x) w-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0)))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0)))+ ((recv (cat (exp (gen) (mul (rec x) w-0 (rec w-1))) w-1))+ (send (cat (exp (gen) (mul (rec x) w-0 (rec w-1))) w-1))))+ (label 261)+ (parent 186)+ (unrealized (6 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) x) w-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0))))+ (label 262)+ (parent 187)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (0 1))+ ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w-0 (mul x (rec x-0))) (x-2 x-0)) (gen) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 263)+ (parent 188)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x-0 x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) x-0 x-0)))+ (defstrand init 1 (x x))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (0 1))+ ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-1) (0 1))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x-0 x-0))) (send (exp (gen) (mul x-0 x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) x-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) x-0 x-0))))+ ((send (exp (gen) x))))+ (label 264)+ (parent 188)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (0 1))+ ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 6 init 1) (exp (gen) x-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x)))+ ((send (exp (gen) x-0))))+ (label 265)+ (parent 188)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-1)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))+ (defstrand init 1 (x x-0))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (0 1))+ ((6 0) (5 0)) ((7 0) (0 1)) ((7 0) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-1))+ (send (enc n (exp (gen) (mul x x-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) x-1))))+ ((send (exp (gen) x-0))) ((send (exp (gen) x-1))))+ (label 266)+ (parent 188)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)) ((6 0) (0 1)) ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 7 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) y)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) y))))+ ((send (exp (gen) x-0))))+ (label 267)+ (parent 188)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y-0)))+ (defstrand init 1 (x x-0))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (0 1))+ ((6 0) (5 0)) ((7 1) (0 1)) ((7 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) y-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) y-0))))+ ((send (exp (gen) x-0))) ((recv h) (send (exp (gen) y-0))))+ (label 268)+ (parent 188)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 expr) (x-0 expn)+ (w-1 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) w-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) w-0 x-0 (rec w-1))) w-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener+ (cat (exp (gen) (mul (rec x) w-0 x-0 (rec w-1))) w-1))+ (exp (gen) (mul (rec x) w-0 x-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0 x-0)))+ (send (enc n (exp (gen) (mul w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x-0))) (send (exp (gen) (mul w-0 x-0))))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) (mul (rec x) w-0 x-0 (rec w-1))) w-1))+ (send (cat (exp (gen) (mul (rec x) w-0 x-0 (rec w-1))) w-1))))+ (label 269)+ (parent 188)+ (unrealized (7 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-0 (mul x (rec y))) (y-0 y)) (gen) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul x (rec y))))+ (send (cat (exp (gen) y) (mul x (rec y))))))+ (label 270)+ (parent 189)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) x)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) x x)))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (exp (gen) y) (mul (rec y) x x)))+ (send (cat (exp (gen) y) (mul (rec y) x x)))))+ (label 271)+ (parent 189)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)) ((6 0) (0 1)) ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) x-0)))+ (send (cat (exp (gen) y) (mul x (rec y) x-0))))+ ((send (exp (gen) x-0))))+ (label 272)+ (parent 189)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+ (label 273)+ (parent 189)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)) ((6 1) (0 1)) ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) y-0))))+ ((recv h) (send (exp (gen) y-0))))+ (label 274)+ (parent 189)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w w-0 expr) (y expn) (w-1 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) y) w-0))+ (deflistener (cat (exp (gen) (mul (rec x) w-0 y (rec w-1))) w-1))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w-0 y (rec w-1))) w-1))+ (exp (gen) (mul (rec x) w-0 y)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0 y)))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0)))+ ((recv (cat (exp (gen) (mul (rec x) w-0 y (rec w-1))) w-1))+ (send (cat (exp (gen) (mul (rec x) w-0 y (rec w-1))) w-1))))+ (label 275)+ (parent 189)+ (unrealized (6 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1))+ ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-0 (mul x (rec y-0))) (y-1 y-0)) (gen) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0))))+ (send (cat (exp (gen) y-0) (mul x (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 276)+ (parent 190)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) x)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) x x)))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1))+ ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) x x)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) x x))))+ ((recv h) (send (exp (gen) y-0))))+ (label 277)+ (parent 190)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1))+ ((6 1) (5 0)) ((7 0) (0 1)) ((7 0) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) x-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) x-0))))+ ((recv h) (send (exp (gen) y-0))) ((send (exp (gen) x-0))))+ (label 278)+ (parent 190)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)) ((6 1) (0 1)) ((6 1) (5 0)))+ (absent (y-0 (exp (gen) w)) (y h))+ (pen-non-orig x y-0)+ (precur (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 1 resp 2) (exp (gen) y-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 279)+ (parent 190)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) y-0) x))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1))+ ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 6 resp 2) (exp (gen) y-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (exp (gen) y-0) x)) (send (cat (exp (gen) y-0) x)))+ ((recv h) (send (exp (gen) y-0))))+ (label 280)+ (parent 190)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-1)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y-1)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) y-1)))+ (defstrand resp 2 (h h) (y y-0))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1))+ ((6 1) (5 0)) ((7 1) (0 1)) ((7 1) (5 0)))+ (absent (y-1 h-0) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-1))+ (send (enc n (exp (gen) (mul x y-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y-1))) (send (exp (gen) (mul x y-1))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) y-1)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) y-1))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 281)+ (parent 190)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y expn) (w-0 expr)+ (y-0 expn) (w-1 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) w-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) (mul (rec x) w-0 y-0 (rec w-1))) w-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener+ (cat (exp (gen) (mul (rec x) w-0 y-0 (rec w-1))) w-1))+ (exp (gen) (mul (rec x) w-0 y-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0 y-0)))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) (mul (rec x) w-0 y-0 (rec w-1))) w-1))+ (send (cat (exp (gen) (mul (rec x) w-0 y-0 (rec w-1))) w-1))))+ (label 282)+ (parent 190)+ (unrealized (7 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (gen) (rec x)))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (precur (5 0) (4 0))+ (operation nonce-test (contracted (x-0 x) (w (rec x))) (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x)))))+ (label 283)+ (parent 203)+ (unrealized (0 1) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (gen) (mul w (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (x w) (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (precur (5 0) (4 0))+ (operation nonce-test (added-absence x w) w (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (gen) (mul w (rec x))))+ (send (cat (gen) (mul w (rec x))))))+ (label 284)+ (parent 203)+ (unrealized (0 1) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (gen) w))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 1) (4 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (precur (5 0) (4 0))+ (operation nonce-test (added-listener x) (mul x w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (gen) w)) (send (cat (gen) w))) ((recv x) (send x)))+ (label 285)+ (parent 203)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (w (mul (rec x) (rec x))) (x-0 x))+ (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x))))))+ (label 286)+ (parent 204)+ (unrealized (0 1) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (x w) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w) w (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w (rec x) (rec x))))))+ (label 287)+ (parent 204)+ (unrealized (0 1) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x x)))+ (deflistener (cat (gen) (mul w x x)))+ (deflistener (cat (exp (gen) x) w))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 1) (4 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w x x) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x)))+ (send (enc n (exp (gen) (mul w x x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) (mul w x x))))+ ((recv (cat (gen) (mul w x x))) (send (cat (gen) (mul w x x))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w)))+ ((recv x) (send x)))+ (label 288)+ (parent 204)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 0) (4 0)) ((6 0) (5 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w (mul (rec x) (rec x-0))) (x-2 x-0)) (one)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 289)+ (parent 205)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (defstrand init 1 (x x))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 0) (4 0)) ((6 0) (5 0)))+ (absent (x-0 (mul w x)) (y (gen)))+ (pen-non-orig y x-0)+ (precur (5 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul w x)) (mul w x) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x (rec x-0))))+ (send (enc n (exp (gen) (mul w x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (gen) (mul w x))) (send (cat (gen) (mul w x))))+ ((recv (cat (exp (gen) x) (mul w (rec x-0))))+ (send (cat (exp (gen) x) (mul w (rec x-0)))))+ ((send (exp (gen) x))))+ (label 290)+ (parent 205)+ (unrealized (0 1) (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 0) (4 0)) ((6 0) (5 0)))+ (absent (x-0 (mul x w)) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w)) (mul x w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 291)+ (parent 205)+ (unrealized (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) y) (mul (rec x) (rec y))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w (mul (rec x) (rec y))) (y-0 y)) (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) y) (mul (rec x) (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) (rec y))))))+ (label 292)+ (parent 206)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (x (mul w y)) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul w y)) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))))+ (label 293)+ (parent 206)+ (unrealized (0 1) (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul w (rec y))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (mul x w)) (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w)) (mul x w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul w (rec y))))+ (send (cat (exp (gen) y) (mul w (rec y))))))+ (label 294)+ (parent 206)+ (unrealized (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 1) (4 0)) ((6 1) (5 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w (mul (rec x) (rec y-0))) (y-1 y-0)) (one)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) y-0) (mul (rec x) (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 295)+ (parent 207)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 1) (4 0)) ((6 1) (5 0)))+ (absent (x (mul w y-0)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul w y-0)) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (gen) (mul w y-0))) (send (cat (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 296)+ (parent 207)+ (unrealized (0 1) (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y-0) (mul w (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 1) (4 0)) ((6 1) (5 0)))+ (absent (y-0 (mul x w)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w)) (mul x w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) y-0) (mul w (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 297)+ (parent 207)+ (unrealized (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (precedes ((0 2) (1 2)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul w x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))))+ (label 298)+ (parent 208)+ (unrealized)+ (shape)+ (maps ((0 1) ((n n) (hx (gen)) (hy (exp (gen) w)) (x x) (y y))))+ (origs (n (0 2))))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul (rec x) x-0)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul (rec x) x-0)))+ (send (cat (gen) (mul (rec x) x-0)))))+ (label 299)+ (parent 209)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (gen) (mul w (rec x-0))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (x-0 (mul (rec x) w)) (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w))+ (mul (rec x) w) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w (rec x-0))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) x) (mul (rec x) w)))+ (send (cat (exp (gen) x) (mul (rec x) w)))) ((send (exp (gen) x)))+ ((recv (cat (gen) (mul w (rec x-0))))+ (send (cat (gen) (mul w (rec x-0))))))+ (label 300)+ (parent 209)+ (unrealized (0 1) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w x-0)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (x-0 (mul x w)) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w)) (mul x w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul x w x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul w x-0))) (send (cat (gen) (mul w x-0)))))+ (label 301)+ (parent 209)+ (unrealized (3 0) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w (mul x (rec x-0) (rec x-0))) (x-2 x-0)) (one)+ (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))))+ (label 302)+ (parent 210)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x x x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w x x)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x) (mul w x-0)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (x-0 (mul w x x)) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul w x x)) (mul w x x)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x x-0)))+ (send (enc n (exp (gen) (mul w x x x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x x x-0)))+ (send (exp (gen) (mul w x x x-0))))+ ((recv (cat (exp (gen) x-0) (mul w x x)))+ (send (cat (exp (gen) x-0) (mul w x x)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x) (mul w x-0)))+ (send (cat (exp (gen) x) (mul w x-0)))))+ (label 303)+ (parent 210)+ (unrealized (0 1) (3 0) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (x-0 (mul (rec x) w)) (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w))+ (mul (rec x) w) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w (rec x-0))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) x) (mul (rec x) w)))+ (send (cat (exp (gen) x) (mul (rec x) w)))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0))))))+ (label 304)+ (parent 210)+ (unrealized (0 1) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (rec x-0)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (contracted (x-1 x-0) (w (rec x-0))) (one)+ (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (rec x-0)))+ (send (cat (exp (gen) x) (rec x-0)))))+ (label 305)+ (parent 211)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) w))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (x-0 w) (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 w) w (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x (rec x-0))))+ (send (enc n (exp (gen) (mul w x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w)))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (mul w (rec x-0))))+ (send (cat (exp (gen) x) (mul w (rec x-0))))))+ (label 306)+ (parent 211)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) w))+ (deflistener x)+ (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul x w x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((recv x) (send x)))+ (label 307)+ (parent 211)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (6 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-2 x) (x-3 x-0) (w (mul (rec x) x-0 (rec x-1)))+ (x-4 x-1)) (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 308)+ (parent 212)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 (rec x-1)))) (x x-1))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-1))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (6 0)))+ (absent (x-1 (mul (rec x) w x-0)) (y (gen)))+ (pen-non-orig y x-1)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-absence x-1 (mul (rec x) w x-0))+ (mul (rec x) w x-0) (4 0))+ (traces+ ((send (exp (gen) x-1)) (recv (exp (gen) (mul w x-0 (rec x-1))))+ (send (enc n (exp (gen) (mul w x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) (mul w x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-1))))+ (send (cat (exp (gen) x-0) (mul w (rec x-1)))))+ ((send (exp (gen) x-0))))+ (label 309)+ (parent 212)+ (unrealized (0 1) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 x-1))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w x-0 x-1)))+ (deflistener (cat (exp (gen) x-1) (mul x w x-0)))+ (defstrand init 1 (x x-1))+ (deflistener (cat (exp (gen) x-0) (mul w x-1)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (6 0)))+ (absent (x-1 (mul x w x-0)) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-absence x-1 (mul x w x-0)) (mul x w x-0)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 x-1)))+ (send (enc n (exp (gen) (mul x w x-0 x-1)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w x-0 x-1)))+ (send (exp (gen) (mul x w x-0 x-1))))+ ((recv (cat (exp (gen) x-1) (mul x w x-0)))+ (send (cat (exp (gen) x-1) (mul x w x-0))))+ ((send (exp (gen) x-1)))+ ((recv (cat (exp (gen) x-0) (mul w x-1)))+ (send (cat (exp (gen) x-0) (mul w x-1))))+ ((send (exp (gen) x-0))))+ (label 310)+ (parent 212)+ (unrealized (0 1) (3 0) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn) (w expr) (x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (6 0)))+ (absent (x-1 (mul x (rec x-0) w)) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-absence x-1 (mul x (rec x-0) w))+ (mul x (rec x-0) w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul w (rec x-1))))+ (send (cat (exp (gen) x-1) (mul w (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 311)+ (parent 212)+ (unrealized (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (6 0) (4 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0 (rec y))) (y-0 y))+ (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))))+ (label 312)+ (parent 213)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w y)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w (rec x-0))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (x-0 (mul (rec x) w y)) (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w y))+ (mul (rec x) w y) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w y (rec x-0))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) x) (mul (rec x) w y)))+ (send (cat (exp (gen) x) (mul (rec x) w y))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul w (rec x-0))))+ (send (cat (exp (gen) y) (mul w (rec x-0))))))+ (label 313)+ (parent 213)+ (unrealized (0 1) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w x-0)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (x-0 (mul x w y)) (y (gen)))+ (pen-non-orig x y)+ (precur (6 0) (4 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w y)) (mul x w y)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y x-0)))+ (send (enc n (exp (gen) (mul x w y x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y x-0)))+ (send (exp (gen) (mul x w y x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w y)))+ (send (cat (exp (gen) x-0) (mul x w y)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w x-0)))+ (send (cat (exp (gen) y) (mul w x-0)))))+ (label 314)+ (parent 213)+ (unrealized (0 1) (3 0) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w (rec y))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (mul x (rec x-0) w)) (y (gen)))+ (pen-non-orig x y)+ (precur (6 0) (4 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x (rec x-0) w))+ (mul x (rec x-0) w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w (rec y))))+ (send (cat (exp (gen) y) (mul w (rec y))))))+ (label 315)+ (parent 213)+ (unrealized (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (6 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0 (rec y-0)))+ (y-1 y-0)) (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 316)+ (parent 214)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x expn) (w expr) (y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w y-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (6 0)))+ (absent (x-0 (mul (rec x) w y-0)) (y-0 h) (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w y-0))+ (mul (rec x) w y-0) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w y-0 (rec x-0))))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w y-0)))+ (send (cat (exp (gen) x) (mul (rec x) w y-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y-0) (mul w (rec x-0))))+ (send (cat (exp (gen) y-0) (mul w (rec x-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 317)+ (parent 214)+ (unrealized (0 1) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x expn) (w expr) (y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w y-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul w x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (6 0)))+ (absent (x-0 (mul x w y-0)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w y-0)) (mul x w y-0)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 x-0)))+ (send (enc n (exp (gen) (mul x w y-0 x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y-0 x-0)))+ (send (exp (gen) (mul x w y-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w y-0)))+ (send (cat (exp (gen) x-0) (mul x w y-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul w x-0)))+ (send (cat (exp (gen) y-0) (mul w x-0))))+ ((recv h) (send (exp (gen) y-0))))+ (label 318)+ (parent 214)+ (unrealized (0 1) (3 0) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x x-0 expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul w (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (6 0)))+ (absent (y-0 (mul x (rec x-0) w)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x (rec x-0) w))+ (mul x (rec x-0) w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul w (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 319)+ (parent 214)+ (unrealized (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (gen) (mul (rec x) y)))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul (rec x) y)))+ (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (gen) (mul (rec x) y)))+ (send (cat (gen) (mul (rec x) y)))))+ (label 320)+ (parent 215)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (deflistener (cat (gen) (mul w (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (x (mul (rec y) w)) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w))+ (mul (rec y) w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) y) (mul (rec y) w)))+ (send (cat (exp (gen) y) (mul (rec y) w))))+ ((recv (cat (gen) (mul w (rec x))))+ (send (cat (gen) (mul w (rec x))))))+ (label 321)+ (parent 215)+ (unrealized (0 1) (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (mul x w)) (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w)) (mul x w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+ (label 322)+ (parent 215)+ (unrealized (3 0) (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test+ (contracted (y-0 y) (w (mul y (rec x) (rec x))) (x-0 x)) (one)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x) (rec x))))))+ (label 323)+ (parent 216)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x x y)))+ (deflistener (cat (exp (gen) y) (mul w x x)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (mul w x x)) (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul w x x)) (mul w x x) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y)))+ (send (enc n (exp (gen) (mul w x x y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x x y))) (send (exp (gen) (mul w x x y))))+ ((recv (cat (exp (gen) y) (mul w x x)))+ (send (cat (exp (gen) y) (mul w x x))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))))+ (label 324)+ (parent 216)+ (unrealized (0 1) (3 0) (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (deflistener (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (x (mul (rec y) w)) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w))+ (mul (rec y) w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) y) (mul (rec y) w)))+ (send (cat (exp (gen) y) (mul (rec y) w))))+ ((recv (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w (rec x) (rec x))))))+ (label 325)+ (parent 216)+ (unrealized (0 1) (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 0) (4 0)) ((6 0) (5 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (y-0 y) (w (mul (rec x) y (rec x-0))) (x-2 x-0))+ (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 326)+ (parent 217)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x)))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (defstrand init 1 (x x))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 0) (4 0)) ((6 0) (5 0)))+ (absent (x-0 (mul (rec y) w x)) (y (gen)))+ (pen-non-orig y x-0)+ (precur (5 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec y) w x))+ (mul (rec y) w x) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x (rec x-0))))+ (send (enc n (exp (gen) (mul w x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (exp (gen) y) (mul (rec y) w x)))+ (send (cat (exp (gen) y) (mul (rec y) w x))))+ ((recv (cat (exp (gen) x) (mul w (rec x-0))))+ (send (cat (exp (gen) x) (mul w (rec x-0)))))+ ((send (exp (gen) x))))+ (label 327)+ (parent 217)+ (unrealized (0 1) (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w x-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 0) (4 0)) ((6 0) (5 0)))+ (absent (y (mul x w x-0)) (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w x-0)) (mul x w x-0)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w x-0 y)))+ (send (exp (gen) (mul x w x-0 y))))+ ((recv (cat (exp (gen) y) (mul x w x-0)))+ (send (cat (exp (gen) y) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0))))+ (label 328)+ (parent 217)+ (unrealized (0 1) (3 0) (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 0) (4 0)) ((6 0) (5 0)))+ (absent (x-0 (mul x (rec y) w)) (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x (rec y) w))+ (mul x (rec y) w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 329)+ (parent 217)+ (unrealized (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w (rec x))) (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))))+ (label 330)+ (parent 218)+ (unrealized (0 1) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)))+ (absent (x w) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w) w (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))))+ (label 331)+ (parent 218)+ (unrealized (0 1) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (4 0)))+ (absent (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv x) (send x)))+ (label 332)+ (parent 218)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (4 0)) ((6 1) (5 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y) (w (mul (rec x) y (rec y-0))) (y-2 y-0))+ (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 333)+ (parent 219)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (4 0)) ((6 1) (5 0)))+ (absent (x (mul (rec y) w y-0)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w y-0))+ (mul (rec y) w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y) (mul (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul (rec y) w y-0))))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 334)+ (parent 219)+ (unrealized (0 1) (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y-0))+ (deflistener (exp (gen) y-0))+ (deflistener (exp (gen) (mul x w y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (4 0)) ((6 1) (5 0)))+ (absent (y-0 (mul x w y)) (y h) (y-0 (gen)))+ (pen-non-orig x y-0)+ (precur (5 0) (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w y)) (mul x w y)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (gen)) (send (exp (gen) y-0)) (recv (enc n (exp (gen) y-0))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (exp (gen) (mul x w y y-0)))+ (send (exp (gen) (mul x w y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w y)))+ (send (cat (exp (gen) y-0) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 335)+ (parent 219)+ (unrealized (0 1) (3 0) (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (deflistener (cat (exp (gen) y-0) (mul w (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (4 0)) ((6 1) (5 0)))+ (absent (y-0 (mul x (rec y) w)) (y-0 h) (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x (rec y) w))+ (mul x (rec y) w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv (cat (exp (gen) y-0) (mul w (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 336)+ (parent 219)+ (unrealized (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul (rec x) y-0)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul (rec x) y-0)))+ (send (cat (gen) (mul (rec x) y-0)))))+ (label 337)+ (parent 220)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y y-0 expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul w (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (x (mul (rec y-0) w)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y-0) w))+ (mul (rec y-0) w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul w (rec x))))+ (send (cat (gen) (mul w (rec x))))))+ (label 338)+ (parent 220)+ (unrealized (0 1) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul w y-0)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 (mul x w)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w)) (mul x w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) (mul x w y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w)))+ (send (cat (exp (gen) y-0) (mul x w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul w y-0))) (send (cat (gen) (mul w y-0)))))+ (label 339)+ (parent 220)+ (unrealized (3 0) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test+ (contracted (y-1 y-0) (w (mul y-0 (rec x) (rec x))) (x-0 x)) (one)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y-0 (rec x))))+ (send (enc n (exp (gen) y-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))))+ (label 340)+ (parent 221)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x x y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w x x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w y-0)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 (mul w x x)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul w x x)) (mul w x x)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y-0)))+ (send (enc n (exp (gen) (mul w x x y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x x y-0)))+ (send (exp (gen) (mul w x x y-0))))+ ((recv (cat (exp (gen) y-0) (mul w x x)))+ (send (cat (exp (gen) y-0) (mul w x x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w y-0)))+ (send (cat (exp (gen) x) (mul w y-0)))))+ (label 341)+ (parent 221)+ (unrealized (0 1) (3 0) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y y-0 expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (x (mul (rec y-0) w)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y-0) w))+ (mul (rec y-0) w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w (rec x) (rec x))))))+ (label 342)+ (parent 221)+ (unrealized (0 1) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (6 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (y-1 y-0) (w (mul (rec x) y-0 (rec x-0)))+ (x-2 x-0)) (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 343)+ (parent 222)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y y-0 expn) (w expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (defstrand init 1 (x x))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (6 0)))+ (absent (x-0 (mul (rec y-0) w x)) (y-0 h) (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec y-0) w x))+ (mul (rec y-0) w x) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x (rec x-0))))+ (send (enc n (exp (gen) (mul w x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w x)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w (rec x-0))))+ (send (cat (exp (gen) x) (mul w (rec x-0)))))+ ((send (exp (gen) x))))+ (label 344)+ (parent 222)+ (unrealized (0 1) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x expn) (w expr) (x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w x-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul w y-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (6 0)))+ (absent (y-0 (mul x w x-0)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w x-0)) (mul x w x-0)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y-0)))+ (send (enc n (exp (gen) (mul x w x-0 y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w x-0 y-0)))+ (send (exp (gen) (mul x w x-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w x-0)))+ (send (cat (exp (gen) y-0) (mul x w x-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul w y-0)))+ (send (cat (exp (gen) x-0) (mul w y-0))))+ ((send (exp (gen) x-0))))+ (label 345)+ (parent 222)+ (unrealized (0 1) (3 0) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (6 0)))+ (absent (x-0 (mul x (rec y-0) w)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x (rec y-0) w))+ (mul x (rec y-0) w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 346)+ (parent 222)+ (unrealized (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y-0))+ (deflistener (exp (gen) y-0))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (4 0)) ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 (gen)) (y h))+ (pen-non-orig x y-0)+ (precur (6 0) (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y) (w (mul (rec x) y (rec y-0))) (y-2 y-0))+ (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y-0)) (recv (enc n (exp (gen) y-0))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))))+ (label 347)+ (parent 223)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y-0))+ (deflistener (exp (gen) y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (4 0)) ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (x (mul (rec y) w y-0)) (y-0 (gen)) (y h))+ (pen-non-orig y-0 x)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w y-0))+ (mul (rec y) w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (gen)) (send (exp (gen) y-0)) (recv (enc n (exp (gen) y-0))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y) (mul (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul (rec y) w y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x))))))+ (label 348)+ (parent 223)+ (unrealized (0 1) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w y)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (4 0)) ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 (mul x w y)) (y (gen)) (y-0 h))+ (pen-non-orig x y)+ (precur (6 0) (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w y)) (mul x w y)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y y-0)))+ (send (exp (gen) (mul x w y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w y)))+ (send (cat (exp (gen) y-0) (mul x w y))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0)))))+ (label 349)+ (parent 223)+ (unrealized (0 1) (3 0) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y-0))+ (deflistener (exp (gen) y-0))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec y-0))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (4 0)) ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 (mul x (rec y) w)) (y-0 (gen)) (y h))+ (pen-non-orig x y-0)+ (precur (6 0) (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x (rec y) w))+ (mul x (rec y) w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y-0)) (recv (enc n (exp (gen) y-0))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w (rec y-0))))))+ (label 350)+ (parent 223)+ (unrealized (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (rec x)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w (rec x))) (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y-0 (rec x))))+ (send (enc n (exp (gen) y-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (rec x)))+ (send (cat (exp (gen) y-0) (rec x)))))+ (label 351)+ (parent 224)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (x w) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w) w (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x))))))+ (label 352)+ (parent 224)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener x)+ (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) (mul x w y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w)))+ (send (cat (exp (gen) y-0) (mul x w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv x) (send x)))+ (label 353)+ (parent 224)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (y x y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (6 0)))+ (absent (y-1 h-0) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-2 y-0) (w (mul (rec x) y-0 (rec y-1)))+ (y-3 y-1)) (one) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1))))+ (send (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 354)+ (parent 225)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (y y-0 expn) (w expr) (y-1 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-1 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y-1)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w y-1)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul w (rec x))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (6 0)))+ (absent (x (mul (rec y-0) w y-1)) (y-1 h-0) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 y-1 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y-0) w y-1))+ (mul (rec y-0) w y-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-1 (rec x))))+ (send (enc n (exp (gen) (mul w y-1)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y-1))) (send (exp (gen) (mul w y-1))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w y-1)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w y-1))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul w (rec x))))+ (send (cat (exp (gen) y-1) (mul w (rec x)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 355)+ (parent 225)+ (unrealized (0 1) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (y x expn) (w expr) (y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 y-1))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y-0 y-1)))+ (deflistener (cat (exp (gen) y-1) (mul x w y-0)))+ (defstrand resp 2 (h h) (y y-1))+ (deflistener (cat (exp (gen) y-0) (mul w y-1)))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (6 0)))+ (absent (y-1 (mul x w y-0)) (y-0 h-0) (y-1 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-absence y-1 (mul x w y-0)) (mul x w y-0)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 y-1)))+ (send (enc n (exp (gen) (mul x w y-0 y-1)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y-0 y-1)))+ (send (exp (gen) (mul x w y-0 y-1))))+ ((recv (cat (exp (gen) y-1) (mul x w y-0)))+ (send (cat (exp (gen) y-1) (mul x w y-0))))+ ((recv h) (send (exp (gen) y-1)))+ ((recv (cat (exp (gen) y-0) (mul w y-1)))+ (send (cat (exp (gen) y-0) (mul w y-1))))+ ((recv h-0) (send (exp (gen) y-0))))+ (label 356)+ (parent 225)+ (unrealized (0 1) (3 0) (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (y x y-0 expn) (w expr) (y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul w (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (6 0)))+ (absent (y-1 (mul x (rec y-0) w)) (y-1 h-0) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-absence y-1 (mul x (rec y-0) w))+ (mul x (rec y-0) w) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul w (rec y-1))))+ (send (cat (exp (gen) y-1) (mul w (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 357)+ (parent 225)+ (unrealized (4 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1))+ ((5 1) (4 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (4 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))+ (label 358)+ (parent 229)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1))+ ((5 1) (4 0)))+ (absent (x w) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (4 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))) ((recv x) (send x)))+ (label 359)+ (parent 230)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (rec x)))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1))+ ((6 1) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x))))+ ((recv x) (send x)))+ (label 360)+ (parent 233)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1))+ ((6 1) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul (rec x) (rec x)) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 361)+ (parent 234)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (gen)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (precedes ((0 2) (1 2)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y))))))+ (label 362)+ (parent 238)+ (unrealized)+ (shape)+ (maps ((0 1) ((n n) (hx (exp (gen) w)) (hy (gen)) (x x) (y y))))+ (origs (n (0 2))))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (rec x)))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (rec x)))+ (send (cat (exp (gen) x-0) (rec x)))) ((recv x) (send x)))+ (label 363)+ (parent 241)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))+ (label 364)+ (parent 248)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (rec x)))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (rec x)))+ (send (cat (exp (gen) y-0) (rec x)))) ((recv x) (send x)))+ (label 365)+ (parent 254)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) x)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (gen) (mul x x)))+ (deflistener x)+ (precedes ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x x) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x))))+ ((recv x) (send x)))+ (label 366)+ (parent 257)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (gen) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w-1 (mul x w-0)) (w-2 w-0))+ (gen) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0))))+ (label 367)+ (parent 261)+ (unrealized (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x)))+ (deflistener (cat (gen) (mul w-0 x x)))+ (deflistener (cat (exp (gen) x) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x)))+ (send (enc n (exp (gen) (mul w-0 x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x))) (send (exp (gen) (mul w-0 x x))))+ ((recv (cat (gen) (mul w-0 x x))) (send (cat (gen) (mul w-0 x x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0))))+ (label 368)+ (parent 261)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0)))+ (deflistener (cat (gen) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) w-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 0) (5 0)) ((7 0) (6 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0)))+ (send (exp (gen) (mul x w-0 x-0))))+ ((recv (cat (gen) (mul x w-0 x-0)))+ (send (cat (gen) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0)))+ ((send (exp (gen) x-0))))+ (label 369)+ (parent 261)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y)))+ (deflistener (cat (gen) (mul x w-0 y)))+ (deflistener (cat (exp (gen) y) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 7 1 resp 2) (exp (gen) y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y)))+ (send (enc n (exp (gen) (mul x w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y))) (send (exp (gen) (mul x w-0 y))))+ ((recv (cat (gen) (mul x w-0 y))) (send (cat (gen) (mul x w-0 y))))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0))))+ (label 370)+ (parent 261)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) w-0))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)) ((7 1) (6 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (gen) (mul x w-0 y-0)))+ (send (cat (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv h) (send (exp (gen) y-0))))+ (label 371)+ (parent 261)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) x) w-0))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0))))+ (label 372)+ (parent 262)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w-1 (mul x (rec x-0) w-0)) (x-2 x-0) (w-2 w-0))+ (gen) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0))))+ (label 373)+ (parent 269)+ (unrealized (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x-0 x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0 x-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 8 0 init 1) (exp (gen) x-1) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul w-0 x-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x-0 x-0)))+ (send (exp (gen) (mul w-0 x-0 x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0 x-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0 x-0 x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0))))+ (label 374)+ (parent 269)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 8 6 init 1) (exp (gen) x-1) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0)))+ (send (exp (gen) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0)))+ (send (cat (exp (gen) x-0) (mul x w-0)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0))))+ (label 375)+ (parent 269)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn) (w-0 expr) (x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0 x-1)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) w-0))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-1)))+ (send (enc n (exp (gen) (mul x w-0 x-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-1)))+ (send (exp (gen) (mul x w-0 x-1))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0 x-1)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0 x-1))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) w-0)) (send (cat (exp (gen) x-1) w-0)))+ ((send (exp (gen) x-1))))+ (label 376)+ (parent 269)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x x-0 expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0 y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (7 0))+ ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 8 1 resp 2) (exp (gen) y-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y)))+ (send (enc n (exp (gen) (mul x w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y))) (send (exp (gen) (mul x w-0 y))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0 y)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0 y))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0))))+ (label 377)+ (parent 269)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x x-0 expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0 y-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) w-0))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0 y-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0 y-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv h) (send (exp (gen) y-0))))+ (label 378)+ (parent 269)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0)))+ (deflistener (cat (gen) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-1 (mul x (rec y) w-0)) (y-0 y) (w-2 w-0))+ (gen) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0))))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0))))+ (label 379)+ (parent 275)+ (unrealized (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0 x x)))+ (deflistener (cat (exp (gen) x) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x)))+ (send (enc n (exp (gen) (mul w-0 x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x))) (send (exp (gen) (mul w-0 x x))))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0 x x)))+ (send (cat (exp (gen) y) (mul (rec y) w-0 x x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0))))+ (label 380)+ (parent 275)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) w-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (6 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0)))+ (send (exp (gen) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0 x-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0 x-0))))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0)))+ ((send (exp (gen) x-0))))+ (label 381)+ (parent 275)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w-0)))+ (deflistener (cat (exp (gen) y) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 7 1 resp 2) (exp (gen) y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y)))+ (send (enc n (exp (gen) (mul x w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y))) (send (exp (gen) (mul x w-0 y))))+ ((recv (cat (exp (gen) y) (mul x w-0)))+ (send (cat (exp (gen) y) (mul x w-0))))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0))))+ (label 382)+ (parent 275)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) w-0))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (6 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0 y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0 y-0))))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv h) (send (exp (gen) y-0))))+ (label 383)+ (parent 275)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-1 (mul x (rec y-0) w-0)) (y-1 y-0) (w-2 w-0))+ (gen) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0))))+ (label 384)+ (parent 282)+ (unrealized (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0 x x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (displaced 8 0 init 1) (exp (gen) x-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x)))+ (send (enc n (exp (gen) (mul w-0 x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x))) (send (exp (gen) (mul w-0 x x))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0 x x)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0 x x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0))))+ (label 385)+ (parent 282)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w-0 x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) w-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0)))+ (send (exp (gen) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w-0 x-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w-0 x-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0)))+ ((send (exp (gen) x-0))))+ (label 386)+ (parent 282)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0 y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (7 0))+ ((7 1) (0 1)))+ (absent (y-0 (exp (gen) w)) (y h))+ (pen-non-orig x y-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 8 1 resp 2) (exp (gen) y-1) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0 y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0 y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0))))+ (label 387)+ (parent 282)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 8 6 resp 2) (exp (gen) y-1) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0)))+ (send (cat (exp (gen) y-0) (mul x w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0))))+ (label 388)+ (parent 282)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x y-0 expn) (w-0 expr)+ (y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-1)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w-0 y-1)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) w-0))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (y-1 h-0) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-1)))+ (send (enc n (exp (gen) (mul x w-0 y-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-1)))+ (send (exp (gen) (mul x w-0 y-1))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w-0 y-1)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w-0 y-1))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) w-0)) (send (cat (exp (gen) y-1) w-0)))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 389)+ (parent 282)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (gen) (rec x)))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 1) (5 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (precur (5 0) (4 0))+ (operation nonce-test (added-listener x) (rec x) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x))))+ ((recv x) (send x)))+ (label 390)+ (parent 283)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (gen) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 1) (5 0)))+ (absent (x w) (y (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (precur (5 0) (4 0))+ (operation nonce-test (added-listener x) (mul w (rec x)) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (gen) (mul w (rec x))))+ (send (cat (gen) (mul w (rec x))))) ((recv x) (send x)))+ (label 391)+ (parent 284)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 1) (5 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul (rec x) (rec x)) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 392)+ (parent 286)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 1) (5 0)))+ (absent (x w) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x) (rec x))+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 393)+ (parent 287)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (defstrand init 1 (x x))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 0) (4 0)) ((6 0) (5 0)) ((7 1) (5 0)))+ (absent (x-0 (mul w x)) (y (gen)))+ (pen-non-orig y x-0)+ (precur (5 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x (rec x-0))))+ (send (enc n (exp (gen) (mul w x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (gen) (mul w x))) (send (cat (gen) (mul w x))))+ ((recv (cat (exp (gen) x) (mul w (rec x-0))))+ (send (cat (exp (gen) x) (mul w (rec x-0)))))+ ((send (exp (gen) x))) ((recv x-0) (send x-0)))+ (label 394)+ (parent 290)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0))))+ (defstrand init 1 (x x-0))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 0) (4 0)) ((6 0) (7 0)) ((7 1) (5 0)))+ (absent (x-0 (mul x w)) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w (rec x-0)))))+ ((send (exp (gen) x-0))) ((recv x-0) (send x-0)))+ (label 395)+ (parent 291)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (x (mul w y)) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))) ((recv x) (send x)))+ (label 396)+ (parent 293)+ (unrealized (4 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul w (rec y))))+ (deflistener y)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (y (mul x w)) (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w (rec y)) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul w (rec y))))+ (send (cat (exp (gen) y) (mul w (rec y))))) ((recv y) (send y)))+ (label 397)+ (parent 294)+ (unrealized (4 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 1) (4 0)) ((6 1) (5 0)) ((7 1) (5 0)))+ (absent (x (mul w y-0)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (gen) (mul w y-0))) (send (cat (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x)))))+ ((recv h) (send (exp (gen) y-0))) ((recv x) (send x)))+ (label 398)+ (parent 296)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y-0) (mul w (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener y-0)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (0 1))+ ((6 1) (4 0)) ((6 1) (7 0)) ((7 1) (5 0)))+ (absent (y-0 (mul x w)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w (rec y-0)) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) y-0) (mul w (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))) ((recv y-0) (send y-0)))+ (label 399)+ (parent 297)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (gen) (mul w (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x-0 (mul (rec x) w)) (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (6 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w (rec x-0))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) x) (mul (rec x) w)))+ (send (cat (exp (gen) x) (mul (rec x) w)))) ((send (exp (gen) x)))+ ((recv (cat (gen) (mul w (rec x-0))))+ (send (cat (gen) (mul w (rec x-0))))) ((recv x-0) (send x-0)))+ (label 400)+ (parent 300)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w x-0)))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (7 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x-0 (mul x w)) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul x w x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul w x-0))) (send (cat (gen) (mul w x-0))))+ ((recv x-0) (send x-0)))+ (label 401)+ (parent 301)+ (unrealized (3 0) (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x x x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w x x)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x) (mul w x-0)))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (7 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x-0 (mul w x x)) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x x-0)))+ (send (enc n (exp (gen) (mul w x x x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x x x-0)))+ (send (exp (gen) (mul w x x x-0))))+ ((recv (cat (exp (gen) x-0) (mul w x x)))+ (send (cat (exp (gen) x-0) (mul w x x)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x) (mul w x-0)))+ (send (cat (exp (gen) x) (mul w x-0)))) ((recv x-0) (send x-0)))+ (label 402)+ (parent 303)+ (unrealized (3 0) (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x-0 (mul (rec x) w)) (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0) (rec x-0))+ (6 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w (rec x-0))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) x) (mul (rec x) w)))+ (send (cat (exp (gen) x) (mul (rec x) w)))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0)))))+ ((recv x-0) (send x-0)))+ (label 403)+ (parent 304)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (rec x-0)))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (rec x-0) (6 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (rec x-0)))+ (send (cat (exp (gen) x) (rec x-0)))) ((recv x-0) (send x-0)))+ (label 404)+ (parent 305)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) w))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x-0 w) (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (6 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x (rec x-0))))+ (send (enc n (exp (gen) (mul w x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w)))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (mul w (rec x-0))))+ (send (cat (exp (gen) x) (mul w (rec x-0)))))+ ((recv x-0) (send x-0)))+ (label 405)+ (parent 306)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 (rec x-1)))) (x x-1))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-1))))+ (defstrand init 1 (x x-0))+ (deflistener x-1)+ (precedes ((0 0) (4 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (6 0))+ ((8 1) (6 0)))+ (absent (x-1 (mul (rec x) w x-0)) (y (gen)))+ (pen-non-orig y x-1)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-listener x-1) (mul w (rec x-1)) (6 0))+ (traces+ ((send (exp (gen) x-1)) (recv (exp (gen) (mul w x-0 (rec x-1))))+ (send (enc n (exp (gen) (mul w x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) (mul w x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-1))))+ (send (cat (exp (gen) x-0) (mul w (rec x-1)))))+ ((send (exp (gen) x-0))) ((recv x-1) (send x-1)))+ (label 406)+ (parent 309)+ (unrealized (4 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn) (w expr) (x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 x-1))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w x-0 x-1)))+ (deflistener (cat (exp (gen) x-1) (mul x w x-0)))+ (defstrand init 1 (x x-1))+ (deflistener (cat (exp (gen) x-0) (mul w x-1)))+ (defstrand init 1 (x x-0))+ (deflistener x-1)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (8 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (6 0))+ ((8 1) (6 0)))+ (absent (x-1 (mul x w x-0)) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-listener x-1) (mul w x-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 x-1)))+ (send (enc n (exp (gen) (mul x w x-0 x-1)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w x-0 x-1)))+ (send (exp (gen) (mul x w x-0 x-1))))+ ((recv (cat (exp (gen) x-1) (mul x w x-0)))+ (send (cat (exp (gen) x-1) (mul x w x-0))))+ ((send (exp (gen) x-1)))+ ((recv (cat (exp (gen) x-0) (mul w x-1)))+ (send (cat (exp (gen) x-0) (mul w x-1)))) ((send (exp (gen) x-0)))+ ((recv x-1) (send x-1)))+ (label 407)+ (parent 310)+ (unrealized (3 0) (4 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn) (w expr) (x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w (rec x-1))))+ (defstrand init 1 (x x-1))+ (deflistener x-1)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (8 0))+ ((8 1) (6 0)))+ (absent (x-1 (mul x (rec x-0) w)) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-listener x-1) (mul w (rec x-1)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul w (rec x-1))))+ (send (cat (exp (gen) x-1) (mul w (rec x-1)))))+ ((send (exp (gen) x-1))) ((recv x-1) (send x-1)))+ (label 408)+ (parent 311)+ (unrealized (4 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w y)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 1))+ ((7 1) (6 0)))+ (absent (x-0 (mul (rec x) w y)) (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (6 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w y (rec x-0))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) x) (mul (rec x) w y)))+ (send (cat (exp (gen) x) (mul (rec x) w y))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul w (rec x-0))))+ (send (cat (exp (gen) y) (mul w (rec x-0)))))+ ((recv x-0) (send x-0)))+ (label 409)+ (parent 313)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w x-0)))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 0) (4 0)) ((5 0) (7 0)) ((6 1) (0 1))+ ((7 1) (6 0)))+ (absent (x-0 (mul x w y)) (y (gen)))+ (pen-non-orig x y)+ (precur (6 0) (4 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y x-0)))+ (send (enc n (exp (gen) (mul x w y x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y x-0)))+ (send (exp (gen) (mul x w y x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w y)))+ (send (cat (exp (gen) x-0) (mul x w y)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w x-0)))+ (send (cat (exp (gen) y) (mul w x-0)))) ((recv x-0) (send x-0)))+ (label 410)+ (parent 314)+ (unrealized (3 0) (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w (rec y))))+ (deflistener y)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 1))+ ((7 1) (6 0)))+ (absent (y (mul x (rec x-0) w)) (y (gen)))+ (pen-non-orig x y)+ (precur (6 0) (4 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w (rec y)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w (rec y))))+ (send (cat (exp (gen) y) (mul w (rec y))))) ((recv y) (send y)))+ (label 411)+ (parent 315)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x expn) (w expr) (y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w y-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x-0))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (6 0))+ ((8 1) (6 0)))+ (absent (x-0 (mul (rec x) w y-0)) (y-0 h) (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (6 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w y-0 (rec x-0))))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w y-0)))+ (send (cat (exp (gen) x) (mul (rec x) w y-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y-0) (mul w (rec x-0))))+ (send (cat (exp (gen) y-0) (mul w (rec x-0)))))+ ((recv h) (send (exp (gen) y-0))) ((recv x-0) (send x-0)))+ (label 412)+ (parent 317)+ (unrealized (4 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x expn) (w expr) (y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w y-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul w x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (8 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (6 0))+ ((8 1) (6 0)))+ (absent (x-0 (mul x w y-0)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 x-0)))+ (send (enc n (exp (gen) (mul x w y-0 x-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y-0 x-0)))+ (send (exp (gen) (mul x w y-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w y-0)))+ (send (cat (exp (gen) x-0) (mul x w y-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul w x-0)))+ (send (cat (exp (gen) y-0) (mul w x-0))))+ ((recv h) (send (exp (gen) y-0))) ((recv x-0) (send x-0)))+ (label 413)+ (parent 318)+ (unrealized (3 0) (4 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x x-0 expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul w (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener y-0)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (8 0))+ ((8 1) (6 0)))+ (absent (y-0 (mul x (rec x-0) w)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w (rec y-0)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul w (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))) ((recv y-0) (send y-0)))+ (label 414)+ (parent 319)+ (unrealized (4 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (deflistener (cat (gen) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (x (mul (rec y) w)) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) y) (mul (rec y) w)))+ (send (cat (exp (gen) y) (mul (rec y) w))))+ ((recv (cat (gen) (mul w (rec x))))+ (send (cat (gen) (mul w (rec x))))) ((recv x) (send x)))+ (label 415)+ (parent 321)+ (unrealized (4 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (y (mul x w)) (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv y) (send y)))+ (label 416)+ (parent 322)+ (unrealized (3 0) (4 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x x y)))+ (deflistener (cat (exp (gen) y) (mul w x x)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (y (mul w x x)) (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y)))+ (send (enc n (exp (gen) (mul w x x y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x x y))) (send (exp (gen) (mul w x x y))))+ ((recv (cat (exp (gen) y) (mul w x x)))+ (send (cat (exp (gen) y) (mul w x x))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+ (label 417)+ (parent 324)+ (unrealized (3 0) (4 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (deflistener (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (x (mul (rec y) w)) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x) (rec x))+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) y) (mul (rec y) w)))+ (send (cat (exp (gen) y) (mul (rec y) w))))+ ((recv (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 418)+ (parent 325)+ (unrealized (4 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x)))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (defstrand init 1 (x x))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 0) (4 0)) ((6 0) (5 0))+ ((7 1) (5 0)))+ (absent (x-0 (mul (rec y) w x)) (y (gen)))+ (pen-non-orig y x-0)+ (precur (5 0) (4 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x (rec x-0))))+ (send (enc n (exp (gen) (mul w x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (exp (gen) y) (mul (rec y) w x)))+ (send (cat (exp (gen) y) (mul (rec y) w x))))+ ((recv (cat (exp (gen) x) (mul w (rec x-0))))+ (send (cat (exp (gen) x) (mul w (rec x-0)))))+ ((send (exp (gen) x))) ((recv x-0) (send x-0)))+ (label 419)+ (parent 327)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w x-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (deflistener y)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 0) (4 0)) ((6 0) (5 0))+ ((7 1) (5 0)))+ (absent (y (mul x w x-0)) (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w x-0 y)))+ (send (exp (gen) (mul x w x-0 y))))+ ((recv (cat (exp (gen) y) (mul x w x-0)))+ (send (cat (exp (gen) y) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0)))+ ((recv y) (send y)))+ (label 420)+ (parent 328)+ (unrealized (3 0) (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0))))+ (defstrand init 1 (x x-0))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 0) (4 0)) ((6 0) (7 0))+ ((7 1) (5 0)))+ (absent (x-0 (mul x (rec y) w)) (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w (rec x-0)))))+ ((send (exp (gen) x-0))) ((recv x-0) (send x-0)))+ (label 421)+ (parent 329)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))+ (label 422)+ (parent 330)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (x w) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))) ((recv x) (send x)))+ (label 423)+ (parent 331)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (4 0)) ((6 1) (5 0))+ ((7 1) (5 0)))+ (absent (x (mul (rec y) w y-0)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (5 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y) (mul (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul (rec y) w y-0))))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x)))))+ ((recv h) (send (exp (gen) y-0))) ((recv x) (send x)))+ (label 424)+ (parent 334)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y-0))+ (deflistener (exp (gen) y-0))+ (deflistener (exp (gen) (mul x w y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (4 0)) ((6 1) (5 0))+ ((7 1) (5 0)))+ (absent (y-0 (mul x w y)) (y h) (y-0 (gen)))+ (pen-non-orig x y-0)+ (precur (5 0) (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (gen)) (send (exp (gen) y-0)) (recv (enc n (exp (gen) y-0))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (exp (gen) (mul x w y y-0)))+ (send (exp (gen) (mul x w y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w y)))+ (send (cat (exp (gen) y-0) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))) ((recv y-0) (send y-0)))+ (label 425)+ (parent 335)+ (unrealized (3 0) (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (deflistener (cat (exp (gen) y-0) (mul w (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener y-0)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (0 1)) ((6 1) (4 0)) ((6 1) (7 0))+ ((7 1) (5 0)))+ (absent (y-0 (mul x (rec y) w)) (y-0 h) (y (gen)))+ (pen-non-orig x y)+ (precur (5 0) (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w (rec y-0)) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv (cat (exp (gen) y-0) (mul w (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))) ((recv y-0) (send y-0)))+ (label 426)+ (parent 336)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y y-0 expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x (mul (rec y-0) w)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul w (rec x))))+ (send (cat (gen) (mul w (rec x))))) ((recv x) (send x)))+ (label 427)+ (parent 338)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (7 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y-0 (mul x w)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) (mul x w y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w)))+ (send (cat (exp (gen) y-0) (mul x w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul w y-0))) (send (cat (gen) (mul w y-0))))+ ((recv y-0) (send y-0)))+ (label 428)+ (parent 339)+ (unrealized (3 0) (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x x y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w x x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (7 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y-0 (mul w x x)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y-0)))+ (send (enc n (exp (gen) (mul w x x y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x x y-0)))+ (send (exp (gen) (mul w x x y-0))))+ ((recv (cat (exp (gen) y-0) (mul w x x)))+ (send (cat (exp (gen) y-0) (mul w x x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w y-0)))+ (send (cat (exp (gen) x) (mul w y-0)))) ((recv y-0) (send y-0)))+ (label 429)+ (parent 341)+ (unrealized (3 0) (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y y-0 expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x (mul (rec y-0) w)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x) (rec x))+ (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 430)+ (parent 342)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y y-0 expn) (w expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (defstrand init 1 (x x))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (6 0))+ ((8 1) (6 0)))+ (absent (x-0 (mul (rec y-0) w x)) (y-0 h) (y (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (6 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x (rec x-0))))+ (send (enc n (exp (gen) (mul w x)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w x)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w (rec x-0))))+ (send (cat (exp (gen) x) (mul w (rec x-0)))))+ ((send (exp (gen) x))) ((recv x-0) (send x-0)))+ (label 431)+ (parent 344)+ (unrealized (4 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x expn) (w expr) (x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w x-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul w y-0)))+ (defstrand init 1 (x x-0))+ (deflistener y-0)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (8 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (6 0))+ ((8 1) (6 0)))+ (absent (y-0 (mul x w x-0)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y-0)))+ (send (enc n (exp (gen) (mul x w x-0 y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w x-0 y-0)))+ (send (exp (gen) (mul x w x-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w x-0)))+ (send (cat (exp (gen) y-0) (mul x w x-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul w y-0)))+ (send (cat (exp (gen) x-0) (mul w y-0)))) ((send (exp (gen) x-0)))+ ((recv y-0) (send y-0)))+ (label 432)+ (parent 345)+ (unrealized (3 0) (4 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0))))+ (defstrand init 1 (x x-0))+ (deflistener x-0)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 0) (4 0)) ((7 0) (8 0))+ ((8 1) (6 0)))+ (absent (x-0 (mul x (rec y-0) w)) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w (rec x-0)))))+ ((send (exp (gen) x-0))) ((recv x-0) (send x-0)))+ (label 433)+ (parent 346)+ (unrealized (4 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y-0))+ (deflistener (exp (gen) y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (4 0)) ((5 1) (6 0)) ((6 1) (0 1))+ ((7 1) (6 0)))+ (absent (x (mul (rec y) w y-0)) (y-0 (gen)) (y h))+ (pen-non-orig y-0 x)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (gen)) (send (exp (gen) y-0)) (recv (enc n (exp (gen) y-0))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y) (mul (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul (rec y) w y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x))))) ((recv x) (send x)))+ (label 434)+ (parent 348)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w y)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (4 0)) ((5 1) (7 0)) ((6 1) (0 1))+ ((7 1) (6 0)))+ (absent (y-0 (mul x w y)) (y (gen)) (y-0 h))+ (pen-non-orig x y)+ (precur (6 0) (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y y-0)))+ (send (exp (gen) (mul x w y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w y)))+ (send (cat (exp (gen) y-0) (mul x w y))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0)))) ((recv y-0) (send y-0)))+ (label 435)+ (parent 349)+ (unrealized (3 0) (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y-0))+ (deflistener (exp (gen) y-0))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec y-0))))+ (deflistener y-0)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 1) (4 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (1 2))+ ((4 1) (3 0)) ((5 1) (4 0)) ((5 1) (6 0)) ((6 1) (0 1))+ ((7 1) (6 0)))+ (absent (y-0 (mul x (rec y) w)) (y-0 (gen)) (y h))+ (pen-non-orig x y-0)+ (precur (6 0) (4 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w (rec y-0)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y-0)) (recv (enc n (exp (gen) y-0))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w (rec y-0)))))+ ((recv y-0) (send y-0)))+ (label 436)+ (parent 350)+ (unrealized (4 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (rec x)))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y-0 (rec x))))+ (send (enc n (exp (gen) y-0))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (rec x)))+ (send (cat (exp (gen) y-0) (rec x)))) ((recv x) (send x)))+ (label 437)+ (parent 351)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x w) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x))))) ((recv x) (send x)))+ (label 438)+ (parent 352)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (y y-0 expn) (w expr) (y-1 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-1 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul w y-1)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w y-1)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul w (rec x))))+ (defstrand resp 2 (h h-0) (y y-1))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (6 0))+ ((8 1) (6 0)))+ (absent (x (mul (rec y-0) w y-1)) (y-1 h-0) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y y-0 y-1 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-1 (rec x))))+ (send (enc n (exp (gen) (mul w y-1)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul w y-1))) (send (exp (gen) (mul w y-1))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w y-1)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w y-1))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul w (rec x))))+ (send (cat (exp (gen) y-1) (mul w (rec x)))))+ ((recv h-0) (send (exp (gen) y-1))) ((recv x) (send x)))+ (label 439)+ (parent 355)+ (unrealized (4 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (y x expn) (w expr) (y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 y-1))) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w y-0 y-1)))+ (deflistener (cat (exp (gen) y-1) (mul x w y-0)))+ (defstrand resp 2 (h h) (y y-1))+ (deflistener (cat (exp (gen) y-0) (mul w y-1)))+ (defstrand resp 2 (h h-0) (y y-0))+ (deflistener y-1)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (8 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (6 0))+ ((8 1) (6 0)))+ (absent (y-1 (mul x w y-0)) (y-0 h-0) (y-1 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-listener y-1) (mul w y-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 y-1)))+ (send (enc n (exp (gen) (mul x w y-0 y-1)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w y-0 y-1)))+ (send (exp (gen) (mul x w y-0 y-1))))+ ((recv (cat (exp (gen) y-1) (mul x w y-0)))+ (send (cat (exp (gen) y-1) (mul x w y-0))))+ ((recv h) (send (exp (gen) y-1)))+ ((recv (cat (exp (gen) y-0) (mul w y-1)))+ (send (cat (exp (gen) y-0) (mul w y-1))))+ ((recv h-0) (send (exp (gen) y-0))) ((recv y-1) (send y-1)))+ (label 440)+ (parent 356)+ (unrealized (3 0) (4 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (y x y-0 expn) (w expr) (y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) w)) (x x))+ (defstrand resp 3 (n n) (h (gen)) (y y))+ (deflistener (exp (gen) y))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul w (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (deflistener y-1)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((2 1) (1 2)) ((3 1) (1 2)) ((4 1) (3 0)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (4 0)) ((7 1) (8 0))+ ((8 1) (6 0)))+ (absent (y-1 (mul x (rec y-0) w)) (y-1 h-0) (y-0 h) (y (gen)))+ (pen-non-orig y x)+ (precur (6 0) (4 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-listener y-1) (mul w (rec y-1)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y))))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul w (rec y-1))))+ (send (cat (exp (gen) y-1) (mul w (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))) ((recv y-1) (send y-1)))+ (label 441)+ (parent 357)+ (unrealized (4 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (gen) (rec x)))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w-0 (rec x))) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x)))))+ (label 442)+ (parent 367)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (gen) w-0))+ (deflistener (cat (gen) (mul w-0 (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)))+ (absent (x w-0) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w-0) w-0 (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0)))+ ((recv (cat (gen) (mul w-0 (rec x))))+ (send (cat (gen) (mul w-0 (rec x))))))+ (label 443)+ (parent 367)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (gen) w-0))+ (deflistener x)+ (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0))) ((recv x) (send x)))+ (label 444)+ (parent 367)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (w-0 (mul (rec x) (rec x))) (x-0 x))+ (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x))))))+ (label 445)+ (parent 368)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (gen) w-0))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)))+ (absent (x w-0) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w-0) w-0 (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))))+ (label 446)+ (parent 368)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x)))+ (deflistener (cat (gen) (mul w-0 x x)))+ (deflistener (cat (exp (gen) x) w-0))+ (deflistener x)+ (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 x x) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x)))+ (send (enc n (exp (gen) (mul w-0 x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x))) (send (exp (gen) (mul w-0 x x))))+ ((recv (cat (gen) (mul w-0 x x))) (send (cat (gen) (mul w-0 x x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0)))+ ((recv x) (send x)))+ (label 447)+ (parent 368)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 0) (5 0)) ((7 0) (6 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w-0 (mul (rec x) (rec x-0))) (x-2 x-0)) (one)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 448)+ (parent 369)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 0) (5 0)) ((7 0) (6 0)))+ (absent (x-0 (mul w-0 x)) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul w-0 x)) (mul w-0 x)+ (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (gen) (mul w-0 x))) (send (cat (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x))))+ (label 449)+ (parent 369)+ (unrealized (0 1) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 0) (5 0)) ((7 0) (6 0)))+ (absent (x-0 (mul x w-0)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w-0)) (mul x w-0)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 450)+ (parent 369)+ (unrealized (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) y) (mul (rec x) (rec y))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-0 (mul (rec x) (rec y))) (y-0 y)) (one)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) y) (mul (rec x) (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) (rec y))))))+ (label 451)+ (parent 370)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w w-0 expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (x (mul w-0 y)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul w-0 y)) (mul w-0 y) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y (rec x))))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (gen) (mul w-0 y))) (send (cat (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) y) (mul w-0 (rec x))))+ (send (cat (exp (gen) y) (mul w-0 (rec x))))))+ (label 452)+ (parent 370)+ (unrealized (0 1) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec y))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (mul x w-0)) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w-0)) (mul x w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul w-0 (rec y))))+ (send (cat (exp (gen) y) (mul w-0 (rec y))))))+ (label 453)+ (parent 370)+ (unrealized (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)) ((7 1) (6 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-0 (mul (rec x) (rec y-0))) (y-1 y-0)) (one)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) y-0) (mul (rec x) (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 454)+ (parent 371)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)) ((7 1) (6 0)))+ (absent (x (mul w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul w-0 y-0)) (mul w-0 y-0)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (gen) (mul w-0 y-0))) (send (cat (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 455)+ (parent 371)+ (unrealized (0 1) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)) ((7 1) (6 0)))+ (absent (y-0 (mul x w-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w-0)) (mul x w-0)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 456)+ (parent 371)+ (unrealized (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (exp (gen) x) w-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((2 1) (1 2)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0))))+ (label 457)+ (parent 372)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul (rec x) x-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w-0 (mul (rec x) x-0))) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul (rec x) x-0)))+ (send (cat (gen) (mul (rec x) x-0)))))+ (label 458)+ (parent 373)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (gen) (mul w-0 (rec x-0))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (x-0 (mul (rec x) w-0)) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w-0))+ (mul (rec x) w-0) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 (rec x-0))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0))))+ ((send (exp (gen) x)))+ ((recv (cat (gen) (mul w-0 (rec x-0))))+ (send (cat (gen) (mul w-0 (rec x-0))))))+ (label 459)+ (parent 373)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w-0 x-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (x-0 (mul x w-0)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w-0)) (mul x w-0)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0)))+ (send (exp (gen) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0)))+ (send (cat (exp (gen) x-0) (mul x w-0)))) ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul w-0 x-0))) (send (cat (gen) (mul w-0 x-0)))))+ (label 460)+ (parent 373)+ (unrealized (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w-0 (mul x (rec x-0) (rec x-0))) (x-2 x-0))+ (one) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))))+ (label 461)+ (parent 374)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 x x)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x) (mul w-0 x-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (x-0 (mul w-0 x x)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul w-0 x x)) (mul w-0 x x)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x x-0)))+ (send (enc n (exp (gen) (mul w-0 x x x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x x-0)))+ (send (exp (gen) (mul w-0 x x x-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 x x)))+ (send (cat (exp (gen) x-0) (mul w-0 x x))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x) (mul w-0 x-0)))+ (send (cat (exp (gen) x) (mul w-0 x-0)))))+ (label 462)+ (parent 374)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0) (rec x-0))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (x-0 (mul (rec x) w-0)) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w-0))+ (mul (rec x) w-0) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 (rec x-0))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0) (rec x-0))))))+ (label 463)+ (parent 374)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (rec x-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (contracted (x-1 x-0) (w-0 (rec x-0))) (one)+ (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (rec x-0)))+ (send (cat (exp (gen) x) (rec x-0)))))+ (label 464)+ (parent 375)+ (unrealized (0 1) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) x) w-0))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (x-0 w-0) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 w-0) w-0 (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0)))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0))))))+ (label 465)+ (parent 375)+ (unrealized (0 1) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) w-0))+ (deflistener x)+ (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0)))+ (send (exp (gen) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0)))+ (send (cat (exp (gen) x-0) (mul x w-0)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0)))+ ((recv x) (send x)))+ (label 466)+ (parent 375)+ (unrealized (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-2 x) (x-3 x-0) (w-0 (mul (rec x) x-0 (rec x-1)))+ (x-4 x-1)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 467)+ (parent 376)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 (rec x-1))))+ (x x-1))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-1))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (x-1 (mul (rec x) w-0 x-0)) (y (exp (gen) w)))+ (pen-non-orig y x-1)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-absence x-1 (mul (rec x) w-0 x-0))+ (mul (rec x) w-0 x-0) (5 0))+ (traces+ ((send (exp (gen) x-1)) (recv (exp (gen) (mul w-0 x-0 (rec x-1))))+ (send (enc n (exp (gen) (mul w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x-0))) (send (exp (gen) (mul w-0 x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0 x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-1))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-1)))))+ ((send (exp (gen) x-0))))+ (label 468)+ (parent 376)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 x-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0 x-1)))+ (deflistener (cat (exp (gen) x-1) (mul x w-0 x-0)))+ (defstrand init 1 (x x-1))+ (deflistener (cat (exp (gen) x-0) (mul w-0 x-1)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (x-1 (mul x w-0 x-0)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-absence x-1 (mul x w-0 x-0))+ (mul x w-0 x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0 x-1)))+ (send (enc n (exp (gen) (mul x w-0 x-0 x-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0 x-1)))+ (send (exp (gen) (mul x w-0 x-0 x-1))))+ ((recv (cat (exp (gen) x-1) (mul x w-0 x-0)))+ (send (cat (exp (gen) x-1) (mul x w-0 x-0))))+ ((send (exp (gen) x-1)))+ ((recv (cat (exp (gen) x-0) (mul w-0 x-1)))+ (send (cat (exp (gen) x-0) (mul w-0 x-1))))+ ((send (exp (gen) x-0))))+ (label 469)+ (parent 376)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn) (w-0 expr) (x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (x-1 (mul x (rec x-0) w-0)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-absence x-1 (mul x (rec x-0) w-0))+ (mul x (rec x-0) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul w-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul w-0 (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 470)+ (parent 376)+ (unrealized (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (7 0))+ ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w-0 (mul (rec x) x-0 (rec y)))+ (y-0 y)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))))+ (label 471)+ (parent 377)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0 y)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec x-0))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (7 0))+ ((7 1) (0 1)))+ (absent (x-0 (mul (rec x) w-0 y)) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w-0 y))+ (mul (rec x) w-0 y) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 y (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0 y)))+ (send (cat (exp (gen) x) (mul (rec x) w-0 y))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) y) (mul w-0 (rec x-0))))))+ (label 472)+ (parent 377)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0 y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w-0 x-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (7 0))+ ((7 1) (0 1)))+ (absent (x-0 (mul x w-0 y)) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w-0 y)) (mul x w-0 y)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y x-0)))+ (send (enc n (exp (gen) (mul x w-0 y x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y x-0)))+ (send (exp (gen) (mul x w-0 y x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0 y)))+ (send (cat (exp (gen) x-0) (mul x w-0 y))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w-0 x-0)))+ (send (cat (exp (gen) y) (mul w-0 x-0)))))+ (label 473)+ (parent 377)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x x-0 expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec y))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (7 0))+ ((7 1) (0 1)))+ (absent (y (mul x (rec x-0) w-0)) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x (rec x-0) w-0))+ (mul x (rec x-0) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w-0 (rec y))))+ (send (cat (exp (gen) y) (mul w-0 (rec y))))))+ (label 474)+ (parent 377)+ (unrealized (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w-0 (mul (rec x) x-0 (rec y-0)))+ (y-1 y-0)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 475)+ (parent 378)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x-0))))+ (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0 y-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (x-0 (mul (rec x) w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w-0 y-0))+ (mul (rec x) w-0 y-0) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 y-0 (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0 y-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0 y-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 476)+ (parent 378)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0 y-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul w-0 x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (x-0 (mul x w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w-0 y-0))+ (mul x w-0 y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0 x-0)))+ (send (exp (gen) (mul x w-0 y-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0 y-0)))+ (send (cat (exp (gen) x-0) (mul x w-0 y-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul w-0 x-0)))+ (send (cat (exp (gen) y-0) (mul w-0 x-0))))+ ((recv h) (send (exp (gen) y-0))))+ (label 477)+ (parent 378)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x x-0 expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (y-0 (mul x (rec x-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x (rec x-0) w-0))+ (mul x (rec x-0) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 478)+ (parent 378)+ (unrealized (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (gen) (mul (rec x) y)))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-0 y) (w-0 (mul (rec x) y))) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (gen) (mul (rec x) y)))+ (send (cat (gen) (mul (rec x) y)))))+ (label 479)+ (parent 379)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0)))+ (deflistener (cat (gen) (mul w-0 (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (x (mul (rec y) w-0)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w-0))+ (mul (rec y) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0))))+ ((recv (cat (gen) (mul w-0 (rec x))))+ (send (cat (gen) (mul w-0 (rec x))))))+ (label 480)+ (parent 379)+ (unrealized (0 1) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w-0)))+ (deflistener (cat (gen) (mul w-0 y)))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (mul x w-0)) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w-0)) (mul x w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y)))+ (send (enc n (exp (gen) (mul x w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y))) (send (exp (gen) (mul x w-0 y))))+ ((recv (cat (exp (gen) y) (mul x w-0)))+ (send (cat (exp (gen) y) (mul x w-0))))+ ((recv (cat (gen) (mul w-0 y))) (send (cat (gen) (mul w-0 y)))))+ (label 481)+ (parent 379)+ (unrealized (4 0) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test+ (contracted (y-0 y) (w-0 (mul y (rec x) (rec x))) (x-0 x)) (one)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x) (rec x))))))+ (label 482)+ (parent 380)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w w-0 expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x y)))+ (deflistener (cat (exp (gen) y) (mul w-0 x x)))+ (deflistener (cat (exp (gen) x) (mul w-0 y)))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (mul w-0 x x)) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul w-0 x x)) (mul w-0 x x)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x y)))+ (send (enc n (exp (gen) (mul w-0 x x y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x y)))+ (send (exp (gen) (mul w-0 x x y))))+ ((recv (cat (exp (gen) y) (mul w-0 x x)))+ (send (cat (exp (gen) y) (mul w-0 x x))))+ ((recv (cat (exp (gen) x) (mul w-0 y)))+ (send (cat (exp (gen) x) (mul w-0 y)))))+ (label 483)+ (parent 380)+ (unrealized (0 1) (4 0) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0)))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (x (mul (rec y) w-0)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w-0))+ (mul (rec y) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0))))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))))+ (label 484)+ (parent 380)+ (unrealized (0 1) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (6 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (y-0 y) (w-0 (mul (rec x) y (rec x-0)))+ (x-2 x-0)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 485)+ (parent 381)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0 x)))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (6 0)))+ (absent (x-0 (mul (rec y) w-0 x)) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec y) w-0 x))+ (mul (rec y) w-0 x) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0 x)))+ (send (cat (exp (gen) y) (mul (rec y) w-0 x))))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x))))+ (label 486)+ (parent 381)+ (unrealized (0 1) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (6 0)))+ (absent (y (mul x w-0 x-0)) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w-0 x-0))+ (mul x w-0 x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0 y)))+ (send (enc n (exp (gen) (mul x w-0 x-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0 y)))+ (send (exp (gen) (mul x w-0 x-0 y))))+ ((recv (cat (exp (gen) y) (mul x w-0 x-0)))+ (send (cat (exp (gen) y) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 y)))+ (send (cat (exp (gen) x-0) (mul w-0 y))))+ ((send (exp (gen) x-0))))+ (label 487)+ (parent 381)+ (unrealized (0 1) (4 0) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (6 0)))+ (absent (x-0 (mul x (rec y) w-0)) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x (rec y) w-0))+ (mul x (rec y) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 488)+ (parent 381)+ (unrealized (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w-0 (rec x))) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))))+ (label 489)+ (parent 382)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w w-0 expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) y) w-0))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (x w-0) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w-0) w-0 (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y (rec x))))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0)))+ ((recv (cat (exp (gen) y) (mul w-0 (rec x))))+ (send (cat (exp (gen) y) (mul w-0 (rec x))))))+ (label 490)+ (parent 382)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w-0)))+ (deflistener (cat (exp (gen) y) w-0))+ (deflistener x)+ (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y)))+ (send (enc n (exp (gen) (mul x w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y))) (send (exp (gen) (mul x w-0 y))))+ ((recv (cat (exp (gen) y) (mul x w-0)))+ (send (cat (exp (gen) y) (mul x w-0))))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0)))+ ((recv x) (send x)))+ (label 491)+ (parent 382)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (6 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y) (w-0 (mul (rec x) y (rec y-0)))+ (y-2 y-0)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 492)+ (parent 383)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (6 0)))+ (absent (x (mul (rec y) w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w-0 y-0))+ (mul (rec y) w-0 y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 493)+ (parent 383)+ (unrealized (0 1) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x expn) (w-0 expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul x w-0 y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0 y)))+ (deflistener (cat (exp (gen) y) (mul w-0 y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (6 0)))+ (absent (y-0 (mul x w-0 y)) (y h) (y-0 (exp (gen) w)))+ (pen-non-orig x y-0)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w-0 y)) (mul x w-0 y)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y y-0)))+ (send (enc n (exp (gen) (mul x w-0 y y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul x w-0 y y-0)))+ (send (exp (gen) (mul x w-0 y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0 y)))+ (send (cat (exp (gen) y-0) (mul x w-0 y))))+ ((recv (cat (exp (gen) y) (mul w-0 y-0)))+ (send (cat (exp (gen) y) (mul w-0 y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 494)+ (parent 383)+ (unrealized (0 1) (4 0) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (6 0)))+ (absent (y-0 (mul x (rec y) w-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x (rec y) w-0))+ (mul x (rec y) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 495)+ (parent 383)+ (unrealized (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul (rec x) y-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y-0) (w-0 (mul (rec x) y-0))) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul (rec x) y-0)))+ (send (cat (gen) (mul (rec x) y-0)))))+ (label 496)+ (parent 384)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul w-0 (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (x (mul (rec y-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y-0) w-0))+ (mul (rec y-0) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul w-0 (rec x))))+ (send (cat (gen) (mul w-0 (rec x))))))+ (label 497)+ (parent 384)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul w-0 y-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 (mul x w-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w-0)) (mul x w-0)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0)))+ (send (cat (exp (gen) y-0) (mul x w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul w-0 y-0))) (send (cat (gen) (mul w-0 y-0)))))+ (label 498)+ (parent 384)+ (unrealized (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test+ (contracted (y-1 y-0) (w-0 (mul y-0 (rec x) (rec x))) (x-0 x)) (one)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y-0 (rec x))))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))))+ (label 499)+ (parent 385)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 x x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w-0 y-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 (mul w-0 x x)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul w-0 x x)) (mul w-0 x x)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x y-0)))+ (send (enc n (exp (gen) (mul w-0 x x y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x y-0)))+ (send (exp (gen) (mul w-0 x x y-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 x x)))+ (send (cat (exp (gen) y-0) (mul w-0 x x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w-0 y-0)))+ (send (cat (exp (gen) x) (mul w-0 y-0)))))+ (label 500)+ (parent 385)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (x (mul (rec y-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y-0) w-0))+ (mul (rec y-0) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))))+ (label 501)+ (parent 385)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (y-1 y-0) (w-0 (mul (rec x) y-0 (rec x-0)))+ (x-2 x-0)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 502)+ (parent 386)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0 x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (x-0 (mul (rec y-0) w-0 x)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec y-0) w-0 x))+ (mul (rec y-0) w-0 x) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0 x)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0 x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x))))+ (label 503)+ (parent 386)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0 x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul w-0 y-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (y-0 (mul x w-0 x-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w-0 x-0))+ (mul x w-0 x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0 y-0)))+ (send (exp (gen) (mul x w-0 x-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0 x-0)))+ (send (cat (exp (gen) y-0) (mul x w-0 x-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul w-0 y-0)))+ (send (cat (exp (gen) x-0) (mul w-0 y-0))))+ ((send (exp (gen) x-0))))+ (label 504)+ (parent 386)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (x-0 (mul x (rec y-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x (rec y-0) w-0))+ (mul x (rec y-0) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 505)+ (parent 386)+ (unrealized (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (7 0))+ ((7 1) (0 1)))+ (absent (y-0 (exp (gen) w)) (y h))+ (pen-non-orig x y-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y) (w-0 (mul (rec x) y (rec y-0)))+ (y-2 y-0)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))))+ (label 506)+ (parent 387)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (7 0))+ ((7 1) (0 1)))+ (absent (x (mul (rec y) w-0 y-0)) (y-0 (exp (gen) w)) (y h))+ (pen-non-orig y-0 x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w-0 y-0))+ (mul (rec y) w-0 y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0 y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x))))))+ (label 507)+ (parent 387)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x expn) (w-0 expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0 y)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w-0 y-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (7 0))+ ((7 1) (0 1)))+ (absent (y-0 (mul x w-0 y)) (y (exp (gen) w)) (y-0 h))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w-0 y)) (mul x w-0 y)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y y-0)))+ (send (enc n (exp (gen) (mul x w-0 y y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y y-0)))+ (send (exp (gen) (mul x w-0 y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0 y)))+ (send (cat (exp (gen) y-0) (mul x w-0 y))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul w-0 y-0)))+ (send (cat (exp (gen) y) (mul w-0 y-0)))))+ (label 508)+ (parent 387)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (7 0))+ ((7 1) (0 1)))+ (absent (y-0 (mul x (rec y) w-0)) (y-0 (exp (gen) w)) (y h))+ (pen-non-orig x y-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x (rec y) w-0))+ (mul x (rec y) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0))))))+ (label 509)+ (parent 387)+ (unrealized (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (rec x)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w-0 (rec x))) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y-0 (rec x))))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (rec x)))+ (send (cat (exp (gen) y-0) (rec x)))))+ (label 510)+ (parent 388)+ (unrealized (0 1) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) w-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (x w-0) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w-0) w-0 (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x))))))+ (label 511)+ (parent 388)+ (unrealized (0 1) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) w-0))+ (deflistener x)+ (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0)))+ (send (cat (exp (gen) y-0) (mul x w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv x) (send x)))+ (label 512)+ (parent 388)+ (unrealized (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (y-1 h-0) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-2 y-0) (w-0 (mul (rec x) y-0 (rec y-1)))+ (y-3 y-1)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1))))+ (send (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 513)+ (parent 389)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y y-0 expn) (w-0 expr)+ (y-1 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-1 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-1)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0 y-1)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul w-0 (rec x))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (x (mul (rec y-0) w-0 y-1)) (y-1 h-0) (y-0 h)+ (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 y-1 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y-0) w-0 y-1))+ (mul (rec y-0) w-0 y-1) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-1 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-1))) (send (exp (gen) (mul w-0 y-1))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0 y-1)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0 y-1))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-1) (mul w-0 (rec x)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 514)+ (parent 389)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x expn) (w-0 expr)+ (y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 y-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0 y-1)))+ (deflistener (cat (exp (gen) y-1) (mul x w-0 y-0)))+ (defstrand resp 2 (h h) (y y-1))+ (deflistener (cat (exp (gen) y-0) (mul w-0 y-1)))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (y-1 (mul x w-0 y-0)) (y-0 h-0) (y-1 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-absence y-1 (mul x w-0 y-0))+ (mul x w-0 y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 y-1)))+ (send (enc n (exp (gen) (mul x w-0 y-0 y-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0 y-1)))+ (send (exp (gen) (mul x w-0 y-0 y-1))))+ ((recv (cat (exp (gen) y-1) (mul x w-0 y-0)))+ (send (cat (exp (gen) y-1) (mul x w-0 y-0))))+ ((recv h) (send (exp (gen) y-1)))+ ((recv (cat (exp (gen) y-0) (mul w-0 y-1)))+ (send (cat (exp (gen) y-0) (mul w-0 y-1))))+ ((recv h-0) (send (exp (gen) y-0))))+ (label 515)+ (parent 389)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x y-0 expn) (w-0 expr)+ (y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul w-0 (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (y-1 (mul x (rec y-0) w-0)) (y-1 h-0) (y-0 h)+ (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-absence y-1 (mul x (rec y-0) w-0))+ (mul x (rec y-0) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul w-0 (rec y-1))))+ (send (cat (exp (gen) y-1) (mul w-0 (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 516)+ (parent 389)+ (unrealized (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (gen) (rec x)))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x))))+ ((recv x) (send x)))+ (label 517)+ (parent 442)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (gen) w-0))+ (deflistener (cat (gen) (mul w-0 (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x w-0) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0)))+ ((recv (cat (gen) (mul w-0 (rec x))))+ (send (cat (gen) (mul w-0 (rec x))))) ((recv x) (send x)))+ (label 518)+ (parent 443)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul (rec x) (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 519)+ (parent 445)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (gen) w-0))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x w-0) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x) (rec x))+ (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w-0 (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 520)+ (parent 446)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 0) (5 0)) ((7 0) (6 0)) ((8 1) (6 0)))+ (absent (x-0 (mul w-0 x)) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (6 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (gen) (mul w-0 x))) (send (cat (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x))) ((recv x-0) (send x-0)))+ (label 521)+ (parent 449)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 0) (5 0)) ((7 0) (8 0)) ((8 1) (6 0)))+ (absent (x-0 (mul x w-0)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x-0))) ((recv x-0) (send x-0)))+ (label 522)+ (parent 450)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w w-0 expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x (mul w-0 y)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y (rec x))))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (gen) (mul w-0 y))) (send (cat (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) y) (mul w-0 (rec x))))+ (send (cat (exp (gen) y) (mul w-0 (rec x))))) ((recv x) (send x)))+ (label 523)+ (parent 452)+ (unrealized (5 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec y))))+ (deflistener y)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (mul x w-0)) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w-0 (rec y)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul w-0 (rec y))))+ (send (cat (exp (gen) y) (mul w-0 (rec y))))) ((recv y) (send y)))+ (label 524)+ (parent 453)+ (unrealized (5 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)) ((7 1) (6 0)) ((8 1) (6 0)))+ (absent (x (mul w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (gen) (mul w-0 y-0))) (send (cat (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x)))))+ ((recv h) (send (exp (gen) y-0))) ((recv x) (send x)))+ (label 525)+ (parent 455)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)) ((7 1) (8 0)) ((8 1) (6 0)))+ (absent (y-0 (mul x w-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 (rec y-0)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))) ((recv y-0) (send y-0)))+ (label 526)+ (parent 456)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (precedes ((0 2) (1 2)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y))))))+ (label 527)+ (parent 457)+ (unrealized)+ (shape)+ (maps+ ((0 1) ((n n) (hx (exp (gen) w)) (hy (exp (gen) w-0)) (x x) (y y))))+ (origs (n (0 2))))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (gen) (mul w-0 (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x-0 (mul (rec x) w-0)) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 (rec x-0))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0))))+ ((send (exp (gen) x)))+ ((recv (cat (gen) (mul w-0 (rec x-0))))+ (send (cat (gen) (mul w-0 (rec x-0))))) ((recv x-0) (send x-0)))+ (label 528)+ (parent 459)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w-0 x-0)))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (8 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x-0 (mul x w-0)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 x-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0)))+ (send (exp (gen) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0)))+ (send (cat (exp (gen) x-0) (mul x w-0)))) ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul w-0 x-0))) (send (cat (gen) (mul w-0 x-0))))+ ((recv x-0) (send x-0)))+ (label 529)+ (parent 460)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 x x)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x) (mul w-0 x-0)))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (8 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x-0 (mul w-0 x x)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 x-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x x-0)))+ (send (enc n (exp (gen) (mul w-0 x x x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x x-0)))+ (send (exp (gen) (mul w-0 x x x-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 x x)))+ (send (cat (exp (gen) x-0) (mul w-0 x x))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x) (mul w-0 x-0)))+ (send (cat (exp (gen) x) (mul w-0 x-0)))) ((recv x-0) (send x-0)))+ (label 530)+ (parent 462)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0) (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x-0 (mul (rec x) w-0)) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0)+ (mul w-0 (rec x-0) (rec x-0)) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 (rec x-0))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0) (rec x-0)))))+ ((recv x-0) (send x-0)))+ (label 531)+ (parent 463)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (rec x-0)))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (rec x-0) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (rec x-0)))+ (send (cat (exp (gen) x) (rec x-0)))) ((recv x-0) (send x-0)))+ (label 532)+ (parent 464)+ (unrealized (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) x) w-0))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x-0 w-0) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0)))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0)))))+ ((recv x-0) (send x-0)))+ (label 533)+ (parent 465)+ (unrealized (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 (rec x-1))))+ (x x-1))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-1))))+ (defstrand init 1 (x x-0))+ (deflistener x-1)+ (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)) ((9 1) (7 0)))+ (absent (x-1 (mul (rec x) w-0 x-0)) (y (exp (gen) w)))+ (pen-non-orig y x-1)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-listener x-1) (mul w-0 (rec x-1)) (7 0))+ (traces+ ((send (exp (gen) x-1)) (recv (exp (gen) (mul w-0 x-0 (rec x-1))))+ (send (enc n (exp (gen) (mul w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x-0))) (send (exp (gen) (mul w-0 x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0 x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-1))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-1)))))+ ((send (exp (gen) x-0))) ((recv x-1) (send x-1)))+ (label 534)+ (parent 468)+ (unrealized (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 x-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0 x-1)))+ (deflistener (cat (exp (gen) x-1) (mul x w-0 x-0)))+ (defstrand init 1 (x x-1))+ (deflistener (cat (exp (gen) x-0) (mul w-0 x-1)))+ (defstrand init 1 (x x-0))+ (deflistener x-1)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (9 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)) ((9 1) (7 0)))+ (absent (x-1 (mul x w-0 x-0)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-listener x-1) (mul w-0 x-1) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0 x-1)))+ (send (enc n (exp (gen) (mul x w-0 x-0 x-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0 x-1)))+ (send (exp (gen) (mul x w-0 x-0 x-1))))+ ((recv (cat (exp (gen) x-1) (mul x w-0 x-0)))+ (send (cat (exp (gen) x-1) (mul x w-0 x-0))))+ ((send (exp (gen) x-1)))+ ((recv (cat (exp (gen) x-0) (mul w-0 x-1)))+ (send (cat (exp (gen) x-0) (mul w-0 x-1))))+ ((send (exp (gen) x-0))) ((recv x-1) (send x-1)))+ (label 535)+ (parent 469)+ (unrealized (4 0) (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn) (w-0 expr) (x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (deflistener x-1)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (9 0)) ((9 1) (7 0)))+ (absent (x-1 (mul x (rec x-0) w-0)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-listener x-1) (mul w-0 (rec x-1)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul w-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul w-0 (rec x-1)))))+ ((send (exp (gen) x-1))) ((recv x-1) (send x-1)))+ (label 536)+ (parent 470)+ (unrealized (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0 y)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (7 0))+ ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x-0 (mul (rec x) w-0 y)) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 y (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0 y)))+ (send (cat (exp (gen) x) (mul (rec x) w-0 y))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) y) (mul w-0 (rec x-0)))))+ ((recv x-0) (send x-0)))+ (label 537)+ (parent 472)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0 y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w-0 x-0)))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (8 0))+ ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x-0 (mul x w-0 y)) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 x-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y x-0)))+ (send (enc n (exp (gen) (mul x w-0 y x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y x-0)))+ (send (exp (gen) (mul x w-0 y x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0 y)))+ (send (cat (exp (gen) x-0) (mul x w-0 y))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w-0 x-0)))+ (send (cat (exp (gen) y) (mul w-0 x-0)))) ((recv x-0) (send x-0)))+ (label 538)+ (parent 473)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x x-0 expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec y))))+ (deflistener y)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (8 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (7 0))+ ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (y (mul x (rec x-0) w-0)) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w-0 (rec y)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w-0 (rec y))))+ (send (cat (exp (gen) y) (mul w-0 (rec y))))) ((recv y) (send y)))+ (label 539)+ (parent 474)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x-0))))+ (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0 y-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x-0))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)) ((9 1) (7 0)))+ (absent (x-0 (mul (rec x) w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 y-0 (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0 y-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0 y-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x-0)))))+ ((recv h) (send (exp (gen) y-0))) ((recv x-0) (send x-0)))+ (label 540)+ (parent 476)+ (unrealized (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0 y-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul w-0 x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (9 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)) ((9 1) (7 0)))+ (absent (x-0 (mul x w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 x-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0 x-0)))+ (send (exp (gen) (mul x w-0 y-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0 y-0)))+ (send (cat (exp (gen) x-0) (mul x w-0 y-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul w-0 x-0)))+ (send (cat (exp (gen) y-0) (mul w-0 x-0))))+ ((recv h) (send (exp (gen) y-0))) ((recv x-0) (send x-0)))+ (label 541)+ (parent 477)+ (unrealized (4 0) (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x x-0 expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (9 0)) ((9 1) (7 0)))+ (absent (y-0 (mul x (rec x-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 (rec y-0)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))) ((recv y-0) (send y-0)))+ (label 542)+ (parent 478)+ (unrealized (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0)))+ (deflistener (cat (gen) (mul w-0 (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x (mul (rec y) w-0)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0))))+ ((recv (cat (gen) (mul w-0 (rec x))))+ (send (cat (gen) (mul w-0 (rec x))))) ((recv x) (send x)))+ (label 543)+ (parent 480)+ (unrealized (5 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w-0)))+ (deflistener (cat (gen) (mul w-0 y)))+ (deflistener y)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (mul x w-0)) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w-0 y) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y)))+ (send (enc n (exp (gen) (mul x w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y))) (send (exp (gen) (mul x w-0 y))))+ ((recv (cat (exp (gen) y) (mul x w-0)))+ (send (cat (exp (gen) y) (mul x w-0))))+ ((recv (cat (gen) (mul w-0 y))) (send (cat (gen) (mul w-0 y))))+ ((recv y) (send y)))+ (label 544)+ (parent 481)+ (unrealized (4 0) (5 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w w-0 expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x y)))+ (deflistener (cat (exp (gen) y) (mul w-0 x x)))+ (deflistener (cat (exp (gen) x) (mul w-0 y)))+ (deflistener y)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (mul w-0 x x)) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w-0 y) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x y)))+ (send (enc n (exp (gen) (mul w-0 x x y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x y)))+ (send (exp (gen) (mul w-0 x x y))))+ ((recv (cat (exp (gen) y) (mul w-0 x x)))+ (send (cat (exp (gen) y) (mul w-0 x x))))+ ((recv (cat (exp (gen) x) (mul w-0 y)))+ (send (cat (exp (gen) x) (mul w-0 y)))) ((recv y) (send y)))+ (label 545)+ (parent 483)+ (unrealized (4 0) (5 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0)))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x (mul (rec y) w-0)) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x) (rec x))+ (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0))))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w-0 (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 546)+ (parent 484)+ (unrealized (5 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0 x)))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (6 0)) ((8 1) (6 0)))+ (absent (x-0 (mul (rec y) w-0 x)) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (6 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0 x)))+ (send (cat (exp (gen) y) (mul (rec y) w-0 x))))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x))) ((recv x-0) (send x-0)))+ (label 547)+ (parent 486)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 y)))+ (defstrand init 1 (x x-0))+ (deflistener y)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (8 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (6 0)) ((8 1) (6 0)))+ (absent (y (mul x w-0 x-0)) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w-0 y) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0 y)))+ (send (enc n (exp (gen) (mul x w-0 x-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0 y)))+ (send (exp (gen) (mul x w-0 x-0 y))))+ ((recv (cat (exp (gen) y) (mul x w-0 x-0)))+ (send (cat (exp (gen) y) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 y)))+ (send (cat (exp (gen) x-0) (mul w-0 y)))) ((send (exp (gen) x-0)))+ ((recv y) (send y)))+ (label 548)+ (parent 487)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (8 0)) ((8 1) (6 0)))+ (absent (x-0 (mul x (rec y) w-0)) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x-0))) ((recv x-0) (send x-0)))+ (label 549)+ (parent 488)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))+ (label 550)+ (parent 489)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w w-0 expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) y) w-0))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x w-0) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y (rec x))))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0)))+ ((recv (cat (exp (gen) y) (mul w-0 (rec x))))+ (send (cat (exp (gen) y) (mul w-0 (rec x))))) ((recv x) (send x)))+ (label 551)+ (parent 490)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (6 0)) ((8 1) (6 0)))+ (absent (x (mul (rec y) w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x)))))+ ((recv h) (send (exp (gen) y-0))) ((recv x) (send x)))+ (label 552)+ (parent 493)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x expn) (w-0 expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul x w-0 y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0 y)))+ (deflistener (cat (exp (gen) y) (mul w-0 y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (8 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (6 0)) ((8 1) (6 0)))+ (absent (y-0 (mul x w-0 y)) (y h) (y-0 (exp (gen) w)))+ (pen-non-orig x y-0)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y y-0)))+ (send (enc n (exp (gen) (mul x w-0 y y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul x w-0 y y-0)))+ (send (exp (gen) (mul x w-0 y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0 y)))+ (send (cat (exp (gen) y-0) (mul x w-0 y))))+ ((recv (cat (exp (gen) y) (mul w-0 y-0)))+ (send (cat (exp (gen) y) (mul w-0 y-0))))+ ((recv h) (send (exp (gen) y))) ((recv y-0) (send y-0)))+ (label 553)+ (parent 494)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (8 0)) ((8 1) (6 0)))+ (absent (y-0 (mul x (rec y) w-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 (rec y-0)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))) ((recv y-0) (send y-0)))+ (label 554)+ (parent 495)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul w-0 (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x (mul (rec y-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul w-0 (rec x))))+ (send (cat (gen) (mul w-0 (rec x))))) ((recv x) (send x)))+ (label 555)+ (parent 497)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul w-0 y-0)))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (8 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (y-0 (mul x w-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 y-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0)))+ (send (cat (exp (gen) y-0) (mul x w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul w-0 y-0))) (send (cat (gen) (mul w-0 y-0))))+ ((recv y-0) (send y-0)))+ (label 556)+ (parent 498)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 x x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w-0 y-0)))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (8 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (y-0 (mul w-0 x x)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 y-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x y-0)))+ (send (enc n (exp (gen) (mul w-0 x x y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x y-0)))+ (send (exp (gen) (mul w-0 x x y-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 x x)))+ (send (cat (exp (gen) y-0) (mul w-0 x x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w-0 y-0)))+ (send (cat (exp (gen) x) (mul w-0 y-0)))) ((recv y-0) (send y-0)))+ (label 557)+ (parent 500)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x (mul (rec y-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x) (rec x))+ (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w-0 (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 558)+ (parent 501)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0 x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)) ((9 1) (7 0)))+ (absent (x-0 (mul (rec y-0) w-0 x)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0 x)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0 x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x))) ((recv x-0) (send x-0)))+ (label 559)+ (parent 503)+ (unrealized (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0 x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul w-0 y-0)))+ (defstrand init 1 (x x-0))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (9 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)) ((9 1) (7 0)))+ (absent (y-0 (mul x w-0 x-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 y-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0 y-0)))+ (send (exp (gen) (mul x w-0 x-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0 x-0)))+ (send (cat (exp (gen) y-0) (mul x w-0 x-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul w-0 y-0)))+ (send (cat (exp (gen) x-0) (mul w-0 y-0))))+ ((send (exp (gen) x-0))) ((recv y-0) (send y-0)))+ (label 560)+ (parent 504)+ (unrealized (4 0) (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (9 0)) ((9 1) (7 0)))+ (absent (x-0 (mul x (rec y-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x-0))) ((recv x-0) (send x-0)))+ (label 561)+ (parent 505)+ (unrealized (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (7 0))+ ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x (mul (rec y) w-0 y-0)) (y-0 (exp (gen) w)) (y h))+ (pen-non-orig y-0 x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0 y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x)))))+ ((recv x) (send x)))+ (label 562)+ (parent 507)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x expn) (w-0 expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0 y)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w-0 y-0)))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (8 0))+ ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (y-0 (mul x w-0 y)) (y (exp (gen) w)) (y-0 h))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 y-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y y-0)))+ (send (enc n (exp (gen) (mul x w-0 y y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y y-0)))+ (send (exp (gen) (mul x w-0 y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0 y)))+ (send (cat (exp (gen) y-0) (mul x w-0 y))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul w-0 y-0)))+ (send (cat (exp (gen) y) (mul w-0 y-0)))) ((recv y-0) (send y-0)))+ (label 563)+ (parent 508)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (8 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (7 0))+ ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (y-0 (mul x (rec y) w-0)) (y-0 (exp (gen) w)) (y h))+ (pen-non-orig x y-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 (rec y-0)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0)))))+ ((recv y-0) (send y-0)))+ (label 564)+ (parent 509)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (rec x)))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y-0 (rec x))))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (rec x)))+ (send (cat (exp (gen) y-0) (rec x)))) ((recv x) (send x)))+ (label 565)+ (parent 510)+ (unrealized (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) w-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x w-0) (y-0 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x)))))+ ((recv x) (send x)))+ (label 566)+ (parent 511)+ (unrealized (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y y-0 expn) (w-0 expr)+ (y-1 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-1 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-1)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0 y-1)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul w-0 (rec x))))+ (defstrand resp 2 (h h-0) (y y-1))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)) ((9 1) (7 0)))+ (absent (x (mul (rec y-0) w-0 y-1)) (y-1 h-0) (y-0 h)+ (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 y-1 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-1 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-1))) (send (exp (gen) (mul w-0 y-1))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0 y-1)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0 y-1))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-1) (mul w-0 (rec x)))))+ ((recv h-0) (send (exp (gen) y-1))) ((recv x) (send x)))+ (label 567)+ (parent 514)+ (unrealized (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x expn) (w-0 expr)+ (y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 y-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0 y-1)))+ (deflistener (cat (exp (gen) y-1) (mul x w-0 y-0)))+ (defstrand resp 2 (h h) (y y-1))+ (deflistener (cat (exp (gen) y-0) (mul w-0 y-1)))+ (defstrand resp 2 (h h-0) (y y-0))+ (deflistener y-1)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (9 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)) ((9 1) (7 0)))+ (absent (y-1 (mul x w-0 y-0)) (y-0 h-0) (y-1 h) (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-listener y-1) (mul w-0 y-1) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 y-1)))+ (send (enc n (exp (gen) (mul x w-0 y-0 y-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0 y-1)))+ (send (exp (gen) (mul x w-0 y-0 y-1))))+ ((recv (cat (exp (gen) y-1) (mul x w-0 y-0)))+ (send (cat (exp (gen) y-1) (mul x w-0 y-0))))+ ((recv h) (send (exp (gen) y-1)))+ ((recv (cat (exp (gen) y-0) (mul w-0 y-1)))+ (send (cat (exp (gen) y-0) (mul w-0 y-1))))+ ((recv h-0) (send (exp (gen) y-0))) ((recv y-1) (send y-1)))+ (label 568)+ (parent 515)+ (unrealized (4 0) (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x y-0 expn) (w-0 expr)+ (y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul w-0 (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (deflistener y-1)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (9 0)) ((9 1) (7 0)))+ (absent (y-1 (mul x (rec y-0) w-0)) (y-1 h-0) (y-0 h)+ (y (exp (gen) w)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-listener y-1) (mul w-0 (rec y-1)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul w-0 (rec y-1))))+ (send (cat (exp (gen) y-1) (mul w-0 (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))) ((recv y-1) (send y-1)))+ (label 569)+ (parent 516)+ (unrealized (5 0) (9 0))+ (comment "empty cohort")) (comment "Nothing left to do")
tst/dh_mim2.tst view
@@ -1,311 +1,11257 @@ (herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman)) -(comment "CPSA 3.2.2")-(comment "All input read from dh_mim2.scm")--(defprotocol dh_mim diffie-hellman- (defrole init- (vars (x expn) (h base) (n text))- (trace (send (exp (gen) x)) (recv h) (send (enc n (exp h x))))- (uniq-orig n)- (uniq-gen x)- (neq (h (gen))))- (defrole resp- (vars (y expn) (h base) (n text))- (trace (recv h) (send (exp (gen) y)) (recv (enc n (exp h y))))- (uniq-gen y)- (neq (h (gen)))- (ind-zero-in (y h)))- (comment "Diffie-hellman key exchange followed by an encryption"))--(defskeleton dh_mim- (vars (n text) (hx hy base) (x y expn))- (defstrand init 3 (n n) (h hy) (x x))- (defstrand resp 3 (n n) (h hx) (y y))- (precedes ((0 2) (1 2)))- (ind-zero-in (y hx))- (neq (hx (gen)) (hy (gen)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (comment "Agreement on the encrypted text only")- (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))- ((recv hx) (send (exp (gen) y)) (recv (enc n (exp hx y)))))- (label 0)- (unrealized (1 2))- (origs (n (0 2)))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dh_mim- (vars (n text) (hy base) (y x expn))- (defstrand init 3 (n n) (h (exp hy y)) (x x))- (defstrand resp 3 (n n) (h (exp hy x)) (y y))- (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))- (ind-zero-in (y (exp hy x)))- (neq ((exp hy y) (gen)) ((exp hy x) (gen)))- (pen-non-orig y x)- (uniq-gen y x)- (uniq-orig n)- (operation encryption-test (displaced 2 0 init 3) (enc n (exp hx y-0))- (1 2))- (traces- ((send (exp (gen) x)) (recv (exp hy y))- (send (enc n (exp hy (mul y x)))))- ((recv (exp hy x)) (send (exp (gen) y))- (recv (enc n (exp hy (mul y x))))))- (label 1)- (parent 0)- (unrealized (0 1) (1 0))- (origs (n (0 2)))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dh_mim- (vars (n text) (hx hy base) (x y expn))- (defstrand init 3 (n n) (h hy) (x x))- (defstrand resp 3 (n n) (h hx) (y y))- (deflistener (exp hx y))- (precedes ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2)))- (ind-zero-in (y hx))- (neq (hx (gen)) (hy (gen)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (operation encryption-test (added-listener (exp hx y))- (enc n (exp hx y)) (1 2))- (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))- ((recv hx) (send (exp (gen) y)) (recv (enc n (exp hx y))))- ((recv (exp hx y)) (send (exp hx y))))- (label 2)- (parent 0)- (unrealized (1 2) (2 0))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dh_mim- (vars (n text) (y x expn) (x-0 expr))- (defstrand init 3 (n n) (h (exp (gen) (mul y x-0))) (x x))- (defstrand resp 3 (n n) (h (exp (gen) (mul x x-0))) (y y))- (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))- (ind-zero-in (y (exp (gen) (mul x x-0))))- (neq ((exp (gen) (mul y x-0)) (gen)) ((exp (gen) (mul x x-0)) (gen)))- (pen-non-orig y x)- (uniq-gen y x)- (uniq-orig n)- (operation nonce-test (algebra-contracted (hy (exp (gen) x-0)))- (exp (gen) (mul x x-0)) (1 0) (exp (gen) x))- (traces- ((send (exp (gen) x)) (recv (exp (gen) (mul y x-0)))- (send (enc n (exp (gen) (mul y x x-0)))))- ((recv (exp (gen) (mul x x-0))) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y x x-0))))))- (label 3)- (parent 1)- (unrealized)- (shape)- (maps- ((0 1)- ((n n) (hx (exp (gen) (mul x x-0))) (hy (exp (gen) (mul y x-0)))- (x x) (y y))))- (origs (n (0 2))))--(defskeleton dh_mim- (vars (n text) (hy base) (x y expn) (y-0 expr))- (defstrand init 3 (n n) (h hy) (x x))- (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))- (deflistener (exp (gen) (mul y y-0)))- (precedes ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2)))- (ind-zero-in (y (exp (gen) y-0)))- (neq ((exp (gen) y-0) (gen)) (hy (gen)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (operation nonce-test (algebra-contracted (hx (exp (gen) y-0)))- (exp (gen) (mul y y-0)) (2 0) (exp (gen) y))- (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))- ((recv (exp (gen) y-0)) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0)))))- (label 4)- (parent 2)- (unrealized (1 2))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dh_mim- (vars (n text) (x y expn) (y-0 expr))- (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))- (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))- (deflistener (exp (gen) (mul y y-0)))- (precedes ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (1 2)))- (ind-zero-in (y (exp (gen) y-0)))- (neq ((exp (gen) y-0) (gen)) ((exp (gen) (mul (rec x) y y-0)) (gen)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (operation nonce-test- (contracted (hy (exp (gen) (mul (rec x) y y-0)))) n (1 2)- (enc n (exp (gen) (mul y y-0))))- (traces- ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))- (send (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) y-0)) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0)))))- (label 5)- (parent 4)- (unrealized (0 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dh_mim- (vars (n text) (hy base) (x y expn) (y-0 expr))- (defstrand init 3 (n n) (h hy) (x x))- (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))- (deflistener (exp (gen) (mul y y-0)))- (deflistener (exp hy x))- (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))- ((3 1) (1 2)))- (ind-zero-in (y (exp (gen) y-0)))- (neq ((exp (gen) y-0) (gen)) (hy (gen)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (operation nonce-test (added-listener (exp hy x)) n (1 2)- (enc n (exp hy x)))- (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))- ((recv (exp (gen) y-0)) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))- ((recv (exp hy x)) (send (exp hy x))))- (label 6)- (parent 4)- (unrealized (3 0))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dh_mim- (vars (n text) (y x expn) (y-0 expr))- (defstrand init 3 (n n) (h (exp (gen) (mul y y-0))) (x x))- (defstrand resp 3 (n n) (h (exp (gen) (mul x y-0))) (y y))- (deflistener (exp (gen) (mul y x y-0)))- (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0))- ((2 1) (1 2)))- (ind-zero-in (y (exp (gen) (mul x y-0))))- (neq ((exp (gen) (mul x y-0)) (gen)) ((exp (gen) (mul y y-0)) (gen)))- (pen-non-orig y x)- (uniq-gen y x)- (uniq-orig n)- (operation nonce-test- (algebra-contracted (x-0 x) (y-1 (mul x y-0)) (y-2 y-0))- (exp (gen) (mul y y-0)) (0 1))- (traces- ((send (exp (gen) x)) (recv (exp (gen) (mul y y-0)))- (send (enc n (exp (gen) (mul y x y-0)))))- ((recv (exp (gen) (mul x y-0))) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y x y-0)))))- ((recv (exp (gen) (mul y x y-0))) (send (exp (gen) (mul y x y-0)))))- (label 7)- (parent 5)- (unrealized (2 0))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dh_mim- (vars (n text) (x y expn) (y-0 x-0 expr))- (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))- (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))- (deflistener (exp (gen) (mul y y-0)))- (deflistener (exp (gen) (mul x x-0)))- (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))- ((3 1) (1 2)))- (ind-zero-in (y (exp (gen) y-0)))- (neq ((exp (gen) y-0) (gen)) ((exp (gen) x-0) (gen)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (operation nonce-test (algebra-contracted (hy (exp (gen) x-0)))- (exp (gen) (mul x x-0)) (3 0) (exp (gen) x))- (traces- ((send (exp (gen) x)) (recv (exp (gen) x-0))- (send (enc n (exp (gen) (mul x x-0)))))- ((recv (exp (gen) y-0)) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))- ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))- (label 8)- (parent 6)- (unrealized)- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dh_mim- (vars (n text) (y x expn) (y-0 expr))- (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x) y-0))) (x x))- (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))- (deflistener (exp (gen) (mul y y-0)))- (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (2 0))- ((2 1) (1 2)))- (ind-zero-in (y (exp (gen) y-0)))- (neq ((exp (gen) y-0) (gen)) ((exp (gen) (mul y (rec x) y-0)) (gen)))- (pen-non-orig y x)- (uniq-gen y x)- (uniq-orig n)- (operation nonce-test- (algebra-contracted (x-0 x) (y-1 (mul (rec x) y-0)) (y-2 y-0))- (exp (gen) (mul y y-0)) (2 0))- (traces- ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x) y-0)))- (send (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) y-0)) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0)))))- (label 9)- (parent 7)- (seen 7)- (unrealized (0 1))- (comment "1 in cohort - 0 not yet seen"))--(defskeleton dh_mim- (vars (n text) (x y expn) (y-0 x-0 expr))- (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))- (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))- (deflistener (exp (gen) (mul x x-0)))- (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((2 1) (1 2)))- (ind-zero-in (y (exp (gen) y-0)))- (neq ((exp (gen) y-0) (gen)) ((exp (gen) x-0) (gen)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (operation generalization deleted (2 0))- (traces- ((send (exp (gen) x)) (recv (exp (gen) x-0))- (send (enc n (exp (gen) (mul x x-0)))))- ((recv (exp (gen) y-0)) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y y-0)))))- ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))- (label 10)- (parent 8)- (unrealized)- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dh_mim- (vars (n text) (x y expn) (y-0 x-0 expr))- (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))- (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))- (precedes ((0 2) (1 2)))- (ind-zero-in (y (exp (gen) y-0)))- (neq ((exp (gen) y-0) (gen)) ((exp (gen) x-0) (gen)))- (pen-non-orig x y)- (uniq-gen x y)- (uniq-orig n)- (operation generalization deleted (2 0))- (traces- ((send (exp (gen) x)) (recv (exp (gen) x-0))- (send (enc n (exp (gen) (mul x x-0)))))- ((recv (exp (gen) y-0)) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul y y-0))))))- (label 11)- (parent 10)- (unrealized)- (shape)- (maps- ((0 1)- ((n n) (hx (exp (gen) y-0)) (hy (exp (gen) x-0)) (x x) (y y))))- (origs (n (0 2))))+(comment "CPSA 3.4.0")+(comment "All input read from dh_mim2.scm")++(defprotocol dh_mim diffie-hellman+ (defrole init+ (vars (x expn) (h base) (n text))+ (trace (send (exp (gen) x)) (recv h) (send (enc n (exp h x))))+ (uniq-orig n)+ (uniq-gen x)+ (neq (h (gen))))+ (defrole resp+ (vars (y expn) (h base) (n text))+ (trace (recv h) (send (exp (gen) y)) (recv (enc n (exp h y))))+ (uniq-gen y)+ (neq (h (gen)))+ (absent (y h)))+ (comment "Diffie-hellman key exchange followed by an encryption"))++(defskeleton dh_mim+ (vars (n text) (hx hy base) (x y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h hx) (y y))+ (precedes ((0 2) (1 2)))+ (absent (y hx))+ (neq (hx (gen)) (hy (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (comment "Agreement on the encrypted text only")+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv hx) (send (exp (gen) y)) (recv (enc n (exp hx y)))))+ (label 0)+ (unrealized (1 2))+ (origs (n (0 2)))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x y expn))+ (defstrand init 3 (n n) (h (exp hy y)) (x x))+ (defstrand resp 3 (n n) (h (exp hy x)) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))+ (absent (y (exp hy x)))+ (neq ((exp hy y) (gen)) ((exp hy x) (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (operation encryption-test (displaced 2 0 init 3) (enc n (exp hx y-0))+ (1 2))+ (traces+ ((send (exp (gen) x)) (recv (exp hy y))+ (send (enc n (exp hy (mul x y)))))+ ((recv (exp hy x)) (send (exp (gen) y))+ (recv (enc n (exp hy (mul x y))))))+ (label 1)+ (parent 0)+ (unrealized (0 1) (1 0))+ (origs (n (0 2)))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hx hy base) (x y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h hx) (y y))+ (deflistener (exp hx y))+ (precedes ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2)))+ (absent (y hx))+ (neq (hx (gen)) (hy (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (operation encryption-test (added-listener (exp hx y))+ (enc n (exp hx y)) (1 2))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv hx) (send (exp (gen) y)) (recv (enc n (exp hx y))))+ ((recv (exp hx y)) (send (exp hx y))))+ (label 2)+ (parent 0)+ (unrealized (1 2) (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))+ (absent (y (exp (gen) x)))+ (neq ((exp (gen) y) (gen)) ((exp (gen) x) (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul y x)))))+ ((recv (exp (gen) x)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x))))))+ (label 3)+ (parent 1)+ (unrealized)+ (shape)+ (maps+ ((0 1) ((n n) (hx (exp (gen) x)) (hy (exp (gen) y)) (x x) (y y))))+ (origs (n (0 2))))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 0) (1 0)))+ (absent (y (exp (gen) x-0)))+ (neq ((exp (gen) (mul (rec x) y x-0)) (gen)) ((exp (gen) x-0) (gen)))+ (pen-non-orig x y)+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0))))) ((send (exp (gen) x-0))))+ (label 4)+ (parent 1)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (neq (h (gen)) ((exp (gen) (mul (rec x) y y-0)) (gen))+ ((exp (gen) y-0) (gen)))+ (pen-non-orig x y)+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 5)+ (parent 1)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x y expn) (w expr))+ (defstrand init 3 (n n) (h (exp hy y)) (x x))+ (defstrand resp 3 (n n) (h (exp hy x)) (y y))+ (deflistener (cat (exp hy (mul x (rec w))) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y (exp hy x)))+ (neq ((exp hy y) (gen)) ((exp hy x) (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test+ (added-listener (cat (exp hy (mul x (rec w))) w)) (exp hy x) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp hy y))+ (send (enc n (exp hy (mul x y)))))+ ((recv (exp hy x)) (send (exp (gen) y))+ (recv (enc n (exp hy (mul x y)))))+ ((recv (cat (exp hy (mul x (rec w))) w))+ (send (cat (exp hy (mul x (rec w))) w))))+ (label 6)+ (parent 1)+ (unrealized (0 1) (2 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hx hy base) (x y expn) (w expr))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h hx) (y y))+ (deflistener (exp hx y))+ (deflistener (cat (exp hx (mul y (rec w))) w))+ (precedes ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y hx))+ (neq (hx (gen)) (hy (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp hx (mul y (rec w))) w)) (exp hx y) (2 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv hx) (send (exp (gen) y)) (recv (enc n (exp hx y))))+ ((recv (exp hx y)) (send (exp hx y)))+ ((recv (cat (exp hx (mul y (rec w))) w))+ (send (cat (exp hx (mul y (rec w))) w))))+ (label 7)+ (parent 2)+ (unrealized (1 2) (3 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 0) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (neq ((exp (gen) (mul (rec x) y x-0)) (gen)) ((exp (gen) x-0) (gen)))+ (pen-non-orig x y)+ (uniq-gen x y x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+ (exp (gen) (mul (rec x) y x-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0))))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))))+ (label 8)+ (parent 4)+ (unrealized (3 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) (mul (rec x) y y-0 (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (neq (h (gen)) ((exp (gen) (mul (rec x) y y-0)) (gen))+ ((exp (gen) y-0) (gen)))+ (pen-non-orig x y)+ (uniq-gen x y y-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y y-0 (rec w))) w))+ (exp (gen) (mul (rec x) y y-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) (mul (rec x) y y-0 (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) y y-0 (rec w))) w))))+ (label 9)+ (parent 5)+ (unrealized (3 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y w))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) (mul (rec x) y w)) (gen)) ((exp (gen) w) (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (hy (exp (gen) (mul (rec x) w))))+ (gen) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w)))+ (send (enc n (exp (gen) (mul y w)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w)))))+ ((recv (cat (gen) w)) (send (cat (gen) w))))+ (label 10)+ (parent 6)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y w))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x))) (y y))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y (exp (gen) (mul w x))))+ (neq ((exp (gen) (mul y w)) (gen)) ((exp (gen) (mul w x)) (gen)))+ (pen-non-orig y x)+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y w)))+ (send (enc n (exp (gen) (mul y w x)))))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w x)))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+ (label 11)+ (parent 6)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y w x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)))+ (absent (y (exp (gen) (mul w x-0))))+ (neq ((exp (gen) (mul (rec x) y w x-0)) (gen))+ ((exp (gen) (mul w x-0)) (gen)))+ (pen-non-orig x y)+ (precur (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w x-0)))+ (send (enc n (exp (gen) (mul y w x-0)))))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w x-0)))))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0))))+ (label 12)+ (parent 6)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y w y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)))+ (absent (y-0 h) (y (exp (gen) (mul w y-0))))+ (neq (h (gen)) ((exp (gen) (mul (rec x) y w y-0)) (gen))+ ((exp (gen) (mul w y-0)) (gen)))+ (pen-non-orig x y)+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w y-0)))+ (send (enc n (exp (gen) (mul y w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w y-0)))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv h) (send (exp (gen) y-0))))+ (label 13)+ (parent 6)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) (hy (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (contracted (hx (exp (gen) w)) (y-0 y) (w (mul w y))) (gen) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+ (label 14)+ (parent 7)+ (unrealized (1 2) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (w expr) (x y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x))) (y y))+ (deflistener (exp (gen) (mul w x y)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)))+ (absent (y (exp (gen) (mul w x))))+ (neq ((exp (gen) (mul w x)) (gen)) (hy (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x y)))))+ ((recv (exp (gen) (mul w x y))) (send (exp (gen) (mul w x y))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))))+ (label 15)+ (parent 7)+ (unrealized (1 2) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x-0))) (y y))+ (deflistener (exp (gen) (mul w x-0 y)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 0) (1 0)))+ (absent (y (exp (gen) (mul w x-0))))+ (neq ((exp (gen) (mul w x-0)) (gen)) (hy (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x-0 y)))))+ ((recv (exp (gen) (mul w x-0 y))) (send (exp (gen) (mul w x-0 y))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0))))+ (label 16)+ (parent 7)+ (unrealized (1 2) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) (hy (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 17)+ (parent 7)+ (unrealized (1 2))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w y))) (y y-0))+ (deflistener (exp (gen) (mul w y y-0)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 0)))+ (absent (y h) (y-0 (exp (gen) (mul w y))))+ (neq (h (gen)) ((exp (gen) (mul w y)) (gen)) (hy (gen)))+ (pen-non-orig x y-0)+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y y-0)))))+ ((recv (exp (gen) (mul w y y-0))) (send (exp (gen) (mul w y y-0))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 18)+ (parent 7)+ (unrealized (1 2) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul (rec x) y x-0)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 0) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (neq ((exp (gen) (mul (rec x) y x-0)) (gen)) ((exp (gen) x-0) (gen)))+ (pen-non-orig x y)+ (uniq-gen x y x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (contracted (x-1 x) (y-0 y) (x-2 x-0) (w (mul (rec x) y x-0))) (gen)+ (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0))))) ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul (rec x) y x-0)))+ (send (cat (gen) (mul (rec x) y x-0)))))+ (label 19)+ (parent 8)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) x)) (y y))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 0) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) x)))+ (neq ((exp (gen) (mul y x (rec x-0))) (gen)) ((exp (gen) x) (gen)))+ (pen-non-orig y x-0)+ (precur (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-1) (3 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul y x (rec x-0))))+ (send (enc n (exp (gen) (mul y x)))))+ ((recv (exp (gen) x)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x))))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))))+ (label 20)+ (parent 8)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 0) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (neq ((exp (gen) (mul (rec x) y x-0)) (gen)) ((exp (gen) x-0) (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 2 init 1) (exp (gen) x-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0))))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y)))+ (send (cat (exp (gen) x-0) (mul (rec x) y)))))+ (label 21)+ (parent 8)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul (rec x) y x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 0) (1 0))+ ((3 1) (0 1)) ((4 0) (3 0)))+ (absent (y (exp (gen) x-0)))+ (neq ((exp (gen) (mul (rec x) y x-0)) (gen)) ((exp (gen) x-0) (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0))))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul (rec x) y x-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul (rec x) y x-0 (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 22)+ (parent 8)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 0) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (neq ((exp (gen) x-0) (gen)) ((exp (gen) (mul (rec x) x-0 y)) (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0 y)))+ (send (enc n (exp (gen) (mul x-0 y)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x-0 y))))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0)))+ (send (cat (exp (gen) y) (mul (rec x) x-0)))))+ (label 23)+ (parent 8)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y x-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 0) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y-0 h) (y (exp (gen) x-0)))+ (neq (h (gen)) ((exp (gen) (mul (rec x) y x-0)) (gen))+ ((exp (gen) x-0) (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0))))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y x-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y x-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 24)+ (parent 8)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul (rec x) y y-0)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (neq (h (gen)) ((exp (gen) (mul (rec x) y y-0)) (gen))+ ((exp (gen) y-0) (gen)))+ (pen-non-orig x y)+ (uniq-gen x y y-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (contracted (x-0 x) (y-1 y) (y-2 y-0) (w (mul (rec x) y y-0))) (gen)+ (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul (rec x) y y-0)))+ (send (cat (gen) (mul (rec x) y y-0)))))+ (label 25)+ (parent 9)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul y y-0 (rec x) (rec x))))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (neq (h (gen)) ((exp (gen) (mul y y-0 (rec x))) (gen))+ ((exp (gen) y-0) (gen)))+ (pen-non-orig y x)+ (precur (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y y-0 (rec x))))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul y y-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y y-0 (rec x) (rec x))))))+ (label 26)+ (parent 9)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y y-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (3 0)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (neq (h (gen)) ((exp (gen) (mul (rec x) y y-0)) (gen))+ ((exp (gen) y-0) (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y y-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y y-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 27)+ (parent 9)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y)) (y y-0))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y-0 (exp (gen) y)) (y h))+ (neq ((exp (gen) y) (gen)) (h (gen))+ ((exp (gen) (mul (rec x) y y-0)) (gen)))+ (pen-non-orig x y-0)+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y)))+ (send (cat (exp (gen) y-0) (mul (rec x) y)))))+ (label 28)+ (parent 9)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (neq (h (gen)) ((exp (gen) (mul (rec x) y y-0)) (gen))+ ((exp (gen) y-0) (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 2 resp 2) (exp (gen) y-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y)))+ (send (cat (exp (gen) y-0) (mul (rec x) y)))))+ (label 29)+ (parent 9)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (x y y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul (rec x) y y-0 (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y-1 h-0) (y-0 h) (y (exp (gen) y-0)))+ (neq (h-0 (gen)) (h (gen)) ((exp (gen) (mul (rec x) y y-0)) (gen))+ ((exp (gen) y-0) (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul (rec x) y y-0 (rec y-1))))+ (send (cat (exp (gen) y-1) (mul (rec x) y y-0 (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 30)+ (parent 9)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x)) (y y))+ (deflistener (cat (gen) x))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y (exp (gen) x)))+ (neq ((exp (gen) x) (gen)) ((exp (gen) y) (gen)))+ (pen-non-orig x y)+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (exp (gen) x)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x y)))))+ ((recv (cat (gen) x)) (send (cat (gen) x))))+ (label 31)+ (parent 10)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y w))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) (mul (rec x) y w)) (gen)) ((exp (gen) w) (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y w)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w)))+ (send (enc n (exp (gen) (mul y w)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w)))))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))))+ (label 32)+ (parent 10)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y w))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x))) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))+ (absent (y (exp (gen) (mul w x))))+ (neq ((exp (gen) (mul y w)) (gen)) ((exp (gen) (mul w x)) (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y w)))+ (send (enc n (exp (gen) (mul y w x)))))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w x))))))+ (label 33)+ (parent 11)+ (unrealized)+ (shape)+ (maps+ ((0 1)+ ((n n) (hx (exp (gen) (mul w x))) (hy (exp (gen) (mul y w))) (x x)+ (y y))))+ (origs (n (0 2))))++(defskeleton dh_mim+ (vars (n text) (x x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 0) (2 0)))+ (absent (y (exp (gen) x)))+ (neq ((exp (gen) x) (gen)) ((exp (gen) y) (gen)))+ (pen-non-orig x y)+ (precur (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (exp (gen) x)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x y)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 34)+ (parent 12)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x y expn) (w expr) (x-0 expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y w x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul w x-0))))+ (neq ((exp (gen) (mul (rec x) y w x-0)) (gen))+ ((exp (gen) (mul w x-0)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener+ (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y w x-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w x-0)))+ (send (enc n (exp (gen) (mul y w x-0)))))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w x-0)))))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))+ (label 35)+ (parent 12)+ (unrealized (4 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x)) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((2 1) (1 0))+ ((3 1) (2 0)))+ (absent (y-0 (exp (gen) x)) (y h))+ (neq ((exp (gen) x) (gen)) (h (gen)) ((exp (gen) y-0) (gen)))+ (pen-non-orig x y-0)+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (exp (gen) x)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x y-0)))))+ ((recv (cat (exp (gen) y) (mul x (rec y))))+ (send (cat (exp (gen) y) (mul x (rec y)))))+ ((recv h) (send (exp (gen) y))))+ (label 36)+ (parent 13)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y w y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) (mul w y-0))))+ (neq (h (gen)) ((exp (gen) (mul (rec x) y w y-0)) (gen))+ ((exp (gen) (mul w y-0)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener+ (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y w y-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w y-0)))+ (send (enc n (exp (gen) (mul y w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w y-0)))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))+ (label 37)+ (parent 13)+ (unrealized (4 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (3 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) (hy (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv y) (send y)))+ (label 38)+ (parent 14)+ (unrealized (1 2) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (hy base) (w expr) (x y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x))) (y y))+ (deflistener (exp (gen) (mul w x y)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (3 0)))+ (absent (y (exp (gen) (mul w x))))+ (neq ((exp (gen) (mul w x)) (gen)) (hy (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x y)))))+ ((recv (exp (gen) (mul w x y))) (send (exp (gen) (mul w x y))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+ (label 39)+ (parent 15)+ (unrealized (1 2) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x-0))) (y y))+ (deflistener (exp (gen) (mul w x-0 y)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (deflistener y)+ (precedes ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 0) (1 0)) ((5 1) (3 0)))+ (absent (y (exp (gen) (mul w x-0))))+ (neq ((exp (gen) (mul w x-0)) (gen)) (hy (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x-0 y)))))+ ((recv (exp (gen) (mul w x-0 y))) (send (exp (gen) (mul w x-0 y))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0)))+ ((recv y) (send y)))+ (label 40)+ (parent 16)+ (unrealized (1 2) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) w y)) (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (hy (exp (gen) (mul (rec x) w y))))+ n (1 2) (enc n (exp (gen) (mul w y))))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w y)))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 41)+ (parent 17)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp hy x))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) (hy (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener (exp hy x)) n (1 2)+ (enc n (exp hy x)))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp hy x)) (send (exp hy x))))+ (label 42)+ (parent 17)+ (unrealized (4 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w y))) (y y-0))+ (deflistener (exp (gen) (mul w y y-0)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 0)) ((5 1) (3 0)))+ (absent (y h) (y-0 (exp (gen) (mul w y))))+ (neq (h (gen)) ((exp (gen) (mul w y)) (gen)) (hy (gen)))+ (pen-non-orig x y-0)+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (3 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y y-0)))))+ ((recv (exp (gen) (mul w y y-0))) (send (exp (gen) (mul w y y-0))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))) ((recv y-0) (send y-0)))+ (label 43)+ (parent 18)+ (unrealized (1 2) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (neq ((exp (gen) (mul w y)) (gen)) ((exp (gen) (mul x w)) (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test+ (contracted (x-0 x) (y-0 y) (w-0 (mul x w)) (w-1 (mul w y)) (y-1 y)+ (w (mul w y))) (gen) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+ (label 44)+ (parent 32)+ (unrealized (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x x))) (y y))+ (deflistener (cat (gen) (mul w x x)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) (mul w x x))))+ (neq ((exp (gen) (mul w x y)) (gen)) ((exp (gen) (mul w x x)) (gen)))+ (pen-non-orig x y)+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y)))+ (send (enc n (exp (gen) (mul w x x y)))))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x x y)))))+ ((recv (cat (gen) (mul w x x))) (send (cat (gen) (mul w x x))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))))+ (label 45)+ (parent 32)+ (unrealized (0 1) (1 0) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (neq ((exp (gen) (mul w x-0 y)) (gen))+ ((exp (gen) (mul x w x-0)) (gen)))+ (pen-non-orig x y)+ (precur (3 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (cat (gen) (mul x w x-0))) (send (cat (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0))))+ (label 46)+ (parent 32)+ (unrealized (0 1) (1 0) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (neq ((exp (gen) (mul x w)) (gen)) ((exp (gen) (mul w y)) (gen)))+ (pen-non-orig x y)+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 47)+ (parent 32)+ (unrealized (2 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (neq (h (gen)) ((exp (gen) (mul w y y-0)) (gen))+ ((exp (gen) (mul x w y)) (gen)))+ (pen-non-orig x y-0)+ (precur (3 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (gen) (mul x w y))) (send (cat (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 48)+ (parent 32)+ (unrealized (0 1) (1 0) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (neq ((exp (gen) (mul w y)) (gen)) ((exp (gen) (mul x w)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (y-0 y) (w-0 (mul x (rec x-0) w)) (x-2 x-0)+ (w-1 (mul w y)) (y-1 y) (w (mul w y))) (gen) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+ (label 49)+ (parent 35)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x-0 x-0))) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul w x-0 x-0))))+ (neq ((exp (gen) (mul w x-0 y)) (gen))+ ((exp (gen) (mul w x-0 x-0)) (gen)))+ (pen-non-orig x-0 y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-1) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul w x-0 x-0 y)))))+ ((recv (exp (gen) (mul w x-0 x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x-0 x-0 y)))))+ ((recv (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w x-0 x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))))+ (label 50)+ (parent 35)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w x-0))))+ (neq ((exp (gen) (mul w x-0 y)) (gen))+ ((exp (gen) (mul x w x-0)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 3 init 1) (exp (gen) x-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))))+ (label 51)+ (parent 35)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x x-0 expn) (w expr) (x-1 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-1 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-1))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w y)))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 0) (2 0)))+ (absent (y (exp (gen) (mul x w x-1))))+ (neq ((exp (gen) (mul w x-1 y)) (gen))+ ((exp (gen) (mul x w x-1)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1 y)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-1 y)))+ (send (enc n (exp (gen) (mul x w x-1 y)))))+ ((recv (exp (gen) (mul x w x-1))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-1 y)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w x-1))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul w y)))+ (send (cat (exp (gen) x-1) (mul w y)))) ((send (exp (gen) x-1))))+ (label 52)+ (parent 35)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (neq ((exp (gen) (mul x w)) (gen)) ((exp (gen) (mul w y)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 53)+ (parent 35)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x x-0 expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (neq (h (gen)) ((exp (gen) (mul w y y-0)) (gen))+ ((exp (gen) (mul x w y)) (gen)))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w y))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 54)+ (parent 35)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y h) (y-0 (exp (gen) (mul x w))))+ (neq (h (gen)) ((exp (gen) (mul w y-0)) (gen))+ ((exp (gen) (mul x w)) (gen)))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y-0) (w-0 (mul x (rec y) w)) (y-2 y)+ (w-1 (mul w y-0)) (y-3 y-0) (w (mul w y-0))) (gen) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y-0)))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (gen) (mul w y-0))) (send (cat (gen) (mul w y-0)))))+ (label 55)+ (parent 37)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x x))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y h) (y-0 (exp (gen) (mul w x x))))+ (neq (h (gen)) ((exp (gen) (mul w x y-0)) (gen))+ ((exp (gen) (mul w x x)) (gen)))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y-0)))+ (send (enc n (exp (gen) (mul w x x y-0)))))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w x x y-0)))))+ ((recv (cat (exp (gen) y) (mul (rec y) w x x)))+ (send (cat (exp (gen) y) (mul (rec y) w x x))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul w y-0)))+ (send (cat (exp (gen) x) (mul w y-0)))))+ (label 56)+ (parent 37)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w y-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 0) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w x-0))))+ (neq (h (gen)) ((exp (gen) (mul w x-0 y-0)) (gen))+ ((exp (gen) (mul x w x-0)) (gen)))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x y x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y-0)))+ (send (enc n (exp (gen) (mul x w x-0 y-0)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w x-0 y-0)))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w x-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul w y-0)))+ (send (cat (exp (gen) x-0) (mul w y-0))))+ ((send (exp (gen) x-0))))+ (label 57)+ (parent 37)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y-0 (exp (gen) (mul x w))) (y h))+ (neq ((exp (gen) (mul x w)) (gen)) (h (gen))+ ((exp (gen) (mul w y-0)) (gen)))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y-0)))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))+ (label 58)+ (parent 37)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (neq (h (gen)) ((exp (gen) (mul w y y-0)) (gen))+ ((exp (gen) (mul x w y)) (gen)))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 3 resp 2) (exp (gen) y-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0)))))+ (label 59)+ (parent 37)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (x y expn) (w expr) (y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 y-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y-0))) (y y-1))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w y-1)))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (2 0)))+ (absent (y-0 h-0) (y h) (y-1 (exp (gen) (mul x w y-0))))+ (neq (h-0 (gen)) (h (gen)) ((exp (gen) (mul w y-0 y-1)) (gen))+ ((exp (gen) (mul x w y-0)) (gen)))+ (pen-non-orig x y-1)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 y-1)))+ (send (enc n (exp (gen) (mul x w y-0 y-1)))))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) y-1))+ (recv (enc n (exp (gen) (mul x w y-0 y-1)))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w y-1)))+ (send (cat (exp (gen) y-0) (mul w y-1))))+ ((recv h-0) (send (exp (gen) y-0))))+ (label 60)+ (parent 37)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (neq ((exp (gen) x) (gen)) ((exp (gen) y) (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (exp (gen) x)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x y)))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+ (label 61)+ (parent 41)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) w y)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))+ (exp (gen) (mul (rec x) w y)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w y)))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))))+ (label 62)+ (parent 41)+ (unrealized (4 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (hy (exp (gen) (rec x)))) (gen)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen))))+ (label 63)+ (parent 42)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (0 1)) ((5 0) (4 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) x-0)) (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0))))+ (label 64)+ (parent 42)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) y)) (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y))))+ (label 65)+ (parent 42)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1)) ((5 1) (4 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) y-0)) (gen)))+ (pen-non-orig x y)+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0))))+ (label 66)+ (parent 42)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (hy base) (x expn) (w expr) (y expn) (w-0 expr))+ (defstrand init 3 (n n) (h hy) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp hy x))+ (deflistener (cat (exp hy (mul x (rec w-0))) w-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) (hy (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp hy (mul x (rec w-0))) w-0)) (exp hy x)+ (4 0))+ (traces ((send (exp (gen) x)) (recv hy) (send (enc n (exp hy x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp hy x)) (send (exp hy x)))+ ((recv (cat (exp hy (mul x (rec w-0))) w-0))+ (send (cat (exp hy (mul x (rec w-0))) w-0))))+ (label 67)+ (parent 42)+ (unrealized (5 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y (exp (gen) (mul x w))))+ (neq ((exp (gen) (mul w y)) (gen)) ((exp (gen) (mul x w)) (gen)))+ (pen-non-orig x y)+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv y) (send y)))+ (label 68)+ (parent 44)+ (unrealized (2 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x x))) (y y))+ (deflistener (cat (gen) (mul w x x)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y (exp (gen) (mul w x x))))+ (neq ((exp (gen) (mul w x y)) (gen)) ((exp (gen) (mul w x x)) (gen)))+ (pen-non-orig x y)+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y)))+ (send (enc n (exp (gen) (mul w x x y)))))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x x y)))))+ ((recv (cat (gen) (mul w x x))) (send (cat (gen) (mul w x x))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+ (label 69)+ (parent 45)+ (unrealized (1 0) (2 0) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)) ((5 1) (3 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (neq ((exp (gen) (mul w x-0 y)) (gen))+ ((exp (gen) (mul x w x-0)) (gen)))+ (pen-non-orig x y)+ (precur (3 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (cat (gen) (mul x w x-0))) (send (cat (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0)))+ ((recv y) (send y)))+ (label 70)+ (parent 46)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (absent (x w) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w y (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w) w (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))))+ (label 71)+ (parent 47)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)))+ (absent (y (exp (gen) (mul x w))))+ (neq ((exp (gen) (mul x w)) (gen)) ((exp (gen) (mul w y)) (gen)))+ (pen-non-orig x y)+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv x) (send x)))+ (label 72)+ (parent 47)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)) ((5 1) (3 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (neq (h (gen)) ((exp (gen) (mul w y y-0)) (gen))+ ((exp (gen) (mul x w y)) (gen)))+ (pen-non-orig x y-0)+ (precur (3 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (gen) (mul x w y))) (send (cat (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))) ((recv y-0) (send y-0)))+ (label 73)+ (parent 48)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul x w))))+ (neq ((exp (gen) (mul w y)) (gen)) ((exp (gen) (mul x w)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv y) (send y)))+ (label 74)+ (parent 49)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x-0 x-0))) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul w x-0 x-0))))+ (neq ((exp (gen) (mul w x-0 y)) (gen))+ ((exp (gen) (mul w x-0 x-0)) (gen)))+ (pen-non-orig x-0 y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul w x-0 x-0 y)))))+ ((recv (exp (gen) (mul w x-0 x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x-0 x-0 y)))))+ ((recv (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w x-0 x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((recv y) (send y)))+ (label 75)+ (parent 50)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (neq ((exp (gen) (mul w x-0 y)) (gen))+ ((exp (gen) (mul x w x-0)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((recv y) (send y)))+ (label 76)+ (parent 51)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x x-0 expn) (w expr) (x-1 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-1 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-1))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w y)))+ (defstrand init 1 (x x-1))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 0) (2 0)) ((6 1) (4 0)))+ (absent (y (exp (gen) (mul x w x-1))))+ (neq ((exp (gen) (mul w x-1 y)) (gen))+ ((exp (gen) (mul x w x-1)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-1 y)))+ (send (enc n (exp (gen) (mul x w x-1 y)))))+ ((recv (exp (gen) (mul x w x-1))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-1 y)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w x-1))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul w y)))+ (send (cat (exp (gen) x-1) (mul w y)))) ((send (exp (gen) x-1)))+ ((recv y) (send y)))+ (label 77)+ (parent 52)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) x-0)) (y y))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (neq ((exp (gen) x-0) (gen)) ((exp (gen) (mul y (rec x) x-0)) (gen)))+ (pen-non-orig y x)+ (precur (4 0) (2 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x) x-0)))+ (send (enc n (exp (gen) (mul y x-0)))))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0)))))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0)))+ (send (cat (exp (gen) y) (mul (rec x) x-0)))))+ (label 78)+ (parent 53)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w (rec x-0))))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (x-0 (mul (rec x) w)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w y (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w))+ (mul (rec x) w) (2 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w y (rec x-0))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (cat (exp (gen) x) (mul (rec x) w)))+ (send (cat (exp (gen) x) (mul (rec x) w)))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul w (rec x-0))))+ (send (cat (exp (gen) y) (mul w (rec x-0))))))+ (label 79)+ (parent 53)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w x-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (x-0 (mul x w)) (y (exp (gen) (mul x w x-0))))+ (neq ((exp (gen) (mul x w x-0)) (gen))+ ((exp (gen) (mul w y x-0)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w)) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y x-0)))+ (send (enc n (exp (gen) (mul x w y x-0)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y x-0)))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w x-0)))+ (send (cat (exp (gen) y) (mul w x-0)))))+ (label 80)+ (parent 53)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x x-0 expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (2 0)) ((6 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (neq (h (gen)) ((exp (gen) (mul w y y-0)) (gen))+ ((exp (gen) (mul x w y)) (gen)))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w y))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))) ((recv y-0) (send y-0)))+ (label 81)+ (parent 54)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w))))+ (neq (h (gen)) ((exp (gen) (mul w y-0)) (gen))+ ((exp (gen) (mul x w)) (gen)))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y-0)))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (gen) (mul w y-0))) (send (cat (gen) (mul w y-0))))+ ((recv y-0) (send y-0)))+ (label 82)+ (parent 55)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x x))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul w x x))))+ (neq (h (gen)) ((exp (gen) (mul w x y-0)) (gen))+ ((exp (gen) (mul w x x)) (gen)))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y-0)))+ (send (enc n (exp (gen) (mul w x x y-0)))))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w x x y-0)))))+ ((recv (cat (exp (gen) y) (mul (rec y) w x x)))+ (send (cat (exp (gen) y) (mul (rec y) w x x))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul w y-0)))+ (send (cat (exp (gen) x) (mul w y-0)))) ((recv y-0) (send y-0)))+ (label 83)+ (parent 56)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x y expn) (w expr) (x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w y-0)))+ (defstrand init 1 (x x-0))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 0) (2 0)) ((6 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w x-0))))+ (neq (h (gen)) ((exp (gen) (mul w x-0 y-0)) (gen))+ ((exp (gen) (mul x w x-0)) (gen)))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x y x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y-0)))+ (send (enc n (exp (gen) (mul x w x-0 y-0)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w x-0 y-0)))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w x-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul w y-0)))+ (send (cat (exp (gen) x-0) (mul w y-0)))) ((send (exp (gen) x-0)))+ ((recv y-0) (send y-0)))+ (label 84)+ (parent 57)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) y-0)) (y y))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) y-0)) (y-0 h))+ (neq ((exp (gen) y-0) (gen)) (h (gen))+ ((exp (gen) (mul y (rec x) y-0)) (gen)))+ (pen-non-orig y x)+ (precur (4 0) (2 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x) y-0)))+ (send (enc n (exp (gen) (mul y y-0)))))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) y-0)))+ (send (cat (exp (gen) y) (mul (rec x) y-0)))))+ (label 85)+ (parent 58)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (x (mul (rec y) w)) (y-0 (exp (gen) w)) (y h))+ (neq ((exp (gen) w) (gen)) (h (gen))+ ((exp (gen) (mul w y-0 (rec x))) (gen)))+ (pen-non-orig y-0 x)+ (precur (4 0) (2 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w))+ (mul (rec y) w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (cat (exp (gen) y) (mul (rec y) w)))+ (send (cat (exp (gen) y) (mul (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x))))))+ (label 86)+ (parent 58)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) (mul x w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y-0 (mul x w)) (y (exp (gen) (mul x w y-0))) (y-0 h))+ (neq ((exp (gen) (mul x w y-0)) (gen)) (h (gen))+ ((exp (gen) (mul w y y-0)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w)) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (exp (gen) y-0) (mul x w)))+ (send (cat (exp (gen) y-0) (mul x w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0)))))+ (label 87)+ (parent 58)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (neq (h (gen)) ((exp (gen) (mul w y y-0)) (gen))+ ((exp (gen) (mul x w y)) (gen)))+ (pen-non-orig x y-0)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0)))) ((recv y-0) (send y-0)))+ (label 88)+ (parent 59)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (x y expn) (w expr) (y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 y-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y-0))) (y y-1))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w y-1)))+ (defstrand resp 2 (h h-0) (y y-0))+ (deflistener y-1)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (2 0)) ((6 1) (4 0)))+ (absent (y-0 h-0) (y h) (y-1 (exp (gen) (mul x w y-0))))+ (neq (h-0 (gen)) (h (gen)) ((exp (gen) (mul w y-0 y-1)) (gen))+ ((exp (gen) (mul x w y-0)) (gen)))+ (pen-non-orig x y-1)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-listener y-1) (mul w y-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 y-1)))+ (send (enc n (exp (gen) (mul x w y-0 y-1)))))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) y-1))+ (recv (enc n (exp (gen) (mul x w y-0 y-1)))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w y-1)))+ (send (cat (exp (gen) y-0) (mul w y-1))))+ ((recv h-0) (send (exp (gen) y-0))) ((recv y-1) (send y-1)))+ (label 89)+ (parent 60)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (neq ((exp (gen) (mul x w)) (gen)) ((exp (gen) (mul w y)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-0 (mul x w)) (y-0 y) (w-1 (mul w y)) (y-1 y)+ (w (mul w y))) (gen) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+ (label 90)+ (parent 62)+ (unrealized (2 0) (3 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x x))) (y y))+ (deflistener (exp (gen) (mul w x x y)))+ (deflistener (cat (exp (gen) y) (mul w x x)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul w x x))))+ (neq ((exp (gen) (mul w x x)) (gen)) ((exp (gen) (mul w x y)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y)))+ (send (enc n (exp (gen) (mul w x x y)))))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x x y)))))+ ((recv (exp (gen) (mul w x x y))) (send (exp (gen) (mul w x x y))))+ ((recv (cat (exp (gen) y) (mul w x x)))+ (send (cat (exp (gen) y) (mul w x x))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))))+ (label 91)+ (parent 62)+ (unrealized (0 1) (1 0) (2 0) (3 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (exp (gen) (mul x w x-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 0) (1 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (neq ((exp (gen) (mul x w x-0)) (gen))+ ((exp (gen) (mul w x-0 y)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0 y)))+ (send (exp (gen) (mul x w x-0 y))))+ ((recv (cat (exp (gen) y) (mul x w x-0)))+ (send (cat (exp (gen) y) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0))))+ (label 92)+ (parent 62)+ (unrealized (0 1) (1 0) (2 0) (3 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (neq ((exp (gen) (mul x w)) (gen)) ((exp (gen) (mul w y)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 93)+ (parent 62)+ (unrealized (2 0) (3 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (exp (gen) (mul x w y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (1 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (neq (h (gen)) ((exp (gen) (mul x w y)) (gen))+ ((exp (gen) (mul w y y-0)) (gen)))+ (pen-non-orig x y-0)+ (precur (4 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y y-0)))+ (send (exp (gen) (mul x w y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w y)))+ (send (cat (exp (gen) y-0) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 94)+ (parent 62)+ (unrealized (0 1) (1 0) (2 0) (3 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (exp (gen) (mul (rec x) (rec w-0))) w-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) (rec w-0))) w-0))+ (exp (gen) (rec x)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) (mul (rec x) (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) (rec w-0))) w-0))))+ (label 95)+ (parent 63)+ (unrealized (5 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) x-0 (rec w-0))) w-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) x-0)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) x-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) x-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) (mul (rec x) x-0 (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) x-0 (rec w-0))) w-0))))+ (label 96)+ (parent 64)+ (unrealized (6 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) (mul (rec x) y (rec w-0))) w-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) y)) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) (mul (rec x) y (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) y (rec w-0))) w-0))))+ (label 97)+ (parent 65)+ (unrealized (5 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) (mul (rec x) y-0 (rec w-0))) w-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) y-0)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) (mul (rec x) y-0 (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) y-0 (rec w-0))) w-0))))+ (label 98)+ (parent 66)+ (unrealized (6 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (gen) w-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) w-0)) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (hy (exp (gen) (mul (rec x) w-0))))+ (gen) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0)))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0))))+ (label 99)+ (parent 67)+ (unrealized (0 1))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) x) w-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0))))+ (label 100)+ (parent 67)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) w-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (0 1))+ ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) w-0 x-0)) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0 x-0)))+ (send (enc n (exp (gen) (mul w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x-0))) (send (exp (gen) (mul w-0 x-0))))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0)))+ ((send (exp (gen) x-0))))+ (label 101)+ (parent 67)+ (unrealized (0 1))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) y) w-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) w-0 y)) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0 y)))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0))))+ (label 102)+ (parent 67)+ (unrealized (0 1))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y expn) (w-0 expr)+ (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) w-0))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1))+ ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) w-0 y-0)) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0 y-0)))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv h) (send (exp (gen) y-0))))+ (label 103)+ (parent 67)+ (unrealized (0 1))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (x w) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w y (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))) ((recv x) (send x)))+ (label 104)+ (parent 71)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (4 0))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (x-0 (mul (rec x) w)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w y (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w y (rec x-0))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (cat (exp (gen) x) (mul (rec x) w)))+ (send (cat (exp (gen) x) (mul (rec x) w)))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul w (rec x-0))))+ (send (cat (exp (gen) y) (mul w (rec x-0)))))+ ((recv x-0) (send x-0)))+ (label 105)+ (parent 79)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w x-0)))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (x-0 (mul x w)) (y (exp (gen) (mul x w x-0))))+ (neq ((exp (gen) (mul x w x-0)) (gen))+ ((exp (gen) (mul w y x-0)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y x-0)))+ (send (enc n (exp (gen) (mul x w y x-0)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y x-0)))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w x-0)))+ (send (cat (exp (gen) y) (mul w x-0)))) ((recv x-0) (send x-0)))+ (label 106)+ (parent 80)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (4 0))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (x (mul (rec y) w)) (y-0 (exp (gen) w)) (y h))+ (neq ((exp (gen) w) (gen)) (h (gen))+ ((exp (gen) (mul w y-0 (rec x))) (gen)))+ (pen-non-orig y-0 x)+ (precur (4 0) (2 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (cat (exp (gen) y) (mul (rec y) w)))+ (send (cat (exp (gen) y) (mul (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x))))) ((recv x) (send x)))+ (label 107)+ (parent 86)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) (mul x w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (5 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y-0 (mul x w)) (y (exp (gen) (mul x w y-0))) (y-0 h))+ (neq ((exp (gen) (mul x w y-0)) (gen)) (h (gen))+ ((exp (gen) (mul w y y-0)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (cat (exp (gen) y-0) (mul x w)))+ (send (cat (exp (gen) y-0) (mul x w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0)))) ((recv y-0) (send y-0)))+ (label 108)+ (parent 87)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (5 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul x w))))+ (neq ((exp (gen) (mul x w)) (gen)) ((exp (gen) (mul w y)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv y) (send y)))+ (label 109)+ (parent 90)+ (unrealized (2 0) (3 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul w x x))) (y y))+ (deflistener (exp (gen) (mul w x x y)))+ (deflistener (cat (exp (gen) y) (mul w x x)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (5 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul w x x))))+ (neq ((exp (gen) (mul w x x)) (gen)) ((exp (gen) (mul w x y)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y)))+ (send (enc n (exp (gen) (mul w x x y)))))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x x y)))))+ ((recv (exp (gen) (mul w x x y))) (send (exp (gen) (mul w x x y))))+ ((recv (cat (exp (gen) y) (mul w x x)))+ (send (cat (exp (gen) y) (mul w x x))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+ (label 110)+ (parent 91)+ (unrealized (1 0) (2 0) (3 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (exp (gen) (mul x w x-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (deflistener y)+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (6 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 0) (1 0))+ ((6 1) (4 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (neq ((exp (gen) (mul x w x-0)) (gen))+ ((exp (gen) (mul w x-0 y)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))))+ ((recv (exp (gen) (mul x w x-0 y)))+ (send (exp (gen) (mul x w x-0 y))))+ ((recv (cat (exp (gen) y) (mul x w x-0)))+ (send (cat (exp (gen) y) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0)))+ ((recv y) (send y)))+ (label 111)+ (parent 92)+ (unrealized (1 0) (2 0) (3 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (4 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (x w) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w y (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (4 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w) w (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))))+ (label 112)+ (parent 93)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1))+ ((5 1) (3 0)))+ (absent (y (exp (gen) (mul x w))))+ (neq ((exp (gen) (mul x w)) (gen)) ((exp (gen) (mul w y)) (gen)))+ (pen-non-orig x y)+ (precur (4 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv x) (send x)))+ (label 113)+ (parent 93)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (exp (gen) (mul x w y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 1) (6 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (1 0))+ ((6 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (neq (h (gen)) ((exp (gen) (mul x w y)) (gen))+ ((exp (gen) (mul w y y-0)) (gen)))+ (pen-non-orig x y-0)+ (precur (4 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))))+ ((recv (exp (gen) (mul x w y y-0)))+ (send (exp (gen) (mul x w y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w y)))+ (send (cat (exp (gen) y-0) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))) ((recv y-0) (send y-0)))+ (label 114)+ (parent 94)+ (unrealized (1 0) (2 0) (3 0) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (rec x)))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w-0 (rec x))) (gen) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x)))))+ (label 115)+ (parent 95)+ (unrealized (0 1) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x))))))+ (label 116)+ (parent 95)+ (unrealized (0 1) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1))+ ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 117)+ (parent 95)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (exp (gen) y) (mul (rec x) (rec y))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) y) (mul (rec x) (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) (rec y))))))+ (label 118)+ (parent 95)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1))+ ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 119)+ (parent 95)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul (rec x) x-0)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) x-0)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w-0 (mul (rec x) x-0))) (gen) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul (rec x) x-0)))+ (send (cat (gen) (mul (rec x) x-0)))))+ (label 120)+ (parent 96)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul x (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-1) (6 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x)) (send (exp (gen) x))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))))+ (label 121)+ (parent 96)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (rec x)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) x-0)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 5 init 1) (exp (gen) x-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (rec x)))+ (send (cat (exp (gen) x-0) (rec x)))))+ (label 122)+ (parent 96)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 0) (6 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) x-0)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 123)+ (parent 96)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) x-0)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 7 1 resp 2) (exp (gen) y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))))+ (label 124)+ (parent 96)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) x-0)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 125)+ (parent 96)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (gen) (mul (rec x) y)))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) y)) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-0 y) (w-0 (mul (rec x) y))) (gen) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (gen) (mul (rec x) y)))+ (send (cat (gen) (mul (rec x) y)))))+ (label 126)+ (parent 97)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul y (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x) (rec x))))))+ (label 127)+ (parent 97)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (0 1)) ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) y)) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 128)+ (parent 97)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) y)) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))))+ (label 129)+ (parent 97)+ (unrealized (0 1) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) y)) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 130)+ (parent 97)+ (unrealized (0 1) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul (rec x) y-0)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) y-0)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y-0) (w-0 (mul (rec x) y-0))) (gen) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul (rec x) y-0)))+ (send (cat (gen) (mul (rec x) y-0)))))+ (label 131)+ (parent 98)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul y-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y-0 (rec x))))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))))+ (label 132)+ (parent 98)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 0) (6 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) y-0)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 133)+ (parent 98)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)) ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 (exp (gen) w)) (y h))+ (neq ((exp (gen) w) (gen)) (h (gen))+ ((exp (gen) (mul (rec x) y)) (gen)))+ (pen-non-orig x y-0)+ (precur (6 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 1 resp 2) (exp (gen) y-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))))+ (label 134)+ (parent 98)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (rec x)))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) y-0)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 5 resp 2) (exp (gen) y-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (rec x)))+ (send (cat (exp (gen) y-0) (rec x)))))+ (label 135)+ (parent 98)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y-1 h-0) (y-0 h) (y (exp (gen) w)))+ (neq (h-0 (gen)) (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) y-0)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1))))+ (send (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 136)+ (parent 98)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) x)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (gen) (mul x x)))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) x) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x)))))+ (label 137)+ (parent 99)+ (unrealized (4 0) (5 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (0 1))+ ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) x-0) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0))))+ ((send (exp (gen) x-0))))+ (label 138)+ (parent 99)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (gen) (mul x y)))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) y) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y)))))+ (label 139)+ (parent 99)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (gen) (mul x y-0)))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1))+ ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) y-0) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (gen) (mul x y-0))) (send (cat (gen) (mul x y-0))))+ ((recv h) (send (exp (gen) y-0))))+ (label 140)+ (parent 99)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 w-1 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (gen) w-0))+ (deflistener (cat (exp (gen) (mul (rec x) w-0 (rec w-1))) w-1))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) w-0)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w-0 (rec w-1))) w-1))+ (exp (gen) (mul (rec x) w-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0)))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0)))+ ((recv (cat (exp (gen) (mul (rec x) w-0 (rec w-1))) w-1))+ (send (cat (exp (gen) (mul (rec x) w-0 (rec w-1))) w-1))))+ (label 141)+ (parent 99)+ (unrealized (6 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) x) w-0))+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))+ ((3 1) (1 2)) ((4 1) (3 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0))))+ (label 142)+ (parent 100)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x-0 x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) x-0 x-0)))+ (defstrand init 1 (x x))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (0 1))+ ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) x-0) (gen)))+ (pen-non-orig y x-0)+ (precur (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-1) (0 1))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x-0 x-0))) (send (exp (gen) (mul x-0 x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) x-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) x-0 x-0))))+ ((send (exp (gen) x))))+ (label 143)+ (parent 101)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (0 1))+ ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) x-0) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 6 init 1) (exp (gen) x-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x)))+ ((send (exp (gen) x-0))))+ (label 144)+ (parent 101)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-1)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))+ (defstrand init 1 (x x-0))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (0 1))+ ((6 0) (5 0)) ((7 0) (0 1)) ((7 0) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) x-1) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-1))+ (send (enc n (exp (gen) (mul x x-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) x-1))))+ ((send (exp (gen) x-0))) ((send (exp (gen) x-1))))+ (label 145)+ (parent 101)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)) ((6 0) (0 1)) ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) y) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 7 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) y)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) y))))+ ((send (exp (gen) x-0))))+ (label 146)+ (parent 101)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y-0)))+ (defstrand init 1 (x x-0))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (0 1))+ ((6 0) (5 0)) ((7 1) (0 1)) ((7 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) y-0) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) y-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) y-0))))+ ((send (exp (gen) x-0))) ((recv h) (send (exp (gen) y-0))))+ (label 147)+ (parent 101)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w expr) (y expn) (w-0 expr) (x-0 expn)+ (w-1 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) w-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) w-0 x-0 (rec w-1))) w-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) w-0 x-0)) (gen)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener+ (cat (exp (gen) (mul (rec x) w-0 x-0 (rec w-1))) w-1))+ (exp (gen) (mul (rec x) w-0 x-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0 x-0)))+ (send (enc n (exp (gen) (mul w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x-0))) (send (exp (gen) (mul w-0 x-0))))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) (mul (rec x) w-0 x-0 (rec w-1))) w-1))+ (send (cat (exp (gen) (mul (rec x) w-0 x-0 (rec w-1))) w-1))))+ (label 148)+ (parent 101)+ (unrealized (7 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) x)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) x x)))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) x) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 6 0 init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (exp (gen) y) (mul (rec y) x x)))+ (send (cat (exp (gen) y) (mul (rec y) x x)))))+ (label 149)+ (parent 102)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)) ((6 0) (0 1)) ((6 0) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) x-0) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) x-0)))+ (send (cat (exp (gen) y) (mul x (rec y) x-0))))+ ((send (exp (gen) x-0))))+ (label 150)+ (parent 102)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) y) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 6 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+ (label 151)+ (parent 102)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)) ((6 1) (0 1)) ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) y-0) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) y-0))))+ ((recv h) (send (exp (gen) y-0))))+ (label 152)+ (parent 102)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (x expn) (w w-0 expr) (y expn) (w-1 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) y) w-0))+ (deflistener (cat (exp (gen) (mul (rec x) w-0 y (rec w-1))) w-1))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) w-0 y)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w-0 y (rec w-1))) w-1))+ (exp (gen) (mul (rec x) w-0 y)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0 y)))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0)))+ ((recv (cat (exp (gen) (mul (rec x) w-0 y (rec w-1))) w-1))+ (send (cat (exp (gen) (mul (rec x) w-0 y (rec w-1))) w-1))))+ (label 153)+ (parent 102)+ (unrealized (6 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) x)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) x x)))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1))+ ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) x) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) x x)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) x x))))+ ((recv h) (send (exp (gen) y-0))))+ (label 154)+ (parent 103)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) x-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1))+ ((6 1) (5 0)) ((7 0) (0 1)) ((7 0) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) x-0) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) x-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) x-0))))+ ((recv h) (send (exp (gen) y-0))) ((send (exp (gen) x-0))))+ (label 155)+ (parent 103)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 1) (3 0))+ ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2))+ ((5 1) (4 0)) ((6 1) (0 1)) ((6 1) (5 0)))+ (absent (y-0 (exp (gen) w)) (y h))+ (neq ((exp (gen) w) (gen)) (h (gen)) ((exp (gen) y-0) (gen)))+ (pen-non-orig x y-0)+ (precur (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 1 resp 2) (exp (gen) y-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 156)+ (parent 103)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) y-0) x))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1))+ ((6 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) y-0) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 7 6 resp 2) (exp (gen) y-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (exp (gen) y-0) x)) (send (cat (exp (gen) y-0) x)))+ ((recv h) (send (exp (gen) y-0))))+ (label 157)+ (parent 103)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) y-1)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x y-1)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) y-1)))+ (defstrand resp 2 (h h) (y y-0))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1))+ ((6 1) (5 0)) ((7 1) (0 1)) ((7 1) (5 0)))+ (absent (y-1 h-0) (y-0 h) (y (exp (gen) w)))+ (neq (h-0 (gen)) (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) y-1) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-1))+ (send (enc n (exp (gen) (mul x y-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x y-1))) (send (exp (gen) (mul x y-1))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) y-1)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) y-1))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 158)+ (parent 103)+ (unrealized (4 0) (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (x expn) (w expr) (y expn) (w-0 expr)+ (y-0 expn) (w-1 expr))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) w-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) (mul (rec x) w-0 y-0 (rec w-1))) w-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) w-0 y-0)) (gen)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener+ (cat (exp (gen) (mul (rec x) w-0 y-0 (rec w-1))) w-1))+ (exp (gen) (mul (rec x) w-0 y-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w-0 y-0)))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) (mul (rec x) w-0 y-0 (rec w-1))) w-1))+ (send (cat (exp (gen) (mul (rec x) w-0 y-0 (rec w-1))) w-1))))+ (label 159)+ (parent 103)+ (unrealized (7 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (0 1))+ ((5 1) (4 0)))+ (absent (x w) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w y (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (4 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))) ((recv x) (send x)))+ (label 160)+ (parent 112)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (rec x)))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1))+ ((6 1) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x))))+ ((recv x) (send x)))+ (label 161)+ (parent 115)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 1))+ ((6 1) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul (rec x) (rec x)) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 162)+ (parent 116)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (rec x)))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 0) (4 0))+ ((5 0) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) x-0)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (rec x)))+ (send (cat (exp (gen) x-0) (rec x)))) ((recv x) (send x)))+ (label 163)+ (parent 122)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (4 0)) ((1 1) (5 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (0 1)) ((6 1) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) y)) (gen)))+ (pen-non-orig x y)+ (precur (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))+ (label 164)+ (parent 129)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (rec x)))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((5 1) (6 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) y-0)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (rec x)))+ (send (cat (exp (gen) y-0) (rec x)))) ((recv x) (send x)))+ (label 165)+ (parent 135)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) x)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (gen) (mul x x)))+ (deflistener x)+ (precedes ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))+ ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) x) (gen)))+ (pen-non-orig y x)+ (precur (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x x) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x))))+ ((recv x) (send x)))+ (label 166)+ (parent 137)+ (unrealized (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (gen) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w-1 (mul x w-0)) (w-2 w-0))+ (gen) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0))))+ (label 167)+ (parent 141)+ (unrealized (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x)))+ (deflistener (cat (gen) (mul w-0 x x)))+ (deflistener (cat (exp (gen) x) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x)))+ (send (enc n (exp (gen) (mul w-0 x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x))) (send (exp (gen) (mul w-0 x x))))+ ((recv (cat (gen) (mul w-0 x x))) (send (cat (gen) (mul w-0 x x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0))))+ (label 168)+ (parent 141)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0)))+ (deflistener (cat (gen) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) w-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 0) (5 0)) ((7 0) (6 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x-0)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0)))+ (send (exp (gen) (mul x w-0 x-0))))+ ((recv (cat (gen) (mul x w-0 x-0)))+ (send (cat (gen) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0)))+ ((send (exp (gen) x-0))))+ (label 169)+ (parent 141)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y)))+ (deflistener (cat (gen) (mul x w-0 y)))+ (deflistener (cat (exp (gen) y) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 y)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 7 1 resp 2) (exp (gen) y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y)))+ (send (enc n (exp (gen) (mul x w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y))) (send (exp (gen) (mul x w-0 y))))+ ((recv (cat (gen) (mul x w-0 y))) (send (cat (gen) (mul x w-0 y))))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0))))+ (label 170)+ (parent 141)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) w-0))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)) ((7 1) (6 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (gen) (mul x w-0 y-0)))+ (send (cat (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv h) (send (exp (gen) y-0))))+ (label 171)+ (parent 141)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) x) w-0))+ (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0))))+ (label 172)+ (parent 142)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w-1 (mul x (rec x-0) w-0)) (x-2 x-0) (w-2 w-0))+ (gen) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0))))+ (label 173)+ (parent 148)+ (unrealized (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x-0 x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0 x-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x-0)) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 8 0 init 1) (exp (gen) x-1) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul w-0 x-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x-0 x-0)))+ (send (exp (gen) (mul w-0 x-0 x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0 x-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0 x-0 x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0))))+ (label 174)+ (parent 148)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 8 6 init 1) (exp (gen) x-1) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0)))+ (send (exp (gen) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0)))+ (send (cat (exp (gen) x-0) (mul x w-0)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0))))+ (label 175)+ (parent 148)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn) (w-0 expr) (x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0 x-1)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) w-0))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x-1)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-1)))+ (send (enc n (exp (gen) (mul x w-0 x-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-1)))+ (send (exp (gen) (mul x w-0 x-1))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0 x-1)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0 x-1))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) w-0)) (send (cat (exp (gen) x-1) w-0)))+ ((send (exp (gen) x-1))))+ (label 176)+ (parent 148)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x x-0 expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0 y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (7 0))+ ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 y)) (gen)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 8 1 resp 2) (exp (gen) y-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y)))+ (send (enc n (exp (gen) (mul x w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y))) (send (exp (gen) (mul x w-0 y))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0 y)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0 y))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0))))+ (label 177)+ (parent 148)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x x-0 expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0 y-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) w-0))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0 y-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0 y-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv h) (send (exp (gen) y-0))))+ (label 178)+ (parent 148)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0)))+ (deflistener (cat (gen) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-1 (mul x (rec y) w-0)) (y-0 y) (w-2 w-0))+ (gen) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0))))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0))))+ (label 179)+ (parent 153)+ (unrealized (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0 x x)))+ (deflistener (cat (exp (gen) x) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 7 0 init 1) (exp (gen) x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x)))+ (send (enc n (exp (gen) (mul w-0 x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x))) (send (exp (gen) (mul w-0 x x))))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0 x x)))+ (send (cat (exp (gen) y) (mul (rec y) w-0 x x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0))))+ (label 180)+ (parent 153)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) w-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (6 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x-0)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0)))+ (send (exp (gen) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0 x-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0 x-0))))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0)))+ ((send (exp (gen) x-0))))+ (label 181)+ (parent 153)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w-0)))+ (deflistener (cat (exp (gen) y) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 y)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 7 1 resp 2) (exp (gen) y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y)))+ (send (enc n (exp (gen) (mul x w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y))) (send (exp (gen) (mul x w-0 y))))+ ((recv (cat (exp (gen) y) (mul x w-0)))+ (send (cat (exp (gen) y) (mul x w-0))))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0))))+ (label 182)+ (parent 153)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) w-0))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (6 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0 y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0 y-0))))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv h) (send (exp (gen) y-0))))+ (label 183)+ (parent 153)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-1 (mul x (rec y-0) w-0)) (y-1 y-0) (w-2 w-0))+ (gen) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0))))+ (label 184)+ (parent 159)+ (unrealized (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0 x x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (displaced 8 0 init 1) (exp (gen) x-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x)))+ (send (enc n (exp (gen) (mul w-0 x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x))) (send (exp (gen) (mul w-0 x x))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0 x x)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0 x x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0))))+ (label 185)+ (parent 159)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w-0 x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) w-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 x-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0)))+ (send (exp (gen) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w-0 x-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w-0 x-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0)))+ ((send (exp (gen) x-0))))+ (label 186)+ (parent 159)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0 y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (7 0))+ ((7 1) (0 1)))+ (absent (y-0 (exp (gen) w)) (y h))+ (neq ((exp (gen) w) (gen)) (h (gen))+ ((exp (gen) (mul w-0 y-0)) (gen)))+ (pen-non-orig x y-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 8 1 resp 2) (exp (gen) y-1) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0 y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0 y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0))))+ (label 187)+ (parent 159)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) w-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 8 6 resp 2) (exp (gen) y-1) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0)))+ (send (cat (exp (gen) y-0) (mul x w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0))))+ (label 188)+ (parent 159)+ (unrealized (4 0) (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x y-0 expn) (w-0 expr)+ (y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-1)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w-0 y-1)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) w-0))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (y-1 h-0) (y-0 h) (y (exp (gen) w)))+ (neq (h-0 (gen)) (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-1)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-1)))+ (send (enc n (exp (gen) (mul x w-0 y-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-1)))+ (send (exp (gen) (mul x w-0 y-1))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w-0 y-1)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w-0 y-1))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) w-0)) (send (cat (exp (gen) y-1) w-0)))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 189)+ (parent 159)+ (unrealized (4 0) (5 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (gen) (rec x)))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w-0 (rec x))) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x)))))+ (label 190)+ (parent 167)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (gen) w-0))+ (deflistener (cat (gen) (mul w-0 (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)))+ (absent (x w-0) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w-0) w-0 (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0)))+ ((recv (cat (gen) (mul w-0 (rec x))))+ (send (cat (gen) (mul w-0 (rec x))))))+ (label 191)+ (parent 167)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (gen) w-0))+ (deflistener x)+ (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0))) ((recv x) (send x)))+ (label 192)+ (parent 167)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (w-0 (mul (rec x) (rec x))) (x-0 x))+ (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x))))))+ (label 193)+ (parent 168)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (gen) w-0))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)))+ (absent (x w-0) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w-0) w-0 (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))))+ (label 194)+ (parent 168)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x)))+ (deflistener (cat (gen) (mul w-0 x x)))+ (deflistener (cat (exp (gen) x) w-0))+ (deflistener x)+ (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 x x) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x)))+ (send (enc n (exp (gen) (mul w-0 x x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x))) (send (exp (gen) (mul w-0 x x))))+ ((recv (cat (gen) (mul w-0 x x))) (send (cat (gen) (mul w-0 x x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0)))+ ((recv x) (send x)))+ (label 195)+ (parent 168)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 0) (5 0)) ((7 0) (6 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w-0 (mul (rec x) (rec x-0))) (x-2 x-0)) (one)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 196)+ (parent 169)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 0) (5 0)) ((7 0) (6 0)))+ (absent (x-0 (mul w-0 x)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul w-0 x)) (mul w-0 x)+ (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (gen) (mul w-0 x))) (send (cat (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x))))+ (label 197)+ (parent 169)+ (unrealized (0 1) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 0) (5 0)) ((7 0) (6 0)))+ (absent (x-0 (mul x w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w-0)) (mul x w-0)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 198)+ (parent 169)+ (unrealized (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) y) (mul (rec x) (rec y))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-0 (mul (rec x) (rec y))) (y-0 y)) (one)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) y) (mul (rec x) (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) (rec y))))))+ (label 199)+ (parent 170)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w w-0 expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (x (mul w-0 y)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 y (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul w-0 y)) (mul w-0 y) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y (rec x))))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (gen) (mul w-0 y))) (send (cat (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) y) (mul w-0 (rec x))))+ (send (cat (exp (gen) y) (mul w-0 (rec x))))))+ (label 200)+ (parent 170)+ (unrealized (0 1) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec y))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (mul x w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w-0)) (mul x w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul w-0 (rec y))))+ (send (cat (exp (gen) y) (mul w-0 (rec y))))))+ (label 201)+ (parent 170)+ (unrealized (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)) ((7 1) (6 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-0 (mul (rec x) (rec y-0))) (y-1 y-0)) (one)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) y-0) (mul (rec x) (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 202)+ (parent 171)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)) ((7 1) (6 0)))+ (absent (x (mul w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul w-0 y-0)) (mul w-0 y-0)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (gen) (mul w-0 y-0))) (send (cat (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 203)+ (parent 171)+ (unrealized (0 1) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)) ((7 1) (6 0)))+ (absent (y-0 (mul x w-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w-0)) (mul x w-0)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 204)+ (parent 171)+ (unrealized (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (exp (gen) x) w-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((2 1) (1 2)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0))))+ (label 205)+ (parent 172)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul (rec x) x-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) x-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w-0 (mul (rec x) x-0))) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul (rec x) x-0)))+ (send (cat (gen) (mul (rec x) x-0)))))+ (label 206)+ (parent 173)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (gen) (mul w-0 (rec x-0))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (x-0 (mul (rec x) w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w-0))+ (mul (rec x) w-0) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 (rec x-0))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0))))+ ((send (exp (gen) x)))+ ((recv (cat (gen) (mul w-0 (rec x-0))))+ (send (cat (gen) (mul w-0 (rec x-0))))))+ (label 207)+ (parent 173)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w-0 x-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (x-0 (mul x w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w-0)) (mul x w-0)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0)))+ (send (exp (gen) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0)))+ (send (cat (exp (gen) x-0) (mul x w-0)))) ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul w-0 x-0))) (send (cat (gen) (mul w-0 x-0)))))+ (label 208)+ (parent 173)+ (unrealized (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul x (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w-0 (mul x (rec x-0) (rec x-0))) (x-2 x-0))+ (one) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))))+ (label 209)+ (parent 174)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 x x)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x) (mul w-0 x-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (x-0 (mul w-0 x x)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x x-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul w-0 x x)) (mul w-0 x x)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x x-0)))+ (send (enc n (exp (gen) (mul w-0 x x x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x x-0)))+ (send (exp (gen) (mul w-0 x x x-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 x x)))+ (send (cat (exp (gen) x-0) (mul w-0 x x))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x) (mul w-0 x-0)))+ (send (cat (exp (gen) x) (mul w-0 x-0)))))+ (label 210)+ (parent 174)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0) (rec x-0))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (x-0 (mul (rec x) w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w-0))+ (mul (rec x) w-0) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 (rec x-0))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0) (rec x-0))))))+ (label 211)+ (parent 174)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (rec x-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul x (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (contracted (x-1 x-0) (w-0 (rec x-0))) (one)+ (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (rec x-0)))+ (send (cat (exp (gen) x) (rec x-0)))))+ (label 212)+ (parent 175)+ (unrealized (0 1) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) x) w-0))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)))+ (absent (x-0 w-0) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 w-0) w-0 (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0)))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0))))))+ (label 213)+ (parent 175)+ (unrealized (0 1) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) w-0))+ (deflistener x)+ (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0)))+ (send (exp (gen) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0)))+ (send (cat (exp (gen) x-0) (mul x w-0)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) w-0)) (send (cat (exp (gen) x-0) w-0)))+ ((recv x) (send x)))+ (label 214)+ (parent 175)+ (unrealized (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) x-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-2 x) (x-3 x-0) (w-0 (mul (rec x) x-0 (rec x-1)))+ (x-4 x-1)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 215)+ (parent 176)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 (rec x-1))))+ (x x-1))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-1))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (x-1 (mul (rec x) w-0 x-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 x-0 (rec x-1))) (gen)))+ (pen-non-orig y x-1)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-absence x-1 (mul (rec x) w-0 x-0))+ (mul (rec x) w-0 x-0) (5 0))+ (traces+ ((send (exp (gen) x-1)) (recv (exp (gen) (mul w-0 x-0 (rec x-1))))+ (send (enc n (exp (gen) (mul w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x-0))) (send (exp (gen) (mul w-0 x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0 x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-1))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-1)))))+ ((send (exp (gen) x-0))))+ (label 216)+ (parent 176)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 x-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0 x-1)))+ (deflistener (cat (exp (gen) x-1) (mul x w-0 x-0)))+ (defstrand init 1 (x x-1))+ (deflistener (cat (exp (gen) x-0) (mul w-0 x-1)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (x-1 (mul x w-0 x-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x-0 x-1)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-absence x-1 (mul x w-0 x-0))+ (mul x w-0 x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0 x-1)))+ (send (enc n (exp (gen) (mul x w-0 x-0 x-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0 x-1)))+ (send (exp (gen) (mul x w-0 x-0 x-1))))+ ((recv (cat (exp (gen) x-1) (mul x w-0 x-0)))+ (send (cat (exp (gen) x-1) (mul x w-0 x-0))))+ ((send (exp (gen) x-1)))+ ((recv (cat (exp (gen) x-0) (mul w-0 x-1)))+ (send (cat (exp (gen) x-0) (mul w-0 x-1))))+ ((send (exp (gen) x-0))))+ (label 217)+ (parent 176)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn) (w-0 expr) (x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (x-1 (mul x (rec x-0) w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-absence x-1 (mul x (rec x-0) w-0))+ (mul x (rec x-0) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul w-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul w-0 (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 218)+ (parent 176)+ (unrealized (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (7 0))+ ((7 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) x-0)) (gen)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w-0 (mul (rec x) x-0 (rec y)))+ (y-0 y)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))))+ (label 219)+ (parent 177)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0 y)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec x-0))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (7 0))+ ((7 1) (0 1)))+ (absent (x-0 (mul (rec x) w-0 y)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 y (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w-0 y))+ (mul (rec x) w-0 y) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 y (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0 y)))+ (send (cat (exp (gen) x) (mul (rec x) w-0 y))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) y) (mul w-0 (rec x-0))))))+ (label 220)+ (parent 177)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0 y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w-0 x-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (7 0))+ ((7 1) (0 1)))+ (absent (x-0 (mul x w-0 y)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 y x-0)) (gen)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w-0 y)) (mul x w-0 y)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y x-0)))+ (send (enc n (exp (gen) (mul x w-0 y x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y x-0)))+ (send (exp (gen) (mul x w-0 y x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0 y)))+ (send (cat (exp (gen) x-0) (mul x w-0 y))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w-0 x-0)))+ (send (cat (exp (gen) y) (mul w-0 x-0)))))+ (label 221)+ (parent 177)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x x-0 expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec y))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (7 0))+ ((7 1) (0 1)))+ (absent (y (mul x (rec x-0) w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x (rec x-0) w-0))+ (mul x (rec x-0) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w-0 (rec y))))+ (send (cat (exp (gen) y) (mul w-0 (rec y))))))+ (label 222)+ (parent 177)+ (unrealized (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) x-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w-0 (mul (rec x) x-0 (rec y-0)))+ (y-1 y-0)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) x-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 223)+ (parent 178)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x-0))))+ (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0 y-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (x-0 (mul (rec x) w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0 (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w-0 y-0))+ (mul (rec x) w-0 y-0) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 y-0 (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0 y-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0 y-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 224)+ (parent 178)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0 y-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul w-0 x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (x-0 (mul x w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0 x-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w-0 y-0))+ (mul x w-0 y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0 x-0)))+ (send (exp (gen) (mul x w-0 y-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0 y-0)))+ (send (cat (exp (gen) x-0) (mul x w-0 y-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul w-0 x-0)))+ (send (cat (exp (gen) y-0) (mul w-0 x-0))))+ ((recv h) (send (exp (gen) y-0))))+ (label 225)+ (parent 178)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x x-0 expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (y-0 (mul x (rec x-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x (rec x-0) w-0))+ (mul x (rec x-0) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 226)+ (parent 178)+ (unrealized (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (gen) (mul (rec x) y)))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) y)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-0 y) (w-0 (mul (rec x) y))) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (gen) (mul (rec x) y)))+ (send (cat (gen) (mul (rec x) y)))))+ (label 227)+ (parent 179)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0)))+ (deflistener (cat (gen) (mul w-0 (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (x (mul (rec y) w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w-0))+ (mul (rec y) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0))))+ ((recv (cat (gen) (mul w-0 (rec x))))+ (send (cat (gen) (mul w-0 (rec x))))))+ (label 228)+ (parent 179)+ (unrealized (0 1) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w-0)))+ (deflistener (cat (gen) (mul w-0 y)))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (mul x w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 y)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w-0)) (mul x w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y)))+ (send (enc n (exp (gen) (mul x w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y))) (send (exp (gen) (mul x w-0 y))))+ ((recv (cat (exp (gen) y) (mul x w-0)))+ (send (cat (exp (gen) y) (mul x w-0))))+ ((recv (cat (gen) (mul w-0 y))) (send (cat (gen) (mul w-0 y)))))+ (label 229)+ (parent 179)+ (unrealized (4 0) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul y (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test+ (contracted (y-0 y) (w-0 (mul y (rec x) (rec x))) (x-0 x)) (one)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x) (rec x))))))+ (label 230)+ (parent 180)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w w-0 expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x y)))+ (deflistener (cat (exp (gen) y) (mul w-0 x x)))+ (deflistener (cat (exp (gen) x) (mul w-0 y)))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (mul w-0 x x)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x y)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul w-0 x x)) (mul w-0 x x)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x y)))+ (send (enc n (exp (gen) (mul w-0 x x y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x y)))+ (send (exp (gen) (mul w-0 x x y))))+ ((recv (cat (exp (gen) y) (mul w-0 x x)))+ (send (cat (exp (gen) y) (mul w-0 x x))))+ ((recv (cat (exp (gen) x) (mul w-0 y)))+ (send (cat (exp (gen) x) (mul w-0 y)))))+ (label 231)+ (parent 180)+ (unrealized (0 1) (4 0) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0)))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (x (mul (rec y) w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w-0))+ (mul (rec y) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0))))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))))+ (label 232)+ (parent 180)+ (unrealized (0 1) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (6 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec x) y)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (y-0 y) (w-0 (mul (rec x) y (rec x-0)))+ (x-2 x-0)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 233)+ (parent 181)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0 x)))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (6 0)))+ (absent (x-0 (mul (rec y) w-0 x)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec y) w-0 x))+ (mul (rec y) w-0 x) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0 x)))+ (send (cat (exp (gen) y) (mul (rec y) w-0 x))))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x))))+ (label 234)+ (parent 181)+ (unrealized (0 1) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (6 0)))+ (absent (y (mul x w-0 x-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x-0 y)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w-0 x-0))+ (mul x w-0 x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0 y)))+ (send (enc n (exp (gen) (mul x w-0 x-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0 y)))+ (send (exp (gen) (mul x w-0 x-0 y))))+ ((recv (cat (exp (gen) y) (mul x w-0 x-0)))+ (send (cat (exp (gen) y) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 y)))+ (send (cat (exp (gen) x-0) (mul w-0 y))))+ ((send (exp (gen) x-0))))+ (label 235)+ (parent 181)+ (unrealized (0 1) (4 0) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (6 0)))+ (absent (x-0 (mul x (rec y) w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x (rec y) w-0))+ (mul x (rec y) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 236)+ (parent 181)+ (unrealized (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul y (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w-0 (rec x))) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))))+ (label 237)+ (parent 182)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w w-0 expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) y) w-0))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)))+ (absent (x w-0) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 y (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w-0) w-0 (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y (rec x))))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0)))+ ((recv (cat (exp (gen) y) (mul w-0 (rec x))))+ (send (cat (exp (gen) y) (mul w-0 (rec x))))))+ (label 238)+ (parent 182)+ (unrealized (0 1) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w-0)))+ (deflistener (cat (exp (gen) y) w-0))+ (deflistener x)+ (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 y)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y)))+ (send (enc n (exp (gen) (mul x w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y))) (send (exp (gen) (mul x w-0 y))))+ ((recv (cat (exp (gen) y) (mul x w-0)))+ (send (cat (exp (gen) y) (mul x w-0))))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0)))+ ((recv x) (send x)))+ (label 239)+ (parent 182)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (6 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) y)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y) (w-0 (mul (rec x) y (rec y-0)))+ (y-2 y-0)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 240)+ (parent 183)+ (unrealized (0 1) (6 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (6 0)))+ (absent (x (mul (rec y) w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w-0 y-0))+ (mul (rec y) w-0 y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 241)+ (parent 183)+ (unrealized (0 1) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x expn) (w-0 expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul x w-0 y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0 y)))+ (deflistener (cat (exp (gen) y) (mul w-0 y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (6 0)))+ (absent (y-0 (mul x w-0 y)) (y h) (y-0 (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y y-0)) (gen)))+ (pen-non-orig x y-0)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w-0 y)) (mul x w-0 y)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y y-0)))+ (send (enc n (exp (gen) (mul x w-0 y y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul x w-0 y y-0)))+ (send (exp (gen) (mul x w-0 y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0 y)))+ (send (cat (exp (gen) y-0) (mul x w-0 y))))+ ((recv (cat (exp (gen) y) (mul w-0 y-0)))+ (send (cat (exp (gen) y) (mul w-0 y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 242)+ (parent 183)+ (unrealized (0 1) (4 0) (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (6 0)))+ (absent (y-0 (mul x (rec y) w-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x (rec y) w-0))+ (mul x (rec y) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 243)+ (parent 183)+ (unrealized (5 0) (6 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul (rec x) y-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) y-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y-0) (w-0 (mul (rec x) y-0))) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul (rec x) y-0)))+ (send (cat (gen) (mul (rec x) y-0)))))+ (label 244)+ (parent 184)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul w-0 (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (x (mul (rec y-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y-0) w-0))+ (mul (rec y-0) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul w-0 (rec x))))+ (send (cat (gen) (mul w-0 (rec x))))))+ (label 245)+ (parent 184)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul w-0 y-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 (mul x w-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w-0)) (mul x w-0)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0)))+ (send (cat (exp (gen) y-0) (mul x w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul w-0 y-0))) (send (cat (gen) (mul w-0 y-0)))))+ (label 246)+ (parent 184)+ (unrealized (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul y-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test+ (contracted (y-1 y-0) (w-0 (mul y-0 (rec x) (rec x))) (x-0 x)) (one)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y-0 (rec x))))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y-0 (rec x) (rec x))))))+ (label 247)+ (parent 185)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 x x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w-0 y-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 (mul w-0 x x)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 x y-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul w-0 x x)) (mul w-0 x x)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x y-0)))+ (send (enc n (exp (gen) (mul w-0 x x y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x y-0)))+ (send (exp (gen) (mul w-0 x x y-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 x x)))+ (send (cat (exp (gen) y-0) (mul w-0 x x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w-0 y-0)))+ (send (cat (exp (gen) x) (mul w-0 y-0)))))+ (label 248)+ (parent 185)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (x (mul (rec y-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y-0) w-0))+ (mul (rec y-0) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))))+ (label 249)+ (parent 185)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) y-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (y-1 y-0) (w-0 (mul (rec x) y-0 (rec x-0)))+ (x-2 x-0)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 250)+ (parent 186)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0 x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (x-0 (mul (rec y-0) w-0 x)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 x (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec y-0) w-0 x))+ (mul (rec y-0) w-0 x) (5 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0 x)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0 x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x))))+ (label 251)+ (parent 186)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0 x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul w-0 y-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (y-0 (mul x w-0 x-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 x-0 y-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w-0 x-0))+ (mul x w-0 x-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0 y-0)))+ (send (exp (gen) (mul x w-0 x-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0 x-0)))+ (send (cat (exp (gen) y-0) (mul x w-0 x-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul w-0 y-0)))+ (send (cat (exp (gen) x-0) (mul w-0 y-0))))+ ((send (exp (gen) x-0))))+ (label 252)+ (parent 186)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)))+ (absent (x-0 (mul x (rec y-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x (rec y-0) w-0))+ (mul x (rec y-0) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 253)+ (parent 186)+ (unrealized (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (7 0))+ ((7 1) (0 1)))+ (absent (y-0 (exp (gen) w)) (y h))+ (neq ((exp (gen) w) (gen)) (h (gen))+ ((exp (gen) (mul (rec x) y)) (gen)))+ (pen-non-orig x y-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y) (w-0 (mul (rec x) y (rec y-0)))+ (y-2 y-0)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))))+ (label 254)+ (parent 187)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (7 0))+ ((7 1) (0 1)))+ (absent (x (mul (rec y) w-0 y-0)) (y-0 (exp (gen) w)) (y h))+ (neq ((exp (gen) w) (gen)) (h (gen))+ ((exp (gen) (mul w-0 y-0 (rec x))) (gen)))+ (pen-non-orig y-0 x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w-0 y-0))+ (mul (rec y) w-0 y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0 y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x))))))+ (label 255)+ (parent 187)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x expn) (w-0 expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0 y)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w-0 y-0)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (7 0))+ ((7 1) (0 1)))+ (absent (y-0 (mul x w-0 y)) (y (exp (gen) w)) (y-0 h))+ (neq ((exp (gen) w) (gen)) (h (gen))+ ((exp (gen) (mul w-0 y y-0)) (gen)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w-0 y)) (mul x w-0 y)+ (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y y-0)))+ (send (enc n (exp (gen) (mul x w-0 y y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y y-0)))+ (send (exp (gen) (mul x w-0 y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0 y)))+ (send (cat (exp (gen) y-0) (mul x w-0 y))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul w-0 y-0)))+ (send (cat (exp (gen) y) (mul w-0 y-0)))))+ (label 256)+ (parent 187)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (7 0))+ ((7 1) (0 1)))+ (absent (y-0 (mul x (rec y) w-0)) (y-0 (exp (gen) w)) (y h))+ (neq ((exp (gen) w) (gen)) (h (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig x y-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x (rec y) w-0))+ (mul x (rec y) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0))))))+ (label 257)+ (parent 187)+ (unrealized (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (rec x)))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul y-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w-0 (rec x))) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y-0 (rec x))))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (rec x)))+ (send (cat (exp (gen) y-0) (rec x)))))+ (label 258)+ (parent 188)+ (unrealized (0 1) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) w-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)))+ (absent (x w-0) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w-0) w-0 (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x))))))+ (label 259)+ (parent 188)+ (unrealized (0 1) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) w-0))+ (deflistener x)+ (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0)))+ (send (cat (exp (gen) y-0) (mul x w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv x) (send x)))+ (label 260)+ (parent 188)+ (unrealized (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul (rec x) y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (y-1 h-0) (y-0 h) (y (exp (gen) w)))+ (neq (h-0 (gen)) (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul (rec x) y-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-2 y-0) (w-0 (mul (rec x) y-0 (rec y-1)))+ (y-3 y-1)) (one) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y-0)))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1))))+ (send (cat (exp (gen) y-1) (mul (rec x) y-0 (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 261)+ (parent 189)+ (unrealized (0 1) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y y-0 expn) (w-0 expr)+ (y-1 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-1 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-1)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0 y-1)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul w-0 (rec x))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (x (mul (rec y-0) w-0 y-1)) (y-1 h-0) (y-0 h)+ (y (exp (gen) w)))+ (neq (h-0 (gen)) (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-1 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 y-1 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y-0) w-0 y-1))+ (mul (rec y-0) w-0 y-1) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-1 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-1))) (send (exp (gen) (mul w-0 y-1))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0 y-1)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0 y-1))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-1) (mul w-0 (rec x)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 262)+ (parent 189)+ (unrealized (0 1) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x expn) (w-0 expr)+ (y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 y-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0 y-1)))+ (deflistener (cat (exp (gen) y-1) (mul x w-0 y-0)))+ (defstrand resp 2 (h h) (y y-1))+ (deflistener (cat (exp (gen) y-0) (mul w-0 y-1)))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (y-1 (mul x w-0 y-0)) (y-0 h-0) (y-1 h) (y (exp (gen) w)))+ (neq (h-0 (gen)) (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0 y-1)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-absence y-1 (mul x w-0 y-0))+ (mul x w-0 y-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 y-1)))+ (send (enc n (exp (gen) (mul x w-0 y-0 y-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0 y-1)))+ (send (exp (gen) (mul x w-0 y-0 y-1))))+ ((recv (cat (exp (gen) y-1) (mul x w-0 y-0)))+ (send (cat (exp (gen) y-1) (mul x w-0 y-0))))+ ((recv h) (send (exp (gen) y-1)))+ ((recv (cat (exp (gen) y-0) (mul w-0 y-1)))+ (send (cat (exp (gen) y-0) (mul w-0 y-1))))+ ((recv h-0) (send (exp (gen) y-0))))+ (label 263)+ (parent 189)+ (unrealized (0 1) (4 0) (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x y-0 expn) (w-0 expr)+ (y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul w-0 (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)))+ (absent (y-1 (mul x (rec y-0) w-0)) (y-1 h-0) (y-0 h)+ (y (exp (gen) w)))+ (neq (h-0 (gen)) (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-absence y-1 (mul x (rec y-0) w-0))+ (mul x (rec y-0) w-0) (5 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul w-0 (rec y-1))))+ (send (cat (exp (gen) y-1) (mul w-0 (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 264)+ (parent 189)+ (unrealized (5 0) (7 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (gen) (rec x)))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x))))+ ((recv x) (send x)))+ (label 265)+ (parent 190)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (gen) w-0))+ (deflistener (cat (gen) (mul w-0 (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x w-0) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0)))+ ((recv (cat (gen) (mul w-0 (rec x))))+ (send (cat (gen) (mul w-0 (rec x))))) ((recv x) (send x)))+ (label 266)+ (parent 191)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (rec x))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (rec x)) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul (rec x) (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 267)+ (parent 193)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (gen) w-0))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x w-0) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x) (rec x))+ (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (gen) w-0)) (send (cat (gen) w-0)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w-0 (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 268)+ (parent 194)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 0) (5 0)) ((7 0) (6 0)) ((8 1) (6 0)))+ (absent (x-0 (mul w-0 x)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (6 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (gen) (mul w-0 x))) (send (cat (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x))) ((recv x-0) (send x-0)))+ (label 269)+ (parent 197)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 0) (5 0)) ((7 0) (8 0)) ((8 1) (6 0)))+ (absent (x-0 (mul x w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x-0))) ((recv x-0) (send x-0)))+ (label 270)+ (parent 198)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w w-0 expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x (mul w-0 y)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 y (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y (rec x))))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (gen) (mul w-0 y))) (send (cat (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) y) (mul w-0 (rec x))))+ (send (cat (exp (gen) y) (mul w-0 (rec x))))) ((recv x) (send x)))+ (label 271)+ (parent 200)+ (unrealized (5 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec y))))+ (deflistener y)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (mul x w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w-0 (rec y)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul w-0 (rec y))))+ (send (cat (exp (gen) y) (mul w-0 (rec y))))) ((recv y) (send y)))+ (label 272)+ (parent 201)+ (unrealized (5 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)) ((7 1) (6 0)) ((8 1) (6 0)))+ (absent (x (mul w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (gen) (mul w-0 y-0))) (send (cat (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x)))))+ ((recv h) (send (exp (gen) y-0))) ((recv x) (send x)))+ (label 273)+ (parent 203)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (0 1)) ((7 1) (5 0)) ((7 1) (8 0)) ((8 1) (6 0)))+ (absent (y-0 (mul x w-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 (rec y-0)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (gen) (mul x w-0))) (send (cat (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))) ((recv y-0) (send y-0)))+ (label 274)+ (parent 204)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (precedes ((0 2) (1 2)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (uniq-gen y x)+ (uniq-orig n)+ (operation generalization deleted (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y))))))+ (label 275)+ (parent 205)+ (unrealized)+ (shape)+ (maps+ ((0 1) ((n n) (hx (exp (gen) w)) (hy (exp (gen) w-0)) (x x) (y y))))+ (origs (n (0 2))))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (gen) (mul w-0 (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x-0 (mul (rec x) w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 (rec x-0))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0))))+ ((send (exp (gen) x)))+ ((recv (cat (gen) (mul w-0 (rec x-0))))+ (send (cat (gen) (mul w-0 (rec x-0))))) ((recv x-0) (send x-0)))+ (label 276)+ (parent 207)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w-0 x-0)))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (8 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x-0 (mul x w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 x-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0)))+ (send (exp (gen) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0)))+ (send (cat (exp (gen) x-0) (mul x w-0)))) ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul w-0 x-0))) (send (cat (gen) (mul w-0 x-0))))+ ((recv x-0) (send x-0)))+ (label 277)+ (parent 208)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 x x)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x) (mul w-0 x-0)))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (8 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x-0 (mul w-0 x x)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x x-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 x-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x x-0)))+ (send (enc n (exp (gen) (mul w-0 x x x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x x-0)))+ (send (exp (gen) (mul w-0 x x x-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 x x)))+ (send (cat (exp (gen) x-0) (mul w-0 x x))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x) (mul w-0 x-0)))+ (send (cat (exp (gen) x) (mul w-0 x-0)))) ((recv x-0) (send x-0)))+ (label 278)+ (parent 210)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0) (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x-0 (mul (rec x) w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0)+ (mul w-0 (rec x-0) (rec x-0)) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 (rec x-0))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0) (rec x-0)))))+ ((recv x-0) (send x-0)))+ (label 279)+ (parent 211)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (rec x-0)))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul x (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (rec x-0) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (rec x-0)))+ (send (cat (exp (gen) x) (rec x-0)))) ((recv x-0) (send x-0)))+ (label 280)+ (parent 212)+ (unrealized (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) x) w-0))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x-0 w-0) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) x) w-0)) (send (cat (exp (gen) x) w-0)))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0)))))+ ((recv x-0) (send x-0)))+ (label 281)+ (parent 213)+ (unrealized (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 (rec x-1))))+ (x x-1))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-1))))+ (defstrand init 1 (x x-0))+ (deflistener x-1)+ (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)) ((9 1) (7 0)))+ (absent (x-1 (mul (rec x) w-0 x-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 x-0 (rec x-1))) (gen)))+ (pen-non-orig y x-1)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-listener x-1) (mul w-0 (rec x-1)) (7 0))+ (traces+ ((send (exp (gen) x-1)) (recv (exp (gen) (mul w-0 x-0 (rec x-1))))+ (send (enc n (exp (gen) (mul w-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x-0))) (send (exp (gen) (mul w-0 x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0 x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-1))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-1)))))+ ((send (exp (gen) x-0))) ((recv x-1) (send x-1)))+ (label 282)+ (parent 216)+ (unrealized (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn) (w-0 expr) (x-0 x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 x-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0 x-1)))+ (deflistener (cat (exp (gen) x-1) (mul x w-0 x-0)))+ (defstrand init 1 (x x-1))+ (deflistener (cat (exp (gen) x-0) (mul w-0 x-1)))+ (defstrand init 1 (x x-0))+ (deflistener x-1)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (9 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)) ((9 1) (7 0)))+ (absent (x-1 (mul x w-0 x-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x-0 x-1)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-listener x-1) (mul w-0 x-1) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0 x-1)))+ (send (enc n (exp (gen) (mul x w-0 x-0 x-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0 x-1)))+ (send (exp (gen) (mul x w-0 x-0 x-1))))+ ((recv (cat (exp (gen) x-1) (mul x w-0 x-0)))+ (send (cat (exp (gen) x-1) (mul x w-0 x-0))))+ ((send (exp (gen) x-1)))+ ((recv (cat (exp (gen) x-0) (mul w-0 x-1)))+ (send (cat (exp (gen) x-0) (mul w-0 x-1))))+ ((send (exp (gen) x-0))) ((recv x-1) (send x-1)))+ (label 283)+ (parent 217)+ (unrealized (4 0) (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x x-0 expn) (w-0 expr) (x-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (deflistener x-1)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (9 0)) ((9 1) (7 0)))+ (absent (x-1 (mul x (rec x-0) w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-listener x-1) (mul w-0 (rec x-1)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul w-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul w-0 (rec x-1)))))+ ((send (exp (gen) x-1))) ((recv x-1) (send x-1)))+ (label 284)+ (parent 218)+ (unrealized (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0 y)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (7 0))+ ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x-0 (mul (rec x) w-0 y)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 y (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 y (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0 y)))+ (send (cat (exp (gen) x) (mul (rec x) w-0 y))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) y) (mul w-0 (rec x-0)))))+ ((recv x-0) (send x-0)))+ (label 285)+ (parent 220)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0 y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w-0 x-0)))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (8 0))+ ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x-0 (mul x w-0 y)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 y x-0)) (gen)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 x-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y x-0)))+ (send (enc n (exp (gen) (mul x w-0 y x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y x-0)))+ (send (exp (gen) (mul x w-0 y x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0 y)))+ (send (cat (exp (gen) x-0) (mul x w-0 y))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w-0 x-0)))+ (send (cat (exp (gen) y) (mul w-0 x-0)))) ((recv x-0) (send x-0)))+ (label 286)+ (parent 221)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x x-0 expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec y))))+ (deflistener y)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (8 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 0) (5 0)) ((6 0) (7 0))+ ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (y (mul x (rec x-0) w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w-0 (rec y)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w-0 (rec y))))+ (send (cat (exp (gen) y) (mul w-0 (rec y))))) ((recv y) (send y)))+ (label 287)+ (parent 222)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x-0))))+ (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w-0 y-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x-0))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)) ((9 1) (7 0)))+ (absent (x-0 (mul (rec x) w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0 (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 y-0 (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w-0 y-0)))+ (send (cat (exp (gen) x) (mul (rec x) w-0 y-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x-0)))))+ ((recv h) (send (exp (gen) y-0))) ((recv x-0) (send x-0)))+ (label 288)+ (parent 224)+ (unrealized (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 x-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w-0 y-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul w-0 x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (9 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)) ((9 1) (7 0)))+ (absent (x-0 (mul x w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0 x-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 x-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 x-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0 x-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0 x-0)))+ (send (exp (gen) (mul x w-0 y-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w-0 y-0)))+ (send (cat (exp (gen) x-0) (mul x w-0 y-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul w-0 x-0)))+ (send (cat (exp (gen) y-0) (mul w-0 x-0))))+ ((recv h) (send (exp (gen) y-0))) ((recv x-0) (send x-0)))+ (label 289)+ (parent 225)+ (unrealized (4 0) (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x x-0 expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 0) (5 0)) ((6 0) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (9 0)) ((9 1) (7 0)))+ (absent (y-0 (mul x (rec x-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 (rec y-0)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w-0)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w-0))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))) ((recv y-0) (send y-0)))+ (label 290)+ (parent 226)+ (unrealized (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0)))+ (deflistener (cat (gen) (mul w-0 (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x (mul (rec y) w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0))))+ ((recv (cat (gen) (mul w-0 (rec x))))+ (send (cat (gen) (mul w-0 (rec x))))) ((recv x) (send x)))+ (label 291)+ (parent 228)+ (unrealized (5 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w-0)))+ (deflistener (cat (gen) (mul w-0 y)))+ (deflistener y)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (mul x w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 y)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w-0 y) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y)))+ (send (enc n (exp (gen) (mul x w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y))) (send (exp (gen) (mul x w-0 y))))+ ((recv (cat (exp (gen) y) (mul x w-0)))+ (send (cat (exp (gen) y) (mul x w-0))))+ ((recv (cat (gen) (mul w-0 y))) (send (cat (gen) (mul w-0 y))))+ ((recv y) (send y)))+ (label 292)+ (parent 229)+ (unrealized (4 0) (5 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w w-0 expr) (x y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x y)))+ (deflistener (cat (exp (gen) y) (mul w-0 x x)))+ (deflistener (cat (exp (gen) x) (mul w-0 y)))+ (deflistener y)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (mul w-0 x x)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x y)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w-0 y) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x y)))+ (send (enc n (exp (gen) (mul w-0 x x y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x y)))+ (send (exp (gen) (mul w-0 x x y))))+ ((recv (cat (exp (gen) y) (mul w-0 x x)))+ (send (cat (exp (gen) y) (mul w-0 x x))))+ ((recv (cat (exp (gen) x) (mul w-0 y)))+ (send (cat (exp (gen) x) (mul w-0 y)))) ((recv y) (send y)))+ (label 293)+ (parent 231)+ (unrealized (4 0) (5 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0)))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x (mul (rec y) w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x) (rec x))+ (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0))))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w-0 (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 294)+ (parent 232)+ (unrealized (5 0) (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0 x)))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (6 0)) ((8 1) (6 0)))+ (absent (x-0 (mul (rec y) w-0 x)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (6 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0 x)))+ (send (cat (exp (gen) y) (mul (rec y) w-0 x))))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x))) ((recv x-0) (send x-0)))+ (label 295)+ (parent 234)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x expn) (w-0 expr) (x-0 y expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 y))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w-0 x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 y)))+ (defstrand init 1 (x x-0))+ (deflistener y)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (8 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (6 0)) ((8 1) (6 0)))+ (absent (y (mul x w-0 x-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 x-0 y)) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w-0 y) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0 y)))+ (send (enc n (exp (gen) (mul x w-0 x-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0 y)))+ (send (exp (gen) (mul x w-0 x-0 y))))+ ((recv (cat (exp (gen) y) (mul x w-0 x-0)))+ (send (cat (exp (gen) y) (mul x w-0 x-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 y)))+ (send (cat (exp (gen) x-0) (mul w-0 y)))) ((send (exp (gen) x-0)))+ ((recv y) (send y)))+ (label 296)+ (parent 235)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (x y expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0)))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 0) (5 0))+ ((7 0) (8 0)) ((8 1) (6 0)))+ (absent (x-0 (mul x (rec y) w-0)) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0))))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x-0))) ((recv x-0) (send x-0)))+ (label 297)+ (parent 236)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul y (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))+ (label 298)+ (parent 237)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (w w-0 expr) (y x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y)))+ (deflistener (cat (exp (gen) y) w-0))+ (deflistener (cat (exp (gen) y) (mul w-0 (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (6 0)))+ (absent (x w-0) (y (exp (gen) w)))+ (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w-0 y (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y (rec x))))+ (send (enc n (exp (gen) (mul w-0 y)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y))) (send (exp (gen) (mul w-0 y))))+ ((recv (cat (exp (gen) y) w-0)) (send (cat (exp (gen) y) w-0)))+ ((recv (cat (exp (gen) y) (mul w-0 (rec x))))+ (send (cat (exp (gen) y) (mul w-0 (rec x))))) ((recv x) (send x)))+ (label 299)+ (parent 238)+ (unrealized (7 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (6 0)) ((8 1) (6 0)))+ (absent (x (mul (rec y) w-0 y-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x)))))+ ((recv h) (send (exp (gen) y-0))) ((recv x) (send x)))+ (label 300)+ (parent 241)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x expn) (w-0 expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul x w-0 y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0 y)))+ (deflistener (cat (exp (gen) y) (mul w-0 y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (8 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (6 0)) ((8 1) (6 0)))+ (absent (y-0 (mul x w-0 y)) (y h) (y-0 (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y y-0)) (gen)))+ (pen-non-orig x y-0)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 y-0) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y y-0)))+ (send (enc n (exp (gen) (mul x w-0 y y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul x w-0 y y-0)))+ (send (exp (gen) (mul x w-0 y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0 y)))+ (send (cat (exp (gen) y-0) (mul x w-0 y))))+ ((recv (cat (exp (gen) y) (mul w-0 y-0)))+ (send (cat (exp (gen) y) (mul w-0 y-0))))+ ((recv h) (send (exp (gen) y))) ((recv y-0) (send y-0)))+ (label 301)+ (parent 242)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (0 1)) ((7 1) (5 0))+ ((7 1) (8 0)) ((8 1) (6 0)))+ (absent (y-0 (mul x (rec y) w-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig x y)+ (precur (6 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 (rec y-0)) (6 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))) ((recv y-0) (send y-0)))+ (label 302)+ (parent 243)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul w-0 (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x (mul (rec y-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul w-0 (rec x))))+ (send (cat (gen) (mul w-0 (rec x))))) ((recv x) (send x)))+ (label 303)+ (parent 245)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul w-0 y-0)))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (8 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (y-0 (mul x w-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 y-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0)))+ (send (exp (gen) (mul x w-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0)))+ (send (cat (exp (gen) y-0) (mul x w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul w-0 y-0))) (send (cat (gen) (mul w-0 y-0))))+ ((recv y-0) (send y-0)))+ (label 304)+ (parent 246)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (x y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x x y-0)))+ (deflistener (cat (exp (gen) y-0) (mul w-0 x x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w-0 y-0)))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (8 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (y-0 (mul w-0 x x)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 x y-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 y-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x y-0)))+ (send (enc n (exp (gen) (mul w-0 x x y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x x y-0)))+ (send (exp (gen) (mul w-0 x x y-0))))+ ((recv (cat (exp (gen) y-0) (mul w-0 x x)))+ (send (cat (exp (gen) y-0) (mul w-0 x x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w-0 y-0)))+ (send (cat (exp (gen) x) (mul w-0 y-0)))) ((recv y-0) (send y-0)))+ (label 305)+ (parent 248)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 expn) (w-0 expr) (x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) w-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x (mul (rec y-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x) (rec x))+ (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 (rec x))))+ (send (enc n (exp (gen) w-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) w-0)) (send (exp (gen) w-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w-0 (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 306)+ (parent 249)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 expn) (w-0 expr) (x x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x (rec x-0)))) (x x-0))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 x)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0 x)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)) ((9 1) (7 0)))+ (absent (x-0 (mul (rec y-0) w-0 x)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 x (rec x-0))) (gen)))+ (pen-non-orig y x-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (7 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w-0 x (rec x-0))))+ (send (enc n (exp (gen) (mul w-0 x)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 x))) (send (exp (gen) (mul w-0 x))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0 x)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0 x))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x))) ((recv x-0) (send x-0)))+ (label 307)+ (parent 251)+ (unrealized (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x expn) (w-0 expr) (x-0 y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 x-0 y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 x-0 y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0 x-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul w-0 y-0)))+ (defstrand init 1 (x x-0))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (9 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (7 0)) ((9 1) (7 0)))+ (absent (y-0 (mul x w-0 x-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 x-0 y-0)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 y-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 x-0 y-0)))+ (send (enc n (exp (gen) (mul x w-0 x-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 x-0 y-0)))+ (send (exp (gen) (mul x w-0 x-0 y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0 x-0)))+ (send (cat (exp (gen) y-0) (mul x w-0 x-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul w-0 y-0)))+ (send (cat (exp (gen) x-0) (mul w-0 y-0))))+ ((send (exp (gen) x-0))) ((recv y-0) (send y-0)))+ (label 308)+ (parent 252)+ (unrealized (4 0) (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y x y-0 expn) (w-0 expr) (x-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (deflistener x-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 0) (5 0))+ ((8 0) (9 0)) ((9 1) (7 0)))+ (absent (x-0 (mul x (rec y-0) w-0)) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w-0 (rec x-0)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul w-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w-0 (rec x-0)))))+ ((send (exp (gen) x-0))) ((recv x-0) (send x-0)))+ (label 309)+ (parent 253)+ (unrealized (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (7 0))+ ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x (mul (rec y) w-0 y-0)) (y-0 (exp (gen) w)) (y h))+ (neq ((exp (gen) w) (gen)) (h (gen))+ ((exp (gen) (mul w-0 y-0 (rec x))) (gen)))+ (pen-non-orig y-0 x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y) (mul (rec y) w-0 y-0)))+ (send (cat (exp (gen) y) (mul (rec y) w-0 y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x)))))+ ((recv x) (send x)))+ (label 310)+ (parent 255)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x expn) (w-0 expr) (y y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y y-0))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w-0 y)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w-0 y-0)))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (7 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (8 0))+ ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (y-0 (mul x w-0 y)) (y (exp (gen) w)) (y-0 h))+ (neq ((exp (gen) w) (gen)) (h (gen))+ ((exp (gen) (mul w-0 y y-0)) (gen)))+ (pen-non-orig x y)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 y-0) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y y-0)))+ (send (enc n (exp (gen) (mul x w-0 y y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y y-0)))+ (send (exp (gen) (mul x w-0 y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w-0 y)))+ (send (cat (exp (gen) y-0) (mul x w-0 y))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul w-0 y-0)))+ (send (cat (exp (gen) y) (mul w-0 y-0)))) ((recv y-0) (send y-0)))+ (label 311)+ (parent 256)+ (unrealized (4 0) (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (x y expn) (w-0 expr) (y-0 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y-0) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (deflistener y-0)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 1) (5 0)) ((1 1) (8 0)) ((2 1) (1 2)) ((3 1) (2 0))+ ((4 1) (1 2)) ((5 1) (4 0)) ((6 1) (5 0)) ((6 1) (7 0))+ ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (y-0 (mul x (rec y) w-0)) (y-0 (exp (gen) w)) (y h))+ (neq ((exp (gen) w) (gen)) (h (gen)) ((exp (gen) w-0) (gen)))+ (pen-non-orig x y-0)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w-0 (rec y-0)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec y-0)))))+ ((recv y-0) (send y-0)))+ (label 312)+ (parent 257)+ (unrealized (5 0) (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) y-0))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (rec x)))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul y-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y-0 (rec x))))+ (send (enc n (exp (gen) y-0))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (rec x)))+ (send (cat (exp (gen) y-0) (rec x)))) ((recv x) (send x)))+ (label 313)+ (parent 258)+ (unrealized (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h base) (w expr) (y expn) (w-0 expr) (y-0 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-0)))+ (deflistener (cat (exp (gen) y-0) w-0))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (7 0)))+ (absent (x w-0) (y-0 h) (y (exp (gen) w)))+ (neq (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-0))) (send (exp (gen) (mul w-0 y-0))))+ ((recv (cat (exp (gen) y-0) w-0)) (send (cat (exp (gen) y-0) w-0)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-0) (mul w-0 (rec x)))))+ ((recv x) (send x)))+ (label 314)+ (parent 259)+ (unrealized (8 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y y-0 expn) (w-0 expr)+ (y-1 x expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-1 (rec x)))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul w-0 y-1)))+ (deflistener (cat (exp (gen) y-0) (mul (rec y-0) w-0 y-1)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul w-0 (rec x))))+ (defstrand resp 2 (h h-0) (y y-1))+ (deflistener x)+ (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)) ((9 1) (7 0)))+ (absent (x (mul (rec y-0) w-0 y-1)) (y-1 h-0) (y-0 h)+ (y (exp (gen) w)))+ (neq (h-0 (gen)) (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-1 (rec x))) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y y-0 y-1 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w-0 (rec x)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-1 (rec x))))+ (send (enc n (exp (gen) (mul w-0 y-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul w-0 y-1))) (send (exp (gen) (mul w-0 y-1))))+ ((recv (cat (exp (gen) y-0) (mul (rec y-0) w-0 y-1)))+ (send (cat (exp (gen) y-0) (mul (rec y-0) w-0 y-1))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul w-0 (rec x))))+ (send (cat (exp (gen) y-1) (mul w-0 (rec x)))))+ ((recv h-0) (send (exp (gen) y-1))) ((recv x) (send x)))+ (label 315)+ (parent 262)+ (unrealized (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x expn) (w-0 expr)+ (y-0 y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) (mul w-0 y-0 y-1))) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0 y-0 y-1)))+ (deflistener (cat (exp (gen) y-1) (mul x w-0 y-0)))+ (defstrand resp 2 (h h) (y y-1))+ (deflistener (cat (exp (gen) y-0) (mul w-0 y-1)))+ (defstrand resp 2 (h h-0) (y y-0))+ (deflistener y-1)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (9 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (7 0)) ((9 1) (7 0)))+ (absent (y-1 (mul x w-0 y-0)) (y-0 h-0) (y-1 h) (y (exp (gen) w)))+ (neq (h-0 (gen)) (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) (mul w-0 y-0 y-1)) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-listener y-1) (mul w-0 y-1) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w-0 y-0 y-1)))+ (send (enc n (exp (gen) (mul x w-0 y-0 y-1)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0 y-0 y-1)))+ (send (exp (gen) (mul x w-0 y-0 y-1))))+ ((recv (cat (exp (gen) y-1) (mul x w-0 y-0)))+ (send (cat (exp (gen) y-1) (mul x w-0 y-0))))+ ((recv h) (send (exp (gen) y-1)))+ ((recv (cat (exp (gen) y-0) (mul w-0 y-1)))+ (send (cat (exp (gen) y-0) (mul w-0 y-1))))+ ((recv h-0) (send (exp (gen) y-0))) ((recv y-1) (send y-1)))+ (label 316)+ (parent 263)+ (unrealized (4 0) (5 0) (9 0))+ (comment "empty cohort"))++(defskeleton dh_mim+ (vars (n text) (h h-0 base) (w expr) (y x y-0 expn) (w-0 expr)+ (y-1 expn))+ (defstrand init 3 (n n) (h (exp (gen) w-0)) (x x))+ (defstrand resp 3 (n n) (h (exp (gen) w)) (y y))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener (exp (gen) (mul x w-0)))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul w-0 (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (deflistener y-1)+ (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((2 1) (1 2)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0))+ ((6 1) (5 0)) ((6 1) (7 0)) ((7 1) (0 1)) ((8 1) (5 0))+ ((8 1) (9 0)) ((9 1) (7 0)))+ (absent (y-1 (mul x (rec y-0) w-0)) (y-1 h-0) (y-0 h)+ (y (exp (gen) w)))+ (neq (h-0 (gen)) (h (gen)) ((exp (gen) w) (gen))+ ((exp (gen) w-0) (gen)))+ (pen-non-orig y x)+ (precur (7 0) (5 0) (3 0))+ (uniq-gen y x y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-listener y-1) (mul w-0 (rec y-1)) (7 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w-0))+ (send (enc n (exp (gen) (mul x w-0)))))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv (exp (gen) (mul x w-0))) (send (exp (gen) (mul x w-0))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0) w-0)))+ (send (cat (exp (gen) y-0) (mul x (rec y-0) w-0))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul w-0 (rec y-1))))+ (send (cat (exp (gen) y-1) (mul w-0 (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))) ((recv y-1) (send y-1)))+ (label 317)+ (parent 264)+ (unrealized (5 0) (9 0))+ (comment "empty cohort")) (comment "Nothing left to do")
tst/dh_sig.scm view
@@ -4,15 +4,15 @@ (defprotocol dh_sig diffie-hellman (defrole init (vars (x expn) (h base) (a b name))- (trace - (send (exp (gen) x)) + (trace+ (send (exp (gen) x)) (recv (enc h (exp (gen) x) (privk b))) (send (enc h (exp (gen) x) (privk a)))) (uniq-gen x)) (defrole resp (vars (y expn) (h base) (a b name))- (trace - (recv h) + (trace+ (recv h) (send (enc (exp (gen) y) h (privk b))) (recv (enc (exp (gen) y) h (privk a)))) (uniq-gen y))@@ -30,19 +30,18 @@ (non-orig (privk a) (privk b)) ) - (defprotocol dh_sig2 diffie-hellman (defrole init (vars (x expn) (h base) (a b name))- (trace - (send (exp (gen) x)) + (trace+ (send (exp (gen) x)) (recv (enc h (exp (gen) x) (privk b))) (send (enc (exp (gen) x) h b (privk a)))) (uniq-gen x)) (defrole resp (vars (y expn) (h base) (a b name))- (trace - (recv h) + (trace+ (recv h) (send (enc (exp (gen) y) h (privk b))) (recv (enc h (exp (gen) y) b (privk a)))) (uniq-gen y))@@ -59,4 +58,3 @@ (defstrand resp 3 (a a) (b b)) (non-orig (privk a) (privk b)) )-
tst/dh_sig.tst view
@@ -1,6 +1,6 @@ (herald "Signed DH exchange" (algebra diffie-hellman)) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from dh_sig.scm") (defprotocol dh_sig diffie-hellman@@ -14,7 +14,7 @@ (trace (recv h) (send (enc (exp (gen) y) h (privk b))) (recv (enc (exp (gen) y) h (privk a)))) (uniq-gen y)- (ind-zero-in (y h))))+ (absent (y h)))) (defskeleton dh_sig (vars (a b name) (h base) (x expn))@@ -34,7 +34,7 @@ (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x)) (defstrand resp 2 (b b) (h (exp (gen) x)) (y y)) (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (ind-zero-in (y (exp (gen) x)))+ (absent (y (exp (gen) x))) (non-orig (privk a) (privk b)) (uniq-gen x y) (operation encryption-test (added-strand resp 2)@@ -65,12 +65,12 @@ (trace (recv h) (send (enc (exp (gen) y) h (privk b))) (recv (enc (exp (gen) y) h (privk a)))) (uniq-gen y)- (ind-zero-in (y h))))+ (absent (y h)))) (defskeleton dh_sig (vars (a b name) (h base) (y expn)) (defstrand resp 3 (a a) (b b) (h h) (y y))- (ind-zero-in (y h))+ (absent (y h)) (non-orig (privk a) (privk b)) (uniq-gen y) (traces@@ -86,7 +86,7 @@ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y)) (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x)) (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))- (ind-zero-in (y (exp (gen) x)))+ (absent (y (exp (gen) x))) (non-orig (privk a) (privk b)) (uniq-gen y x) (operation encryption-test (added-strand init 3)@@ -108,7 +108,7 @@ (defskeleton dh_sig (vars (b name) (h base) (y expn)) (defstrand resp 3 (a b) (b b) (h h) (y y))- (ind-zero-in (y h))+ (absent (y h)) (non-orig (privk b)) (uniq-gen y) (operation encryption-test (displaced 1 0 resp 2)@@ -136,7 +136,7 @@ (trace (recv h) (send (enc (exp (gen) y) h (privk b))) (recv (enc h (exp (gen) y) b (privk a)))) (uniq-gen y)- (ind-zero-in (y h))))+ (absent (y h)))) (defskeleton dh_sig2 (vars (a b name) (h base) (x expn))@@ -156,7 +156,7 @@ (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x)) (defstrand resp 2 (b b) (h (exp (gen) x)) (y y)) (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (ind-zero-in (y (exp (gen) x)))+ (absent (y (exp (gen) x))) (non-orig (privk a) (privk b)) (uniq-gen x y) (operation encryption-test (added-strand resp 2)@@ -187,12 +187,12 @@ (trace (recv h) (send (enc (exp (gen) y) h (privk b))) (recv (enc h (exp (gen) y) b (privk a)))) (uniq-gen y)- (ind-zero-in (y h))))+ (absent (y h)))) (defskeleton dh_sig2 (vars (a b name) (h base) (y expn)) (defstrand resp 3 (a a) (b b) (h h) (y y))- (ind-zero-in (y h))+ (absent (y h)) (non-orig (privk a) (privk b)) (uniq-gen y) (traces@@ -208,7 +208,7 @@ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y)) (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x)) (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))- (ind-zero-in (y (exp (gen) x)))+ (absent (y (exp (gen) x))) (non-orig (privk a) (privk b)) (uniq-gen y x) (operation encryption-test (added-strand init 3)
tst/dh_test.scm view
@@ -1,6 +1,6 @@ (herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman) (bound 20)) -(comment +(comment (defprotocol foo diffie-hellman (defrole init (vars (h base) (k akey) (x expn))@@ -63,7 +63,6 @@ (vars (x expn)) (defstrand init 2 (x x))) - (defprotocol bazar diffie-hellman (defrole init (vars (h base) (t text) (x z expn) (k skey))@@ -85,7 +84,6 @@ (defskeleton bazar (vars (k skey)) (defstrand init 2 (k k)))- (defprotocol foo2 diffie-hellman (defrole init
tst/dh_test.tst view
@@ -1,7 +1,7 @@ (herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman) (bound 20)) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from dh_test.scm") (comment "Strand count bounded at 20") @@ -17,7 +17,7 @@ (label 0) (unrealized (0 0)) (origs)- (comment "1 in cohort - 1 not yet seen"))+ (comment "2 in cohort - 2 not yet seen")) (defskeleton foo3 (vars (x expn))@@ -33,5 +33,59 @@ (shape) (maps ((0) ((x x)))) (origs))++(defskeleton foo3+ (vars (x expn) (w expr))+ (defstrand resp 1 (h (exp (gen) x)))+ (deflistener (cat (exp (gen) (mul x (rec w))) w))+ (precedes ((1 1) (0 0)))+ (non-orig x)+ (precur (1 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)+ (0 0))+ (traces ((recv (exp (gen) x)))+ ((recv (cat (exp (gen) (mul x (rec w))) w))+ (send (cat (exp (gen) (mul x (rec w))) w))))+ (label 2)+ (parent 0)+ (unrealized (1 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton foo3+ (vars (x x-0 expn))+ (defstrand resp 1 (h (exp (gen) x)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((1 1) (0 0)) ((2 0) (1 0)))+ (non-orig x)+ (precur (1 0))+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+ (traces ((recv (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 3)+ (parent 2)+ (unrealized (0 0) (1 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton foo3+ (vars (x expn))+ (defstrand resp 1 (h (exp (gen) x)))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (precedes ((1 1) (0 0)) ((2 0) (1 0)))+ (non-orig x)+ (precur (1 0))+ (operation nonce-test (contracted (x-0 x) (x-1 x)) (one) (1 0))+ (traces ((recv (exp (gen) x)))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((send (exp (gen) x))))+ (label 4)+ (parent 3)+ (seen 1)+ (unrealized)+ (comment "1 in cohort - 0 not yet seen")) (comment "Nothing left to do")
tst/dhnsl.lisp view
@@ -49,4 +49,3 @@ ; (non-orig (privk a)) ; (uniq-gen y z x) ; (comment "empty cohort"))-
tst/dhnsl.tst view
@@ -1,7 +1,7 @@ (herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol" (algebra diffie-hellman)) -(comment "CPSA 3.0.2")+(comment "CPSA 3.4.0") (comment "All input read from dhnsl.lsp") (defprotocol dhnsl diffie-hellman
tst/dhnsl_basic.scm view
@@ -9,7 +9,9 @@ (recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a))) (recv (enc (exp (gen) y) (pubk b)))- )+ + )+ (absent (y h1)) ; (uniq-gen y) (comment "Y and Z should be assumed to be freshly chosen per role") )
tst/dhnsl_basic.tst view
@@ -1,7 +1,7 @@ (herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol" (algebra diffie-hellman)) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from dhnsl_basic.scm") (defprotocol dhnsl diffie-hellman@@ -10,6 +10,7 @@ (trace (recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a))) (recv (enc (exp (gen) y) (pubk b))))+ (absent (y h1)) (comment "Y and Z should be assumed to be freshly chosen per role")) (defrole init (vars (a b name) (h2 base) (x expn))@@ -32,13 +33,14 @@ (label 0) (unrealized (0 1)) (origs)- (comment "1 in cohort - 1 not yet seen"))+ (comment "2 in cohort - 2 not yet seen")) (defskeleton dhnsl (vars (a b name) (h2 base) (x y expn)) (defstrand init 3 (a a) (b b) (h2 h2) (x x)) (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y)) (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (absent (y (exp (gen) x))) (non-orig (privk a) (privk b)) (uniq-gen x) (operation nonce-test (added-strand resp 2) (exp (gen) x) (0 1)@@ -54,10 +56,32 @@ (comment "2 in cohort - 2 not yet seen")) (defskeleton dhnsl+ (vars (a b name) (h2 base) (x expn) (w expr))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) (mul x (rec w))) w))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (precur (1 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)+ (0 1) (enc (exp (gen) x) a (pubk b)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (cat (exp (gen) (mul x (rec w))) w))+ (send (cat (exp (gen) (mul x (rec w))) w))))+ (label 2)+ (parent 0)+ (unrealized (1 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhnsl (vars (a b name) (x y expn)) (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x)) (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y)) (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (absent (y (exp (gen) x))) (non-orig (privk a) (privk b)) (uniq-gen x) (operation nonce-test (contracted (h2 (exp (gen) y))) (exp (gen) x)@@ -69,7 +93,7 @@ (send (enc (exp (gen) y) (pubk b)))) ((recv (enc (exp (gen) x) a (pubk b))) (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))))- (label 2)+ (label 3) (parent 1) (unrealized) (shape)@@ -77,48 +101,410 @@ (origs)) (defskeleton dhnsl- (vars (a b name) (h2 base) (y expn))- (defstrand init 3 (a a) (b b) (h2 h2) (x y))- (defstrand resp 2 (b b) (a a) (h1 (exp (gen) y)) (y y))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (vars (a b name) (h2 base) (x y expn) (w expr))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) (mul x (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+ (absent (y (exp (gen) x))) (non-orig (privk a) (privk b))- (uniq-gen y)- (operation nonce-test (displaced 2 1 resp 2) (exp (gen) y-0) (0 1)- (enc (exp (gen) y-0) a (pubk b))- (enc (exp (gen) y-0) (exp (gen) y-1) b (pubk a)))+ (uniq-gen x)+ (precur (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)+ (0 1) (enc (exp (gen) x) a (pubk b))+ (enc (exp (gen) x) (exp (gen) y) b (pubk a))) (traces- ((send (enc (exp (gen) y) a (pubk b)))- (recv (enc (exp (gen) y) h2 b (pubk a))) (send (enc h2 (pubk b))))- ((recv (enc (exp (gen) y) a (pubk b)))- (send (enc (exp (gen) y) (exp (gen) y) b (pubk a)))))- (label 3)+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) (mul x (rec w))) w))+ (send (cat (exp (gen) (mul x (rec w))) w))))+ (label 4) (parent 1)- (unrealized (0 1))+ (unrealized (2 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dhnsl+ (vars (a b name) (h2 base) (x expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (gen) x))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (precur (1 0))+ (operation nonce-test (contracted (x-0 x) (w x)) (gen) (1 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (cat (gen) x)) (send (cat (gen) x))))+ (label 5)+ (parent 2)+ (unrealized (1 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (a b b-0 a-0 name) (h2 h1 base) (x y expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y h1))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (1 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (cat (exp (gen) y) (mul x (rec y))))+ (send (cat (exp (gen) y) (mul x (rec y)))))+ ((recv (enc h1 a-0 (pubk b-0)))+ (send (enc h1 (exp (gen) y) b-0 (pubk a-0)))))+ (label 6)+ (parent 2)+ (unrealized (0 1) (1 0)) (comment "1 in cohort - 1 not yet seen")) (defskeleton dhnsl- (vars (a b name) (y expn))- (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x y))- (defstrand resp 2 (b b) (a a) (h1 (exp (gen) y)) (y y))+ (vars (a b name) (h2 base) (x expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) x) (one))) (precedes ((0 0) (1 0)) ((1 1) (0 1))) (non-orig (privk a) (privk b))- (uniq-gen y)- (operation nonce-test (contracted (h2 (exp (gen) y))) (exp (gen) y)- (0 1) (enc (exp (gen) y) a (pubk b))- (enc (exp (gen) y) (exp (gen) y) b (pubk a)))+ (precur (1 0))+ (uniq-gen x)+ (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0)) (traces- ((send (enc (exp (gen) y) a (pubk b)))- (recv (enc (exp (gen) y) (exp (gen) y) b (pubk a)))- (send (enc (exp (gen) y) (pubk b))))- ((recv (enc (exp (gen) y) a (pubk b)))- (send (enc (exp (gen) y) (exp (gen) y) b (pubk a)))))- (label 4)- (parent 3)- (unrealized)- (shape)- (maps ((0) ((a a) (b b) (h2 (exp (gen) y)) (x y))))- (origs))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))+ (label 7)+ (parent 2)+ (unrealized (1 0))+ (comment "1 in cohort - 1 not yet seen")) +(defskeleton dhnsl+ (vars (a b a-0 b-0 name) (h2 base) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (a a-0) (b b-0) (x x-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+ (label 8)+ (parent 2)+ (unrealized (0 1) (1 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (a b name) (h2 base) (y x expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (gen) x))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (precur (2 0))+ (operation nonce-test (contracted (x-0 x) (w x)) (gen) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (gen) x)) (send (cat (gen) x))))+ (label 9)+ (parent 4)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (a b name) (h2 base) (x y expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) y) (mul x (rec y))))+ (send (cat (exp (gen) y) (mul x (rec y))))))+ (label 10)+ (parent 4)+ (unrealized (0 1) (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (a b b-0 a-0 name) (h2 h1 base) (y x y-0 expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))+ ((3 1) (2 0)))+ (absent (y-0 h1) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0))))+ (send (cat (exp (gen) y-0) (mul x (rec y-0)))))+ ((recv (enc h1 a-0 (pubk b-0)))+ (send (enc h1 (exp (gen) y-0) b-0 (pubk a-0)))))+ (label 11)+ (parent 4)+ (unrealized (0 1) (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (a b name) (h2 base) (y x expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x) (one)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))+ (label 12)+ (parent 4)+ (seen 15)+ (unrealized (2 0))+ (comment "2 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (a b a-0 b-0 name) (h2 base) (y x x-0 expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (a a-0) (b b-0) (x x-0))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))+ ((3 0) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+ (label 13)+ (parent 4)+ (unrealized (0 1) (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (a b b-0 a-0 name) (h2 h1 base) (x y expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1) (y y))+ (deflistener x)+ (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (1 0)))+ (absent (y h1))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x)+ (operation nonce-test (added-listener x) (mul x (rec y)) (1 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (cat (exp (gen) y) (mul x (rec y))))+ (send (cat (exp (gen) y) (mul x (rec y)))))+ ((recv (enc h1 a-0 (pubk b-0)))+ (send (enc h1 (exp (gen) y) b-0 (pubk a-0)))) ((recv x) (send x)))+ (label 14)+ (parent 6)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (a b name) (h2 base) (x y expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x)+ (operation nonce-test (added-strand resp 2) (exp (gen) x) (1 0)+ (enc (exp (gen) x) a (pubk b)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))))+ (label 15)+ (parent 7)+ (unrealized (1 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (a b a-0 b-0 name) (h2 base) (x x-0 expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (a a-0) (b b-0) (x x-0))+ (deflistener x)+ (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 0) (1 0)) ((3 1) (1 0)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x)+ (operation nonce-test (added-listener x) (mul x (rec x-0)) (1 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))) ((recv x) (send x)))+ (label 16)+ (parent 8)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (a b name) (h2 base) (x y expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (2 0)) ((2 1) (0 1))+ ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (added-listener x) (mul x (rec y)) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) y) (mul x (rec y))))+ (send (cat (exp (gen) y) (mul x (rec y))))) ((recv x) (send x)))+ (label 17)+ (parent 10)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (a b b-0 a-0 name) (h2 h1 base) (y x y-0 expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1) (y y-0))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 1))+ ((3 1) (2 0)) ((4 1) (2 0)))+ (absent (y-0 h1) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (added-listener x) (mul x (rec y-0)) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0))))+ (send (cat (exp (gen) y-0) (mul x (rec y-0)))))+ ((recv (enc h1 a-0 (pubk b-0)))+ (send (enc h1 (exp (gen) y-0) b-0 (pubk a-0))))+ ((recv x) (send x)))+ (label 18)+ (parent 11)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (a b name) (h2 base) (y x y-0 expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))+ ((3 1) (2 0)))+ (absent (y-0 (exp (gen) x)) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)+ (enc (exp (gen) x) a (pubk b)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))))+ (label 19)+ (parent 12)+ (seen 15)+ (unrealized (2 0))+ (comment "1 in cohort - 0 not yet seen"))++(defskeleton dhnsl+ (vars (a b a-0 b-0 name) (h2 base) (y x x-0 expn))+ (defstrand init 3 (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (a a-0) (b b-0) (x x-0))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 1))+ ((3 0) (2 0)) ((4 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x)+ (operation nonce-test (added-listener x) (mul x (rec x-0)) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))) ((recv x) (send x)))+ (label 20)+ (parent 13)+ (unrealized (4 0))+ (comment "empty cohort"))+ (comment "Nothing left to do") (defprotocol dhnsl diffie-hellman@@ -127,6 +513,7 @@ (trace (recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a))) (recv (enc (exp (gen) y) (pubk b))))+ (absent (y h1)) (comment "Y and Z should be assumed to be freshly chosen per role")) (defrole init (vars (a b name) (h2 base) (x expn))@@ -139,22 +526,24 @@ (defskeleton dhnsl (vars (a b name) (h1 base) (y expn)) (defstrand resp 3 (b b) (a a) (h1 h1) (y y))+ (absent (y h1)) (non-orig (privk a)) (uniq-gen y) (comment "Responder point-of-view") (traces ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a))) (recv (enc (exp (gen) y) (pubk b)))))- (label 5)+ (label 21) (unrealized (0 2)) (origs)- (comment "1 in cohort - 1 not yet seen"))+ (comment "2 in cohort - 2 not yet seen")) (defskeleton dhnsl (vars (a b name) (y x expn)) (defstrand resp 3 (b b) (a a) (h1 (exp (gen) x)) (y y)) (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x)) (precedes ((0 1) (1 1)) ((1 2) (0 2)))+ (absent (y (exp (gen) x))) (non-orig (privk a)) (uniq-gen y) (operation nonce-test (added-strand init 3) (exp (gen) y) (0 2)@@ -166,11 +555,190 @@ ((send (enc (exp (gen) x) a (pubk b))) (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a))) (send (enc (exp (gen) y) (pubk b)))))- (label 6)- (parent 5)+ (label 22)+ (parent 21) (unrealized) (shape) (maps ((0) ((a a) (b b) (h1 (exp (gen) x)) (y y)))) (origs))++(defskeleton dhnsl+ (vars (a b name) (h1 base) (y expn) (w expr))+ (defstrand resp 3 (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (exp (gen) (mul y (rec w))) w))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (absent (y h1))+ (non-orig (privk a))+ (uniq-gen y)+ (precur (1 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)+ (0 2) (enc h1 (exp (gen) y) b (pubk a)))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))))+ ((recv (cat (exp (gen) (mul y (rec w))) w))+ (send (cat (exp (gen) (mul y (rec w))) w))))+ (label 23)+ (parent 21)+ (unrealized (1 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhnsl+ (vars (a b name) (h1 base) (y expn))+ (defstrand resp 3 (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (gen) y))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (absent (y h1))+ (non-orig (privk a))+ (uniq-gen y)+ (precur (1 0))+ (operation nonce-test (contracted (y-0 y) (w y)) (gen) (1 0))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))))+ ((recv (cat (gen) y)) (send (cat (gen) y))))+ (label 24)+ (parent 23)+ (unrealized (1 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (a b name) (h1 base) (y expn))+ (defstrand resp 3 (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (absent (y h1))+ (non-orig (privk a))+ (precur (1 0))+ (uniq-gen y)+ (operation nonce-test (displaced 2 0 resp 2) (exp (gen) y-0) (1 0))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))+ (label 25)+ (parent 23)+ (unrealized (1 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (a b b-0 a-0 name) (h1 h1-0 base) (y y-0 expn))+ (defstrand resp 3 (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1-0) (y y-0))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))+ (absent (y-0 h1-0) (y h1))+ (non-orig (privk a))+ (precur (1 0))+ (uniq-gen y)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))))+ ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y (rec y-0)))))+ ((recv (enc h1-0 a-0 (pubk b-0)))+ (send (enc h1-0 (exp (gen) y-0) b-0 (pubk a-0)))))+ (label 26)+ (parent 23)+ (unrealized (0 2) (1 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (a b a-0 b-0 name) (h1 base) (y x expn))+ (defstrand resp 3 (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x))))+ (defstrand init 1 (a a-0) (b b-0) (x x))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))+ (absent (y h1))+ (non-orig (privk a))+ (precur (1 0))+ (uniq-gen y)+ (operation nonce-test (added-strand init 1) (exp (gen) x) (1 0))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))))+ ((recv (cat (exp (gen) x) (mul y (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x)))))+ ((send (enc (exp (gen) x) a-0 (pubk b-0)))))+ (label 27)+ (parent 23)+ (unrealized (0 2) (1 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (a b name) (y x expn))+ (defstrand resp 3 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 2) (1 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a))+ (precur (1 0))+ (uniq-gen y)+ (operation nonce-test (added-strand init 3) (exp (gen) y) (1 0)+ (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))))+ (label 28)+ (parent 25)+ (seen 22)+ (unrealized)+ (comment "1 in cohort - 0 not yet seen"))++(defskeleton dhnsl+ (vars (a b b-0 a-0 name) (h1 h1-0 base) (y y-0 expn))+ (defstrand resp 3 (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1-0) (y y-0))+ (deflistener y)+ (precedes ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (1 0)))+ (absent (y-0 h1-0) (y h1))+ (non-orig (privk a))+ (precur (1 0))+ (uniq-gen y)+ (operation nonce-test (added-listener y) (mul y (rec y-0)) (1 0))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))))+ ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y (rec y-0)))))+ ((recv (enc h1-0 a-0 (pubk b-0)))+ (send (enc h1-0 (exp (gen) y-0) b-0 (pubk a-0))))+ ((recv y) (send y)))+ (label 29)+ (parent 26)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (a b a-0 b-0 name) (h1 base) (y x expn))+ (defstrand resp 3 (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x))))+ (defstrand init 1 (a a-0) (b b-0) (x x))+ (deflistener y)+ (precedes ((0 1) (3 0)) ((1 1) (0 2)) ((2 0) (1 0)) ((3 1) (1 0)))+ (absent (y h1))+ (non-orig (privk a))+ (precur (1 0))+ (uniq-gen y)+ (operation nonce-test (added-listener y) (mul y (rec x)) (1 0))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))))+ ((recv (cat (exp (gen) x) (mul y (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x)))))+ ((send (enc (exp (gen) x) a-0 (pubk b-0)))) ((recv y) (send y)))+ (label 30)+ (parent 27)+ (unrealized (3 0))+ (comment "empty cohort")) (comment "Nothing left to do")
tst/dhnsl_use.scm view
@@ -76,7 +76,6 @@ (comment "Needham-Schroeder-Lowe DH challenge/responses in place of nonces") ) - ;;; The initiator point-of-view (defskeleton dhns (vars (a b name) (h2 h3 base) (x expn))@@ -92,4 +91,3 @@ (non-orig (privk a) (privk b)) ; (uniq-gen y) (comment "Responder point-of-view"))-
tst/dhnsl_use.tst view
@@ -1,625 +1,3987 @@ (herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol" (algebra diffie-hellman)) -(comment "CPSA 3.2.2")-(comment "All input read from dhnsl_use.scm")--(defprotocol dhnsl diffie-hellman- (defrole resp- (vars (b a name) (h1 base) (y expn) (n text))- (trace (recv (enc h1 a (pubk b)))- (send (enc h1 (exp (gen) y) b (pubk a)))- (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))- (recv n))- (uniq-orig n)- (uniq-gen y)- (ind-zero-in (y h1))- (comment "Y should be assumed to be freshly chosen per role"))- (defrole init- (vars (a b name) (h2 base) (x expn) (n text))- (trace (send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))- (recv (enc n (exp h2 x))) (send n))- (uniq-gen x)- (comment "X should be assumed to be freshly chosen per role"))- (comment- "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))--(defskeleton dhnsl- (vars (n text) (a b name) (h2 base) (x expn))- (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))- (non-orig (privk a) (privk b))- (uniq-gen x)- (comment "Initiator point-of-view")- (traces- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))- (recv (enc n (exp h2 x))) (send n)))- (label 0)- (unrealized (0 1) (0 3))- (origs)- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl- (vars (n text) (a b name) (h2 base) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))- (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen x y)- (operation nonce-test (added-strand resp 2) (exp (gen) x) (0 1)- (enc (exp (gen) x) a (pubk b)))- (traces- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))- (recv (enc n (exp h2 x))) (send n))- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))))- (label 1)- (parent 0)- (unrealized (0 1) (0 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl- (vars (n text) (a b name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))- (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen x y)- (operation nonce-test (contracted (h2 (exp (gen) y))) (exp (gen) x)- (0 1) (enc (exp (gen) x) a (pubk b))- (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (traces- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (send (enc (exp (gen) y) (pubk b)))- (recv (enc n (exp (gen) (mul x y)))) (send n))- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))))- (label 2)- (parent 1)- (unrealized (0 3))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhnsl- (vars (n text) (b a name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))- (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))- (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 3) (0 3)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk b) (privk a))- (uniq-gen x y)- (uniq-orig n)- (operation encryption-test (displaced 1 2 resp 4)- (enc n (exp (gen) (mul x y-0))) (0 3))- (traces- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (send (enc (exp (gen) y) (pubk b)))- (recv (enc n (exp (gen) (mul x y)))) (send n))- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (recv (enc (exp (gen) y) (pubk b)))- (send (enc n (exp (gen) (mul x y))))))- (label 3)- (parent 2)- (unrealized (1 2))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl- (vars (n text) (a b name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))- (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))- (deflistener (exp (gen) (mul x y)))- (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen x y)- (operation encryption-test (added-listener (exp (gen) (mul x y)))- (enc n (exp (gen) (mul x y))) (0 3))- (traces- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (send (enc (exp (gen) y) (pubk b)))- (recv (enc n (exp (gen) (mul x y)))) (send n))- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))- ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))- (label 4)- (parent 2)- (unrealized (2 0))- (comment "empty cohort"))--(defskeleton dhnsl- (vars (n text) (b a name) (y x expn))- (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))- (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))- (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk b) (privk a))- (uniq-gen y x)- (uniq-orig n)- (operation nonce-test (displaced 2 0 init 3) (exp (gen) y) (1 2)- (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (traces- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (send (enc (exp (gen) y) (pubk b)))- (recv (enc n (exp (gen) (mul y x)))) (send n))- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (recv (enc (exp (gen) y) (pubk b)))- (send (enc n (exp (gen) (mul y x))))))- (label 5)- (parent 3)- (unrealized)- (shape)- (maps ((0) ((a a) (b b) (h2 (exp (gen) y)) (x x) (n n))))- (origs (n (1 3))))--(comment "Nothing left to do")--(defprotocol dhnsl diffie-hellman- (defrole resp- (vars (b a name) (h1 base) (y expn) (n text))- (trace (recv (enc h1 a (pubk b)))- (send (enc h1 (exp (gen) y) b (pubk a)))- (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))- (recv n))- (uniq-orig n)- (uniq-gen y)- (ind-zero-in (y h1))- (comment "Y should be assumed to be freshly chosen per role"))- (defrole init- (vars (a b name) (h2 base) (x expn) (n text))- (trace (send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))- (recv (enc n (exp h2 x))) (send n))- (uniq-gen x)- (comment "X should be assumed to be freshly chosen per role"))- (comment- "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))--(defskeleton dhnsl- (vars (n text) (a b name) (h1 base) (y expn))- (defstrand resp 5 (n n) (b b) (a a) (h1 h1) (y y))- (ind-zero-in (y h1))- (non-orig (privk a) (privk b))- (uniq-gen y)- (uniq-orig n)- (comment "Responder point-of-view")- (traces- ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a)))- (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))- (recv n)))- (label 6)- (unrealized (0 2) (0 4))- (origs (n (0 3)))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl- (vars (n text) (a b name) (y x expn))- (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))- (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))- (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x)- (uniq-orig n)- (operation nonce-test (added-strand init 3) (exp (gen) y) (0 2)- (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (traces- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (recv (enc (exp (gen) y) (pubk b)))- (send (enc n (exp (gen) (mul y x)))) (recv n))- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (send (enc (exp (gen) y) (pubk b)))))- (label 7)- (parent 6)- (unrealized (0 4))- (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl- (vars (n text) (a b name) (y x expn))- (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))- (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))- (precedes ((0 1) (1 1)) ((0 3) (1 3)) ((1 0) (0 0)) ((1 2) (0 2))- ((1 4) (0 4)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x)- (uniq-orig n)- (operation nonce-test (displaced 1 2 init 5) n (0 4)- (enc n (exp (gen) (mul y x-0))))- (traces- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (recv (enc (exp (gen) y) (pubk b)))- (send (enc n (exp (gen) (mul y x)))) (recv n))- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (send (enc (exp (gen) y) (pubk b)))- (recv (enc n (exp (gen) (mul y x)))) (send n)))- (label 8)- (parent 7)- (unrealized)- (shape)- (maps ((0) ((a a) (b b) (h1 (exp (gen) x)) (y y) (n n))))- (origs (n (0 3))))--(defskeleton dhnsl- (vars (n text) (a b a-0 b-0 name) (y x x-0 expn))- (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))- (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))- (defstrand init 5 (n n) (a a-0) (b b-0)- (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))- (precedes ((0 1) (1 1)) ((0 1) (2 1)) ((0 3) (2 3)) ((1 0) (0 0))- ((1 2) (0 2)) ((2 4) (0 4)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x x-0)- (uniq-orig n)- (operation nonce-test (added-strand init 5) n (0 4)- (enc n (exp (gen) (mul y x))))- (traces- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (recv (enc (exp (gen) y) (pubk b)))- (send (enc n (exp (gen) (mul y x)))) (recv n))- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (send (enc (exp (gen) y) (pubk b))))- ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))- (recv- (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0- (pubk a-0)))- (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))- (recv (enc n (exp (gen) (mul y x)))) (send n)))- (label 9)- (parent 7)- (unrealized (2 1))- (comment "empty cohort"))--(defskeleton dhnsl- (vars (n text) (a b name) (y x expn))- (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))- (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))- (deflistener (exp (gen) (mul y x)))- (precedes ((0 1) (1 1)) ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2))- ((2 1) (0 4)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x)- (uniq-orig n)- (operation nonce-test (added-listener (exp (gen) (mul y x))) n (0 4)- (enc n (exp (gen) (mul y x))))- (traces- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (recv (enc (exp (gen) y) (pubk b)))- (send (enc n (exp (gen) (mul y x)))) (recv n))- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))- (send (enc (exp (gen) y) (pubk b))))- ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))- (label 10)- (parent 7)- (unrealized (2 0))- (comment "empty cohort"))--(comment "Nothing left to do")--(defprotocol dhns diffie-hellman- (defrole resp- (vars (b a name) (h1 base) (y expn) (n text))- (trace (recv (enc h1 a (pubk b)))- (send (enc h1 (exp (gen) y) (pubk a)))- (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))- (recv n))- (uniq-orig n)- (uniq-gen y)- (ind-zero-in (y h1))- (comment "Y should be assumed to be freshly chosen per role"))- (defrole init- (vars (a b name) (h2 base) (x expn) (n text))- (trace (send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))- (recv (enc n (exp h2 x))) (send n))- (uniq-gen x)- (comment "X should be assumed to be freshly chosen per role"))- (comment- "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))--(defskeleton dhns- (vars (n text) (a b name) (h2 base) (x expn))- (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))- (non-orig (privk a) (privk b))- (uniq-gen x)- (comment "Initiator point-of-view")- (traces- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))- (recv (enc n (exp h2 x))) (send n)))- (label 11)- (unrealized (0 1) (0 3))- (origs)- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns- (vars (n text) (a b name) (h2 base) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))- (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen x y)- (operation nonce-test (added-strand resp 2) (exp (gen) x) (0 1)- (enc (exp (gen) x) a (pubk b)))- (traces- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))- (recv (enc n (exp h2 x))) (send n))- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))))- (label 12)- (parent 11)- (unrealized (0 1) (0 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns- (vars (n text) (a b name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))- (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen x y)- (operation nonce-test (contracted (h2 (exp (gen) y))) (exp (gen) x)- (0 1) (enc (exp (gen) x) a (pubk b))- (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (traces- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (send (enc (exp (gen) y) (pubk b)))- (recv (enc n (exp (gen) (mul x y)))) (send n))- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))))- (label 13)- (parent 12)- (unrealized (0 3))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhns- (vars (n text) (b a name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))- (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))- (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 3) (0 3)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk b) (privk a))- (uniq-gen x y)- (uniq-orig n)- (operation encryption-test (displaced 1 2 resp 4)- (enc n (exp (gen) (mul x y-0))) (0 3))- (traces- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (send (enc (exp (gen) y) (pubk b)))- (recv (enc n (exp (gen) (mul x y)))) (send n))- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (recv (enc (exp (gen) y) (pubk b)))- (send (enc n (exp (gen) (mul x y))))))- (label 14)- (parent 13)- (unrealized (1 2))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns- (vars (n text) (a b name) (x y expn))- (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))- (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))- (deflistener (exp (gen) (mul x y)))- (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen x y)- (operation encryption-test (added-listener (exp (gen) (mul x y)))- (enc n (exp (gen) (mul x y))) (0 3))- (traces- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (send (enc (exp (gen) y) (pubk b)))- (recv (enc n (exp (gen) (mul x y)))) (send n))- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))- ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))- (label 15)- (parent 13)- (unrealized (2 0))- (comment "empty cohort"))--(defskeleton dhns- (vars (n text) (b a name) (y x expn))- (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))- (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))- (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk b) (privk a))- (uniq-gen y x)- (uniq-orig n)- (operation nonce-test (displaced 2 0 init 3) (exp (gen) y) (1 2)- (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (traces- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (send (enc (exp (gen) y) (pubk b)))- (recv (enc n (exp (gen) (mul y x)))) (send n))- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (recv (enc (exp (gen) y) (pubk b)))- (send (enc n (exp (gen) (mul y x))))))- (label 16)- (parent 14)- (unrealized)- (shape)- (maps ((0) ((a a) (b b) (h2 (exp (gen) y)) (x x) (n n))))- (origs (n (1 3))))--(comment "Nothing left to do")--(defprotocol dhns diffie-hellman- (defrole resp- (vars (b a name) (h1 base) (y expn) (n text))- (trace (recv (enc h1 a (pubk b)))- (send (enc h1 (exp (gen) y) (pubk a)))- (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))- (recv n))- (uniq-orig n)- (uniq-gen y)- (ind-zero-in (y h1))- (comment "Y should be assumed to be freshly chosen per role"))- (defrole init- (vars (a b name) (h2 base) (x expn) (n text))- (trace (send (enc (exp (gen) x) a (pubk b)))- (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))- (recv (enc n (exp h2 x))) (send n))- (uniq-gen x)- (comment "X should be assumed to be freshly chosen per role"))- (comment- "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))--(defskeleton dhns- (vars (n text) (a b name) (h1 base) (y expn))- (defstrand resp 5 (n n) (b b) (a a) (h1 h1) (y y))- (ind-zero-in (y h1))- (non-orig (privk a) (privk b))- (uniq-gen y)- (uniq-orig n)- (comment "Responder point-of-view")- (traces- ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) (pubk a)))- (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))- (recv n)))- (label 17)- (unrealized (0 2) (0 4))- (origs (n (0 3)))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns- (vars (n text) (a b b-0 name) (y x expn))- (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))- (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))- (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x)- (uniq-orig n)- (operation nonce-test (added-strand init 3) (exp (gen) y) (0 2)- (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (traces- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (recv (enc (exp (gen) y) (pubk b)))- (send (enc n (exp (gen) (mul y x)))) (recv n))- ((send (enc (exp (gen) x) a (pubk b-0)))- (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (send (enc (exp (gen) y) (pubk b-0)))))- (label 18)- (parent 17)- (unrealized (0 4))- (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhns- (vars (n text) (b a b-0 name) (y x expn))- (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))- (defstrand init 5 (n n) (a a) (b b-0) (h2 (exp (gen) y)) (x x))- (precedes ((0 1) (1 1)) ((0 3) (1 3)) ((1 0) (0 0)) ((1 2) (0 2))- ((1 4) (0 4)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk b) (privk a))- (uniq-gen y x)- (uniq-orig n)- (operation nonce-test (displaced 1 2 init 5) n (0 4)- (enc n (exp (gen) (mul y x-0))))- (traces- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (recv (enc (exp (gen) y) (pubk b)))- (send (enc n (exp (gen) (mul y x)))) (recv n))- ((send (enc (exp (gen) x) a (pubk b-0)))- (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (send (enc (exp (gen) y) (pubk b-0)))- (recv (enc n (exp (gen) (mul y x)))) (send n)))- (label 19)- (parent 18)- (unrealized)- (shape)- (maps ((0) ((a a) (b b) (h1 (exp (gen) x)) (y y) (n n))))- (origs (n (0 3))))--(defskeleton dhns- (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 expn))- (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))- (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))- (defstrand init 5 (n n) (a a-0) (b b-1)- (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))- (precedes ((0 1) (1 1)) ((0 1) (2 1)) ((0 3) (2 3)) ((1 0) (0 0))- ((1 2) (0 2)) ((2 4) (0 4)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x x-0)- (uniq-orig n)- (operation nonce-test (added-strand init 5) n (0 4)- (enc n (exp (gen) (mul y x))))- (traces- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (recv (enc (exp (gen) y) (pubk b)))- (send (enc n (exp (gen) (mul y x)))) (recv n))- ((send (enc (exp (gen) x) a (pubk b-0)))- (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (send (enc (exp (gen) y) (pubk b-0))))- ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))- (recv- (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))- (pubk a-0)))- (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))- (recv (enc n (exp (gen) (mul y x)))) (send n)))- (label 20)- (parent 18)- (unrealized (2 1))- (comment "empty cohort"))--(defskeleton dhns- (vars (n text) (a b b-0 name) (y x expn))- (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))- (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))- (deflistener (exp (gen) (mul y x)))- (precedes ((0 1) (1 1)) ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2))- ((2 1) (0 4)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x)- (uniq-orig n)- (operation nonce-test (added-listener (exp (gen) (mul y x))) n (0 4)- (enc n (exp (gen) (mul y x))))- (traces- ((recv (enc (exp (gen) x) a (pubk b)))- (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (recv (enc (exp (gen) y) (pubk b)))- (send (enc n (exp (gen) (mul y x)))) (recv n))- ((send (enc (exp (gen) x) a (pubk b-0)))- (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))- (send (enc (exp (gen) y) (pubk b-0))))- ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))- (label 21)- (parent 18)- (unrealized (2 0))+(comment "CPSA 3.4.0")+(comment "All input read from dhnsl_use.scm")++(defprotocol dhnsl diffie-hellman+ (defrole resp+ (vars (b a name) (h1 base) (y expn) (n text))+ (trace (recv (enc h1 a (pubk b)))+ (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n))+ (uniq-orig n)+ (uniq-gen y)+ (absent (y h1))+ (comment "Y should be assumed to be freshly chosen per role"))+ (defrole init+ (vars (a b name) (h2 base) (x expn) (n text))+ (trace (send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ (uniq-gen x)+ (comment "X should be assumed to be freshly chosen per role"))+ (comment+ "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h2 base) (x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (comment "Initiator point-of-view")+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n)))+ (label 0)+ (unrealized (0 1) (0 3))+ (origs)+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h2 base) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (operation nonce-test (added-strand resp 2) (exp (gen) x) (0 1)+ (enc (exp (gen) x) a (pubk b)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))))+ (label 1)+ (parent 0)+ (unrealized (0 1) (0 3))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h2 base) (x expn) (w expr))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) (mul x (rec w))) w))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (precur (1 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)+ (0 1) (enc (exp (gen) x) a (pubk b)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (cat (exp (gen) (mul x (rec w))) w))+ (send (cat (exp (gen) (mul x (rec w))) w))))+ (label 2)+ (parent 0)+ (unrealized (0 3) (1 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (operation nonce-test (contracted (h2 (exp (gen) y))) (exp (gen) x)+ (0 1) (enc (exp (gen) x) a (pubk b))+ (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))))+ (label 3)+ (parent 1)+ (unrealized (0 3))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h2 base) (x y expn) (w expr))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) (mul x (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (precur (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)+ (0 1) (enc (exp (gen) x) a (pubk b))+ (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) (mul x (rec w))) w))+ (send (cat (exp (gen) (mul x (rec w))) w))))+ (label 4)+ (parent 1)+ (unrealized (0 3) (2 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h2 base) (x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (gen) x))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (precur (1 0))+ (operation nonce-test (contracted (x-0 x) (w x)) (gen) (1 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (cat (gen) x)) (send (cat (gen) x))))+ (label 5)+ (parent 2)+ (unrealized (1 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b b-0 a-0 name) (h2 h1 base) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y h1))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x y)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (1 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (cat (exp (gen) y) (mul x (rec y))))+ (send (cat (exp (gen) y) (mul x (rec y)))))+ ((recv (enc h1 a-0 (pubk b-0)))+ (send (enc h1 (exp (gen) y) b-0 (pubk a-0)))))+ (label 6)+ (parent 2)+ (unrealized (0 1) (0 3) (1 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h2 base) (x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) x) (one)))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x)+ (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))+ (label 7)+ (parent 2)+ (unrealized (0 3) (1 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 name) (h2 base) (x x-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (a a-0) (b b-0) (x x-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x x-0)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+ (label 8)+ (parent 2)+ (unrealized (0 1) (0 3) (1 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (b a name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 3) (0 3)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (uniq-gen x y)+ (uniq-orig n)+ (operation encryption-test (displaced 1 2 resp 4)+ (enc n (exp (gen) (mul x y-0))) (0 3))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y))))))+ (label 9)+ (parent 3)+ (unrealized (1 2))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (operation encryption-test (added-listener (exp (gen) (mul x y)))+ (enc n (exp (gen) (mul x y))) (0 3))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))+ (label 10)+ (parent 3)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h2 base) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (gen) x))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (precur (2 0))+ (operation nonce-test (contracted (x-0 x) (w x)) (gen) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (gen) x)) (send (cat (gen) x))))+ (label 11)+ (parent 4)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h2 base) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x y)+ (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) y) (mul x (rec y))))+ (send (cat (exp (gen) y) (mul x (rec y))))))+ (label 12)+ (parent 4)+ (unrealized (0 1) (0 3) (2 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b b-0 a-0 name) (h2 h1 base) (y x y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))+ ((3 1) (2 0)))+ (absent (y-0 h1) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y x y-0)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0))))+ (send (cat (exp (gen) y-0) (mul x (rec y-0)))))+ ((recv (enc h1 a-0 (pubk b-0)))+ (send (enc h1 (exp (gen) y-0) b-0 (pubk a-0)))))+ (label 13)+ (parent 4)+ (unrealized (0 1) (0 3) (2 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h2 base) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x) (one)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y x)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))+ (label 14)+ (parent 4)+ (seen 16)+ (unrealized (0 3) (2 0))+ (comment "2 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 name) (h2 base) (y x x-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (a a-0) (b b-0) (x x-0))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))+ ((3 0) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y x x-0)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+ (label 15)+ (parent 4)+ (unrealized (0 1) (0 3) (2 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h2 base) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x y)+ (operation nonce-test (added-strand resp 2) (exp (gen) x) (1 0)+ (enc (exp (gen) x) a (pubk b)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))))+ (label 16)+ (parent 7)+ (unrealized (0 3) (1 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (b a name) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 2 0 init 3) (exp (gen) y) (1 2)+ (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x))))))+ (label 17)+ (parent 9)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (h2 (exp (gen) y)) (x x) (n n))))+ (origs (n (1 3))))++(defskeleton dhnsl+ (vars (n text) (b a name) (x y expn) (w expr))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) (mul y (rec w))) w))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (1 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)+ (1 2) (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (cat (exp (gen) (mul y (rec w))) w))+ (send (cat (exp (gen) (mul y (rec w))) w))))+ (label 18)+ (parent 9)+ (unrealized (2 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (x y expn) (w expr))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) (mul x y (rec w))) w))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+ ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x y (rec w))) w))+ (exp (gen) (mul x y)) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) (mul x y (rec w))) w))+ (send (cat (exp (gen) (mul x y (rec w))) w))))+ (label 19)+ (parent 10)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h2 base) (y x y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))+ ((3 1) (2 0)))+ (absent (y-0 (exp (gen) x)) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y x y-0)+ (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)+ (enc (exp (gen) x) a (pubk b)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))))+ (label 20)+ (parent 14)+ (seen 16)+ (unrealized (0 3) (2 0))+ (comment "1 in cohort - 0 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (b a name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (gen) y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (1 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (y-0 y) (w y)) (gen) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (cat (gen) y)) (send (cat (gen) y))))+ (label 21)+ (parent 18)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (b a name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (1 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))+ (label 22)+ (parent 18)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (b a b-0 a-0 name) (h1 base) (x y y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1) (y y-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y-0 h1) (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y (rec y-0)))))+ ((recv (enc h1 a-0 (pubk b-0)))+ (send (enc h1 (exp (gen) y-0) b-0 (pubk a-0)))))+ (label 23)+ (parent 18)+ (unrealized (1 2) (2 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (b a name) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x))))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (1 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))))+ ((recv (cat (exp (gen) x) (mul y (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x))))))+ (label 24)+ (parent 18)+ (unrealized (1 2) (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (b a a-0 b-0 name) (x y x-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))+ (defstrand init 1 (a a-0) (b b-0) (x x-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (1 2)) ((3 0) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (precur (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul y (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+ (label 25)+ (parent 18)+ (unrealized (1 2) (2 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (gen) (mul x y)))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+ ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (precur (3 0))+ (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul x y))) (gen)+ (3 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y)))))+ (label 26)+ (parent 19)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+ ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x y)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+ (label 27)+ (parent 19)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b b-0 a-0 name) (h1 base) (x y y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y-0) (mul x y (rec y-0))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1) (y y-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+ ((3 1) (2 0)) ((4 1) (3 0)))+ (absent (y-0 h1) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x y y-0)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y-0) (mul x y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul x y (rec y-0)))))+ ((recv (enc h1 a-0 (pubk b-0)))+ (send (enc h1 (exp (gen) y-0) b-0 (pubk a-0)))))+ (label 28)+ (parent 19)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b name) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) x) y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+ ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+ (label 29)+ (parent 19)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 name) (x y x-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) x-0) (mul x y (rec x-0))))+ (defstrand init 1 (a a-0) (b b-0) (x x-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+ ((3 1) (2 0)) ((4 0) (3 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x y x-0)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) x-0) (mul x y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x y (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+ (label 30)+ (parent 19)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (b a name) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 3) (exp (gen) y) (2 0)+ (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))+ (label 31)+ (parent 22)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (b a name) (y x y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x))))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((1 1) (2 0))+ ((1 3) (0 3)) ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y-0 (exp (gen) x)) (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (precur (2 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)+ (enc (exp (gen) x) a (pubk b))+ (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))))+ ((recv (cat (exp (gen) x) (mul y (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x)))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))))+ (label 32)+ (parent 24)+ (unrealized (1 2) (2 0))+ (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhnsl diffie-hellman+ (defrole resp+ (vars (b a name) (h1 base) (y expn) (n text))+ (trace (recv (enc h1 a (pubk b)))+ (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n))+ (uniq-orig n)+ (uniq-gen y)+ (absent (y h1))+ (comment "Y should be assumed to be freshly chosen per role"))+ (defrole init+ (vars (a b name) (h2 base) (x expn) (n text))+ (trace (send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 b (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ (uniq-gen x)+ (comment "X should be assumed to be freshly chosen per role"))+ (comment+ "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h1 base) (y expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 h1) (y y))+ (absent (y h1))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (uniq-orig n)+ (comment "Responder point-of-view")+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n)))+ (label 33)+ (unrealized (0 2) (0 4))+ (origs (n (0 3)))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-strand init 3) (exp (gen) y) (0 2)+ (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))))+ (label 34)+ (parent 33)+ (unrealized (0 4))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h1 base) (y expn) (w expr))+ (defstrand resp 5 (n n) (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (exp (gen) (mul y (rec w))) w))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (absent (y h1))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (uniq-orig n)+ (precur (1 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)+ (0 2) (enc h1 (exp (gen) y) b (pubk a)))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n))+ ((recv (cat (exp (gen) (mul y (rec w))) w))+ (send (cat (exp (gen) (mul y (rec w))) w))))+ (label 35)+ (parent 33)+ (unrealized (0 4) (1 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (precedes ((0 1) (1 1)) ((0 3) (1 3)) ((1 0) (0 0)) ((1 2) (0 2))+ ((1 4) (0 4)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 1 2 init 5) n (0 4)+ (enc n (exp (gen) (mul y x-0))))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul y x)))) (send n)))+ (label 36)+ (parent 34)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (h1 (exp (gen) x)) (y y) (n n))))+ (origs (n (0 3))))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-0)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (precedes ((0 1) (1 1)) ((0 1) (2 1)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 4) (0 4)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 5) n (0 4)+ (enc n (exp (gen) (mul y x))))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))+ (recv (enc n (exp (gen) (mul y x)))) (send n)))+ (label 37)+ (parent 34)+ (unrealized (2 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (precedes ((0 1) (1 1)) ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2))+ ((2 1) (0 4)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener (exp (gen) (mul y x))) n (0 4)+ (enc n (exp (gen) (mul y x))))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))+ (label 38)+ (parent 34)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h1 base) (y expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (gen) y))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (absent (y h1))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (uniq-orig n)+ (precur (1 0))+ (operation nonce-test (contracted (y-0 y) (w y)) (gen) (1 0))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n)) ((recv (cat (gen) y)) (send (cat (gen) y))))+ (label 39)+ (parent 35)+ (unrealized (1 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b name) (h1 base) (y expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (absent (y h1))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen y)+ (uniq-orig n)+ (operation nonce-test (displaced 2 0 resp 2) (exp (gen) y-0) (1 0))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))+ (label 40)+ (parent 35)+ (unrealized (0 4) (1 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b b-0 a-0 name) (h1 h1-0 base) (y y-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1-0) (y y-0))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))+ (absent (y-0 h1-0) (y h1))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n))+ ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y (rec y-0)))))+ ((recv (enc h1-0 a-0 (pubk b-0)))+ (send (enc h1-0 (exp (gen) y-0) b-0 (pubk a-0)))))+ (label 41)+ (parent 35)+ (unrealized (0 2) (0 4) (1 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 name) (h1 base) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x))))+ (defstrand init 1 (a a-0) (b b-0) (x x))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))+ (absent (y h1))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x) (1 0))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n))+ ((recv (cat (exp (gen) x) (mul y (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x)))))+ ((send (enc (exp (gen) x) a-0 (pubk b-0)))))+ (label 42)+ (parent 35)+ (unrealized (0 2) (0 4) (1 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 name) (y x x-0 expn) (w expr))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-0)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))+ (exp (gen) (mul y x (rec x-0))) (2 1))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))+ (send (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))))+ (label 43)+ (parent 37)+ (unrealized (3 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (y x expn) (w expr))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) (mul y x (rec w))) w))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+ ((2 1) (0 4)) ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y x (rec w))) w))+ (exp (gen) (mul y x)) (2 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (exp (gen) (mul y x (rec w))) w))+ (send (cat (exp (gen) (mul y x (rec w))) w))))+ (label 44)+ (parent 38)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-strand init 3) (exp (gen) y) (1 0)+ (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))))+ (label 45)+ (parent 40)+ (unrealized (0 4) (1 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-0)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (gen) (mul y x (rec x-0))))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (contracted (y-0 y) (x-1 x) (x-2 x-0) (w (mul y x (rec x-0)))) (gen)+ (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (gen) (mul y x (rec x-0))))+ (send (cat (gen) (mul y x (rec x-0))))))+ (label 46)+ (parent 43)+ (unrealized (2 1) (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 name) (x x-0 y expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-0)+ (h2 (exp (gen) (mul x (rec x-0) y))) (x x-0))+ (deflistener (cat (exp (gen) y) (mul x (rec x-0))))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul x (rec x-0) y)) b-0+ (pubk a-0)))+ (send (enc (exp (gen) (mul x (rec x-0) y)) (pubk b-0)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (cat (exp (gen) y) (mul x (rec x-0))))+ (send (cat (exp (gen) y) (mul x (rec x-0))))))+ (label 47)+ (parent 43)+ (unrealized (2 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 b-1 a-1 name) (h1 base)+ (y x x-0 y-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-0)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul y x (rec x-0) (rec y-0))))+ (defstrand resp 2 (b b-1) (a a-1) (h1 h1) (y y-0))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1))+ ((4 1) (3 0)))+ (absent (y-0 h1) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (exp (gen) y-0) (mul y x (rec x-0) (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y x (rec x-0) (rec y-0)))))+ ((recv (enc h1 a-1 (pubk b-1)))+ (send (enc h1 (exp (gen) y-0) b-1 (pubk a-1)))))+ (label 48)+ (parent 43)+ (unrealized (2 1) (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x-0)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x-0))+ (defstrand init 5 (n n) (a a-0) (b b-0)+ (h2 (exp (gen) (mul y (rec x) x-0))) (x x))+ (deflistener (cat (exp (gen) x-0) (mul y (rec x))))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+ (absent (y (exp (gen) x-0)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 init 1) (exp (gen) x-1) (3 0))+ (traces+ ((recv (enc (exp (gen) x-0) a (pubk b)))+ (send (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x-0)))) (recv n))+ ((send (enc (exp (gen) x-0) a (pubk b)))+ (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((send (enc (exp (gen) x) a-0 (pubk b-0)))+ (recv+ (enc (exp (gen) x) (exp (gen) (mul y (rec x) x-0)) b-0+ (pubk a-0)))+ (send (enc (exp (gen) (mul y (rec x) x-0)) (pubk b-0)))+ (recv (enc n (exp (gen) (mul y x-0)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul y (rec x))))+ (send (cat (exp (gen) x-0) (mul y (rec x))))))+ (label 49)+ (parent 43)+ (unrealized (2 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-0)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 2 init 1) (exp (gen) x-1) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))))+ (label 50)+ (parent 43)+ (unrealized (2 1) (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 a-1 b-1 name) (y x x-0 x-1 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-0)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1))))+ (defstrand init 1 (a a-1) (b b-1) (x x-1))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1))+ ((4 0) (3 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1))))+ (send (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1)))))+ ((send (enc (exp (gen) x-1) a-1 (pubk b-1)))))+ (label 51)+ (parent 43)+ (unrealized (2 1) (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (gen) (mul y x)))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+ ((2 1) (0 4)) ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test (contracted (y-0 y) (x-0 x) (w (mul y x))) (gen)+ (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (gen) (mul y x))) (send (cat (gen) (mul y x)))))+ (label 52)+ (parent 44)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b name) (x y expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+ ((2 1) (0 4)) ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+ (label 53)+ (parent 44)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b b-0 a-0 name) (h1 base) (y x y-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) y-0) (mul y x (rec y-0))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1) (y y-0))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+ ((2 1) (0 4)) ((3 1) (2 0)) ((4 1) (3 0)))+ (absent (y-0 h1) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (exp (gen) y-0) (mul y x (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y x (rec y-0)))))+ ((recv (enc h1 a-0 (pubk b-0)))+ (send (enc h1 (exp (gen) y-0) b-0 (pubk a-0)))))+ (label 54)+ (parent 44)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) x) y))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+ ((2 1) (0 4)) ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 init 1) (exp (gen) x-0) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+ (label 55)+ (parent 44)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0))))+ (defstrand init 1 (a a-0) (b b-0) (x x-0))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+ ((2 1) (0 4)) ((3 1) (2 0)) ((4 0) (3 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (exp (gen) x-0) (mul y x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul y x (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+ (label 56)+ (parent 44)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 name) (x y x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x-0)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x-0))+ (defstrand init 5 (n n) (a a-0) (b b-0)+ (h2 (exp (gen) (mul (rec x) y x-0))) (x x))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))+ (precedes ((0 1) (1 1)) ((0 3) (2 3)) ((1 0) (0 0)) ((1 2) (0 2))+ ((1 2) (3 0)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+ (absent (y (exp (gen) x-0)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 init 3) (exp (gen) y) (3 0)+ (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))+ (traces+ ((recv (enc (exp (gen) x-0) a (pubk b)))+ (send (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x-0)))) (recv n))+ ((send (enc (exp (gen) x-0) a (pubk b)))+ (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((send (enc (exp (gen) x) a-0 (pubk b-0)))+ (recv+ (enc (exp (gen) x) (exp (gen) (mul (rec x) y x-0)) b-0+ (pubk a-0)))+ (send (enc (exp (gen) (mul (rec x) y x-0)) (pubk b-0)))+ (recv (enc n (exp (gen) (mul y x-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0)))+ (send (cat (exp (gen) y) (mul (rec x) x-0)))))+ (label 57)+ (parent 47)+ (unrealized (2 1) (3 0))+ (comment "empty cohort"))++(defskeleton dhnsl+ (vars (n text) (a b a-0 b-0 name) (y x x-0 y-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x-0)) (y y))+ (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (x x-0))+ (defstrand init 5 (n n) (a a-0) (b b-0)+ (h2 (exp (gen) (mul y (rec x) x-0))) (x x))+ (deflistener (cat (exp (gen) x-0) (mul y (rec x))))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x-0)) (y y-0))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 0) (4 0)) ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4))+ ((3 1) (2 1)) ((4 1) (3 0)))+ (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x-0)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) x-0) (3 0)+ (enc (exp (gen) x-0) a (pubk b))+ (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))+ (traces+ ((recv (enc (exp (gen) x-0) a (pubk b)))+ (send (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x-0)))) (recv n))+ ((send (enc (exp (gen) x-0) a (pubk b)))+ (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))+ (send (enc (exp (gen) y) (pubk b))))+ ((send (enc (exp (gen) x) a-0 (pubk b-0)))+ (recv+ (enc (exp (gen) x) (exp (gen) (mul y (rec x) x-0)) b-0+ (pubk a-0)))+ (send (enc (exp (gen) (mul y (rec x) x-0)) (pubk b-0)))+ (recv (enc n (exp (gen) (mul y x-0)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul y (rec x))))+ (send (cat (exp (gen) x-0) (mul y (rec x)))))+ ((recv (enc (exp (gen) x-0) a (pubk b)))+ (send (enc (exp (gen) x-0) (exp (gen) y-0) b (pubk a)))))+ (label 58)+ (parent 49)+ (unrealized (2 1) (3 0))+ (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhns diffie-hellman+ (defrole resp+ (vars (b a name) (h1 base) (y expn) (n text))+ (trace (recv (enc h1 a (pubk b)))+ (send (enc h1 (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n))+ (uniq-orig n)+ (uniq-gen y)+ (absent (y h1))+ (comment "Y should be assumed to be freshly chosen per role"))+ (defrole init+ (vars (a b name) (h2 base) (x expn) (n text))+ (trace (send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ (uniq-gen x)+ (comment "X should be assumed to be freshly chosen per role"))+ (comment+ "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))++(defskeleton dhns+ (vars (n text) (a b name) (h2 base) (x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (comment "Initiator point-of-view")+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n)))+ (label 59)+ (unrealized (0 1) (0 3))+ (origs)+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b name) (h2 base) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (operation nonce-test (added-strand resp 2) (exp (gen) x) (0 1)+ (enc (exp (gen) x) a (pubk b)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))))+ (label 60)+ (parent 59)+ (unrealized (0 1) (0 3))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b name) (h2 base) (x expn) (w expr))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) (mul x (rec w))) w))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (precur (1 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)+ (0 1) (enc (exp (gen) x) a (pubk b)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (cat (exp (gen) (mul x (rec w))) w))+ (send (cat (exp (gen) (mul x (rec w))) w))))+ (label 61)+ (parent 59)+ (unrealized (0 3) (1 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (operation nonce-test (contracted (h2 (exp (gen) y))) (exp (gen) x)+ (0 1) (enc (exp (gen) x) a (pubk b))+ (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))))+ (label 62)+ (parent 60)+ (unrealized (0 3))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b name) (h2 base) (x y expn) (w expr))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) (mul x (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (precur (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)+ (0 1) (enc (exp (gen) x) a (pubk b))+ (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+ ((recv (cat (exp (gen) (mul x (rec w))) w))+ (send (cat (exp (gen) (mul x (rec w))) w))))+ (label 63)+ (parent 60)+ (unrealized (0 3) (2 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b name) (h2 base) (x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (gen) x))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (uniq-gen x)+ (precur (1 0))+ (operation nonce-test (contracted (x-0 x) (w x)) (gen) (1 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (cat (gen) x)) (send (cat (gen) x))))+ (label 64)+ (parent 61)+ (unrealized (1 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 name) (h2 h1 base) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y h1))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x y)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (1 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (cat (exp (gen) y) (mul x (rec y))))+ (send (cat (exp (gen) y) (mul x (rec y)))))+ ((recv (enc h1 a-0 (pubk b-0)))+ (send (enc h1 (exp (gen) y) (pubk a-0)))))+ (label 65)+ (parent 61)+ (unrealized (0 1) (0 3) (1 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b name) (h2 base) (x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) x) (one)))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x)+ (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))+ (label 66)+ (parent 61)+ (unrealized (0 3) (1 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b a-0 b-0 name) (h2 base) (x x-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (a a-0) (b b-0) (x x-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x x-0)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+ (label 67)+ (parent 61)+ (unrealized (0 1) (0 3) (1 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (b a name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 3) (0 3)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (uniq-gen x y)+ (uniq-orig n)+ (operation encryption-test (displaced 1 2 resp 4)+ (enc n (exp (gen) (mul x y-0))) (0 3))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y))))))+ (label 68)+ (parent 62)+ (unrealized (1 2))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (operation encryption-test (added-listener (exp (gen) (mul x y)))+ (enc n (exp (gen) (mul x y))) (0 3))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))+ (label 69)+ (parent 62)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b name) (h2 base) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (gen) x))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (precur (2 0))+ (operation nonce-test (contracted (x-0 x) (w x)) (gen) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+ ((recv (cat (gen) x)) (send (cat (gen) x))))+ (label 70)+ (parent 63)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b name) (h2 base) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen x y)+ (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+ ((recv (cat (exp (gen) y) (mul x (rec y))))+ (send (cat (exp (gen) y) (mul x (rec y))))))+ (label 71)+ (parent 63)+ (unrealized (0 1) (0 3) (2 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 name) (h2 h1 base) (y x y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y-0) (mul x (rec y-0))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))+ ((3 1) (2 0)))+ (absent (y-0 h1) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y x y-0)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+ ((recv (cat (exp (gen) y-0) (mul x (rec y-0))))+ (send (cat (exp (gen) y-0) (mul x (rec y-0)))))+ ((recv (enc h1 a-0 (pubk b-0)))+ (send (enc h1 (exp (gen) y-0) (pubk a-0)))))+ (label 72)+ (parent 63)+ (unrealized (0 1) (0 3) (2 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b name) (h2 base) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x) (one)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y x)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))+ (label 73)+ (parent 63)+ (seen 75)+ (unrealized (0 3) (2 0))+ (comment "2 in cohort - 1 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b a-0 b-0 name) (h2 base) (y x x-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (a a-0) (b b-0) (x x-0))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))+ ((3 0) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y x x-0)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+ (label 74)+ (parent 63)+ (unrealized (0 1) (0 3) (2 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b name) (h2 base) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen x y)+ (operation nonce-test (added-strand resp 2) (exp (gen) x) (1 0)+ (enc (exp (gen) x) a (pubk b)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))))+ (label 75)+ (parent 66)+ (unrealized (0 3) (1 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (b a name) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 2 0 init 3) (exp (gen) y) (1 2)+ (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x))))))+ (label 76)+ (parent 68)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (h2 (exp (gen) y)) (x x) (n n))))+ (origs (n (1 3))))++(defskeleton dhns+ (vars (n text) (b a name) (x y expn) (w expr))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) (mul y (rec w))) w))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (1 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)+ (1 2) (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (cat (exp (gen) (mul y (rec w))) w))+ (send (cat (exp (gen) (mul y (rec w))) w))))+ (label 77)+ (parent 68)+ (unrealized (2 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b name) (x y expn) (w expr))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) (mul x y (rec w))) w))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+ ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x y (rec w))) w))+ (exp (gen) (mul x y)) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) (mul x y (rec w))) w))+ (send (cat (exp (gen) (mul x y (rec w))) w))))+ (label 78)+ (parent 69)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b name) (h2 base) (y x y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 h2) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))+ ((3 1) (2 0)))+ (absent (y-0 (exp (gen) x)) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (2 0))+ (uniq-gen y x y-0)+ (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)+ (enc (exp (gen) x) a (pubk b)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a)))))+ (label 79)+ (parent 73)+ (seen 75)+ (unrealized (0 3) (2 0))+ (comment "1 in cohort - 0 not yet seen"))++(defskeleton dhns+ (vars (n text) (b a name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (gen) y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (1 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (y-0 y) (w y)) (gen) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (cat (gen) y)) (send (cat (gen) y))))+ (label 80)+ (parent 77)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (b a name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (1 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))+ (label 81)+ (parent 77)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+ (vars (n text) (b a b-0 a-0 name) (h1 base) (x y y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1) (y y-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y-0 h1) (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y (rec y-0)))))+ ((recv (enc h1 a-0 (pubk b-0)))+ (send (enc h1 (exp (gen) y-0) (pubk a-0)))))+ (label 82)+ (parent 77)+ (unrealized (1 2) (2 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (b a name) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x))))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (1 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))))+ ((recv (cat (exp (gen) x) (mul y (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x))))))+ (label 83)+ (parent 77)+ (unrealized (1 2) (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+ (vars (n text) (b a a-0 b-0 name) (x y x-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))+ (defstrand init 1 (a a-0) (b b-0) (x x-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (1 2)) ((3 0) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (precur (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))))+ ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul y (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+ (label 84)+ (parent 77)+ (unrealized (1 2) (2 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (gen) (mul x y)))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+ ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen x y)+ (precur (3 0))+ (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul x y))) (gen)+ (3 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y)))))+ (label 85)+ (parent 78)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b name) (x y expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+ ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x y)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+ (label 86)+ (parent 78)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 name) (h1 base) (x y y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y-0) (mul x y (rec y-0))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1) (y y-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+ ((3 1) (2 0)) ((4 1) (3 0)))+ (absent (y-0 h1) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x y y-0)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y-0) (mul x y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul x y (rec y-0)))))+ ((recv (enc h1 a-0 (pubk b-0)))+ (send (enc h1 (exp (gen) y-0) (pubk a-0)))))+ (label 87)+ (parent 78)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b name) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) x) y))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+ ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+ (label 88)+ (parent 78)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b a-0 b-0 name) (x y x-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) x-0) (mul x y (rec x-0))))+ (defstrand init 1 (a a-0) (b b-0) (x x-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+ ((3 1) (2 0)) ((4 0) (3 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x y x-0)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) x-0) (mul x y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x y (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+ (label 89)+ (parent 78)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (b a name) (y x expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 3) (exp (gen) y) (2 0)+ (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))+ (label 90)+ (parent 81)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (b a name) (y x y-0 expn))+ (defstrand init 5 (n n) (a a) (b b) (h2 (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x))))+ (defstrand resp 2 (b b) (a a) (h1 (exp (gen) x)) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((1 1) (2 0))+ ((1 3) (0 3)) ((2 1) (1 2)) ((3 1) (2 0)))+ (absent (y-0 (exp (gen) x)) (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (precur (2 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)+ (enc (exp (gen) x) a (pubk b))+ (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (traces+ ((send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))))+ ((recv (cat (exp (gen) x) (mul y (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x)))))+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a)))))+ (label 91)+ (parent 83)+ (unrealized (1 2) (2 0))+ (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhns diffie-hellman+ (defrole resp+ (vars (b a name) (h1 base) (y expn) (n text))+ (trace (recv (enc h1 a (pubk b)))+ (send (enc h1 (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n))+ (uniq-orig n)+ (uniq-gen y)+ (absent (y h1))+ (comment "Y should be assumed to be freshly chosen per role"))+ (defrole init+ (vars (a b name) (h2 base) (x expn) (n text))+ (trace (send (enc (exp (gen) x) a (pubk b)))+ (recv (enc (exp (gen) x) h2 (pubk a))) (send (enc h2 (pubk b)))+ (recv (enc n (exp h2 x))) (send n))+ (uniq-gen x)+ (comment "X should be assumed to be freshly chosen per role"))+ (comment+ "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))++(defskeleton dhns+ (vars (n text) (a b name) (h1 base) (y expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 h1) (y y))+ (absent (y h1))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (uniq-orig n)+ (comment "Responder point-of-view")+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n)))+ (label 92)+ (unrealized (0 2) (0 4))+ (origs (n (0 3)))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b b-0 name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-strand init 3) (exp (gen) y) (0 2)+ (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0)))))+ (label 93)+ (parent 92)+ (unrealized (0 4))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b name) (h1 base) (y expn) (w expr))+ (defstrand resp 5 (n n) (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (exp (gen) (mul y (rec w))) w))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (absent (y h1))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (uniq-orig n)+ (precur (1 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)+ (0 2) (enc h1 (exp (gen) y) (pubk a)))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n))+ ((recv (cat (exp (gen) (mul y (rec w))) w))+ (send (cat (exp (gen) (mul y (rec w))) w))))+ (label 94)+ (parent 92)+ (unrealized (0 4) (1 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhns+ (vars (n text) (b a b-0 name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 5 (n n) (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (precedes ((0 1) (1 1)) ((0 3) (1 3)) ((1 0) (0 0)) ((1 2) (0 2))+ ((1 4) (0 4)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 1 2 init 5) n (0 4)+ (enc n (exp (gen) (mul y x-0))))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0)))+ (recv (enc n (exp (gen) (mul y x)))) (send n)))+ (label 95)+ (parent 93)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (h1 (exp (gen) x)) (y y) (n n))))+ (origs (n (0 3))))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (precedes ((0 1) (1 1)) ((0 1) (2 1)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 4) (0 4)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 5) n (0 4)+ (enc n (exp (gen) (mul y x))))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x)))) (send n)))+ (label 96)+ (parent 93)+ (unrealized (2 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b b-0 name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (precedes ((0 1) (1 1)) ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2))+ ((2 1) (0 4)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener (exp (gen) (mul y x))) n (0 4)+ (enc n (exp (gen) (mul y x))))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))+ (label 97)+ (parent 93)+ (unrealized (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b name) (h1 base) (y expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (gen) y))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (absent (y h1))+ (non-orig (privk a) (privk b))+ (uniq-gen y)+ (uniq-orig n)+ (precur (1 0))+ (operation nonce-test (contracted (y-0 y) (w y)) (gen) (1 0))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n)) ((recv (cat (gen) y)) (send (cat (gen) y))))+ (label 98)+ (parent 94)+ (unrealized (1 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b name) (h1 base) (y expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)))+ (absent (y h1))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen y)+ (uniq-orig n)+ (operation nonce-test (displaced 2 0 resp 2) (exp (gen) y-0) (1 0))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))+ (label 99)+ (parent 94)+ (unrealized (0 4) (1 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 name) (h1 h1-0 base) (y y-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))+ (defstrand resp 2 (b b-0) (a a-0) (h1 h1-0) (y y-0))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))+ (absent (y-0 h1-0) (y h1))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n))+ ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y (rec y-0)))))+ ((recv (enc h1-0 a-0 (pubk b-0)))+ (send (enc h1-0 (exp (gen) y-0) (pubk a-0)))))+ (label 100)+ (parent 94)+ (unrealized (0 2) (0 4) (1 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b a-0 b-0 name) (h1 base) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 h1) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x))))+ (defstrand init 1 (a a-0) (b b-0) (x x))+ (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))+ (absent (y h1))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x) (1 0))+ (traces+ ((recv (enc h1 a (pubk b))) (send (enc h1 (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b))) (send (enc n (exp h1 y)))+ (recv n))+ ((recv (cat (exp (gen) x) (mul y (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x)))))+ ((send (enc (exp (gen) x) a-0 (pubk b-0)))))+ (label 101)+ (parent 94)+ (unrealized (0 2) (0 4) (1 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 expn) (w expr))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))+ (exp (gen) (mul y x (rec x-0))) (2 1))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))+ (send (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))))+ (label 102)+ (parent 96)+ (unrealized (3 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b b-0 name) (y x expn) (w expr))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) (mul y x (rec w))) w))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+ ((2 1) (0 4)) ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y x (rec w))) w))+ (exp (gen) (mul y x)) (2 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (exp (gen) (mul y x (rec w))) w))+ (send (cat (exp (gen) (mul y x (rec w))) w))))+ (label 103)+ (parent 97)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b b-0 name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-strand init 3) (exp (gen) y) (1 0)+ (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0)))))+ (label 104)+ (parent 99)+ (unrealized (0 4))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (gen) (mul y x (rec x-0))))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (contracted (y-0 y) (x-1 x) (x-2 x-0) (w (mul y x (rec x-0)))) (gen)+ (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (gen) (mul y x (rec x-0))))+ (send (cat (gen) (mul y x (rec x-0))))))+ (label 105)+ (parent 102)+ (unrealized (2 1) (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (x x-0 y expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul x (rec x-0) y))) (x x-0))+ (deflistener (cat (exp (gen) y) (mul x (rec x-0))))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul x (rec x-0) y))+ (pubk a-0)))+ (send (enc (exp (gen) (mul x (rec x-0) y)) (pubk b-1)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (cat (exp (gen) y) (mul x (rec x-0))))+ (send (cat (exp (gen) y) (mul x (rec x-0))))))+ (label 106)+ (parent 102)+ (unrealized (2 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 b-2 a-1 name) (h1 base)+ (y x x-0 y-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul y x (rec x-0) (rec y-0))))+ (defstrand resp 2 (b b-2) (a a-1) (h1 h1) (y y-0))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1))+ ((4 1) (3 0)))+ (absent (y-0 h1) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (exp (gen) y-0) (mul y x (rec x-0) (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y x (rec x-0) (rec y-0)))))+ ((recv (enc h1 a-1 (pubk b-2)))+ (send (enc h1 (exp (gen) y-0) (pubk a-1)))))+ (label 107)+ (parent 102)+ (unrealized (2 1) (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x-0)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x-0))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul y (rec x) x-0))) (x x))+ (deflistener (cat (exp (gen) x-0) (mul y (rec x))))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+ (absent (y (exp (gen) x-0)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 init 1) (exp (gen) x-1) (3 0))+ (traces+ ((recv (enc (exp (gen) x-0) a (pubk b)))+ (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x-0)))) (recv n))+ ((send (enc (exp (gen) x-0) a (pubk b-0)))+ (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x) (exp (gen) (mul y (rec x) x-0)) (pubk a-0)))+ (send (enc (exp (gen) (mul y (rec x) x-0)) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x-0)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul y (rec x))))+ (send (cat (exp (gen) x-0) (mul y (rec x))))))+ (label 108)+ (parent 102)+ (unrealized (2 1) (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 2 init 1) (exp (gen) x-1) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))))+ (label 109)+ (parent 102)+ (unrealized (2 1) (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 a-1 b-2 name) (y x x-0 x-1 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1))))+ (defstrand init 1 (a a-1) (b b-2) (x x-1))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+ ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1))+ ((4 0) (3 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1))))+ (send (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1)))))+ ((send (enc (exp (gen) x-1) a-1 (pubk b-2)))))+ (label 110)+ (parent 102)+ (unrealized (2 1) (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (gen) (mul y x)))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+ ((2 1) (0 4)) ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (uniq-gen y x)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test (contracted (y-0 y) (x-0 x) (w (mul y x))) (gen)+ (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (gen) (mul y x))) (send (cat (gen) (mul y x)))))+ (label 111)+ (parent 103)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 name) (x y expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+ ((2 1) (0 4)) ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+ (label 112)+ (parent 103)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 b-1 a-0 name) (h1 base) (y x y-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) y-0) (mul y x (rec y-0))))+ (defstrand resp 2 (b b-1) (a a-0) (h1 h1) (y y-0))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+ ((2 1) (0 4)) ((3 1) (2 0)) ((4 1) (3 0)))+ (absent (y-0 h1) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (exp (gen) y-0) (mul y x (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y x (rec y-0)))))+ ((recv (enc h1 a-0 (pubk b-1)))+ (send (enc h1 (exp (gen) y-0) (pubk a-0)))))+ (label 113)+ (parent 103)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) x) y))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+ ((2 1) (0 4)) ((3 1) (2 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 init 1) (exp (gen) x-0) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+ (label 114)+ (parent 103)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0))))+ (defstrand init 1 (a a-0) (b b-1) (x x-0))+ (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+ ((2 1) (0 4)) ((3 1) (2 0)) ((4 0) (3 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (exp (gen) x-0) (mul y x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul y x (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))))+ (label 115)+ (parent 103)+ (unrealized (2 0) (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (b a b-0 name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 5 (n n) (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (precedes ((0 1) (2 1)) ((0 3) (2 3)) ((1 1) (0 2)) ((2 0) (0 0))+ ((2 2) (1 0)) ((2 4) (0 4)))+ (absent (y (exp (gen) x)))+ (non-orig (privk b) (privk a))+ (precur (1 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 2 3 init 5) n (0 4)+ (enc n (exp (gen) (mul y x-0))))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0)))+ (recv (enc n (exp (gen) (mul y x)))) (send n)))+ (label 116)+ (parent 104)+ (seen 95)+ (unrealized)+ (comment "1 in cohort - 0 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (precedes ((0 1) (2 1)) ((0 1) (3 1)) ((0 3) (3 3)) ((1 1) (0 2))+ ((2 0) (0 0)) ((2 2) (1 0)) ((3 4) (0 4)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 5) n (0 4)+ (enc n (exp (gen) (mul y x))))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x)))) (send n)))+ (label 117)+ (parent 104)+ (unrealized (3 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b b-0 name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (precedes ((0 1) (2 1)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 0) (0 0))+ ((2 2) (1 0)) ((3 1) (0 4)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (1 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener (exp (gen) (mul y x))) n (0 4)+ (enc n (exp (gen) (mul y x))))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))+ (label 118)+ (parent 104)+ (unrealized (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (x y x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x-0)) (y y))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x-0))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul (rec x) y x-0))) (x x))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))+ (precedes ((0 1) (1 1)) ((0 3) (2 3)) ((1 0) (0 0)) ((1 2) (0 2))+ ((1 2) (3 0)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+ (absent (y (exp (gen) x-0)))+ (non-orig (privk a) (privk b))+ (precur (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 init 3) (exp (gen) y) (3 0)+ (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))+ (traces+ ((recv (enc (exp (gen) x-0) a (pubk b)))+ (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x-0)))) (recv n))+ ((send (enc (exp (gen) x-0) a (pubk b-0)))+ (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x) (exp (gen) (mul (rec x) y x-0)) (pubk a-0)))+ (send (enc (exp (gen) (mul (rec x) y x-0)) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0)))+ (send (cat (exp (gen) y) (mul (rec x) x-0)))))+ (label 119)+ (parent 106)+ (unrealized (2 1) (3 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 expn) (w expr))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))+ (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))+ ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))+ ((4 1) (3 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (4 0) (1 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))+ (exp (gen) (mul y x (rec x-0))) (3 1))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))+ (send (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))))+ (label 120)+ (parent 117)+ (unrealized (4 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b b-0 name) (y x expn) (w expr))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) (mul y x (rec w))) w))+ (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))+ ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (4 0) (1 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul y x (rec w))) w))+ (exp (gen) (mul y x)) (3 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (exp (gen) (mul y x (rec w))) w))+ (send (cat (exp (gen) (mul y x (rec w))) w))))+ (label 121)+ (parent 118)+ (unrealized (4 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (gen) (mul y x (rec x-0))))+ (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))+ ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))+ ((4 1) (3 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (4 0) (1 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (y-0 y) (x-1 x) (x-2 x-0) (w (mul y x (rec x-0)))) (gen)+ (4 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (gen) (mul y x (rec x-0))))+ (send (cat (gen) (mul y x (rec x-0))))))+ (label 122)+ (parent 120)+ (unrealized (3 1) (4 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (x x-0 y expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul x (rec x-0) y))) (x x-0))+ (deflistener (cat (exp (gen) y) (mul x (rec x-0))))+ (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))+ ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))+ ((4 1) (3 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (4 0) (1 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul x (rec x-0) y))+ (pubk a-0)))+ (send (enc (exp (gen) (mul x (rec x-0) y)) (pubk b-1)))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (cat (exp (gen) y) (mul x (rec x-0))))+ (send (cat (exp (gen) y) (mul x (rec x-0))))))+ (label 123)+ (parent 120)+ (unrealized (3 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 b-2 a-1 name) (h1 base)+ (y x x-0 y-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul y x (rec x-0) (rec y-0))))+ (defstrand resp 2 (b b-2) (a a-1) (h1 h1) (y y-0))+ (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))+ ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))+ ((4 1) (3 1)) ((5 1) (4 0)))+ (absent (y-0 h1) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (4 0) (1 0))+ (uniq-gen y x x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (exp (gen) y-0) (mul y x (rec x-0) (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y x (rec x-0) (rec y-0)))))+ ((recv (enc h1 a-1 (pubk b-2)))+ (send (enc h1 (exp (gen) y-0) (pubk a-1)))))+ (label 124)+ (parent 120)+ (unrealized (3 1) (4 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x-0)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x-0))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul y (rec x) x-0))) (x x))+ (deflistener (cat (exp (gen) x-0) (mul y (rec x))))+ (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))+ ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))+ ((4 1) (3 1)))+ (absent (y (exp (gen) x-0)))+ (non-orig (privk a) (privk b))+ (precur (4 0) (1 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 2 init 1) (exp (gen) x-1) (4 0))+ (traces+ ((recv (enc (exp (gen) x-0) a (pubk b)))+ (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x-0)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x-0) a (pubk b-0)))+ (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x) (exp (gen) (mul y (rec x) x-0)) (pubk a-0)))+ (send (enc (exp (gen) (mul y (rec x) x-0)) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x-0)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul y (rec x))))+ (send (cat (exp (gen) x-0) (mul y (rec x))))))+ (label 125)+ (parent 120)+ (unrealized (3 1) (4 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))+ (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))+ ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))+ ((4 1) (3 1)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (4 0) (1 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 3 init 1) (exp (gen) x-1) (4 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))))+ (label 126)+ (parent 120)+ (unrealized (3 1) (4 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 a-1 b-2 name) (y x x-0 x-1 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1))))+ (defstrand init 1 (a a-1) (b b-2) (x x-1))+ (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))+ ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))+ ((4 1) (3 1)) ((5 0) (4 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (4 0) (1 0))+ (uniq-gen y x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (4 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+ (pubk a-0)))+ (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((recv (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1))))+ (send (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1)))))+ ((send (enc (exp (gen) x-1) a-1 (pubk b-2)))))+ (label 127)+ (parent 120)+ (unrealized (3 1) (4 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (gen) (mul y x)))+ (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))+ ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (4 0) (1 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (y-0 y) (x-0 x) (w (mul y x))) (gen)+ (4 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (gen) (mul y x))) (send (cat (gen) (mul y x)))))+ (label 128)+ (parent 121)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 name) (x y expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))+ ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (4 0) (1 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul x y)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+ (label 129)+ (parent 121)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 b-1 a-0 name) (h1 base) (y x y-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) y-0) (mul y x (rec y-0))))+ (defstrand resp 2 (b b-1) (a a-0) (h1 h1) (y y-0))+ (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))+ ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 1) (4 0)))+ (absent (y-0 h1) (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (4 0) (1 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (exp (gen) y-0) (mul y x (rec y-0))))+ (send (cat (exp (gen) y-0) (mul y x (rec y-0)))))+ ((recv (enc h1 a-0 (pubk b-1)))+ (send (enc h1 (exp (gen) y-0) (pubk a-0)))))+ (label 130)+ (parent 121)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 name) (y x expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) x) y))+ (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))+ ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (4 0) (1 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 5 2 init 1) (exp (gen) x-0) (4 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+ (label 131)+ (parent 121)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul y x)))+ (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0))))+ (defstrand init 1 (a a-0) (b b-1) (x x-0))+ (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))+ ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 0) (4 0)))+ (absent (y (exp (gen) x)))+ (non-orig (privk a) (privk b))+ (precur (4 0) (1 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))+ (traces+ ((recv (enc (exp (gen) x) a (pubk b)))+ (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x) a (pubk b-0)))+ (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+ ((recv (cat (exp (gen) x-0) (mul y x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul y x (rec x-0)))))+ ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))))+ (label 132)+ (parent 121)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton dhns+ (vars (n text) (a b b-0 a-0 b-1 name) (x y x-0 expn))+ (defstrand resp 5 (n n) (b b) (a a) (h1 (exp (gen) x-0)) (y y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand init 3 (a a) (b b-0) (h2 (exp (gen) y)) (x x-0))+ (defstrand init 5 (n n) (a a-0) (b b-1)+ (h2 (exp (gen) (mul (rec x) y x-0))) (x x))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))+ (precedes ((0 1) (2 1)) ((0 3) (3 3)) ((1 1) (0 2)) ((2 0) (0 0))+ ((2 2) (1 0)) ((2 2) (4 0)) ((3 0) (4 0)) ((3 4) (0 4))+ ((4 1) (3 1)))+ (absent (y (exp (gen) x-0)))+ (non-orig (privk a) (privk b))+ (precur (4 0) (1 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 2 init 3) (exp (gen) y) (4 0)+ (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))+ (traces+ ((recv (enc (exp (gen) x-0) a (pubk b)))+ (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))+ (recv (enc (exp (gen) y) (pubk b)))+ (send (enc n (exp (gen) (mul y x-0)))) (recv n))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((send (enc (exp (gen) x-0) a (pubk b-0)))+ (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))+ (send (enc (exp (gen) y) (pubk b-0))))+ ((send (enc (exp (gen) x) a-0 (pubk b-1)))+ (recv+ (enc (exp (gen) x) (exp (gen) (mul (rec x) y x-0)) (pubk a-0)))+ (send (enc (exp (gen) (mul (rec x) y x-0)) (pubk b-1)))+ (recv (enc n (exp (gen) (mul y x-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0)))+ (send (cat (exp (gen) y) (mul (rec x) x-0)))))+ (label 133)+ (parent 123)+ (unrealized (3 1) (4 0)) (comment "empty cohort")) (comment "Nothing left to do")
tst/enrich.scm view
@@ -15,4 +15,3 @@ (vars (state mesg)) (defstrand extend 2 (value "1") (state (hash "0" state))) (defstrand see 1 (state (hash "0" state))))-
tst/enrich.tst view
@@ -1,6 +1,6 @@ (herald enrich) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from enrich.scm") (defprotocol enrich basic
tst/envelope.scm view
@@ -1,7 +1,7 @@ ;;; Mark Ryan's envelope protocol, implemented using TPMs. ;;; The protocol includes roles to emulate interactions with a simplified ;;; TPM (trusted platform module) that only has a single Platform-;;; Configuration Register (PCR). +;;; Configuration Register (PCR). ;;; The true protocol is encoded in the "alice" role. Alice is a ;;; teenager who wants to go out for an evening and maintain privacy@@ -13,7 +13,7 @@ ;;; in either of two ways, but not in both: they can extend with ;;; "obtain", which will enable decryption of 'v'. Or, they can ;;; extend with "refuse", which serves to represent permanently declining-;;; the option to open the envelope. +;;; the option to open the envelope. (herald "Envelope Protocol" (bound 20)) @@ -126,4 +126,3 @@ (vars (v data)) (deflistener v) (defstrand alice 7 (v v)))-
tst/envelope.tst view
@@ -1,6 +1,6 @@ (herald "Envelope Protocol" (bound 20)) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from envelope.scm") (comment "Strand count bounded at 20")
tst/ffgg.tst view
@@ -1,7 +1,7 @@ (herald "The ffgg Protocol" (comment "From A Necessarily Parallel Attack by Jon K. Millen")) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from ffgg.scm") (defprotocol ffgg basic
tst/fnof_or.tst view
@@ -2,7 +2,7 @@ (comment "Version using variables of sort mesg, with ltk function emulated.")) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from fnof_or.scm") (defprotocol or basic
tst/fnof_test.tst view
@@ -1,7 +1,7 @@ (herald "Function constraint test protocol" (comment "Skeletons 2, 4, and 7 should have no shapes.")) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from fnof_test.scm") (defprotocol fnoftest basic
tst/fnof_woolam.tst view
@@ -1,6 +1,6 @@ (herald "Woo-Lam Protocol, using fnof to emulate ltk function") -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from fnof_woolam.scm") (defprotocol woolam basic
tst/fnof_yahalom.tst view
@@ -2,7 +2,7 @@ "Yahalom Protocol with Forwarding Removed, using fnof to emulate ltk function" (bound 12)) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from fnof_yahalom.scm") (defprotocol yahalom basic
tst/goals.tst view
@@ -1,6 +1,6 @@ (herald goals) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from goals.scm") (defprotocol ns basic@@ -269,6 +269,14 @@ (precedes ((1 0) (0 0))) (non-orig (privk a) (privk b)) (uniq-orig n1)+ (goals+ (forall ((a b name) (n1 text) (z0 z1 node))+ (implies+ (and (p "init" 2 z0) (p "init" "n1" z0 n1) (p "init" "a" z0 a)+ (p "init" "b" z0 b) (p "" 0 z1) (p "" "x" z1 n1)+ (non (privk a)) (non (privk b)) (uniq n1)) (false))))+ (comment "Initiator point of view"+ "Secrecy goal: nonce n1 not revealed") (traces ((recv n1)) ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a))) (send (enc n2 (pubk b)))))@@ -758,6 +766,14 @@ (precedes ((1 1) (0 0))) (non-orig (privk a) (privk b)) (uniq-orig n2)+ (goals+ (forall ((a b name) (n2 text) (z0 z1 node))+ (implies+ (and (p "resp" 2 z0) (p "resp" "n2" z0 n2) (p "resp" "a" z0 a)+ (p "resp" "b" z0 b) (p "" 0 z1) (p "" "x" z1 n2)+ (non (privk a)) (non (privk b)) (uniq n2)) (false))))+ (comment "Responder point of view"+ "Failed secrecy goal: nonce n2 not revealed") (traces ((recv n2)) ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a))) (recv (enc n2 (pubk b)))))@@ -1063,6 +1079,13 @@ (precedes ((1 1) (0 0))) (non-orig (privk a) (privk b)) (uniq-orig n2)+ (goals+ (forall ((n2 text) (a b name) (z z-0 node))+ (implies+ (and (p "resp" 1 z) (p "" 0 z-0) (p "resp" "n2" z n2)+ (p "resp" "b" z b) (p "resp" "a" z a) (p "" "x" z-0 n2)+ (non (privk a)) (non (privk b)) (uniq n2)) (false))))+ (comment "Shows typeflaw in typeless NSL") (traces ((recv n2)) ((recv (enc a n1 (pubk b))) (send (enc n1 n2 b (pubk a))))) (label 42)
+ tst/graphtst view
@@ -0,0 +1,10 @@+#! /bin/sh++for f in *.tst+do+ b=`basename $f .tst`+ echo graphing $f+ ../dist/build/cpsagraph/cpsagraph -o "o_${b}.xhtml" "$f"+ ../dist/build/cpsashapes/cpsashapes -o "o_${b}.txt" "$f"+ ../dist/build/cpsagraph/cpsagraph -o "o_${b}_shapes.xhtml" "o_${b}.txt"+done
tst/iadh_um.scm view
@@ -1,88 +1,73 @@-(herald "IADH: unified model (UM)" (bound 20) (algebra diffie-hellman))+; Unified Model +; This file models the "Unified Model" method of determining a fresh+; key from long-term and ephemeral Diffie-Hellman exponents. Since+; CPSA does not provide an intrinsic association between names and+; Diffie-Hellman values, we use digital signatures to link+; authentication of a Diffie-Hellman long-term public value to a+; public key.++; A role is provided in which a party signs a fresh long-term+; Diffie-Hellman value, and then leaks the exponent. The latter step+; is used to test the notion of forward security.++; Two inputs are analyzed. In the first, we model that two+; participants exist that agree on the UM key. The notion of+; "implicit authentication" suggests that if one participant exists+; and another party knows the same key, that party must be either the+; participant or the participant's intended partner.++; In this version, we assume that the long-term keys of the+; participants do not leak.++; The second input checks whether the key can be learned when the key+; is generated honestly. In this version, we do NOT assume that the+; long-term keys of the participants do not leak.++(herald "IADH: unified model (UM)" (bound 20) (limit 2000) (algebra diffie-hellman))+ (defprotocol iadh-um diffie-hellman- (defrole init- (vars (l e expn) (hl he base) (A B CA name) (key n data))- (trace - (recv (enc "cert" (exp (gen) l) A (privk CA)))- (recv (enc "cert" hl B (privk CA)))+ (defrole participant+ (vars (l e expn) (hl he base) (self peer name) (key n data))+ (trace+ (recv (enc "cert" (exp (gen) l) self (privk self)))+ (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)) (recv he) (send key))- (non-orig (privk CA)) (fn-of (foo ((hash (exp hl l) (exp he e)) key)))- (neq (he (gen)) (hl (exp (gen) l))))- (defrole ltkgen- (vars (P name) (l expn))+ (uniq-gen e)+ (neq (he (gen))))+ (defrole ltx-gen+ (vars (self name) (l expn)) (trace- (send (enc "cert-req" P (exp (gen) l) (privk P))))- (fn-of ("principal-of" (P (exp (gen) l)))))- (defrole ca-gen- (vars (P CA name) (h base))- (trace - (recv (enc "cert-req" P h (privk P)))- (send (enc "cert" h P (privk CA))))- (non-orig (privk P))- (neq (h (gen)))- (fn-of ("principal-of" (P h)))))+ (send (enc "cert" (exp (gen) l) self (privk self)))+ (send l))+ (uniq-gen l)+ (fn-of ("principal-of" (l self))))+ ) -;; Implicit authentication: resp and init will agree on the resulting key++;; Implicit authentication: participants will agree on the resulting key ;; foo(key). Therefore they should agree on the names A and B.-(defskeleton iadh-um- (vars (key data) (e ep l lp expn))- (defstrand init 5 (key key) (e e) (l l))- (defstrand init 5 (key key) (e ep) (l lp))- (defstrand ltkgen 1 (l l))- (defstrand ltkgen 1 (l lp))- (uniq-gen e ep l lp)+ (defskeleton iadh-um+ (vars (key data) (eA lA eB lB expn) (A B C D name))+ (defstrand participant 5 (key key) (e eA) (l lA) (self A) (peer C))+ (defstrand participant 5 (key key) (e eB) (l lB) (self B) (peer D))+ (non-orig lA lB)+ (neq (eA eB))+ (non-orig (privk C) (privk D) (privk A) (privk B))+ (comment "Implicit authentication") ) -;; Key privacy: all keys good+ ;; Security: (defskeleton iadh-um- (vars (he base) (e l ep lp expn))- (defstrand init 4 (e e) (l l) (hl (exp (gen) lp)) (he he))- (defstrand ltkgen 1 (l l))- (defstrand ltkgen 1 (l lp))- (deflistener (hash (exp (gen) (mul l lp)) (exp he e)))- (uniq-gen e lp l)+ (vars (e1 e2 l expn) (hl base) (A B name))+ (defstrand participant 5 (e e1) (l l) (he (exp (gen) e2)) (hl hl) (self A) (peer B))+ (defstrand participant 3 (e e2))+ (deflistener (hash (exp hl l) (exp (gen) (mul e1 e2))))+ (non-orig (privk A) (privk B)) ) -;; Key privacy: both long term keys good, own ephemeral key leaks.-(defskeleton iadh-um- (vars (he base) (e l ep lp expn))- (defstrand init 4 (e e) (l l) (hl (exp (gen) lp)) (he he))- (defstrand ltkgen 1 (l l))- (defstrand ltkgen 1 (l lp))- (deflistener (hash (exp (gen) (mul l lp)) (exp he e)))- (uniq-gen lp l)-) -;; Participant's point of view: own LTK compromised, partner's good-(defskeleton iadh-um- (vars (he base) (e l ep lp expn))- (defstrand init 4 (e e) (hl (exp (gen) lp)) (he he))- (defstrand ltkgen 1 (l lp))- (deflistener (hash (exp (gen) (mul l lp)) (exp he e)))- (uniq-gen e lp)-)-;)--;; Participant's point of view: partner's LTK compromised, own good-(defskeleton iadh-um- (vars (he hl base) (e ep l lp expn))- (defstrand init 4 (e e) (l l) (hl hl) (he he))- (defstrand ltkgen 1 (l l))- (deflistener (hash (exp hl l) (exp he e)))- (uniq-gen e l)-)-;)--;; Participant's point of view: both LTKs compromised-(defskeleton iadh-um- (vars (he hl base) (e l ep lp expn))- (defstrand init 4 (e e) (l l) (he he) (hl hl))- (deflistener (hash (exp hl l) (exp he e)))- (uniq-gen e)-)-;)-+
tst/iadh_um.tst view
file too large to diff
tst/injection.scm view
@@ -21,7 +21,6 @@ (recv (enc n2 (pubk b))))) (comment "Needham-Schroeder variant 1")) - ;;; The responder point-of-view (defskeleton ns (vars (a name) (n2 text))@@ -29,7 +28,6 @@ (non-orig (privk a)) (uniq-orig n2) (comment "Responder point-of-view"))- (defprotocol ns-inj diffie-hellman (defrole init
tst/injection.tst view
@@ -2,7 +2,7 @@ (comment "This protocol contains a man-in-the-middle" "attack discovered by Galvin Lowe.")) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from injection.scm") (defprotocol ns diffie-hellman
tst/kerberos++.scm view
@@ -1,7 +1,7 @@ ; CPSA - Full Local Realm Kerberos -; In this example, cli (client) is trying to connect to the serv (service). -; +; In this example, cli (client) is trying to connect to the serv (service).+; ; 1) It first sends a request to the as (authentication server) for an initial tgt (ticket-granting ticket). ; 2) The AS responds by sending the TGT and a package containing a new session key encrypted under the long-term@@ -10,46 +10,45 @@ ; 3) The client then sends the TGT along with an authenticator (encrypted message containing its name and a time-stamp ; encrypted under the session key received from the AS) to the TGS (Ticket-Granting Server). -; 4) Having received the TGT and authenticator, the TGS then decrypts the TGT to get the session key. It then +; 4) Having received the TGT and authenticator, the TGS then decrypts the TGT to get the session key. It then ; decrypts the authenticator to compare the contents of the TGT and the authenticator. If this is verified, it ; generates an encrypted session key package (same as above in step 2, which includes the name of service, time-stamp,-; lifetime stamp, and the session key all encrypted under the session key it used in previous step) and a ST +; lifetime stamp, and the session key all encrypted under the session key it used in previous step) and a ST ; (Service Ticket) to send to the client. -; 5) The client then receives this package and decrypts the session key package to get the new session key to use +; 5) The client then receives this package and decrypts the session key package to get the new session key to use ; with the service. It then sends an Application Request (AP_REQ), which contains the service ticket it received ; in the previous step and an authenticator that the client generates, to the service. This authenticator is encrypted with ; the session key it extracted and contains its name and a time-stamp. This request is used as its credentials ; to access the service. - (defprotocol kerberos basic (defrole client (vars (cli tgs as serv name) (time t-prime life life-prime tgt st ack nonce text) (tgsk servk skey)) (trace ; Send the Initial Request (AS_REQ), which involves the client name, service name, and a lifetime stamp (send (cat cli serv nonce life))- ; Get back response from the AS (AS_REP), which gives the TGT and an encrypted message with a new session key, + ; Get back response from the AS (AS_REP), which gives the TGT and an encrypted message with a new session key, ; client name, time-stamp, and lifetime stamp. (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt)) (send (cat (enc cli time tgsk) tgt)) (recv (cat (enc serv t-prime life-prime servk tgsk) st)) (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk))) (uniq-orig nonce))- + (defrole tgs (vars (cli tgs as serv name) (time t-prime life life-prime tgt st text) (tgsk servk skey))- (trace + (trace (recv (cat (enc cli time tgsk) (enc time life tgsk cli (ltk tgs as)))) (send (cat (enc serv t-prime life-prime servk tgsk) (enc cli serv t-prime life-prime servk (ltk serv as))))) (uniq-orig servk))- + (defrole as (vars (cli tgs as serv name) (time life nonce text) (tgsk skey))- (trace + (trace (recv (cat cli serv nonce life)) (send (cat (enc time life nonce tgsk tgs (ltk cli as)) (enc time life tgsk cli (ltk tgs as))))) (uniq-orig tgsk))- + (defrole serv (vars (cli as serv name) (t-prime life-prime ack text) (servk skey)) (trace@@ -73,7 +72,7 @@ (vars (cli name) (tgs name) (as name) (serv name)) (defstrand as 2 (cli cli) (tgs tgs) (as as) (serv serv)) (non-orig (ltk cli as) (ltk tgs as) (ltk serv as)))- + (defskeleton kerberos (vars (cli name) (serv name) (as name)) (defstrand serv 2 (cli cli) (serv serv) (as as))
tst/kerberos++.tst view
@@ -1,4 +1,4 @@-(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from kerberos++.scm") (defprotocol kerberos basic
tst/lt_test.tst view
@@ -2,7 +2,7 @@ (comment "First and third skeletons should have a shape," "second and fourth should be dead.")) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from lt_test.scm") (defprotocol lttest basic
− tst/mtic.scm
@@ -1,51 +0,0 @@-(herald "MTI C(0) protocol"- (algebra diffie-hellman))--(defprotocol mtic diffie-hellman- (defrole init- (vars (a b name) (h2 h3 base) (x expn))- (trace- (send (enc (exp (gen) x) a (pubk b)))- (recv (enc h2 (exp h2 x) h3 b (pubk a)))- (send (enc (exp h3 x) (pubk b)))- )- (uniq-gen x)- (comment "X should be assumed to be freshly chosen per role")- )- (defrole resp- (vars (b a name) (h1 base) (y z expn))- (trace- (recv (enc h1 a (pubk b)))- (send (enc (exp (gen) y) (exp h1 y) (exp (gen) z) b (pubk a)))- (recv (enc (exp h1 z) (pubk b)))- )- (uniq-gen y z)- (comment "Y and Z should be assumed to be freshly chosen per role")- )- (comment "Needham-Schroeder-Lowe DH challenge/responses in place of nonces")-)--;;; The initiator point-of-view-(defskeleton mtic- (vars (a b name) (h2 h3 base) (x expn))- (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x))- (non-orig (privk b) (privk a))- (comment "Initiator point-of-view"))--;;; The responder point-of-view-(defskeleton mtic- (vars (a b name) (h1 base) (y z expn))- (defstrand resp 3 (a a) (b b) (h1 h1) (y y) (z z))- (non-orig (privk a))- (comment "Responder point-of-view"))--;(defskeleton dhnsl-; (vars (a b a-0 b-0 name) (y z z-0 x expn))-; (defstrand resp 3 (b b) (a a) (h1 (exp (gen) (mul (rec z-0) x))) (y y)-; (z z))-; (defstrand init 1 (a a-0) (b b-0) (x x))-; (precedes ((1 0) (0 0)))-; (non-orig (privk a))-; (uniq-gen y z x)-; (comment "empty cohort"))-
− tst/mtic.tst
@@ -1,126 +0,0 @@-(herald "MTI C(0) protocol" (algebra diffie-hellman))--(comment "CPSA 3.2.2")-(comment "All input read from mtic.scm")--(defprotocol mtic diffie-hellman- (defrole init- (vars (a b name) (h2 h3 base) (x expn))- (trace (send (enc (exp (gen) x) a (pubk b)))- (recv (enc h2 (exp h2 x) h3 b (pubk a)))- (send (enc (exp h3 x) (pubk b))))- (uniq-gen x)- (comment "X should be assumed to be freshly chosen per role"))- (defrole resp- (vars (b a name) (h1 base) (y z expn))- (trace (recv (enc h1 a (pubk b)))- (send (enc (exp (gen) y) (exp h1 y) (exp (gen) z) b (pubk a)))- (recv (enc (exp h1 z) (pubk b))))- (uniq-gen y z)- (ind-zero-in (y h1) (z h1))- (comment "Y and Z should be assumed to be freshly chosen per role"))- (comment- "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))--(defskeleton mtic- (vars (a b name) (h2 h3 base) (x expn))- (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x))- (non-orig (privk a) (privk b))- (uniq-gen x)- (comment "Initiator point-of-view")- (traces- ((send (enc (exp (gen) x) a (pubk b)))- (recv (enc h2 (exp h2 x) h3 b (pubk a)))- (send (enc (exp h3 x) (pubk b)))))- (label 0)- (unrealized (0 1))- (origs)- (comment "1 in cohort - 1 not yet seen"))--(defskeleton mtic- (vars (a b name) (h3 base) (x expr) (x-0 expn))- (defstrand init 3 (a a) (b b) (h2 (exp (gen) (rec x))) (h3 h3)- (x x-0))- (non-orig (privk a) (privk b))- (uniq-gen x-0)- (operation nonce-test (displaced 1 0 init 1)- (exp (gen) (mul (rec x) x-1)) (0 1)- (enc (exp (gen) x-1) a (pubk b)))- (traces- ((send (enc (exp (gen) x-0) a (pubk b)))- (recv- (enc (exp (gen) (rec x)) (exp (gen) (mul (rec x) x-0)) h3 b- (pubk a))) (send (enc (exp h3 x-0) (pubk b)))))- (label 1)- (parent 0)- (seen 1)- (unrealized (0 1))- (origs)- (comment "1 in cohort - 0 not yet seen"))--(comment "Nothing left to do")--(defprotocol mtic diffie-hellman- (defrole init- (vars (a b name) (h2 h3 base) (x expn))- (trace (send (enc (exp (gen) x) a (pubk b)))- (recv (enc h2 (exp h2 x) h3 b (pubk a)))- (send (enc (exp h3 x) (pubk b))))- (uniq-gen x)- (comment "X should be assumed to be freshly chosen per role"))- (defrole resp- (vars (b a name) (h1 base) (y z expn))- (trace (recv (enc h1 a (pubk b)))- (send (enc (exp (gen) y) (exp h1 y) (exp (gen) z) b (pubk a)))- (recv (enc (exp h1 z) (pubk b))))- (uniq-gen y z)- (ind-zero-in (y h1) (z h1))- (comment "Y and Z should be assumed to be freshly chosen per role"))- (comment- "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))--(defskeleton mtic- (vars (a b name) (h1 base) (y z expn))- (defstrand resp 3 (b b) (a a) (h1 h1) (y y) (z z))- (ind-zero-in (y h1) (z h1))- (non-orig (privk a))- (uniq-gen y z)- (comment "Responder point-of-view")- (traces- ((recv (enc h1 a (pubk b)))- (send (enc (exp (gen) y) (exp h1 y) (exp (gen) z) b (pubk a)))- (recv (enc (exp h1 z) (pubk b)))))- (label 2)- (unrealized (0 2))- (origs)- (comment "1 in cohort - 1 not yet seen"))--(defskeleton mtic- (vars (a b name) (z y x expn))- (defstrand resp 3 (b b) (a a) (h1 (exp (gen) x)) (y y) (z z))- (defstrand init 3 (a a) (b b) (h2 (exp (gen) y)) (h3 (exp (gen) z))- (x x))- (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))- (ind-zero-in (y (exp (gen) x)) (z (exp (gen) x)))- (non-orig (privk a))- (uniq-gen z y x)- (operation nonce-test (added-strand init 3) (exp (gen) (mul z x))- (0 2)- (enc (exp (gen) y) (exp (gen) (mul y x)) (exp (gen) z) b (pubk a)))- (traces- ((recv (enc (exp (gen) x) a (pubk b)))- (send- (enc (exp (gen) y) (exp (gen) (mul y x)) (exp (gen) z) b- (pubk a))) (recv (enc (exp (gen) (mul z x)) (pubk b))))- ((send (enc (exp (gen) x) a (pubk b)))- (recv- (enc (exp (gen) y) (exp (gen) (mul y x)) (exp (gen) z) b- (pubk a))) (send (enc (exp (gen) (mul z x)) (pubk b)))))- (label 3)- (parent 2)- (unrealized)- (shape)- (maps ((0) ((a a) (b b) (h1 (exp (gen) x)) (y y) (z z))))- (origs))--(comment "Nothing left to do")
tst/neq_test.tst view
@@ -2,7 +2,7 @@ (comment "First skeleton should have a shape," "second, and hird should be dead.")) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from neq_test.scm") (defprotocol neqtest basic
tst/ns.scm view
@@ -1,37 +1,37 @@-(herald "Needham-Schroeder Public-Key Protocol" - (comment "This protocol contains a man-in-the-middle" - "attack discovered by Galvin Lowe.")) - -;;; Used to generate output for inclusion in the primer. -;;; Use margin = 60 (-m 60) to generate the output. - -(defprotocol ns basic - (defrole init - (vars (a b name) (n1 n2 text)) - (trace - (send (enc n1 a (pubk b))) - (recv (enc n1 n2 (pubk a))) - (send (enc n2 (pubk b))))) - (defrole resp - (vars (b a name) (n2 n1 text)) - (trace - (recv (enc n1 a (pubk b))) - (send (enc n1 n2 (pubk a))) - (recv (enc n2 (pubk b))))) - (comment "Needham-Schroeder")) - -;;; The initiator point-of-view -(defskeleton ns - (vars (a b name) (n1 text)) - (defstrand init 3 (a a) (b b) (n1 n1)) - (non-orig (privk b) (privk a)) - (uniq-orig n1) - (comment "Initiator point-of-view")) - -;;; The responder point-of-view -(defskeleton ns - (vars (a b name) (n2 text)) - (defstrand resp 3 (a a) (b b) (n2 n2)) - (non-orig (privk a) (privk b)) - (uniq-orig n2) - (comment "Responder point-of-view")) +(herald "Needham-Schroeder Public-Key Protocol"+ (comment "This protocol contains a man-in-the-middle"+ "attack discovered by Galvin Lowe."))++;;; Used to generate output for inclusion in the primer.+;;; Use margin = 60 (-m 60) to generate the output.++(defprotocol ns basic+ (defrole init+ (vars (a b name) (n1 n2 text))+ (trace+ (send (enc n1 a (pubk b)))+ (recv (enc n1 n2 (pubk a)))+ (send (enc n2 (pubk b)))))+ (defrole resp+ (vars (b a name) (n2 n1 text))+ (trace+ (recv (enc n1 a (pubk b)))+ (send (enc n1 n2 (pubk a)))+ (recv (enc n2 (pubk b)))))+ (comment "Needham-Schroeder"))++;;; The initiator point-of-view+(defskeleton ns+ (vars (a b name) (n1 text))+ (defstrand init 3 (a a) (b b) (n1 n1))+ (non-orig (privk b) (privk a))+ (uniq-orig n1)+ (comment "Initiator point-of-view"))++;;; The responder point-of-view+(defskeleton ns+ (vars (a b name) (n2 text))+ (defstrand resp 3 (a a) (b b) (n2 n2))+ (non-orig (privk a) (privk b))+ (uniq-orig n2)+ (comment "Responder point-of-view"))
tst/ns.tst view
@@ -2,7 +2,7 @@ (comment "This protocol contains a man-in-the-middle" "attack discovered by Galvin Lowe.")) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from ns.scm") (defprotocol ns basic
tst/or.scm view
@@ -1,27 +1,27 @@-(herald "Otway-Rees Protocol" - (comment "Standard version using variables of sort mesg")) - -(defprotocol or basic - (defrole init (vars (a b s name) (na text) (k skey) (m text)) - (trace - (send (cat m a b (enc na m a b (ltk a s)))) - (recv (cat m (enc na k (ltk a s)))))) - (defrole resp - (vars (a b s name) (nb text) (k skey) (m text) (x y mesg)) - (trace - (recv (cat m a b x)) - (send (cat m a b x (enc nb m a b (ltk b s)))) - (recv (cat m y (enc nb k (ltk b s)))) - (send y))) - (defrole serv (vars (a b s name) (na nb text) (k skey) (m text)) - (trace - (recv (cat m a b (enc na m a b (ltk a s)) - (enc nb m a b (ltk b s)))) - (send (cat m (enc na k (ltk a s)) (enc nb k (ltk b s))))) - (uniq-orig k))) - -(defskeleton or - (vars (nb text) (s a b name)) - (defstrand resp 4 (a a) (b b) (s s) (nb nb)) - (non-orig (ltk a s) (ltk b s)) - (uniq-orig nb)) +(herald "Otway-Rees Protocol"+ (comment "Standard version using variables of sort mesg"))++(defprotocol or basic+ (defrole init (vars (a b s name) (na text) (k skey) (m text))+ (trace+ (send (cat m a b (enc na m a b (ltk a s))))+ (recv (cat m (enc na k (ltk a s))))))+ (defrole resp+ (vars (a b s name) (nb text) (k skey) (m text) (x y mesg))+ (trace+ (recv (cat m a b x))+ (send (cat m a b x (enc nb m a b (ltk b s))))+ (recv (cat m y (enc nb k (ltk b s))))+ (send y)))+ (defrole serv (vars (a b s name) (na nb text) (k skey) (m text))+ (trace+ (recv (cat m a b (enc na m a b (ltk a s))+ (enc nb m a b (ltk b s))))+ (send (cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))))+ (uniq-orig k)))++(defskeleton or+ (vars (nb text) (s a b name))+ (defstrand resp 4 (a a) (b b) (s s) (nb nb))+ (non-orig (ltk a s) (ltk b s))+ (uniq-orig nb))
tst/or.tst view
@@ -1,7 +1,7 @@ (herald "Otway-Rees Protocol" (comment "Standard version using variables of sort mesg")) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from or.scm") (defprotocol or basic
tst/owang.tst view
@@ -1,4 +1,4 @@-(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from owang.scm") (defprotocol wang basic@@ -303,6 +303,7 @@ (precedes ((0 0) (1 0))) (non-orig (privk "encr" t)) (uniq-orig m k)+ (comment "Experiment 1 to prove Lemma 4.1.") (traces ((send (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)@@ -803,6 +804,7 @@ (precedes ((0 0) (1 0))) (non-orig (privk "encr" t)) (uniq-orig m k)+ (comment "Experiment 2 to prove Lemma 4.1.") (traces ((send (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
tst/owat.scm view
@@ -26,5 +26,3 @@ (defstrand resp 3 (a a) (b b) (n n)) (non-orig (bltk a b)) (uniq-orig n))--
tst/owat.tst view
@@ -1,7 +1,7 @@ (herald "One-way Authentication Test with bltk keys" (algebra diffie-hellman) (bound 12)) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from owat.scm") (defprotocol owa diffie-hellman
tst/pkinit.scm view
@@ -31,11 +31,7 @@ ;;; which has no extension for which the conclusion is also ;;; satisfied. The shapes for the other analyses contain the ;;; annotation (satisfies yes) indicating that the goal is satisfied-;;; in the shape (and hence in any realized skeleton). ----+;;; in the shape (and hence in any realized skeleton). ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;@@ -43,9 +39,8 @@ ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;; This is the flawed version of the Kerberos public key initial-;; round. +;; round. (defprotocol pkinit-flawed basic (defrole client (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))@@ -62,7 +57,6 @@ (enc ak n1 tk t k)))) (uniq-orig k ak))) - ;; This is the fix the authors proposed to the standards group. It ;; adds the value c in a new field inside the server's signature. (defprotocol pkinit-fix1 basic@@ -100,9 +94,8 @@ (privk as)) (pubk c)) c tgt (enc ak n1 tk t k)))) (uniq-orig k ak))) - ;;;;;;;;;;;;;;;;;;;;;-;; ;; +;; ;; ;; Goal Statements ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;@@ -157,7 +150,6 @@ (p "auth" "as" z-0 as) (p "auth" "k" z-0 k) (p "auth" "c" z-0 c))))))- ;;;;;;;;
tst/pkinit.tst view
@@ -1,6 +1,6 @@ (herald "Kerberos PKINIT") -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from pkinit.scm") (defprotocol pkinit-flawed basic@@ -482,6 +482,13 @@ (precedes ((0 1) (1 1))) (non-orig (privk c) (privk as)) (uniq-orig n2-0 n1-0 k ak)+ (goals+ (forall ((c c-0 as name) (k skey) (z z-0 node))+ (implies+ (and (p "client" 1 z) (p "client" "c" z c)+ (p "client" "as" z as) (p "client" "k" z k) (p "auth" 1 z-0)+ (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))+ (non (privk c))) (= c c-0)))) (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)) (send@@ -588,6 +595,13 @@ (precedes ((0 1) (1 1))) (non-orig (privk c) (privk as)) (uniq-orig n2-0 n1-0 k ak)+ (goals+ (forall ((c c-0 as name) (k skey) (z z-0 node))+ (implies+ (and (p "client" 1 z) (p "client" "c" z c)+ (p "client" "as" z as) (p "client" "k" z k) (p "auth" 1 z-0)+ (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))+ (non (privk c))) (exists ((z-1 node)) (p "client" 1 z-1))))) (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)) (send@@ -808,6 +822,13 @@ (precedes ((0 1) (1 1))) (non-orig (privk c) (privk as)) (uniq-orig n2-0 n1-0 k ak)+ (goals+ (forall ((c c-0 as name) (k skey) (z z-0 node))+ (implies+ (and (p "client" 1 z) (p "client" "c" z c)+ (p "client" "as" z as) (p "client" "k" z k) (p "auth" 1 z-0)+ (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))+ (non (privk c))) (exists ((z-1 node)) (p "client" 1 z-1))))) (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)) (send
tst/plaindh.scm view
@@ -5,21 +5,20 @@ (defprotocol plaindh diffie-hellman (defrole init (vars (x expn) (h base) (n text))- (trace (send (exp (gen) x)) - (recv h) + (trace (send (exp (gen) x))+ (recv h) (send (enc n (exp h x))) (recv n)) (uniq-orig n) (uniq-gen x)) (defrole resp (vars (y expn) (h base) (n text))- (trace (recv h) - (send (exp (gen) y)) + (trace (recv h)+ (send (exp (gen) y)) (recv (enc n (exp h y))) (send n)) (uniq-gen y)) (comment "Diffie-hellman key exchange followed by an encryption"))- (defskeleton plaindh (vars )
tst/plaindh.tst view
@@ -1,127 +1,6254 @@ (herald "Plain diffie-hellman protocol with challenge-response" (algebra diffie-hellman)) -(comment "CPSA 3.2.2")-(comment "All input read from plaindh.scm")--(defprotocol plaindh diffie-hellman- (defrole init- (vars (x expn) (h base) (n text))- (trace (send (exp (gen) x)) (recv h) (send (enc n (exp h x)))- (recv n))- (uniq-orig n)- (uniq-gen x))- (defrole resp- (vars (y expn) (h base) (n text))- (trace (recv h) (send (exp (gen) y)) (recv (enc n (exp h y)))- (send n))- (uniq-gen y)- (ind-zero-in (y h)))- (comment "Diffie-hellman key exchange followed by an encryption"))--(defskeleton plaindh- (vars (n text) (h base) (x expn))- (defstrand init 4 (n n) (h h) (x x))- (uniq-gen x)- (uniq-orig n)- (traces- ((send (exp (gen) x)) (recv h) (send (enc n (exp h x))) (recv n)))- (label 0)- (unrealized (0 3))- (origs (n (0 2)))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton plaindh- (vars (n text) (h base) (x y expn))- (defstrand init 4 (n n) (h (exp h y)) (x x))- (defstrand resp 4 (n n) (h (exp h x)) (y y))- (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))- (ind-zero-in (y (exp h x)))- (uniq-gen x y)- (uniq-orig n)- (operation nonce-test (added-strand resp 4) n (0 3)- (enc n (exp h (mul x y))))- (traces- ((send (exp (gen) x)) (recv (exp h y))- (send (enc n (exp h (mul x y)))) (recv n))- ((recv (exp h x)) (send (exp (gen) y))- (recv (enc n (exp h (mul x y)))) (send n)))- (label 1)- (parent 0)- (unrealized (0 1) (1 0))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton plaindh- (vars (n text) (h base) (x expn))- (defstrand init 4 (n n) (h h) (x x))- (deflistener (exp h x))- (precedes ((0 0) (1 0)) ((1 1) (0 3)))- (uniq-gen x)- (uniq-orig n)- (operation nonce-test (added-listener (exp h x)) n (0 3)- (enc n (exp h x)))- (traces- ((send (exp (gen) x)) (recv h) (send (enc n (exp h x))) (recv n))- ((recv (exp h x)) (send (exp h x))))- (label 2)- (parent 0)- (unrealized (1 0))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton plaindh- (vars (n text) (x y expn) (x-0 expr))- (defstrand init 4 (n n) (h (exp (gen) (mul y x-0))) (x x))- (defstrand resp 4 (n n) (h (exp (gen) (mul x x-0))) (y y))- (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))- (ind-zero-in (y (exp (gen) (mul x x-0))))- (uniq-gen x y)- (uniq-orig n)- (operation nonce-test (algebra-contracted (h (exp (gen) x-0)))- (exp (gen) (mul x x-0)) (1 0) (exp (gen) x))- (traces- ((send (exp (gen) x)) (recv (exp (gen) (mul y x-0)))- (send (enc n (exp (gen) (mul x y x-0)))) (recv n))- ((recv (exp (gen) (mul x x-0))) (send (exp (gen) y))- (recv (enc n (exp (gen) (mul x y x-0)))) (send n)))- (label 3)- (parent 1)- (unrealized)- (shape)- (maps ((0) ((x x) (h (exp (gen) (mul y x-0))) (n n))))- (origs (n (0 2))))--(defskeleton plaindh- (vars (n text) (x expn) (x-0 expr))- (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x))- (deflistener (exp (gen) (mul x x-0)))- (precedes ((0 0) (1 0)) ((1 1) (0 3)))- (uniq-gen x)- (uniq-orig n)- (operation nonce-test (algebra-contracted (h (exp (gen) x-0)))- (exp (gen) (mul x x-0)) (1 0) (exp (gen) x))- (traces- ((send (exp (gen) x)) (recv (exp (gen) x-0))- (send (enc n (exp (gen) (mul x x-0)))) (recv n))- ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))- (label 4)- (parent 2)- (unrealized)- (comment "1 in cohort - 1 not yet seen"))--(defskeleton plaindh- (vars (n text) (x expn) (x-0 expr))- (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x))- (uniq-gen x)- (uniq-orig n)- (operation generalization deleted (1 0))- (traces- ((send (exp (gen) x)) (recv (exp (gen) x-0))- (send (enc n (exp (gen) (mul x x-0)))) (recv n)))- (label 5)- (parent 4)- (unrealized)- (shape)- (maps ((0) ((x x) (h (exp (gen) x-0)) (n n))))- (origs (n (0 2))))+(comment "CPSA 3.4.0")+(comment "All input read from plaindh.scm")++(defprotocol plaindh diffie-hellman+ (defrole init+ (vars (x expn) (h base) (n text))+ (trace (send (exp (gen) x)) (recv h) (send (enc n (exp h x)))+ (recv n))+ (uniq-orig n)+ (uniq-gen x))+ (defrole resp+ (vars (y expn) (h base) (n text))+ (trace (recv h) (send (exp (gen) y)) (recv (enc n (exp h y)))+ (send n))+ (uniq-gen y)+ (absent (y h)))+ (comment "Diffie-hellman key exchange followed by an encryption"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn))+ (defstrand init 4 (n n) (h h) (x x))+ (uniq-gen x)+ (uniq-orig n)+ (traces+ ((send (exp (gen) x)) (recv h) (send (enc n (exp h x))) (recv n)))+ (label 0)+ (unrealized (0 3))+ (origs (n (0 2)))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp h y)) (x x))+ (defstrand resp 4 (n n) (h (exp h x)) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))+ (absent (y (exp h x)))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 4) n (0 3)+ (enc n (exp h (mul x y))))+ (traces+ ((send (exp (gen) x)) (recv (exp h y))+ (send (enc n (exp h (mul x y)))) (recv n))+ ((recv (exp h x)) (send (exp (gen) y))+ (recv (enc n (exp h (mul x y)))) (send n)))+ (label 1)+ (parent 0)+ (unrealized (0 1) (1 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn))+ (defstrand init 4 (n n) (h h) (x x))+ (deflistener (exp h x))+ (precedes ((0 0) (1 0)) ((1 1) (0 3)))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (added-listener (exp h x)) n (0 3)+ (enc n (exp h x)))+ (traces+ ((send (exp (gen) x)) (recv h) (send (enc n (exp h x))) (recv n))+ ((recv (exp h x)) (send (exp h x))))+ (label 2)+ (parent 0)+ (unrealized (1 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))+ (absent (y (gen)))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (h (exp (gen) (rec x)))) (gen)+ (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))+ (send n)))+ (label 3)+ (parent 1)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x)) (y y))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))+ (absent (y (exp (gen) x)))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (exp (gen) x)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x)))) (send n)))+ (label 4)+ (parent 1)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 0) (1 0)))+ (absent (y (exp (gen) x-0)))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0)))) (send n))+ ((send (exp (gen) x-0))))+ (label 5)+ (parent 1)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))) (recv n))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))) (send n))+ ((recv h) (send (exp (gen) y-0))))+ (label 6)+ (parent 1)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr))+ (defstrand init 4 (n n) (h (exp h y)) (x x))+ (defstrand resp 4 (n n) (h (exp h x)) (y y))+ (deflistener (cat (exp h (mul x (rec w))) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)))+ (absent (y (exp h x)))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (added-listener (cat (exp h (mul x (rec w))) w))+ (exp h x) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp h y))+ (send (enc n (exp h (mul x y)))) (recv n))+ ((recv (exp h x)) (send (exp (gen) y))+ (recv (enc n (exp h (mul x y)))) (send n))+ ((recv (cat (exp h (mul x (rec w))) w))+ (send (cat (exp h (mul x (rec w))) w))))+ (label 7)+ (parent 1)+ (unrealized (0 1) (2 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (precedes ((0 0) (1 0)) ((1 1) (0 3)))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (contracted (h (exp (gen) (rec x)))) (gen)+ (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen))))+ (label 8)+ (parent 2)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (gen)) (x x))+ (deflistener (exp (gen) x))+ (precedes ((0 0) (1 0)) ((1 1) (0 3)))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x)))+ (recv n)) ((recv (exp (gen) x)) (send (exp (gen) x))))+ (label 9)+ (parent 2)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 3)) ((2 0) (0 1)) ((2 0) (1 0)))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0))))+ (label 10)+ (parent 2)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (1 0)) ((1 1) (0 3)) ((2 1) (0 1)) ((2 1) (1 0)))+ (absent (y h))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv h) (send (exp (gen) y))))+ (label 11)+ (parent 2)+ (unrealized (0 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr))+ (defstrand init 4 (n n) (h h) (x x))+ (deflistener (exp h x))+ (deflistener (cat (exp h (mul x (rec w))) w))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (added-listener (cat (exp h (mul x (rec w))) w))+ (exp h x) (1 0))+ (traces+ ((send (exp (gen) x)) (recv h) (send (enc n (exp h x))) (recv n))+ ((recv (exp h x)) (send (exp h x)))+ ((recv (cat (exp h (mul x (rec w))) w))+ (send (cat (exp h (mul x (rec w))) w))))+ (label 12)+ (parent 2)+ (unrealized (2 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x y expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (0 1)))+ (absent (y (gen)))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (exp (gen) (mul (rec x) y)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))+ (send n))+ ((recv (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) y (rec w))) w))))+ (label 13)+ (parent 3)+ (unrealized (2 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton plaindh+ (vars (n text) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (absent (y (exp (gen) x)))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization deleted (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul y x)))) (recv n)))+ (label 14)+ (parent 4)+ (unrealized)+ (origs (n (0 2)))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x y x-0 expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 0) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+ (exp (gen) (mul (rec x) y x-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0)))) (send n))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))))+ (label 15)+ (parent 5)+ (unrealized (3 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) (mul (rec x) y y-0 (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y y-0 (rec w))) w))+ (exp (gen) (mul (rec x) y y-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))) (recv n))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))) (send n))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) (mul (rec x) y y-0 (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) y y-0 (rec w))) w))))+ (label 16)+ (parent 6)+ (unrealized (3 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x y expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)))+ (absent (y (exp (gen) w)))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (h (exp (gen) (mul (rec x) w))))+ (gen) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w)))+ (send (enc n (exp (gen) (mul y w)))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w)))) (send n))+ ((recv (cat (gen) w)) (send (cat (gen) w))))+ (label 17)+ (parent 7)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton plaindh+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y w))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x))) (y y))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)))+ (absent (y (exp (gen) (mul w x))))+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y w)))+ (send (enc n (exp (gen) (mul y w x)))) (recv n))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w x)))) (send n))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+ (label 18)+ (parent 7)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x y expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)))+ (absent (y (exp (gen) (mul w x-0))))+ (precur (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w x-0)))+ (send (enc n (exp (gen) (mul y w x-0)))) (recv n))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w x-0)))) (send n))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0))))+ (label 19)+ (parent 7)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)))+ (absent (y-0 h) (y (exp (gen) (mul w y-0))))+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w y-0)))+ (send (enc n (exp (gen) (mul y w y-0)))) (recv n))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w y-0)))) (send n))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv h) (send (exp (gen) y-0))))+ (label 20)+ (parent 7)+ (unrealized (0 1))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (exp (gen) (mul (rec x) (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) (rec w))) w))+ (exp (gen) (rec x)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) (mul (rec x) (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) (rec w))) w))))+ (label 21)+ (parent 8)+ (unrealized (2 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (gen)) (x x))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization deleted (1 0))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x)))+ (recv n)))+ (label 22)+ (parent 9)+ (unrealized)+ (shape)+ (maps ((0) ((x x) (h (gen)) (n n))))+ (origs (n (0 2))))++(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) x-0 (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 0) (1 0))+ ((2 0) (3 0)) ((3 1) (0 1)))+ (uniq-gen x x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) x-0 (rec w))) w))+ (exp (gen) (mul (rec x) x-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) (mul (rec x) x-0 (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) x-0 (rec w))) w))))+ (label 23)+ (parent 10)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((2 1) (3 0)) ((3 1) (0 1)))+ (absent (y h))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (exp (gen) (mul (rec x) y)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) (mul (rec x) y (rec w))) w))+ (send (cat (exp (gen) (mul (rec x) y (rec w))) w))))+ (label 24)+ (parent 11)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (h (exp (gen) (mul (rec x) w))))+ (gen) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w)))+ (send (enc n (exp (gen) w))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (gen) w)) (send (cat (gen) w))))+ (label 25)+ (parent 12)+ (unrealized (0 1))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))+ (precur (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul w x)))) (recv n))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+ (label 26)+ (parent 12)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w x-0))) (x x))+ (deflistener (exp (gen) (mul w x-0)))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))+ ((3 0) (2 0)))+ (precur (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w x-0)))+ (send (enc n (exp (gen) (mul w x-0)))) (recv n))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) (mul w x-0))))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0))))+ (label 27)+ (parent 12)+ (unrealized (0 1))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w y))) (x x))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))+ ((3 1) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w y)))+ (send (enc n (exp (gen) (mul w y)))) (recv n))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv h) (send (exp (gen) y))))+ (label 28)+ (parent 12)+ (unrealized (0 1))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (gen) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (0 1)))+ (absent (y (gen)))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul (rec x) y)))+ (gen) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))+ (send n))+ ((recv (cat (gen) (mul (rec x) y)))+ (send (cat (gen) (mul (rec x) y)))))+ (label 29)+ (parent 13)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (0 1)))+ (absent (y (gen)))+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))+ (send n))+ ((recv (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x) (rec x))))))+ (label 30)+ (parent 13)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (0 1)) ((3 0) (2 0)))+ (absent (y (gen)))+ (precur (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))+ (send n))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 31)+ (parent 13)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (0 1)))+ (absent (y (gen)))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))+ (send n))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))))+ (label 32)+ (parent 13)+ (unrealized (0 1) (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 3) (0 3))+ ((2 1) (0 1)) ((3 1) (2 0)))+ (absent (y-0 h) (y (gen)))+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))+ (send n))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 33)+ (parent 13)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization forgot y)+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul y x)))) (recv n)))+ (label 34)+ (parent 14)+ (unrealized)+ (shape)+ (maps ((0) ((x x) (h (exp (gen) y)) (n n))))+ (origs (n (0 2))))++(defskeleton plaindh+ (vars (n text) (x y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul (rec x) y x-0)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 0) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (contracted (x-1 x) (y-0 y) (x-2 x-0) (w (mul (rec x) y x-0))) (gen)+ (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0)))) (send n))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul (rec x) y x-0)))+ (send (cat (gen) (mul (rec x) y x-0)))))+ (label 35)+ (parent 15)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (y x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y x (rec x-0)))) (x x-0))+ (defstrand resp 4 (n n) (h (exp (gen) x)) (y y))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 0) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) x)))+ (precur (3 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-1) (3 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul y x (rec x-0))))+ (send (enc n (exp (gen) (mul y x)))) (recv n))+ ((recv (exp (gen) x)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x)))) (send n))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))))+ (label 36)+ (parent 15)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 0) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (precur (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 2 init 1) (exp (gen) x-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0)))) (send n))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y)))+ (send (cat (exp (gen) x-0) (mul (rec x) y)))))+ (label 37)+ (parent 15)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x y x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul (rec x) y x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 0) (1 0)) ((3 1) (0 1)) ((4 0) (3 0)))+ (absent (y (exp (gen) x-0)))+ (precur (3 0))+ (uniq-gen x y x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0)))) (send n))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul (rec x) y x-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul (rec x) y x-0 (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 38)+ (parent 15)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0 y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 0) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (precur (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0 y)))+ (send (enc n (exp (gen) (mul x-0 y)))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x-0 y)))) (send n))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0)))+ (send (cat (exp (gen) y) (mul (rec x) x-0)))))+ (label 39)+ (parent 15)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y x-0 y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y x-0 (rec y-0))))+ (defstrand resp 2 (h h) (y y-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 0) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y-0 h) (y (exp (gen) x-0)))+ (precur (3 0))+ (uniq-gen x y x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))+ (send (enc n (exp (gen) (mul y x-0)))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0)))) (send n))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y x-0 (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y x-0 (rec y-0)))))+ ((recv h) (send (exp (gen) y-0))))+ (label 40)+ (parent 15)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (gen) (mul (rec x) y y-0)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (contracted (x-0 x) (y-1 y) (y-2 y-0) (w (mul (rec x) y y-0))) (gen)+ (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))) (recv n))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))) (send n))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (gen) (mul (rec x) y y-0)))+ (send (cat (gen) (mul (rec x) y y-0)))))+ (label 41)+ (parent 16)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (y y-0 x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y y-0 (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x) (mul y y-0 (rec x) (rec x))))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (precur (3 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y y-0 (rec x))))+ (send (enc n (exp (gen) (mul y y-0)))) (recv n))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))) (send n))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x) (mul y y-0 (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y y-0 (rec x) (rec x))))))+ (label 42)+ (parent 16)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y y-0 (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 0) (3 0)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (precur (3 0))+ (uniq-gen x y y-0 x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))) (recv n))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))) (send n))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y y-0 (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y y-0 (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 43)+ (parent 16)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y)) (y y-0))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y-0 (exp (gen) y)) (y h))+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul y y-0)))) (send n))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y)))+ (send (cat (exp (gen) y-0) (mul (rec x) y)))))+ (label 44)+ (parent 16)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) y-0)))+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 2 resp 2) (exp (gen) y-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))) (recv n))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))) (send n))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y)))+ (send (cat (exp (gen) y-0) (mul (rec x) y)))))+ (label 45)+ (parent 16)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y y-0 y-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y-1) (mul (rec x) y y-0 (rec y-1))))+ (defstrand resp 2 (h h-0) (y y-1))+ (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y-1 h-0) (y-0 h) (y (exp (gen) y-0)))+ (precur (3 0))+ (uniq-gen x y y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))+ (send (enc n (exp (gen) (mul y y-0)))) (recv n))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))) (send n))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y-1) (mul (rec x) y y-0 (rec y-1))))+ (send (cat (exp (gen) y-1) (mul (rec x) y y-0 (rec y-1)))))+ ((recv h-0) (send (exp (gen) y-1))))+ (label 46)+ (parent 16)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x)) (y y))+ (deflistener (cat (gen) x))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)))+ (absent (y (exp (gen) x)))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))) (recv n))+ ((recv (exp (gen) x)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (cat (gen) x)) (send (cat (gen) x))))+ (label 47)+ (parent 17)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x y expn) (w w-0 expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) w)))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y w)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w)))+ (send (enc n (exp (gen) (mul y w)))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w)))) (send n))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))))+ (label 48)+ (parent 17)+ (unrealized (3 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton plaindh+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y w))) (x x))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (absent (y (exp (gen) (mul w x))))+ (precur (1 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization deleted (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y w)))+ (send (enc n (exp (gen) (mul y w x)))) (recv n))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+ (label 49)+ (parent 18)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x)) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)))+ (absent (y (exp (gen) x)))+ (precur (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))) (recv n))+ ((recv (exp (gen) x)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x y)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 50)+ (parent 19)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x y expn) (w expr) (x-0 expn) (w-0 expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul w x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener+ (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y w x-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w x-0)))+ (send (enc n (exp (gen) (mul y w x-0)))) (recv n))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w x-0)))) (send n))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))+ (label 51)+ (parent 19)+ (unrealized (4 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) y-0)) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x)) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)))+ (absent (y-0 (exp (gen) x)) (y h))+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))) (recv n))+ ((recv (exp (gen) x)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x y-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul x (rec y))))+ (send (cat (exp (gen) y) (mul x (rec y)))))+ ((recv h) (send (exp (gen) y))))+ (label 52)+ (parent 20)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn) (w-0 expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y-0 h) (y (exp (gen) (mul w y-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener+ (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) y w y-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w y-0)))+ (send (enc n (exp (gen) (mul y w y-0)))) (recv n))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y w y-0)))) (send n))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))+ (label 53)+ (parent 20)+ (unrealized (4 0))+ (comment "6 in cohort - 6 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (rec x)))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (x-0 x) (w (rec x))) (gen) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x)))))+ (label 54)+ (parent 21)+ (unrealized (0 1) (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1)))+ (precur (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x))))))+ (label 55)+ (parent 21)+ (unrealized (0 1) (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1))+ ((3 0) (2 0)))+ (precur (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 56)+ (parent 21)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (exp (gen) y) (mul (rec x) (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1))+ ((3 1) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) y) (mul (rec x) (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) (rec y)))))+ ((recv h) (send (exp (gen) y))))+ (label 57)+ (parent 21)+ (unrealized (0 1) (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul (rec x) x-0)))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 0) (1 0))+ ((2 0) (3 0)) ((3 1) (0 1)))+ (uniq-gen x x-0)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (gen) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul (rec x) x-0)))+ (send (cat (gen) (mul (rec x) x-0)))))+ (label 58)+ (parent 23)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) x))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 0) (1 0))+ ((2 0) (3 0)) ((3 1) (0 1)))+ (precur (3 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-1) (3 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))) (recv n))+ ((recv (exp (gen) x)) (send (exp (gen) x))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))))+ (label 59)+ (parent 23)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (rec x)))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 0) (1 0))+ ((2 0) (3 0)) ((3 1) (0 1)))+ (precur (3 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 2 init 1) (exp (gen) x-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (rec x)))+ (send (cat (exp (gen) x-0) (rec x)))))+ (label 60)+ (parent 23)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 0) (1 0))+ ((2 0) (3 0)) ((3 1) (0 1)) ((4 0) (3 0)))+ (precur (3 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 61)+ (parent 23)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 0) (1 0))+ ((2 0) (3 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y h))+ (precur (3 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) x-0 (rec y)))))+ ((recv h) (send (exp (gen) y))))+ (label 62)+ (parent 23)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul (rec x) y)))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((2 1) (3 0)) ((3 1) (0 1)))+ (absent (y h))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0))+ (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul (rec x) y)))+ (gen) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (gen) (mul (rec x) y)))+ (send (cat (gen) (mul (rec x) y)))))+ (label 63)+ (parent 24)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((2 1) (3 0)) ((3 1) (0 1)))+ (absent (y h))+ (precur (3 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x) (rec x))))))+ (label 64)+ (parent 24)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((2 1) (3 0)) ((3 1) (0 1)) ((4 0) (3 0)))+ (absent (y h))+ (precur (3 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 65)+ (parent 24)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((2 1) (3 0)) ((3 1) (0 1)))+ (absent (y h))+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 2 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))))+ (label 66)+ (parent 24)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((2 1) (3 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y-0 h-0) (y h))+ (precur (3 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))))+ ((recv h-0) (send (exp (gen) y-0))))+ (label 67)+ (parent 24)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (gen)) (x x))+ (deflistener (exp (gen) x))+ (deflistener (cat (gen) x))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (contracted (x-0 x) (w x)) (gen) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x)))+ (recv n)) ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (gen) x)) (send (cat (gen) x))))+ (label 68)+ (parent 25)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) x)) (x x))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (gen) (mul x x)))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))+ (precur (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))) (recv n))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x)))))+ (label 69)+ (parent 25)+ (unrealized (1 0) (2 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))+ ((3 0) (2 0)))+ (precur (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))) (recv n))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0))))+ ((send (exp (gen) x-0))))+ (label 70)+ (parent 25)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (gen) (mul x y)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))+ ((3 1) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))) (recv n))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y))))+ ((recv h) (send (exp (gen) y))))+ (label 71)+ (parent 25)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w w-0 expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) (mul (rec x) w (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w (rec w-0))) w-0))+ (exp (gen) (mul (rec x) w)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w)))+ (send (enc n (exp (gen) w))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) (mul (rec x) w (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) w (rec w-0))) w-0))))+ (label 72)+ (parent 25)+ (unrealized (3 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (1 0)) ((1 1) (0 3)))+ (precur (1 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization deleted (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul w x)))) (recv n))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+ (label 73)+ (parent 26)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (gen)) (x x))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))+ ((3 0) (2 0)))+ (precur (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w (mul x (rec x-0))) (x-2 x-0)) (gen) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x)))+ (recv n)) ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 74)+ (parent 27)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x-0))+ (deflistener (exp (gen) (mul x-0 x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) x-0 x-0)))+ (defstrand init 1 (x x))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))+ ((3 0) (2 0)))+ (precur (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-1) (0 1))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x-0 x-0)))) (recv n))+ ((recv (exp (gen) (mul x-0 x-0))) (send (exp (gen) (mul x-0 x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) x-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) x-0 x-0))))+ ((send (exp (gen) x))))+ (label 75)+ (parent 27)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-0) x))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))+ ((3 0) (2 0)))+ (precur (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 4 3 init 1) (exp (gen) x-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))) (recv n))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x)))+ ((send (exp (gen) x-0))))+ (label 76)+ (parent 27)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) x-1)) (x x))+ (deflistener (exp (gen) (mul x x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))+ (defstrand init 1 (x x-0))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))+ ((3 0) (2 0)) ((4 0) (0 1)) ((4 0) (2 0)))+ (precur (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-1))+ (send (enc n (exp (gen) (mul x x-1)))) (recv n))+ ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) x-1))))+ ((send (exp (gen) x-0))) ((send (exp (gen) x-1))))+ (label 77)+ (parent 27)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y)))+ (defstrand init 1 (x x-0))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))+ ((3 0) (2 0)) ((4 1) (0 1)) ((4 1) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))) (recv n))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) y)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) y))))+ ((send (exp (gen) x-0))) ((recv h) (send (exp (gen) y))))+ (label 78)+ (parent 27)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn) (w-0 expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w x-0))) (x x))+ (deflistener (exp (gen) (mul w x-0)))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0))+ (exp (gen) (mul (rec x) w x-0)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w x-0)))+ (send (enc n (exp (gen) (mul w x-0)))) (recv n))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) (mul w x-0))))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0))))+ (label 79)+ (parent 27)+ (unrealized (4 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (gen)) (x x))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) y) (mul x (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))+ ((3 1) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w (mul x (rec y))) (y-0 y))+ (gen) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x)))+ (recv n)) ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul x (rec y))))+ (send (cat (exp (gen) y) (mul x (rec y)))))+ ((recv h) (send (exp (gen) y))))+ (label 80)+ (parent 28)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) x)) (x x))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) x x)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))+ ((3 1) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))) (recv n))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (exp (gen) y) (mul (rec y) x x)))+ (send (cat (exp (gen) y) (mul (rec y) x x))))+ ((recv h) (send (exp (gen) y))))+ (label 81)+ (parent 28)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))+ (defstrand resp 2 (h h) (y y))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))+ ((3 1) (2 0)) ((4 0) (0 1)) ((4 0) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x-0))+ (send (enc n (exp (gen) (mul x x-0)))) (recv n))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) x-0)))+ (send (cat (exp (gen) y) (mul x (rec y) x-0))))+ ((recv h) (send (exp (gen) y))) ((send (exp (gen) x-0))))+ (label 82)+ (parent 28)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) y)) (x x))+ (deflistener (exp (gen) (mul x y)))+ (deflistener (cat (exp (gen) y) x))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))+ ((3 1) (2 0)))+ (absent (y h))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 3 resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y))+ (send (enc n (exp (gen) (mul x y)))) (recv n))+ ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+ ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x)))+ ((recv h) (send (exp (gen) y))))+ (label 83)+ (parent 28)+ (unrealized (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) y-0)) (x x))+ (deflistener (exp (gen) (mul x y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))+ (defstrand resp 2 (h h) (y y))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))+ ((3 1) (2 0)) ((4 1) (0 1)) ((4 1) (2 0)))+ (absent (y-0 h-0) (y h))+ (precur (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) y-0))+ (send (enc n (exp (gen) (mul x y-0)))) (recv n))+ ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) y-0))))+ ((recv h) (send (exp (gen) y))) ((recv h-0) (send (exp (gen) y-0))))+ (label 84)+ (parent 28)+ (unrealized (1 0) (2 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn) (w-0 expr))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w y))) (x x))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))+ (exp (gen) (mul (rec x) w y)) (0 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w y)))+ (send (enc n (exp (gen) (mul w y)))) (recv n))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))+ (send (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))))+ (label 85)+ (parent 28)+ (unrealized (4 0))+ (comment "5 in cohort - 5 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0))+ ((1 3) (0 3)) ((2 1) (0 1)) ((3 1) (2 0)))+ (absent (y (gen)))+ (precur (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))+ (send n))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))+ (label 86)+ (parent 32)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test+ (contracted (x-0 x) (y-0 y) (w-0 (mul x w)) (w-1 (mul w y)) (y-1 y)+ (w (mul w y))) (gen) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))) (send n))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+ (label 87)+ (parent 48)+ (unrealized (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (w expr) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x x))) (y y))+ (deflistener (cat (gen) (mul w x x)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) (mul w x x))))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y)))+ (send (enc n (exp (gen) (mul w x x y)))) (recv n))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x x y)))) (send n))+ ((recv (cat (gen) (mul w x x))) (send (cat (gen) (mul w x x))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))))+ (label 88)+ (parent 48)+ (unrealized (0 1) (1 0) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 0) (2 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (precur (3 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))) (recv n))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))) (send n))+ ((recv (cat (gen) (mul x w x-0))) (send (cat (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0))))+ (label 89)+ (parent 48)+ (unrealized (0 1) (1 0) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))) (send n))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 90)+ (parent 48)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (precur (3 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))) (recv n))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))) (send n))+ ((recv (cat (gen) (mul x w y))) (send (cat (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 91)+ (parent 48)+ (unrealized (0 1) (1 0) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y w))) (x x))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (1 0)))+ (absent (y (exp (gen) (mul w x))))+ (precur (1 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization deleted (1 1))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y w)))+ (send (enc n (exp (gen) (mul y w x)))) (recv n))+ ((recv (cat (exp (gen) x) w))))+ (label 92)+ (parent 49)+ (unrealized)+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (y-0 y) (w-0 (mul x (rec x-0) w)) (x-2 x-0)+ (w-1 (mul w y)) (y-1 y) (w (mul w y))) (gen) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+ (label 93)+ (parent 51)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x-0))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x-0 x-0))) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul w x-0 x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-1) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul w x-0 x-0 y)))) (recv n))+ ((recv (exp (gen) (mul w x-0 x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x-0 x-0 y)))) (send n))+ ((recv (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w x-0 x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))))+ (label 94)+ (parent 51)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 3 init 1) (exp (gen) x-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))) (recv n))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))))+ (label 95)+ (parent 51)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (x-1 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-1 y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-1))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w y)))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 0) (2 0)))+ (absent (y (exp (gen) (mul x w x-1))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1 y)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-1 y)))+ (send (enc n (exp (gen) (mul x w x-1 y)))) (recv n))+ ((recv (exp (gen) (mul x w x-1))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-1 y)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w x-1))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul w y)))+ (send (cat (exp (gen) x-1) (mul w y)))) ((send (exp (gen) x-1))))+ (label 96)+ (parent 51)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) (mul x w))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 97)+ (parent 51)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x x-0 expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))) (recv n))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w y))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))))+ (label 98)+ (parent 51)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y h) (y-0 (exp (gen) (mul x w))))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y-0) (w-0 (mul x (rec y) w)) (y-2 y)+ (w-1 (mul w y-0)) (y-3 y-0) (w (mul w y-0))) (gen) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (gen) (mul w y-0))) (send (cat (gen) (mul w y-0)))))+ (label 99)+ (parent 53)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x x))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y h) (y-0 (exp (gen) (mul w x x))))+ (precur (4 0) (2 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y-0)))+ (send (enc n (exp (gen) (mul w x x y-0)))) (recv n))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w x x y-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul (rec y) w x x)))+ (send (cat (exp (gen) y) (mul (rec y) w x x))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul w y-0)))+ (send (cat (exp (gen) x) (mul w y-0)))))+ (label 100)+ (parent 53)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (x-0 y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w y-0)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 0) (2 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y-0)))+ (send (enc n (exp (gen) (mul x w x-0 y-0)))) (recv n))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w x-0 y-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w x-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul w y-0)))+ (send (cat (exp (gen) x-0) (mul w y-0))))+ ((send (exp (gen) x-0))))+ (label 101)+ (parent 53)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y-0 (exp (gen) (mul x w))) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))+ (label 102)+ (parent 53)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 3 resp 2) (exp (gen) y-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))) (recv n))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0)))))+ (label 103)+ (parent 53)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y expn) (w expr) (y-0 y-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0 y-1))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y-0))) (y y-1))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w y-1)))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (2 0)))+ (absent (y-0 h-0) (y h) (y-1 (exp (gen) (mul x w y-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 y-1)))+ (send (enc n (exp (gen) (mul x w y-0 y-1)))) (recv n))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) y-1))+ (recv (enc n (exp (gen) (mul x w y-0 y-1)))) (send n))+ ((recv (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w y-1)))+ (send (cat (exp (gen) y-0) (mul w y-1))))+ ((recv h-0) (send (exp (gen) y-0))))+ (label 104)+ (parent 53)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (rec x)))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (0 1))+ ((3 1) (2 0)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (2 0))+ (operation nonce-test (added-listener x) (rec x) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x))))+ ((recv x) (send x)))+ (label 105)+ (parent 54)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (0 1))+ ((3 1) (2 0)))+ (precur (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul (rec x) (rec x)) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 106)+ (parent 55)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (rec x)))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 0) (1 0))+ ((2 0) (3 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (precur (3 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (rec x)))+ (send (cat (exp (gen) x-0) (rec x)))) ((recv x) (send x)))+ (label 107)+ (parent 60)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((2 1) (3 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y h))+ (precur (3 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))+ (label 108)+ (parent 66)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) x)) (x x))+ (deflistener (exp (gen) (mul x x)))+ (deflistener (cat (gen) (mul x x)))+ (deflistener x)+ (precedes ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (2 0)))+ (precur (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x x) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) x))+ (send (enc n (exp (gen) (mul x x)))) (recv n))+ ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))+ ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x))))+ ((recv x) (send x)))+ (label 109)+ (parent 69)+ (unrealized (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test (contracted (x-0 x) (w-0 (mul x w)) (w-1 w))+ (gen) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (gen) w)) (send (cat (gen) w))))+ (label 110)+ (parent 72)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x))) (x x))+ (deflistener (exp (gen) (mul w x x)))+ (deflistener (cat (gen) (mul w x x)))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (precur (3 0) (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x)))+ (send (enc n (exp (gen) (mul w x x)))) (recv n))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) (mul w x x))))+ ((recv (cat (gen) (mul w x x))) (send (cat (gen) (mul w x x))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+ (label 111)+ (parent 72)+ (unrealized (1 0) (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)) ((4 0) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul x w x-0)))) (recv n))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))+ ((recv (cat (gen) (mul x w x-0))) (send (cat (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0))))+ (label 112)+ (parent 72)+ (unrealized (1 0) (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) w))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)) ((4 1) (3 0)))+ (absent (y h))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))) (recv n))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (gen) (mul x w y))) (send (cat (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv h) (send (exp (gen) y))))+ (label 113)+ (parent 72)+ (unrealized (1 0) (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization deleted (1 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul w x)))) (recv n)))+ (label 114)+ (parent 73)+ (unrealized)+ (shape)+ (maps ((0) ((x x) (h (exp (gen) w)) (n n))))+ (origs (n (0 2))))++(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w-0 (mul x (rec x-0) w)) (x-2 x-0) (w-1 w))+ (gen) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) w)) (send (cat (gen) w))))+ (label 115)+ (parent 79)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x-0))+ (deflistener (exp (gen) (mul w x-0 x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) w))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-1) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul w x-0 x-0)))) (recv n))+ ((recv (exp (gen) (mul w x-0 x-0)))+ (send (exp (gen) (mul w x-0 x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w x-0 x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w))))+ (label 116)+ (parent 79)+ (unrealized (1 0) (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) w))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (displaced 5 3 init 1) (exp (gen) x-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul x w x-0)))) (recv n))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w))))+ (label 117)+ (parent 79)+ (unrealized (1 0) (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-1))) (x x))+ (deflistener (exp (gen) (mul x w x-1)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) w))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-1)))+ (send (enc n (exp (gen) (mul x w x-1)))) (recv n))+ ((recv (exp (gen) (mul x w x-1))) (send (exp (gen) (mul x w x-1))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w x-1))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) w)) (send (cat (exp (gen) x-1) w)))+ ((send (exp (gen) x-1))))+ (label 118)+ (parent 79)+ (unrealized (1 0) (2 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x x-0 expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) w))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))) (recv n))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w y))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv h) (send (exp (gen) y))))+ (label 119)+ (parent 79)+ (unrealized (1 0) (2 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) w))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w-0 (mul x (rec y) w)) (y-0 y) (w-1 w)) (gen)+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (gen) w)) (send (cat (gen) w))))+ (label 120)+ (parent 85)+ (unrealized (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x))) (x x))+ (deflistener (exp (gen) (mul w x x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x)))+ (send (enc n (exp (gen) (mul w x x)))) (recv n))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) (mul w x x))))+ ((recv (cat (exp (gen) y) (mul (rec y) w x x)))+ (send (cat (exp (gen) y) (mul (rec y) w x x))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+ (label 121)+ (parent 85)+ (unrealized (1 0) (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) w))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul x w x-0)))) (recv n))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w x-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((send (exp (gen) x-0))))+ (label 122)+ (parent 85)+ (unrealized (1 0) (2 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) w))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (displaced 5 3 resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))) (recv n))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+ (label 123)+ (parent 85)+ (unrealized (1 0) (2 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (deflistener (exp (gen) (mul x w y-0)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) w))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (y-0 h-0) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))) (recv n))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) (mul x w y-0))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))+ ((recv h-0) (send (exp (gen) y-0))))+ (label 124)+ (parent 85)+ (unrealized (1 0) (2 0))+ (comment "4 in cohort - 4 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y (exp (gen) (mul x w))))+ (uniq-gen x y)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))) (send n))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv y) (send y)))+ (label 125)+ (parent 87)+ (unrealized (2 0) (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (w expr) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x x))) (y y))+ (deflistener (cat (gen) (mul w x x)))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y (exp (gen) (mul w x x))))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y)))+ (send (enc n (exp (gen) (mul w x x y)))) (recv n))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x x y)))) (send n))+ ((recv (cat (gen) (mul w x x))) (send (cat (gen) (mul w x x))))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+ (label 126)+ (parent 88)+ (unrealized (1 0) (2 0) (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 0) (2 0)) ((5 1) (3 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (precur (3 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))) (recv n))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))) (send n))+ ((recv (cat (gen) (mul x w x-0))) (send (cat (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0)))+ ((recv y) (send y)))+ (label 127)+ (parent 89)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (y (gen)))+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w (rec x))) (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))+ (send n)) ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))))+ (label 128)+ (parent 90)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (w expr) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)))+ (absent (x w) (y (exp (gen) w)))+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w) w (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))) (send n))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))))+ (label 129)+ (parent 90)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) w))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (2 0)))+ (absent (y (exp (gen) (mul x w))))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))) (send n))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv x) (send x)))+ (label 130)+ (parent 90)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (2 0)) ((5 1) (3 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (precur (3 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))) (recv n))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))) (send n))+ ((recv (cat (gen) (mul x w y))) (send (cat (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))) ((recv y-0) (send y-0)))+ (label 131)+ (parent 91)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y w))) (x x))+ (deflistener (cat (exp (gen) x) w))+ (precedes ((0 0) (1 0)))+ (precur (1 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation generalization forgot y)+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y w)))+ (send (enc n (exp (gen) (mul y w x)))) (recv n))+ ((recv (cat (exp (gen) x) w))))+ (label 132)+ (parent 92)+ (seen 114)+ (unrealized)+ (comment "1 in cohort - 0 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul x w))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv y) (send y)))+ (label 133)+ (parent 93)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x-0))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x-0 x-0))) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul w x-0 x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul w x-0 x-0 y)))) (recv n))+ ((recv (exp (gen) (mul w x-0 x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w x-0 x-0 y)))) (send n))+ ((recv (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w x-0 x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((recv y) (send y)))+ (label 134)+ (parent 94)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (exp (gen) (mul x w x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))) (recv n))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-0 y)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((recv y) (send y)))+ (label 135)+ (parent 95)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (x-1 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-1 y))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-1))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w y)))+ (defstrand init 1 (x x-1))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((6 1) (4 0)))+ (absent (y (exp (gen) (mul x w x-1))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-1 y)))+ (send (enc n (exp (gen) (mul x w x-1 y)))) (recv n))+ ((recv (exp (gen) (mul x w x-1))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w x-1 y)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w x-1))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul w y)))+ (send (cat (exp (gen) x-1) (mul w y)))) ((send (exp (gen) x-1)))+ ((recv y) (send y)))+ (label 136)+ (parent 96)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (y x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x) x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) x-0)))+ (precur (4 0) (2 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x) x-0)))+ (send (enc n (exp (gen) (mul y x-0)))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y x-0)))) (send n))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0)))+ (send (cat (exp (gen) y) (mul (rec x) x-0)))))+ (label 137)+ (parent 97)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w (rec x-0))))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (x-0 (mul (rec x) w)) (y (exp (gen) w)))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w))+ (mul (rec x) w) (2 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w y (rec x-0))))+ (send (enc n (exp (gen) (mul w y)))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))) (send n))+ ((recv (cat (exp (gen) x) (mul (rec x) w)))+ (send (cat (exp (gen) x) (mul (rec x) w)))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul w (rec x-0))))+ (send (cat (exp (gen) y) (mul w (rec x-0))))))+ (label 138)+ (parent 97)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w x-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))+ (absent (x-0 (mul x w)) (y (exp (gen) (mul x w x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w)) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y x-0)))+ (send (enc n (exp (gen) (mul x w y x-0)))) (recv n))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y x-0)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w x-0)))+ (send (cat (exp (gen) y) (mul w x-0)))))+ (label 139)+ (parent 97)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x x-0 expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((6 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))) (recv n))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w y)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w y))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h) (send (exp (gen) y))) ((recv y-0) (send y-0)))+ (label 140)+ (parent 98)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w))))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))+ (send (enc n (exp (gen) (mul x w y-0)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (gen) (mul w y-0))) (send (cat (gen) (mul w y-0))))+ ((recv y-0) (send y-0)))+ (label 141)+ (parent 99)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul w x x))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul w x x))))+ (precur (4 0) (2 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y-0)))+ (send (enc n (exp (gen) (mul w x x y-0)))) (recv n))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w x x y-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul (rec y) w x x)))+ (send (cat (exp (gen) y) (mul (rec y) w x x))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul w y-0)))+ (send (cat (exp (gen) x) (mul w y-0)))) ((recv y-0) (send y-0)))+ (label 142)+ (parent 100)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (x-0 y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w y-0)))+ (defstrand init 1 (x x-0))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((6 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0 y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y-0)))+ (send (enc n (exp (gen) (mul x w x-0 y-0)))) (recv n))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w x-0 y-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul x (rec y) w x-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w x-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul w y-0)))+ (send (cat (exp (gen) x-0) (mul w y-0)))) ((send (exp (gen) x-0)))+ ((recv y-0) (send y-0)))+ (label 143)+ (parent 101)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (y x y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x) y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))+ (deflistener (cat (exp (gen) y-0) (one)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y (exp (gen) y-0)) (y-0 h))+ (precur (4 0) (2 0))+ (uniq-gen y x y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x) y-0)))+ (send (enc n (exp (gen) (mul y y-0)))) (recv n))+ ((recv (exp (gen) y-0)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul y y-0)))) (send n))+ ((recv (cat (exp (gen) y-0) (one)))+ (send (cat (exp (gen) y-0) (one))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) y-0)))+ (send (cat (exp (gen) y) (mul (rec x) y-0)))))+ (label 144)+ (parent 102)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (x (mul (rec y) w)) (y-0 (exp (gen) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w))+ (mul (rec y) w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul (rec y) w)))+ (send (cat (exp (gen) y) (mul (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x))))))+ (label 145)+ (parent 102)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) (mul x w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))+ (absent (y-0 (mul x w)) (y (exp (gen) (mul x w y-0))) (y-0 h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w)) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))) (recv n))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y y-0)))) (send n))+ ((recv (cat (exp (gen) y-0) (mul x w)))+ (send (cat (exp (gen) y-0) (mul x w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0)))))+ (label 146)+ (parent 102)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y))) (y y-0))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (5 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y h) (y-0 (exp (gen) (mul x w y))))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))) (recv n))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul x w y y-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0)))) ((recv y-0) (send y-0)))+ (label 147)+ (parent 103)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y expn) (w expr) (y-0 y-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0 y-1))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y-0))) (y y-1))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w y-1)))+ (defstrand resp 2 (h h-0) (y y-0))+ (deflistener y-1)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (6 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((6 1) (4 0)))+ (absent (y-0 h-0) (y h) (y-1 (exp (gen) (mul x w y-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0 y-1)+ (uniq-orig n)+ (operation nonce-test (added-listener y-1) (mul w y-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 y-1)))+ (send (enc n (exp (gen) (mul x w y-0 y-1)))) (recv n))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) y-1))+ (recv (enc n (exp (gen) (mul x w y-0 y-1)))) (send n))+ ((recv (cat (exp (gen) y) (mul x (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul x (rec y) w y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w y-1)))+ (send (cat (exp (gen) y-0) (mul w y-1))))+ ((recv h-0) (send (exp (gen) y-0))) ((recv y-1) (send y-1)))+ (label 148)+ (parent 104)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (gen) (rec x)))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test (contracted (x-0 x) (w (rec x))) (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x)))))+ (label 149)+ (parent 110)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (gen) (mul w (rec x))))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (absent (x w))+ (operation nonce-test (added-absence x w) w (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (gen) (mul w (rec x))))+ (send (cat (gen) (mul w (rec x))))))+ (label 150)+ (parent 110)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (gen) w))+ (deflistener x)+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test (added-listener x) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (gen) w)) (send (cat (gen) w))) ((recv x) (send x)))+ (label 151)+ (parent 110)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (precur (3 0) (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (contracted (w (mul (rec x) (rec x))) (x-0 x))+ (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x))))))+ (label 152)+ (parent 111)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)))+ (precur (3 0) (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (absent (x w))+ (operation nonce-test (added-absence x w) w (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w (rec x) (rec x))))))+ (label 153)+ (parent 111)+ (unrealized (0 1) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x))) (x x))+ (deflistener (exp (gen) (mul w x x)))+ (deflistener (cat (gen) (mul w x x)))+ (deflistener (cat (exp (gen) x) w))+ (deflistener x)+ (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)))+ (precur (3 0) (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w x x) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x)))+ (send (enc n (exp (gen) (mul w x x)))) (recv n))+ ((recv (exp (gen) (mul w x x))) (send (exp (gen) (mul w x x))))+ ((recv (cat (gen) (mul w x x))) (send (cat (gen) (mul w x x))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w)))+ ((recv x) (send x)))+ (label 154)+ (parent 111)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)) ((4 0) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w (mul (rec x) (rec x-0))) (x-2 x-0)) (one)+ (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 155)+ (parent 112)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (defstrand init 1 (x x))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)) ((4 0) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul w x)))+ (operation nonce-test (added-absence x-0 (mul w x)) (mul w x) (2 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x (rec x-0))))+ (send (enc n (exp (gen) (mul w x)))) (recv n))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (gen) (mul w x))) (send (cat (gen) (mul w x))))+ ((recv (cat (exp (gen) x) (mul w (rec x-0))))+ (send (cat (exp (gen) x) (mul w (rec x-0)))))+ ((send (exp (gen) x))))+ (label 156)+ (parent 112)+ (unrealized (0 1) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)) ((4 0) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul x w)))+ (operation nonce-test (added-absence x-0 (mul x w)) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 157)+ (parent 112)+ (unrealized (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) y) (mul (rec x) (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)) ((4 1) (3 0)))+ (absent (y h))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (w (mul (rec x) (rec y))) (y-0 y)) (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) y) (mul (rec x) (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) (rec y)))))+ ((recv h) (send (exp (gen) y))))+ (label 158)+ (parent 113)+ (unrealized (0 1) (3 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (w expr) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)) ((4 1) (3 0)))+ (absent (x (mul w y)) (y h))+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul w y)) (mul w y) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))) (recv n))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x)))))+ ((recv h) (send (exp (gen) y))))+ (label 159)+ (parent 113)+ (unrealized (0 1) (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul w (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)) ((4 1) (3 0)))+ (absent (y (mul x w)) (y h))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w)) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul w (rec y))))+ (send (cat (exp (gen) y) (mul w (rec y)))))+ ((recv h) (send (exp (gen) y))))+ (label 160)+ (parent 113)+ (unrealized (2 0) (3 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul (rec x) x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul (rec x) x-0)))+ (send (cat (gen) (mul (rec x) x-0)))))+ (label 161)+ (parent 115)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (gen) (mul w (rec x-0))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul (rec x) w)))+ (operation nonce-test (added-absence x-0 (mul (rec x) w))+ (mul (rec x) w) (2 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w (rec x-0))))+ (send (enc n (exp (gen) w))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) x) (mul (rec x) w)))+ (send (cat (exp (gen) x) (mul (rec x) w)))) ((send (exp (gen) x)))+ ((recv (cat (gen) (mul w (rec x-0))))+ (send (cat (gen) (mul w (rec x-0))))))+ (label 162)+ (parent 115)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul x w)))+ (operation nonce-test (added-absence x-0 (mul x w)) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul x w x-0)))) (recv n))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul w x-0))) (send (cat (gen) (mul w x-0)))))+ (label 163)+ (parent 115)+ (unrealized (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (w (mul x (rec x-0) (rec x-0))) (x-2 x-0)) (one)+ (2 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))) (recv n))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))))+ (label 164)+ (parent 116)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x x-0))) (x x))+ (deflistener (exp (gen) (mul w x x x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w x x)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x) (mul w x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul w x x)))+ (operation nonce-test (added-absence x-0 (mul w x x)) (mul w x x)+ (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x x-0)))+ (send (enc n (exp (gen) (mul w x x x-0)))) (recv n))+ ((recv (exp (gen) (mul w x x x-0)))+ (send (exp (gen) (mul w x x x-0))))+ ((recv (cat (exp (gen) x-0) (mul w x x)))+ (send (cat (exp (gen) x-0) (mul w x x)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x) (mul w x-0)))+ (send (cat (exp (gen) x) (mul w x-0)))))+ (label 165)+ (parent 116)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul (rec x) w)))+ (operation nonce-test (added-absence x-0 (mul (rec x) w))+ (mul (rec x) w) (2 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w (rec x-0))))+ (send (enc n (exp (gen) w))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) x) (mul (rec x) w)))+ (send (cat (exp (gen) x) (mul (rec x) w)))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0))))))+ (label 166)+ (parent 116)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (rec x-0)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (contracted (x-1 x-0) (w (rec x-0))) (one)+ (2 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))) (recv n))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (rec x-0)))+ (send (cat (exp (gen) x) (rec x-0)))))+ (label 167)+ (parent 117)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) w))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 w))+ (operation nonce-test (added-absence x-0 w) w (2 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x (rec x-0))))+ (send (enc n (exp (gen) (mul w x)))) (recv n))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w)))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (mul w (rec x-0))))+ (send (cat (exp (gen) x) (mul w (rec x-0))))))+ (label 168)+ (parent 117)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-0) w))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul x w x-0)))) (recv n))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+ ((recv x) (send x)))+ (label 169)+ (parent 117)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-2 x) (x-3 x-0) (w (mul (rec x) x-0 (rec x-1)))+ (x-4 x-1)) (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 170)+ (parent 118)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 (rec x-1)))) (x x-1))+ (deflistener (exp (gen) (mul w x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-1))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (absent (x-1 (mul (rec x) w x-0)))+ (operation nonce-test (added-absence x-1 (mul (rec x) w x-0))+ (mul (rec x) w x-0) (2 0))+ (traces+ ((send (exp (gen) x-1)) (recv (exp (gen) (mul w x-0 (rec x-1))))+ (send (enc n (exp (gen) (mul w x-0)))) (recv n))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) (mul w x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-1))))+ (send (cat (exp (gen) x-0) (mul w (rec x-1)))))+ ((send (exp (gen) x-0))))+ (label 171)+ (parent 118)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 x-1))) (x x))+ (deflistener (exp (gen) (mul x w x-0 x-1)))+ (deflistener (cat (exp (gen) x-1) (mul x w x-0)))+ (defstrand init 1 (x x-1))+ (deflistener (cat (exp (gen) x-0) (mul w x-1)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (absent (x-1 (mul x w x-0)))+ (operation nonce-test (added-absence x-1 (mul x w x-0)) (mul x w x-0)+ (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 x-1)))+ (send (enc n (exp (gen) (mul x w x-0 x-1)))) (recv n))+ ((recv (exp (gen) (mul x w x-0 x-1)))+ (send (exp (gen) (mul x w x-0 x-1))))+ ((recv (cat (exp (gen) x-1) (mul x w x-0)))+ (send (cat (exp (gen) x-1) (mul x w x-0))))+ ((send (exp (gen) x-1)))+ ((recv (cat (exp (gen) x-0) (mul w x-1)))+ (send (cat (exp (gen) x-0) (mul w x-1))))+ ((send (exp (gen) x-0))))+ (label 172)+ (parent 118)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w (rec x-1))))+ (defstrand init 1 (x x-1))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (absent (x-1 (mul x (rec x-0) w)))+ (operation nonce-test (added-absence x-1 (mul x (rec x-0) w))+ (mul x (rec x-0) w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul w (rec x-1))))+ (send (cat (exp (gen) x-1) (mul w (rec x-1)))))+ ((send (exp (gen) x-1))))+ (label 173)+ (parent 118)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))+ (deflistener (exp (gen) x-0))+ (deflistener (cat (exp (gen) x-0) (one)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0 (rec y))) (y-0 y))+ (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))+ (send (enc n (exp (gen) x-0))) (recv n))+ ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-0) (one)))+ (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))+ (send (cat (exp (gen) y) (mul (rec x) x-0 (rec y)))))+ ((recv h) (send (exp (gen) y))))+ (label 174)+ (parent 119)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w y)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w (rec x-0))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (x-0 (mul (rec x) w y)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec x) w y))+ (mul (rec x) w y) (2 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w y (rec x-0))))+ (send (enc n (exp (gen) (mul w y)))) (recv n))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) x) (mul (rec x) w y)))+ (send (cat (exp (gen) x) (mul (rec x) w y))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul w (rec x-0))))+ (send (cat (exp (gen) y) (mul w (rec x-0)))))+ ((recv h) (send (exp (gen) y))))+ (label 175)+ (parent 119)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y x-0))) (x x))+ (deflistener (exp (gen) (mul x w y x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w x-0)))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (x-0 (mul x w y)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x w y)) (mul x w y)+ (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y x-0)))+ (send (enc n (exp (gen) (mul x w y x-0)))) (recv n))+ ((recv (exp (gen) (mul x w y x-0)))+ (send (exp (gen) (mul x w y x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w y)))+ (send (cat (exp (gen) x-0) (mul x w y)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w x-0)))+ (send (cat (exp (gen) y) (mul w x-0))))+ ((recv h) (send (exp (gen) y))))+ (label 176)+ (parent 119)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x x-0 expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w (rec y))))+ (defstrand resp 2 (h h) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (y (mul x (rec x-0) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x (rec x-0) w))+ (mul x (rec x-0) w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w (rec y))))+ (send (cat (exp (gen) y) (mul w (rec y)))))+ ((recv h) (send (exp (gen) y))))+ (label 177)+ (parent 119)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul (rec x) y)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul (rec x) y)))+ (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (gen) (mul (rec x) y)))+ (send (cat (gen) (mul (rec x) y)))))+ (label 178)+ (parent 120)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w (rec x))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (x (mul (rec y) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w))+ (mul (rec y) w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) y) (mul (rec y) w)))+ (send (cat (exp (gen) y) (mul (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (gen) (mul w (rec x))))+ (send (cat (gen) (mul w (rec x))))))+ (label 179)+ (parent 120)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y (mul x w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w)) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))) (recv n))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+ (label 180)+ (parent 120)+ (unrealized (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test+ (contracted (y-0 y) (w (mul y (rec x) (rec x))) (x-0 x)) (one)+ (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul y (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul y (rec x) (rec x))))))+ (label 181)+ (parent 121)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (w expr) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x y))) (x x))+ (deflistener (exp (gen) (mul w x x y)))+ (deflistener (cat (exp (gen) y) (mul w x x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y (mul w x x)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul w x x)) (mul w x x) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y)))+ (send (enc n (exp (gen) (mul w x x y)))) (recv n))+ ((recv (exp (gen) (mul w x x y))) (send (exp (gen) (mul w x x y))))+ ((recv (cat (exp (gen) y) (mul w x x)))+ (send (cat (exp (gen) y) (mul w x x))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))))+ (label 182)+ (parent 121)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (x (mul (rec y) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w))+ (mul (rec y) w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) y) (mul (rec y) w)))+ (send (cat (exp (gen) y) (mul (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w (rec x) (rec x))))))+ (label 183)+ (parent 121)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-1 x) (y-0 y) (w (mul (rec x) y (rec x-0))) (x-2 x-0))+ (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))+ (send (cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 184)+ (parent 122)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (defstrand init 1 (x x))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (absent (x-0 (mul (rec y) w x)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul (rec y) w x))+ (mul (rec y) w x) (2 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x (rec x-0))))+ (send (enc n (exp (gen) (mul w x)))) (recv n))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (exp (gen) y) (mul (rec y) w x)))+ (send (cat (exp (gen) y) (mul (rec y) w x))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul w (rec x-0))))+ (send (cat (exp (gen) x) (mul w (rec x-0)))))+ ((send (exp (gen) x))))+ (label 185)+ (parent 122)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (deflistener (exp (gen) (mul x w x-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (absent (y (mul x w x-0)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-absence y (mul x w x-0)) (mul x w x-0)+ (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))) (recv n))+ ((recv (exp (gen) (mul x w x-0 y)))+ (send (exp (gen) (mul x w x-0 y))))+ ((recv (cat (exp (gen) y) (mul x w x-0)))+ (send (cat (exp (gen) y) (mul x w x-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0))))+ (label 186)+ (parent 122)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0))))+ (defstrand init 1 (x x-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)))+ (absent (x-0 (mul x (rec y) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-absence x-0 (mul x (rec y) w))+ (mul x (rec y) w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w (rec x-0)))))+ ((send (exp (gen) x-0))))+ (label 187)+ (parent 122)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (contracted (x-0 x) (w (rec x))) (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))))+ (label 188)+ (parent 123)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (w expr) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))+ (absent (x w) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-absence x w) w (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))) (recv n))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))))+ (label 189)+ (parent 123)+ (unrealized (0 1) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) w))+ (deflistener x)+ (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul x w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))) (recv n))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv x) (send x)))+ (label 190)+ (parent 123)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (y-0 h-0) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test+ (contracted (x-0 x) (y-1 y) (w (mul (rec x) y (rec y-0))) (y-2 y-0))+ (one) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))+ (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))))+ ((recv h-0) (send (exp (gen) y-0))))+ (label 191)+ (parent 124)+ (unrealized (0 1) (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h h-0 base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (x (mul (rec y) w y-0)) (y-0 h-0) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-absence x (mul (rec y) w y-0))+ (mul (rec y) w y-0) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))) (recv n))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y) (mul (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul (rec y) w y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x)))))+ ((recv h-0) (send (exp (gen) y-0))))+ (label 192)+ (parent 124)+ (unrealized (0 1) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h h-0 base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (deflistener (exp (gen) (mul x w y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w y)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h-0) (y y))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (y-0 (mul x w y)) (y h-0) (y-0 h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x w y)) (mul x w y)+ (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))) (recv n))+ ((recv (exp (gen) (mul x w y y-0)))+ (send (exp (gen) (mul x w y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w y)))+ (send (cat (exp (gen) y-0) (mul x w y))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h-0) (send (exp (gen) y))))+ (label 193)+ (parent 124)+ (unrealized (0 1) (1 0) (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec y-0))))+ (defstrand resp 2 (h h-0) (y y-0))+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)))+ (absent (y-0 (mul x (rec y) w)) (y-0 h-0) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-absence y-0 (mul x (rec y) w))+ (mul x (rec y) w) (2 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w (rec y-0)))))+ ((recv h-0) (send (exp (gen) y-0))))+ (label 194)+ (parent 124)+ (unrealized (2 0) (4 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton plaindh+ (vars (n text) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (gen)) (y y))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 3) (0 3)) ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (y (gen)))+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))+ (send n)) ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))+ (label 195)+ (parent 128)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (w expr) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0))+ ((1 3) (0 3)) ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))+ (absent (x w) (y (exp (gen) w)))+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))) (send n))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))) ((recv x) (send x)))+ (label 196)+ (parent 129)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (4 0))+ ((1 3) (0 3)) ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1))+ ((5 1) (4 0)))+ (absent (x-0 (mul (rec x) w)) (y (exp (gen) w)))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w y (rec x-0))))+ (send (enc n (exp (gen) (mul w y)))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul w y)))) (send n))+ ((recv (cat (exp (gen) x) (mul (rec x) w)))+ (send (cat (exp (gen) x) (mul (rec x) w)))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul w (rec x-0))))+ (send (cat (exp (gen) y) (mul w (rec x-0)))))+ ((recv x-0) (send x-0)))+ (label 197)+ (parent 138)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y x-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w x-0))) (y y))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w x-0)))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 1))+ ((5 1) (4 0)))+ (absent (x-0 (mul x w)) (y (exp (gen) (mul x w x-0))))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y x-0)))+ (send (enc n (exp (gen) (mul x w y x-0)))) (recv n))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y x-0)))) (send n))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w x-0)))+ (send (cat (exp (gen) y) (mul w x-0)))) ((recv x-0) (send x-0)))+ (label 198)+ (parent 139)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) w)) (y y-0))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (4 0))+ ((1 3) (0 3)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1))+ ((5 1) (4 0)))+ (absent (x (mul (rec y) w)) (y-0 (exp (gen) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) y-0))+ (recv (enc n (exp (gen) (mul w y-0)))) (send n))+ ((recv (cat (exp (gen) y) (mul (rec y) w)))+ (send (cat (exp (gen) y) (mul (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x))))) ((recv x) (send x)))+ (label 199)+ (parent 145)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (defstrand resp 4 (n n) (h (exp (gen) (mul x w y-0))) (y y))+ (deflistener (cat (exp (gen) y-0) (mul x w)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))+ ((2 1) (1 0)) ((3 1) (2 0)) ((3 1) (5 0)) ((4 1) (0 1))+ ((5 1) (4 0)))+ (absent (y-0 (mul x w)) (y (exp (gen) (mul x w y-0))) (y-0 h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))) (recv n))+ ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) y))+ (recv (enc n (exp (gen) (mul x w y y-0)))) (send n))+ ((recv (cat (exp (gen) y-0) (mul x w)))+ (send (cat (exp (gen) y-0) (mul x w))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0)))) ((recv y-0) (send y-0)))+ (label 200)+ (parent 146)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (gen) (rec x)))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (operation nonce-test (added-listener x) (rec x) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x))))+ ((recv x) (send x)))+ (label 201)+ (parent 149)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (gen) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (uniq-gen x)+ (uniq-orig n)+ (precur (3 0) (2 0))+ (absent (x w))+ (operation nonce-test (added-listener x) (mul w (rec x)) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (gen) (mul w (rec x))))+ (send (cat (gen) (mul w (rec x))))) ((recv x) (send x)))+ (label 202)+ (parent 150)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))+ (deflistener (gen))+ (deflistener (cat (gen) (one)))+ (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul (rec x) (rec x)) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (rec x)))+ (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))+ ((recv (cat (gen) (one))) (send (cat (gen) (one))))+ ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 203)+ (parent 152)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (gen) w))+ (deflistener (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x)+ (uniq-orig n)+ (absent (x w))+ (operation nonce-test (added-listener x) (mul w (rec x) (rec x))+ (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (gen) w)) (send (cat (gen) w)))+ ((recv (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 204)+ (parent 153)+ (unrealized (4 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (defstrand init 1 (x x))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)) ((4 0) (3 0)) ((5 1) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul w x)))+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (3 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x (rec x-0))))+ (send (enc n (exp (gen) (mul w x)))) (recv n))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (gen) (mul w x))) (send (cat (gen) (mul w x))))+ ((recv (cat (exp (gen) x) (mul w (rec x-0))))+ (send (cat (exp (gen) x) (mul w (rec x-0)))))+ ((send (exp (gen) x))) ((recv x-0) (send x-0)))+ (label 205)+ (parent 156)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0))))+ (defstrand init 1 (x x-0))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 0) (2 0)) ((4 0) (5 0)) ((5 1) (3 0)))+ (precur (3 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul x w)))+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w (rec x-0)))))+ ((send (exp (gen) x-0))) ((recv x-0) (send x-0)))+ (label 206)+ (parent 157)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (w expr) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (defstrand resp 2 (h h) (y y))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)) ((4 1) (3 0)) ((5 1) (3 0)))+ (absent (x (mul w y)) (y h))+ (precur (3 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))) (recv n))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x)))))+ ((recv h) (send (exp (gen) y))) ((recv x) (send x)))+ (label 207)+ (parent 159)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul w (rec y))))+ (defstrand resp 2 (h h) (y y))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (0 1)) ((4 1) (2 0)) ((4 1) (5 0)) ((5 1) (3 0)))+ (absent (y (mul x w)) (y h))+ (precur (3 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w (rec y)) (3 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul w (rec y))))+ (send (cat (exp (gen) y) (mul w (rec y)))))+ ((recv h) (send (exp (gen) y))) ((recv y) (send y)))+ (label 208)+ (parent 160)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (gen) (mul w (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul (rec x) w)))+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w (rec x-0))))+ (send (enc n (exp (gen) w))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) x) (mul (rec x) w)))+ (send (cat (exp (gen) x) (mul (rec x) w)))) ((send (exp (gen) x)))+ ((recv (cat (gen) (mul w (rec x-0))))+ (send (cat (gen) (mul w (rec x-0))))) ((recv x-0) (send x-0)))+ (label 209)+ (parent 162)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))+ (deflistener (exp (gen) (mul x w x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (gen) (mul w x-0)))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul x w)))+ (operation nonce-test (added-listener x-0) (mul w x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))+ (send (enc n (exp (gen) (mul x w x-0)))) (recv n))+ ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w)))+ (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))+ ((recv (cat (gen) (mul w x-0))) (send (cat (gen) (mul w x-0))))+ ((recv x-0) (send x-0)))+ (label 210)+ (parent 163)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x x-0))) (x x))+ (deflistener (exp (gen) (mul w x x x-0)))+ (deflistener (cat (exp (gen) x-0) (mul w x x)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x) (mul w x-0)))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul w x x)))+ (operation nonce-test (added-listener x-0) (mul w x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x x-0)))+ (send (enc n (exp (gen) (mul w x x x-0)))) (recv n))+ ((recv (exp (gen) (mul w x x x-0)))+ (send (exp (gen) (mul w x x x-0))))+ ((recv (cat (exp (gen) x-0) (mul w x x)))+ (send (cat (exp (gen) x-0) (mul w x x)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x) (mul w x-0)))+ (send (cat (exp (gen) x) (mul w x-0)))) ((recv x-0) (send x-0)))+ (label 211)+ (parent 165)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x-0)))) (x x-0))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) x) (mul (rec x) w)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 (mul (rec x) w)))+ (operation nonce-test (added-listener x-0) (mul w (rec x-0) (rec x-0))+ (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w (rec x-0))))+ (send (enc n (exp (gen) w))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) x) (mul (rec x) w)))+ (send (cat (exp (gen) x) (mul (rec x) w)))) ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w (rec x-0) (rec x-0)))))+ ((recv x-0) (send x-0)))+ (label 212)+ (parent 166)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) x))+ (deflistener (cat (exp (gen) x) (one)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (rec x-0)))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (rec x-0) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))+ (send (enc n (exp (gen) x))) (recv n))+ ((recv (exp (gen) x)) (send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (rec x-0)))+ (send (cat (exp (gen) x) (rec x-0)))) ((recv x-0) (send x-0)))+ (label 213)+ (parent 167)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) x) w))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0)+ (uniq-orig n)+ (absent (x-0 w))+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x (rec x-0))))+ (send (enc n (exp (gen) (mul w x)))) (recv n))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w)))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x) (mul w (rec x-0))))+ (send (cat (exp (gen) x) (mul w (rec x-0)))))+ ((recv x-0) (send x-0)))+ (label 214)+ (parent 168)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 (rec x-1)))) (x x-1))+ (deflistener (exp (gen) (mul w x-0)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w x-0)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-1))))+ (defstrand init 1 (x x-0))+ (deflistener x-1)+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)) ((6 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (absent (x-1 (mul (rec x) w x-0)))+ (operation nonce-test (added-listener x-1) (mul w (rec x-1)) (4 0))+ (traces+ ((send (exp (gen) x-1)) (recv (exp (gen) (mul w x-0 (rec x-1))))+ (send (enc n (exp (gen) (mul w x-0)))) (recv n))+ ((recv (exp (gen) (mul w x-0))) (send (exp (gen) (mul w x-0))))+ ((recv (cat (exp (gen) x) (mul (rec x) w x-0)))+ (send (cat (exp (gen) x) (mul (rec x) w x-0))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-1))))+ (send (cat (exp (gen) x-0) (mul w (rec x-1)))))+ ((send (exp (gen) x-0))) ((recv x-1) (send x-1)))+ (label 215)+ (parent 171)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x expn) (w expr) (x-0 x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 x-1))) (x x))+ (deflistener (exp (gen) (mul x w x-0 x-1)))+ (deflistener (cat (exp (gen) x-1) (mul x w x-0)))+ (defstrand init 1 (x x-1))+ (deflistener (cat (exp (gen) x-0) (mul w x-1)))+ (defstrand init 1 (x x-0))+ (deflistener x-1)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)) ((6 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (absent (x-1 (mul x w x-0)))+ (operation nonce-test (added-listener x-1) (mul w x-1) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 x-1)))+ (send (enc n (exp (gen) (mul x w x-0 x-1)))) (recv n))+ ((recv (exp (gen) (mul x w x-0 x-1)))+ (send (exp (gen) (mul x w x-0 x-1))))+ ((recv (cat (exp (gen) x-1) (mul x w x-0)))+ (send (cat (exp (gen) x-1) (mul x w x-0))))+ ((send (exp (gen) x-1)))+ ((recv (cat (exp (gen) x-0) (mul w x-1)))+ (send (cat (exp (gen) x-0) (mul w x-1)))) ((send (exp (gen) x-0)))+ ((recv x-1) (send x-1)))+ (label 216)+ (parent 172)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (x x-0 expn) (w expr) (x-1 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) x-1) (mul w (rec x-1))))+ (defstrand init 1 (x x-1))+ (deflistener x-1)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (6 0)) ((6 1) (4 0)))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 x-1)+ (uniq-orig n)+ (absent (x-1 (mul x (rec x-0) w)))+ (operation nonce-test (added-listener x-1) (mul w (rec x-1)) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) x-1) (mul w (rec x-1))))+ (send (cat (exp (gen) x-1) (mul w (rec x-1)))))+ ((send (exp (gen) x-1))) ((recv x-1) (send x-1)))+ (label 217)+ (parent 173)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) x) (mul (rec x) w y)))+ (defstrand init 1 (x x))+ (deflistener (cat (exp (gen) y) (mul w (rec x-0))))+ (defstrand resp 2 (h h) (y y))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)) ((6 1) (4 0)))+ (absent (x-0 (mul (rec x) w y)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w y (rec x-0))))+ (send (enc n (exp (gen) (mul w y)))) (recv n))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) x) (mul (rec x) w y)))+ (send (cat (exp (gen) x) (mul (rec x) w y))))+ ((send (exp (gen) x)))+ ((recv (cat (exp (gen) y) (mul w (rec x-0))))+ (send (cat (exp (gen) y) (mul w (rec x-0)))))+ ((recv h) (send (exp (gen) y))) ((recv x-0) (send x-0)))+ (label 218)+ (parent 175)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y x-0))) (x x))+ (deflistener (exp (gen) (mul x w y x-0)))+ (deflistener (cat (exp (gen) x-0) (mul x w y)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)) ((6 1) (4 0)))+ (absent (x-0 (mul x w y)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w x-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y x-0)))+ (send (enc n (exp (gen) (mul x w y x-0)))) (recv n))+ ((recv (exp (gen) (mul x w y x-0)))+ (send (exp (gen) (mul x w y x-0))))+ ((recv (cat (exp (gen) x-0) (mul x w y)))+ (send (cat (exp (gen) x-0) (mul x w y)))) ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w x-0)))+ (send (cat (exp (gen) y) (mul w x-0))))+ ((recv h) (send (exp (gen) y))) ((recv x-0) (send x-0)))+ (label 219)+ (parent 176)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x x-0 expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (defstrand init 1 (x x-0))+ (deflistener (cat (exp (gen) y) (mul w (rec y))))+ (defstrand resp 2 (h h) (y y))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (6 0)) ((6 1) (4 0)))+ (absent (y (mul x (rec x-0) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w (rec y)) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))+ (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))+ ((send (exp (gen) x-0)))+ ((recv (cat (exp (gen) y) (mul w (rec y))))+ (send (cat (exp (gen) y) (mul w (rec y)))))+ ((recv h) (send (exp (gen) y))) ((recv y) (send y)))+ (label 220)+ (parent 177)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (x (mul (rec y) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) y) (mul (rec y) w)))+ (send (cat (exp (gen) y) (mul (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (gen) (mul w (rec x))))+ (send (cat (gen) (mul w (rec x))))) ((recv x) (send x)))+ (label 221)+ (parent 179)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))+ (deflistener (exp (gen) (mul x w y)))+ (deflistener (cat (exp (gen) y) (mul x w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (gen) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (5 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (mul x w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))+ (send (enc n (exp (gen) (mul x w y)))) (recv n))+ ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+ ((recv (cat (exp (gen) y) (mul x w)))+ (send (cat (exp (gen) y) (mul x w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+ ((recv y) (send y)))+ (label 222)+ (parent 180)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (w expr) (x y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x y))) (x x))+ (deflistener (exp (gen) (mul w x x y)))+ (deflistener (cat (exp (gen) y) (mul w x x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w y)))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (5 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y (mul w x x)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x y)))+ (send (enc n (exp (gen) (mul w x x y)))) (recv n))+ ((recv (exp (gen) (mul w x x y))) (send (exp (gen) (mul w x x y))))+ ((recv (cat (exp (gen) y) (mul w x x)))+ (send (cat (exp (gen) y) (mul w x x))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul w y)))+ (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+ (label 223)+ (parent 182)+ (unrealized (1 0) (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w (rec x)))) (x x))+ (deflistener (exp (gen) w))+ (deflistener (cat (exp (gen) y) (mul (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (x (mul (rec y) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x) (rec x))+ (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w (rec x))))+ (send (enc n (exp (gen) w))) (recv n))+ ((recv (exp (gen) w)) (send (exp (gen) w)))+ ((recv (cat (exp (gen) y) (mul (rec y) w)))+ (send (cat (exp (gen) y) (mul (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul w (rec x) (rec x))))+ (send (cat (exp (gen) x) (mul w (rec x) (rec x)))))+ ((recv x) (send x)))+ (label 224)+ (parent 183)+ (unrealized (2 0) (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (y expn) (w expr) (x x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x (rec x-0)))) (x x-0))+ (deflistener (exp (gen) (mul w x)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w x)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x) (mul w (rec x-0))))+ (defstrand init 1 (x x))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)) ((6 1) (4 0)))+ (absent (x-0 (mul (rec y) w x)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (4 0))+ (traces+ ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x (rec x-0))))+ (send (enc n (exp (gen) (mul w x)))) (recv n))+ ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))+ ((recv (cat (exp (gen) y) (mul (rec y) w x)))+ (send (cat (exp (gen) y) (mul (rec y) w x))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x) (mul w (rec x-0))))+ (send (cat (exp (gen) x) (mul w (rec x-0)))))+ ((send (exp (gen) x))) ((recv x-0) (send x-0)))+ (label 225)+ (parent 185)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x expn) (w expr) (x-0 y expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w x-0 y))) (x x))+ (deflistener (exp (gen) (mul x w x-0 y)))+ (deflistener (cat (exp (gen) y) (mul x w x-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w y)))+ (defstrand init 1 (x x-0))+ (deflistener y)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (6 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (4 0)) ((6 1) (4 0)))+ (absent (y (mul x w x-0)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x x-0 y)+ (uniq-orig n)+ (operation nonce-test (added-listener y) (mul w y) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0 y)))+ (send (enc n (exp (gen) (mul x w x-0 y)))) (recv n))+ ((recv (exp (gen) (mul x w x-0 y)))+ (send (exp (gen) (mul x w x-0 y))))+ ((recv (cat (exp (gen) y) (mul x w x-0)))+ (send (cat (exp (gen) y) (mul x w x-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul w y)))+ (send (cat (exp (gen) x-0) (mul w y)))) ((send (exp (gen) x-0)))+ ((recv y) (send y)))+ (label 226)+ (parent 186)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (x y expn) (w expr) (x-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) x-0) (mul w (rec x-0))))+ (defstrand init 1 (x x-0))+ (deflistener x-0)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))+ ((5 0) (6 0)) ((6 1) (4 0)))+ (absent (x-0 (mul x (rec y) w)) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y x-0)+ (uniq-orig n)+ (operation nonce-test (added-listener x-0) (mul w (rec x-0)) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) x-0) (mul w (rec x-0))))+ (send (cat (exp (gen) x-0) (mul w (rec x-0)))))+ ((send (exp (gen) x-0))) ((recv x-0) (send x-0)))+ (label 227)+ (parent 187)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))+ (deflistener (exp (gen) y))+ (deflistener (cat (exp (gen) y) (one)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (rec x)))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (rec x) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))+ (send (enc n (exp (gen) y))) (recv n))+ ((recv (exp (gen) y)) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (rec x)))+ (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))+ (label 228)+ (parent 188)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h base) (w expr) (y x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y (rec x)))) (x x))+ (deflistener (exp (gen) (mul w y)))+ (deflistener (cat (exp (gen) y) w))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y) (mul w (rec x))))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))+ (absent (x w) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y (rec x))))+ (send (enc n (exp (gen) (mul w y)))) (recv n))+ ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+ ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y) (mul w (rec x))))+ (send (cat (exp (gen) y) (mul w (rec x))))) ((recv x) (send x)))+ (label 229)+ (parent 189)+ (unrealized (5 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h h-0 base) (y expn) (w expr) (y-0 x expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y-0 (rec x)))) (x x))+ (deflistener (exp (gen) (mul w y-0)))+ (deflistener (cat (exp (gen) y) (mul (rec y) w y-0)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec x))))+ (defstrand resp 2 (h h-0) (y y-0))+ (deflistener x)+ (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)) ((6 1) (4 0)))+ (absent (x (mul (rec y) w y-0)) (y-0 h-0) (y h))+ (precur (4 0) (2 0))+ (uniq-gen y y-0 x)+ (uniq-orig n)+ (operation nonce-test (added-listener x) (mul w (rec x)) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0 (rec x))))+ (send (enc n (exp (gen) (mul w y-0)))) (recv n))+ ((recv (exp (gen) (mul w y-0))) (send (exp (gen) (mul w y-0))))+ ((recv (cat (exp (gen) y) (mul (rec y) w y-0)))+ (send (cat (exp (gen) y) (mul (rec y) w y-0))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w (rec x))))+ (send (cat (exp (gen) y-0) (mul w (rec x)))))+ ((recv h-0) (send (exp (gen) y-0))) ((recv x) (send x)))+ (label 230)+ (parent 192)+ (unrealized (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h h-0 base) (x expn) (w expr) (y y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) (mul w y y-0))) (x x))+ (deflistener (exp (gen) (mul x w y y-0)))+ (deflistener (cat (exp (gen) y-0) (mul x w y)))+ (defstrand resp 2 (h h) (y y-0))+ (deflistener (cat (exp (gen) y) (mul w y-0)))+ (defstrand resp 2 (h h-0) (y y))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (6 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (4 0)) ((6 1) (4 0)))+ (absent (y-0 (mul x w y)) (y h-0) (y-0 h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) (mul w y y-0)))+ (send (enc n (exp (gen) (mul x w y y-0)))) (recv n))+ ((recv (exp (gen) (mul x w y y-0)))+ (send (exp (gen) (mul x w y y-0))))+ ((recv (cat (exp (gen) y-0) (mul x w y)))+ (send (cat (exp (gen) y-0) (mul x w y))))+ ((recv h) (send (exp (gen) y-0)))+ ((recv (cat (exp (gen) y) (mul w y-0)))+ (send (cat (exp (gen) y) (mul w y-0))))+ ((recv h-0) (send (exp (gen) y))) ((recv y-0) (send y-0)))+ (label 231)+ (parent 193)+ (unrealized (1 0) (2 0) (6 0))+ (comment "empty cohort"))++(defskeleton plaindh+ (vars (n text) (h h-0 base) (x y expn) (w expr) (y-0 expn))+ (defstrand init 4 (n n) (h (exp (gen) w)) (x x))+ (deflistener (exp (gen) (mul x w)))+ (deflistener (cat (exp (gen) y) (mul x (rec y) w)))+ (defstrand resp 2 (h h) (y y))+ (deflistener (cat (exp (gen) y-0) (mul w (rec y-0))))+ (defstrand resp 2 (h h-0) (y y-0))+ (deflistener y-0)+ (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))+ ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))+ ((5 1) (6 0)) ((6 1) (4 0)))+ (absent (y-0 (mul x (rec y) w)) (y-0 h-0) (y h))+ (precur (4 0) (2 0))+ (uniq-gen x y y-0)+ (uniq-orig n)+ (operation nonce-test (added-listener y-0) (mul w (rec y-0)) (4 0))+ (traces+ ((send (exp (gen) x)) (recv (exp (gen) w))+ (send (enc n (exp (gen) (mul x w)))) (recv n))+ ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))+ ((recv (cat (exp (gen) y) (mul x (rec y) w)))+ (send (cat (exp (gen) y) (mul x (rec y) w))))+ ((recv h) (send (exp (gen) y)))+ ((recv (cat (exp (gen) y-0) (mul w (rec y-0))))+ (send (cat (exp (gen) y-0) (mul w (rec y-0)))))+ ((recv h-0) (send (exp (gen) y-0))) ((recv y-0) (send y-0)))+ (label 232)+ (parent 194)+ (unrealized (2 0) (6 0))+ (comment "empty cohort")) (comment "Nothing left to do")
tst/priority_test.scm view
@@ -15,7 +15,6 @@ ) ) - ; Node 4 should realize first, then node 2, then node 3. (defskeleton priority_test (vars (n1 text))
tst/priority_test.tst view
@@ -1,6 +1,6 @@ (herald "Receive priority test protocol") -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from priority_test.scm") (defprotocol priority_test basic
tst/staticdh.scm view
@@ -1,4 +1,4 @@-(herald "Static DH key exchange" +(herald "Static DH key exchange" (algebra diffie-hellman)) (defprotocol staticdh diffie-hellman@@ -57,8 +57,6 @@ (non-orig x) (fn-of (owner-of (p x))))) - (defskeleton staticdh1 (vars ) (defstrand init 4))-
tst/staticdh.tst view
@@ -1,6 +1,6 @@ (herald "Static DH key exchange" (algebra diffie-hellman)) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from staticdh.scm") (defprotocol staticdh1 diffie-hellman@@ -135,7 +135,7 @@ (label 4) (parent 2) (unrealized (3 0))- (comment "empty cohort"))+ (comment "1 in cohort - 1 not yet seen")) (defskeleton staticdh1 (vars (n text) (a b ca b-0 name) (y x expn))@@ -256,6 +256,36 @@ (comment "2 in cohort - 2 not yet seen")) (defskeleton staticdh1+ (vars (n text) (a b ca name) (x x-0 expn) (w expr))+ (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x))+ (defstrand ca 1 (p a) (ca ca) (x x))+ (defstrand ca 1 (p b) (ca ca) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) (mul x x-0 (rec w))) w))+ (precedes ((1 0) (0 0)) ((2 0) (0 1)) ((3 1) (0 3)) ((4 1) (3 0)))+ (fn-of (owner-of (b x-0) (a x)))+ (neq (a b))+ (non-orig (privk ca) x x-0)+ (uniq-orig n)+ (precur (4 0))+ (operation nonce-test+ (added-listener (cat (exp (gen) (mul x x-0 (rec w))) w))+ (exp (gen) (mul x x-0)) (3 0))+ (traces+ ((recv (enc "cert" (exp (gen) x) a (privk ca)))+ (recv (enc "cert" (exp (gen) x-0) b (privk ca)))+ (send (enc n (exp (gen) (mul x x-0)))) (recv n))+ ((send (enc "cert" (exp (gen) x) a (privk ca))))+ ((send (enc "cert" (exp (gen) x-0) b (privk ca))))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (exp (gen) (mul x x-0 (rec w))) w))+ (send (cat (exp (gen) (mul x x-0 (rec w))) w))))+ (label 9)+ (parent 4)+ (unrealized (4 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton staticdh1 (vars (n text) (a b ca name) (x x-0 expn)) (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (x x-0)) (defstrand ca 1 (p a) (ca ca) (x x-0))@@ -278,7 +308,7 @@ ((recv (enc "cert" (exp (gen) x) b (privk ca))) (recv (enc "cert" (exp (gen) x-0) a (privk ca))) (recv (enc n (exp (gen) (mul x x-0)))) (send n)))- (label 9)+ (label 10) (parent 5) (unrealized) (shape)@@ -310,7 +340,7 @@ (recv (enc "cert" (exp (gen) x-0) a (privk ca))) (recv (enc n (exp (gen) (mul x x-0)))) (send n)) ((send (enc "cert" (exp (gen) x-0) a (privk ca)))))- (label 10)+ (label 11) (parent 5) (unrealized) (shape)@@ -342,7 +372,7 @@ (recv (enc "cert" (exp (gen) x-0) a (privk ca))) (recv (enc n (exp (gen) (mul x x-0)))) (send n)) ((send (enc "cert" (exp (gen) x) b (privk ca)))))- (label 11)+ (label 12) (parent 6) (unrealized) (shape)@@ -377,7 +407,7 @@ (recv (enc n (exp (gen) (mul x x-0)))) (send n)) ((send (enc "cert" (exp (gen) x) b (privk ca-0)))) ((send (enc "cert" (exp (gen) x-0) a (privk ca-0)))))- (label 12)+ (label 13) (parent 6) (unrealized) (shape)@@ -407,7 +437,7 @@ ((recv (enc "cert" (exp (gen) x) a (privk ca))) (recv (enc "cert" (exp (gen) x-0) b (privk ca))) (recv (enc n (exp (gen) (mul x x-0)))) (send n)))- (label 13)+ (label 14) (parent 7) (unrealized) (shape)@@ -439,7 +469,7 @@ (recv (enc "cert" (exp (gen) x-0) b (privk ca))) (recv (enc n (exp (gen) (mul x x-0)))) (send n)) ((send (enc "cert" (exp (gen) x-0) b (privk ca)))))- (label 14)+ (label 15) (parent 7) (unrealized) (shape)@@ -471,7 +501,7 @@ (recv (enc "cert" (exp (gen) x-0) b (privk ca))) (recv (enc n (exp (gen) (mul x x-0)))) (send n)) ((send (enc "cert" (exp (gen) x) a (privk ca)))))- (label 15)+ (label 16) (parent 8) (unrealized) (shape)@@ -506,11 +536,70 @@ (recv (enc n (exp (gen) (mul x x-0)))) (send n)) ((send (enc "cert" (exp (gen) x) a (privk ca-0)))) ((send (enc "cert" (exp (gen) x-0) b (privk ca-0)))))- (label 16)+ (label 17) (parent 8) (unrealized) (shape) (maps ((0) ((a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x) (n n)))) (origs (n (0 2))))++(defskeleton staticdh1+ (vars (n text) (a b ca name) (x x-0 expn))+ (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x))+ (defstrand ca 1 (p a) (ca ca) (x x))+ (defstrand ca 1 (p b) (ca ca) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (gen) (mul x x-0)))+ (precedes ((1 0) (0 0)) ((2 0) (0 1)) ((3 1) (0 3)) ((4 1) (3 0)))+ (fn-of (owner-of (b x-0) (a x)))+ (neq (a b))+ (non-orig (privk ca) x x-0)+ (uniq-orig n)+ (precur (4 0))+ (operation nonce-test (contracted (x-1 x) (x-2 x-0) (w (mul x x-0)))+ (gen) (4 0))+ (traces+ ((recv (enc "cert" (exp (gen) x) a (privk ca)))+ (recv (enc "cert" (exp (gen) x-0) b (privk ca)))+ (send (enc n (exp (gen) (mul x x-0)))) (recv n))+ ((send (enc "cert" (exp (gen) x) a (privk ca))))+ ((send (enc "cert" (exp (gen) x-0) b (privk ca))))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0)))))+ (label 18)+ (parent 9)+ (unrealized (3 0) (4 0))+ (comment "empty cohort"))++(defskeleton staticdh1+ (vars (n text) (a b ca p ca-0 name) (x x-0 x-1 expn))+ (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x))+ (defstrand ca 1 (p a) (ca ca) (x x))+ (defstrand ca 1 (p b) (ca ca) (x x-0))+ (deflistener (exp (gen) (mul x x-0)))+ (deflistener (cat (exp (gen) x-1) (mul x x-0 (rec x-1))))+ (defstrand ca 1 (p p) (ca ca-0) (x x-1))+ (precedes ((1 0) (0 0)) ((2 0) (0 1)) ((3 1) (0 3)) ((4 1) (3 0))+ ((5 0) (4 0)))+ (fn-of (owner-of (p x-1) (b x-0) (a x)))+ (neq (a b))+ (non-orig (privk ca) x x-0 x-1)+ (precur (4 0))+ (uniq-orig n)+ (operation nonce-test (added-strand ca 1) (exp (gen) x-1) (4 0))+ (traces+ ((recv (enc "cert" (exp (gen) x) a (privk ca)))+ (recv (enc "cert" (exp (gen) x-0) b (privk ca)))+ (send (enc n (exp (gen) (mul x x-0)))) (recv n))+ ((send (enc "cert" (exp (gen) x) a (privk ca))))+ ((send (enc "cert" (exp (gen) x-0) b (privk ca))))+ ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+ ((recv (cat (exp (gen) x-1) (mul x x-0 (rec x-1))))+ (send (cat (exp (gen) x-1) (mul x x-0 (rec x-1)))))+ ((send (enc "cert" (exp (gen) x-1) p (privk ca-0)))))+ (label 19)+ (parent 9)+ (unrealized (3 0) (4 0))+ (comment "empty cohort")) (comment "Nothing left to do")
tst/station2.scm view
@@ -5,15 +5,15 @@ (defprotocol station-to-station diffie-hellman (defrole init (vars (x expn) (h base) (a b name))- (trace - (send (exp (gen) x)) + (trace+ (send (exp (gen) x)) (recv (enc h (exp (gen) x) (privk b))) (send (enc (enc (exp (gen) x) h (exp h x)) (privk a)))) (uniq-gen x)) (defrole resp (vars (y expn) (h base) (a b name))- (trace - (recv h) + (trace+ (recv h) (send (enc (exp (gen) y) h (privk b))) (recv (enc (enc h (exp (gen) y) (exp h y)) (privk a)))) (uniq-gen y))@@ -30,4 +30,3 @@ (defstrand resp 3 (a a) (b b)) (non-orig (privk a) (privk b)) )-
tst/station2.tst view
@@ -1,6 +1,6 @@ (herald "Station-to-station protocol" (algebra diffie-hellman)) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from station2.scm") (defprotocol station-to-station diffie-hellman@@ -14,7 +14,7 @@ (trace (recv h) (send (enc (exp (gen) y) h (privk b))) (recv (enc (enc h (exp (gen) y) (exp h y)) (privk a)))) (uniq-gen y)- (ind-zero-in (y h))))+ (absent (y h)))) (defskeleton station-to-station (vars (a b name) (h base) (x expn))@@ -34,7 +34,7 @@ (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x)) (defstrand resp 2 (b b) (h (exp (gen) x)) (y y)) (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (ind-zero-in (y (exp (gen) x)))+ (absent (y (exp (gen) x))) (non-orig (privk a) (privk b)) (uniq-gen x y) (operation encryption-test (added-strand resp 2)@@ -67,12 +67,12 @@ (trace (recv h) (send (enc (exp (gen) y) h (privk b))) (recv (enc (enc h (exp (gen) y) (exp h y)) (privk a)))) (uniq-gen y)- (ind-zero-in (y h))))+ (absent (y h)))) (defskeleton station-to-station (vars (a b name) (h base) (y expn)) (defstrand resp 3 (a a) (b b) (h h) (y y))- (ind-zero-in (y h))+ (absent (y h)) (non-orig (privk a) (privk b)) (uniq-gen y) (traces@@ -88,7 +88,7 @@ (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y)) (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x)) (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))- (ind-zero-in (y (exp (gen) x)))+ (absent (y (exp (gen) x))) (non-orig (privk a) (privk b)) (uniq-gen y x) (operation encryption-test (added-strand init 3)
− tst/station_to_station.scm
@@ -1,33 +0,0 @@-(herald "Station-to-station protocol" (algebra diffie-hellman)-; (limit 1)-)--(defprotocol station-to-station diffie-hellman- (defrole init- (vars (x expn) (h base) (a b name))- (trace - (send (exp (gen) x)) - (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))- (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))- (uniq-gen x))- (defrole resp- (vars (y expn) (h base) (a b name))- (trace - (recv h) - (send (cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b)) (exp h y))))- (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))- (uniq-gen y))-)--(defskeleton station-to-station- (vars (a b name))- (defstrand init 3 (a a) (b b))- (non-orig (privk b) (privk a))-)--(defskeleton station-to-station- (vars (a b name))- (defstrand resp 3 (a a) (b b))- (non-orig (privk a) (privk b))-)-
− tst/station_to_station.tst
@@ -1,577 +0,0 @@-(herald "Station-to-station protocol" (algebra diffie-hellman))--(comment "CPSA 3.2.2")-(comment "All input read from station_to_station.scm")--(defprotocol station-to-station diffie-hellman- (defrole init- (vars (x expn) (h base) (a b name))- (trace (send (exp (gen) x))- (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))- (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))- (uniq-gen x))- (defrole resp- (vars (y expn) (h base) (a b name))- (trace (recv h)- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) h (privk b)) (exp h y))))- (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))- (uniq-gen y)- (ind-zero-in (y h))))--(defskeleton station-to-station- (vars (a b name) (h base) (x expn))- (defstrand init 3 (a a) (b b) (h h) (x x))- (non-orig (privk a) (privk b))- (uniq-gen x)- (traces- ((send (exp (gen) x))- (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))- (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))))- (label 0)- (unrealized (0 1))- (origs)- (comment "3 in cohort - 3 not yet seen"))--(defskeleton station-to-station- (vars (a b b-0 name) (x x-0 expn))- (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))- (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))- (precedes ((0 0) (1 1)) ((1 2) (0 1)))- (non-orig (privk a) (privk b))- (uniq-gen x x-0)- (operation encryption-test (added-strand init 3)- (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))- (exp (gen) (mul x x-0))) (0 1))- (traces- ((send (exp (gen) x))- (recv- (cat (exp (gen) x-0)- (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))- (exp (gen) (mul x x-0)))))- (send- (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))- (exp (gen) (mul x x-0)))))- ((send (exp (gen) x-0))- (recv- (cat (exp (gen) x)- (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))- (exp (gen) (mul x x-0)))))- (send- (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))- (exp (gen) (mul x x-0))))))- (label 1)- (parent 0)- (unrealized (1 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton station-to-station- (vars (a b name) (x y expn))- (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))- (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen x y)- (operation encryption-test (added-strand resp 2)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b))- (exp (gen) (mul x y))) (0 1))- (traces- ((send (exp (gen) x))- (recv- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b))- (exp (gen) (mul x y)))))- (send- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul x y)))))- ((recv (exp (gen) x))- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b))- (exp (gen) (mul x y)))))))- (label 2)- (parent 0)- (unrealized)- (shape)- (maps ((0) ((a a) (b b) (x x) (h (exp (gen) y)))))- (origs))--(defskeleton station-to-station- (vars (a b name) (h base) (x expn))- (defstrand init 3 (a a) (b b) (h h) (x x))- (deflistener (exp h x))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (non-orig (privk a) (privk b))- (uniq-gen x)- (operation encryption-test (added-listener (exp h x))- (enc (enc h (exp (gen) x) (privk b)) (exp h x)) (0 1))- (traces- ((send (exp (gen) x))- (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))- (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))- ((recv (exp h x)) (send (exp h x))))- (label 3)- (parent 0)- (unrealized (0 1) (1 0))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton station-to-station- (vars (a b b-0 name) (x x-0 expn))- (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))- (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))- (deflistener (exp (gen) (mul x x-0)))- (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))- (non-orig (privk a) (privk b))- (uniq-gen x x-0)- (operation encryption-test (added-listener (exp (gen) (mul x x-0)))- (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))- (exp (gen) (mul x x-0))) (1 1))- (traces- ((send (exp (gen) x))- (recv- (cat (exp (gen) x-0)- (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))- (exp (gen) (mul x x-0)))))- (send- (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))- (exp (gen) (mul x x-0)))))- ((send (exp (gen) x-0))- (recv- (cat (exp (gen) x)- (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))- (exp (gen) (mul x x-0)))))- (send- (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))- (exp (gen) (mul x x-0)))))- ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))- (label 4)- (parent 1)- (unrealized (2 0))- (comment "empty cohort"))--(defskeleton station-to-station- (vars (a b name) (x expn) (x-0 expr))- (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))- (deflistener (exp (gen) (mul x x-0)))- (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (non-orig (privk a) (privk b))- (uniq-gen x)- (operation nonce-test (algebra-contracted (h (exp (gen) x-0)))- (exp (gen) (mul x x-0)) (1 0) (exp (gen) x))- (traces- ((send (exp (gen) x))- (recv- (cat (exp (gen) x-0)- (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))- (exp (gen) (mul x x-0)))))- (send- (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))- (exp (gen) (mul x x-0)))))- ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))- (label 5)- (parent 3)- (unrealized (0 1))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton station-to-station- (vars (a b b-0 name) (x x-0 expn))- (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))- (deflistener (exp (gen) (mul x x-0)))- (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))- (precedes ((0 0) (1 0)) ((0 0) (2 1)) ((1 1) (0 1)) ((2 0) (1 0))- ((2 2) (0 1)))- (non-orig (privk a) (privk b))- (uniq-gen x x-0)- (operation encryption-test (added-strand init 3)- (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))- (traces- ((send (exp (gen) x))- (recv- (cat (exp (gen) x-0)- (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))- (exp (gen) (mul x x-0)))))- (send- (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))- (exp (gen) (mul x x-0)))))- ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))- ((send (exp (gen) x-0))- (recv- (cat (exp (gen) x)- (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))- (exp (gen) (mul x x-0)))))- (send- (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))- (exp (gen) (mul x x-0))))))- (label 6)- (parent 5)- (unrealized (1 0) (2 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton station-to-station- (vars (a b name) (x y expn))- (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))- (deflistener (exp (gen) (mul x y)))- (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))- (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen x y)- (operation encryption-test (added-strand resp 2)- (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))- (traces- ((send (exp (gen) x))- (recv- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b))- (exp (gen) (mul x y)))))- (send- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul x y)))))- ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))- ((recv (exp (gen) x))- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b))- (exp (gen) (mul x y)))))))- (label 7)- (parent 5)- (unrealized (1 0))- (comment "empty cohort"))--(defskeleton station-to-station- (vars (a b b-0 name) (x x-0 expn))- (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))- (deflistener (exp (gen) (mul x x-0)))- (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))- (deflistener (exp (gen) (mul x x-0)))- (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 0) (1 0))- ((2 0) (3 0)) ((2 2) (0 1)) ((3 1) (2 1)))- (non-orig (privk a) (privk b))- (uniq-gen x x-0)- (operation encryption-test (added-listener (exp (gen) (mul x x-0)))- (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))- (exp (gen) (mul x x-0))) (2 1))- (traces- ((send (exp (gen) x))- (recv- (cat (exp (gen) x-0)- (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))- (exp (gen) (mul x x-0)))))- (send- (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))- (exp (gen) (mul x x-0)))))- ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))- ((send (exp (gen) x-0))- (recv- (cat (exp (gen) x)- (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))- (exp (gen) (mul x x-0)))))- (send- (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))- (exp (gen) (mul x x-0)))))- ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))- (label 8)- (parent 6)- (unrealized (1 0) (3 0))- (comment "empty cohort"))--(comment "Nothing left to do")--(defprotocol station-to-station diffie-hellman- (defrole init- (vars (x expn) (h base) (a b name))- (trace (send (exp (gen) x))- (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))- (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))- (uniq-gen x))- (defrole resp- (vars (y expn) (h base) (a b name))- (trace (recv h)- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) h (privk b)) (exp h y))))- (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))- (uniq-gen y)- (ind-zero-in (y h))))--(defskeleton station-to-station- (vars (a b name) (h base) (y expn))- (defstrand resp 3 (a a) (b b) (h h) (y y))- (ind-zero-in (y h))- (non-orig (privk a) (privk b))- (uniq-gen y)- (traces- ((recv h)- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) h (privk b)) (exp h y))))- (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))))- (label 9)- (unrealized (0 2))- (origs)- (comment "2 in cohort - 2 not yet seen"))--(defskeleton station-to-station- (vars (a b b-0 name) (y x expn))- (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))- (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))- (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x)- (operation encryption-test (added-strand init 3)- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul y x))) (0 2))- (traces- ((recv (exp (gen) x))- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b))- (exp (gen) (mul y x)))))- (recv- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul y x)))))- ((send (exp (gen) x))- (recv- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))- (exp (gen) (mul y x)))))- (send- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul y x))))))- (label 10)- (parent 9)- (unrealized (1 1))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton station-to-station- (vars (a b name) (h base) (y expn))- (defstrand resp 3 (a a) (b b) (h h) (y y))- (deflistener (exp h y))- (precedes ((0 1) (1 0)) ((1 1) (0 2)))- (ind-zero-in (y h))- (non-orig (privk a) (privk b))- (uniq-gen y)- (operation encryption-test (added-listener (exp h y))- (enc (enc h (exp (gen) y) (privk a)) (exp h y)) (0 2))- (traces- ((recv h)- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) h (privk b)) (exp h y))))- (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))- ((recv (exp h y)) (send (exp h y))))- (label 11)- (parent 9)- (unrealized (0 2) (1 0))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton station-to-station- (vars (a b name) (x y expn))- (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))- (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))- (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen x y)- (operation encryption-test (displaced 2 0 resp 2)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))- (exp (gen) (mul x y))) (1 1))- (traces- ((recv (exp (gen) x))- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b))- (exp (gen) (mul x y)))))- (recv- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul x y)))))- ((send (exp (gen) x))- (recv- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b))- (exp (gen) (mul x y)))))- (send- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul x y))))))- (label 12)- (parent 10)- (unrealized)- (shape)- (maps ((0) ((a a) (b b) (y y) (h (exp (gen) x)))))- (origs))--(defskeleton station-to-station- (vars (a b b-0 name) (y x expn))- (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))- (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))- (deflistener (exp (gen) (mul y x)))- (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x)- (operation encryption-test (added-listener (exp (gen) (mul y x)))- (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))- (exp (gen) (mul y x))) (1 1))- (traces- ((recv (exp (gen) x))- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b))- (exp (gen) (mul y x)))))- (recv- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul y x)))))- ((send (exp (gen) x))- (recv- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))- (exp (gen) (mul y x)))))- (send- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul y x)))))- ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))- (label 13)- (parent 10)- (unrealized (2 0))- (comment "empty cohort"))--(defskeleton station-to-station- (vars (a b name) (y expn) (y-0 expr))- (defstrand resp 3 (a a) (b b) (h (exp (gen) y-0)) (y y))- (deflistener (exp (gen) (mul y y-0)))- (precedes ((0 1) (1 0)) ((1 1) (0 2)))- (ind-zero-in (y (exp (gen) y-0)))- (non-orig (privk a) (privk b))- (uniq-gen y)- (operation nonce-test (algebra-contracted (h (exp (gen) y-0)))- (exp (gen) (mul y y-0)) (1 0) (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) y-0) (privk b))- (exp (gen) (mul y y-0))))- (traces- ((recv (exp (gen) y-0))- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) y-0) (privk b))- (exp (gen) (mul y y-0)))))- (recv- (enc (enc (exp (gen) y-0) (exp (gen) y) (privk a))- (exp (gen) (mul y y-0)))))- ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0)))))- (label 14)- (parent 11)- (unrealized (0 2))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton station-to-station- (vars (a b b-0 name) (y x expn))- (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))- (deflistener (exp (gen) (mul y x)))- (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))- (precedes ((0 1) (1 0)) ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0))- ((2 2) (0 2)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x)- (operation encryption-test (added-strand init 3)- (enc (exp (gen) x) (exp (gen) y) (privk a)) (0 2))- (traces- ((recv (exp (gen) x))- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b))- (exp (gen) (mul y x)))))- (recv- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul y x)))))- ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))- ((send (exp (gen) x))- (recv- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))- (exp (gen) (mul y x)))))- (send- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul y x))))))- (label 15)- (parent 14)- (unrealized (1 0) (2 1))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton station-to-station- (vars (a b name) (x y expn))- (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))- (deflistener (exp (gen) (mul x y)))- (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))- (precedes ((0 1) (1 0)) ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0))- ((2 2) (0 2)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen x y)- (operation encryption-test (displaced 3 0 resp 2)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))- (exp (gen) (mul x y))) (2 1))- (traces- ((recv (exp (gen) x))- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b))- (exp (gen) (mul x y)))))- (recv- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul x y)))))- ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))- ((send (exp (gen) x))- (recv- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b))- (exp (gen) (mul x y)))))- (send- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul x y))))))- (label 16)- (parent 15)- (unrealized (1 0))- (comment "empty cohort"))--(defskeleton station-to-station- (vars (a b b-0 name) (y x expn))- (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))- (deflistener (exp (gen) (mul y x)))- (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))- (deflistener (exp (gen) (mul y x)))- (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 0) (0 0))- ((2 2) (0 2)) ((3 1) (2 1)))- (ind-zero-in (y (exp (gen) x)))- (non-orig (privk a) (privk b))- (uniq-gen y x)- (operation encryption-test (added-listener (exp (gen) (mul y x)))- (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))- (exp (gen) (mul y x))) (2 1))- (traces- ((recv (exp (gen) x))- (send- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b))- (exp (gen) (mul y x)))))- (recv- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul y x)))))- ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))- ((send (exp (gen) x))- (recv- (cat (exp (gen) y)- (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))- (exp (gen) (mul y x)))))- (send- (enc (enc (exp (gen) x) (exp (gen) y) (privk a))- (exp (gen) (mul y x)))))- ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))- (label 17)- (parent 15)- (unrealized (1 0) (3 0))- (comment "empty cohort"))--(comment "Nothing left to do")
tst/subsort_test.tst view
@@ -2,7 +2,7 @@ (comment "First, third, and fourth skeletons should have a shape," "second should be dead.")) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from subsort_test.scm") (defprotocol subsorttest basic
tst/test_small.scm view
@@ -2,11 +2,10 @@ ;(limit 1) ) - (defprotocol test diffie-hellman (defrole init (vars (hr base) (a b name) (xi expn))- (trace + (trace (recv (enc hr (privk b))) (send (enc (hash (exp hr xi)) (exp (gen) xi) (privk a)))) (uniq-gen xi)@@ -14,7 +13,7 @@ ) (defrole resp (vars (xr expn) (a b name) (hi base))- (trace + (trace (send (enc (exp (gen) xr) (privk b))) (recv (enc (hash (exp hi xr)) hi (privk a)))) (uniq-gen xr)@@ -36,4 +35,3 @@ (vars (a b name)) (defstrand resp 2 (a a) (b b)) (non-orig (privk a) (privk b)))-
tst/test_small.tst view
@@ -1,6 +1,6 @@ (herald "small test" (algebra diffie-hellman)) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from test_small.scm") (defprotocol test diffie-hellman@@ -9,7 +9,7 @@ (trace (recv (enc hr (privk b))) (send (enc (hash (exp hr xi)) (exp (gen) xi) (privk a)))) (uniq-gen xi)- (ind-zero-in (xi hr)))+ (absent (xi hr))) (defrole resp (vars (xr expn) (a b name) (hi base)) (trace (send (enc (exp (gen) xr) (privk b)))@@ -34,7 +34,7 @@ (defstrand resp 2 (a a) (b b) (hi (exp (gen) xi)) (xr xr)) (defstrand init 2 (a a) (b b-0) (hr (exp (gen) xr)) (xi xi)) (precedes ((0 0) (1 0)) ((1 1) (0 1)))- (ind-zero-in (xi (exp (gen) xr)))+ (absent (xi (exp (gen) xr))) (non-orig (privk a) (privk b)) (uniq-gen xr xi) (operation encryption-test (added-strand init 2)
tst/unilateral.tst view
@@ -1,6 +1,6 @@ (herald unilateral) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from unilateral.scm") (defprotocol unilateral basic
tst/uniq-gen-test.scm view
@@ -22,9 +22,9 @@ ) ) -;; This input, if enabled, should cause an +;; This input, if enabled, should cause an ;; error, since k is not carried anywhere.-;(defskeleton uniqgentest +;(defskeleton uniqgentest ; (vars (k skey)) ; (defstrand init 2 (k k)) ; (uniq-orig k))@@ -45,4 +45,3 @@ (vars (k skey)) (defstrand init 2 (k k)) (uniq-gen k))-
tst/uniq-gen-test.tst view
@@ -1,7 +1,7 @@ (herald "Unique generation test protocols." (comment "Skeletons 2, 4, and 7 should have no shapes.")) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from uniq-gen-test.scm") (defprotocol uniqgentest basic
tst/wang.tst view
@@ -1,4 +1,4 @@-(comment "CPSA 3.1.0")+(comment "CPSA 3.4.0") (comment "All input read from wang.scm") (defprotocol wang basic
tst/woolam.tst view
@@ -1,6 +1,6 @@ (herald "Woo-Lam Protocol") -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from woolam.scm") (defprotocol woolam basic
tst/wrap_decrypt.lsp view
@@ -48,7 +48,7 @@ (defstrand set-wrap 1 (k kp) (cur "init")) (defstrand wrap 5 (k0 k) (k1 kp) (cur "init")) (defstrand make 2 (k k))- (precedes ((1 3) (0 0)) ((2 0) (4 0)) ((2 1) (5 1)) ((3 0) (1 2)) ((4 0) (5 3)) + (precedes ((1 3) (0 0)) ((2 0) (4 0)) ((2 1) (5 1)) ((3 0) (1 2)) ((4 0) (5 3)) ((4 0) (3 0)) ((5 4) (1 0)) ((6 0) (5 2)) ((6 1) (5 0)))) (defskeleton wrap-decrypt
tst/wrap_decrypt.tst view
@@ -1,6 +1,6 @@ (herald wrap-decrypt (bound 10)) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from wrap_decrypt.lsp") (comment "Strand count bounded at 10")
tst/yahalom.tst view
@@ -1,7 +1,7 @@ (herald "Yahalom Protocol with Forwarding Removed" (algebra diffie-hellman) (bound 12)) -(comment "CPSA 3.2.2")+(comment "CPSA 3.4.0") (comment "All input read from yahalom.scm") (defprotocol yahalom diffie-hellman