DL0041

matrix_rank_selected_point_functional

Actual selected-matrix cells are functional, by quotient/remainder uniqueness and three genuine beta-decoding uniqueness arguments.

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.

This branch proves the finite determinant/rank/span substrate. It does not claim Smith or Hermite normal form, lattice index equals determinant, determinant multiplicativity, lattice reduction, or geometry-of-numbers theorems.

Exact theorem in conservative defined notation

∀ b. ∀ c. ∀ w. ∀ rb. ∀ rc. ∀ cb. ∀ cc. ∀ q. ∀ i. ∀ a. ∀ A. (∃ x. ∃ y. ∃ z. ∃ n. i = q · x + y ∧ (Lt(y,q) ∧ (BetaAt(rb,rc,x,z) ∧ (BetaAt(cb,cc,y,n)BetaAt(b,c,z · w + n,a))))) → (∃ x. ∃ y. ∃ z. ∃ n. i = q · x + y ∧ (Lt(y,q) ∧ (BetaAt(rb,rc,x,z) ∧ (BetaAt(cb,cc,y,n)BetaAt(b,c,z · w + n,A))))) → a = A

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

Definition DAG

Actual proof prerequisites

division_remainder_unique · checked external prerequisitebeta_at_unique · checked external prerequisite
Original expanded first-order statement
forall b c w rb rc cb cc q i a A. (exists mdr_r_point_first mdr_s_point_first mdr_u_point_first mdr_v_point_first. ((i = (q) * mdr_r_point_first + mdr_s_point_first) /\ ((exists mdr_gap_point_firstcolumn. mdr_gap_point_firstcolumn + S (mdr_s_point_first) = (q)) /\ ((((exists ff_h_mdr_point_firstrow_index. ff_h_mdr_point_firstrow_index + S (mdr_u_point_first) = S ((S (mdr_r_point_first)) * rc)) /\ exists ff_q_mdr_point_firstrow_index. rb = ff_q_mdr_point_firstrow_index * S ((S (mdr_r_point_first)) * rc) + (mdr_u_point_first))) /\ ((((exists ff_h_mdr_point_firstcolumn_index. ff_h_mdr_point_firstcolumn_index + S (mdr_v_point_first) = S ((S (mdr_s_point_first)) * cc)) /\ exists ff_q_mdr_point_firstcolumn_index. cb = ff_q_mdr_point_firstcolumn_index * S ((S (mdr_s_point_first)) * cc) + (mdr_v_point_first))) /\ (((exists ff_h_mdr_point_firstsource. ff_h_mdr_point_firstsource + S (a) = S ((S ((mdr_u_point_first) * (w) + (mdr_v_point_first))) * c)) /\ exists ff_q_mdr_point_firstsource. b = ff_q_mdr_point_firstsource * S ((S ((mdr_u_point_first) * (w) + (mdr_v_point_first))) * c) + (a)))))))) -> (exists mdr_r_point_second mdr_s_point_second mdr_u_point_second mdr_v_point_second. ((i = (q) * mdr_r_point_second + mdr_s_point_second) /\ ((exists mdr_gap_point_secondcolumn. mdr_gap_point_secondcolumn + S (mdr_s_point_second) = (q)) /\ ((((exists ff_h_mdr_point_secondrow_index. ff_h_mdr_point_secondrow_index + S (mdr_u_point_second) = S ((S (mdr_r_point_second)) * rc)) /\ exists ff_q_mdr_point_secondrow_index. rb = ff_q_mdr_point_secondrow_index * S ((S (mdr_r_point_second)) * rc) + (mdr_u_point_second))) /\ ((((exists ff_h_mdr_point_secondcolumn_index. ff_h_mdr_point_secondcolumn_index + S (mdr_v_point_second) = S ((S (mdr_s_point_second)) * cc)) /\ exists ff_q_mdr_point_secondcolumn_index. cb = ff_q_mdr_point_secondcolumn_index * S ((S (mdr_s_point_second)) * cc) + (mdr_v_point_second))) /\ (((exists ff_h_mdr_point_secondsource. ff_h_mdr_point_secondsource + S (A) = S ((S ((mdr_u_point_second) * (w) + (mdr_v_point_second))) * c)) /\ exists ff_q_mdr_point_secondsource. b = ff_q_mdr_point_secondsource * S ((S ((mdr_u_point_second) * (w) + (mdr_v_point_second))) * c) + (A)))))))) -> a = A

