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. ∀ B. (∀ x. Lt(x,l) → ∃ y. BetaAt(b,c,x,y) ∧ Lt(y,B)) ∨ ¬(∀ x. Lt(x,l) → ∃ y. BetaAt(b,c,x,y) ∧ Lt(y,B))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 63 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 (4)
01Fix variables and assumptionsL1–2
02Induction on lL3–4
03Separate the logical casesL5–5
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L5
left
04Use earlier factsL6–9
05Fix variables and assumptionsL10–10
Work with arbitrary variables or the premises of the current implication.
- L10
intro B
06Establish hpreviousL11–13
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L11
have hprevious : (∀ x. Lt(x,l) → ∃ y. BetaAt(b,c,x,y) ∧ Lt(y,B)) ∨ ¬(∀ x. Lt(x,l) → ∃ y. BetaAt(b,c,x,y) ∧ Lt(y,B))Definitions: Lt(x,l)BetaAt(b,c,x,y)Lt(y,B)Original native command in the exact edition - L12
specialize IH (B) - L13
apply IH
07Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L14
cases hprevious
08Establish hlastL15–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L15
have hlast : ∃ a. BetaAt(b,c,l,a)Definitions: BetaAt(b,c,l,a)Original native command in the exact edition - L16
specialize beta_at_exists (b) - L17
specialize beta_at_exists (c) - L18
specialize beta_at_exists (l) - L19
apply beta_at_exists
09Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
cases hlast
10Establish horderL21–24
11Separate the logical casesL25–26
12Fix variables and assumptionsL27–27
Work with arbitrary variables or the premises of the current implication.
- L27
intro hfull
13Establish hcontradictionL28–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix rank bounded prefix value.
- L28
- L29
specialize matrix_rank_bounded_prefix_value (b) - L30
specialize matrix_rank_bounded_prefix_value (c) - L31
specialize matrix_rank_bounded_prefix_value (S l) - L32
specialize matrix_rank_bounded_prefix_value (B) - L33
specialize matrix_rank_bounded_prefix_value (l) - L34
specialize matrix_rank_bounded_prefix_value (x) - L35
apply matrix_rank_bounded_prefix_value - L36
exact hfull - L37
specialize le_refl (S l)
14Use earlier factsL38–44
15Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
left
16Use earlier factsL46–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
specialize matrix_rank_bounded_prefix_extend (b) - L47
specialize matrix_rank_bounded_prefix_extend (c) - L48
specialize matrix_rank_bounded_prefix_extend (l) - L49
specialize matrix_rank_bounded_prefix_extend (B) - L50
specialize matrix_rank_bounded_prefix_extend (x) - L51
apply matrix_rank_bounded_prefix_extend - L52
exact hprevious_left - L53
exact hlast_witness - L54
exact horder_right
17Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
right
18Fix variables and assumptionsL56–56
Work with arbitrary variables or the premises of the current implication.
- L56
intro hfull
19Use earlier factsL57–63
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 63 lines
- 0001
intro b - 0002
intro c - 0003
induction l - 0004
intro B - 0005
left - 0006
specialize matrix_rank_bounded_prefix_empty (b) - 0007
specialize matrix_rank_bounded_prefix_empty (c) - 0008
specialize matrix_rank_bounded_prefix_empty (B) - 0009
apply matrix_rank_bounded_prefix_empty - 0010
intro B - 0011
have hprevious : (∀ x. Lt(x,l) → ∃ y. BetaAt(b,c,x,y) ∧ Lt(y,B)) ∨ ¬(∀ x. Lt(x,l) → ∃ y. BetaAt(b,c,x,y) ∧ Lt(y,B)) - 0012
specialize IH (B) - 0013
apply IH - 0014
cases hprevious - 0015
have hlast : ∃ a. BetaAt(b,c,l,a) - 0016
specialize beta_at_exists (b) - 0017
specialize beta_at_exists (c) - 0018
specialize beta_at_exists (l) - 0019
apply beta_at_exists - 0020
cases hlast - 0021
have horder : Le(B,x) ∨ Lt(x,B) - 0022
specialize le_or_lt (B) - 0023
specialize le_or_lt (x) - 0024
apply le_or_lt - 0025
cases horder - 0026
right - 0027
intro hfull - 0028
have hcontradiction : Lt(x,B) - 0029
specialize matrix_rank_bounded_prefix_value (b) - 0030
specialize matrix_rank_bounded_prefix_value (c) - 0031
specialize matrix_rank_bounded_prefix_value (S l) - 0032
specialize matrix_rank_bounded_prefix_value (B) - 0033
specialize matrix_rank_bounded_prefix_value (l) - 0034
specialize matrix_rank_bounded_prefix_value (x) - 0035
apply matrix_rank_bounded_prefix_value - 0036
exact hfull - 0037
specialize le_refl (S l) - 0038
apply le_refl - 0039
exact hlast_witness - 0040
specialize lt_not_le (x) - 0041
specialize lt_not_le (B) - 0042
apply lt_not_le - 0043
exact hcontradiction - 0044
exact horder_left - 0045
left - 0046
specialize matrix_rank_bounded_prefix_extend (b) - 0047
specialize matrix_rank_bounded_prefix_extend (c) - 0048
specialize matrix_rank_bounded_prefix_extend (l) - 0049
specialize matrix_rank_bounded_prefix_extend (B) - 0050
specialize matrix_rank_bounded_prefix_extend (x) - 0051
apply matrix_rank_bounded_prefix_extend - 0052
exact hprevious_left - 0053
exact hlast_witness - 0054
exact horder_right - 0055
right - 0056
intro hfull - 0057
apply hprevious_right - 0058
specialize matrix_rank_bounded_prefix_drop_last (b) - 0059
specialize matrix_rank_bounded_prefix_drop_last (c) - 0060
specialize matrix_rank_bounded_prefix_drop_last (l) - 0061
specialize matrix_rank_bounded_prefix_drop_last (B) - 0062
apply matrix_rank_bounded_prefix_drop_last - 0063
exact hfull