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:

  1. Structural/Interpretive Layer: Definitions, institutions, basic concepts

  2. Deontic Rules Layer: Obligations, powers, prohibitions

  3. 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