(comment "CPSA 2.2.11")
(comment "Extracted shapes")
(herald "Woo-Lam Protocol")
(comment "CPSA 2.2.11")
(comment "All input read from woo_lam.scm")

Trees: 0 8 16.

Tree 0.

7 5 4 1 0
(defprotocol woo_lam basic
  (defrole init
    (vars (my_init_id s name) (nb text))
    (trace (send my_init_id) (recv nb)
      (send (enc nb (ltk my_init_id s)))))
  (defrole resp
    (vars (my_resp_id yr_init_id s name) (nb text) (x mesg))
    (trace (recv yr_init_id) (send nb) (recv x)
      (send (enc yr_init_id x (ltk my_resp_id s)))
      (recv (enc nb (ltk my_resp_id s)))))
  (defrole server
    (vars (a b s name) (nb text))
    (trace (recv (enc a (enc nb (ltk a s)) (ltk b s)))
      (send (enc nb (ltk b s))))))

Item 0, Children: 1 4 5 7.

(enc nb (ltk b s)) (enc a x (ltk b s)) x nb a ((x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s)) resp woo_lam 0
(defskeleton woo_lam
  (vars (x mesg) (nb text) (s a b name))
  (defstrand resp 5 (x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s))
  (non-orig (ltk a s) (ltk b s))
  (uniq-orig nb)
  (traces
    ((recv a) (send nb) (recv x) (send (enc a x (ltk b s)))
      (recv (enc nb (ltk b s)))))
  (label 0)
  (unrealized (0 4))
  (origs (nb (0 1)))
  (comment "2 in cohort - 2 not yet seen"))

Item 1, Parent: 0.

(enc nb (ltk b s)) nb b (enc nb (ltk b s)) (enc a x (ltk b s)) x nb a ((nb nb) (my_init_id b) (s s)) init ((x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s)) resp woo_lam 1 (realized)
(defskeleton woo_lam
  (vars (x mesg) (nb text) (s a b name))
  (defstrand resp 5 (x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s))
  (defstrand init 3 (nb nb) (my_init_id b) (s s))
  (precedes ((0 1) (1 1)) ((1 2) (0 4)))
  (non-orig (ltk a s) (ltk b s))
  (uniq-orig nb)
  (operation encryption-test (added-strand init 3) (enc nb (ltk b s))
    (0 4))
  (traces
    ((recv a) (send nb) (recv x) (send (enc a x (ltk b s)))
      (recv (enc nb (ltk b s))))
    ((send b) (recv nb) (send (enc nb (ltk b s)))))
  (label 1)
  (parent 0)
  (unrealized)
  (shape)
  (maps ((0) ((nb nb) (s s) (a a) (b b) (x x))))
  (origs (nb (0 1))))

Item 4, Parent: 0.

(enc a-0 (enc nb (ltk a-0 s)) (ltk b s)) (enc nb (ltk a-0 s)) nb-0 a-0 (enc nb (ltk b s)) (enc a-0 (enc nb (ltk a-0 s)) (ltk b s)) (enc nb (ltk b s)) (enc a x (ltk b s)) x nb a ((x (enc nb (ltk a-0 s))) (nb nb-0) (my_resp_id b) (yr_init_id a-0) (s s)) resp ((nb nb) (a a-0) (b b) (s s)) server ((x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s)) resp woo_lam 4 (realized)
(defskeleton woo_lam
  (vars (x mesg) (nb nb-0 text) (s a b a-0 name))
  (defstrand resp 5 (x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s))
  (defstrand server 2 (nb nb) (a a-0) (b b) (s s))
  (defstrand resp 4 (x (enc nb (ltk a-0 s))) (nb nb-0) (my_resp_id b)
    (yr_init_id a-0) (s s))
  (precedes ((0 1) (2 2)) ((1 1) (0 4)) ((2 3) (1 0)))
  (non-orig (ltk a s) (ltk b s))
  (uniq-orig nb)
  (operation encryption-test (added-strand resp 4)
    (enc a-0 (enc nb (ltk a-0 s)) (ltk b s)) (1 0))
  (traces
    ((recv a) (send nb) (recv x) (send (enc a x (ltk b s)))
      (recv (enc nb (ltk b s))))
    ((recv (enc a-0 (enc nb (ltk a-0 s)) (ltk b s)))
      (send (enc nb (ltk b s))))
    ((recv a-0) (send nb-0) (recv (enc nb (ltk a-0 s)))
      (send (enc a-0 (enc nb (ltk a-0 s)) (ltk b s)))))
  (label 4)
  (parent 0)
  (unrealized)
  (shape)
  (maps ((0) ((nb nb) (s s) (a a) (b b) (x x))))
  (origs (nb (0 1))))

