DL0006

matrix_recursive_record_append

An arbitrary actual evaluation record can be beta-appended without changing any previous record.

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. ∀ l. ∀ d. ∀ pb. ∀ pc. ∀ nb. ∀ nc. ∀ p. ∀ n. ∃ u. ∃ v. (∀ x. ∀ y. Lt(x,l)BetaAt(b,c,x,y)BetaAt(u,v,x,y)) ∧ SignedDeterminantNodeAt(u,v,l,d,pb,pc,nb,nc,p,n)

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

Definition DAG

Actual proof prerequisites

matrix_recursive_node_code_existsbeta_prefix_extend · checked external prerequisite
Original expanded first-order statement
forall b c l d pb pc nb nc p n. exists u v. ((forall mdr_i_record_append_p mdr_a_record_append_p. (exists mdr_gap_record_append_pb. mdr_gap_record_append_pb + S (mdr_i_record_append_p) = (l)) -> (((exists ff_h_mdr_record_append_po. ff_h_mdr_record_append_po + S (mdr_a_record_append_p) = S ((S (mdr_i_record_append_p)) * c)) /\ exists ff_q_mdr_record_append_po. b = ff_q_mdr_record_append_po * S ((S (mdr_i_record_append_p)) * c) + (mdr_a_record_append_p))) -> (((exists ff_h_mdr_record_append_pn. ff_h_mdr_record_append_pn + S (mdr_a_record_append_p) = S ((S (mdr_i_record_append_p)) * v)) /\ exists ff_q_mdr_record_append_pn. u = ff_q_mdr_record_append_pn * S ((S (mdr_i_record_append_p)) * v) + (mdr_a_record_append_p)))) /\ (exists mdr_z_record_append_r. ((exists mdr_a_record_append_rc mdr_b_record_append_rc mdr_c_record_append_rc mdr_e_record_append_rc mdr_f_record_append_rc. ((mdr_a_record_append_rc = ((d) + (pb)) * S ((d) + (pb)) + ((pb) + (pb))) /\ ((mdr_b_record_append_rc = ((pc) + (nb)) * S ((pc) + (nb)) + ((nb) + (nb))) /\ ((mdr_c_record_append_rc = ((mdr_a_record_append_rc) + (mdr_b_record_append_rc)) * S ((mdr_a_record_append_rc) + (mdr_b_record_append_rc)) + ((mdr_b_record_append_rc) + (mdr_b_record_append_rc))) /\ ((mdr_e_record_append_rc = ((p) + (n)) * S ((p) + (n)) + ((n) + (n))) /\ ((mdr_f_record_append_rc = ((nc) + (mdr_e_record_append_rc)) * S ((nc) + (mdr_e_record_append_rc)) + ((mdr_e_record_append_rc) + (mdr_e_record_append_rc))) /\ ((mdr_z_record_append_r) = ((mdr_c_record_append_rc) + (mdr_f_record_append_rc)) * S ((mdr_c_record_append_rc) + (mdr_f_record_append_rc)) + ((mdr_f_record_append_rc) + (mdr_f_record_append_rc))))))))) /\ (((exists ff_h_mdr_record_append_rb. ff_h_mdr_record_append_rb + S (mdr_z_record_append_r) = S ((S (l)) * v)) /\ exists ff_q_mdr_record_append_rb. u = ff_q_mdr_record_append_rb * S ((S (l)) * v) + (mdr_z_record_append_r))))))

Complete tactic proof in conservative notation

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

37 script commands · 11 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.

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 l
  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
