HL0004

hensel_lift_digit_bound

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

A bounded old representative and bounded correction digit give the exact next-modulus bound.

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.

Exact expanded first-order arithmetic statement

forall m p a t. (exists hpl_gap_bound. hpl_gap_bound + S (a) = (m)) -> (exists hpl_gap_bound. hpl_gap_bound + S (t) = (p)) -> (exists hpl_gap_bound. hpl_gap_bound + S (a + m * t) = (p * m))

Constructive proof overview

Generated structural guide

A bounded old representative and bounded correction digit give the exact next-modulus bound.

The unchanged tactic script uses 5 declared prerequisites and contains 26 exact native proof lines.

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

Proof neighborhood

Direct dependencies

division_block_upper Stable theorem; checked-use authorized mul_le_mul_left Stable theorem; checked-use authorized lt_of_lt_of_le Stable theorem; checked-use authorized add_comm Stable theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

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.

01Fix variables and assumptionsL1–6

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

  1. L1
    intro m
  2. L2
    intro p
  3. L3
    intro a
  4. L4
    intro t
  5. L5
    intro ha
  6. L6
    intro ht
02Establish hsumL7–9

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

  1. L7
    have hsum : a + m * t = m * t + a
  2. L8
    apply add_comm
  3. L9
    rewrite hsum
03Establish hproductL10–19

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

  1. L10
    have hproduct : p * m = m * p
  2. L11
    apply mul_comm
  3. L12
    rewrite hproduct
  4. L13
    specialize lt_of_lt_of_le (m * t + a)
  5. L14
    specialize lt_of_lt_of_le (m * S t)
  6. L15
    specialize lt_of_lt_of_le (m * p)
  7. L16
    apply lt_of_lt_of_le
  8. L17
    specialize division_block_upper m
  9. L18
    specialize division_block_upper t
  10. L19
    specialize division_block_upper a
04Use earlier factsL20–26

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

  1. L20
    apply division_block_upper
  2. L21
    exact ha
  3. L22
    specialize mul_le_mul_left (S t)
  4. L23
    specialize mul_le_mul_left p
  5. L24
    specialize mul_le_mul_left m
  6. L25
    apply mul_le_mul_left
  7. L26
    exact ht

Library-wide reading audit

Original exact command ledger · 26 lines
  1. 0001intro m
  2. 0002intro p
  3. 0003intro a
  4. 0004intro t
  5. 0005intro ha
  6. 0006intro ht
  7. 0007have hsum : a + m * t = m * t + a
  8. 0008apply add_comm
  9. 0009rewrite hsum
  10. 0010have hproduct : p * m = m * p
  11. 0011apply mul_comm
  12. 0012rewrite hproduct
  13. 0013specialize lt_of_lt_of_le (m * t + a)
  14. 0014specialize lt_of_lt_of_le (m * S t)
  15. 0015specialize lt_of_lt_of_le (m * p)
  16. 0016apply lt_of_lt_of_le
  17. 0017specialize division_block_upper m
  18. 0018specialize division_block_upper t
  19. 0019specialize division_block_upper a
  20. 0020apply division_block_upper
  21. 0021exact ha
  22. 0022specialize mul_le_mul_left (S t)
  23. 0023specialize mul_le_mul_left p
  24. 0024specialize mul_le_mul_left m
  25. 0025apply mul_le_mul_left
  26. 0026exact ht