HL0019

hensel_signed_blend_zero_iff

The recoded natural value is zero modulo an old or new modulus exactly when the original signed value is zero there.

Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.

The derivative-nonzero criterion supplies no inverse or power witness: both are constructed. Roots may be arbitrary natural representatives of signed integer polynomials. Singular-root classification and p-adic completion are separate milestones.

Exact theorem in conservative defined notation

∀ m. ∀ M. ∀ h. ∀ A. ∀ B. ∀ C. M = S h → Dvd(m,M) → C = A + h · B → (ModEq(m,C,0)ModEq(m,A,B)) ∧ (ModEq(m,A,B)ModEq(m,C,0))

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

hensel_signed_blend_mod_iffzero_add · checked external prerequisite
Original expanded first-order statement
forall m M h A B C. M = S h -> (exists q. M = m * q) -> C = A + h * B -> (((exists hgcrt_mod_left_hpl_mod hgcrt_mod_right_hpl_mod. C + m * hgcrt_mod_left_hpl_mod = 0 + m * hgcrt_mod_right_hpl_mod) -> (exists hgcrt_mod_left_hpl_mod hgcrt_mod_right_hpl_mod. A + m * hgcrt_mod_left_hpl_mod = B + m * hgcrt_mod_right_hpl_mod)) /\ ((exists hgcrt_mod_left_hpl_mod hgcrt_mod_right_hpl_mod. A + m * hgcrt_mod_left_hpl_mod = B + m * hgcrt_mod_right_hpl_mod) -> (exists hgcrt_mod_left_hpl_mod hgcrt_mod_right_hpl_mod. C + m * hgcrt_mod_left_hpl_mod = 0 + m * hgcrt_mod_right_hpl_mod)))

Complete tactic proof in conservative notation

All 26 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

26 script commands · 4 reading checkpoints · 2 local claims

This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (1)
01Fix variables and assumptionsL1–9

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro m
  2. L2
    intro M
  3. L3
    intro h
  4. L4
    intro A
  5. L5
    intro B
  6. L6
    intro C
  7. L7
    intro hM
  8. L8
    intro hdiv
  9. L9
    intro hC
02Establish hiffL10–19

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hensel signed blend mod iff.

  1. L10
    have hiff : (ModEq(m,C,0) → ModEq(m,A,0 + B)) ∧ (ModEq(m,A,0 + B) → ModEq(m,C,0))Definitions: ModEq(m,C,0)ModEq(m,A,0 + B)Original native command in the exact edition
  2. L11
    specialize hensel_signed_blend_mod_iff m
  3. L12
    specialize hensel_signed_blend_mod_iff M
  4. L13
    specialize hensel_signed_blend_mod_iff h
  5. L14
    specialize hensel_signed_blend_mod_iff A
  6. L15
    specialize hensel_signed_blend_mod_iff B
  7. L16
    specialize hensel_signed_blend_mod_iff C
  8. L17
    specialize hensel_signed_blend_mod_iff 0
  9. L18
    apply hensel_signed_blend_mod_iff
  10. L19
    exact hM
03Use earlier factsL20–21

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L20
    exact hdiv
  2. L21
    exact hC
04Establish hzeroL22–26

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply zero add.

  1. L22
    have hzero : 0 + B = B
  2. L23
    apply zero_add
  3. L24
    rewrite hzero at hiff
  4. L25
    rewrite hzero at hiff
  5. L26
    exact hiff

Library-wide reading audit

Original defined command ledger · 26 lines
  1. 0001intro m
  2. 0002intro M
  3. 0003intro h
  4. 0004intro A
  5. 0005intro B
  6. 0006intro C
  7. 0007intro hM
  8. 0008intro hdiv
  9. 0009intro hC
  10. 0010have hiff : (ModEq(m,C,0)ModEq(m,A,0 + B)) ∧ (ModEq(m,A,0 + B)ModEq(m,C,0))
  11. 0011specialize hensel_signed_blend_mod_iff m
  12. 0012specialize hensel_signed_blend_mod_iff M
  13. 0013specialize hensel_signed_blend_mod_iff h
  14. 0014specialize hensel_signed_blend_mod_iff A
  15. 0015specialize hensel_signed_blend_mod_iff B
  16. 0016specialize hensel_signed_blend_mod_iff C
  17. 0017specialize hensel_signed_blend_mod_iff 0
  18. 0018apply hensel_signed_blend_mod_iff
  19. 0019exact hM
  20. 0020exact hdiv
  21. 0021exact hC
  22. 0022have hzero : 0 + B = B
  23. 0023apply zero_add
  24. 0024rewrite hzero at hiff
  25. 0025rewrite hzero at hiff
  26. 0026exact hiff