02Establish hcodeL11–19

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix recursive node code exists.

  1. L11
    have hcode : ∃ z. SignedDeterminantNodeCode(z,d,pb,pc,nb,nc,p,n)Definitions: SignedDeterminantNodeCode(z,d,pb,pc,nb,nc,p,n)Original native command in the exact edition
  2. L12
    specialize matrix_recursive_node_code_exists (d)
  3. L13
    specialize matrix_recursive_node_code_exists (pb)
  4. L14
    specialize matrix_recursive_node_code_exists (pc)
  5. L15
    specialize matrix_recursive_node_code_exists (nb)
  6. L16
    specialize matrix_recursive_node_code_exists (nc)
  7. L17
    specialize matrix_recursive_node_code_exists (p)
  8. L18
    specialize matrix_recursive_node_code_exists (n)
  9. L19
    apply matrix_recursive_node_code_exists
03Separate the logical casesL20–20

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

  1. L20
    cases hcode
04Establish hextL21–26

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

  1. L21
    have hext : ∃ u. ∃ v. BetaAt(u,v,l,x) ∧ (∀ y. ∀ z. Lt(y,l) → BetaAt(b,c,y,z) → BetaAt(u,v,y,z))Definitions: BetaAt(u,v,l,x)Lt(y,l)BetaAt(b,c,y,z)BetaAt(u,v,y,z)Original native command in the exact edition
  2. L22
    specialize beta_prefix_extend (l)
  3. L23
    specialize beta_prefix_extend (b)
  4. L24
    specialize beta_prefix_extend (c)
  5. L25
    specialize beta_prefix_extend (x)
  6. L26
    apply beta_prefix_extend
05Separate the logical casesL27–29

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

  1. L27
    cases hext
  2. L28
    cases hext_witness
  3. L29
    cases hext_witness_witness
06Construct an explicit witnessL30–31

Supply the displayed value, then prove that it has the required property.

  1. L30
    exists x1
  2. L31
    exists x2
07Separate the logical casesL32–32

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

  1. L32
    split
08Use earlier factsL33–33

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

  1. L33
    exact hext_witness_witness_right
09Construct an explicit witnessL34–34

Supply the displayed value, then prove that it has the required property.

  1. L34
    exists x
10Separate the logical casesL35–35

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

  1. L35
    split
11Use earlier factsL36–37

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

  1. L36
    exact hcode_witness
  2. L37
    exact hext_witness_witness_left

Library-wide reading audit

Original defined command ledger · 37 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro l
  4. 0004intro d
  5. 0005intro pb
  6. 0006intro pc
  7. 0007intro nb
  8. 0008intro nc
  9. 0009intro p
  10. 0010intro n
  11. 0011have hcode : ∃ z. SignedDeterminantNodeCode(z,d,pb,pc,nb,nc,p,n)
  12. 0012specialize matrix_recursive_node_code_exists (d)
  13. 0013specialize matrix_recursive_node_code_exists (pb)
  14. 0014specialize matrix_recursive_node_code_exists (pc)
  15. 0015specialize matrix_recursive_node_code_exists (nb)
  16. 0016specialize matrix_recursive_node_code_exists (nc)
  17. 0017specialize matrix_recursive_node_code_exists (p)
  18. 0018specialize matrix_recursive_node_code_exists (n)
  19. 0019apply matrix_recursive_node_code_exists
  20. 0020cases hcode
  21. 0021have hext : ∃ u. ∃ v. BetaAt(u,v,l,x) ∧ (∀ y. ∀ z. Lt(y,l)BetaAt(b,c,y,z)BetaAt(u,v,y,z))
  22. 0022specialize beta_prefix_extend (l)
  23. 0023specialize beta_prefix_extend (b)
  24. 0024specialize beta_prefix_extend (c)
  25. 0025specialize beta_prefix_extend (x)
  26. 0026apply beta_prefix_extend
  27. 0027cases hext
  28. 0028cases hext_witness
  29. 0029cases hext_witness_witness
  30. 0030exists x1
  31. 0031exists x2
  32. 0032split
  33. 0033exact hext_witness_witness_right
  34. 0034exists x
  35. 0035split
  36. 0036exact hcode_witness
  37. 0037exact hext_witness_witness_left