The Proof System

A deep dive into Z3, invariants, and what “Proven” means.

Z3 and invariant

Aura’s verification pipeline treats proofs as a first-class stage.

A loop without an explicit invariant can still verify in some cases, but the safest pattern is to write an invariant.

AURA
cell sum_to(n: u32) -> u32:
  mut i: u32 = 0
  mut acc: u32 = 0

  while i < n invariant (acc >= 0):
    acc = acc + i
    i = i + 1

  yield acc

When the solver finds a counterexample, the editor/CLI should surface the mathematical reason.