Julia institution tutorials
Slow-walk worked examples of substrate-hosted Julia institutions. Each one exercises the install flow described in platform §11 — Runtime substrate against a real Julia library, wires up the institution’s chain shapes, and runs at least one verdict end-to-end.
Two sets of declarations exist; only one is live. The live declarations these tutorials describe are under
julia/institutions/<name>/declarations/, with IRIs shapedurn:eigenius:catalyst:ReactionNetwork. A second, superseded set survives underontologies/julia/with the prefixurn:eigenius:julia:catalyst:…. It is loaded by no Rust source, no shell script and no test, it mentionsFormulaTermnowhere in its sixteen files, and it is referenced only by one paragraph of D27. A reader grepping theontologies/tree forReactionNetworkorOptimisationProblemwill find the wrong one. Check the IRI prefix.
Read in order if this is your first substrate institution. The intervals tutorial covers the substrate plumbing (mirror generator, env image, worker container, AutoOnLoad gate) at a slow pace; the others assume that plumbing knowledge and focus on what’s domain-specific to each institution.
| Tutorial | Wraps | What’s distinctive |
|---|---|---|
| Intervals | IntervalArithmetic.jl | The simplest possible external-runtime institution — one class, one AutoOnLoad gate, one handler. The recommended first read. |
| Symbolics | Symbolics.jl | Three dispatch roles in one institution (AutoOnLoad / OnDemand / Decidable); the FormulaTerm-as-EigenTT-fragment story end-to-end. |
| Catalyst | Catalyst.jl | Chemical reaction networks; companion to the DiffEq tutorial via the Catalyst → DiffEq comorphism. The one institution that declares no FormulaTerm-typed property — it reaches the shared payload through handler code instead. |
| DiffEq | OrdinaryDiffEq.jl | ODE integration; the gate re-integrates the FormulaTerm RHS to verify a claimed solution. |
| JuMP-HiGHS | JuMP + HiGHS | LP/QP optimisation; the smart-pow walker rule that keeps quadratic objectives in QuadExpr rather than NonlinearExpr. |
All three shipped comorphisms declare an identity middle, but at three
different types — formulas:FormulaTerm for Symbolics → IntervalArithmetic,
diffeq:OdeProblem for Catalyst → DiffEq, jump:OptimisationProblem for
Symbolics → JuMP. In the latter two the translation lives in the source
institution’s ExportFormat procedure, not in the middle. See
composition §2.4.
The end-to-end “everything together” demo notebook that exercises all five
institutions plus three cross-institution comorphisms lives at
notebooks/examples/kinase-institutions.json
(setup script:
notebooks/examples/kinase-institutions-setup.sh).
See platform §8.4
for the demo overview.
Cross-references
- Platform §11 — Runtime substrate — the conceptual chapter the tutorials ground.
- The formula language guide — the shared payload language for cross-institution numerical work; pervasively used by these institutions.
- ESL §9 — Institutions in ESL, EigenQL §8 — Institutions in EigenQL — the user-facing dispatch surface.
- D14 — Institution Realisation, D26 — Runtime Substrate, D27 — Julia institutions, D32 — Chain-Mirrored EigenTT Inductives — the design specs.