Identifier
F:ml430-nat-mul-lt-mul-right-de5b6046
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

The proposition declared as `Nat.mul_lt_mul_right` in the pinned Mathlib v4.30 source.

Formal statement
∀ {a b c : ℕ}, 0 < a → (b * a < c * a ↔ b < c)

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. Mathlib v4.30 source propositio [generated] kernel theorem Nat. <= on the naturals is transitiv Multiplication on the naturals Multiplication by a fixed left (a+1) * b = a*b + b Current fact
6 direct dependencies 0 direct dependents

Evidence

kernel-Nat.mul_lt_mul_right

Kind
kernel-term
Status
checked

Supports: `Nat.mul_lt_mul_right` is admitted as a Theorem with EXACTLY the stated shape, pinned verbatim via the kernel's own renderer: `((x0 : AxNat) -> ((x1 : AxNat) -> ((x2 : AxNat) -> ((x3 : AxNat.lt AxNat.zero x0) -> Iff (AxNat.lt (AxNat.mul x1 x0) (AxNat.mul x2 x0)) (AxNat.lt x1 x2)))))`. Built in the same new file as the mirror of `Nat.mul_lt_mul_left`, using a privately-built `mul_le_mul_right_core` (via `Nat.mul_le_mul_left` + `Nat.mul_comm`, since no public `mul_le_mul_right` exists) and an EXPLICIT rewrite along `Nat.succ_mul` -- unlike the left mirror, `mul (succ b) a = add (mul b a) a` is NOT a refl-provable defining equation here (`Nat.mul` recurses on its right argument, so only `mul_succ` is `Eq.refl`; `succ_mul` is a real theorem under "multiplicative theorems", proved by induction). A first attempt assuming the same free defeq for both mirrors failed to build (`TypeMismatch`) and was fixed by adding the explicit `Nat.succ_mul` transport.

Checker command
test "$(cargo run -q --release -p axeyum-lean-kernel --example nat_theorem_inventory 2>/dev/null | awk -F'\t' '$1 == "Nat.mul_lt_mul_right" && $3 == "((x0 : AxNat) -> ((x1 : AxNat) -> ((x2 : AxNat) -> ((x3 : AxNat.lt AxNat.zero x0) -> Iff (AxNat.lt (AxNat.mul x1 x0) (AxNat.mul x2 x0)) (AxNat.lt x1 x2)))))"' | wc -l)" -ge 1

footprint-Nat.mul_lt_mul_right

Kind
kernel-term
Status
checked

Supports: axiom_footprint: [] for `Nat.mul_lt_mul_right`. The `nat` prelude's trusted surface stays 0: no Axiom, no Opaque, no Quotient.

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

coverage-Nat.mul_lt_mul_right

Kind
kernel-term
Status
checked

Supports: Coverage for `Nat.mul_lt_mul_right` derived from `kernel.environment()` directly, not from an inventory list -- a Nat-namespace declaration missing from `theorem_names` fails this test by name.

Checker command
test "$(cargo test -p axeyum-lean-kernel --lib nat_prelude::nat_prelude_tests::every_nat_declaration_is_checked_and_axiom_free -- --exact 2>&1 | grep -Ec 'test result: ok\. 1 passed; 0 failed')" -ge 1

Provenance

{
  "date": "2026-08-29",
  "established_by": "lane nat-mul-order (2026-08-29): built directly as a kernel declaration in the new file nat_prelude/mul_order_lemmas.rs. Verified against the pinned Mathlib v4.30.0 source (commit c5ea00351c28e24afc9f0f84379aa41082b1188f) that this is a standard Nat order/multiplication/division lemma about the SAME Nat.mul/Nat.lt/Nat.div this kernel already has (no new definition introduced), so mirroring it is honest under the mirror-flip criterion.",
  "prior_art": [
    {
      "attribution": "the proposition was read from the pinned statement-only inventory; the proof term and tactic trace were not consulted",
      "what": "the theorem declaration `Nat.mul_lt_mul_right`",
      "where": "mathlib4 commit c5ea00351c28e24afc9f0f84379aa41082b1188f (v4.30.0)",
      "who": "the Mathlib contributors",
      "year": 2026
    }
  ],
  "source": "statement-only extraction of `Nat.mul_lt_mul_right` from Mathlib v4.30.0; no proof value was exposed"
}