DL004D

matrix_rank_signed_selected_selector_transport

Both signed component matrices transport across complete finite selector recoding.

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

∀ pb. ∀ pc. ∀ nb. ∀ nc. ∀ w. ∀ rb. ∀ rc. ∀ cb. ∀ cc. ∀ q. ∀ Rb. ∀ Rc. ∀ Cb. ∀ Cc. ∀ ub. ∀ uc. ∀ vb. ∀ vc. (∀ x. ∀ y. Lt(x,q)BetaAt(rb,rc,x,y)BetaAt(Rb,Rc,x,y)) → (∀ x. ∀ y. Lt(x,q)BetaAt(cb,cc,x,y)BetaAt(Cb,Cc,x,y)) → SignedSelectedSubmatrix(pb,pc,nb,nc,w,rb,rc,cb,cc,q,ub,uc,vb,vc)SignedSelectedSubmatrix(pb,pc,nb,nc,w,Rb,Rc,Cb,Cc,q,ub,uc,vb,vc)

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall pb pc nb nc w rb rc cb cc q Rb Rc Cb Cc ub uc vb vc. (forall mdr_i_signed_rows mdr_a_signed_rows. (exists mdr_gap_signed_rowsb. mdr_gap_signed_rowsb + S (mdr_i_signed_rows) = (q)) -> (((exists ff_h_mdr_signed_rowso. ff_h_mdr_signed_rowso + S (mdr_a_signed_rows) = S ((S (mdr_i_signed_rows)) * rc)) /\ exists ff_q_mdr_signed_rowso. rb = ff_q_mdr_signed_rowso * S ((S (mdr_i_signed_rows)) * rc) + (mdr_a_signed_rows))) -> (((exists ff_h_mdr_signed_rowsn. ff_h_mdr_signed_rowsn + S (mdr_a_signed_rows) = S ((S (mdr_i_signed_rows)) * Rc)) /\ exists ff_q_mdr_signed_rowsn. Rb = ff_q_mdr_signed_rowsn * S ((S (mdr_i_signed_rows)) * Rc) + (mdr_a_signed_rows)))) -> (forall mdr_i_signed_columns mdr_a_signed_columns. (exists mdr_gap_signed_columnsb. mdr_gap_signed_columnsb + S (mdr_i_signed_columns) = (q)) -> (((exists ff_h_mdr_signed_columnso. ff_h_mdr_signed_columnso + S (mdr_a_signed_columns) = S ((S (mdr_i_signed_columns)) * cc)) /\ exists ff_q_mdr_signed_columnso. cb = ff_q_mdr_signed_columnso * S ((S (mdr_i_signed_columns)) * cc) + (mdr_a_signed_columns))) -> (((exists ff_h_mdr_signed_columnsn. ff_h_mdr_signed_columnsn + S (mdr_a_signed_columns) = S ((S (mdr_i_signed_columns)) * Cc)) /\ exists ff_q_mdr_signed_columnsn. Cb = ff_q_mdr_signed_columnsn * S ((S (mdr_i_signed_columns)) * Cc) + (mdr_a_signed_columns)))) -> (((forall mdr_i_signed_selected_sourcepositive. (exists mdr_gap_signed_selected_sourcepositivebound. mdr_gap_signed_selected_sourcepositivebound + S (mdr_i_signed_selected_sourcepositive) = ((q) * (q))) -> exists mdr_a_signed_selected_sourcepositive. (((exists mdr_r_signed_selected_sourcepositivepoint mdr_s_signed_selected_sourcepositivepoint mdr_u_signed_selected_sourcepositivepoint mdr_v_signed_selected_sourcepositivepoint. ((mdr_i_signed_selected_sourcepositive = (q) * mdr_r_signed_selected_sourcepositivepoint + mdr_s_signed_selected_sourcepositivepoint) /\ ((exists mdr_gap_signed_selected_sourcepositivepointcolumn. mdr_gap_signed_selected_sourcepositivepointcolumn + S (mdr_s_signed_selected_sourcepositivepoint) = (q)) /\ ((((exists ff_h_mdr_signed_selected_sourcepositivepointrow_index. ff_h_mdr_signed_selected_sourcepositivepointrow_index + S (mdr_u_signed_selected_sourcepositivepoint) = S ((S (mdr_r_signed_selected_sourcepositivepoint)) * rc)) /\ exists ff_q_mdr_signed_selected_sourcepositivepointrow_index. rb = ff_q_mdr_signed_selected_sourcepositivepointrow_index * S ((S (mdr_r_signed_selected_sourcepositivepoint)) * rc) + (mdr_u_signed_selected_sourcepositivepoint))) /\ ((((exists ff_h_mdr_signed_selected_sourcepositivepointcolumn_index. ff_h_mdr_signed_selected_sourcepositivepointcolumn_index + S (mdr_v_signed_selected_sourcepositivepoint) = S ((S (mdr_s_signed_selected_sourcepositivepoint)) * cc)) /\ exists ff_q_mdr_signed_selected_sourcepositivepointcolumn_index. cb = ff_q_mdr_signed_selected_sourcepositivepointcolumn_index * S ((S (mdr_s_signed_selected_sourcepositivepoint)) * cc) + (mdr_v_signed_selected_sourcepositivepoint))) /\ (((exists ff_h_mdr_signed_selected_sourcepositivepointsource. ff_h_mdr_signed_selected_sourcepositivepointsource + S (mdr_a_signed_selected_sourcepositive) = S ((S ((mdr_u_signed_selected_sourcepositivepoint) * (w) + (mdr_v_signed_selected_sourcepositivepoint))) * pc)) /\ exists ff_q_mdr_signed_selected_sourcepositivepointsource. pb = ff_q_mdr_signed_selected_sourcepositivepointsource * S ((S ((mdr_u_signed_selected_sourcepositivepoint) * (w) + (mdr_v_signed_selected_sourcepositivepoint))) * pc) + (mdr_a_signed_selected_sourcepositive)))))))) /\ (((exists ff_h_mdr_signed_selected_sourcepositiveoutput. ff_h_mdr_signed_selected_sourcepositiveoutput + S (mdr_a_signed_selected_sourcepositive) = S ((S (mdr_i_signed_selected_sourcepositive)) * uc)) /\ exists ff_q_mdr_signed_selected_sourcepositiveoutput. ub = ff_q_mdr_signed_selected_sourcepositiveoutput * S ((S (mdr_i_signed_selected_sourcepositive)) * uc) + (mdr_a_signed_selected_sourcepositive)))))) /\ (forall mdr_i_signed_selected_sourcenegative. (exists mdr_gap_signed_selected_sourcenegativebound. mdr_gap_signed_selected_sourcenegativebound + S (mdr_i_signed_selected_sourcenegative) = ((q) * (q))) -> exists mdr_a_signed_selected_sourcenegative. (((exists mdr_r_signed_selected_sourcenegativepoint mdr_s_signed_selected_sourcenegativepoint mdr_u_signed_selected_sourcenegativepoint mdr_v_signed_selected_sourcenegativepoint. ((mdr_i_signed_selected_sourcenegative = (q) * mdr_r_signed_selected_sourcenegativepoint + mdr_s_signed_selected_sourcenegativepoint) /\ ((exists mdr_gap_signed_selected_sourcenegativepointcolumn. mdr_gap_signed_selected_sourcenegativepointcolumn + S (mdr_s_signed_selected_sourcenegativepoint) = (q)) /\ ((((exists ff_h_mdr_signed_selected_sourcenegativepointrow_index. ff_h_mdr_signed_selected_sourcenegativepointrow_index + S (mdr_u_signed_selected_sourcenegativepoint) = S ((S (mdr_r_signed_selected_sourcenegativepoint)) * rc)) /\ exists ff_q_mdr_signed_selected_sourcenegativepointrow_index. rb = ff_q_mdr_signed_selected_sourcenegativepointrow_index * S ((S (mdr_r_signed_selected_sourcenegativepoint)) * rc) + (mdr_u_signed_selected_sourcenegativepoint))) /\ ((((exists ff_h_mdr_signed_selected_sourcenegativepointcolumn_index. ff_h_mdr_signed_selected_sourcenegativepointcolumn_index + S (mdr_v_signed_selected_sourcenegativepoint) = S ((S (mdr_s_signed_selected_sourcenegativepoint)) * cc)) /\ exists ff_q_mdr_signed_selected_sourcenegativepointcolumn_index. cb = ff_q_mdr_signed_selected_sourcenegativepointcolumn_index * S ((S (mdr_s_signed_selected_sourcenegativepoint)) * cc) + (mdr_v_signed_selected_sourcenegativepoint))) /\ (((exists ff_h_mdr_signed_selected_sourcenegativepointsource. ff_h_mdr_signed_selected_sourcenegativepointsource + S (mdr_a_signed_selected_sourcenegative) = S ((S ((mdr_u_signed_selected_sourcenegativepoint) * (w) + (mdr_v_signed_selected_sourcenegativepoint))) * nc)) /\ exists ff_q_mdr_signed_selected_sourcenegativepointsource. nb = ff_q_mdr_signed_selected_sourcenegativepointsource * S ((S ((mdr_u_signed_selected_sourcenegativepoint) * (w) + (mdr_v_signed_selected_sourcenegativepoint))) * nc) + (mdr_a_signed_selected_sourcenegative)))))))) /\ (((exists ff_h_mdr_signed_selected_sourcenegativeoutput. ff_h_mdr_signed_selected_sourcenegativeoutput + S (mdr_a_signed_selected_sourcenegative) = S ((S (mdr_i_signed_selected_sourcenegative)) * vc)) /\ exists ff_q_mdr_signed_selected_sourcenegativeoutput. vb = ff_q_mdr_signed_selected_sourcenegativeoutput * S ((S (mdr_i_signed_selected_sourcenegative)) * vc) + (mdr_a_signed_selected_sourcenegative)))))))) -> (((forall mdr_i_signed_selected_targetpositive. (exists mdr_gap_signed_selected_targetpositivebound. mdr_gap_signed_selected_targetpositivebound + S (mdr_i_signed_selected_targetpositive) = ((q) * (q))) -> exists mdr_a_signed_selected_targetpositive. (((exists mdr_r_signed_selected_targetpositivepoint mdr_s_signed_selected_targetpositivepoint mdr_u_signed_selected_targetpositivepoint mdr_v_signed_selected_targetpositivepoint. ((mdr_i_signed_selected_targetpositive = (q) * mdr_r_signed_selected_targetpositivepoint + mdr_s_signed_selected_targetpositivepoint) /\ ((exists mdr_gap_signed_selected_targetpositivepointcolumn. mdr_gap_signed_selected_targetpositivepointcolumn + S (mdr_s_signed_selected_targetpositivepoint) = (q)) /\ ((((exists ff_h_mdr_signed_selected_targetpositivepointrow_index. ff_h_mdr_signed_selected_targetpositivepointrow_index + S (mdr_u_signed_selected_targetpositivepoint) = S ((S (mdr_r_signed_selected_targetpositivepoint)) * Rc)) /\ exists ff_q_mdr_signed_selected_targetpositivepointrow_index. Rb = ff_q_mdr_signed_selected_targetpositivepointrow_index * S ((S (mdr_r_signed_selected_targetpositivepoint)) * Rc) + (mdr_u_signed_selected_targetpositivepoint))) /\ ((((exists ff_h_mdr_signed_selected_targetpositivepointcolumn_index. ff_h_mdr_signed_selected_targetpositivepointcolumn_index + S (mdr_v_signed_selected_targetpositivepoint) = S ((S (mdr_s_signed_selected_targetpositivepoint)) * Cc)) /\ exists ff_q_mdr_signed_selected_targetpositivepointcolumn_index. Cb = ff_q_mdr_signed_selected_targetpositivepointcolumn_index * S ((S (mdr_s_signed_selected_targetpositivepoint)) * Cc) + (mdr_v_signed_selected_targetpositivepoint))) /\ (((exists ff_h_mdr_signed_selected_targetpositivepointsource. ff_h_mdr_signed_selected_targetpositivepointsource + S (mdr_a_signed_selected_targetpositive) = S ((S ((mdr_u_signed_selected_targetpositivepoint) * (w) + (mdr_v_signed_selected_targetpositivepoint))) * pc)) /\ exists ff_q_mdr_signed_selected_targetpositivepointsource. pb = ff_q_mdr_signed_selected_targetpositivepointsource * S ((S ((mdr_u_signed_selected_targetpositivepoint) * (w) + (mdr_v_signed_selected_targetpositivepoint))) * pc) + (mdr_a_signed_selected_targetpositive)))))))) /\ (((exists ff_h_mdr_signed_selected_targetpositiveoutput. ff_h_mdr_signed_selected_targetpositiveoutput + S (mdr_a_signed_selected_targetpositive) = S ((S (mdr_i_signed_selected_targetpositive)) * uc)) /\ exists ff_q_mdr_signed_selected_targetpositiveoutput. ub = ff_q_mdr_signed_selected_targetpositiveoutput * S ((S (mdr_i_signed_selected_targetpositive)) * uc) + (mdr_a_signed_selected_targetpositive)))))) /\ (forall mdr_i_signed_selected_targetnegative. (exists mdr_gap_signed_selected_targetnegativebound. mdr_gap_signed_selected_targetnegativebound + S (mdr_i_signed_selected_targetnegative) = ((q) * (q))) -> exists mdr_a_signed_selected_targetnegative. (((exists mdr_r_signed_selected_targetnegativepoint mdr_s_signed_selected_targetnegativepoint mdr_u_signed_selected_targetnegativepoint mdr_v_signed_selected_targetnegativepoint. ((mdr_i_signed_selected_targetnegative = (q) * mdr_r_signed_selected_targetnegativepoint + mdr_s_signed_selected_targetnegativepoint) /\ ((exists mdr_gap_signed_selected_targetnegativepointcolumn. mdr_gap_signed_selected_targetnegativepointcolumn + S (mdr_s_signed_selected_targetnegativepoint) = (q)) /\ ((((exists ff_h_mdr_signed_selected_targetnegativepointrow_index. ff_h_mdr_signed_selected_targetnegativepointrow_index + S (mdr_u_signed_selected_targetnegativepoint) = S ((S (mdr_r_signed_selected_targetnegativepoint)) * Rc)) /\ exists ff_q_mdr_signed_selected_targetnegativepointrow_index. Rb = ff_q_mdr_signed_selected_targetnegativepointrow_index * S ((S (mdr_r_signed_selected_targetnegativepoint)) * Rc) + (mdr_u_signed_selected_targetnegativepoint))) /\ ((((exists ff_h_mdr_signed_selected_targetnegativepointcolumn_index. ff_h_mdr_signed_selected_targetnegativepointcolumn_index + S (mdr_v_signed_selected_targetnegativepoint) = S ((S (mdr_s_signed_selected_targetnegativepoint)) * Cc)) /\ exists ff_q_mdr_signed_selected_targetnegativepointcolumn_index. Cb = ff_q_mdr_signed_selected_targetnegativepointcolumn_index * S ((S (mdr_s_signed_selected_targetnegativepoint)) * Cc) + (mdr_v_signed_selected_targetnegativepoint))) /\ (((exists ff_h_mdr_signed_selected_targetnegativepointsource. ff_h_mdr_signed_selected_targetnegativepointsource + S (mdr_a_signed_selected_targetnegative) = S ((S ((mdr_u_signed_selected_targetnegativepoint) * (w) + (mdr_v_signed_selected_targetnegativepoint))) * nc)) /\ exists ff_q_mdr_signed_selected_targetnegativepointsource. nb = ff_q_mdr_signed_selected_targetnegativepointsource * S ((S ((mdr_u_signed_selected_targetnegativepoint) * (w) + (mdr_v_signed_selected_targetnegativepoint))) * nc) + (mdr_a_signed_selected_targetnegative)))))))) /\ (((exists ff_h_mdr_signed_selected_targetnegativeoutput. ff_h_mdr_signed_selected_targetnegativeoutput + S (mdr_a_signed_selected_targetnegative) = S ((S (mdr_i_signed_selected_targetnegative)) * vc)) /\ exists ff_q_mdr_signed_selected_targetnegativeoutput. vb = ff_q_mdr_signed_selected_targetnegativeoutput * S ((S (mdr_i_signed_selected_targetnegative)) * vc) + (mdr_a_signed_selected_targetnegative))))))))

