Identifier
F:ml430-int-mul-nonpos-iff-4da0d0b9
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

The proposition declared as `Int.mul_nonpos_iff` in the pinned Mathlib v4.30 source.

Formal statement
∀ {a b : ℤ}, a * b ≤ 0 ↔ 0 ≤ a ∧ b ≤ 0 ∨ a ≤ 0 ∧ 0 ≤ b

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. Adding zero to an integer is th [generated] kernel theorem Int. The integer order is reflexive The integer order is total Multiplication on the integers Multiplication on the integers [generated] kernel theorem Int. [generated] kernel theorem Int. Current fact
15 direct dependencies 0 direct dependents Graph shows the first 8 on each side.

Evidence

kernel-Int.mul_nonpos_iff

Kind
kernel-term
Status
checked

Supports: `Int.mul_nonpos_iff` is admitted as a Theorem with EXACTLY the stated shape, pinned verbatim via the kernel's own renderer: `((x0 : Int) -> ((x1 : Int) -> Iff (Int.le (Int.mul x0 x1) Int.zero) (Or (And (Int.le Int.zero x0) (Int.le x1 Int.zero)) (And (Int.le x0 Int.zero) (Int.le Int.zero x1)))))`.

Checker command
test "$(cargo run -q --release -p axeyum-lean-kernel --example int_theorem_inventory 2>/dev/null | awk -F'\t' '$1 == "theorem" && $2 == "Int.mul_nonpos_iff" && $4 == "((x0 : Int) -> ((x1 : Int) -> Iff (Int.le (Int.mul x0 x1) Int.zero) (Or (And (Int.le Int.zero x0) (Int.le x1 Int.zero)) (And (Int.le x0 Int.zero) (Int.le Int.zero x1)))))"' | wc -l)" -ge 1

footprint-Int.mul_nonpos_iff

Kind
kernel-term
Status
checked

Supports: axiom_footprint: [] for `Int.mul_nonpos_iff`. The `integer` 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 integer

coverage-Int.mul_nonpos_iff

Kind
kernel-term
Status
checked

Supports: Coverage for `Int.mul_nonpos_iff` derived from `kernel.environment()` directly, not from an inventory list -- an Int-namespace declaration missing from `derived_laws` fails this test by name.

Checker command
test "$(cargo test -p axeyum-lean-kernel --lib int_prelude::int_prelude_tests::every_int_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 int-sign-product (2026-08-29/30): built in the new file int_prelude/sign_product.rs. All five reduce to one shared sign case-split (Int.le_total zero a / Int.le_total zero b) plus six quadrant facts: Int.mul_nonneg and Int.mul_pos already existed; mul_nonneg_of_nonpos_of_nonpos and mul_pos_of_neg_of_neg go through a sign flip (x<=0 -> 0<=-x, built from add_le_add_left/add_lt_add_of_le_of_lt + add_left_neg + add_zero, no Int.rec case split) and (-a)*(-b)=a*b (neg_mul_neg, from gcd.rs's already-derived neg_mul/neg_neg); the two mixed-sign nonstrict quadrant facts (mul_nonpos_of_nonneg_of_nonpos, mul_nonpos_of_nonpos_of_nonneg) fall out of mul_le_mul_of_nonneg_left at c:=0 with no neg reasoning; the two mixed-sign strict quadrant facts (mul_neg_of_pos_of_neg, mul_neg_of_neg_of_pos) shift by mul_pos/Int.mul_neg. A same-sign quadrant satisfying the opposite strictness from the hypothesis combines via Int.le_antisymm to force the product to zero, decided by Int.mul_eq_zero; a same-sign quadrant matching the hypothesis's direction but needing strictness upgrades via Int.eq_em + Int.lt_of_le_of_ne.",
  "source": "statement-only extraction of `Int.mul_nonpos_iff` from Mathlib v4.30.0; no proof value was exposed",
  "prior_art": [
    {
      "who": "the Mathlib contributors",
      "what": "the theorem declaration `Int.mul_nonpos_iff`",
      "where": "mathlib4 commit c5ea00351c28e24afc9f0f84379aa41082b1188f (v4.30.0)",
      "year": 2026,
      "attribution": "the proposition was read from the pinned statement-only inventory; the proof term and tactic trace were not consulted"
    }
  ]
}