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

Recorded description

CReal.sumRangeRatioTest: given a sequence a, a ratio x with 0<=x<1 and a positivity-bound witness for 1-x, and |a(n+1)| <= x*|a(n)| for every n, sumRange a is Cauchy. Spivak Ch.22-23's ratio test, built from geomScaledCauchyOfLt (the dominating scaled geometric series) composed with sumRange_cauchy_of_dominated via the ratioDecayBound leaf lemma.

Formal statement
theorem CReal.sumRangeRatioTest : ((x0 : ((x0 : AxNat) -> CReal)) -> ((x1 : CReal) -> ((x2 : CReal.le CReal.zero x1) -> ((x3 : CReal.lt x1 CReal.one) -> ((x4 : AxNat) -> ((x5 : CReal.PosBound (CReal.add CReal.one (CReal.neg x1)) x4) -> ((x6 : ((x6 : AxNat) -> CReal.le (CReal.abs (x0 (AxNat.succ x6))) (CReal.mul x1 (CReal.abs (x0 x6))))) -> CReal.Cauchy (CReal.sumRange x0))))))))

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. A constant multiple of a genera [generated] kernel theorem CRea Dominated convergence, Cauchy f Current fact
3 direct dependencies 0 direct dependents

Evidence

kernel-CReal.sumRangeRatioTest

Kind
kernel-term
Status
checked

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

build_creal_prelude admits CReal.sumRangeRatioTest 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 theorem cannot read as a re-derived one), and grep -c (never -q) both consumes the pipe and asserts the exact tab-anchored line is present. Verified on this tree: the command prints exactly one matching line for CReal.sumRangeRatioTest. --release is MANDATORY: this tool also builds creal/complex/cpoint, which overflow the default debug thread stack.

footprint-CReal.sumRangeRatioTest

Kind
exhaustive-enumeration
Status
checked

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

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.sumRangeRatioTest, 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/ratio_test.rs, declare_sum_range_ratio_test)",
  "source": "canonical type read via kernel_declaration_projection's own UNFILTERED emit mode (cargo run -q --release -p axeyum-lean-kernel --example kernel_declaration_projection, no --require-declaration flag), which prints, per constructed prelude, one TSV row per declaration whose last field is kernel.render_lean(declaration.ty()) -- the same Kernel::render_lean canonical form nat_theorem_inventory prints, just not filtered to Declaration::Theorem. That output was piped to a scratchpad file and the exact row for this declaration's own prelude label was extracted and injected here programmatically (a Python script reading the TSV, never hand-transcribed); direct dependency edges (where applicable) were cross-read from the same run's direct_theorems column and independently confirmed against theorem_dependency_inventory's own output on this tree. No new probe binary was written for this batch, since the in-tree tool already emits the canonical type; crates/ source was not touched to produce this batch."
}