A Real Regulatory Scheme
The example of the Jersey Charities Law
We'll build a complete model of real legislation step by step.
4.1 The Three Layers Architecture
Real legislation has three types of provisions:
Structural/Interpretive Layer: Definitions, institutions, basic concepts
Deontic Rules Layer: Obligations, powers, prohibitions
Register/State-Transition Layer: How actions change official records
Jersey Charities Example:
Layer 1 - Structural:
IMPORT prelude
-- Basic definitions (Art 1-2)
DECLARE Purpose IS ONE OF
`prevention or relief of poverty`
`advancement of education`
`advancement of religion`
`advancement of health`
`advancement of animal welfare`
-- Additional statutory purposes would go here
-- Date type for official records
DECLARE Date
HAS year IS A NUMBER
month IS A NUMBER
day IS A NUMBER
-- Institutions (Art 3-4)
DECLARE Commissioner
HAS name IS A STRING
DECLARE CharityRegister
HAS activeCharities IS A LIST OF RegisteredCharity
lastUpdated IS A Date
Layer 2 - Deontic Rules:
-- Annual return obligation (Art 13)
DECLARE Actor IS ONE OF
CharityActor HAS charity IS A RegisteredCharity
DECLARE Action IS ONE OF
FileReturn HAS financialData IS A STRING
DECLARE RegisteredCharity
HAS name IS A STRING
registrationNumber IS A STRING
purposes IS A LIST OF Purpose
isActive IS A BOOLEAN
GIVEN charity IS A RegisteredCharity
GIVETH A CONTRACT Actor Action
`annual return process` MEANS
PARTY CharityActor charity
MUST FileReturn "financial data"
WITHIN 60 -- 2 months in days
HENCE FULFILLED -- transparency maintained
LEST FULFILLED -- Commissioner may issue Required Steps Notice
Layer 3 - Register Events:
-- How filing updates the register
DECLARE RegisterAction IS ONE OF
AnnualReturnLogged HAS charity IS A RegisteredCharity
date IS A Date
4.2 Building Your Register
Start with an empty register:
DECIDE emptyRegister IS CharityRegister (LIST) (Date 2024 1 1)
Add registration process:
DECLARE Actor IS ONE OF
ApplicantActor HAS name IS A STRING
CommissionerActor
DECLARE Action IS ONE OF
ProvideApplication HAS documents IS A STRING
GIVEN applicant IS A STRING
GIVETH A CONTRACT Actor Action
`registration process` MEANS
PARTY ApplicantActor applicant
MUST ProvideApplication "required documents"
WITHIN 30 -- reasonable time
HENCE FULFILLED -- Commissioner assessment process
LEST FULFILLED -- Application incomplete
4.3 Enforcement and Sanctions
Real law includes enforcement mechanisms:
DECLARE Action IS ONE OF
SuspendGovernor HAS governor IS A STRING
reason IS A STRING
IssueNotice HAS steps IS A STRING
-- Governor misconduct (Art 19-20)
GIVEN misconductDetected IS A BOOLEAN
GIVETH A CONTRACT Actor Action
`misconduct response` MEANS
IF misconductDetected EQUALS TRUE
THEN PARTY CommissionerActor
MUST SuspendGovernor "governor name" "misconduct reason"
WITHIN 14 -- days
HENCE FULFILLED -- disciplinary action recorded
LEST FULFILLED -- misconduct unaddressed
ELSE FULFILLED
-- Required Steps Notice (Art 27)
GIVEN complianceFailure IS A BOOLEAN
GIVETH A CONTRACT Actor Action
`enforcement escalation` MEANS
IF complianceFailure EQUALS TRUE
THEN PARTY CommissionerActor
MUST IssueNotice "required steps and deadline"
WITHIN 7 -- days
HENCE FULFILLED -- charity must comply or face deregistration
LEST FULFILLED -- enforcement action required
ELSE FULFILLED
Last updated