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. ∀ db. ∀ dc. ∀ eb. ∀ ec. ∀ fb. ∀ fc. ∀ pb. ∀ pc. ∀ nb. ∀ nc. ∀ l. IntegerVectorEqual(ab,ac,db,dc,eb,ec,fb,fc,l) → IntegerVectorEqual(eb,ec,fb,fc,pb,pc,nb,nc,l) → IntegerVectorEqual(ab,ac,db,dc,pb,pc,nb,nc,l)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 66 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 (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–25
04Establish hmiddlepL26–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L26
have hmiddlep : ∃ value. BetaAt(eb,ec,i,value)Definitions: BetaAt(eb,ec,i,value)Original native command in the exact edition - L27
specialize beta_at_exists (eb) - L28
specialize beta_at_exists (ec) - L29
specialize beta_at_exists (i) - L30
apply beta_at_exists
05Separate the logical casesL31–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L31
cases hmiddlep
06Establish hmiddlenL32–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L32
have hmiddlen : ∃ value. BetaAt(fb,fc,i,value)Definitions: BetaAt(fb,fc,i,value)Original native command in the exact edition - L33
specialize beta_at_exists (fb) - L34
specialize beta_at_exists (fc) - L35
specialize beta_at_exists (i) - L36
apply beta_at_exists
07Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
cases hmiddlen
08Use earlier factsL38–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
specialize integer_span_pair_equal_transitive (a) - L39
specialize integer_span_pair_equal_transitive (b) - L40
specialize integer_span_pair_equal_transitive (x) - L41
specialize integer_span_pair_equal_transitive (x1) - L42
specialize integer_span_pair_equal_transitive (e) - L43
specialize integer_span_pair_equal_transitive (f) - L44
apply integer_span_pair_equal_transitive - L45
specialize hfirst (i) - L46
specialize hfirst (a) - L47
specialize hfirst (b)
09Use earlier factsL48–57
Original defined command ledger · 66 lines
- 0001
intro ab - 0002
intro ac - 0003
intro db - 0004
intro dc - 0005
intro eb - 0006
intro ec - 0007
intro fb - 0008
intro fc - 0009
intro pb - 0010
intro pc - 0011
intro nb - 0012
intro nc - 0013
intro l - 0014
intro hfirst - 0015
intro hsecond - 0016
intro i - 0017
intro a - 0018
intro b - 0019
intro e - 0020
intro f - 0021
intro hi - 0022
intro ha - 0023
intro hb - 0024
intro he - 0025
intro hf - 0026
have hmiddlep : ∃ value. BetaAt(eb,ec,i,value) - 0027
specialize beta_at_exists (eb) - 0028
specialize beta_at_exists (ec) - 0029
specialize beta_at_exists (i) - 0030
apply beta_at_exists - 0031
cases hmiddlep - 0032
have hmiddlen : ∃ value. BetaAt(fb,fc,i,value) - 0033
specialize beta_at_exists (fb) - 0034
specialize beta_at_exists (fc) - 0035
specialize beta_at_exists (i) - 0036
apply beta_at_exists - 0037
cases hmiddlen - 0038
specialize integer_span_pair_equal_transitive (a) - 0039
specialize integer_span_pair_equal_transitive (b) - 0040
specialize integer_span_pair_equal_transitive (x) - 0041
specialize integer_span_pair_equal_transitive (x1) - 0042
specialize integer_span_pair_equal_transitive (e) - 0043
specialize integer_span_pair_equal_transitive (f) - 0044
apply integer_span_pair_equal_transitive - 0045
specialize hfirst (i) - 0046
specialize hfirst (a) - 0047
specialize hfirst (b) - 0048
specialize hfirst (x) - 0049
specialize hfirst (x1) - 0050
apply hfirst - 0051
exact hi - 0052
exact ha - 0053
exact hb - 0054
exact hmiddlep_witness - 0055
exact hmiddlen_witness - 0056
specialize hsecond (i) - 0057
specialize hsecond (x) - 0058
specialize hsecond (x1) - 0059
specialize hsecond (e) - 0060
specialize hsecond (f) - 0061
apply hsecond - 0062
exact hi - 0063
exact hmiddlep_witness - 0064
exact hmiddlen_witness - 0065
exact he - 0066
exact hf