Complete tactic proof in conservative notation

All 76 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

76 script commands · 13 reading checkpoints · 3 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.

01Fix variables and assumptionsL1–10

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

  1. L1
    intro b
  2. L2
    intro c
  3. L3
    intro w
  4. L4
    intro rb
  5. L5
    intro rc
  6. L6
    intro cb
  7. L7
    intro cc
  8. L8
    intro q
  9. L9
    intro i
  10. L10
    intro a
02Fix variables and assumptionsL11–13

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

  1. L11
    intro A
  2. L12
    intro hfirst
  3. L13
    intro hsecond
03Separate the logical casesL14–23

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L14
    cases hfirst
  2. L15
    cases hfirst_witness
  3. L16
    cases hfirst_witness_witness
  4. L17
    cases hfirst_witness_witness_witness
  5. L18
    cases hfirst_witness_witness_witness_witness
  6. L19
    cases hfirst_witness_witness_witness_witness_right
  7. L20
    cases hfirst_witness_witness_witness_witness_right_right
  8. L21
    cases hfirst_witness_witness_witness_witness_right_right_right
  9. L22
    cases hsecond
  10. L23
    cases hsecond_witness
04Separate the logical casesL24–29

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L24
    cases hsecond_witness_witness
  2. L25
    cases hsecond_witness_witness_witness
  3. L26
    cases hsecond_witness_witness_witness_witness
  4. L27
    cases hsecond_witness_witness_witness_witness_right
  5. L28
    cases hsecond_witness_witness_witness_witness_right_right
  6. L29
    cases hsecond_witness_witness_witness_witness_right_right_right
05Establish hcoordinatesL30–39

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder unique.

  1. L30
    have hcoordinates : x = x4 /\ x1 = x5
  2. L31
    specialize division_remainder_unique (q)
  3. L32
    specialize division_remainder_unique (i)
  4. L33
    specialize division_remainder_unique (x)
  5. L34
    specialize division_remainder_unique (x1)
  6. L35
    specialize division_remainder_unique (x4)
  7. L36
    specialize division_remainder_unique (x5)
  8. L37
    apply division_remainder_unique
  9. L38
    exact hfirst_witness_witness_witness_witness_left
  10. L39
    exact hfirst_witness_witness_witness_witness_right_left
06Use earlier factsL40–41

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

  1. L40
    exact hsecond_witness_witness_witness_witness_left
  2. L41
    exact hsecond_witness_witness_witness_witness_right_left
07Separate the logical casesL42–42

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L42
    cases hcoordinates
08Establish hrowL43–52

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.

  1. L43
    have hrow : x2 = x6
  2. L44
    specialize beta_at_unique (rb)
  3. L45
    specialize beta_at_unique (rc)
  4. L46
    specialize beta_at_unique (x)
  5. L47
    specialize beta_at_unique (x2)
  6. L48
    specialize beta_at_unique (x6)
  7. L49
    apply beta_at_unique
  8. L50
    exact hfirst_witness_witness_witness_witness_right_right_left
  9. L51
    rewrite hcoordinates_left
  10. L52
    rewrite hcoordinates_left
09Use earlier factsL53–53

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

  1. L53
    exact hsecond_witness_witness_witness_witness_right_right_left
10Establish hcolumnL54–63

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.

  1. L54
    have hcolumn : x3 = x7
  2. L55
    specialize beta_at_unique (cb)
  3. L56
    specialize beta_at_unique (cc)
  4. L57
    specialize beta_at_unique (x1)
  5. L58
    specialize beta_at_unique (x3)
  6. L59
    specialize beta_at_unique (x7)
  7. L60
    apply beta_at_unique
  8. L61
    exact hfirst_witness_witness_witness_witness_right_right_right_left
  9. L62
    rewrite hcoordinates_right
  10. L63
    rewrite hcoordinates_right
11Use earlier factsL64–71

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

  1. L64
    exact hsecond_witness_witness_witness_witness_right_right_right_left
  2. L65
    specialize beta_at_unique (b)
  3. L66
    specialize beta_at_unique (c)
  4. L67
    specialize beta_at_unique (x2 * w + x3)
  5. L68
    specialize beta_at_unique (a)
  6. L69
    specialize beta_at_unique (A)
  7. L70
    apply beta_at_unique
  8. L71
    exact hfirst_witness_witness_witness_witness_right_right_right_right
