BECAUSE

BECAUSE gives the reason for a breach. It comes after BREACH, optionally with BY and the party in breach.

Syntax

BREACH BECAUSE reason
BREACH BY party BECAUSE reason
Form Records
BREACH that a breach happened
BREACH BY Seller who is in breach
BREACH BECAUSE "reason" why
BREACH BY Seller BECAUSE "reason" who and why

The reason is a STRING, either text in quotes or an expression that gives text.

Example file:

-- BECAUSE Keyword Examples
-- Demonstrates breach reasons in regulative rules

--------------------------------------------------------------------------------
-- Type Declarations
--------------------------------------------------------------------------------

DECLARE Person IS ONE OF Seller, Buyer, Employee, Employer, Tenant, Landlord

DECLARE Action IS ONE OF
  `deliver goods`
  `pay amount` HAS amount IS A NUMBER
  `pass inspection`
  `disclose information`
  `pay rent` HAS amount IS A NUMBER
  `maintain property`
  smoke

--------------------------------------------------------------------------------
-- Basic BECAUSE Usage
--------------------------------------------------------------------------------

-- Simple breach with reason only
`delivery with reason` MEANS
  PARTY Seller
  MUST `deliver goods`
  WITHIN 14
  HENCE FULFILLED
  LEST BREACH BECAUSE "delivery deadline exceeded"

-- Full form: BY party BECAUSE reason
`delivery full form` MEANS
  PARTY Seller
  MUST `deliver goods`
  WITHIN 14
  HENCE FULFILLED
  LEST BREACH BY Seller BECAUSE "failed to deliver within contractual period"

--------------------------------------------------------------------------------
-- Distinguishing Different Breach Types
--------------------------------------------------------------------------------

-- Payment deadline breach
`payment deadline` MEANS
  PARTY Buyer
  MUST `pay amount` 1000
  WITHIN 30
  HENCE FULFILLED
  LEST BREACH BY Buyer BECAUSE "payment received after deadline"

-- Quality inspection failure
`quality check` MEANS
  PARTY Seller
  MUST `pass inspection`
  WITHIN 7
  HENCE FULFILLED
  LEST BREACH BY Seller BECAUSE "goods failed quality inspection per spec A.3"

--------------------------------------------------------------------------------
-- Referencing Legal Text in Reasons
--------------------------------------------------------------------------------

-- Reference to contract section
`nda obligation` MEANS
  PARTY Employee
  SHANT `disclose information`
  HENCE FULFILLED
  LEST BREACH BY Employee BECAUSE "violated NDA section 3.2"

-- Reference to lease agreement
`subletting prohibition` MEANS
  PARTY Tenant
  SHANT `disclose information`
  HENCE FULFILLED
  LEST BREACH BY Tenant BECAUSE "violated lease agreement section 8"

--------------------------------------------------------------------------------
-- Chained Obligations with Different Reasons
--------------------------------------------------------------------------------

`rental agreement` MEANS
  PARTY Tenant
  MUST `pay rent` 2000
  WITHIN 5
  HENCE (
    PARTY Landlord
    MUST `maintain property`
    WITHIN 30
    HENCE FULFILLED
    LEST BREACH BY Landlord BECAUSE "failed to perform maintenance duties"
  )
  LEST BREACH BY Tenant BECAUSE "rent payment overdue"

--------------------------------------------------------------------------------
-- BECAUSE in Prohibition (SHANT)
--------------------------------------------------------------------------------

`no smoking policy` MEANS
  PARTY Employee
  SHANT smoke
  HENCE FULFILLED
  LEST BREACH BY Employee BECAUSE "violated workplace no-smoking policy"

--------------------------------------------------------------------------------
-- Testing with #TRACE
--------------------------------------------------------------------------------

-- Test 1: Obligation fulfilled (no breach)
#TRACE `delivery with reason` AT 0 WITH
  PARTY Seller DOES `deliver goods` AT 10

-- Test 2: Obligation breached (deadline passes without action)
-- This will show the BECAUSE reason in the breach output
#TRACE `delivery full form` AT 0 WITH
  WAITUNTIL 15

-- Test 3: Prohibition violated
#TRACE `no smoking policy` AT 0 WITH
  PARTY Employee DOES smoke AT 5

-- Test 4: Chained obligation - first party fulfills, second breaches
#TRACE `rental agreement` AT 0 WITH
  PARTY Tenant DOES `pay rent` 2000 AT 3
  WAITUNTIL 40

Example

DECLARE Party IS ONE OF Buyer, Seller
DECLARE Action IS ONE OF `pay invoice` HAS amount IS A NUMBER

`the amount due` MEANS 1000

GIVETH A DEONTIC Party Action
`payment` MEANS
  PARTY Buyer
  MUST `pay invoice` (EXACTLY `the amount due`)
  WITHIN 30
  HENCE FULFILLED
  LEST BREACH BY Buyer BECAUSE (CONCAT "failed to pay ", TOSTRING `the amount due`)

#TRACE `payment` AT 0 WITH
  WAITUNTIL 31

The #TRACE result shows the breach with its party and reason: BREACH BY Buyer BECAUSE "failed to pay 1000".

BREACH … BECAUSE usually follows LEST, but it can stand wherever a rule can, for example after HENCE or in a branch of an IF. When a contract has several ways to fail, give each its own reason, and cite the clause or section it comes from, so a reader of the result knows which duty failed and why.