Back to Discover

jacobian

connector

morluto

Executable mathematics and independent verification for AI agents.

View on GitHub
0 starsSynced Aug 4, 2026

Install to Claude Code

/plugin marketplace add morluto/jacobian

README

An archival-style black-and-white photograph of a mathematician working at a chalkboard, with a constant Jacobian determinant and three distinct inputs mapping to one output.

Jacobian

Executable mathematics for agents. Evidence an independent checker can replay.

An MCP server, CLI, and Python library for conjectures, counterexamples, exact computation, and formal proof.

CI PyPI npm Supported Python versions MIT license

English · 简体中文

Quickstart · Verification · Capabilities · Documentation · Contributing

Jacobian gives AI agents small, composable mathematical operations rather than one opaque solver. An agent can construct an object, compute an invariant, search for a witness, and submit exact evidence to a separate checker. Every step remains visible as a typed result or artifact.

A search result, solver status, model answer, timeout, or score is never promoted directly to VERIFIED. Only an operator-authorized checker may emit a verified record, bound to the exact claim, candidate, scope, semantics, certificate format, and checker identity.

Quickstart

The npm launcher installs Jacobian and configures supported MCP clients. For a one-off setup without a global install, run:

npx jacobian setup

For repeated use, install the launcher persistently and use its commands:

npm install -g jacobian
jacobian setup
jacobian upgrade
jacobian doctor

For the Python distribution, install the stable package directly with:

python -m pip install jacobian

The launcher supports Claude, Codex, Cursor, Gemini, and OpenCode. It requires Node.js 18 or newer, Python 3.12, and uv. Run jacobian mcp to start the server directly.

Install from source
git clone https://github.com/morluto/jacobian.git
cd jacobian
./scripts/setup-agent --client codex --profile full-python --yes

This performs a locked full-Python sync and configures the selected agent to start MCP from the absolute source and state paths with --no-sync. It also records a doctor report containing the Git revision, package version, catalog digest, and provider availability. See Configure an agent from a source checkout for the core, full-python, lean, and external-proof profiles, dry-run, repeatability, and rollback behavior.

Use uv run jacobian --help to inspect the CLI or uv run jacobian-mcp to start the MCP adapter.

How verification works

Jacobian separates finding evidence from deciding what that evidence proves. Suppose an agent is testing the claim F is injective.”

The claim that F is injective leads to a candidate collision, an exact independent check, and a verification record. Missing witnesses, timeouts, cancellation, and errors remain unknown.

Claim → candidate witness → independent check → verification record

StageOutputWhat it establishes
ClaimF is injectiveThe statement to investigate; not yet trusted
SearchA candidate witness (F, p, q)Inspectable evidence, not a conclusion
Independent checkConfirm p ≠ q and F(p) − F(q) = 0 exactlyThe candidate is a genuine collision
RecordBind the checked collision to the original claim and checker identityThe injectivity claim is FALSE · VERIFIED

No witness is not proof. A failed search, timeout, cancellation, or error leaves the claim UNKNOWN.

In the introductory tutorial, the same boundary appears as:

evaluate.batch   →  FALSE  · HEURISTIC
witness.find     →  exact witness artifact
witness.verify   →  FALSE  · VERIFIED

FALSE · HEURISTIC is an evaluation. FALSE · VERIFIED is a conclusion backed by independently checked evidence. Follow Find and verify a counterexample for a runnable example.

Capabilities

Capabilities are discovered at runtime through capability://catalog, described with capability.describe, and executed with capability.invoke. The installed catalog is the source of truth because availability can depend on local backends.

DomainAgent-visible outcomes
Polynomial mapsEvaluate maps, compute Jacobians, search for collisions, independently verify collisions
Polynomial algebraNormalize typed expressions, factor univariate polynomials, verify identities, verify exact system solutions
Exact linear algebraCompute determinants, rank, kernels, and integer row Hermite normal forms; find and independently verify rational solutions or inconsistency certificates for Ax = b
GraphsConstruct and inspect graphs, enumerate paths, realize degree sequences, test isomorphism, search colorings
SAT and SMTFind models or proof artifacts; independently replay assignments, DRAT proofs, and Alethe proofs
Universal algebraEvaluate finite magma laws and search for countermodels
PolytopesCompute convex combinations and linear separations
LeanDiscover declarations, retrieve premises, inspect proof states, and check proofs in pinned environments
Research memoryStore revisioned scratch work, findings, attempts, focus, and dependency-linked context

See the tool reference for the public surface and the atomic capability portfolio for portfolio design and evaluation gates.

Design

Jacobian keeps four responsibilities separate:

  • Agents own strategy. The kernel supplies mathematical operations, not a prescribed research workflow.
  • Capabilities expose one coherent outcome. Useful intermediate objects, failures, and proof obligations remain visible.
  • Values compose directly. Small, bounded mathematical results stay inline; artifacts carry reusable objects, replayable evidence, and large payloads.
  • Checkers own trust. Plugins and search code cannot authorize a checker or change verification policy.

The public MCP surface stays small: the capability catalog plus the two capability entry points, capability.describe and capability.invoke.

Documentation

