DL0015

matrix_recursive_record_injective

A single actual beta entry cannot be interpreted as two different matrix evaluation records.

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. ∀ i. ∀ d. ∀ pb. ∀ pc. ∀ nb. ∀ nc. ∀ p. ∀ n. ∀ e. ∀ ab. ∀ ac. ∀ bb. ∀ bc. ∀ r. ∀ s. SignedDeterminantNodeAt(b,c,i,d,pb,pc,nb,nc,p,n)SignedDeterminantNodeAt(b,c,i,e,ab,ac,bb,bc,r,s) → d = e ∧ (pb = ab ∧ (pc = ac ∧ (nb = bb ∧ (nc = bc ∧ (p = r ∧ n = s)))))

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

Definition DAG

Actual proof prerequisites

beta_at_unique · checked external prerequisitematrix_recursive_node_code_injective
Original expanded first-order statement
forall b c i d pb pc nb nc p n e ab ac bb bc r s. (exists mdr_z_record_first. ((exists mdr_a_record_firstc mdr_b_record_firstc mdr_c_record_firstc mdr_e_record_firstc mdr_f_record_firstc. ((mdr_a_record_firstc = ((d) + (pb)) * S ((d) + (pb)) + ((pb) + (pb))) /\ ((mdr_b_record_firstc = ((pc) + (nb)) * S ((pc) + (nb)) + ((nb) + (nb))) /\ ((mdr_c_record_firstc = ((mdr_a_record_firstc) + (mdr_b_record_firstc)) * S ((mdr_a_record_firstc) + (mdr_b_record_firstc)) + ((mdr_b_record_firstc) + (mdr_b_record_firstc))) /\ ((mdr_e_record_firstc = ((p) + (n)) * S ((p) + (n)) + ((n) + (n))) /\ ((mdr_f_record_firstc = ((nc) + (mdr_e_record_firstc)) * S ((nc) + (mdr_e_record_firstc)) + ((mdr_e_record_firstc) + (mdr_e_record_firstc))) /\ ((mdr_z_record_first) = ((mdr_c_record_firstc) + (mdr_f_record_firstc)) * S ((mdr_c_record_firstc) + (mdr_f_record_firstc)) + ((mdr_f_record_firstc) + (mdr_f_record_firstc))))))))) /\ (((exists ff_h_mdr_record_firstb. ff_h_mdr_record_firstb + S (mdr_z_record_first) = S ((S (i)) * c)) /\ exists ff_q_mdr_record_firstb. b = ff_q_mdr_record_firstb * S ((S (i)) * c) + (mdr_z_record_first))))) -> (exists mdr_z_record_second. ((exists mdr_a_record_secondc mdr_b_record_secondc mdr_c_record_secondc mdr_e_record_secondc mdr_f_record_secondc. ((mdr_a_record_secondc = ((e) + (ab)) * S ((e) + (ab)) + ((ab) + (ab))) /\ ((mdr_b_record_secondc = ((ac) + (bb)) * S ((ac) + (bb)) + ((bb) + (bb))) /\ ((mdr_c_record_secondc = ((mdr_a_record_secondc) + (mdr_b_record_secondc)) * S ((mdr_a_record_secondc) + (mdr_b_record_secondc)) + ((mdr_b_record_secondc) + (mdr_b_record_secondc))) /\ ((mdr_e_record_secondc = ((r) + (s)) * S ((r) + (s)) + ((s) + (s))) /\ ((mdr_f_record_secondc = ((bc) + (mdr_e_record_secondc)) * S ((bc) + (mdr_e_record_secondc)) + ((mdr_e_record_secondc) + (mdr_e_record_secondc))) /\ ((mdr_z_record_second) = ((mdr_c_record_secondc) + (mdr_f_record_secondc)) * S ((mdr_c_record_secondc) + (mdr_f_record_secondc)) + ((mdr_f_record_secondc) + (mdr_f_record_secondc))))))))) /\ (((exists ff_h_mdr_record_secondb. ff_h_mdr_record_secondb + S (mdr_z_record_second) = S ((S (i)) * c)) /\ exists ff_q_mdr_record_secondb. b = ff_q_mdr_record_secondb * S ((S (i)) * c) + (mdr_z_record_second))))) -> ((d = e) /\ ((pb = ab) /\ ((pc = ac) /\ ((nb = bb) /\ ((nc = bc) /\ ((p = r) /\ (n = s)))))))

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 · 8 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 (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 i
  4. L4
    intro d
  5. L5
    intro pb
  6. L6
    intro pc
  7. L7
    intro nb
  8. L8
    intro nc
  9. L9
    intro p
  10. L10
    intro n
02Fix variables and assumptionsL11–19

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

  1. L11
    intro e
  2. L12
    intro ab
  3. L13
    intro ac
  4. L14
    intro bb
  5. L15
    intro bc
  6. L16
    intro r
  7. L17
    intro s
  8. L18
    intro hfirst
  9. L19
    intro hsecond
03Separate the logical casesL20–23

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

  1. L20
    cases hfirst
  2. L21
    cases hfirst_witness
  3. L22
    cases hsecond
  4. L23
    cases hsecond_witness
04Establish hequalL24–33

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

  1. L24
    have hequal : x = x1
  2. L25
    specialize beta_at_unique (b)
  3. L26
    specialize beta_at_unique (c)
  4. L27
    specialize beta_at_unique (i)
  5. L28
    specialize beta_at_unique (x)
  6. L29
    specialize beta_at_unique (x1)
  7. L30
    apply beta_at_unique
  8. L31
    exact hfirst_witness_right
  9. L32
    exact hsecond_witness_right
  10. L33
    specialize matrix_recursive_node_code_injective (x)
05Use earlier factsL34–43

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

  1. L34
    specialize matrix_recursive_node_code_injective (d)
  2. L35
    specialize matrix_recursive_node_code_injective (pb)
  3. L36
    specialize matrix_recursive_node_code_injective (pc)
  4. L37
    specialize matrix_recursive_node_code_injective (nb)
  5. L38
    specialize matrix_recursive_node_code_injective (nc)
  6. L39
    specialize matrix_recursive_node_code_injective (p)
  7. L40
    specialize matrix_recursive_node_code_injective (n)
  8. L41
    specialize matrix_recursive_node_code_injective (e)
  9. L42
    specialize matrix_recursive_node_code_injective (ab)
  10. L43
    specialize matrix_recursive_node_code_injective (ac)
06Use earlier factsL44–49

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

  1. L44
    specialize matrix_recursive_node_code_injective (bb)
  2. L45
    specialize matrix_recursive_node_code_injective (bc)
  3. L46
    specialize matrix_recursive_node_code_injective (r)
  4. L47
    specialize matrix_recursive_node_code_injective (s)
  5. L48
    apply matrix_recursive_node_code_injective
  6. L49
    exact hfirst_witness_left
07Calculate and transport equalitiesL50–50

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

  1. L50
    rewrite hequal
08Use earlier factsL51–51

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

  1. L51
    exact hsecond_witness_left

Library-wide reading audit

Original defined command ledger · 51 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro i
  4. 0004intro d
  5. 0005intro pb
  6. 0006intro pc
  7. 0007intro nb
  8. 0008intro nc
  9. 0009intro p
  10. 0010intro n
  11. 0011intro e
  12. 0012intro ab
  13. 0013intro ac
  14. 0014intro bb
  15. 0015intro bc
  16. 0016intro r
  17. 0017intro s
  18. 0018intro hfirst
  19. 0019intro hsecond
  20. 0020cases hfirst
  21. 0021cases hfirst_witness
  22. 0022cases hsecond
  23. 0023cases hsecond_witness
  24. 0024have hequal : x = x1
  25. 0025specialize beta_at_unique (b)
  26. 0026specialize beta_at_unique (c)
  27. 0027specialize beta_at_unique (i)
  28. 0028specialize beta_at_unique (x)
  29. 0029specialize beta_at_unique (x1)
  30. 0030apply beta_at_unique
  31. 0031exact hfirst_witness_right
  32. 0032exact hsecond_witness_right
  33. 0033specialize matrix_recursive_node_code_injective (x)
  34. 0034specialize matrix_recursive_node_code_injective (d)
  35. 0035specialize matrix_recursive_node_code_injective (pb)
  36. 0036specialize matrix_recursive_node_code_injective (pc)
  37. 0037specialize matrix_recursive_node_code_injective (nb)
  38. 0038specialize matrix_recursive_node_code_injective (nc)
  39. 0039specialize matrix_recursive_node_code_injective (p)
  40. 0040specialize matrix_recursive_node_code_injective (n)
  41. 0041specialize matrix_recursive_node_code_injective (e)
  42. 0042specialize matrix_recursive_node_code_injective (ab)
  43. 0043specialize matrix_recursive_node_code_injective (ac)
  44. 0044specialize matrix_recursive_node_code_injective (bb)
  45. 0045specialize matrix_recursive_node_code_injective (bc)
  46. 0046specialize matrix_recursive_node_code_injective (r)
  47. 0047specialize matrix_recursive_node_code_injective (s)
  48. 0048apply matrix_recursive_node_code_injective
  49. 0049exact hfirst_witness_left
  50. 0050rewrite hequal
  51. 0051exact hsecond_witness_left