Complete tactic proof in conservative notation

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

59 script commands · 8 reading checkpoints · 0 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 pb
  2. L2
    intro pc
  3. L3
    intro nb
  4. L4
    intro nc
  5. L5
    intro w
  6. L6
    intro rb
  7. L7
    intro rc
  8. L8
    intro cb
  9. L9
    intro cc
  10. L10
    intro q
02Fix variables and assumptionsL11–20

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

  1. L11
    intro Rb
  2. L12
    intro Rc
  3. L13
    intro Cb
  4. L14
    intro Cc
  5. L15
    intro ub
  6. L16
    intro uc
  7. L17
    intro vb
  8. L18
    intro vc
  9. L19
    intro hrows
  10. L20
    intro hcolumns
03Fix variables and assumptionsL21–21

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

  1. L21
    intro hselected
04Separate the logical casesL22–23

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

  1. L22
    cases hselected
  2. L23
    split
05Use earlier factsL24–33

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

  1. L24
    specialize matrix_rank_selected_prefix_selector_transport (pb)
  2. L25
    specialize matrix_rank_selected_prefix_selector_transport (pc)
  3. L26
    specialize matrix_rank_selected_prefix_selector_transport (w)
  4. L27
    specialize matrix_rank_selected_prefix_selector_transport (rb)
  5. L28
    specialize matrix_rank_selected_prefix_selector_transport (rc)
  6. L29
    specialize matrix_rank_selected_prefix_selector_transport (cb)
  7. L30
    specialize matrix_rank_selected_prefix_selector_transport (cc)
  8. L31
    specialize matrix_rank_selected_prefix_selector_transport (q)
  9. L32
    specialize matrix_rank_selected_prefix_selector_transport (Rb)
  10. L33
    specialize matrix_rank_selected_prefix_selector_transport (Rc)
