CLI #
Unified verification CLI registry.
The repository exposes several verification entry points: LiRPA-style bound checks, PINN certificate recomputation, α,β-CROWN leaf artifact checks, robustness margin certificates, ODE enclosure checks, and model-to-IR bound propagation workflows.
This file defines a single dispatcher so users can run everything from:
lake exe verify -- <tool> [args...]
References (background on the verifier families exposed here):
- IBP (interval bound propagation): arXiv:1810.12715.
- CROWN / α,β-CROWN style linear relaxations: see arXiv:1811.00866 and arXiv:2103.06624.
- VNN-COMP (benchmark format / suites): see the VNN-COMP competition pages and papers.
Tool registry #
We represent each runnable verifier or checker as a Tool record, then expose a simple dispatcher
over a list of tools.
A single entry in the unified verification CLI.
Each Tool corresponds to one command name (e.g. torchlean-ibp) and a handler
run : List String → IO Unit.
Design notes:
- Tools with
includeInAll = falseare interactive or long-running workflows and are excluded from theallcommand. - Tools may declare a default path argument for convenience.
- name : String
Command-line name (first positional arg) used to select this tool.
- description : String
Short help text shown in
listoutput. Default file/path argument, if the tool expects a path.
- includeInAll : Bool
Whether
lake exe verify -- allshould run this tool. Implementation: run the tool with the remaining CLI args.
Instances For
One-line usage string for a single tool in the unified verification CLI.
Instances For
Usage string for the unified verification CLI dispatcher.
Instances For
Tool group: LiRPA-style bound propagation and certificate checking.
Instances For
Tool group: other verification-related utilities.
Instances For
The full list of registered verification tools (LiRPA plus other workflows/checkers).
Instances For
Look up a tool by its command-line name.
Instances For
lake exe verify executes the unqualified main.
We keep the implementation namespaced and provide a thin root-level wrapper so the Lake executable entrypoint remains stable.