Identifier
F:rat-covariance-sq-le-variance-mul-of-zero-zero
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

For random variables X, Y over a distribution (p, n): if variance(X,p,n) = 0 and variance(Y,p,n) = 0 then covariance(X,Y,p,n)^2 <= variance(X,p,n) * variance(Y,p,n) -- the degenerate case of the Cauchy-Schwarz bound for covariance.

Formal statement
theorem Rat.covariance_sq_le_variance_mul_of_zero_zero : ((x0 : ((x0 : AxNat) -> Rat)) -> ((x1 : ((x1 : AxNat) -> Rat)) -> ((x2 : ((x2 : AxNat) -> Rat)) -> ((x3 : AxNat) -> ((x4 : Rat.IsDistribution x2 x3) -> ((x5 : Eq.{1} Rat (Rat.variance x0 x2 x3) Rat.zero) -> ((x6 : Eq.{1} Rat (Rat.variance x1 x2 x3) Rat.zero) -> Rat.le (Rat.mul (Rat.covariance x0 x1 x2 x3) (Rat.covariance x0 x1 x2 x3)) (Rat.mul (Rat.variance x0 x2 x3) (Rat.variance x1 x2 x3)))))))))

Dependencies

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

Evidence

kernel-Rat.covariance_sq_le_variance_mul_of_zero_zero

Kind
kernel-term
Status
checked

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

`build_rat_prelude` admits Rat.covariance_sq_le_variance_mul_of_zero_zero 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` exits non-zero for a named filter that matches nothing (a deleted 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 recurse deep enough in a debug build to overflow the default thread stack (measured: release exits 0, debug SIGABRTs at 134) -- the same resource-limit gotcha already documented for `prelude_theorem_inventory --include-constructed`.

footprint-Rat.covariance_sq_le_variance_mul_of_zero_zero

Kind
exhaustive-enumeration
Status
checked

Supports: axiom_footprint: [] -- the rat prelude's trusted surface is empty, which bounds Rat.covariance_sq_le_variance_mul_of_zero_zero

Checker command
cargo run -q -p axeyum-lean-kernel --example nat_axiom_inventory -- --require-axiom-free rat
Evidence notes

`nat_axiom_inventory` builds the Rat environment as its own group and reports `rat: axiom=0 opaque=0 quotient=0 total_trusted=0` (re-measured on this tree). That bounds every individual Rat theorem's footprint by [], including Rat.covariance_sq_le_variance_mul_of_zero_zero, 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, because Opaque has no proof body and Quotient admits Quot.sound. `--require-axiom-free <name>` is an error (not a silent pass/zero) for a prelude this run never built, which is what makes `rat` here a claim rather than an absence.

Provenance

{
  "date": "2026-08-25",
  "established_by": "axeyum-lean-kernel build_rat_prelude",
  "source": "theorem name and dependency edges from theorem_dependency_inventory (builds nat/int/rat/creal/complex/cpoint/string/characterization); canonical type and top-level binder count read via a standalone probe binary depending on axeyum-lean-kernel by path, calling only its public Kernel API (environment(), display_name(), render_lean()) -- no in-tree example prints Rat/CReal theorem types beyond a substring filter; crates/ source was not touched to produce this batch; the probe was built and run in the session scratchpad and deleted after use."
}