cba_appraise_sink.md
Copland Source
*client: @bank attest bank sys -> @appraiser appraise appraiser bank -> {} +<+ !
Abstract Syntax Tree
AST
n0
attest bank sys
n1
appraise appraiser bank
n2
{}
n3
->
n3->n1
n3->n2
n4
!
n5
+<+
n5->n3
n5->n4
n6
@appraiser
n6->n5
n7
->
n7->n0
n7->n6
n8
@bank
n8->n7
Events and Evidence
Copland
cluster_appraiser
appraiser
cluster_bank
bank
cluster_client
client
n19
s(mt, g(m(msp(attest, bank, sys), bank, mt), appraiser))
n20
client: rpy(bank)
n19->n20
n21
s(mt, g(m(msp(attest, bank, sys), bank, mt), appraiser))
n20->n21
n17
s(mt, g(m(msp(attest, bank, sys), bank, mt), appraiser))
n18
bank: rpy(appraiser)
n17->n18
n18->n19
n5
bank: req(appraiser)
n5->n18
n6
m(msp(attest, bank, sys), bank, mt)
n5->n6
n7
appraiser: +<+ split
n6->n7
n1
client: req(bank)
n1->n20
n2
mt
n1->n2
n3
bank: msp(attest, bank, sys)
n2->n3
n16
appraiser: join
n16->n17
n15
g(m(msp(attest, bank, sys), bank, mt), appraiser)
n15->n16
n12
mt
n12->n16
n11
appraiser: nul
n11->n12
n14
appraiser: sig
n11->n14
n14->n15
n13
m(msp(attest, bank, sys), bank, mt)
n13->n14
n7->n13
n8
m(msp(attest, bank, sys), bank, mt)
n7->n8
n10
m(msp(appraise, appraiser, bank), appraiser, m(msp(attest, bank, sys), bank, mt))
n10->n11
n9
appraiser: msp(appraise, appraiser, bank)
n9->n10
n8->n9
n4
m(msp(attest, bank, sys), bank, mt)
n4->n5
n3->n4
n0
mt
n0->n1