Identifier
F:ml430-int-gcd-div-gcd-div-gcd-2db608dc
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

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

Formal statement
∀ {i j : ℤ}, 0 < i.gcd j → (i / ↑(i.gcd j)).gcd (j / ↑(i.gcd j)) = 1

Dependencies

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

Evidence

kernel-Int.gcd_div_gcd_div_gcd

Kind
kernel-term
Status
checked

Supports: The proposition declared as `Int.gcd_div_gcd_div_gcd` in the pinned Mathlib v4.30 source.

Checker command
cargo test -p axeyum-lean-kernel --lib int_prelude::
Evidence notes

`Int.gcd_div_gcd_div_gcd` in `crates/axeyum-lean-kernel/src/int_prelude/gcd.rs` (`declare_gcd_div_gcd_div_gcd`). An INDEPENDENT Bezout route, not a corollary of `Int.gcd_div` (not proved here for a general, possibly negative, divisor -- see `docs/plan/status/234-int-gcd-div.md`); the divisor here, `ofNat (gcd i j)`, is always nonnegative, so that gap never comes up. With `g := gcd i j`, `c := ofNat g`, `qi := i.ediv c`, `qj := j.ediv c`, `u := gcdA i j`, `v := gcdB i j`, `X := qi*u + qj*v`: `c` divides `i`/`j` exactly (`gcd_dvd_left`/`_right` + `emod_eq_zero_iff_dvd` + `ediv_add_emod`), giving `i = c*qi`, `j = c*qj`; Bezout (`gcd_eq_gcd_ab_witnesses`) plus substitution and factoring (`mul_assoc`/`left_distrib`) gives `c = c*X`, hence `c*1 = c*X`; taking `natAbs` (`nat_abs_mul`) and cancelling the shared positive factor `g` (`Nat.mul_left_cancel_of_pos`, fed the hypothesis `h : Nat.lt zero g` directly for the `Le one g` premise -- `Nat.lt` unfolds to exactly that shape) gives `natAbs X = 1`; `gcd qi qj` divides `qi*u` and `qj*v` (`gcd_dvd_left`/`_right` + `dvd_mul_right` + `dvd_trans`), hence divides their sum `X` (`dvd_add`), hence divides `natAbs X = 1` (`nat_abs_dvd_nat_abs_of_dvd`), hence equals `1` (`Nat.eq_one_of_dvd_one`). No new axiom, no new public lemma outside `gcd.rs`; every intermediate lemma used already existed.

footprint-Int.gcd_div_gcd_div_gcd

Kind
exhaustive-enumeration
Status
checked

Supports: axiom_footprint: [] -- this theorem's trusted closure is empty

Checker command
test "$(cargo run --release -q -p axeyum-lean-kernel --example theorem_axiom_footprint -- Int.gcd_div_gcd_div_gcd 2>/dev/null | /usr/bin/grep -xFc $'integer\tInt.gcd_div_gcd_div_gcd\t0\t')" -ge 1
Evidence notes

The matched row is `integer<TAB>Int.gcd_div_gcd_div_gcd<TAB>0<TAB>` with an EMPTY trailing footprint column, so a nonzero footprint or an absent declaration both give a count of 0 and fail. Uses `/usr/bin/grep` explicitly (not the interactive `ugrep` alias) and `[[:space:]]`-free literal tabs are avoided entirely by matching the exact byte string via ANSI-C quoting, per this repository's own grep-dialect gotcha. Run `--release`: in debug, building the full constructed environment stack-overflows, which is a resource limit and not a fact about this theorem.

Provenance

{
  "date": "2026-08-29",
  "established_by": "the `int-gcd-div-2` lane, completing the independent Bezout-based route the prior `int-gcd-div` lane worked out but left one step short (a symbolic `Nat.mul_one` application it had not verified against the kernel)",
  "source": "statement-only extraction of `Int.gcd_div_gcd_div_gcd` from Mathlib v4.30.0; no proof value was exposed",
  "prior_art": [
    {
      "who": "the Mathlib contributors",
      "what": "the theorem declaration `Int.gcd_div_gcd_div_gcd`",
      "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"
    }
  ]
}