DL0073

integer_vector_add_from_component_sums

Actual coded component sums yield integer-vector addition without requiring canonical representatives.

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

∀ ab. ∀ ac. ∀ db. ∀ dc. ∀ eb. ∀ ec. ∀ fb. ∀ fc. ∀ pb. ∀ pc. ∀ nb. ∀ nc. ∀ l. MatrixPointwiseAdd(ab,ac,eb,ec,pb,pc,l)MatrixPointwiseAdd(db,dc,fb,fc,nb,nc,l)IntegerVectorAdd(ab,ac,db,dc,eb,ec,fb,fc,pb,pc,nb,nc,l)

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

Definition DAG

Actual proof prerequisites

none
Original expanded first-order statement
forall ab ac db dc eb ec fb fc pb pc nb nc l. (forall ff_index_mcp_add_ics_add_components_p ff_left_mcp_add_ics_add_components_p ff_right_mcp_add_ics_add_components_p ff_target_mcp_add_ics_add_components_p. (exists mcp_gap_ics_add_components_p_bound. mcp_gap_ics_add_components_p_bound + S (ff_index_mcp_add_ics_add_components_p) = (l)) -> (((exists fs_h_mcp_ics_add_components_p_left. fs_h_mcp_ics_add_components_p_left + S (ff_left_mcp_add_ics_add_components_p) = S ((S (ff_index_mcp_add_ics_add_components_p)) * ac)) /\ exists fs_q_mcp_ics_add_components_p_left. ab = fs_q_mcp_ics_add_components_p_left * S ((S (ff_index_mcp_add_ics_add_components_p)) * ac) + (ff_left_mcp_add_ics_add_components_p))) -> (((exists fs_h_mcp_ics_add_components_p_right. fs_h_mcp_ics_add_components_p_right + S (ff_right_mcp_add_ics_add_components_p) = S ((S (ff_index_mcp_add_ics_add_components_p)) * ec)) /\ exists fs_q_mcp_ics_add_components_p_right. eb = fs_q_mcp_ics_add_components_p_right * S ((S (ff_index_mcp_add_ics_add_components_p)) * ec) + (ff_right_mcp_add_ics_add_components_p))) -> (((exists fs_h_mcp_ics_add_components_p_target. fs_h_mcp_ics_add_components_p_target + S (ff_target_mcp_add_ics_add_components_p) = S ((S (ff_index_mcp_add_ics_add_components_p)) * pc)) /\ exists fs_q_mcp_ics_add_components_p_target. pb = fs_q_mcp_ics_add_components_p_target * S ((S (ff_index_mcp_add_ics_add_components_p)) * pc) + (ff_target_mcp_add_ics_add_components_p))) -> ff_target_mcp_add_ics_add_components_p = ff_left_mcp_add_ics_add_components_p + ff_right_mcp_add_ics_add_components_p) -> (forall ff_index_mcp_add_ics_add_components_n ff_left_mcp_add_ics_add_components_n ff_right_mcp_add_ics_add_components_n ff_target_mcp_add_ics_add_components_n. (exists mcp_gap_ics_add_components_n_bound. mcp_gap_ics_add_components_n_bound + S (ff_index_mcp_add_ics_add_components_n) = (l)) -> (((exists fs_h_mcp_ics_add_components_n_left. fs_h_mcp_ics_add_components_n_left + S (ff_left_mcp_add_ics_add_components_n) = S ((S (ff_index_mcp_add_ics_add_components_n)) * dc)) /\ exists fs_q_mcp_ics_add_components_n_left. db = fs_q_mcp_ics_add_components_n_left * S ((S (ff_index_mcp_add_ics_add_components_n)) * dc) + (ff_left_mcp_add_ics_add_components_n))) -> (((exists fs_h_mcp_ics_add_components_n_right. fs_h_mcp_ics_add_components_n_right + S (ff_right_mcp_add_ics_add_components_n) = S ((S (ff_index_mcp_add_ics_add_components_n)) * fc)) /\ exists fs_q_mcp_ics_add_components_n_right. fb = fs_q_mcp_ics_add_components_n_right * S ((S (ff_index_mcp_add_ics_add_components_n)) * fc) + (ff_right_mcp_add_ics_add_components_n))) -> (((exists fs_h_mcp_ics_add_components_n_target. fs_h_mcp_ics_add_components_n_target + S (ff_target_mcp_add_ics_add_components_n) = S ((S (ff_index_mcp_add_ics_add_components_n)) * nc)) /\ exists fs_q_mcp_ics_add_components_n_target. nb = fs_q_mcp_ics_add_components_n_target * S ((S (ff_index_mcp_add_ics_add_components_n)) * nc) + (ff_target_mcp_add_ics_add_components_n))) -> ff_target_mcp_add_ics_add_components_n = ff_left_mcp_add_ics_add_components_n + ff_right_mcp_add_ics_add_components_n) -> (forall ics_index_add_components_result ics_value0_add_components_result ics_value1_add_components_result ics_value2_add_components_result ics_value3_add_components_result ics_value4_add_components_result ics_value5_add_components_result. (exists ics_gap_add_components_result_bound. ics_gap_add_components_result_bound + S (ics_index_add_components_result) = (l)) -> (((exists fs_h_ics_add_components_result_at0. fs_h_ics_add_components_result_at0 + S (ics_value0_add_components_result) = S ((S (ics_index_add_components_result)) * ac)) /\ exists fs_q_ics_add_components_result_at0. ab = fs_q_ics_add_components_result_at0 * S ((S (ics_index_add_components_result)) * ac) + (ics_value0_add_components_result))) -> (((exists fs_h_ics_add_components_result_at1. fs_h_ics_add_components_result_at1 + S (ics_value1_add_components_result) = S ((S (ics_index_add_components_result)) * dc)) /\ exists fs_q_ics_add_components_result_at1. db = fs_q_ics_add_components_result_at1 * S ((S (ics_index_add_components_result)) * dc) + (ics_value1_add_components_result))) -> (((exists fs_h_ics_add_components_result_at2. fs_h_ics_add_components_result_at2 + S (ics_value2_add_components_result) = S ((S (ics_index_add_components_result)) * ec)) /\ exists fs_q_ics_add_components_result_at2. eb = fs_q_ics_add_components_result_at2 * S ((S (ics_index_add_components_result)) * ec) + (ics_value2_add_components_result))) -> (((exists fs_h_ics_add_components_result_at3. fs_h_ics_add_components_result_at3 + S (ics_value3_add_components_result) = S ((S (ics_index_add_components_result)) * fc)) /\ exists fs_q_ics_add_components_result_at3. fb = fs_q_ics_add_components_result_at3 * S ((S (ics_index_add_components_result)) * fc) + (ics_value3_add_components_result))) -> (((exists fs_h_ics_add_components_result_at4. fs_h_ics_add_components_result_at4 + S (ics_value4_add_components_result) = S ((S (ics_index_add_components_result)) * pc)) /\ exists fs_q_ics_add_components_result_at4. pb = fs_q_ics_add_components_result_at4 * S ((S (ics_index_add_components_result)) * pc) + (ics_value4_add_components_result))) -> (((exists fs_h_ics_add_components_result_at5. fs_h_ics_add_components_result_at5 + S (ics_value5_add_components_result) = S ((S (ics_index_add_components_result)) * nc)) /\ exists fs_q_ics_add_components_result_at5. nb = fs_q_ics_add_components_result_at5 * S ((S (ics_index_add_components_result)) * nc) + (ics_value5_add_components_result))) -> ics_value4_add_components_result + (ics_value1_add_components_result + ics_value3_add_components_result) = (ics_value0_add_components_result + ics_value2_add_components_result) + ics_value5_add_components_result)

