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. ∀ bb. ∀ bc. ∀ cb. ∀ cc. ∀ db. ∀ dc. ∀ eb. ∀ ec. ∀ fb. ∀ fc. ∀ gb. ∀ gc. ∀ hb. ∀ hc. ∀ ub. ∀ uc. ∀ vb. ∀ vc. ∀ Ub. ∀ Uc. ∀ Vb. ∀ Vc. ∀ l. IntegerVectorEqual(ab,ac,bb,bc,eb,ec,fb,fc,l) → IntegerVectorEqual(cb,cc,db,dc,gb,gc,hb,hc,l) → SignedAlternatingProductPrefix(ab,ac,bb,bc,cb,cc,db,dc,ub,uc,vb,vc,l) → SignedAlternatingProductPrefix(eb,ec,fb,fc,gb,gc,hb,hc,Ub,Uc,Vb,Vc,l) → IntegerVectorEqual(ub,uc,vb,vc,Ub,Uc,Vb,Vc,l)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 151 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–30
04Fix variables and assumptionsL31–39
05Establish hfirstentryL40–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hfirst.
- L40
have hfirstentry : ∃ ap. ∃ an. ∃ bp. ∃ bn. ∃ tp. ∃ tn. BetaAt(ab,ac,i,ap) ∧ (BetaAt(bb,bc,i,an) ∧ (BetaAt(cb,cc,i,bp) ∧ (BetaAt(db,dc,i,bn) ∧ (BetaAt(ub,uc,i,tp) ∧ (BetaAt(vb,vc,i,tn) ∧ SignedAlternatingCofactorTerm(ap,an,bp,bn,i,tp,tn))))))Definitions: BetaAt(ab,ac,i,ap)BetaAt(bb,bc,i,an)BetaAt(cb,cc,i,bp)BetaAt(db,dc,i,bn)BetaAt(ub,uc,i,tp)BetaAt(vb,vc,i,tn)SignedAlternatingCofactorTerm(ap,an,bp,bn,i,tp,tn)Original native command in the exact edition - L41
specialize hfirst (i) - L42
apply hfirst - L43
exact hi
06Separate the logical casesL44–53
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
cases hfirstentry - L45
cases hfirstentry_witness - L46
cases hfirstentry_witness_witness - L47
cases hfirstentry_witness_witness_witness - L48
cases hfirstentry_witness_witness_witness_witness - L49
cases hfirstentry_witness_witness_witness_witness_witness - L50
cases hfirstentry_witness_witness_witness_witness_witness_witness - L51
cases hfirstentry_witness_witness_witness_witness_witness_witness_right - L52
cases hfirstentry_witness_witness_witness_witness_witness_witness_right_right - L53
cases hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right
07Separate the logical casesL54–55
08Establish hsecondentryL56–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hsecond.
- L56
have hsecondentry : ∃ ap. ∃ an. ∃ bp. ∃ bn. ∃ tp. ∃ tn. BetaAt(eb,ec,i,ap) ∧ (BetaAt(fb,fc,i,an) ∧ (BetaAt(gb,gc,i,bp) ∧ (BetaAt(hb,hc,i,bn) ∧ (BetaAt(Ub,Uc,i,tp) ∧ (BetaAt(Vb,Vc,i,tn) ∧ SignedAlternatingCofactorTerm(ap,an,bp,bn,i,tp,tn))))))Definitions: BetaAt(eb,ec,i,ap)BetaAt(fb,fc,i,an)BetaAt(gb,gc,i,bp)BetaAt(hb,hc,i,bn)BetaAt(Ub,Uc,i,tp)BetaAt(Vb,Vc,i,tn)SignedAlternatingCofactorTerm(ap,an,bp,bn,i,tp,tn)Original native command in the exact edition - L57
specialize hsecond (i) - L58
apply hsecond - L59
exact hi
09Separate the logical casesL60–69
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
cases hsecondentry - L61
cases hsecondentry_witness - L62
cases hsecondentry_witness_witness - L63
cases hsecondentry_witness_witness_witness - L64
cases hsecondentry_witness_witness_witness_witness - L65
cases hsecondentry_witness_witness_witness_witness_witness - L66
cases hsecondentry_witness_witness_witness_witness_witness_witness - L67
cases hsecondentry_witness_witness_witness_witness_witness_witness_right - L68
cases hsecondentry_witness_witness_witness_witness_witness_witness_right_right - L69
cases hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right
10Separate the logical casesL70–71
11Establish hbalanceL72–81
Establish this local claim before using it. It is not an additional assumption.
- L72
have hbalance : x4 + x11 = x10 + x5 - L73
specialize matrix_integer_cofactor_term_balance (x) - L74
specialize matrix_integer_cofactor_term_balance (x1) - L75
specialize matrix_integer_cofactor_term_balance (x2) - L76
specialize matrix_integer_cofactor_term_balance (x3) - L77
specialize matrix_integer_cofactor_term_balance (x6) - L78
specialize matrix_integer_cofactor_term_balance (x7) - L79
specialize matrix_integer_cofactor_term_balance (x8) - L80
specialize matrix_integer_cofactor_term_balance (x9) - L81
specialize matrix_integer_cofactor_term_balance (i)
12Use earlier factsL82–91
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
specialize matrix_integer_cofactor_term_balance (x4) - L83
specialize matrix_integer_cofactor_term_balance (x5) - L84
specialize matrix_integer_cofactor_term_balance (x10) - L85
specialize matrix_integer_cofactor_term_balance (x11) - L86
apply matrix_integer_cofactor_term_balance - L87
specialize hrows (i) - L88
specialize hrows (x) - L89
specialize hrows (x1) - L90
specialize hrows (x6) - L91
specialize hrows (x7)
13Use earlier factsL92–101
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L92
apply hrows - L93
exact hi - L94
exact hfirstentry_witness_witness_witness_witness_witness_witness_left - L95
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_left - L96
exact hsecondentry_witness_witness_witness_witness_witness_witness_left - L97
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_left - L98
specialize hcofactors (i) - L99
specialize hcofactors (x2) - L100
specialize hcofactors (x3) - L101
specialize hcofactors (x8)
14Use earlier factsL102–110
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L102
specialize hcofactors (x9) - L103
apply hcofactors - L104
exact hi - L105
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_left - L106
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_left - L107
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_left - L108
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_left - L109
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_right - L110
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_right
15Establish hpositiveL111–119
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L111
have hpositive : p = x4 - L112
specialize beta_at_unique (ub) - L113
specialize beta_at_unique (uc) - L114
specialize beta_at_unique (i) - L115
specialize beta_at_unique (p) - L116
specialize beta_at_unique (x4) - L117
apply beta_at_unique - L118
exact hp - L119
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right_left
16Establish hnegativeL120–128
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L120
have hnegative : n = x5 - L121
specialize beta_at_unique (vb) - L122
specialize beta_at_unique (vc) - L123
specialize beta_at_unique (i) - L124
specialize beta_at_unique (n) - L125
specialize beta_at_unique (x5) - L126
apply beta_at_unique - L127
exact hn - L128
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_left
17Establish hotherpositiveL129–137
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L129
have hotherpositive : P = x10 - L130
specialize beta_at_unique (Ub) - L131
specialize beta_at_unique (Uc) - L132
specialize beta_at_unique (i) - L133
specialize beta_at_unique (P) - L134
specialize beta_at_unique (x10) - L135
apply beta_at_unique - L136
exact hP - L137
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right_left
18Establish hothernegativeL138–147
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L138
have hothernegative : N = x11 - L139
specialize beta_at_unique (Vb) - L140
specialize beta_at_unique (Vc) - L141
specialize beta_at_unique (i) - L142
specialize beta_at_unique (N) - L143
specialize beta_at_unique (x11) - L144
apply beta_at_unique - L145
exact hN - L146
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_left - L147
rewrite hpositive
19Calculate and transport equalitiesL148–150
20Use earlier factsL151–151
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L151
exact hbalance
Original defined command ledger · 151 lines
- 0001
intro ab - 0002
intro ac - 0003
intro bb - 0004
intro bc - 0005
intro cb - 0006
intro cc - 0007
intro db - 0008
intro dc - 0009
intro eb - 0010
intro ec - 0011
intro fb - 0012
intro fc - 0013
intro gb - 0014
intro gc - 0015
intro hb - 0016
intro hc - 0017
intro ub - 0018
intro uc - 0019
intro vb - 0020
intro vc - 0021
intro Ub - 0022
intro Uc - 0023
intro Vb - 0024
intro Vc - 0025
intro l - 0026
intro hrows - 0027
intro hcofactors - 0028
intro hfirst - 0029
intro hsecond - 0030
intro i - 0031
intro p - 0032
intro n - 0033
intro P - 0034
intro N - 0035
intro hi - 0036
intro hp - 0037
intro hn - 0038
intro hP - 0039
intro hN - 0040
have hfirstentry : ∃ ap. ∃ an. ∃ bp. ∃ bn. ∃ tp. ∃ tn. BetaAt(ab,ac,i,ap) ∧ (BetaAt(bb,bc,i,an) ∧ (BetaAt(cb,cc,i,bp) ∧ (BetaAt(db,dc,i,bn) ∧ (BetaAt(ub,uc,i,tp) ∧ (BetaAt(vb,vc,i,tn) ∧ SignedAlternatingCofactorTerm(ap,an,bp,bn,i,tp,tn)))))) - 0041
specialize hfirst (i) - 0042
apply hfirst - 0043
exact hi - 0044
cases hfirstentry - 0045
cases hfirstentry_witness - 0046
cases hfirstentry_witness_witness - 0047
cases hfirstentry_witness_witness_witness - 0048
cases hfirstentry_witness_witness_witness_witness - 0049
cases hfirstentry_witness_witness_witness_witness_witness - 0050
cases hfirstentry_witness_witness_witness_witness_witness_witness - 0051
cases hfirstentry_witness_witness_witness_witness_witness_witness_right - 0052
cases hfirstentry_witness_witness_witness_witness_witness_witness_right_right - 0053
cases hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right - 0054
cases hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right - 0055
cases hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right - 0056
have hsecondentry : ∃ ap. ∃ an. ∃ bp. ∃ bn. ∃ tp. ∃ tn. BetaAt(eb,ec,i,ap) ∧ (BetaAt(fb,fc,i,an) ∧ (BetaAt(gb,gc,i,bp) ∧ (BetaAt(hb,hc,i,bn) ∧ (BetaAt(Ub,Uc,i,tp) ∧ (BetaAt(Vb,Vc,i,tn) ∧ SignedAlternatingCofactorTerm(ap,an,bp,bn,i,tp,tn)))))) - 0057
specialize hsecond (i) - 0058
apply hsecond - 0059
exact hi - 0060
cases hsecondentry - 0061
cases hsecondentry_witness - 0062
cases hsecondentry_witness_witness - 0063
cases hsecondentry_witness_witness_witness - 0064
cases hsecondentry_witness_witness_witness_witness - 0065
cases hsecondentry_witness_witness_witness_witness_witness - 0066
cases hsecondentry_witness_witness_witness_witness_witness_witness - 0067
cases hsecondentry_witness_witness_witness_witness_witness_witness_right - 0068
cases hsecondentry_witness_witness_witness_witness_witness_witness_right_right - 0069
cases hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right - 0070
cases hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right - 0071
cases hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right - 0072
have hbalance : x4 + x11 = x10 + x5 - 0073
specialize matrix_integer_cofactor_term_balance (x) - 0074
specialize matrix_integer_cofactor_term_balance (x1) - 0075
specialize matrix_integer_cofactor_term_balance (x2) - 0076
specialize matrix_integer_cofactor_term_balance (x3) - 0077
specialize matrix_integer_cofactor_term_balance (x6) - 0078
specialize matrix_integer_cofactor_term_balance (x7) - 0079
specialize matrix_integer_cofactor_term_balance (x8) - 0080
specialize matrix_integer_cofactor_term_balance (x9) - 0081
specialize matrix_integer_cofactor_term_balance (i) - 0082
specialize matrix_integer_cofactor_term_balance (x4) - 0083
specialize matrix_integer_cofactor_term_balance (x5) - 0084
specialize matrix_integer_cofactor_term_balance (x10) - 0085
specialize matrix_integer_cofactor_term_balance (x11) - 0086
apply matrix_integer_cofactor_term_balance - 0087
specialize hrows (i) - 0088
specialize hrows (x) - 0089
specialize hrows (x1) - 0090
specialize hrows (x6) - 0091
specialize hrows (x7) - 0092
apply hrows - 0093
exact hi - 0094
exact hfirstentry_witness_witness_witness_witness_witness_witness_left - 0095
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_left - 0096
exact hsecondentry_witness_witness_witness_witness_witness_witness_left - 0097
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_left - 0098
specialize hcofactors (i) - 0099
specialize hcofactors (x2) - 0100
specialize hcofactors (x3) - 0101
specialize hcofactors (x8) - 0102
specialize hcofactors (x9) - 0103
apply hcofactors - 0104
exact hi - 0105
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_left - 0106
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_left - 0107
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_left - 0108
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_left - 0109
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_right - 0110
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_right - 0111
have hpositive : p = x4 - 0112
specialize beta_at_unique (ub) - 0113
specialize beta_at_unique (uc) - 0114
specialize beta_at_unique (i) - 0115
specialize beta_at_unique (p) - 0116
specialize beta_at_unique (x4) - 0117
apply beta_at_unique - 0118
exact hp - 0119
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right_left - 0120
have hnegative : n = x5 - 0121
specialize beta_at_unique (vb) - 0122
specialize beta_at_unique (vc) - 0123
specialize beta_at_unique (i) - 0124
specialize beta_at_unique (n) - 0125
specialize beta_at_unique (x5) - 0126
apply beta_at_unique - 0127
exact hn - 0128
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_left - 0129
have hotherpositive : P = x10 - 0130
specialize beta_at_unique (Ub) - 0131
specialize beta_at_unique (Uc) - 0132
specialize beta_at_unique (i) - 0133
specialize beta_at_unique (P) - 0134
specialize beta_at_unique (x10) - 0135
apply beta_at_unique - 0136
exact hP - 0137
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right_left - 0138
have hothernegative : N = x11 - 0139
specialize beta_at_unique (Vb) - 0140
specialize beta_at_unique (Vc) - 0141
specialize beta_at_unique (i) - 0142
specialize beta_at_unique (N) - 0143
specialize beta_at_unique (x11) - 0144
apply beta_at_unique - 0145
exact hN - 0146
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_left - 0147
rewrite hpositive - 0148
rewrite hnegative - 0149
rewrite hotherpositive - 0150
rewrite hothernegative - 0151
exact hbalance