12Calculate and transport equalitiesL72–75

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L72
    rewrite hrow
  2. L73
    rewrite hrow
  3. L74
    rewrite hcolumn
  4. L75
    rewrite hcolumn
13Use earlier factsL76–76

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

  1. L76
    exact hsecond_witness_witness_witness_witness_right_right_right_right

Library-wide reading audit

Original defined command ledger · 76 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro w
  4. 0004intro rb
  5. 0005intro rc
  6. 0006intro cb
  7. 0007intro cc
  8. 0008intro q
  9. 0009intro i
  10. 0010intro a
  11. 0011intro A
  12. 0012intro hfirst
  13. 0013intro hsecond
  14. 0014cases hfirst
  15. 0015cases hfirst_witness
  16. 0016cases hfirst_witness_witness
  17. 0017cases hfirst_witness_witness_witness
  18. 0018cases hfirst_witness_witness_witness_witness
  19. 0019cases hfirst_witness_witness_witness_witness_right
  20. 0020cases hfirst_witness_witness_witness_witness_right_right
  21. 0021cases hfirst_witness_witness_witness_witness_right_right_right
  22. 0022cases hsecond
  23. 0023cases hsecond_witness
  24. 0024cases hsecond_witness_witness
  25. 0025cases hsecond_witness_witness_witness
  26. 0026cases hsecond_witness_witness_witness_witness
  27. 0027cases hsecond_witness_witness_witness_witness_right
  28. 0028cases hsecond_witness_witness_witness_witness_right_right
  29. 0029cases hsecond_witness_witness_witness_witness_right_right_right
  30. 0030have hcoordinates : x = x4 /\ x1 = x5
  31. 0031specialize division_remainder_unique (q)
  32. 0032specialize division_remainder_unique (i)
  33. 0033specialize division_remainder_unique (x)
  34. 0034specialize division_remainder_unique (x1)
  35. 0035specialize division_remainder_unique (x4)
  36. 0036specialize division_remainder_unique (x5)
  37. 0037apply division_remainder_unique
  38. 0038exact hfirst_witness_witness_witness_witness_left
  39. 0039exact hfirst_witness_witness_witness_witness_right_left
  40. 0040exact hsecond_witness_witness_witness_witness_left
  41. 0041exact hsecond_witness_witness_witness_witness_right_left
  42. 0042cases hcoordinates
  43. 0043have hrow : x2 = x6
  44. 0044specialize beta_at_unique (rb)
  45. 0045specialize beta_at_unique (rc)
  46. 0046specialize beta_at_unique (x)
  47. 0047specialize beta_at_unique (x2)
  48. 0048specialize beta_at_unique (x6)
  49. 0049apply beta_at_unique
  50. 0050exact hfirst_witness_witness_witness_witness_right_right_left
  51. 0051rewrite hcoordinates_left
  52. 0052rewrite hcoordinates_left
  53. 0053exact hsecond_witness_witness_witness_witness_right_right_left
  54. 0054have hcolumn : x3 = x7
  55. 0055specialize beta_at_unique (cb)
  56. 0056specialize beta_at_unique (cc)
  57. 0057specialize beta_at_unique (x1)
  58. 0058specialize beta_at_unique (x3)
  59. 0059specialize beta_at_unique (x7)
  60. 0060apply beta_at_unique
  61. 0061exact hfirst_witness_witness_witness_witness_right_right_right_left
  62. 0062rewrite hcoordinates_right
  63. 0063rewrite hcoordinates_right
  64. 0064exact hsecond_witness_witness_witness_witness_right_right_right_left
  65. 0065specialize beta_at_unique (b)
  66. 0066specialize beta_at_unique (c)
  67. 0067specialize beta_at_unique (x2 * w + x3)
  68. 0068specialize beta_at_unique (a)
  69. 0069specialize beta_at_unique (A)
  70. 0070apply beta_at_unique
  71. 0071exact hfirst_witness_witness_witness_witness_right_right_right_right
  72. 0072rewrite hrow
  73. 0073rewrite hrow
  74. 0074rewrite hcolumn
  75. 0075rewrite hcolumn
  76. 0076exact hsecond_witness_witness_witness_witness_right_right_right_right