crosslang/lake-manifest.json
Maximus Gorog a0b719e170 Initial commit: Common — cross-language abstraction over TGC, TOC, TSM.
A new Lake project with path dependencies on the three sibling kernels
(golang-lean, octive-lean, tsm-lean). Provides typeclass abstractions
that capture what's structurally shared.

Common/ — three files:

  Lang.lean — two typeclasses:
    BigStepLang: Term, Value, State, Eval, deterministic.
                 Captures TGC's and TOC's big-step shape.
    SmallStepLang: State, step.
                   Captures TSM's small-step shape (determinism is
                   automatic from `step` being a function).
    Generic theorems exported once:
      BigStepLang.unique_value, BigStepLang.unique_state
      SmallStepLang.step_deterministic
    Plus a `CompileCorrect` structure for substrate-projection
    theorems (the categorical kernel of CompCert-style results).

  Instances.lean — three instances:
    TGCLang : BigStepLang   (State := Heap × Env)
    TOCLang : BigStepLang   (State := Env)
    TSMLang : SmallStepLang (State := TSM.State)
    Each instance bridges the local kernel's existing
    `BigStep`/`step` + `deterministic` proof into the typeclass.

  Demo.lean — three application examples:
    The SAME `BigStepLang.unique_value` theorem applied to TGC and
    TOC; `SmallStepLang.step_deterministic` to TSM. One abstract
    definition, three concrete payoffs.

The factoring is real: any new theorem stated over the typeclasses
applies to all instances. Future theorems (compilation correctness,
type soundness, simulation) can be expressed abstractly and proved
once.

Zero sorries / axioms / admits across all four projects.
2026-05-10 06:52:25 -06:00

37 lines
1 KiB
JSON

{"version": "1.2.0",
"packagesDir": ".lake/packages",
"packages":
[{"type": "path",
"scope": "",
"name": "«tsm-lean»",
"manifestFile": "lake-manifest.json",
"inherited": false,
"dir": "../tsm-lean",
"configFile": "lakefile.toml"},
{"type": "path",
"scope": "",
"name": "«octive-lean»",
"manifestFile": "lake-manifest.json",
"inherited": false,
"dir": "../octive-lean",
"configFile": "lakefile.toml"},
{"type": "path",
"scope": "",
"name": "«golang-lean»",
"manifestFile": "lake-manifest.json",
"inherited": false,
"dir": "../golang-lean",
"configFile": "lakefile.toml"},
{"url": "https://github.com/leanprover-community/ProofWidgets4",
"type": "git",
"subDir": null,
"scope": "",
"rev": "2db6054a44326f8c0230ee0570e2ddb894816511",
"name": "proofwidgets",
"manifestFile": "lake-manifest.json",
"inputRev": "v0.0.98",
"inherited": true,
"configFile": "lakefile.lean"}],
"name": "«common-lean»",
"lakeDir": ".lake",
"fixedToolchain": false}