SS001A

divisor_signed_table_reindex_from_components

Public research checkpoint, not admitted to Alpha or Stable. Alpha v30 remains 3222 checked-use theorems; Stable remains 432. The on-demand Alpha Lean service does not yet expose these checkpoint theorems; their independently checked literal bundles and unchanged sources are available below.

Real component composition implements the signed lookup pullback exactly, at every bounded target index.

Public research checkpoint: original HA and independently compiled Lean verified; not Alpha-enrolled, no Alpha checked-use authority; not Stable

These are genuine signed-table and finite-sum foundations, not full divisor-sum cancellation or Möbius inversion. G007 remains open. The historical MatrixMinorFourCode definition is reused solely as generic nested pairing of four beta parameters; no matrix-specific hypothesis is imported. Equality is equality of represented signed values, not equality of arbitrary component codes.

Exact theorem in conservative defined notation

∀ F. ∀ G. ∀ pb. ∀ pc. ∀ nb. ∀ nc. ∀ qb. ∀ qc. ∀ mb. ∀ mc. ∀ r. ∀ s. ∀ l. MatrixMinorFourCode(F,pb,pc,nb,nc)MatrixMinorFourCode(G,qb,qc,mb,mc) → (∀ x. ∀ y. ∀ z. Lt(x,l)BetaAt(r,s,x,y)BetaAt(pb,pc,y,z)BetaAt(qb,qc,x,z)) ∧ (∀ x. ∀ y. ∀ z. Lt(x,l)BetaAt(r,s,x,y)BetaAt(nb,nc,y,z)BetaAt(mb,mc,x,z)) → ArithReindex(F,G,r,s,l)

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall F G pb pc nb nc qb qc mb mc r s l. ((F) = (((((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))) * S ((((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))) + ((((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))))) -> ((G) = (((((qb) + (qc)) * S ((qb) + (qc)) + ((qc) + (qc))) + (((mb) + (mc)) * S ((mb) + (mc)) + ((mc) + (mc)))) * S ((((qb) + (qc)) * S ((qb) + (qc)) + ((qc) + (qc))) + (((mb) + (mc)) * S ((mb) + (mc)) + ((mc) + (mc)))) + ((((mb) + (mc)) * S ((mb) + (mc)) + ((mc) + (mc))) + (((mb) + (mc)) * S ((mb) + (mc)) + ((mc) + (mc)))))) -> (((forall fms_i_component_datapositive fms_j_component_datapositive fms_v_component_datapositive. (exists fms_gap_component_datapositive. fms_gap_component_datapositive + S (fms_i_component_datapositive) = (l)) -> (((exists fs_h_fms_component_datapositive_index. fs_h_fms_component_datapositive_index + S (fms_j_component_datapositive) = S ((S (fms_i_component_datapositive)) * s)) /\ exists fs_q_fms_component_datapositive_index. r = fs_q_fms_component_datapositive_index * S ((S (fms_i_component_datapositive)) * s) + (fms_j_component_datapositive))) -> (((exists fs_h_fms_component_datapositive_source. fs_h_fms_component_datapositive_source + S (fms_v_component_datapositive) = S ((S (fms_j_component_datapositive)) * pc)) /\ exists fs_q_fms_component_datapositive_source. pb = fs_q_fms_component_datapositive_source * S ((S (fms_j_component_datapositive)) * pc) + (fms_v_component_datapositive))) -> (((exists fs_h_fms_component_datapositive_target. fs_h_fms_component_datapositive_target + S (fms_v_component_datapositive) = S ((S (fms_i_component_datapositive)) * qc)) /\ exists fs_q_fms_component_datapositive_target. qb = fs_q_fms_component_datapositive_target * S ((S (fms_i_component_datapositive)) * qc) + (fms_v_component_datapositive)))) /\ (forall fms_i_component_datanegative fms_j_component_datanegative fms_v_component_datanegative. (exists fms_gap_component_datanegative. fms_gap_component_datanegative + S (fms_i_component_datanegative) = (l)) -> (((exists fs_h_fms_component_datanegative_index. fs_h_fms_component_datanegative_index + S (fms_j_component_datanegative) = S ((S (fms_i_component_datanegative)) * s)) /\ exists fs_q_fms_component_datanegative_index. r = fs_q_fms_component_datanegative_index * S ((S (fms_i_component_datanegative)) * s) + (fms_j_component_datanegative))) -> (((exists fs_h_fms_component_datanegative_source. fs_h_fms_component_datanegative_source + S (fms_v_component_datanegative) = S ((S (fms_j_component_datanegative)) * nc)) /\ exists fs_q_fms_component_datanegative_source. nb = fs_q_fms_component_datanegative_source * S ((S (fms_j_component_datanegative)) * nc) + (fms_v_component_datanegative))) -> (((exists fs_h_fms_component_datanegative_target. fs_h_fms_component_datanegative_target + S (fms_v_component_datanegative) = S ((S (fms_i_component_datanegative)) * mc)) /\ exists fs_q_fms_component_datanegative_target. mb = fs_q_fms_component_datanegative_target * S ((S (fms_i_component_datanegative)) * mc) + (fms_v_component_datanegative)))))) -> (forall dsr_index_component_result dsr_image_component_result dsr_value_component_result. (exists pvs_gap_component_resultbound. pvs_gap_component_resultbound + S (dsr_index_component_result) = (l)) -> (((exists ff_h_pvs_component_resultmap. ff_h_pvs_component_resultmap + S (dsr_image_component_result) = S ((S (dsr_index_component_result)) * s)) /\ exists ff_q_pvs_component_resultmap. r = ff_q_pvs_component_resultmap * S ((S (dsr_index_component_result)) * s) + (dsr_image_component_result))) -> (exists dst_positive_code_component_resultsource dst_positive_scale_component_resultsource dst_negative_code_component_resultsource dst_negative_scale_component_resultsource dst_positive_component_resultsource dst_negative_component_resultsource. (((F) = (((((dst_positive_code_component_resultsource) + (dst_positive_scale_component_resultsource)) * S ((dst_positive_code_component_resultsource) + (dst_positive_scale_component_resultsource)) + ((dst_positive_scale_component_resultsource) + (dst_positive_scale_component_resultsource))) + (((dst_negative_code_component_resultsource) + (dst_negative_scale_component_resultsource)) * S ((dst_negative_code_component_resultsource) + (dst_negative_scale_component_resultsource)) + ((dst_negative_scale_component_resultsource) + (dst_negative_scale_component_resultsource)))) * S ((((dst_positive_code_component_resultsource) + (dst_positive_scale_component_resultsource)) * S ((dst_positive_code_component_resultsource) + (dst_positive_scale_component_resultsource)) + ((dst_positive_scale_component_resultsource) + (dst_positive_scale_component_resultsource))) + (((dst_negative_code_component_resultsource) + (dst_negative_scale_component_resultsource)) * S ((dst_negative_code_component_resultsource) + (dst_negative_scale_component_resultsource)) + ((dst_negative_scale_component_resultsource) + (dst_negative_scale_component_resultsource)))) + ((((dst_negative_code_component_resultsource) + (dst_negative_scale_component_resultsource)) * S ((dst_negative_code_component_resultsource) + (dst_negative_scale_component_resultsource)) + ((dst_negative_scale_component_resultsource) + (dst_negative_scale_component_resultsource))) + (((dst_negative_code_component_resultsource) + (dst_negative_scale_component_resultsource)) * S ((dst_negative_code_component_resultsource) + (dst_negative_scale_component_resultsource)) + ((dst_negative_scale_component_resultsource) + (dst_negative_scale_component_resultsource)))))) /\ (((((exists ff_h_pvs_component_resultsourcepositive. ff_h_pvs_component_resultsourcepositive + S (dst_positive_component_resultsource) = S ((S (dsr_image_component_result)) * dst_positive_scale_component_resultsource)) /\ exists ff_q_pvs_component_resultsourcepositive. dst_positive_code_component_resultsource = ff_q_pvs_component_resultsourcepositive * S ((S (dsr_image_component_result)) * dst_positive_scale_component_resultsource) + (dst_positive_component_resultsource))) /\ (((((exists ff_h_pvs_component_resultsourcenegative. ff_h_pvs_component_resultsourcenegative + S (dst_negative_component_resultsource) = S ((S (dsr_image_component_result)) * dst_negative_scale_component_resultsource)) /\ exists ff_q_pvs_component_resultsourcenegative. dst_negative_code_component_resultsource = ff_q_pvs_component_resultsourcenegative * S ((S (dsr_image_component_result)) * dst_negative_scale_component_resultsource) + (dst_negative_component_resultsource))) /\ (exists ge_balance_positive_component_resultsourcevalue ge_balance_negative_component_resultsourcevalue. (((((dsr_value_component_result) = 2 * (ge_balance_positive_component_resultsourcevalue) /\ (ge_balance_negative_component_resultsourcevalue) = 0) \/ exists ge_signed_half_component_resultsourcevaluedecode. (((dsr_value_component_result) = 2 * ge_signed_half_component_resultsourcevaluedecode + 1 /\ (ge_balance_positive_component_resultsourcevalue) = 0) /\ (ge_balance_negative_component_resultsourcevalue) = S ge_signed_half_component_resultsourcevaluedecode))) /\ ((dst_positive_component_resultsource) + ge_balance_negative_component_resultsourcevalue = (dst_negative_component_resultsource) + ge_balance_positive_component_resultsourcevalue))))))))) -> (exists dst_positive_code_component_resulttarget dst_positive_scale_component_resulttarget dst_negative_code_component_resulttarget dst_negative_scale_component_resulttarget dst_positive_component_resulttarget dst_negative_component_resulttarget. (((G) = (((((dst_positive_code_component_resulttarget) + (dst_positive_scale_component_resulttarget)) * S ((dst_positive_code_component_resulttarget) + (dst_positive_scale_component_resulttarget)) + ((dst_positive_scale_component_resulttarget) + (dst_positive_scale_component_resulttarget))) + (((dst_negative_code_component_resulttarget) + (dst_negative_scale_component_resulttarget)) * S ((dst_negative_code_component_resulttarget) + (dst_negative_scale_component_resulttarget)) + ((dst_negative_scale_component_resulttarget) + (dst_negative_scale_component_resulttarget)))) * S ((((dst_positive_code_component_resulttarget) + (dst_positive_scale_component_resulttarget)) * S ((dst_positive_code_component_resulttarget) + (dst_positive_scale_component_resulttarget)) + ((dst_positive_scale_component_resulttarget) + (dst_positive_scale_component_resulttarget))) + (((dst_negative_code_component_resulttarget) + (dst_negative_scale_component_resulttarget)) * S ((dst_negative_code_component_resulttarget) + (dst_negative_scale_component_resulttarget)) + ((dst_negative_scale_component_resulttarget) + (dst_negative_scale_component_resulttarget)))) + ((((dst_negative_code_component_resulttarget) + (dst_negative_scale_component_resulttarget)) * S ((dst_negative_code_component_resulttarget) + (dst_negative_scale_component_resulttarget)) + ((dst_negative_scale_component_resulttarget) + (dst_negative_scale_component_resulttarget))) + (((dst_negative_code_component_resulttarget) + (dst_negative_scale_component_resulttarget)) * S ((dst_negative_code_component_resulttarget) + (dst_negative_scale_component_resulttarget)) + ((dst_negative_scale_component_resulttarget) + (dst_negative_scale_component_resulttarget)))))) /\ (((((exists ff_h_pvs_component_resulttargetpositive. ff_h_pvs_component_resulttargetpositive + S (dst_positive_component_resulttarget) = S ((S (dsr_index_component_result)) * dst_positive_scale_component_resulttarget)) /\ exists ff_q_pvs_component_resulttargetpositive. dst_positive_code_component_resulttarget = ff_q_pvs_component_resulttargetpositive * S ((S (dsr_index_component_result)) * dst_positive_scale_component_resulttarget) + (dst_positive_component_resulttarget))) /\ (((((exists ff_h_pvs_component_resulttargetnegative. ff_h_pvs_component_resulttargetnegative + S (dst_negative_component_resulttarget) = S ((S (dsr_index_component_result)) * dst_negative_scale_component_resulttarget)) /\ exists ff_q_pvs_component_resulttargetnegative. dst_negative_code_component_resulttarget = ff_q_pvs_component_resulttargetnegative * S ((S (dsr_index_component_result)) * dst_negative_scale_component_resulttarget) + (dst_negative_component_resulttarget))) /\ (exists ge_balance_positive_component_resulttargetvalue ge_balance_negative_component_resulttargetvalue. (((((dsr_value_component_result) = 2 * (ge_balance_positive_component_resulttargetvalue) /\ (ge_balance_negative_component_resulttargetvalue) = 0) \/ exists ge_signed_half_component_resulttargetvaluedecode. (((dsr_value_component_result) = 2 * ge_signed_half_component_resulttargetvaluedecode + 1 /\ (ge_balance_positive_component_resulttargetvalue) = 0) /\ (ge_balance_negative_component_resulttargetvalue) = S ge_signed_half_component_resulttargetvaluedecode))) /\ ((dst_positive_component_resulttarget) + ge_balance_negative_component_resulttargetvalue = (dst_negative_component_resulttarget) + ge_balance_positive_component_resulttargetvalue))))))))))

Complete tactic proof in conservative notation

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

64 script commands · 10 reading checkpoints · 1 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 (2)
01Fix variables and assumptionsL1–10

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

  1. L1
    intro F
  2. L2
    intro G
  3. L3
    intro pb
  4. L4
    intro pc
  5. L5
    intro nb
  6. L6
    intro nc
  7. L7
    intro qb
  8. L8
    intro qc
  9. L9
    intro mb
  10. L10
    intro mc
02Fix variables and assumptionsL11–20

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

  1. L11
    intro r
  2. L12
    intro s
  3. L13
    intro l
  4. L14
    intro hF
  5. L15
    intro hG
  6. L16
    intro hcompose
  7. L17
    intro i
  8. L18
    intro j
  9. L19
    intro z
  10. L20
    intro hi
03Fix variables and assumptionsL21–22

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

  1. L21
    intro hmap
  2. L22
    intro hsource
04Separate the logical casesL23–23

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

  1. L23
    cases hcompose
05Establish hpartsL24–33

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table at to components.

  1. L24
    have hparts : ∃ p. ∃ n. BetaAt(pb,pc,j,p) ∧ (BetaAt(nb,nc,j,n) ∧ SignedBalance(z,p,n))Definitions: BetaAt(pb,pc,j,p)BetaAt(nb,nc,j,n)SignedBalance(z,p,n)Original native command in the exact edition
  2. L25
    specialize divisor_signed_table_at_to_components (F)
  3. L26
    specialize divisor_signed_table_at_to_components (pb)
  4. L27
    specialize divisor_signed_table_at_to_components (pc)
  5. L28
    specialize divisor_signed_table_at_to_components (nb)
  6. L29
    specialize divisor_signed_table_at_to_components (nc)
  7. L30
    specialize divisor_signed_table_at_to_components (j)
  8. L31
    specialize divisor_signed_table_at_to_components (z)
  9. L32
    apply divisor_signed_table_at_to_components
  10. L33
    exact hF
06Use earlier factsL34–34

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

  1. L34
    exact hsource
07Separate the logical casesL35–38

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

  1. L35
    cases hparts
  2. L36
    cases hparts_witness
  3. L37
    cases hparts_witness_witness
  4. L38
    cases hparts_witness_witness_right
08Use earlier factsL39–48

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

  1. L39
    specialize divisor_signed_table_at_from_components (G)
  2. L40
    specialize divisor_signed_table_at_from_components (qb)
  3. L41
    specialize divisor_signed_table_at_from_components (qc)
  4. L42
    specialize divisor_signed_table_at_from_components (mb)
  5. L43
    specialize divisor_signed_table_at_from_components (mc)
  6. L44
    specialize divisor_signed_table_at_from_components (i)
  7. L45
    specialize divisor_signed_table_at_from_components (x)
  8. L46
    specialize divisor_signed_table_at_from_components (x1)
  9. L47
    specialize divisor_signed_table_at_from_components (z)
  10. L48
    apply divisor_signed_table_at_from_components
09Use earlier factsL49–58

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

  1. L49
    exact hG
  2. L50
    specialize hcompose_left (i)
  3. L51
    specialize hcompose_left (j)
  4. L52
    specialize hcompose_left (x)
  5. L53
    apply hcompose_left
  6. L54
    exact hi
  7. L55
    exact hmap
  8. L56
    exact hparts_witness_witness_left
  9. L57
    specialize hcompose_right (i)
  10. L58
    specialize hcompose_right (j)
10Use earlier factsL59–64

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

  1. L59
    specialize hcompose_right (x1)
  2. L60
    apply hcompose_right
  3. L61
    exact hi
  4. L62
    exact hmap
  5. L63
    exact hparts_witness_witness_right_left
  6. L64
    exact hparts_witness_witness_right_right

Library-wide reading audit

Original defined command ledger · 64 lines
  1. 0001intro F
  2. 0002intro G
  3. 0003intro pb
  4. 0004intro pc
  5. 0005intro nb
  6. 0006intro nc
  7. 0007intro qb
  8. 0008intro qc
  9. 0009intro mb
  10. 0010intro mc
  11. 0011intro r
  12. 0012intro s
  13. 0013intro l
  14. 0014intro hF
  15. 0015intro hG
  16. 0016intro hcompose
  17. 0017intro i
  18. 0018intro j
  19. 0019intro z
  20. 0020intro hi
  21. 0021intro hmap
  22. 0022intro hsource
  23. 0023cases hcompose
  24. 0024have hparts : ∃ p. ∃ n. BetaAt(pb,pc,j,p) ∧ (BetaAt(nb,nc,j,n)SignedBalance(z,p,n))
  25. 0025specialize divisor_signed_table_at_to_components (F)
  26. 0026specialize divisor_signed_table_at_to_components (pb)
  27. 0027specialize divisor_signed_table_at_to_components (pc)
  28. 0028specialize divisor_signed_table_at_to_components (nb)
  29. 0029specialize divisor_signed_table_at_to_components (nc)
  30. 0030specialize divisor_signed_table_at_to_components (j)
  31. 0031specialize divisor_signed_table_at_to_components (z)
  32. 0032apply divisor_signed_table_at_to_components
  33. 0033exact hF
  34. 0034exact hsource
  35. 0035cases hparts
  36. 0036cases hparts_witness
  37. 0037cases hparts_witness_witness
  38. 0038cases hparts_witness_witness_right
  39. 0039specialize divisor_signed_table_at_from_components (G)
  40. 0040specialize divisor_signed_table_at_from_components (qb)
  41. 0041specialize divisor_signed_table_at_from_components (qc)
  42. 0042specialize divisor_signed_table_at_from_components (mb)
  43. 0043specialize divisor_signed_table_at_from_components (mc)
  44. 0044specialize divisor_signed_table_at_from_components (i)
  45. 0045specialize divisor_signed_table_at_from_components (x)
  46. 0046specialize divisor_signed_table_at_from_components (x1)
  47. 0047specialize divisor_signed_table_at_from_components (z)
  48. 0048apply divisor_signed_table_at_from_components
  49. 0049exact hG
  50. 0050specialize hcompose_left (i)
  51. 0051specialize hcompose_left (j)
  52. 0052specialize hcompose_left (x)
  53. 0053apply hcompose_left
  54. 0054exact hi
  55. 0055exact hmap
  56. 0056exact hparts_witness_witness_left
  57. 0057specialize hcompose_right (i)
  58. 0058specialize hcompose_right (j)
  59. 0059specialize hcompose_right (x1)
  60. 0060apply hcompose_right
  61. 0061exact hi
  62. 0062exact hmap
  63. 0063exact hparts_witness_witness_right_left
  64. 0064exact hparts_witness_witness_right_right