Item 5, Parent: 0.

(enc nb (ltk a s)) nb a (enc nb (ltk b s)) (enc a (enc nb (ltk a s)) (ltk b s)) (enc nb (ltk b s)) (enc a (enc nb (ltk a s)) (ltk b s)) (enc nb (ltk a s)) nb a ((nb nb) (my_init_id a) (s s)) init ((nb nb) (a a) (b b) (s s)) server ((x (enc nb (ltk a s))) (nb nb) (my_resp_id b) (yr_init_id a) (s s)) resp woo_lam 5 (realized)
(defskeleton woo_lam
  (vars (nb text) (s a b name))
  (defstrand resp 5 (x (enc nb (ltk a s))) (nb nb) (my_resp_id b)
    (yr_init_id a) (s s))
  (defstrand server 2 (nb nb) (a a) (b b) (s s))
  (defstrand init 3 (nb nb) (my_init_id a) (s s))
  (precedes ((0 1) (2 1)) ((0 3) (1 0)) ((1 1) (0 4)) ((2 2) (0 2)))
  (non-orig (ltk a s) (ltk b s))
  (uniq-orig nb)
  (operation encryption-test (added-strand init 3) (enc nb (ltk a s))
    (0 2))
  (traces
    ((recv a) (send nb) (recv (enc nb (ltk a s)))
      (send (enc a (enc nb (ltk a s)) (ltk b s)))
      (recv (enc nb (ltk b s))))
    ((recv (enc a (enc nb (ltk a s)) (ltk b s)))
      (send (enc nb (ltk b s))))
    ((send a) (recv nb) (send (enc nb (ltk a s)))))
  (label 5)
  (parent 0)
  (unrealized)
  (shape)
  (maps ((0) ((nb nb) (s s) (a a) (b b) (x (enc nb (ltk a s))))))
  (origs (nb (0 1))))

Item 7, Parent: 0.

(enc a-0 (enc nb (ltk a-0 s)) (ltk a s)) (enc nb (ltk a-0 s)) nb-0 a-0 (enc nb (ltk a s)) (enc a-0 (enc nb (ltk a-0 s)) (ltk a s)) (enc nb (ltk b s)) (enc a (enc nb (ltk a s)) (ltk b s)) (enc nb (ltk b s)) (enc a (enc nb (ltk a s)) (ltk b s)) (enc nb (ltk a s)) nb a ((x (enc nb (ltk a-0 s))) (nb nb-0) (my_resp_id a) (yr_init_id a-0) (s s)) resp ((nb nb) (a a-0) (b a) (s s)) server ((nb nb) (a a) (b b) (s s)) server ((x (enc nb (ltk a s))) (nb nb) (my_resp_id b) (yr_init_id a) (s s)) resp woo_lam 7 (realized)
(defskeleton woo_lam
  (vars (nb nb-0 text) (s a b a-0 name))
  (defstrand resp 5 (x (enc nb (ltk a s))) (nb nb) (my_resp_id b)
    (yr_init_id a) (s s))
  (defstrand server 2 (nb nb) (a a) (b b) (s s))
  (defstrand server 2 (nb nb) (a a-0) (b a) (s s))
  (defstrand resp 4 (x (enc nb (ltk a-0 s))) (nb nb-0) (my_resp_id a)
    (yr_init_id a-0) (s s))
  (precedes ((0 1) (3 2)) ((0 3) (1 0)) ((1 1) (0 4)) ((2 1) (0 2))
    ((3 3) (2 0)))
  (non-orig (ltk a s) (ltk b s))
  (uniq-orig nb)
  (operation encryption-test (added-strand resp 4)
    (enc a-0 (enc nb (ltk a-0 s)) (ltk a s)) (2 0))
  (traces
    ((recv a) (send nb) (recv (enc nb (ltk a s)))
      (send (enc a (enc nb (ltk a s)) (ltk b s)))
      (recv (enc nb (ltk b s))))
    ((recv (enc a (enc nb (ltk a s)) (ltk b s)))
      (send (enc nb (ltk b s))))
    ((recv (enc a-0 (enc nb (ltk a-0 s)) (ltk a s)))
      (send (enc nb (ltk a s))))
    ((recv a-0) (send nb-0) (recv (enc nb (ltk a-0 s)))
      (send (enc a-0 (enc nb (ltk a-0 s)) (ltk a s)))))
  (label 7)
  (parent 0)
  (unrealized)
  (shape)
  (maps ((0) ((nb nb) (s s) (a a) (b b) (x (enc nb (ltk a s))))))
  (origs (nb (0 1))))

