acir-formal-proofs

Regenerate ACIR artifacts and run formal proof tests with time and memory caps.

Updated May 14, 2026
One-click install
npx skills add https://github.com/HabibTorjmen/Blockchain --skill acir-formal-proofs
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: acir-formal-proofs
Source: https://github.com/HabibTorjmen/Blockchain/tree/main/aztec-packages/.claude/skills/acir-formal-proofs
Command: npx skills add https://github.com/HabibTorjmen/Blockchain --skill acir-formal-proofs

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires bash, timeout, /usr/bin/time, ulimit, and includes scripts (resource) components.

What problem does it solve?

This Skill automates the end-to-end workflow of generating ACIR artifacts and running each ACIR formal proof test with strict time and memory limits, so you can reliably validate changes without manually managing heavy test runs.

Core Features & Use Cases

  • Build & configure SMT-enabled tests: Ensures the Barretenberg ACIR formal proof test binary is built with SMT and ACIR formal proofs enabled.
  • Regenerate ACIR artifacts from Noir SSA verification: Re-runs ssa_verification to regenerate ACIR inputs in /tmp/ using the current Noir version.
  • Sequential, resource-capped test execution: Runs the full test suite one-by-one to avoid OOM/CPU contention, recording elapsed time and peak memory per test.
  • Keeps an up-to-date results table: Updates the README in barretenberg/cpp/src/barretenberg/acir_formal_proofs/README.md with pass/fail status and timing/memory outcomes.

Quick Start

Ask the AI to run the acir-formal-proofs skill with a time limit of 600 seconds and a memory limit of 16 GB per test, then it will build prerequisites, regenerate ACIR artifacts, execute tests sequentially, and update the results table in the Barretenberg README.

Frequently Asked Questions about acir-formal-proofs

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run ACIR formal proof tests with strict time and memory limits?

You can run ACIR formal proof tests with strict time and memory limits by sequentially executing each opcode test using shell timeout and ulimit caps to prevent out-of-memory failures while recording per-test peak memory and elapsed time.

How do I regenerate ACIR artifacts from Noir SSA verification before testing?

Regenerate ACIR artifacts from Noir SSA verification by re-running the ssa_verification command, which deterministically outputs the regenerated ACIR inputs into the /tmp/ directory using your current Noir version.

Why do my Barretenberg ACIR formal proof tests run out of memory when executed in parallel?

Barretenberg ACIR formal proof tests run out of memory when executed in parallel because they are resource-intensive SMT verification workflows that must run sequentially to avoid CPU contention and OOM errors.

Does the ACIR formal proof workflow require an SMT-enabled Barretenberg build?

The ACIR formal proof workflow does require an SMT-enabled Barretenberg build, ensuring the ACIR formal proof test binary is specifically configured with both SMT and ACIR formal proofs enabled before execution.

How do I update the Barretenberg README with ACIR formal proof test results?

Update the Barretenberg README with ACIR formal proof test results by mapping pass/fail status alongside timing and memory outcomes by opcode and operand types directly into the barretenberg README file.

What are the limitations of using ulimit and timeout for ACIR formal proof test generation?

Limitations of using ulimit and timeout for ACIR formal proof test generation include enforcing hard resource caps that halt individual tests exceeding limits, requiring sequential execution to avoid system instability from concurrent SMT solver memory consumption.