Identifier
F:complex-mul-inv-cancel
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

For a constructed complex number x and a natural n witnessing normSq(x) is positively bounded away from zero at precision n (CReal.PosBound (Complex.normSq x) n), x * x^-1 is Complex.Equiv-equivalent to 1, where the inverse is built from the witness n. As with F:creal-mul-inv-cancel and the pre-existing F:real-inverse-is-partial-and-its-modulus-is-data (for the axiomatized AxReal package), the inverse is PARTIAL and the witness is data, not a proof of a decidable disjunction -- there is no complex analogue of a total field-inverse operation here.

Formal statement
theorem Complex.mul_inv_cancel : ((x0 : Complex) -> ((x1 : AxNat) -> ((x2 : CReal.PosBound (Complex.normSq x0) x1) -> Complex.Equiv (Complex.mul x0 (Complex.inv x0 x1 x2)) Complex.one)))

Dependencies

The graph shows direct ledger edges. Follow a node to open its artifact page.

Evidence

kernel-Complex.mul_inv_cancel

Kind
kernel-term
Status
checked

Supports: Complex.mul_inv_cancel is admitted by the trusted kernel gate with the type recorded in formal.statement.

Checker command
cargo run -q --release -p axeyum-lean-kernel --example theorem_dependency_inventory -- Complex.mul_inv_cancel 2>/dev/null | grep -cE '^Complex\.mul_inv_cancel[[:space:]]'
Evidence notes

`build_complex_prelude` admits Complex.mul_inv_cancel through the trusted `Kernel::add_declaration` gate, which re-checks the proof term against the stated type, so a line in this tool's output for the exact name is a machine-checked proof having been admitted. `theorem_dependency_inventory` builds creal/complex/cpoint (extended 2026-08-25); it exits non-zero for a named filter that matches nothing, and `grep -c` (never `-q`) independently asserts the exact tab-anchored line is present. `--release` is MANDATORY: building the constructed carriers recurses deep enough in a debug build to overflow the default thread stack (measured on this tree: release exits 0, debug SIGABRTs at 134) -- the same resource-limit gotcha documented for `prelude_theorem_inventory --include-constructed`.

footprint-Complex.mul_inv_cancel

Kind
exhaustive-enumeration
Status
checked

Supports: axiom_footprint: [] -- the Complex prelude's trusted surface is empty

Checker command
cargo run -q --release -p axeyum-lean-kernel --example nat_axiom_inventory -- --include-constructed --require-axiom-free complex
Evidence notes

`nat_axiom_inventory --include-constructed` builds the Complex environment as its own group and reports `complex: axiom=0 opaque=0 quotient=0 total_trusted=0` (re-measured on this tree). That bounds every individual Complex theorem's footprint by [], since a theorem cannot depend on a trusted declaration the environment does not contain, and the enumeration covers Axiom, Opaque AND Quotient, not just Declaration::Axiom. `--include-constructed` is REQUIRED here -- without it `--require-axiom-free complex` is an error (verified: exit 1, '"complex" is not enumerated by this run'), not a silent pass, because complex is not built at all without the flag; this is the standing trap of an empty/absent result reading as a strong negative when the tool was never pointed at the subject.

Provenance

{
  "date": "2026-08-25",
  "established_by": "axeyum-lean-kernel build_complex_prelude",
  "source": "theorem name and dependency edges from theorem_dependency_inventory (builds creal/complex/cpoint); canonical type read via a standalone probe binary depending on axeyum-lean-kernel by path, calling only its public Kernel API (environment(), display_name(), render_lean(), axiom_footprint()) -- no in-tree example prints Complex/CPoint theorem types; crates/ source was not touched to produce this batch."
}