A reflected statement aperture converts progressive arithmetic, advanced Boolean, and systems problems into counterexample scripts, sends them across an executable-process bulkhead to Z3, compares the returned status, unifies the statement type only for an unsatisfiable result, and diverts satisfiable models or process failures to error and test probes.
Reflected Z3-checked statements at the type-checking boundary

ff-smt-unsafe

repository URL pending

Scope

ff-smt-unsafe is the execution-facing companion to ff-smt, coupling its formal SMT problem and statement representations to an external Z3 process during Agda type checking. Its Z3 module combines Agda reflection with executable invocation and the solver’s SMT-LIB input and output protocol, which is why the library flags include --allow-exec. The assumption modules apply that bridge to baseline, progressive, advanced, showcase, and systems examples. Covered problem families include linear and affine arithmetic, guarded and nested Boolean constraints, propositional patterns, queues, scheduling, and quorum conditions. A dedicated test hierarchy separates raw solver features from progressive, advanced, showcase, systems, and integration checks.

Most important results

The Z3 module supplies a reflected z3CheckedStatement macro backed by an executable solver invocation and explicit handling of process output. Progressive assumption modules specialize solver-checked statement types for linear transitivity, equality chains, affine monotonicity, guarded conditionals, and nested Boolean guards. Systems assumptions cover queue-bound preservation, nonoverlapping task schedules, and three-member quorum coverage. Sixteen checked modules, including raw-feature and integration tests, collectively exercise the unsafe bridge against its ff-smt dependency.

Library modules

16 checked modules

Select a module to inspect its generated Agda source view.

Skip to content

Agda libraries

ff-smt-unsafe

ff-smt-unsafe is the execution-facing companion to ff-smt, coupling its formal SMT problem and statement representations to an external Z3 process during Agda type checking.

Reflected Z3-checked statements at the type-checking boundaryA reflected statement aperture converts progressive arithmetic, advanced Boolean, and systems problems into counterexample scripts, sends them across an executable-process bulkhead to Z3, compares the returned status, unifies the statement type only for an unsatisfiable result, and diverts satisfiable models or process failures to error and test probes.
A reflected statement aperture converts progressive arithmetic, advanced Boolean, and systems problems into counterexample scripts, sends them across an executable-process bulkhead to Z3, compares the returned status, unifies the statement type only for an unsatisfiable result, and diverts satisfiable models or process failures to error and test probes.

Scope

ff-smt-unsafe is the execution-facing companion to ff-smt, coupling its formal SMT problem and statement representations to an external Z3 process during Agda type checking. Its Z3 module combines Agda reflection with executable invocation and the solver’s SMT-LIB input and output protocol, which is why the library flags include --allow-exec. The assumption modules apply that bridge to baseline, progressive, advanced, showcase, and systems examples. Covered problem families include linear and affine arithmetic, guarded and nested Boolean constraints, propositional patterns, queues, scheduling, and quorum conditions. A dedicated test hierarchy separates raw solver features from progressive, advanced, showcase, systems, and integration checks.

Most important results

The Z3 module supplies a reflected z3CheckedStatement macro backed by an executable solver invocation and explicit handling of process output. Progressive assumption modules specialize solver-checked statement types for linear transitivity, equality chains, affine monotonicity, guarded conditionals, and nested Boolean guards. Systems assumptions cover queue-bound preservation, nonoverlapping task schedules, and three-member quorum coverage. Sixteen checked modules, including raw-feature and integration tests, collectively exercise the unsafe bridge against its ff-smt dependency.

Source browser

Modules

Browse modulesOpen generated Agda sources

Cabinet index

Explore Formal Foundry

Search the archive

Find a page

Type to search the published content.