DL001C

matrix_recursive_minor_cell_transport

Every actual first-row minor cell transports across equality of all in-range parent-matrix entries.

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. ∀ B. ∀ C. ∀ q. ∀ j. ∀ r. ∀ s. ∀ a. (∀ x. ∀ y. Lt(x,S q · S q)BetaAt(b,c,x,y)BetaAt(B,C,x,y)) → Lt(r,q)Lt(s,q)MatrixMinorCell(b,c,S q,0,j,r,s,a)MatrixMinorCell(B,C,S q,0,j,r,s,a)

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

Definition DAG

Actual proof prerequisites

matrix_skip_index_bounded · checked external prerequisitematrix_recursive_flattened_index_bound
Original expanded first-order statement
forall b c B C q j r s a. (forall mdr_i_cell_parent mdr_a_cell_parent. (exists mdr_gap_cell_parentb. mdr_gap_cell_parentb + S (mdr_i_cell_parent) = ((S q) * (S q))) -> (((exists ff_h_mdr_cell_parento. ff_h_mdr_cell_parento + S (mdr_a_cell_parent) = S ((S (mdr_i_cell_parent)) * c)) /\ exists ff_q_mdr_cell_parento. b = ff_q_mdr_cell_parento * S ((S (mdr_i_cell_parent)) * c) + (mdr_a_cell_parent))) -> (((exists ff_h_mdr_cell_parentn. ff_h_mdr_cell_parentn + S (mdr_a_cell_parent) = S ((S (mdr_i_cell_parent)) * C)) /\ exists ff_q_mdr_cell_parentn. B = ff_q_mdr_cell_parentn * S ((S (mdr_i_cell_parent)) * C) + (mdr_a_cell_parent)))) -> (exists mdr_gap_cell_row. mdr_gap_cell_row + S (r) = (q)) -> (exists mdr_gap_cell_column. mdr_gap_cell_column + S (s) = (q)) -> (exists ff_row_mdm_cell_mdre_cell_source ff_column_mdm_cell_mdre_cell_source. (((((exists ff_gap_mdm_lt_mdre_cell_source_row_before. ff_gap_mdm_lt_mdre_cell_source_row_before + S (r) = (0)) /\ ff_row_mdm_cell_mdre_cell_source = r) \/ ((exists ff_gap_mdm_le_mdre_cell_source_row_after. ff_gap_mdm_le_mdre_cell_source_row_after + (0) = (r)) /\ ff_row_mdm_cell_mdre_cell_source = S r))) /\ (((((exists ff_gap_mdm_lt_mdre_cell_source_column_before. ff_gap_mdm_lt_mdre_cell_source_column_before + S (s) = (j)) /\ ff_column_mdm_cell_mdre_cell_source = s) \/ ((exists ff_gap_mdm_le_mdre_cell_source_column_after. ff_gap_mdm_le_mdre_cell_source_column_after + (j) = (s)) /\ ff_column_mdm_cell_mdre_cell_source = S s))) /\ (((exists ff_h_mdm_mdre_cell_source_source. ff_h_mdm_mdre_cell_source_source + S (a) = S ((S ((ff_row_mdm_cell_mdre_cell_source) * (S (q)) + (ff_column_mdm_cell_mdre_cell_source))) * c)) /\ exists ff_q_mdm_mdre_cell_source_source. b = ff_q_mdm_mdre_cell_source_source * S ((S ((ff_row_mdm_cell_mdre_cell_source) * (S (q)) + (ff_column_mdm_cell_mdre_cell_source))) * c) + (a)))))) -> (exists ff_row_mdm_cell_mdre_cell_result ff_column_mdm_cell_mdre_cell_result. (((((exists ff_gap_mdm_lt_mdre_cell_result_row_before. ff_gap_mdm_lt_mdre_cell_result_row_before + S (r) = (0)) /\ ff_row_mdm_cell_mdre_cell_result = r) \/ ((exists ff_gap_mdm_le_mdre_cell_result_row_after. ff_gap_mdm_le_mdre_cell_result_row_after + (0) = (r)) /\ ff_row_mdm_cell_mdre_cell_result = S r))) /\ (((((exists ff_gap_mdm_lt_mdre_cell_result_column_before. ff_gap_mdm_lt_mdre_cell_result_column_before + S (s) = (j)) /\ ff_column_mdm_cell_mdre_cell_result = s) \/ ((exists ff_gap_mdm_le_mdre_cell_result_column_after. ff_gap_mdm_le_mdre_cell_result_column_after + (j) = (s)) /\ ff_column_mdm_cell_mdre_cell_result = S s))) /\ (((exists ff_h_mdm_mdre_cell_result_source. ff_h_mdm_mdre_cell_result_source + S (a) = S ((S ((ff_row_mdm_cell_mdre_cell_result) * (S (q)) + (ff_column_mdm_cell_mdre_cell_result))) * C)) /\ exists ff_q_mdm_mdre_cell_result_source. B = ff_q_mdm_mdre_cell_result_source * S ((S ((ff_row_mdm_cell_mdre_cell_result) * (S (q)) + (ff_column_mdm_cell_mdre_cell_result))) * C) + (a))))))

Complete tactic proof in conservative notation

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