Tree 8.

15 14 10 9 8
(defprotocol an_woo_lam basic
  (defrole init
    (vars (my_init_id s name) (nb text))
    (trace (send my_init_id) (recv nb)
      (send (enc nb (ltk my_init_id s)))))
  (defrole resp
    (vars (my_resp_id yr_init_id s name) (nb text) (x mesg))
    (trace (recv yr_init_id) (send nb) (recv x)
      (send (enc yr_init_id x (ltk my_resp_id s)))
      (recv (enc yr_init_id nb (ltk my_resp_id s)))))
  (defrole server
    (vars (a b s name) (nb text))
    (trace (recv (enc a (enc nb (ltk a s)) (ltk b s)))
      (send (enc a nb (ltk b s))))))

Item 8, Children: 9 10 14 15.

(enc a nb (ltk b s)) (enc a x (ltk b s)) x nb a ((x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s)) resp an_woo_lam 8
(defskeleton an_woo_lam
  (vars (x mesg) (nb text) (s a b name))
  (defstrand resp 5 (x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s))
  (non-orig (ltk a s) (ltk b s))
  (uniq-orig nb)
  (traces
    ((recv a) (send nb) (recv x) (send (enc a x (ltk b s)))
      (recv (enc a nb (ltk b s)))))
  (label 8)
  (unrealized (0 4))
  (origs (nb (0 1)))
  (comment "3 in cohort - 3 not yet seen"))

Item 9, Parent: 8.

(enc a nb (ltk b s)) (enc a nb (ltk b s)) nb nb a ((x nb) (nb nb) (my_resp_id b) (yr_init_id a) (s s)) resp an_woo_lam 9 (realized)
(defskeleton an_woo_lam
  (vars (nb text) (s a b name))
  (defstrand resp 5 (x nb) (nb nb) (my_resp_id b) (yr_init_id a) (s s))
  (non-orig (ltk a s) (ltk b s))
  (uniq-orig nb)
  (operation encryption-test (displaced 1 0 resp 4) (enc a nb (ltk b s))
    (0 4))
  (traces
    ((recv a) (send nb) (recv nb) (send (enc a nb (ltk b s)))
      (recv (enc a nb (ltk b s)))))
  (label 9)
  (parent 8)
  (unrealized)
  (shape)
  (maps ((0) ((nb nb) (s s) (a a) (b b) (x nb))))
  (origs (nb (0 1))))

Item 10, Parent: 8.

(enc a nb (ltk b s)) nb nb-0 a (enc a nb (ltk b s)) (enc a x (ltk b s)) x nb a ((x nb) (nb nb-0) (my_resp_id b) (yr_init_id a) (s s)) resp ((x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s)) resp an_woo_lam 10 (realized)
(defskeleton an_woo_lam
  (vars (x mesg) (nb nb-0 text) (s a b name))
  (defstrand resp 5 (x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s))
  (defstrand resp 4 (x nb) (nb nb-0) (my_resp_id b) (yr_init_id a)
    (s s))
  (precedes ((0 1) (1 2)) ((1 3) (0 4)))
  (non-orig (ltk a s) (ltk b s))
  (uniq-orig nb)
  (operation encryption-test (added-strand resp 4) (enc a nb (ltk b s))
    (0 4))
  (traces
    ((recv a) (send nb) (recv x) (send (enc a x (ltk b s)))
      (recv (enc a nb (ltk b s))))
    ((recv a) (send nb-0) (recv nb) (send (enc a nb (ltk b s)))))
  (label 10)
  (parent 8)
  (unrealized)
  (shape)
  (maps ((0) ((nb nb) (s s) (a a) (b b) (x x))))
  (origs (nb (0 1))))

Item 14, Parent: 8.

