/* * Sale with 2 levels of risk */ initial: c(fp, inv, invested). constitutive: propose_solution means proposed_RiskL if !proposed_RiskL & !proposed_RiskL2 & !rejected_proposal. propose_solution2 means proposed_RiskL2 if !proposed_RiskL2 & !proposed_RiskL & !rejected_proposal. reject_proposal means rejected_proposal, release(c(fp, inv, invested)) if !accepted_proposal & ( proposed_RiskL | proposed_RiskL2 ) & !rejected_proposal. sign_order means create(c(inv, bank, contract_ended)), accepted_proposal, order_signed if !order_signed & ( proposed_RiskL | proposed_RiskL2 ) & !rejected_proposal. send_contract means create(c(bank, inv, executed_order)), invested, contract_sent if !contract_sent & order_signed. end means executed_order, contract_ended if contract_sent & !contract_ended & !contract_abort.