51 script commands · 11 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.

Named ingredients (1)
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 B
  4. L4
    intro C
  5. L5
    intro q
  6. L6
    intro j
  7. L7
    intro r
  8. L8
    intro s
  9. L9
    intro a
  10. L10
    intro hprefix
02Fix variables and assumptionsL11–13

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

  1. L11
    intro hr
  2. L12
    intro hs
  3. L13
    intro hcell
03Separate the logical casesL14–17

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

  1. L14
    cases hcell
  2. L15
    cases hcell_witness
  3. L16
    cases hcell_witness_witness
  4. L17
    cases hcell_witness_witness_right
04Establish hrowL18–25

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix skip index bounded.

  1. L18
  2. L19
    specialize matrix_skip_index_bounded (r)
  3. L20
    specialize matrix_skip_index_bounded (0)
  4. L21
    specialize matrix_skip_index_bounded (x)
  5. L22
    specialize matrix_skip_index_bounded (q)
  6. L23
    apply matrix_skip_index_bounded
  7. L24
    exact hcell_witness_witness_left
  8. L25
    exact hr
05Establish hcolumnL26–33

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix skip index bounded.

  1. L26
    have hcolumn : Lt(x1,S q)Definitions: Lt(x1,S q)Original native command in the exact edition
  2. L27
    specialize matrix_skip_index_bounded (s)
  3. L28
    specialize matrix_skip_index_bounded (j)
  4. L29
    specialize matrix_skip_index_bounded (x1)
  5. L30
    specialize matrix_skip_index_bounded (q)
  6. L31
    apply matrix_skip_index_bounded
  7. L32
    exact hcell_witness_witness_right_left
  8. L33
    exact hs
06Establish hindexL34–40

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix recursive flattened index bound.

  1. L34
    have hindex : Lt(x · S q + x1,S q · S q)Definitions: Lt(x · S q + x1,S q · S q)Original native command in the exact edition
  2. L35
    specialize matrix_recursive_flattened_index_bound (S q)
  3. L36
    specialize matrix_recursive_flattened_index_bound (x)
  4. L37
    specialize matrix_recursive_flattened_index_bound (x1)
  5. L38
    apply matrix_recursive_flattened_index_bound
  6. L39
    exact hrow
  7. L40
    exact hcolumn
07Construct an explicit witnessL41–42

Supply the displayed value, then prove that it has the required property.

  1. L41
    exists x
  2. L42
    exists x1
08Separate the logical casesL43–43

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

  1. L43
    split
09Use earlier factsL44–44

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

  1. L44
    exact hcell_witness_witness_left
10Separate the logical casesL45–45

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

  1. L45
    split
11Use earlier factsL46–51

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

  1. L46
    exact hcell_witness_witness_right_left
  2. L47
    specialize hprefix (x * (S q) + x1)
  3. L48
    specialize hprefix (a)
  4. L49
    apply hprefix
  5. L50
    exact hindex
  6. L51
    exact hcell_witness_witness_right_right

Library-wide reading audit

Original defined command ledger · 51 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro B
  4. 0004intro C
  5. 0005intro q
  6. 0006intro j
  7. 0007intro r
  8. 0008intro s
  9. 0009intro a
  10. 0010intro hprefix
  11. 0011intro hr
  12. 0012intro hs
  13. 0013intro hcell
  14. 0014cases hcell
  15. 0015cases hcell_witness
  16. 0016cases hcell_witness_witness
  17. 0017cases hcell_witness_witness_right
  18. 0018have hrow : Lt(x,S q)
  19. 0019specialize matrix_skip_index_bounded (r)
  20. 0020specialize matrix_skip_index_bounded (0)
  21. 0021specialize matrix_skip_index_bounded (x)
  22. 0022specialize matrix_skip_index_bounded (q)
  23. 0023apply matrix_skip_index_bounded
  24. 0024exact hcell_witness_witness_left
  25. 0025exact hr
  26. 0026have hcolumn : Lt(x1,S q)
  27. 0027specialize matrix_skip_index_bounded (s)
  28. 0028specialize matrix_skip_index_bounded (j)
  29. 0029specialize matrix_skip_index_bounded (x1)
  30. 0030specialize matrix_skip_index_bounded (q)
  31. 0031apply matrix_skip_index_bounded
  32. 0032exact hcell_witness_witness_right_left
  33. 0033exact hs
  34. 0034have hindex : Lt(x · S q + x1,S q · S q)
  35. 0035specialize matrix_recursive_flattened_index_bound (S q)
  36. 0036specialize matrix_recursive_flattened_index_bound (x)
  37. 0037specialize matrix_recursive_flattened_index_bound (x1)
  38. 0038apply matrix_recursive_flattened_index_bound
  39. 0039exact hrow
  40. 0040exact hcolumn
  41. 0041exists x
  42. 0042exists x1
  43. 0043split
  44. 0044exact hcell_witness_witness_left
  45. 0045split
  46. 0046exact hcell_witness_witness_right_left
  47. 0047specialize hprefix (x * (S q) + x1)
  48. 0048specialize hprefix (a)
  49. 0049apply hprefix
  50. 0050exact hindex
  51. 0051exact hcell_witness_witness_right_right