06Use earlier factsL34–43

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

  1. L34
    specialize matrix_rank_selected_prefix_selector_transport (Cb)
  2. L35
    specialize matrix_rank_selected_prefix_selector_transport (Cc)
  3. L36
    specialize matrix_rank_selected_prefix_selector_transport (ub)
  4. L37
    specialize matrix_rank_selected_prefix_selector_transport (uc)
  5. L38
    apply matrix_rank_selected_prefix_selector_transport
  6. L39
    exact hrows
  7. L40
    exact hcolumns
  8. L41
    exact hselected_left
  9. L42
    specialize matrix_rank_selected_prefix_selector_transport (nb)
  10. L43
    specialize matrix_rank_selected_prefix_selector_transport (nc)
07Use earlier factsL44–53

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

  1. L44
    specialize matrix_rank_selected_prefix_selector_transport (w)
  2. L45
    specialize matrix_rank_selected_prefix_selector_transport (rb)
  3. L46
    specialize matrix_rank_selected_prefix_selector_transport (rc)
  4. L47
    specialize matrix_rank_selected_prefix_selector_transport (cb)
  5. L48
    specialize matrix_rank_selected_prefix_selector_transport (cc)
  6. L49
    specialize matrix_rank_selected_prefix_selector_transport (q)
  7. L50
    specialize matrix_rank_selected_prefix_selector_transport (Rb)
  8. L51
    specialize matrix_rank_selected_prefix_selector_transport (Rc)
  9. L52
    specialize matrix_rank_selected_prefix_selector_transport (Cb)
  10. L53
    specialize matrix_rank_selected_prefix_selector_transport (Cc)