(enc nb (ltk a s)) nb a (enc a nb (ltk b s)) (enc a (enc nb (ltk a s)) (ltk b s)) (enc a nb (ltk b s)) (enc a (enc nb (ltk a s)) (ltk b s)) (enc nb (ltk a s)) nb a ((nb nb) (my_init_id a) (s s)) init ((nb nb) (a a) (b b) (s s)) server ((x (enc nb (ltk a s))) (nb nb) (my_resp_id b) (yr_init_id a) (s s)) resp an_woo_lam 14 (realized)
(defskeleton an_woo_lam
  (vars (nb text) (s a b name))
  (defstrand resp 5 (x (enc nb (ltk a s))) (nb nb) (my_resp_id b)
    (yr_init_id a) (s s))
  (defstrand server 2 (nb nb) (a a) (b b) (s s))
  (defstrand init 3 (nb nb) (my_init_id a) (s s))
  (precedes ((0 1) (2 1)) ((0 3) (1 0)) ((1 1) (0 4)) ((2 2) (0 2)))
  (non-orig (ltk a s) (ltk b s))
  (uniq-orig nb)
  (operation encryption-test (added-strand init 3) (enc nb (ltk a s))
    (0 2))
  (traces
    ((recv a) (send nb) (recv (enc nb (ltk a s)))
      (send (enc a (enc nb (ltk a s)) (ltk b s)))
      (recv (enc a nb (ltk b s))))
    ((recv (enc a (enc nb (ltk a s)) (ltk b s)))
      (send (enc a nb (ltk b s))))
    ((send a) (recv nb) (send (enc nb (ltk a s)))))
  (label 14)
  (parent 8)
  (unrealized)
  (shape)
  (maps ((0) ((nb nb) (s s) (a a) (b b) (x (enc nb (ltk a s))))))
  (origs (nb (0 1))))

Item 15, Parent: 8.

(enc nb (ltk a s)) nb a (enc a (enc nb (ltk a s)) (ltk b s)) (enc nb (ltk a s)) nb-0 a (enc a nb (ltk b s)) (enc a (enc nb (ltk a s)) (ltk b s)) (enc a nb (ltk b s)) (enc a x (ltk b s)) x nb a ((nb nb) (my_init_id a) (s s)) init ((x (enc nb (ltk a s))) (nb nb-0) (my_resp_id b) (yr_init_id a) (s s)) resp ((nb nb) (a a) (b b) (s s)) server ((x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s)) resp an_woo_lam 15 (realized)
(defskeleton an_woo_lam
  (vars (x mesg) (nb nb-0 text) (s a b name))
  (defstrand resp 5 (x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s))
  (defstrand server 2 (nb nb) (a a) (b b) (s s))
  (defstrand resp 4 (x (enc nb (ltk a s))) (nb nb-0) (my_resp_id b)
    (yr_init_id a) (s s))
  (defstrand init 3 (nb nb) (my_init_id a) (s s))
  (precedes ((0 1) (3 1)) ((1 1) (0 4)) ((2 3) (1 0)) ((3 2) (2 2)))
  (non-orig (ltk a s) (ltk b s))
  (uniq-orig nb)
  (operation encryption-test (added-strand init 3) (enc nb (ltk a s))
    (2 2))
  (traces
    ((recv a) (send nb) (recv x) (send (enc a x (ltk b s)))
      (recv (enc a nb (ltk b s))))
    ((recv (enc a (enc nb (ltk a s)) (ltk b s)))
      (send (enc a nb (ltk b s))))
    ((recv a) (send nb-0) (recv (enc nb (ltk a s)))
      (send (enc a (enc nb (ltk a s)) (ltk b s))))
    ((send a) (recv nb) (send (enc nb (ltk a s)))))
  (label 15)
  (parent 8)
  (unrealized)
  (shape)
  (maps ((0) ((nb nb) (s s) (a a) (b b) (x x))))
  (origs (nb (0 1))))

Tree 16.

21 20 16
(defprotocol tagged_an_woo_lam basic
  (defrole init
    (vars (my_init_id s name) (nb text))
    (trace (send my_init_id) (recv nb)
      (send (enc nb (ltk my_init_id s)))))
  (defrole resp
    (vars (my_resp_id yr_init_id s name) (nb text) (x mesg))
    (trace (recv yr_init_id) (send nb) (recv x)
      (send (enc yr_init_id x (ltk my_resp_id s)))
      (recv (enc "result" yr_init_id nb (ltk my_resp_id s)))))
  (defrole server
    (vars (a b s name) (nb text))
    (trace (recv (enc a (enc nb (ltk a s)) (ltk b s)))
      (send (enc "result" a nb (ltk b s))))))

Item 16, Children: 20 21.

