Identifier
F:ml430-int-modeq-neg-d6ff57b6
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

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

Formal statement
∀ {n a b : ℤ}, a ≡ b [ZMOD -n] ↔ a ≡ b [ZMOD n]

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. [generated] kernel theorem Int. Multiplication distributes over [generated] kernel theorem Int. Congruence mod n is symmetric o Congruence mod n is transitive Multiplication distributes over Multiplying by negative one is Current fact Mathlib v4.30 source propositio
7 direct dependencies 1 direct dependents

Evidence

statement-Int.modEq_neg_modulus-both-halves

Kind
kernel-term
Status
checked

Supports: This row is a BICONDITIONAL and this kernel has no `Iff` at the `Int` layer, so it is closed only by both halves, and both are admitted: `Int.modEq_of_neg_modulus : ((x0 : Int) -> ((x1 : Int) -> ((x2 : Int) -> ((x3 : Int.ModEq (Int.neg x0) x1 x2) -> Int.ModEq x0 x1 x2))))` (mp) and `Int.modEq_neg_modulus : ((x0 : Int) -> ((x1 : Int) -> ((x2 : Int) -> ((x3 : Int.ModEq x0 x1 x2) -> Int.ModEq (Int.neg x0) x1 x2))))` (mpr). Both are pinned by the same test, so dropping either half fails it rather than quietly halving the claim. Neither carries an `Int.lt Int.zero` premise, matching the row's unrestricted quantification.

Checker command
test "$(scripts/cargo-serialized.sh test -p axeyum-lean-kernel --lib the_modeq_ledger_rows_are_stated_without_a_positivity_hypothesis 2>&1 | grep -Ec 'test result: ok\. 1 passed; 0 failed')" -ge 1
Evidence notes

The statement pin exists because the footprint check cannot carry this claim: a theorem stating something WEAKER -- carrying the `0 < n` hypothesis that every other congruence lemma in `modeq.rs` carries, or with `a`/`b` swapped -- has exactly the same empty footprint and passes the footprint sweep unchanged. Mutation-verified: changing `Int.one` to `Int.zero` in the pinned string kills exactly one test, this one, and nothing else (23 passed / 1 failed). Anchored on the exact `1 passed; 0 failed` count.

footprint-modEq_of_neg_modulus-modEq_neg_modulus

Kind
kernel-term
Status
checked

Supports: axiom_footprint: [] for `Int.modEq_of_neg_modulus`, `Int.modEq_neg_modulus` and for `Int.emod_neg` beneath them. The `integer` prelude's trusted surface is 0: no Axiom, no Opaque, no Quotient. Presence is checked in the same sweep -- axiom_footprint of a name that is interned but never DECLARED is vacuously empty, so a footprint check alone cannot distinguish an axiom-free theorem from an absent one.

Checker command
test "$(scripts/cargo-serialized.sh test -p axeyum-lean-kernel --lib int_prelude::int_prelude_tests::derived_laws_have_no_axiom_footprint -- --exact 2>&1 | grep -Ec 'test result: ok\. 1 passed; 0 failed')" -ge 1
Evidence notes

Counting Declaration::Axiom alone would not suffice in this kernel (Opaque has no proof body and Quotient admits Quot.sound); axiom_footprint covers all three. Anchored on the exact `1 passed; 0 failed` count -- verified that an unmatched filter prints `0 passed` and makes the identical command exit 1 rather than reporting a vacuous pass.

Provenance

{
  "date": "2026-08-23",
  "established_by": "lane agent-capability-assurance (2026-08-23) via a dispatched int_prelude lane: `Int.modEq_of_neg_modulus` and `Int.modEq_neg_modulus` in crates/axeyum-lean-kernel/src/int_prelude/modeq_family.rs, both corollaries of a new structural lemma `Int.emod_neg : forall a n, emod a (neg n) = emod a n` proved by case-splitting on n's Int.rec constructor shape. Kernel theorems, empty axiom_footprint.",
  "source": "statement-only extraction of `Int.modEq_neg` from Mathlib v4.30.0; no proof value was exposed",
  "prior_art": [
    {
      "who": "the Mathlib contributors",
      "what": "the theorem declaration `Int.modEq_neg`",
      "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"
    }
  ]
}