BECAUSE
Provides a reason or justification for a breach in regulative rules. Used with BREACH to document why a violation occurred.
Syntax
BREACH BECAUSE reason
BREACH BY party BECAUSE reason
Where:
party- The party responsible for the breach (optional)reason- A STRING explaining why the breach occurred
Purpose
BECAUSE serves two purposes in L4:
- Documentation - Records the legal reason for a breach, useful for generating explanations and audit trails
- Specificity - Distinguishes between different types of breaches in complex contracts
Examples
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
-- 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
Basic BECAUSE
-- Breach with reason only
PARTY Seller
MUST `deliver goods`
WITHIN 14
LEST BREACH BECAUSE "failed to deliver within deadline"
Full Form: BY and BECAUSE
-- Breach with party and reason
PARTY Seller
MUST `deliver goods`
WITHIN 14
LEST BREACH BY Seller BECAUSE "failed to deliver within deadline"
Multiple Breach Types
BECAUSE allows distinguishing between different breach scenarios:
-- Different breach reasons for different conditions
`delivery obligation` MEANS
PARTY Seller
MUST `deliver goods` qty PROVIDED qty AT LEAST 100
WITHIN 14
HENCE FULFILLED
LEST BREACH BY Seller BECAUSE "insufficient quantity delivered"
`quality obligation` MEANS
PARTY Seller
MUST `pass inspection`
WITHIN 7
HENCE FULFILLED
LEST BREACH BY Seller BECAUSE "goods failed quality inspection"
Usage Patterns
With LEST (Most Common)
BECAUSE typically appears in the LEST clause to explain what went wrong:
PARTY Employee
SHANT `disclose confidential information`
HENCE FULFILLED
LEST BREACH BY Employee BECAUSE "violated NDA section 3.2"
With HENCE (Unusual but Valid)
In rare cases, BECAUSE can appear with HENCE when exercising a permission itself triggers a breach:
-- Smoking is permitted but still recorded as a policy violation
PARTY Employee
MAY smoke
WITHIN 30
HENCE BREACH BY Employee BECAUSE "smoking policy violation logged"
In Chained Obligations
`payment chain` MEANS
PARTY Buyer
MUST `pay deposit` 1000
WITHIN 7
HENCE (
PARTY Buyer
MUST `pay balance` 9000
WITHIN 30
HENCE FULFILLED
LEST BREACH BY Buyer BECAUSE "failed to pay balance"
)
LEST BREACH BY Buyer BECAUSE "failed to pay deposit"
BREACH Forms
BREACH can be used in several forms:
| Form | Example | Description |
|---|---|---|
| Simple | BREACH |
Anonymous breach |
| With party | BREACH BY Seller |
Identifies responsible party |
| With reason | BREACH BECAUSE "reason" |
Documents why |
| Full form | BREACH BY Seller BECAUSE "reason" |
Complete breach info |
Best Practices
1. Be Specific
-- ✅ Good: Specific reason
LEST BREACH BY Seller BECAUSE "delivery exceeded 14-day SLA"
-- ❌ Vague: Doesn't help with analysis
LEST BREACH BECAUSE "failed"
2. Reference Legal Text
-- ✅ Good: References contract section
LEST BREACH BY Tenant BECAUSE "violated lease agreement section 8.3"
-- ✅ Also good: References regulation
LEST BREACH BY Employer BECAUSE "non-compliance with Employment Act s.42"
3. Use Meaningful Party Names
-- ✅ Good: Clear party identification
LEST BREACH BY `The Borrower` BECAUSE "exceeded debt covenant"
-- Less clear
LEST BREACH BY x BECAUSE "exceeded debt covenant"
4. Distinguish Breach Types
When a contract has multiple potential breaches, use BECAUSE to distinguish them:
-- Payment late vs. payment insufficient
LEST BREACH BY Buyer BECAUSE "payment received after deadline"
-- vs.
LEST BREACH BY Buyer BECAUSE "payment amount below minimum"
Type Checking
The BECAUSE clause must be a STRING type:
-- ✅ Valid: String literal
LEST BREACH BECAUSE "reason text"
-- ✅ Valid: String expression
LEST BREACH BECAUSE (CONCAT "failed to pay ", TOSTRING amount)
-- ❌ Invalid: Not a string
-- LEST BREACH BECAUSE 42
Evaluation and Tracing
When tracing regulative rules, BECAUSE reasons appear in the output:
#TRACE obligation AT 0 WITH
-- No action taken, deadline passes
-- Output includes: BREACH BY Seller BECAUSE "failed to deliver"
This helps with:
- Debugging contracts during development
- Explainability when generating reports
- Audit trails for compliance
Related Keywords
- BREACH - The violation marker
- BY - Identifies the breaching party
- LEST - Breach consequence clause
- HENCE - Fulfillment consequence
See Also
- Regulative Rules Overview - Complete regulative syntax
- SHANT - Prohibitions (often use BECAUSE)
- MUST - Obligations
- Regulative Rules Concept - Conceptual overview