08Use earlier factsL54–59

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

  1. L54
    specialize matrix_rank_selected_prefix_selector_transport (vb)
  2. L55
    specialize matrix_rank_selected_prefix_selector_transport (vc)
  3. L56
    apply matrix_rank_selected_prefix_selector_transport
  4. L57
    exact hrows
  5. L58
    exact hcolumns
  6. L59
    exact hselected_right

Library-wide reading audit

Original defined command ledger · 59 lines
  1. 0001intro pb
  2. 0002intro pc
  3. 0003intro nb
  4. 0004intro nc
  5. 0005intro w
  6. 0006intro rb
  7. 0007intro rc
  8. 0008intro cb
  9. 0009intro cc
  10. 0010intro q
  11. 0011intro Rb
  12. 0012intro Rc
  13. 0013intro Cb
  14. 0014intro Cc
  15. 0015intro ub
  16. 0016intro uc
  17. 0017intro vb
  18. 0018intro vc
  19. 0019intro hrows
  20. 0020intro hcolumns
  21. 0021intro hselected
  22. 0022cases hselected
  23. 0023split
  24. 0024specialize matrix_rank_selected_prefix_selector_transport (pb)
  25. 0025specialize matrix_rank_selected_prefix_selector_transport (pc)
  26. 0026specialize matrix_rank_selected_prefix_selector_transport (w)
  27. 0027specialize matrix_rank_selected_prefix_selector_transport (rb)
  28. 0028specialize matrix_rank_selected_prefix_selector_transport (rc)
  29. 0029specialize matrix_rank_selected_prefix_selector_transport (cb)
  30. 0030specialize matrix_rank_selected_prefix_selector_transport (cc)
  31. 0031specialize matrix_rank_selected_prefix_selector_transport (q)
  32. 0032specialize matrix_rank_selected_prefix_selector_transport (Rb)
  33. 0033specialize matrix_rank_selected_prefix_selector_transport (Rc)
  34. 0034specialize matrix_rank_selected_prefix_selector_transport (Cb)
  35. 0035specialize matrix_rank_selected_prefix_selector_transport (Cc)
  36. 0036specialize matrix_rank_selected_prefix_selector_transport (ub)
  37. 0037specialize matrix_rank_selected_prefix_selector_transport (uc)
  38. 0038apply matrix_rank_selected_prefix_selector_transport
  39. 0039exact hrows
  40. 0040exact hcolumns
  41. 0041exact hselected_left
  42. 0042specialize matrix_rank_selected_prefix_selector_transport (nb)
  43. 0043specialize matrix_rank_selected_prefix_selector_transport (nc)
  44. 0044specialize matrix_rank_selected_prefix_selector_transport (w)
  45. 0045specialize matrix_rank_selected_prefix_selector_transport (rb)
  46. 0046specialize matrix_rank_selected_prefix_selector_transport (rc)
  47. 0047specialize matrix_rank_selected_prefix_selector_transport (cb)
  48. 0048specialize matrix_rank_selected_prefix_selector_transport (cc)
  49. 0049specialize matrix_rank_selected_prefix_selector_transport (q)
  50. 0050specialize matrix_rank_selected_prefix_selector_transport (Rb)
  51. 0051specialize matrix_rank_selected_prefix_selector_transport (Rc)
  52. 0052specialize matrix_rank_selected_prefix_selector_transport (Cb)
  53. 0053specialize matrix_rank_selected_prefix_selector_transport (Cc)
  54. 0054specialize matrix_rank_selected_prefix_selector_transport (vb)
  55. 0055specialize matrix_rank_selected_prefix_selector_transport (vc)
  56. 0056apply matrix_rank_selected_prefix_selector_transport
  57. 0057exact hrows
  58. 0058exact hcolumns
  59. 0059exact hselected_right