Verification

Verification runs validation on demand from the term-store server.

The term store remains an orchestrator. It starts a configured proof-assistant or preprocessor process and reports the result; it still does not parse or type-check record bodies itself.

Configure A Database

A database needs a language and proof-assistant source path:

curl -s \
  -X PUT \
  -H 'Content-Type: application/json' \
  -d '{"language":"agda","proofAssistantPath":"examples/agda/DemoStep1Numbers.agda"}' \
  'http://127.0.0.1:8080/admin-api/v1/databases/demo'

create-from-source also stores the source path as part of database metadata.

Run Verification

curl -s \
  -X POST \
  'http://127.0.0.1:8080/admin-api/v1/databases/demo/verify'

The response is a normal JSON result even when validation fails:

{
  "database": "demo",
  "language": "agda",
  "backend": "agda-native",
  "proofAssistantPath": "examples/agda/DemoStep1Numbers.agda",
  "ok": false,
  "exitCode": 42,
  "signal": null,
  "durationSeconds": 0.25,
  "stdout": "",
  "stderr": "validation output"
}

Protocol problems, such as an unknown database or missing proof-assistant path, are returned as API errors instead.

Backend Selection

The SQLite store accepts:

--verification-backend auto
--verification-backend agda-native
--verification-backend lean-preprocessor
--verification-backend rocq-preprocessor
--verification-backend preprocessor

auto selects:

Language Backend
agda agda-native
lean lean-preprocessor
rocq rocq-preprocessor

preprocessor is currently valid for Lean and Rocq verification. Agda verification uses native Agda in the implemented minimal profile.

Generated Files

Lean and Rocq verification writes generated preprocessor output under:

artifacts/generated/verification/

The result may include generatedPath. Native Agda verification does not generate a preprocessed file.

Native Agda Requirement

Agda verification executes AGDA_BIN when that environment variable is set, or agda from PATH otherwise. Repository test helpers additionally require that the executable has MLTTDB --tdb-mode support and was installed from the current Agda subrepository build inputs.