Monorepo: golang-lean (TGC) + octive-lean (TOC) + tsm-lean (TSM) + common-lean (cross-language apex).
Find a file
Maximus Gorog bd2e14214d Add 'tsm-lean/' from commit '2e9061abead6f2daa464b39a79c17a949db30785'
git-subtree-dir: tsm-lean
git-subtree-mainline: 6592cd058d
git-subtree-split: 2e9061abea
2026-05-12 02:59:14 -06:00
golang-lean Add 'golang-lean/' from commit 'f5f17019224c6a6c319387214ceb8e29d09251c6' 2026-05-12 02:59:14 -06:00
octive-lean Add 'octive-lean/' from commit '4b6fcec565a170d7029d4ccba21be2ecd0512d13' 2026-05-12 02:59:14 -06:00
tsm-lean Add 'tsm-lean/' from commit '2e9061abead6f2daa464b39a79c17a949db30785' 2026-05-12 02:59:14 -06:00
README.md Initial commit: crosslang monorepo skeleton. 2026-05-12 02:59:08 -06:00

crosslang

Monorepo gathering language-implementation projects whose shared shape makes cross-language theorems possible. Each subdirectory remains a self-contained Lake package; common-lean is the apex that consumes the other three through Lake path-deps and exposes a typeclass-level abstraction over them.

Layout

Path Role
golang-lean/ TGC — Go subset; big-step over Heap × Env.
octive-lean/ TOC — GNU Octave; big-step over Env.
tsm-lean/ TSM — Tiny Stack Machine; small-step, positional operands. Also hosts a source-to-bytecode Compile/ layer.
common-lean/ Apex: BigStepLang and SmallStepLang typeclasses; TGC/TOC/TSM as instances; generic theorems that fire on every instance.

Why a monorepo

The three kernels share a Core/ skeleton (Syntax · Semantics · Types · Eval · Determinism · Preservation · TypeSoundness). Anything truly language-invariant has to be statable in terms common to all three. Living together in one repo means:

  • a generic theorem proved in common-lean is a single edit away from applying to every kernel,
  • new kernels are added by writing a BigStepLang (or SmallStepLang) instance — no path-dep restructuring,
  • the factoring is post-hoc: abstractions land only after a third concrete point demands them.

Build

Each package builds independently with lake build. The apex:

cd common-lean && lake build

resolves path-deps to the three sibling kernels.

History

Subprojects were imported with git subtree add so per-file git log continues to work across the move.