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. SignedDeterminantHistory(b,c,l) → SignedDeterminantLocalStep(b,c,l,d,pb,pc,nb,nc,p,n) → ∃ x. ∃ y. (∀ z. ∀ m. Lt(z,l) → BetaAt(b,c,z,m) → BetaAt(x,y,z,m)) ∧ (SignedDeterminantHistory(x,y,S l) ∧ SignedDeterminantNodeAt(x,y,l,d,pb,pc,nb,nc,p,n))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 82 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
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.
Named ingredients (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Establish hextL13–22
Establish this local claim before using it. It is not an additional assumption.
- L13
have hext : ∃ 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)Definitions: Lt(x,l)BetaAt(b,c,x,y)BetaAt(u,v,x,y)SignedDeterminantNodeAt(u,v,l,d,pb,pc,nb,nc,p,n)Original native command in the exact edition - L14
specialize matrix_recursive_record_append (b) - L15
specialize matrix_recursive_record_append (c) - L16
specialize matrix_recursive_record_append (l) - L17
specialize matrix_recursive_record_append (d) - L18
specialize matrix_recursive_record_append (pb) - L19
specialize matrix_recursive_record_append (pc) - L20
specialize matrix_recursive_record_append (nb) - L21
specialize matrix_recursive_record_append (nc) - L22
specialize matrix_recursive_record_append (p)
04Use earlier factsL23–24
05Separate the logical casesL25–27
06Establish hnewhistoryL28–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix recursive history transport.
- L28
have hnewhistory : SignedDeterminantHistory(x,x1,l)Definitions: SignedDeterminantHistory(x,x1,l)Original native command in the exact edition - L29
specialize matrix_recursive_history_transport (b) - L30
specialize matrix_recursive_history_transport (c) - L31
specialize matrix_recursive_history_transport (x) - L32
specialize matrix_recursive_history_transport (x1) - L33
specialize matrix_recursive_history_transport (l) - L34
apply matrix_recursive_history_transport - L35
exact hext_witness_witness_left - L36
exact hhistory
07Establish hnewstepL37–46
Establish this local claim before using it. It is not an additional assumption.
- L37
have hnewstep : SignedDeterminantLocalStep(x,x1,l,d,pb,pc,nb,nc,p,n)Definitions: SignedDeterminantLocalStep(x,x1,l,d,pb,pc,nb,nc,p,n)Original native command in the exact edition - L38
specialize matrix_recursive_step_transport (b) - L39
specialize matrix_recursive_step_transport (c) - L40
specialize matrix_recursive_step_transport (x) - L41
specialize matrix_recursive_step_transport (x1) - L42
specialize matrix_recursive_step_transport (l) - L43
specialize matrix_recursive_step_transport (d) - L44
specialize matrix_recursive_step_transport (pb) - L45
specialize matrix_recursive_step_transport (pc) - L46
specialize matrix_recursive_step_transport (nb)
08Use earlier factsL47–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
09Construct an explicit witnessL53–54
10Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
split
11Use earlier factsL56–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
exact hext_witness_witness_left
12Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
split
13Fix variables and assumptionsL58–59
14Establish hsplitL60–64
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
15Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
cases hsplit
16Construct an explicit witnessL66–72
17Separate the logical casesL73–73
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L73
split
18Calculate and transport equalitiesL74–75
19Use earlier factsL76–76
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L76
exact hext_witness_witness_right
20Calculate and transport equalitiesL77–77
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L77
rewrite hsplit_left
Original defined command ledger · 82 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro d - 0005
intro pb - 0006
intro pc - 0007
intro nb - 0008
intro nc - 0009
intro p - 0010
intro n - 0011
intro hhistory - 0012
intro hstep - 0013
have hext : ∃ 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) - 0014
specialize matrix_recursive_record_append (b) - 0015
specialize matrix_recursive_record_append (c) - 0016
specialize matrix_recursive_record_append (l) - 0017
specialize matrix_recursive_record_append (d) - 0018
specialize matrix_recursive_record_append (pb) - 0019
specialize matrix_recursive_record_append (pc) - 0020
specialize matrix_recursive_record_append (nb) - 0021
specialize matrix_recursive_record_append (nc) - 0022
specialize matrix_recursive_record_append (p) - 0023
specialize matrix_recursive_record_append (n) - 0024
apply matrix_recursive_record_append - 0025
cases hext - 0026
cases hext_witness - 0027
cases hext_witness_witness - 0028
have hnewhistory : SignedDeterminantHistory(x,x1,l) - 0029
specialize matrix_recursive_history_transport (b) - 0030
specialize matrix_recursive_history_transport (c) - 0031
specialize matrix_recursive_history_transport (x) - 0032
specialize matrix_recursive_history_transport (x1) - 0033
specialize matrix_recursive_history_transport (l) - 0034
apply matrix_recursive_history_transport - 0035
exact hext_witness_witness_left - 0036
exact hhistory - 0037
have hnewstep : SignedDeterminantLocalStep(x,x1,l,d,pb,pc,nb,nc,p,n) - 0038
specialize matrix_recursive_step_transport (b) - 0039
specialize matrix_recursive_step_transport (c) - 0040
specialize matrix_recursive_step_transport (x) - 0041
specialize matrix_recursive_step_transport (x1) - 0042
specialize matrix_recursive_step_transport (l) - 0043
specialize matrix_recursive_step_transport (d) - 0044
specialize matrix_recursive_step_transport (pb) - 0045
specialize matrix_recursive_step_transport (pc) - 0046
specialize matrix_recursive_step_transport (nb) - 0047
specialize matrix_recursive_step_transport (nc) - 0048
specialize matrix_recursive_step_transport (p) - 0049
specialize matrix_recursive_step_transport (n) - 0050
apply matrix_recursive_step_transport - 0051
exact hext_witness_witness_left - 0052
exact hstep - 0053
exists x - 0054
exists x1 - 0055
split - 0056
exact hext_witness_witness_left - 0057
split - 0058
intro i - 0059
intro hi - 0060
have hsplit : i = l ∨ Lt(i,l) - 0061
specialize finite_lt_succ_eq_or_lt (l) - 0062
specialize finite_lt_succ_eq_or_lt (i) - 0063
apply finite_lt_succ_eq_or_lt - 0064
exact hi - 0065
cases hsplit - 0066
exists d - 0067
exists pb - 0068
exists pc - 0069
exists nb - 0070
exists nc - 0071
exists p - 0072
exists n - 0073
split - 0074
rewrite hsplit_left - 0075
rewrite hsplit_left - 0076
exact hext_witness_witness_right - 0077
rewrite hsplit_left - 0078
exact hnewstep - 0079
specialize hnewhistory (i) - 0080
apply hnewhistory - 0081
exact hsplit_right - 0082
exact hext_witness_witness_right