Identifier
F:creal-polyeval-polyscale
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

CReal.Equiv (polyEval (polyScale s c) n x) (s * polyEval c n x) -- polyEval commutes with scalar multiplication, for every scalar s, coefficient function c, degree bound n, and point x.

Formal statement
theorem CReal.polyEval_polyScale : ((x0 : CReal) -> ((x1 : ((x1 : AxNat) -> CReal)) -> ((x2 : AxNat) -> ((x3 : CReal) -> CReal.Equiv (CReal.polyEval (CReal.polyScale x0 x1) x2 x3) (CReal.mul x0 (CReal.polyEval x1 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. CReal.Equiv is reflexive CReal.Equiv is symmetric CReal.Equiv is transitive Multiplication on the construct [generated] kernel theorem CRea [generated] kernel theorem CRea Current fact
6 direct dependencies 0 direct dependents

Evidence

kernel-CReal.polyEval_polyScale

Kind
kernel-term
Status
checked

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

The producing prelude admits CReal.polyEval_polyScale 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-CReal.polyEval_polyScale

Kind
exhaustive-enumeration
Status
checked

Supports: axiom_footprint: [] -- the creal prelude's trusted surface is empty, which bounds CReal.polyEval_polyScale

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

Re-measured on this tree: creal: axiom=0 opaque=0 quotient=0 total_trusted=0, exits 0 printing 'ok: creal trusted surface = 0'. That bounds every declaration in the creal environment, including CReal.polyEval_polyScale, 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_creal_prelude (crates/axeyum-lean-kernel/src/creal/polynomial.rs, declare_poly_eval_poly_scale)",
  "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."
}