(enc "result" a nb (ltk b s)) (enc a x (ltk b s)) x nb a ((x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s)) resp tagged_an_woo_lam 16
(defskeleton tagged_an_woo_lam
  (vars (x mesg) (nb text) (s a b name))
  (defstrand resp 5 (x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s))
  (non-orig (ltk a s) (ltk b s))
  (uniq-orig nb)
  (traces
    ((recv a) (send nb) (recv x) (send (enc a x (ltk b s)))
      (recv (enc "result" a nb (ltk b s)))))
  (label 16)
  (unrealized (0 4))
  (origs (nb (0 1)))
  (comment "1 in cohort - 1 not yet seen"))

Item 20, Parent: 16.

(enc nb (ltk a s)) nb a (enc "result" a nb (ltk b s)) (enc a (enc nb (ltk a s)) (ltk b s)) (enc "result" a nb (ltk b s)) (enc a (enc nb (ltk a s)) (ltk b s)) (enc nb (ltk a s)) nb a ((nb nb) (my_init_id a) (s s)) init ((nb nb) (a a) (b b) (s s)) server ((x (enc nb (ltk a s))) (nb nb) (my_resp_id b) (yr_init_id a) (s s)) resp tagged_an_woo_lam 20 (realized)
(defskeleton tagged_an_woo_lam
  (vars (nb text) (s a b name))
  (defstrand resp 5 (x (enc nb (ltk a s))) (nb nb) (my_resp_id b)
    (yr_init_id a) (s s))
  (defstrand server 2 (nb nb) (a a) (b b) (s s))
  (defstrand init 3 (nb nb) (my_init_id a) (s s))
  (precedes ((0 1) (2 1)) ((0 3) (1 0)) ((1 1) (0 4)) ((2 2) (0 2)))
  (non-orig (ltk a s) (ltk b s))
  (uniq-orig nb)
  (operation encryption-test (added-strand init 3) (enc nb (ltk a s))
    (0 2))
  (traces
    ((recv a) (send nb) (recv (enc nb (ltk a s)))
      (send (enc a (enc nb (ltk a s)) (ltk b s)))
      (recv (enc "result" a nb (ltk b s))))
    ((recv (enc a (enc nb (ltk a s)) (ltk b s)))
      (send (enc "result" a nb (ltk b s))))
    ((send a) (recv nb) (send (enc nb (ltk a s)))))
  (label 20)
  (parent 16)
  (unrealized)
  (shape)
  (maps ((0) ((nb nb) (s s) (a a) (b b) (x (enc nb (ltk a s))))))
  (origs (nb (0 1))))

Item 21, Parent: 16.

(enc nb (ltk a s)) nb a (enc a (enc nb (ltk a s)) (ltk b s)) (enc nb (ltk a s)) nb-0 a (enc "result" a nb (ltk b s)) (enc a (enc nb (ltk a s)) (ltk b s)) (enc "result" a nb (ltk b s)) (enc a x (ltk b s)) x nb a ((nb nb) (my_init_id a) (s s)) init ((x (enc nb (ltk a s))) (nb nb-0) (my_resp_id b) (yr_init_id a) (s s)) resp ((nb nb) (a a) (b b) (s s)) server ((x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s)) resp tagged_an_woo_lam 21 (realized)
(defskeleton tagged_an_woo_lam
  (vars (x mesg) (nb nb-0 text) (s a b name))
  (defstrand resp 5 (x x) (nb nb) (my_resp_id b) (yr_init_id a) (s s))
  (defstrand server 2 (nb nb) (a a) (b b) (s s))
  (defstrand resp 4 (x (enc nb (ltk a s))) (nb nb-0) (my_resp_id b)
    (yr_init_id a) (s s))
  (defstrand init 3 (nb nb) (my_init_id a) (s s))
  (precedes ((0 1) (3 1)) ((1 1) (0 4)) ((2 3) (1 0)) ((3 2) (2 2)))
  (non-orig (ltk a s) (ltk b s))
  (uniq-orig nb)
  (operation encryption-test (added-strand init 3) (enc nb (ltk a s))
    (2 2))
  (traces
    ((recv a) (send nb) (recv x) (send (enc a x (ltk b s)))
      (recv (enc "result" a nb (ltk b s))))
    ((recv (enc a (enc nb (ltk a s)) (ltk b s)))
      (send (enc "result" a nb (ltk b s))))
    ((recv a) (send nb-0) (recv (enc nb (ltk a s)))
      (send (enc a (enc nb (ltk a s)) (ltk b s))))
    ((send a) (recv nb) (send (enc nb (ltk a s)))))
  (label 21)
  (parent 16)
  (unrealized)
  (shape)
  (maps ((0) ((nb nb) (s s) (a a) (b b) (x x))))
  (origs (nb (0 1))))