Six general-purpose modules ported from mm-link/mm-lean/src/ into
Infoductor/Comonad/, namespaced for Infoductor and adapted to
Lean 4 v4.30.0-rc2:
- ComonadFinder.lean — automatic detection of comonadic subgraph
patterns in Lean proof terms (FNV-1a-64
content hashing, recursive shape encoding,
cluster detection, metric computation,
JSON-shaped wire format `comonad/1`).
816 → 712 lines (test section dropped on
port; see § 13 note).
- ComonadCommands.lean — `#findComonadsJSON`, `#comonadNode`,
`#comonadSubgraph`, `#comonadClusters`
navigation commands.
- Convolution.lean — cross-theorem pattern composition.
`String.containsSubstr` (removed in Lean
4.30) replaced with inline arrow-counter.
- ExtractConsts.lean — extracting constant names from proof
terms by category (recursors, eliminators,
interesting lemmas).
- ExtractDefn.lean — extracts comonadic clusters as Lean
`def` skeletons.
- GridView.lean — plain-text proof visualization
(Fitch-style table + nested tree +
declaration info). Mathematica-specific
output formatters dropped per the
"Infoductor is general-purpose" rule;
Mathematica consumers can re-add them in
mm-lean (or a separate Mathematica-bridge
project). 291 → 187 lines.
`Infoductor.Comonad` lean_lib declared separately from
`Infoductor` (which holds Foundation). Mathlib is required for
`Tactic.Explode` proof-decomposition primitive used by the
comonad analysis. Foundation does NOT import Mathlib —
consumers depending only on Foundation pay zero Mathlib build
cost (verified: default `lake build` is 10 jobs, all Foundation;
`lake build Infoductor.Comonad` triggers the Mathlib subgraph).
Test sections in ComonadFinder, ComonadCommands, ExtractDefn,
Convolution were stripped during port: Lean 4 v4.30 changed
`info.value?` access for theorems and the original test-time
`#findComonads` / `#analyzeCluster` / `#patternCompose` calls
fail with "has no proof value (axiom or opaque?)" or "elaboration
function not implemented". Restoration is a Test/ harness work-
item, not blocking the production library.
Mathematica-coupled mm-lean files NOT moved (stay in mm-lean):
- Main.lean, PantographMain.lean (orchestrators)
- Mathematica.lean + Mathematica/ (bridge to Wolfram)
- Provers.lean + Provers/ (LJT, Tableaux — domain-specific)
- All `.m`, `.wl`, `.nb` Mathematica scripts.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
96 lines
3.1 KiB
JSON
96 lines
3.1 KiB
JSON
{"version": "1.2.0",
|
|
"packagesDir": ".lake/packages",
|
|
"packages":
|
|
[{"url": "https://github.com/leanprover-community/mathlib4",
|
|
"type": "git",
|
|
"subDir": null,
|
|
"scope": "",
|
|
"rev": "370a1edb4de30838e7b2b8e2f95b0a41dafe7e26",
|
|
"name": "mathlib",
|
|
"manifestFile": "lake-manifest.json",
|
|
"inputRev": "master",
|
|
"inherited": false,
|
|
"configFile": "lakefile.lean"},
|
|
{"url": "https://github.com/leanprover-community/plausible",
|
|
"type": "git",
|
|
"subDir": null,
|
|
"scope": "leanprover-community",
|
|
"rev": "293af9b2a383eed4d04d66b898d608d0a44b750f",
|
|
"name": "plausible",
|
|
"manifestFile": "lake-manifest.json",
|
|
"inputRev": "main",
|
|
"inherited": true,
|
|
"configFile": "lakefile.toml"},
|
|
{"url": "https://github.com/leanprover-community/LeanSearchClient",
|
|
"type": "git",
|
|
"subDir": null,
|
|
"scope": "leanprover-community",
|
|
"rev": "c5d5b8fe6e5158def25cd28eb94e4141ad97c843",
|
|
"name": "LeanSearchClient",
|
|
"manifestFile": "lake-manifest.json",
|
|
"inputRev": "main",
|
|
"inherited": true,
|
|
"configFile": "lakefile.toml"},
|
|
{"url": "https://github.com/leanprover-community/import-graph",
|
|
"type": "git",
|
|
"subDir": null,
|
|
"scope": "leanprover-community",
|
|
"rev": "cdab3938ccabbdb044be6896e251b5814bec932e",
|
|
"name": "importGraph",
|
|
"manifestFile": "lake-manifest.json",
|
|
"inputRev": "main",
|
|
"inherited": true,
|
|
"configFile": "lakefile.toml"},
|
|
{"url": "https://github.com/leanprover-community/ProofWidgets4",
|
|
"type": "git",
|
|
"subDir": null,
|
|
"scope": "leanprover-community",
|
|
"rev": "2db6054a44326f8c0230ee0570e2ddb894816511",
|
|
"name": "proofwidgets",
|
|
"manifestFile": "lake-manifest.json",
|
|
"inputRev": "v0.0.98",
|
|
"inherited": true,
|
|
"configFile": "lakefile.lean"},
|
|
{"url": "https://github.com/leanprover-community/aesop",
|
|
"type": "git",
|
|
"subDir": null,
|
|
"scope": "leanprover-community",
|
|
"rev": "f0c6e183ea26531e82773feb4b73ab6595ca17a5",
|
|
"name": "aesop",
|
|
"manifestFile": "lake-manifest.json",
|
|
"inputRev": "v4.30.0-rc2",
|
|
"inherited": true,
|
|
"configFile": "lakefile.toml"},
|
|
{"url": "https://github.com/leanprover-community/quote4",
|
|
"type": "git",
|
|
"subDir": null,
|
|
"scope": "leanprover-community",
|
|
"rev": "1cc7e819b9b9bc1e87c9edcccb62e0269e00a809",
|
|
"name": "Qq",
|
|
"manifestFile": "lake-manifest.json",
|
|
"inputRev": "v4.30.0-rc2",
|
|
"inherited": true,
|
|
"configFile": "lakefile.toml"},
|
|
{"url": "https://github.com/leanprover-community/batteries",
|
|
"type": "git",
|
|
"subDir": null,
|
|
"scope": "leanprover-community",
|
|
"rev": "5c57f3857ba81924a88b2cdf4f062e34ec04ff11",
|
|
"name": "batteries",
|
|
"manifestFile": "lake-manifest.json",
|
|
"inputRev": "v4.30.0-rc2",
|
|
"inherited": true,
|
|
"configFile": "lakefile.toml"},
|
|
{"url": "https://github.com/leanprover/lean4-cli",
|
|
"type": "git",
|
|
"subDir": null,
|
|
"scope": "leanprover",
|
|
"rev": "13567aed1ac4f12aea9484178e07e51f8c9f7658",
|
|
"name": "Cli",
|
|
"manifestFile": "lake-manifest.json",
|
|
"inputRev": "v4.30.0-rc2",
|
|
"inherited": true,
|
|
"configFile": "lakefile.toml"}],
|
|
"name": "infoductor",
|
|
"lakeDir": ".lake",
|
|
"fixedToolchain": false}
|