Identifier
F:complex-polydegreelt-polymul
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

If polyDegreeLt c m and polyDegreeLt g n then polyDegreeLt (polyMul c g) (m+n) -- multiplying two coefficient functions (via the antidiagonal Cauchy-product convolution polyMul) adds their degree bounds.

Formal statement
theorem Complex.polyDegreeLt_polyMul : ((x0 : ((x0 : AxNat) -> Complex)) -> ((x1 : ((x1 : AxNat) -> Complex)) -> ((x2 : AxNat) -> ((x3 : AxNat) -> ((x4 : Complex.polyDegreeLt x0 x2) -> ((x5 : Complex.polyDegreeLt x1 x3) -> Complex.polyDegreeLt (Complex.polyMul x0 x1) (AxNat.add x2 x3)))))))

Dependencies

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

Direct dependencies appear to the left. The current fact is in the center. Facts that depend directly on it appear to the right. Addition on the constructed com Zero is a right additive identi CReal.Equiv-lifted equivalence Complex.Equiv is transitive Multiplication on the construct [generated] kernel theorem Comp Addition on the constructed rea Addition on the constructed rea Current fact
28 direct dependencies 0 direct dependents Graph shows the first 8 on each side.

Evidence

kernel-Complex.polyDegreeLt_polyMul

Kind
kernel-term
Status
checked

Supports: Complex.polyDegreeLt_polyMul 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.polyDegreeLt_polyMul 2>/dev/null | grep -cE '^Complex\.polyDegreeLt_polyMul[[:space:]]'
Evidence notes

The producing prelude admits Complex.polyDegreeLt_polyMul through the trusted Kernel::add_declaration gate, which re-checks the proof term against the stated type. theorem_dependency_inventory exits non-zero for a named filter matching nothing (a deleted/renamed theorem cannot read as a re-derived one), and grep -c (never -q) both avoids a SIGPIPE-under-pipefail false negative and independently asserts the exact tab-anchored line is present. --release is MANDATORY: this tool also builds creal/complex/cpoint, which overflow the default debug thread stack.

footprint-Complex.polyDegreeLt_polyMul

Kind
exhaustive-enumeration
Status
checked

Supports: axiom_footprint: [] -- the complex prelude's trusted surface is empty, which bounds Complex.polyDegreeLt_polyMul

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

Re-measured on this tree: complex: axiom=0 opaque=0 quotient=0 total_trusted=0, exits 0 printing 'ok: complex trusted surface = 0'. That bounds every declaration in the complex environment, including Complex.polyDegreeLt_polyMul, since a declaration cannot depend on a trusted declaration the environment does not contain. --require-axiom-free <name> errors for a prelude never built by this run rather than silently passing on zero rows. --release is MANDATORY here.

Provenance

{
  "date": "2026-08-27",
  "established_by": "axeyum-lean-kernel build_complex_prelude (crates/axeyum-lean-kernel/src/complex/poly.rs, declare_poly_degree_lt_poly_mul)",
  "source": "theorem name, canonical type and direct dependency edges read via theorem_dependency_inventory's own per-name output (cargo run -q --release -p axeyum-lean-kernel --example theorem_dependency_inventory -- <Name>), which prints '<Name>\\t<comma-separated direct deps>'; the canonical type itself was cross-extracted from kernel_declaration_projection's unfiltered TSV dump the same way as the Definition facts in this batch, and confirmed byte-for-byte identical between the two tools' output for every name in this batch. crates/ source was not touched to produce this batch."
}