+= Sequential composition (A then B)||= Parallel composition (A and B simultaneously)⊕= Conditional composition (A if condition, else B)*= Repeated application (A × n times)~= Reverse operation→= Transformation/mapping∅= Null operation (no-op)Σ= Summation over collection
Purpose: Add physical assets (Cash, NonFinancialAsset) to balance sheet
Notation: AddAsset(asset, holder)
Constraint: No liability counterpart
Purpose: Create financial instruments with both asset and liability sides
Notation: AddAssetLiabilityPair(instrument, creditor, debtor)
Constraint: Requires liability counterpart
Purpose: Remove physical assets (consumption/disposal)
Notation: ConsumeAsset(asset, holder)
Constraint: Only for Cash, NonFinancialAsset
Purpose: Settle financial obligations by removing both sides
Notation: RemoveAssetLiabilityPair(instrument, creditor, debtor)
Purpose: Move assets between agents (simple for physical, claim transfer for financial)
Notation: TransferAsset(asset, from, to)
Purpose: Transfer asset + create new liability
Notation: TransferAssetWithLiability(asset, from, to, new_liability)
Composition: TransferAsset(asset, from, to) + AddAssetLiabilityPair(new_liability, from, to)
Purpose: Divide one asset into multiple parts
Notation: SplitAsset(asset, ratios[], holders[])
Composition: ~ConsumeAsset(asset, original_holder) + Σ(AddAsset(asset_part[i], holder[i]))
Purpose: Combine multiple identical assets
Notation: MergeAssets(assets[], target_holder)
Composition: Σ(ConsumeAsset(asset[i], holder[i])) + AddAsset(merged_asset, target_holder)
Purpose: Direct bilateral asset exchange
Notation: SwapAssets(asset1, agent1, asset2, agent2)
Composition: TransferAsset(asset1, agent1, agent2) || TransferAsset(asset2, agent2, agent1)
Purpose: Use asset to settle a liability
Notation: PayWithAsset(payment_asset, liability, payer, payee)
Composition: TransferAsset(payment_asset, payer, payee) + RemoveAssetLiabilityPair(liability, payee, payer)
Purpose: Create new instruments and distribute to multiple holders
Notation: IssueAndDistribute(instrument_type, issuer, holders[], amounts[])
Composition: Σ(AddAssetLiabilityPair(instrument[i], holder[i], issuer))
Purpose: Loan secured by transferring collateral
Notation: CollateralizedLoan(collateral, borrower, lender, loan)
Composition: TransferAsset(collateral, borrower, lender) + AddAssetLiabilityPair(loan, lender, borrower)
Purpose: Repurchase agreement
Notation: RepoTransaction(security, cash, seller, buyer, repo_term)
Composition: SwapAssets(security, seller, cash, buyer) + AddAssetLiabilityPair(repo_agreement, seller, buyer)
Purpose: Cancel offsetting obligations
Notation: NetSettlement(claims[], counterclaims[], party1, party2)
Composition:
net = Σ(claims) - Σ(counterclaims)
(Σ(RemoveAssetLiabilityPair(claim[i])) || Σ(RemoveAssetLiabilityPair(counterclaim[j]))) +
(net > 0 ? AddAssetLiabilityPair(net_claim, party1, party2) :
net < 0 ? AddAssetLiabilityPair(net_claim, party2, party1) : ∅)
Purpose: Lend securities for fee
Notation: SecuritiesLending(securities, lender, borrower, fee, collateral)
Composition:
TransferAsset(securities, lender, borrower) +
TransferAsset(collateral, borrower, lender) +
AddAssetLiabilityPair(securities_loan, borrower, lender) +
AddAssetLiabilityPair(fee_obligation, borrower, lender)
Purpose: Demand additional collateral
Notation: MarginCall(required_collateral, borrower, lender, existing_loan)
Composition:
TransferAsset(required_collateral, borrower, lender) ⊕
ForceDefault(existing_loan, borrower, lender)
Purpose: Issue shares for cash
Notation: EquityIssuance(share_amount, company, investors[], prices[])
Composition:
Σ(AddAssetLiabilityPair(shares[i], investor[i], company)) ||
Σ(TransferAsset(cash[i], investor[i], company))
Purpose: Distribute profits to shareholders
Notation: DividendPayment(company, shareholders[], dividend_per_share)
Composition:
Σ(TransferAsset(cash[i], company, shareholder[i]))
where cash[i] = shares_held[i] * dividend_per_share
Purpose: Company repurchases own shares
Notation: ShareBuyback(company, shareholders[], shares[], prices[])
Composition:
Σ(TransferAsset(cash[i], company, shareholder[i])) ||
Σ(RemoveAssetLiabilityPair(shares[i], shareholder[i], company))
Purpose: Modify existing debt terms
Notation: DebtRestructuring(old_debt, new_terms, creditor, debtor)
Composition:
RemoveAssetLiabilityPair(old_debt, creditor, debtor) +
AddAssetLiabilityPair(new_debt, creditor, debtor)
Purpose: Convert bonds to equity
Notation: ConvertibleBondConversion(bonds, bondholder, company, conversion_ratio)
Composition:
RemoveAssetLiabilityPair(bonds, bondholder, company) +
AddAssetLiabilityPair(shares, bondholder, company)
Purpose: Create loans based on deposits
Notation: FractionalReserveLending(bank, depositor, borrower, deposit_amount, reserve_ratio)
Composition:
AddAssetLiabilityPair(deposit, depositor, bank) +
AddAsset(reserves, bank) * reserve_ratio +
AddAssetLiabilityPair(loan, bank, borrower) * (1 - reserve_ratio)
Purpose: Banks lend reserves overnight
Notation: InterbankLending(reserves, lending_bank, borrowing_bank, rate)
Composition:
TransferAsset(reserves, lending_bank, borrowing_bank) +
AddAssetLiabilityPair(overnight_loan, lending_bank, borrowing_bank)
Purpose: Mass withdrawal scenario
Notation: BankRun(bank, depositors[], fraction_withdrawing)
Composition:
Σ(RemoveAssetLiabilityPair(deposit[i], depositor[i], bank)) * fraction_withdrawing ⊕
(insufficient_reserves ? CentralBankEmergencyLending(bank) : ∅)
Purpose: Multiple banks share large loan
Notation: SyndicatedLoan(borrower, lead_bank, participant_banks[], shares[])
Composition:
AddAssetLiabilityPair(master_loan, lead_bank, borrower) +
Σ(TransferAsset(loan_participation[i], lead_bank, participant_bank[i]))
Purpose: Central bank buys/sells securities
Notation: OpenMarketOperation(central_bank, banks[], securities[], direction)
Composition:
direction = "buy" ?
Σ(SwapAssets(reserves, central_bank, securities[i], bank[i])) :
Σ(SwapAssets(securities[i], central_bank, reserves, bank[i]))
Purpose: Large-scale asset purchases
Notation: QuantitativeEasing(central_bank, asset_types[], amounts[])
Composition:
Σ(AddAsset(reserves, central_bank)) +
Σ(TransferAsset(assets[i], market_participants[i], central_bank)) ||
Σ(TransferAsset(reserves, central_bank, market_participants[i]))
Purpose: Change required reserve ratios
Notation: ReserveRequirementAdjustment(banks[], old_ratio, new_ratio)
Composition:
new_ratio > old_ratio ?
Σ(TransferAsset(additional_reserves[i], bank[i], central_bank)) :
Σ(TransferAsset(excess_reserves[i], central_bank, bank[i]))
Purpose: Issue digital currency
Notation: CBDC_Issuance(central_bank, users[], amounts[])
Composition:
Σ(AddAssetLiabilityPair(cbdc[i], user[i], central_bank))
Purpose: Acquire company using debt
Notation: LBO(target, acquirer, lenders[], equity_fraction)
Composition:
EquityIssuance(shares, acquirer, equity_investors, equity_amount) +
Σ(CollateralizedLoan(target_assets[i], acquirer, lender[i], loan[i])) +
TransferAsset(target_ownership, current_owners, acquirer)
Purpose: Transfer credit risk
Notation: CDS(reference_asset, protection_buyer, protection_seller, premium)
Composition:
AddAssetLiabilityPair(cds_contract, protection_buyer, protection_seller) +
(Σ(TransferAsset(premium[t], protection_buyer, protection_seller)) * periods) +
(default_event ? TransferAsset(protection_payment, protection_seller, protection_buyer) : ∅)
Purpose: Pool assets and issue tranched securities
Notation: Securitization(originator, assets[], spv, tranches[])
Composition:
Σ(TransferAsset(assets[i], originator, spv)) +
Σ(IssueAndDistribute(tranche[j], spv, investors[j], amounts[j]))
Purpose: Central counterparty clearing
Notation: ClearDerivative(derivative, party1, party2, ccp)
Composition:
RemoveAssetLiabilityPair(derivative, party1, party2) +
AddAssetLiabilityPair(derivative_leg1, party1, ccp) +
AddAssetLiabilityPair(derivative_leg2, ccp, party2) +
TransferAsset(initial_margin1, party1, ccp) ||
TransferAsset(initial_margin2, party2, ccp)
Purpose: Cascading defaults
Notation: FinancialCrisis(trigger_default, contagion_probability)
Composition:
ForceDefault(trigger_asset, debtor, creditor) +
Σ(exposure[i] > threshold[i] ?
FinancialCrisis(exposed_asset[i], contagion_probability * decay) : ∅)
Purpose: Government rescue of financial institution
Notation: BailOut(government, failing_institution, amount)
Composition:
AddAssetLiabilityPair(government_bonds, government, bondholders) ||
TransferAsset(cash, bondholders, government) +
TransferAsset(cash, government, failing_institution) +
AddAssetLiabilityPair(equity_stake, government, failing_institution)
Purpose: Convert liabilities to equity
Notation: BailIn(failing_bank, liability_holders[], conversion_ratios[])
Composition:
Σ(RemoveAssetLiabilityPair(liability[i], holder[i], failing_bank)) +
Σ(AddAssetLiabilityPair(equity[i], holder[i], failing_bank))
Purpose: Halt trading during extreme volatility
Notation: CircuitBreaker(market, trigger_condition)
Composition:
trigger_condition = true ?
(All_Pending_Operations → ∅) + Wait(cooldown_period) : ∅
Purpose: Simulate adverse scenarios
Notation: StressTest(banks[], scenarios[], required_capital_ratio)
Composition:
Σ(Σ(ApplyScenario(scenario[j], bank[i]))) +
Σ(capital_ratio[i] < required ?
CapitalRaising(bank[i], required - current) : ∅)
Purpose: Orderly wind-down of failing institution
Notation: Resolution(failing_institution, resolution_authority)
Composition:
TransferAsset(critical_functions, failing_institution, bridge_bank) +
BailIn(failing_institution, subordinated_creditors, conversion_ratios) +
Σ(TransferAsset(good_assets[i], failing_institution, acquirers[i])) +
AddAsset(bad_assets, bad_bank)
Purpose: System-wide regulatory changes
Notation: MacroprudentialPolicy(policy_type, banks[], parameters)
Composition:
policy_type = "countercyclical_buffer" ?
Σ(AddAsset(additional_capital[i], bank[i])) :
policy_type = "ltv_limit" ?
Σ(∀ new_loans: CollateralizedLoan.collateral/loan > ltv_limit) :
policy_type = "concentration_limit" ?
Σ(∀ bank[i]: exposure_to_sector / total_assets < limit) : ∅
EconomicCycle =
// Expansion
(FractionalReserveLending * n_loans) +
(EquityIssuance * n_ipos) +
(Securitization * n_pools) +
// Peak
(MarginCall * n_leveraged_positions) +
(RepoTransaction * n_funding_needs) +
// Contraction
(NetSettlement * n_counterparties) +
(DebtRestructuring * n_distressed) +
// Trough
(BankRun ⊕ CentralBankEmergencyLending) +
(FinancialCrisis(trigger, 0.6) ⊕ BailOut) +
// Recovery
(QuantitativeEasing + OpenMarketOperation) +
(StressTest + CapitalRaising) +
(ResolutionRegime * n_failed_institutions)