# Northbridge: from first permit to a complete case Learn Law DSL through the work of a fictional municipality. Start with a resident applying for a permit; follow the case through missing facts, conflicting documents, time limits, obligations, and appeal. Each chapter includes code, observed results, an exercise, and a worked solution. [Start with the first permit](/tutorials/northbridge/nb-01-first-permit/) ยท [Browse worked solutions](/tutorials/northbridge/solutions/) ## Your route through Northbridge Read the core route in order. Take the mathematics branch when you need quantities and exact computation; return to the advanced chapters for composition and modeling practice. The illustrations set the scene; the code and observed results establish how the model behaves. ## Beginner Build a first rule, distinguish unknown from false, handle exceptions, and compute a fee. 1. [First permit: facts, a rule and a question](/tutorials/northbridge/nb-01-first-permit/) 2. [Why a missing fact is not a refusal](/tutorials/northbridge/nb-02-missing-fact/) 3. [Exceptions and conflicting rules](/tutorials/northbridge/nb-03-exceptions/) 4. [The permit fee](/tutorials/northbridge/nb-04-permit-fee/) ## Intermediate Model applicants, registers, documents, editions, deadlines, and legal effects. 5. [Who counts as a suitable applicant](/tutorials/northbridge/nb-05-suitable-applicant/) 6. [When the register may stay silent](/tutorials/northbridge/nb-06-register-silence/) 7. [A document is not yet a proven fact](/tutorials/northbridge/nb-07-document-vs-fact/) 8. [Which edition applies and when the term expires](/tutorials/northbridge/nb-08-edition-and-terms/) 9. [From permit to duties and powers](/tutorials/northbridge/nb-09-duties-powers/) ## Advanced Coordinate a procedure, compare readings, allocate in rounds, and explain a result. 10. [A procedure with parallel checks](/tutorials/northbridge/nb-10-parallel-procedure/) 11. [Appeal: reading, judgment and precedent](/tutorials/northbridge/nb-11-appeal/) 12. [Allocation in rounds](/tutorials/northbridge/nb-12-allocation-rounds/) 13. [Repeatable norms without copying](/tutorials/northbridge/nb-13-expansions/) 14. [Why this answer and what would change it](/tutorials/northbridge/nb-14-why-this-answer/) ## Mathematics branch Work with dimensions, exact bounds, and numeric support limits. 15. [Quantities and dimensions](/tutorials/northbridge/nb-15-quantities/) 16. [Exact computation and proven bounds](/tutorials/northbridge/nb-16-exact-bounds/) 17. [Numeric families and support boundaries](/tutorials/northbridge/nb-17-numeric-families/) ## Advanced II Compose packages and work with presumptions, sources, evidence, queries, and standard functions. 18. [Vocabulary and package composition](/tutorials/northbridge/nb-18-packages-composition/) 19. [Unknown, presumed and deemed: negation, closure, presumptions, fictions, constraints](/tutorials/northbridge/nb-19-unknown-presumptions/) 20. [Sources, time, and outside data](/tutorials/northbridge/nb-20-sources-time-evidence/) 21. [Positions live, files move, readings decide](/tutorials/northbridge/nb-21-positions-procedures-precedent/) 22. [Expansions you can answer about, answers you can explain](/tutorials/northbridge/nb-22-expansions-queries/) 23. [Numbers and the standard library: every figure the 0.2 machine proves](/tutorials/northbridge/nb-23-numbers-stdlib/) ## Modeling practice Choose between neighboring constructs, then follow one case through five changes. 24. [Neighbor constructs, nine mistakes and three decision tasks](/tutorials/northbridge/nb-24-neighbors-mistakes/) 25. [Capstone case: one file, five steps, three worlds](/tutorials/northbridge/nb-25-capstone-case/) ## Before you start You should be comfortable reading code and running terminal commands. Begin with the [first-package tutorial](/tutorials/first-package/) if this is your first encounter with executable rules. Northbridge is a synthetic, unofficial teaching world. The recorded runs use `law 0.1.0`, `law.core/0.2`, and standard library `0.2.0`. Later numeric profiles are discussed with their observed support limits; an expected refusal is not a successful calculation. ## Learn by predicting Before a command, predict the answer. After the run, explain which fact or rule made the difference. Change one condition and predict again. Open the worked solution after attempting the exercise; each chapter links to its corresponding solution.