/* * Sale */ constitutive: /* * The following implements the Sale */ propose_solution means propose_solution if !propose_solution. accept_proposal means accept_proposal, create(cc(inv,bank,issue_contract,sign_contract)) if !accept_proposal & propose_solution. introduce_investor means introduce_investor if !introduce_investor. issue_contract means issue_contract if !issue_contract & introduce_investor & !withdraw. sign_contract means sign_contract if !sign_contract & issue_contract & !withdraw. countersign_contract means countersign_contract, create(cc(bank,inv,sign_contract,invest)), create(cc(bank,fp,sign_contract,notify)) if !countersign_contract & issue_contract & !withdraw. notify means notify if sign_contract & countersign_contract & !notify. invest means invest if sign_contract & !invest & !withdraw. withdraw means withdraw, release(cc(bank,inv,sign_contract,invest)), release(c(bank,inv,invest)), cancel(c(inv,bank,sign_contract)) if countersign_contract & !invest & !withdraw. regulative: created(cc(inv,bank,issue_contract,sign_contract)) .->. introduce_investor. created(cc(inv,bank,issue_contract,sign_contract)) .-> issue_contract. sign_contract .- created(c(bank,inv,invest)). created(c(bank,fp,notify)) ->. invest.