Start hereWhen you need detail
Documentation homeTutorials, how-to guides, reference, and explanation
ArchitectureSystem shape and the independent verification boundary
Product modelCapability contracts, ownership, artifacts, and assurance
Product goalsActive priorities and research direction
Tool surfaceMCP resources, tools, and invocation contracts
Domain operation libraryBuilt-in producer, bounded-search, artifact, and exact-replay contracts
Provider runtimeBackend availability, compatibility, and identity
Testing strategyValidation layers, commands, and CI responsibilities

Specialized contracts cover SAT artifacts, SMT/Alethe artifacts, exact rational linear-system evidence, exact rational matrix determinants, integer matrix HNF, and Lean declaration discovery. The domain-capability how-to demonstrates discovery, computed invocation, bounded-result interpretation, and exact replay. The Lean formal-intermediates reference covers proof states, premise retrieval, dependency graphs, and checked edits.

MCP clients and deployment

jacobian setup registers the local server with one or more supported clients. jacobian upgrade refreshes the pinned Python kernel in the launcher's managed environment; use npm install -g jacobian@latest to upgrade the npm launcher itself. For a clone, jacobian setup --source <checkout> --state-dir <path> --profile full-python explicitly binds the client to that source environment; the maintained scripts/setup-agent wrapper performs the required locked sync and doctor checks first. The server advertises only the capability entry points; capability.describe(query=...) searches compact installed outcomes before an agent inspects an exact contract and invokes it. This is a toolbox interface: agents own mathematical decomposition, exploration, and composition.

Clients with MCP resource support can read jacobian://instructions for the operating guide and capability://catalog for the complete machine inventory. Clients with prompt support can optionally request jacobian-discover or jacobian-check-evidence for protocol scaffolding.

Remote clients can connect through Streamable HTTP or SSE with bearer-token authentication and subject-bound tenant state. See Deploy the remote MCP server. Static tokens are intended for controlled deployments, not as a hosted identity system.

From a clean clone on a systemd host, the maintained installer can deploy a localhost endpoint, a Caddy-managed public domain, or Tailscale Funnel:

sudo ./deploy/install.sh
sudo ./deploy/install.sh --mode domain --domain math.example.org
sudo ./deploy/install.sh --mode tailscale

Run ./deploy/install.sh --help or add --dry-run to inspect the plan first. The public modes require a reviewed Caddy installation; Funnel additionally requires a connected Tailscale installation. Authentication is enabled by default, and a newly generated bearer token is printed once.

Optional backends

Some capabilities use backends that are not installed by default:

  • CaDiCaL finds SAT models and UNSAT proof artifacts.
  • cvc5 produces SMT UNSAT proofs; Carcara independently checks Alethe.
  • The flint extra provides Python-FLINT/Arb operations for exact rational systems, integer matrices and lattices, polynomials, and validated numerical computation. Individual capabilities and independent replay support depend on the installed catalog.
  • Pinned Lean CORE and MATHLIB environments check formal certificates.

Backend availability is not verification authority. Provider output remains unverified until the appropriate independent checker accepts its bound witness or certificate.

Lean certificates

The lean.check capability binds an exact proposition and proof body to its result. The bundled environments pin Lean, imports, and their allowed trust bases; model-supplied imports and packages are rejected.

Prepare the pinned runtime with:

elan toolchain install leanprover/lean4:v4.31.0
cd lean
lake update
lake build

Proof-state interaction and premise retrieval are exploration aids. Their output cannot become VERIFIED without a successful lean.check. See the guided declaration-discovery tutorial.

macOS and Z3

The locked environment uses z3-solver 5.0.0.0. Its upstream macOS wheels target macOS 13 or newer on Apple silicon and Intel. On an older release, uv falls back to a source build that requires CMake, make, and a C++20 compiler.

Install the Xcode Command Line Tools and CMake before retrying uv sync --dev. These commands report the relevant environment without changing it:

sw_vers -productVersion
uname -m
xcode-select -p
clang++ --version
cmake --version
make --version

See the z3-solver 5.0.0.0 files on PyPI for the upstream wheel tags.

Status

Jacobian 0.6.0 is a pre-stable release. Its published package, capability, and artifact contracts describe the current supported surface; ongoing capability research may change experimental contracts between releases.

The Python distribution contains the mathematical kernel, CLI, and MCP server. The npm package is a thin launcher and MCP client installer for that same implementation; it is not a separate JavaScript API.

About the hero image

The visual motif comes from the three-dimensional counterexample to the Jacobian conjecture: an exact constant Jacobian determinant alongside three distinct rational inputs with the same output. Surprising candidates are valuable, but exact computation and independent checking establish what can be trusted.

Terence Tao gives an accessible mathematical account. The determinant identity and collision have also been independently formalized in Isabelle/HOL. The two-dimensional conjecture remains open.

Project boundaries

Jacobian does not aim to put a universal mathematical ontology, a natural-language-to-formal-mathematics translator, distributed search infrastructure, or an opaque generic solver into the kernel. It does not reimplement theorem provers or SAT/MIP solvers, accept arbitrary model-supplied executable bundles, or treat floating-point scores, timeouts, and solver labels as proofs.

Contributing

Jacobian uses Python 3.12, uv, and a small Makefile:

make setup
make test-unit
make check

Read CONTRIBUTING.md before changing code. It documents focused test commands, verification rules, documentation placement, and pull-request expectations.

License

MIT

Rendered live from morluto/jacobian's GitHub README — not stored, always reflects the source repo.

1 Install Method

NameDescriptionCategorySource
npm packageInstall via npm (stdio transport)mcp-serverjacobian

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.