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

Recorded description

If f has derivative f' on [a,b], g has derivative g' on [a,b], and f is uniformly continuous on [a,b] (with the epsilon-N bounds the constructed development carries as explicit data), then f*g has derivative f'*g + f*g' on [a,b]. This is (f*g)' = f'*g + f*g' over the CONSTRUCTED reals -- the shipped route -- not the axiomatized AxReal package.

Formal statement
theorem CReal.hasDerivative_mul : ((x0 : ((x0 : CReal) -> CReal)) -> ((x1 : ((x1 : CReal) -> CReal)) -> ((x2 : ((x2 : CReal) -> CReal)) -> ((x3 : ((x3 : CReal) -> CReal)) -> ((x4 : CReal) -> ((x5 : CReal) -> ((x6 : CReal.HasDerivativeOn x0 x1 x4 x5) -> ((x7 : CReal.HasDerivativeOn x2 x3 x4 x5) -> ((x8 : CReal.UniformlyContinuousOn x0 x4 x5) -> ((x9 : AxNat) -> ((x10 : AxNat) -> ((x11 : AxNat) -> ((x12 : ((x12 : CReal) -> ((x13 : CReal.le x4 x12) -> ((x14 : CReal.le x12 x5) -> CReal.le (CReal.abs (x0 x12)) (CReal.ofRat (Rat.natDivSucc (AxNat.succ x9) AxNat.zero)))))) -> ((x13 : ((x13 : CReal) -> ((x14 : CReal.le x4 x13) -> ((x15 : CReal.le x13 x5) -> CReal.le (CReal.abs (x2 x13)) (CReal.ofRat (Rat.natDivSucc (AxNat.succ x10) AxNat.zero)))))) -> ((x14 : ((x14 : CReal) -> ((x15 : CReal.le x4 x14) -> ((x16 : CReal.le x14 x5) -> CReal.le (CReal.abs (x3 x14)) (CReal.ofRat (Rat.natDivSucc (AxNat.succ x11) AxNat.zero)))))) -> CReal.HasDerivativeOn (fun (x15 : CReal) => CReal.mul (x0 x15) (x2 x15)) (fun (x15 : CReal) => CReal.add (CReal.mul (x1 x15) (x2 x15)) (CReal.mul (x0 x15) (x3 x15))) x4 x5)))))))))))))))

Dependencies

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

Evidence

kernel-CReal.hasDerivative_mul

Kind
kernel-term
Status
checked

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

`build_creal_prelude` admits CReal.hasDerivative_mul 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` was extended in this same change to build creal/complex/cpoint (previously only nat/integer/rat/string/characterization); it exits non-zero for a named filter that matches nothing, and `grep -c` (never `-q`) independently asserts the exact tab-anchored line is present. `--release` is MANDATORY: building the constructed carriers recurses deep enough in a debug build to overflow the default thread stack (measured: release exits 0 with 1092 theorems total, debug SIGABRTs at 134) -- the same resource-limit gotcha already documented for `prelude_theorem_inventory --include-constructed`.

footprint-CReal.hasDerivative_mul

Kind
exhaustive-enumeration
Status
checked

Supports: axiom_footprint: [] -- the CReal prelude's trusted surface is empty

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

`nat_axiom_inventory --include-constructed` builds the CReal environment as its own group and reports `creal: axiom=0 opaque=0 quotient=0 total_trusted=0` (re-measured on this tree). That bounds every individual CReal theorem's footprint by [], 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. `--include-constructed` is REQUIRED here -- without it `--require-axiom-free creal` is an error (verified: exit 1), not a silent pass, because creal is not built at all without the flag; this is the standing trap of an empty/absent result reading as a strong negative when the tool was never pointed at the subject.

Provenance

{
  "date": "2026-08-25",
  "established_by": "axeyum-lean-kernel build_creal_prelude",
  "source": "theorem name and dependency edges from theorem_dependency_inventory (extended in this change to cover creal/complex/cpoint); canonical type read via a standalone probe binary depending on axeyum-lean-kernel by path, calling only its public Kernel API (environment(), display_name(), render_lean(), axiom_footprint()) -- no in-tree example currently prints CReal theorem types, and crates/ source was left untouched here beyond theorem_dependency_inventory.rs itself."
}