Shoresh Engine (Haskell, Step 5) - 12 modules: Types, Lexicon, Binyanim, Teamim, Gematria, Graph, KetivQere, Smikhut, Havdalah, Kriah, KiTov, Firmware - 33 EUnit tests, 0 failures - Firmware module verifies L1 SHA-256 hash at startup Talmudic Engine (SWI-Prolog, Step 6) - 15 modules: halt, reasoning, specification, interface - 57 PlUnit tests, 0 failures - Three cardinal halt conditions: avodah_zarah, shfichut_damim, gilui_arayot Vav Pipeline (Elixir, Steps 8-11) - 14 modules: BereishitCycle, Shema, Cloud, Manna, L1Reader, Specification, HaltConditions, ShabbatTimer, CycleLog, Chatzotzrot, ShoreshEngineClient, TalmudicEngineClient, Application - 46 ExUnit tests, 0 failures - Nishma-first architecture: hears before it speaks Sanhedrin Framework (Erlang/OTP, Step 12) - 8 modules: sanhedrin_app, sanhedrin_sup, escalation, panel_sup, panel, judge, clerk, halt_monitor - 46 EUnit tests, 0 failures (includes fix: rejected outcome now reachable) - Panel sizes: 1/3/23/71 — unanimous capital guilty → acquit (Sanhedrin 17a) - Minority opinions append-only, never deleted Korban Processor (Python, Step 13) - 6 modules: korban, shechitah, semichah, zerikah, haktarah, router Builder tooling: AGENTS.md, opencode.json, memory/, src/tools/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
72 lines
2.5 KiB
Haskell
72 lines
2.5 KiB
Haskell
{-# LANGUAGE OverloadedStrings #-}
|
|
|
|
-- | Luchot — L0 immutable constants.
|
|
--
|
|
-- Architecture §3.7:
|
|
-- "Compiled Haskell constants. Cannot be modified at runtime."
|
|
--
|
|
-- The Ten Commandments as firmware. If violated, the program
|
|
-- does not function correctly — not as a runtime check,
|
|
-- but as a structural fact of the code.
|
|
--
|
|
-- The L1 integrity hash is stored here — the luchot carry
|
|
-- the fingerprint of the scroll.
|
|
module Luchot.Firmware
|
|
( -- * L1 Integrity
|
|
l1ExpectedHash
|
|
-- * Constants
|
|
, torahBookCount
|
|
, torahVerseCount
|
|
, torahWordCount
|
|
, uniqueRootCount
|
|
-- * Dibrot (structural constants)
|
|
, Dibrot(..)
|
|
, dibrot
|
|
) where
|
|
|
|
import Data.Text (Text)
|
|
|
|
-- | The expected SHA-256 hash of the L1 Torah filesystem.
|
|
-- From build_report.json and verified during L1 build.
|
|
-- If the hash does not match, the specification is compromised.
|
|
l1ExpectedHash :: Text
|
|
l1ExpectedHash = "0ee0020aac6c6beb0e83c0638a861c73d37d9dbd39c30d3cb08c1878b481c844"
|
|
|
|
-- | Torah book count. Five books. Not four, not six.
|
|
torahBookCount :: Int
|
|
torahBookCount = 5
|
|
|
|
-- | Total verse count per WLC versification.
|
|
-- 5853, not traditional 5845. See build log entry #4.
|
|
torahVerseCount :: Int
|
|
torahVerseCount = 5853
|
|
|
|
-- | Total word count across Torah.
|
|
torahWordCount :: Int
|
|
torahWordCount = 79982
|
|
|
|
-- | Unique root count found in L1.
|
|
uniqueRootCount :: Int
|
|
uniqueRootCount = 2608
|
|
|
|
|
|
-- | The Ten Dibrot as a structural record.
|
|
-- These are not runtime values to check. They are the structure itself.
|
|
-- A system that violates them is not a broken system — it is not this system.
|
|
data Dibrot = Dibrot
|
|
{ anochi :: () -- ^ I am YHVH your God — the system has a source
|
|
, loYihyeh :: () -- ^ No other gods — no external authority replaces Torah
|
|
, loTissa :: () -- ^ Do not take the Name in vain — accuracy in attribution
|
|
, zachor :: () -- ^ Remember Shabbat — mandatory cessation
|
|
, kabed :: () -- ^ Honor father and mother — respect the chain of transmission
|
|
, loTirtzach :: () -- ^ Do not murder — halt on destruction of tzelem
|
|
, loTinaf :: () -- ^ Do not commit adultery — maintain required distinctions
|
|
, loTignov :: () -- ^ Do not steal — proper attribution of sources
|
|
, loTaaneh :: () -- ^ Do not bear false witness — accuracy in reasoning
|
|
, loTachmod :: () -- ^ Do not covet — the system does not exceed its provision
|
|
} deriving (Eq, Show)
|
|
|
|
-- | The dibrot, instantiated. They exist.
|
|
dibrot :: Dibrot
|
|
dibrot = Dibrot () () () () () () () () () ()
|