{"slug": "jacobian-a-high-level-maths-toolkit-for-agents", "title": "Jacobian, a high level maths toolkit for agents", "summary": "Jacobian, a high-level mathematics toolkit for AI agents, provides executable mathematics with composable operations for conjectures, counterexamples, exact computation, and formal proof, featuring an MCP server, CLI, and Python library. The toolkit separates evidence discovery from verification, ensuring only operator-authorized checkers can emit verified records, supporting domains including polynomial maps, exact linear algebra, SAT/SMT, and graph theory.", "body_md": "**Executable mathematics for agents. Evidence an independent checker can replay.**\n\nAn MCP server, CLI, and Python library for conjectures, counterexamples, exact computation, and formal proof.\n\n[Quickstart](#quickstart) ·\n[Verification](#how-verification-works) ·\n[Capabilities](#capabilities) ·\n[Documentation](#documentation) ·\n[Contributing](#contributing)\n\nJacobian 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.\n\nThe trust boundary is deliberate: a search result, solver status, model answer,\ntimeout, or score is never promoted directly to `VERIFIED`\n\n. Only an\noperator-authorized checker may emit a verified record, bound to the exact\nclaim, candidate, scope, semantics, certificate format, and checker identity.\n\nThe npm launcher installs Jacobian and configures supported MCP clients:\n\n```\nnpm install -g jacobian\njacobian setup\njacobian doctor\n```\n\nThe launcher supports Claude, Codex, Cursor, Gemini, and OpenCode. It requires\nNode.js 18 or newer, Python 3.12, and\n[ uv](https://docs.astral.sh/uv/). Run\n\n`jacobian mcp`\n\nto start the server\ndirectly.**Install from source**\n\n```\ngit clone https://github.com/morluto/jacobian.git\ncd jacobian\nuv sync --dev\nuv run jacobian --state-dir .jacobian init\n```\n\nThe default `init`\n\noutput is a short onboarding summary. Add `init --json`\n\nwhen a script needs the complete reference catalog.\n\nUse `uv run jacobian --help`\n\nto inspect the CLI or `uv run jacobian-mcp`\n\nto\nstart the MCP adapter.\n\nJacobian separates finding evidence from deciding what that evidence proves.\nSuppose an agent is testing the claim **“ F is injective.”**\n\n**Claim → candidate witness → independent check → verification record**\n\n| Stage | Output | What it establishes |\n|---|---|---|\n| Claim | `F` is injective |\nThe statement to investigate; not yet trusted |\n| Search | A candidate witness `(F, p, q)` |\nInspectable evidence, not a conclusion |\n| Independent check | Confirm `p ≠ q` and `F(p) − F(q) = 0` exactly |\nThe candidate is a genuine collision |\n| Record | Bind the checked collision to the original claim and checker identity | The injectivity claim is `FALSE · VERIFIED` |\n\nNo witness is not proof.A failed search, timeout, cancellation, or error leaves the claim`UNKNOWN`\n\n.\n\nIn the introductory tutorial, the same boundary appears as:\n\n```\nevaluate.batch   →  FALSE  · HEURISTIC\nwitness.find     →  exact witness artifact\nwitness.verify   →  FALSE  · VERIFIED\n```\n\n`FALSE · HEURISTIC`\n\nis an evaluation. `FALSE · VERIFIED`\n\nis a conclusion\nbacked by independently checked evidence. Follow\n[Find and verify a counterexample](/morluto/jacobian/blob/main/docs/tutorials/first-verified-result.md)\nfor a runnable example.\n\nCapabilities are discovered at runtime through `capability://catalog`\n\n,\ndescribed with `capability.describe`\n\n, and executed with\n`capability.invoke`\n\n. The installed catalog is the source of truth because\navailability can depend on local backends.\n\n| Domain | Agent-visible outcomes |\n|---|---|\n| Polynomial maps | Evaluate maps, compute Jacobians, search for collisions, independently verify collisions |\n| Polynomial algebra | Normalize typed expressions, factor univariate polynomials, verify identities, verify exact system solutions |\n| Exact linear algebra | Compute determinants, rank, kernels, and integer row Hermite normal forms; find and independently verify rational solutions or inconsistency certificates for `Ax = b` |\n| Graphs | Construct and inspect graphs, enumerate paths, realize degree sequences, test isomorphism, search colorings |\n| SAT and SMT | Find models or proof artifacts; independently replay assignments, DRAT proofs, and Alethe proofs |\n| Universal algebra | Evaluate finite magma laws and search for countermodels |\n| Polytopes | Compute convex combinations and linear separations |\n| Lean | Discover declarations, retrieve premises, inspect proof states, and check proofs in pinned environments |\n| Research memory | Store revisioned scratch work, findings, attempts, focus, and dependency-linked context |\n\nSee the [tool reference](/morluto/jacobian/blob/main/docs/reference/tools.md) for the public surface and\nthe [atomic capability portfolio](/morluto/jacobian/blob/main/docs/contributing/atomic-capability-portfolio.md)\nfor portfolio design and evaluation gates.\n\nJacobian keeps four responsibilities separate:\n\n**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.**Artifacts carry context.** Results report execution status, provenance, scope, completeness, exactness, assurance, and available certificates.**Checkers own trust.** Plugins and search code cannot authorize a checker or change verification policy.\n\nThe public MCP surface stays small: the capability catalog plus\n`capability.describe`\n\n, `capability.invoke`\n\n, and three direct workspace tools.\n`workspace.open`\n\n, `workspace.write`\n\n, and `workspace.query`\n\nmanage durable\nagent-authored state; workspace entries remain `UNVERIFIED`\n\n.\n\n| Start here | When you need detail |\n|---|---|\n|\n\n[Architecture](/morluto/jacobian/blob/main/docs/explanation/architecture.md)[Product model](/morluto/jacobian/blob/main/docs/explanation/product-blueprint.md)[Product goals](/morluto/jacobian/blob/main/docs/explanation/goals.md)[Tool surface](/morluto/jacobian/blob/main/docs/reference/tools.md)[Domain operation library](/morluto/jacobian/blob/main/docs/reference/domain-operation-library.md)[Provider runtime](/morluto/jacobian/blob/main/docs/reference/provider-runtime.md)[v0.2 specification](/morluto/jacobian/blob/main/docs/reference/specifications/v0.2.md)[Testing strategy](/morluto/jacobian/blob/main/docs/reference/testing-strategy.md)[Capability development handoffs](/morluto/jacobian/blob/main/docs/reference/capability-development-handoffs.md)Specialized contracts cover\n[SAT artifacts](/morluto/jacobian/blob/main/docs/reference/sat-artifacts.md),\n[SMT/Alethe artifacts](/morluto/jacobian/blob/main/docs/reference/smt-artifacts.md),\n[exact rational linear-system evidence](/morluto/jacobian/blob/main/docs/reference/linear-rational-solutions.md),\n[exact rational matrix determinants](/morluto/jacobian/blob/main/docs/reference/matrix-rational-determinant.md),\n[integer matrix HNF](/morluto/jacobian/blob/main/docs/reference/matrix-hermite-normal-form.md), and\n[Lean declaration discovery](/morluto/jacobian/blob/main/docs/reference/lean-declaration-discovery.md).\nThe [domain-capability how-to](/morluto/jacobian/blob/main/docs/how-to/invoke-domain-capabilities.md)\ndemonstrates discovery, computed invocation, bounded-result interpretation,\nand exact replay. The\n[Lean formal-intermediates reference](/morluto/jacobian/blob/main/docs/reference/lean-formal-intermediates.md)\ncovers proof states, premise retrieval, dependency graphs, and checked edits.\nArchitecture decisions are recorded in the\n[ADR index](/morluto/jacobian/blob/main/docs/explanation/adr/index.md).\n\n`jacobian setup`\n\nregisters the local server with one or more supported clients.\nThe server advertises the capability entry points and direct workspace tools;\n`capability.describe(query=...)`\n\nsearches compact installed outcomes before an\nagent inspects an exact contract and invokes it. This is a toolbox interface:\nagents own mathematical decomposition, exploration, and composition.\n\nClients with MCP resource support can read `jacobian://instructions`\n\nfor the\noperating guide and `capability://catalog`\n\nfor the complete machine inventory.\nClients with prompt support can optionally request `jacobian-discover`\n\nor\n`jacobian-check-evidence`\n\nfor protocol scaffolding.\n\nRemote clients can connect through Streamable HTTP or SSE with bearer-token\nauthentication and subject-bound tenant state. See\n[Deploy the remote MCP server](/morluto/jacobian/blob/main/docs/how-to/deploy-remote-mcp.md). Static tokens\nare intended for controlled deployments, not as a hosted identity system.\n\nFrom a clean clone on a systemd host, the maintained installer can deploy a localhost endpoint, a Caddy-managed public domain, or Tailscale Funnel:\n\n```\nsudo ./deploy/install.sh\nsudo ./deploy/install.sh --mode domain --domain math.example.org\nsudo ./deploy/install.sh --mode tailscale\n```\n\nRun `./deploy/install.sh --help`\n\nor add `--dry-run`\n\nto inspect the plan first.\nThe public modes require a reviewed Caddy installation; Funnel additionally\nrequires a connected Tailscale installation. Authentication is enabled by\ndefault, and a newly generated bearer token is printed once.\n\nSome capabilities use backends that are not installed by default:\n\n- CaDiCaL finds SAT models and UNSAT proof artifacts.\n- cvc5 produces SMT UNSAT proofs; Carcara independently checks Alethe.\n- The\n`flint`\n\nextra 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\n`CORE`\n\nand`MATHLIB`\n\nenvironments check formal certificates.\n\nBackend availability is not verification authority. Provider output remains unverified until the appropriate independent checker accepts its bound witness or certificate.\n\n**Lean certificates**\n\nThe `lean.check`\n\ncapability binds an exact proposition and proof body to its\nresult. The bundled environments pin Lean, imports, and their allowed trust\nbases; model-supplied imports and packages are rejected.\n\nPrepare the pinned runtime with:\n\n```\nelan toolchain install leanprover/lean4:v4.31.0\ncd lean\nlake update\nlake build\n```\n\nProof-state interaction and premise retrieval are exploration aids. Their\noutput cannot become `VERIFIED`\n\nwithout a successful `lean.check`\n\n. See the\n[guided declaration-discovery tutorial](/morluto/jacobian/blob/main/docs/tutorials/lean-declaration-discovery.md).\n\n**macOS and Z3**\n\nThe locked environment uses `z3-solver`\n\n5.0.0.0. Its upstream macOS wheels\ntarget macOS 13 or newer on Apple silicon and Intel. On an older release, `uv`\n\nfalls back to a source build that requires CMake, `make`\n\n, and a C++20 compiler.\n\nInstall the Xcode Command Line Tools and CMake before retrying `uv sync --dev`\n\n.\nThese commands report the relevant environment without changing it:\n\n```\nsw_vers -productVersion\nuname -m\nxcode-select -p\nclang++ --version\ncmake --version\nmake --version\n```\n\nSee the\n[ z3-solver 5.0.0.0 files on PyPI](https://pypi.org/project/z3-solver/5.0.0.0/#files)\nfor the upstream wheel tags.\n\nJacobian is pre-stable. Experimental contracts may change between releases; release specifications describe supported snapshots, not the order of ongoing capability research.\n\nThe 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.\n\n**About the hero image**\n\nThe 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. The equations are unusually good shorthand for Jacobian's purpose—surprising candidates are valuable, but exact computation and independent checking establish what can be trusted.\n\nTerence Tao gives an\n[accessible mathematical account](https://terrytao.wordpress.com/2026/07/21/a-digestion-of-the-jacobian-conjecture-counterexample/).\nThe determinant identity and collision have also been\n[independently formalized in Isabelle/HOL](https://isa-afp.org/entries/Jacobian_Counterexample.html).\nThe two-dimensional conjecture remains open.\n\n**Project boundaries**\n\nJacobian 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.\n\nJacobian uses Python 3.12, `uv`\n\n, and a small `Makefile`\n\n:\n\n```\nmake setup\nmake test-unit\nmake check\n```\n\nRead [CONTRIBUTING.md](/morluto/jacobian/blob/main/CONTRIBUTING.md) before changing code. It documents\nfocused test commands, verification rules, documentation placement, and\npull-request expectations.", "url": "https://wpnews.pro/news/jacobian-a-high-level-maths-toolkit-for-agents", "canonical_source": "https://github.com/morluto/jacobian", "published_at": "2026-07-30 10:04:43+00:00", "updated_at": "2026-07-30 10:22:50.895197+00:00", "lang": "en", "topics": ["ai-tools", "ai-agents", "developer-tools"], "entities": ["Jacobian", "MCP", "Claude", "Codex", "Cursor", "Gemini", "OpenCode", "Node.js"], "alternates": {"html": "https://wpnews.pro/news/jacobian-a-high-level-maths-toolkit-for-agents", "markdown": "https://wpnews.pro/news/jacobian-a-high-level-maths-toolkit-for-agents.md", "text": "https://wpnews.pro/news/jacobian-a-high-level-maths-toolkit-for-agents.txt", "jsonld": "https://wpnews.pro/news/jacobian-a-high-level-maths-toolkit-for-agents.jsonld"}}