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
∀ ab. ∀ ac. ∀ db. ∀ dc. ∀ eb. ∀ ec. ∀ fb. ∀ fc. ∀ l. ∃ p. ∃ n. SignedAlternatingCofactorFold(ab,ac,db,dc,eb,ec,fb,fc,l,p,n)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 47 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 (1)
01Fix variables and assumptionsL1–9
02Establish hprefixL10–19
Establish this local claim before using it. It is not an additional assumption.
- L10
have hprefix : ∃ ub. ∃ uc. ∃ vb. ∃ vc. SignedAlternatingProductPrefix(ab,ac,db,dc,eb,ec,fb,fc,ub,uc,vb,vc,l)Definitions: SignedAlternatingProductPrefixOriginal native command in the exact edition - L11
specialize signed_alternating_product_prefix_exists ab - L12
specialize signed_alternating_product_prefix_exists ac - L13
specialize signed_alternating_product_prefix_exists db - L14
specialize signed_alternating_product_prefix_exists dc - L15
specialize signed_alternating_product_prefix_exists eb - L16
specialize signed_alternating_product_prefix_exists ec - L17
specialize signed_alternating_product_prefix_exists fb - L18
specialize signed_alternating_product_prefix_exists fc - L19
specialize signed_alternating_product_prefix_exists l
03Use earlier factsL20–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L20
exact signed_alternating_product_prefix_exists
04Separate the logical casesL21–24
05Establish hpositiveL25–29
06Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
cases hpositive
07Establish hnegativeL31–35
08Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
cases hnegative
09Construct an explicit witnessL37–42
10Separate the logical casesL43–43
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L43
split
11Use earlier factsL44–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L44
exact hprefix_witness_witness_witness_witness
12Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
split
Original defined command ledger · 47 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 l - 0010
have hprefix : exists ub uc vb vc. (forall ff_index_mce_alternating_existence. (exists ff_gap_mce_existence_index. ff_gap_mce_existence_index + S (ff_index_mce_alternating_existence) = (l)) -> exists ff_ap_mce_alternating_existence ff_an_mce_alternating_existence ff_bp_mce_alternating_existence ff_bn_mce_alternating_existence ff_p_mce_alternating_existence ff_n_mce_alternating_existence. ((((exists ff_h_mce_existence_ap. ff_h_mce_existence_ap + S (ff_ap_mce_alternating_existence) = S ((S (ff_index_mce_alternating_existence)) * ac)) /\ exists ff_q_mce_existence_ap. ab = ff_q_mce_existence_ap * S ((S (ff_index_mce_alternating_existence)) * ac) + (ff_ap_mce_alternating_existence))) /\ ((((exists ff_h_mce_existence_an. ff_h_mce_existence_an + S (ff_an_mce_alternating_existence) = S ((S (ff_index_mce_alternating_existence)) * dc)) /\ exists ff_q_mce_existence_an. db = ff_q_mce_existence_an * S ((S (ff_index_mce_alternating_existence)) * dc) + (ff_an_mce_alternating_existence))) /\ ((((exists ff_h_mce_existence_bp. ff_h_mce_existence_bp + S (ff_bp_mce_alternating_existence) = S ((S (ff_index_mce_alternating_existence)) * ec)) /\ exists ff_q_mce_existence_bp. eb = ff_q_mce_existence_bp * S ((S (ff_index_mce_alternating_existence)) * ec) + (ff_bp_mce_alternating_existence))) /\ ((((exists ff_h_mce_existence_bn. ff_h_mce_existence_bn + S (ff_bn_mce_alternating_existence) = S ((S (ff_index_mce_alternating_existence)) * fc)) /\ exists ff_q_mce_existence_bn. fb = ff_q_mce_existence_bn * S ((S (ff_index_mce_alternating_existence)) * fc) + (ff_bn_mce_alternating_existence))) /\ ((((exists ff_h_mce_existence_positive. ff_h_mce_existence_positive + S (ff_p_mce_alternating_existence) = S ((S (ff_index_mce_alternating_existence)) * uc)) /\ exists ff_q_mce_existence_positive. ub = ff_q_mce_existence_positive * S ((S (ff_index_mce_alternating_existence)) * uc) + (ff_p_mce_alternating_existence))) /\ ((((exists ff_h_mce_existence_negative. ff_h_mce_existence_negative + S (ff_n_mce_alternating_existence) = S ((S (ff_index_mce_alternating_existence)) * vc)) /\ exists ff_q_mce_existence_negative. vb = ff_q_mce_existence_negative * S ((S (ff_index_mce_alternating_existence)) * vc) + (ff_n_mce_alternating_existence))) /\ (((exists ff_even_mce_term_existence_term. ff_index_mce_alternating_existence = 2 * ff_even_mce_term_existence_term) /\ (ff_p_mce_alternating_existence = (ff_ap_mce_alternating_existence) * (ff_bp_mce_alternating_existence) + (ff_an_mce_alternating_existence) * (ff_bn_mce_alternating_existence) /\ ff_n_mce_alternating_existence = (ff_ap_mce_alternating_existence) * (ff_bn_mce_alternating_existence) + (ff_an_mce_alternating_existence) * (ff_bp_mce_alternating_existence))) \/ ((exists ff_odd_mce_term_existence_term. ff_index_mce_alternating_existence = 2 * ff_odd_mce_term_existence_term + 1) /\ (ff_p_mce_alternating_existence = (ff_ap_mce_alternating_existence) * (ff_bn_mce_alternating_existence) + (ff_an_mce_alternating_existence) * (ff_bp_mce_alternating_existence) /\ ff_n_mce_alternating_existence = (ff_ap_mce_alternating_existence) * (ff_bp_mce_alternating_existence) + (ff_an_mce_alternating_existence) * (ff_bn_mce_alternating_existence))))))))))) - 0011
specialize signed_alternating_product_prefix_exists ab - 0012
specialize signed_alternating_product_prefix_exists ac - 0013
specialize signed_alternating_product_prefix_exists db - 0014
specialize signed_alternating_product_prefix_exists dc - 0015
specialize signed_alternating_product_prefix_exists eb - 0016
specialize signed_alternating_product_prefix_exists ec - 0017
specialize signed_alternating_product_prefix_exists fb - 0018
specialize signed_alternating_product_prefix_exists fc - 0019
specialize signed_alternating_product_prefix_exists l - 0020
exact signed_alternating_product_prefix_exists - 0021
cases hprefix - 0022
cases hprefix_witness - 0023
cases hprefix_witness_witness - 0024
cases hprefix_witness_witness_witness - 0025
have hpositive : exists p. (exists ff_u_mce_fold_have_positive ff_v_mce_fold_have_positive. ((((exists ff_h_mce_fold_have_positive_start. ff_h_mce_fold_have_positive_start + S (0) = S ((S (0)) * ff_v_mce_fold_have_positive)) /\ exists ff_q_mce_fold_have_positive_start. ff_u_mce_fold_have_positive = ff_q_mce_fold_have_positive_start * S ((S (0)) * ff_v_mce_fold_have_positive) + (0))) /\ ((((exists ff_h_mce_fold_have_positive_terminal. ff_h_mce_fold_have_positive_terminal + S (p) = S ((S (l)) * ff_v_mce_fold_have_positive)) /\ exists ff_q_mce_fold_have_positive_terminal. ff_u_mce_fold_have_positive = ff_q_mce_fold_have_positive_terminal * S ((S (l)) * ff_v_mce_fold_have_positive) + (p))) /\ forall ff_i_mce_fold_have_positive. (exists ff_lt_mce_fold_have_positive_bound. ff_lt_mce_fold_have_positive_bound + S ff_i_mce_fold_have_positive = l) -> exists ff_a_mce_fold_have_positive ff_r_mce_fold_have_positive ff_s_mce_fold_have_positive. ((((exists ff_h_mce_fold_have_positive_summand. ff_h_mce_fold_have_positive_summand + S (ff_a_mce_fold_have_positive) = S ((S (ff_i_mce_fold_have_positive)) * x1)) /\ exists ff_q_mce_fold_have_positive_summand. x = ff_q_mce_fold_have_positive_summand * S ((S (ff_i_mce_fold_have_positive)) * x1) + (ff_a_mce_fold_have_positive))) /\ ((((exists ff_h_mce_fold_have_positive_partial. ff_h_mce_fold_have_positive_partial + S (ff_r_mce_fold_have_positive) = S ((S (ff_i_mce_fold_have_positive)) * ff_v_mce_fold_have_positive)) /\ exists ff_q_mce_fold_have_positive_partial. ff_u_mce_fold_have_positive = ff_q_mce_fold_have_positive_partial * S ((S (ff_i_mce_fold_have_positive)) * ff_v_mce_fold_have_positive) + (ff_r_mce_fold_have_positive))) /\ ((((exists ff_h_mce_fold_have_positive_successor. ff_h_mce_fold_have_positive_successor + S (ff_s_mce_fold_have_positive) = S ((S (S ff_i_mce_fold_have_positive)) * ff_v_mce_fold_have_positive)) /\ exists ff_q_mce_fold_have_positive_successor. ff_u_mce_fold_have_positive = ff_q_mce_fold_have_positive_successor * S ((S (S ff_i_mce_fold_have_positive)) * ff_v_mce_fold_have_positive) + (ff_s_mce_fold_have_positive))) /\ ff_s_mce_fold_have_positive = ff_r_mce_fold_have_positive + ff_a_mce_fold_have_positive)))))) - 0026
specialize beta_sum_exists x - 0027
specialize beta_sum_exists x1 - 0028
specialize beta_sum_exists l - 0029
exact beta_sum_exists - 0030
cases hpositive - 0031
have hnegative : exists n. (exists ff_u_mce_fold_have_negative ff_v_mce_fold_have_negative. ((((exists ff_h_mce_fold_have_negative_start. ff_h_mce_fold_have_negative_start + S (0) = S ((S (0)) * ff_v_mce_fold_have_negative)) /\ exists ff_q_mce_fold_have_negative_start. ff_u_mce_fold_have_negative = ff_q_mce_fold_have_negative_start * S ((S (0)) * ff_v_mce_fold_have_negative) + (0))) /\ ((((exists ff_h_mce_fold_have_negative_terminal. ff_h_mce_fold_have_negative_terminal + S (n) = S ((S (l)) * ff_v_mce_fold_have_negative)) /\ exists ff_q_mce_fold_have_negative_terminal. ff_u_mce_fold_have_negative = ff_q_mce_fold_have_negative_terminal * S ((S (l)) * ff_v_mce_fold_have_negative) + (n))) /\ forall ff_i_mce_fold_have_negative. (exists ff_lt_mce_fold_have_negative_bound. ff_lt_mce_fold_have_negative_bound + S ff_i_mce_fold_have_negative = l) -> exists ff_a_mce_fold_have_negative ff_r_mce_fold_have_negative ff_s_mce_fold_have_negative. ((((exists ff_h_mce_fold_have_negative_summand. ff_h_mce_fold_have_negative_summand + S (ff_a_mce_fold_have_negative) = S ((S (ff_i_mce_fold_have_negative)) * x3)) /\ exists ff_q_mce_fold_have_negative_summand. x2 = ff_q_mce_fold_have_negative_summand * S ((S (ff_i_mce_fold_have_negative)) * x3) + (ff_a_mce_fold_have_negative))) /\ ((((exists ff_h_mce_fold_have_negative_partial. ff_h_mce_fold_have_negative_partial + S (ff_r_mce_fold_have_negative) = S ((S (ff_i_mce_fold_have_negative)) * ff_v_mce_fold_have_negative)) /\ exists ff_q_mce_fold_have_negative_partial. ff_u_mce_fold_have_negative = ff_q_mce_fold_have_negative_partial * S ((S (ff_i_mce_fold_have_negative)) * ff_v_mce_fold_have_negative) + (ff_r_mce_fold_have_negative))) /\ ((((exists ff_h_mce_fold_have_negative_successor. ff_h_mce_fold_have_negative_successor + S (ff_s_mce_fold_have_negative) = S ((S (S ff_i_mce_fold_have_negative)) * ff_v_mce_fold_have_negative)) /\ exists ff_q_mce_fold_have_negative_successor. ff_u_mce_fold_have_negative = ff_q_mce_fold_have_negative_successor * S ((S (S ff_i_mce_fold_have_negative)) * ff_v_mce_fold_have_negative) + (ff_s_mce_fold_have_negative))) /\ ff_s_mce_fold_have_negative = ff_r_mce_fold_have_negative + ff_a_mce_fold_have_negative)))))) - 0032
specialize beta_sum_exists x2 - 0033
specialize beta_sum_exists x3 - 0034
specialize beta_sum_exists l - 0035
exact beta_sum_exists - 0036
cases hnegative - 0037
exists x4 - 0038
exists x5 - 0039
exists x - 0040
exists x1 - 0041
exists x2 - 0042
exists x3 - 0043
split - 0044
exact hprefix_witness_witness_witness_witness - 0045
split - 0046
exact hpositive_witness - 0047
exact hnegative_witness