Identifier
F:creal-polydegreelt-polyadd
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

If polyDegreeLt c n and polyDegreeLt g n then polyDegreeLt (polyAdd c g) n -- the degree bound is preserved (not merely bounded by the max) when both summands already share the same bound n.

Formal statement
theorem CReal.polyDegreeLt_polyAdd : ((x0 : ((x0 : AxNat) -> CReal)) -> ((x1 : ((x1 : AxNat) -> CReal)) -> ((x2 : AxNat) -> ((x3 : CReal.polyDegreeLt x0 x2) -> ((x4 : CReal.polyDegreeLt x1 x2) -> CReal.polyDegreeLt (CReal.polyAdd x0 x1) x2)))))

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 rea Zero is a right additive identi CReal.Equiv is reflexive CReal.Equiv is transitive Current fact
4 direct dependencies 0 direct dependents

Evidence

kernel-CReal.polyDegreeLt_polyAdd

Kind
kernel-term
Status
checked

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

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

Kind
exhaustive-enumeration
Status
checked

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

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.polyDegreeLt_polyAdd, 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_degree_lt_poly_add)",
  "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."
}