install
source · Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/formal-verification-ai" ~/.claude/skills/plurigrid-asi-formal-verification-ai-ac34ff && rm -rf "$T"
manifest:
skills/formal-verification-ai/SKILL.mdsource content
Formal Verification AI
Category: Phase 3 Core - Correctness Guarantees Status: Skeleton Implementation Dependencies:
categorical-composition (correctness as functoriality)
Overview
Integrates formal verification methods with AI systems: theorem proving for correctness guarantees, interval arithmetic for certified bounds, and categorical proofs for compositional correctness.
Capabilities
- Theorem Proving: Automated verification of AI properties
- Interval Arithmetic: Certified bounds on network outputs
- Categorical Correctness: Functorial preservation guarantees
- Adversarial Robustness: Verified defense certificates
Core Components
-
Theorem Prover Interface (
)theorem_proving.jl- Integration with Z3, Lean, or Coq
- Encode neural networks as logical formulas
- Automated proof search
-
Interval Arithmetic (
)interval_arithmetic.jl- Interval propagation through networks
- Certified bounds on outputs
- Robustness verification
-
Categorical Proofs (
)categorical_correctness.jl- Verify functor laws for compositional networks
- Natural transformation diagrams
- Commutativity checking
-
Verification Examples (
)verification_examples.jl- Adversarial robustness proofs
- Fairness guarantees
- Safety-critical system verification
Integration Points
- Input from: All Phase 3 skills (provides verification layer)
- Output to:
(verified transformations)categorical-composition - Coordinates with:
(topological invariants)oriented-simplicial-networks
Usage
using FormalVerificationAI # Define neural network network = SimpleNN([Dense(10, 20, relu), Dense(20, 2)]) # Verify robustness using interval arithmetic input_interval = Interval([0.0, 0.0], [1.0, 1.0]) output_bounds = propagate_intervals(network, input_interval) # Prove categorical correctness F = network_to_functor(network) @assert verify_functor_laws(F) # Automated theorem proving property = "∀x. ||x - x'|| < ε ⟹ ||f(x) - f(x')|| < δ" proof = prove_property(network, property, timeout=60)
References
- Katz et al. "Reluplex: An Efficient SMT Solver for Verifying Deep Neural Networks" (2017)
- Singh et al. "An Abstract Domain for Certifying Neural Networks" (POPL 2019)
- Fong & Spivak "Hypergraph Categories" (2019)
Implementation Status
- Basic interval arithmetic
- Z3 interface skeleton
- Full neural network encoding
- Categorical correctness verification
- Benchmark on standard verification tasks