DL0086

matrix_integer_vector_equality_symmetric

Signed-integer vector equality is symmetric at the actual decoded-entry level.

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. ∀ bb. ∀ bc. ∀ eb. ∀ ec. ∀ fb. ∀ fc. ∀ l. IntegerVectorEqual(ab,ac,bb,bc,eb,ec,fb,fc,l)IntegerVectorEqual(eb,ec,fb,fc,ab,ac,bb,bc,l)

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

Definition DAG

Actual proof prerequisites

eq_symm · checked external prerequisite
Original expanded first-order statement
forall ab ac bb bc eb ec fb fc l. (forall ics_index_equal_source ics_value0_equal_source ics_value1_equal_source ics_value2_equal_source ics_value3_equal_source. (exists ics_gap_equal_source_bound. ics_gap_equal_source_bound + S (ics_index_equal_source) = (l)) -> (((exists fs_h_ics_equal_source_at0. fs_h_ics_equal_source_at0 + S (ics_value0_equal_source) = S ((S (ics_index_equal_source)) * ac)) /\ exists fs_q_ics_equal_source_at0. ab = fs_q_ics_equal_source_at0 * S ((S (ics_index_equal_source)) * ac) + (ics_value0_equal_source))) -> (((exists fs_h_ics_equal_source_at1. fs_h_ics_equal_source_at1 + S (ics_value1_equal_source) = S ((S (ics_index_equal_source)) * bc)) /\ exists fs_q_ics_equal_source_at1. bb = fs_q_ics_equal_source_at1 * S ((S (ics_index_equal_source)) * bc) + (ics_value1_equal_source))) -> (((exists fs_h_ics_equal_source_at2. fs_h_ics_equal_source_at2 + S (ics_value2_equal_source) = S ((S (ics_index_equal_source)) * ec)) /\ exists fs_q_ics_equal_source_at2. eb = fs_q_ics_equal_source_at2 * S ((S (ics_index_equal_source)) * ec) + (ics_value2_equal_source))) -> (((exists fs_h_ics_equal_source_at3. fs_h_ics_equal_source_at3 + S (ics_value3_equal_source) = S ((S (ics_index_equal_source)) * fc)) /\ exists fs_q_ics_equal_source_at3. fb = fs_q_ics_equal_source_at3 * S ((S (ics_index_equal_source)) * fc) + (ics_value3_equal_source))) -> ics_value0_equal_source + ics_value3_equal_source = ics_value2_equal_source + ics_value1_equal_source) -> (forall ics_index_equal_reverse ics_value0_equal_reverse ics_value1_equal_reverse ics_value2_equal_reverse ics_value3_equal_reverse. (exists ics_gap_equal_reverse_bound. ics_gap_equal_reverse_bound + S (ics_index_equal_reverse) = (l)) -> (((exists fs_h_ics_equal_reverse_at0. fs_h_ics_equal_reverse_at0 + S (ics_value0_equal_reverse) = S ((S (ics_index_equal_reverse)) * ec)) /\ exists fs_q_ics_equal_reverse_at0. eb = fs_q_ics_equal_reverse_at0 * S ((S (ics_index_equal_reverse)) * ec) + (ics_value0_equal_reverse))) -> (((exists fs_h_ics_equal_reverse_at1. fs_h_ics_equal_reverse_at1 + S (ics_value1_equal_reverse) = S ((S (ics_index_equal_reverse)) * fc)) /\ exists fs_q_ics_equal_reverse_at1. fb = fs_q_ics_equal_reverse_at1 * S ((S (ics_index_equal_reverse)) * fc) + (ics_value1_equal_reverse))) -> (((exists fs_h_ics_equal_reverse_at2. fs_h_ics_equal_reverse_at2 + S (ics_value2_equal_reverse) = S ((S (ics_index_equal_reverse)) * ac)) /\ exists fs_q_ics_equal_reverse_at2. ab = fs_q_ics_equal_reverse_at2 * S ((S (ics_index_equal_reverse)) * ac) + (ics_value2_equal_reverse))) -> (((exists fs_h_ics_equal_reverse_at3. fs_h_ics_equal_reverse_at3 + S (ics_value3_equal_reverse) = S ((S (ics_index_equal_reverse)) * bc)) /\ exists fs_q_ics_equal_reverse_at3. bb = fs_q_ics_equal_reverse_at3 * S ((S (ics_index_equal_reverse)) * bc) + (ics_value3_equal_reverse))) -> ics_value0_equal_reverse + ics_value3_equal_reverse = ics_value2_equal_reverse + ics_value1_equal_reverse)

Complete tactic proof in conservative notation

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

34 script commands · 4 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.

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 bb
  4. L4
    intro bc
  5. L5
    intro eb
  6. L6
    intro ec
  7. L7
    intro fb
  8. L8
    intro fc
  9. L9
    intro l
  10. L10
    intro hequal
02Fix variables and assumptionsL11–20

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

  1. L11
    intro i
  2. L12
    intro a
  3. L13
    intro b
  4. L14
    intro c
  5. L15
    intro d
  6. L16
    intro hi
  7. L17
    intro ha
  8. L18
    intro hb
  9. L19
    intro hc
  10. L20
    intro hd
03Use earlier factsL21–30

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

  1. L21
    specialize eq_symm (c + b)
  2. L22
    specialize eq_symm (a + d)
  3. L23
    apply eq_symm
  4. L24
    specialize hequal (i)
  5. L25
    specialize hequal (c)
  6. L26
    specialize hequal (d)
  7. L27
    specialize hequal (a)
  8. L28
    specialize hequal (b)
  9. L29
    apply hequal
  10. L30
    exact hi
04Use earlier factsL31–34

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

  1. L31
    exact hc
  2. L32
    exact hd
  3. L33
    exact ha
  4. L34
    exact hb

Library-wide reading audit

Original defined command ledger · 34 lines
  1. 0001intro ab
  2. 0002intro ac
  3. 0003intro bb
  4. 0004intro bc
  5. 0005intro eb
  6. 0006intro ec
  7. 0007intro fb
  8. 0008intro fc
  9. 0009intro l
  10. 0010intro hequal
  11. 0011intro i
  12. 0012intro a
  13. 0013intro b
  14. 0014intro c
  15. 0015intro d
  16. 0016intro hi
  17. 0017intro ha
  18. 0018intro hb
  19. 0019intro hc
  20. 0020intro hd
  21. 0021specialize eq_symm (c + b)
  22. 0022specialize eq_symm (a + d)
  23. 0023apply eq_symm
  24. 0024specialize hequal (i)
  25. 0025specialize hequal (c)
  26. 0026specialize hequal (d)
  27. 0027specialize hequal (a)
  28. 0028specialize hequal (b)
  29. 0029apply hequal
  30. 0030exact hi
  31. 0031exact hc
  32. 0032exact hd
  33. 0033exact ha
  34. 0034exact hb