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 genuine signed first-row minors and unique alternating folds, with supplied cofactor values. T13 is now closed in the separate Alpha-v27 integer-linear-algebra branch with actual arbitrary determinant data, rank, and integer column spans; lattice index and normal forms are not claimed. Full T13 proof · Alpha v27
Exact theorem in conservative defined notation
∀ pb. ∀ pc. ∀ nb. ∀ nc. ∀ q. ∃ ab. ∃ ac. ∃ db. ∃ dc. MatrixAffineSlice(pb,pc,0,1,ab,ac,S q) ∧ MatrixAffineSlice(nb,nc,0,1,db,dc,S q)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 30 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.
01Fix variables and assumptionsL1–5
02Establish hpositiveL6–12
Establish this local claim before using it. It is not an additional assumption.
- L6
have hpositive : ∃ ab. ∃ ac. MatrixAffineSlice(pb,pc,0,1,ab,ac,S q)Definitions: MatrixAffineSliceOriginal native command in the exact edition - L7
specialize beta_affine_matrix_slice_exists pb - L8
specialize beta_affine_matrix_slice_exists pc - L9
specialize beta_affine_matrix_slice_exists 0 - L10
specialize beta_affine_matrix_slice_exists 1 - L11
specialize beta_affine_matrix_slice_exists (S q) - L12
exact beta_affine_matrix_slice_exists
03Separate the logical casesL13–14
04Establish hnegativeL15–21
Establish this local claim before using it. It is not an additional assumption.
- L15
have hnegative : ∃ db. ∃ dc. MatrixAffineSlice(nb,nc,0,1,db,dc,S q)Definitions: MatrixAffineSliceOriginal native command in the exact edition - L16
specialize beta_affine_matrix_slice_exists nb - L17
specialize beta_affine_matrix_slice_exists nc - L18
specialize beta_affine_matrix_slice_exists 0 - L19
specialize beta_affine_matrix_slice_exists 1 - L20
specialize beta_affine_matrix_slice_exists (S q) - L21
exact beta_affine_matrix_slice_exists
05Separate the logical casesL22–23
06Construct an explicit witnessL24–27
07Separate the logical casesL28–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L28
split
Original defined command ledger · 30 lines
- 0001
intro pb - 0002
intro pc - 0003
intro nb - 0004
intro nc - 0005
intro q - 0006
have hpositive : exists ab ac. (forall ff_index_mcp_mce_have_row_positive ff_source_mcp_mce_have_row_positive ff_target_mcp_mce_have_row_positive. (exists mcp_gap_mce_have_row_positive_bound. mcp_gap_mce_have_row_positive_bound + S (ff_index_mcp_mce_have_row_positive) = (S q)) -> (((exists fs_h_mcp_mce_have_row_positive_source. fs_h_mcp_mce_have_row_positive_source + S (ff_source_mcp_mce_have_row_positive) = S ((S ((0) + (1) * ff_index_mcp_mce_have_row_positive)) * pc)) /\ exists fs_q_mcp_mce_have_row_positive_source. pb = fs_q_mcp_mce_have_row_positive_source * S ((S ((0) + (1) * ff_index_mcp_mce_have_row_positive)) * pc) + (ff_source_mcp_mce_have_row_positive))) -> (((exists fs_h_mcp_mce_have_row_positive_target. fs_h_mcp_mce_have_row_positive_target + S (ff_target_mcp_mce_have_row_positive) = S ((S (ff_index_mcp_mce_have_row_positive)) * ac)) /\ exists fs_q_mcp_mce_have_row_positive_target. ab = fs_q_mcp_mce_have_row_positive_target * S ((S (ff_index_mcp_mce_have_row_positive)) * ac) + (ff_target_mcp_mce_have_row_positive))) -> ff_target_mcp_mce_have_row_positive = ff_source_mcp_mce_have_row_positive) - 0007
specialize beta_affine_matrix_slice_exists pb - 0008
specialize beta_affine_matrix_slice_exists pc - 0009
specialize beta_affine_matrix_slice_exists 0 - 0010
specialize beta_affine_matrix_slice_exists 1 - 0011
specialize beta_affine_matrix_slice_exists (S q) - 0012
exact beta_affine_matrix_slice_exists - 0013
cases hpositive - 0014
cases hpositive_witness - 0015
have hnegative : exists db dc. (forall ff_index_mcp_mce_have_row_negative ff_source_mcp_mce_have_row_negative ff_target_mcp_mce_have_row_negative. (exists mcp_gap_mce_have_row_negative_bound. mcp_gap_mce_have_row_negative_bound + S (ff_index_mcp_mce_have_row_negative) = (S q)) -> (((exists fs_h_mcp_mce_have_row_negative_source. fs_h_mcp_mce_have_row_negative_source + S (ff_source_mcp_mce_have_row_negative) = S ((S ((0) + (1) * ff_index_mcp_mce_have_row_negative)) * nc)) /\ exists fs_q_mcp_mce_have_row_negative_source. nb = fs_q_mcp_mce_have_row_negative_source * S ((S ((0) + (1) * ff_index_mcp_mce_have_row_negative)) * nc) + (ff_source_mcp_mce_have_row_negative))) -> (((exists fs_h_mcp_mce_have_row_negative_target. fs_h_mcp_mce_have_row_negative_target + S (ff_target_mcp_mce_have_row_negative) = S ((S (ff_index_mcp_mce_have_row_negative)) * dc)) /\ exists fs_q_mcp_mce_have_row_negative_target. db = fs_q_mcp_mce_have_row_negative_target * S ((S (ff_index_mcp_mce_have_row_negative)) * dc) + (ff_target_mcp_mce_have_row_negative))) -> ff_target_mcp_mce_have_row_negative = ff_source_mcp_mce_have_row_negative) - 0016
specialize beta_affine_matrix_slice_exists nb - 0017
specialize beta_affine_matrix_slice_exists nc - 0018
specialize beta_affine_matrix_slice_exists 0 - 0019
specialize beta_affine_matrix_slice_exists 1 - 0020
specialize beta_affine_matrix_slice_exists (S q) - 0021
exact beta_affine_matrix_slice_exists - 0022
cases hnegative - 0023
cases hnegative_witness - 0024
exists x - 0025
exists x1 - 0026
exists x2 - 0027
exists x3 - 0028
split - 0029
exact hpositive_witness_witness - 0030
exact hnegative_witness_witness