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.
Historical partial components only: this chapter proves arbitrary signed cofactor minors and exact signed determinants through dimension four. T13 is now closed by the separate Alpha-v27 integer-linear-algebra branch: arbitrary determinant data, rank, and integer column spans, without a claim of lattice index or normal forms. Full T13 proof · Alpha v27
Exact theorem in conservative defined notation
∀ b. ∀ c. ∀ w. ∀ r. ∀ d. ∀ q. ∀ l. ¬q = 0 → ∃ x. ∃ y. MatrixMinorPrefix(b,c,w,r,d,x,y,q,l)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 50 lines are the exact independently kernel-checked original 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 (2)
01Fix variables and assumptionsL1–6
02Induction on lL7–8
03Construct an explicit witnessL9–10
04Fix variables and assumptionsL11–12
05Separate the logical casesL13–14
06Establish hzeroL15–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.
07Establish hpreviousL24–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L24
have hprevious : ∃ u. ∃ v. MatrixMinorPrefix(b,c,w,r,d,u,v,q,l)Definitions: MatrixMinorPrefixOriginal native command in the exact edition - L25
apply IH - L26
exact hq
08Separate the logical casesL27–28
09Establish hpointL29–38
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta matrix minor point exists.
- L29
have hpoint : ∃ ff_row_mdm_point_exists_have_point. ∃ ff_column_mdm_point_exists_have_point. ∃ ff_value_mdm_point_exists_have_point. l = q · ff_row_mdm_point_exists_have_point + ff_column_mdm_point_exists_have_point ∧ (Lt(ff_column_mdm_point_exists_have_point,q) ∧ MatrixMinorCell(b,c,w,r,d,ff_row_mdm_point_exists_have_point,ff_column_mdm_point_exists_have_point,ff_value_mdm_point_exists_have_point))Definitions: MatrixMinorCellLtOriginal native command in the exact edition - L30
specialize beta_matrix_minor_point_exists b - L31
specialize beta_matrix_minor_point_exists c - L32
specialize beta_matrix_minor_point_exists w - L33
specialize beta_matrix_minor_point_exists r - L34
specialize beta_matrix_minor_point_exists d - L35
specialize beta_matrix_minor_point_exists q - L36
specialize beta_matrix_minor_point_exists l - L37
apply beta_matrix_minor_point_exists - L38
exact hq
10Use earlier factsL39–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
specialize beta_matrix_minor_prefix_extend b - L40
specialize beta_matrix_minor_prefix_extend c - L41
specialize beta_matrix_minor_prefix_extend w - L42
specialize beta_matrix_minor_prefix_extend r - L43
specialize beta_matrix_minor_prefix_extend d - L44
specialize beta_matrix_minor_prefix_extend x - L45
specialize beta_matrix_minor_prefix_extend x1 - L46
specialize beta_matrix_minor_prefix_extend q - L47
specialize beta_matrix_minor_prefix_extend l - L48
apply beta_matrix_minor_prefix_extend
Original defined command ledger · 50 lines
- 0001
intro b - 0002
intro c - 0003
intro w - 0004
intro r - 0005
intro d - 0006
intro q - 0007
induction l - 0008
intro hq - 0009
exists 0 - 0010
exists 0 - 0011
intro k - 0012
intro hk - 0013
exfalso - 0014
cases hk - 0015
have hzero : S k = 0 - 0016
specialize add_eq_zero_right x - 0017
specialize add_eq_zero_right (S k) - 0018
apply add_eq_zero_right - 0019
exact hk_witness - 0020
specialize succ_ne_zero k - 0021
apply succ_ne_zero - 0022
exact hzero - 0023
intro hq - 0024
have hprevious : exists u v. (forall ff_index_mdm_prefix_prefix_previous. (exists ff_gap_mdm_lt_prefix_previous_index_bound. ff_gap_mdm_lt_prefix_previous_index_bound + S (ff_index_mdm_prefix_prefix_previous) = (l)) -> exists ff_row_mdm_prefix_prefix_previous ff_column_mdm_prefix_prefix_previous ff_value_mdm_prefix_prefix_previous. (ff_index_mdm_prefix_prefix_previous = (q) * ff_row_mdm_prefix_prefix_previous + ff_column_mdm_prefix_prefix_previous /\ ((exists ff_gap_mdm_lt_prefix_previous_column_bound. ff_gap_mdm_lt_prefix_previous_column_bound + S (ff_column_mdm_prefix_prefix_previous) = (q)) /\ ((exists ff_row_mdm_cell_prefix_previous_cell ff_column_mdm_cell_prefix_previous_cell. (((((exists ff_gap_mdm_lt_prefix_previous_cell_row_before. ff_gap_mdm_lt_prefix_previous_cell_row_before + S (ff_row_mdm_prefix_prefix_previous) = (r)) /\ ff_row_mdm_cell_prefix_previous_cell = ff_row_mdm_prefix_prefix_previous) \/ ((exists ff_gap_mdm_le_prefix_previous_cell_row_after. ff_gap_mdm_le_prefix_previous_cell_row_after + (r) = (ff_row_mdm_prefix_prefix_previous)) /\ ff_row_mdm_cell_prefix_previous_cell = S ff_row_mdm_prefix_prefix_previous))) /\ (((((exists ff_gap_mdm_lt_prefix_previous_cell_column_before. ff_gap_mdm_lt_prefix_previous_cell_column_before + S (ff_column_mdm_prefix_prefix_previous) = (d)) /\ ff_column_mdm_cell_prefix_previous_cell = ff_column_mdm_prefix_prefix_previous) \/ ((exists ff_gap_mdm_le_prefix_previous_cell_column_after. ff_gap_mdm_le_prefix_previous_cell_column_after + (d) = (ff_column_mdm_prefix_prefix_previous)) /\ ff_column_mdm_cell_prefix_previous_cell = S ff_column_mdm_prefix_prefix_previous))) /\ (((exists ff_h_mdm_prefix_previous_cell_source. ff_h_mdm_prefix_previous_cell_source + S (ff_value_mdm_prefix_prefix_previous) = S ((S ((ff_row_mdm_cell_prefix_previous_cell) * (w) + (ff_column_mdm_cell_prefix_previous_cell))) * c)) /\ exists ff_q_mdm_prefix_previous_cell_source. b = ff_q_mdm_prefix_previous_cell_source * S ((S ((ff_row_mdm_cell_prefix_previous_cell) * (w) + (ff_column_mdm_cell_prefix_previous_cell))) * c) + (ff_value_mdm_prefix_prefix_previous)))))) /\ (((exists ff_h_mdm_prefix_previous_target. ff_h_mdm_prefix_previous_target + S (ff_value_mdm_prefix_prefix_previous) = S ((S (ff_index_mdm_prefix_prefix_previous)) * v)) /\ exists ff_q_mdm_prefix_previous_target. u = ff_q_mdm_prefix_previous_target * S ((S (ff_index_mdm_prefix_prefix_previous)) * v) + (ff_value_mdm_prefix_prefix_previous))))))) - 0025
apply IH - 0026
exact hq - 0027
cases hprevious - 0028
cases hprevious_witness - 0029
have hpoint : exists ff_row_mdm_point_exists_have_point ff_column_mdm_point_exists_have_point ff_value_mdm_point_exists_have_point. (l = (q) * ff_row_mdm_point_exists_have_point + ff_column_mdm_point_exists_have_point /\ ((exists ff_gap_mdm_lt_exists_have_point_column_bound. ff_gap_mdm_lt_exists_have_point_column_bound + S (ff_column_mdm_point_exists_have_point) = (q)) /\ (exists ff_row_mdm_cell_exists_have_point_cell ff_column_mdm_cell_exists_have_point_cell. (((((exists ff_gap_mdm_lt_exists_have_point_cell_row_before. ff_gap_mdm_lt_exists_have_point_cell_row_before + S (ff_row_mdm_point_exists_have_point) = (r)) /\ ff_row_mdm_cell_exists_have_point_cell = ff_row_mdm_point_exists_have_point) \/ ((exists ff_gap_mdm_le_exists_have_point_cell_row_after. ff_gap_mdm_le_exists_have_point_cell_row_after + (r) = (ff_row_mdm_point_exists_have_point)) /\ ff_row_mdm_cell_exists_have_point_cell = S ff_row_mdm_point_exists_have_point))) /\ (((((exists ff_gap_mdm_lt_exists_have_point_cell_column_before. ff_gap_mdm_lt_exists_have_point_cell_column_before + S (ff_column_mdm_point_exists_have_point) = (d)) /\ ff_column_mdm_cell_exists_have_point_cell = ff_column_mdm_point_exists_have_point) \/ ((exists ff_gap_mdm_le_exists_have_point_cell_column_after. ff_gap_mdm_le_exists_have_point_cell_column_after + (d) = (ff_column_mdm_point_exists_have_point)) /\ ff_column_mdm_cell_exists_have_point_cell = S ff_column_mdm_point_exists_have_point))) /\ (((exists ff_h_mdm_exists_have_point_cell_source. ff_h_mdm_exists_have_point_cell_source + S (ff_value_mdm_point_exists_have_point) = S ((S ((ff_row_mdm_cell_exists_have_point_cell) * (w) + (ff_column_mdm_cell_exists_have_point_cell))) * c)) /\ exists ff_q_mdm_exists_have_point_cell_source. b = ff_q_mdm_exists_have_point_cell_source * S ((S ((ff_row_mdm_cell_exists_have_point_cell) * (w) + (ff_column_mdm_cell_exists_have_point_cell))) * c) + (ff_value_mdm_point_exists_have_point)))))))) - 0030
specialize beta_matrix_minor_point_exists b - 0031
specialize beta_matrix_minor_point_exists c - 0032
specialize beta_matrix_minor_point_exists w - 0033
specialize beta_matrix_minor_point_exists r - 0034
specialize beta_matrix_minor_point_exists d - 0035
specialize beta_matrix_minor_point_exists q - 0036
specialize beta_matrix_minor_point_exists l - 0037
apply beta_matrix_minor_point_exists - 0038
exact hq - 0039
specialize beta_matrix_minor_prefix_extend b - 0040
specialize beta_matrix_minor_prefix_extend c - 0041
specialize beta_matrix_minor_prefix_extend w - 0042
specialize beta_matrix_minor_prefix_extend r - 0043
specialize beta_matrix_minor_prefix_extend d - 0044
specialize beta_matrix_minor_prefix_extend x - 0045
specialize beta_matrix_minor_prefix_extend x1 - 0046
specialize beta_matrix_minor_prefix_extend q - 0047
specialize beta_matrix_minor_prefix_extend l - 0048
apply beta_matrix_minor_prefix_extend - 0049
exact hprevious_witness_witness - 0050
exact hpoint