milp-flare
[!NOTE] This is the official implementation of
FLAREandFLARE-NLintroduced in FLARE: Verifying MILP Reformulations with LLM-Based Theorem Proving.
FLARE (Formulation-Level Automated Reformulation Evaluation) uses an LLM-based agent and the Lean proof assistant to verify mixed-integer linear program (MILP) reformulations according to the FormulationBench definition of reformulation. FLARE-NL is a Large Language Model (LLM) proxy for FLARE that trades off formal guarantees for speed and cost. See the documentation for details.
Installation
pip install milp-flare
FLARE runs an agent harness (e.g., Claude Code, Codex, OpenCode) in a Docker container. The Docker image must be built prior to running the method.
milp-flare build-image
Furthermore, each agent harness has different requirements for authentication. See Installation for more details.
Quickstart
FLARE is most frequently run on the FormulationBench dataset (though it is not a strict dependency).
from pathlib import Path
from formulation_bench import Dataset
from milp_flare import FLARE, FormulationInput, ParameterMapInput
from milp_flare.harness import ClaudeCodeHarness
ds = Dataset.load()
pair = ds.reformulations[0] # p1.a -> p1.b
a, b = pair.a, pair.b
harness = ClaudeCodeHarness(model="claude-opus-5", effort="medium")
flare = FLARE(harness=harness)
a_in = FormulationInput(
formulation_md=a.render_markdown(), solve_py=a.gen_solve_py()
)
b_in = FormulationInput(
formulation_md=b.render_markdown(), solve_py=b.gen_solve_py()
)
map_in = ParameterMapInput(
map_md=pair.parameter_map.render_markdown(), map_py=pair.gen_map_py()
)
result = flare.verify(a_in, b_in, map_in, output_path=Path("runs/p1_a_b"))
Development
See AGENTS.md for development information.
Cite
@unpublished{robbins2026flare,
title = {FLARE: Verifying MILP Reformulations with LLM-Based Theorem Proving},
author = {Robbins, Henry and Lawless, Connor and Udell, Madeleine and Vitercik, Ellen},
year = 2026,
note = {Working paper},
url = {https://flare.henryrobbins.com}
}
License
Metadata
Release files for milp-flare 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| milp_flare-0.3.0.tar.gz | 56.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| milp_flare-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 116.4 kB
Release files / milp_flare-0.3.0.tar.gz
| Download URL | milp_flare-0.3.0.tar.gz |
|---|---|
| Size | 56.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cdef0e7dd238b9dc9c1ba864e5a826397f59aea99bff73c7dcdf56a885d0396e
|
|
BLAKE2b-256 checksum How to use checksums |
0b117b72398c0ecdc540209a5260f97083b369d679b23aa2fbeaafe717c5cb1e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / milp_flare-0.3.0-py3-none-any.whl
| Download URL | milp_flare-0.3.0-py3-none-any.whl |
|---|---|
| Size | 60.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
54073580589681e5c17ab8d8b616cec333d4e6db854ff1766485413ede7e6334
|
|
BLAKE2b-256 checksum How to use checksums |
a4a27dc0e0d4699dc7e4efbb53158cae3457f9958feba77ff46df5d6afc32eb7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|