Generic Lean 4 library for algebraic organization of code repositories — pairs with Pantograph
Find a file
Maximus Gorog ae675a1eed Add MetaCTerm/MetaClassifier/MetaArtifact source renderer
Each meta-mirror value renders to a Lean expression that, when
elaborated, reconstructs the same value.  The bridge's loop now
closes at the source level: an Edit's .cterm content can be
written to a .lean file and parsed back via Lean's own
parser/elaborator — no custom parser required.

  · nameToLeanSource — Lean.Name → constructor-call source.
  · MetaClassifier.toLeanSource — lattice → Infoductor.MetaClassifier.* calls.
  · MetaCTerm.toLeanSource — full structural mirror → constructor source.
  · MetaArtifact.toLeanSource — artifact layer wrapping the above.

Foundation.Restructure's EditOp.apply for .cterm now uses
MetaCTerm.toLeanSource instead of toString (repr t).  The headless
interpreter writes valid Lean source.

The recursive helper for Lean.Name lives at Infoductor.nameToLeanSource
rather than Lean.Name.toLeanSource — defining a Lean.Name.* function
inside `namespace Infoductor` would otherwise create an Infoductor.Lean
namespace and shadow the global Lean library.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 12:05:43 -06:00
Infoductor Add MetaCTerm/MetaClassifier/MetaArtifact source renderer 2026-05-01 12:05:43 -06:00
.gitignore Phase A: Foundation lib — meta-mirror, Edit/Context, restructure, registries 2026-05-01 07:20:36 -06:00
Infoductor.lean Add MetaCTerm structural mirror, .cterm artifact arm, MetaPosition.binder 2026-05-01 09:08:01 -06:00
lake-manifest.json Phase B: Comonad sub-library — proof-pattern detection ported from mm-lean 2026-05-01 07:39:36 -06:00
lakefile.toml Phase B: Comonad sub-library — proof-pattern detection ported from mm-lean 2026-05-01 07:39:36 -06:00
lean-toolchain Phase A: Foundation lib — meta-mirror, Edit/Context, restructure, registries 2026-05-01 07:20:36 -06:00
LICENSE Phase A: Foundation lib — meta-mirror, Edit/Context, restructure, registries 2026-05-01 07:20:36 -06:00
NOTICE Phase A: Foundation lib — meta-mirror, Edit/Context, restructure, registries 2026-05-01 07:20:36 -06:00
README.md Phase A: Foundation lib — meta-mirror, Edit/Context, restructure, registries 2026-05-01 07:20:36 -06:00

Infoductor

Generic Lean 4 library + tooling for algebraic organization of code repositories. Provides the mechanism for declaring methodologies that organize a Lean codebase — registries, attributes, the universal restructure operation, the Edit monad / Context comonad pair — without committing to which methodology a downstream project uses.

Pairs naturally with the Pantograph project (the conductor of an electric train sits atop the pantograph hardware). "Info-ductor" — it conducts information (structure, classifications, methodology) through your codebase.

Status

Phase A: Foundation lib landed (2026-05-01). Tactics, Pantograph plugin, and headless Runner sub-libs are planned but not yet present.

Sub-libraries

Library Status Role
Infoductor.Foundation landed Pure algebra: meta-mirror types, Edit monad, Context comonad, restructure, @[macroAlias] / @[methodology] / @[metaPath] attributes + registries. No domain commitments.
Infoductor.Tactics planned Reference dispatcher tactics (cubical_search-shaped) built on Foundation primitives.
Infoductor.Pantograph planned Plugin routing Pantograph commands into Foundation registries.
Infoductor.Runner planned Headless deployment surface for Edit.runHeadless etc. Lands when concrete deployment need arises.

Foundation API

Meta-mirror types (Infoductor.Foundation.Meta)

  • MetaCType — the meta-types of source artifacts (theorem, definition, instance, structure, …).
  • MetaClassifier — a lattice of "where in the codebase" predicates (always, never, atDecl n, inFile p, underAttribute a, dependencyOf n, inNamespace n, plus meet / join).
  • MetaArtifact — what gets placed at a meta-position (source / declAt / refTo / empty).
  • MetaPosition(declName, filePath, range?) addressing.

Edit / Context (Infoductor.Foundation.Edit)

  • Edit α — monad of source mutations. result : α paired with ops : List EditOp.
  • Context α — comonad of "what's around here": focal artifact, position, siblings. extract / extend operations.
  • contextualEdit — distributive law lifting context-aware decisions into edits.

Restructure (Infoductor.Foundation.Restructure)

  • restructure (i ctx φ witness fallback) — the universal source- mutation operation. Same five-field shape as cubical comp, promoted to source-code level.
  • Frozen aliases: transport_artifact, relocate_invariant, rename_throughout, define_question_shape, compose_proof_fragments, materialize.
  • Headless interpreter: EditOp.apply, Edit.runHeadless.
  • Structural soundness: Edit.brokenRefs, Edit.selfConsistent, Edit.guarded.

Registries

  • @[macroAlias] (Infoductor.Foundation.MacroAlias) — register a def as a frozen restructure alias.
  • @[methodology Classifier] (Infoductor.Foundation.Methodology) — register a theorem as a proof methodology indexed by classifier name.
  • @[metaPath Source Target] (Infoductor.Foundation.MetaPath) — declare a structural Path between two classifiers; powers deriveByTransport.
  • tryEntryAsClosed primitive — try a methodology entry as a goal closer; restores tactic state on failure.

Inspecting registries

#eval inside a Lean session:

#eval Infoductor.printAliases
#eval Infoductor.printMethodologies
#eval Infoductor.printMetaPaths

Building

lake build

Forgejo

http://maxgit.wg:3000/max/infoductor

License

See LICENSE.