Complete tactic proof in conservative notation

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

52 script commands · 6 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.

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 ab
  2. L2
    intro ac
  3. L3
    intro db
  4. L4
    intro dc
  5. L5
    intro eb
  6. L6
    intro ec
  7. L7
    intro fb
  8. L8
    intro fc
  9. L9
    intro pb
  10. L10
    intro pc
02Fix variables and assumptionsL11–20

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

  1. L11
    intro nb
  2. L12
    intro nc
  3. L13
    intro l
  4. L14
    intro hpositive
  5. L15
    intro hnegative
  6. L16
    intro i
  7. L17
    intro a
  8. L18
    intro b
  9. L19
    intro c
  10. L20
    intro d
03Fix variables and assumptionsL21–29

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

  1. L21
    intro e
  2. L22
    intro f
  3. L23
    intro hi
  4. L24
    intro ha
  5. L25
    intro hb
  6. L26
    intro hc
  7. L27
    intro hd
  8. L28
    intro he
  9. L29
    intro hf
04Establish hpL30–39

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

  1. L30
    have hp : e = a + c
  2. L31
    specialize hpositive (i)
  3. L32
    specialize hpositive (a)
  4. L33
    specialize hpositive (c)
  5. L34
    specialize hpositive (e)
  6. L35
    apply hpositive
  7. L36
    exact hi
  8. L37
    exact ha
  9. L38
    exact hc
  10. L39
    exact he
05Establish hnL40–49

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

  1. L40
    have hn : f = b + d
  2. L41
    specialize hnegative (i)
  3. L42
    specialize hnegative (b)
  4. L43
    specialize hnegative (d)
  5. L44
    specialize hnegative (f)
  6. L45
    apply hnegative
  7. L46
    exact hi
  8. L47
    exact hb
  9. L48
    exact hd
  10. L49
    exact hf
06Calculate and transport equalitiesL50–52

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

  1. L50
    rewrite hp
  2. L51
    rewrite hn
  3. L52
    refl

Library-wide reading audit

Original defined command ledger · 52 lines
  1. 0001intro ab
  2. 0002intro ac
  3. 0003intro db
  4. 0004intro dc
  5. 0005intro eb
  6. 0006intro ec
  7. 0007intro fb
  8. 0008intro fc
  9. 0009intro pb
  10. 0010intro pc
  11. 0011intro nb
  12. 0012intro nc
  13. 0013intro l
  14. 0014intro hpositive
  15. 0015intro hnegative
  16. 0016intro i
  17. 0017intro a
  18. 0018intro b
  19. 0019intro c
  20. 0020intro d
  21. 0021intro e
  22. 0022intro f
  23. 0023intro hi
  24. 0024intro ha
  25. 0025intro hb
  26. 0026intro hc
  27. 0027intro hd
  28. 0028intro he
  29. 0029intro hf
  30. 0030have hp : e = a + c
  31. 0031specialize hpositive (i)
  32. 0032specialize hpositive (a)
  33. 0033specialize hpositive (c)
  34. 0034specialize hpositive (e)
  35. 0035apply hpositive
  36. 0036exact hi
  37. 0037exact ha
  38. 0038exact hc
  39. 0039exact he
  40. 0040have hn : f = b + d
  41. 0041specialize hnegative (i)
  42. 0042specialize hnegative (b)
  43. 0043specialize hnegative (d)
  44. 0044specialize hnegative (f)
  45. 0045apply hnegative
  46. 0046exact hi
  47. 0047exact hb
  48. 0048exact hd
  49. 0049exact hf
  50. 0050rewrite hp
  51. 0051rewrite hn
  52. 0052refl