DL0022

matrix_recursive_alternating_fold_extensional

Every finite signed alternating cofactor sum is functional across pointwise-equal input codes, not just identical beta parameters.

Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable

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

∀ pb. ∀ pc. ∀ nb. ∀ nc. ∀ eb. ∀ ec. ∀ fb. ∀ fc. ∀ qb. ∀ qc. ∀ rb. ∀ rc. ∀ ub. ∀ uc. ∀ vb. ∀ vc. ∀ l. ∀ p. ∀ n. ∀ r. ∀ s. (∀ x. ∀ y. Lt(x,l)BetaAt(pb,pc,x,y)BetaAt(qb,qc,x,y)) → (∀ x. ∀ y. Lt(x,l)BetaAt(nb,nc,x,y)BetaAt(rb,rc,x,y)) → (∀ x. ∀ y. Lt(x,l)BetaAt(eb,ec,x,y)BetaAt(ub,uc,x,y)) → (∀ x. ∀ y. Lt(x,l)BetaAt(fb,fc,x,y)BetaAt(vb,vc,x,y)) → SignedAlternatingCofactorFold(pb,pc,nb,nc,eb,ec,fb,fc,l,p,n)SignedAlternatingCofactorFold(qb,qc,rb,rc,ub,uc,vb,vc,l,r,s) → p = r ∧ n = s

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

matrix_recursive_alternating_fold_transportsigned_alternating_cofactor_fold_functional · checked external prerequisite
Original expanded first-order statement
forall pb pc nb nc eb ec fb fc qb qc rb rc ub uc vb vc l p n r s. (forall mdr_i_fold_input_0 mdr_a_fold_input_0. (exists mdr_gap_fold_input_0b. mdr_gap_fold_input_0b + S (mdr_i_fold_input_0) = (l)) -> (((exists ff_h_mdr_fold_input_0o. ff_h_mdr_fold_input_0o + S (mdr_a_fold_input_0) = S ((S (mdr_i_fold_input_0)) * pc)) /\ exists ff_q_mdr_fold_input_0o. pb = ff_q_mdr_fold_input_0o * S ((S (mdr_i_fold_input_0)) * pc) + (mdr_a_fold_input_0))) -> (((exists ff_h_mdr_fold_input_0n. ff_h_mdr_fold_input_0n + S (mdr_a_fold_input_0) = S ((S (mdr_i_fold_input_0)) * qc)) /\ exists ff_q_mdr_fold_input_0n. qb = ff_q_mdr_fold_input_0n * S ((S (mdr_i_fold_input_0)) * qc) + (mdr_a_fold_input_0)))) -> (forall mdr_i_fold_input_1 mdr_a_fold_input_1. (exists mdr_gap_fold_input_1b. mdr_gap_fold_input_1b + S (mdr_i_fold_input_1) = (l)) -> (((exists ff_h_mdr_fold_input_1o. ff_h_mdr_fold_input_1o + S (mdr_a_fold_input_1) = S ((S (mdr_i_fold_input_1)) * nc)) /\ exists ff_q_mdr_fold_input_1o. nb = ff_q_mdr_fold_input_1o * S ((S (mdr_i_fold_input_1)) * nc) + (mdr_a_fold_input_1))) -> (((exists ff_h_mdr_fold_input_1n. ff_h_mdr_fold_input_1n + S (mdr_a_fold_input_1) = S ((S (mdr_i_fold_input_1)) * rc)) /\ exists ff_q_mdr_fold_input_1n. rb = ff_q_mdr_fold_input_1n * S ((S (mdr_i_fold_input_1)) * rc) + (mdr_a_fold_input_1)))) -> (forall mdr_i_fold_input_2 mdr_a_fold_input_2. (exists mdr_gap_fold_input_2b. mdr_gap_fold_input_2b + S (mdr_i_fold_input_2) = (l)) -> (((exists ff_h_mdr_fold_input_2o. ff_h_mdr_fold_input_2o + S (mdr_a_fold_input_2) = S ((S (mdr_i_fold_input_2)) * ec)) /\ exists ff_q_mdr_fold_input_2o. eb = ff_q_mdr_fold_input_2o * S ((S (mdr_i_fold_input_2)) * ec) + (mdr_a_fold_input_2))) -> (((exists ff_h_mdr_fold_input_2n. ff_h_mdr_fold_input_2n + S (mdr_a_fold_input_2) = S ((S (mdr_i_fold_input_2)) * uc)) /\ exists ff_q_mdr_fold_input_2n. ub = ff_q_mdr_fold_input_2n * S ((S (mdr_i_fold_input_2)) * uc) + (mdr_a_fold_input_2)))) -> (forall mdr_i_fold_input_3 mdr_a_fold_input_3. (exists mdr_gap_fold_input_3b. mdr_gap_fold_input_3b + S (mdr_i_fold_input_3) = (l)) -> (((exists ff_h_mdr_fold_input_3o. ff_h_mdr_fold_input_3o + S (mdr_a_fold_input_3) = S ((S (mdr_i_fold_input_3)) * fc)) /\ exists ff_q_mdr_fold_input_3o. fb = ff_q_mdr_fold_input_3o * S ((S (mdr_i_fold_input_3)) * fc) + (mdr_a_fold_input_3))) -> (((exists ff_h_mdr_fold_input_3n. ff_h_mdr_fold_input_3n + S (mdr_a_fold_input_3) = S ((S (mdr_i_fold_input_3)) * vc)) /\ exists ff_q_mdr_fold_input_3n. vb = ff_q_mdr_fold_input_3n * S ((S (mdr_i_fold_input_3)) * vc) + (mdr_a_fold_input_3)))) -> (exists ff_ub_mce_fold_mdre_fold_first ff_uc_mce_fold_mdre_fold_first ff_vb_mce_fold_mdre_fold_first ff_vc_mce_fold_mdre_fold_first. ((forall ff_index_mce_alternating_mdre_fold_first_prefix. (exists ff_gap_mce_mdre_fold_first_prefix_index. ff_gap_mce_mdre_fold_first_prefix_index + S (ff_index_mce_alternating_mdre_fold_first_prefix) = (l)) -> exists ff_ap_mce_alternating_mdre_fold_first_prefix ff_an_mce_alternating_mdre_fold_first_prefix ff_bp_mce_alternating_mdre_fold_first_prefix ff_bn_mce_alternating_mdre_fold_first_prefix ff_p_mce_alternating_mdre_fold_first_prefix ff_n_mce_alternating_mdre_fold_first_prefix. ((((exists ff_h_mce_mdre_fold_first_prefix_ap. ff_h_mce_mdre_fold_first_prefix_ap + S (ff_ap_mce_alternating_mdre_fold_first_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_first_prefix)) * pc)) /\ exists ff_q_mce_mdre_fold_first_prefix_ap. pb = ff_q_mce_mdre_fold_first_prefix_ap * S ((S (ff_index_mce_alternating_mdre_fold_first_prefix)) * pc) + (ff_ap_mce_alternating_mdre_fold_first_prefix))) /\ ((((exists ff_h_mce_mdre_fold_first_prefix_an. ff_h_mce_mdre_fold_first_prefix_an + S (ff_an_mce_alternating_mdre_fold_first_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_first_prefix)) * nc)) /\ exists ff_q_mce_mdre_fold_first_prefix_an. nb = ff_q_mce_mdre_fold_first_prefix_an * S ((S (ff_index_mce_alternating_mdre_fold_first_prefix)) * nc) + (ff_an_mce_alternating_mdre_fold_first_prefix))) /\ ((((exists ff_h_mce_mdre_fold_first_prefix_bp. ff_h_mce_mdre_fold_first_prefix_bp + S (ff_bp_mce_alternating_mdre_fold_first_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_first_prefix)) * ec)) /\ exists ff_q_mce_mdre_fold_first_prefix_bp. eb = ff_q_mce_mdre_fold_first_prefix_bp * S ((S (ff_index_mce_alternating_mdre_fold_first_prefix)) * ec) + (ff_bp_mce_alternating_mdre_fold_first_prefix))) /\ ((((exists ff_h_mce_mdre_fold_first_prefix_bn. ff_h_mce_mdre_fold_first_prefix_bn + S (ff_bn_mce_alternating_mdre_fold_first_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_first_prefix)) * fc)) /\ exists ff_q_mce_mdre_fold_first_prefix_bn. fb = ff_q_mce_mdre_fold_first_prefix_bn * S ((S (ff_index_mce_alternating_mdre_fold_first_prefix)) * fc) + (ff_bn_mce_alternating_mdre_fold_first_prefix))) /\ ((((exists ff_h_mce_mdre_fold_first_prefix_positive. ff_h_mce_mdre_fold_first_prefix_positive + S (ff_p_mce_alternating_mdre_fold_first_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_first_prefix)) * ff_uc_mce_fold_mdre_fold_first)) /\ exists ff_q_mce_mdre_fold_first_prefix_positive. ff_ub_mce_fold_mdre_fold_first = ff_q_mce_mdre_fold_first_prefix_positive * S ((S (ff_index_mce_alternating_mdre_fold_first_prefix)) * ff_uc_mce_fold_mdre_fold_first) + (ff_p_mce_alternating_mdre_fold_first_prefix))) /\ ((((exists ff_h_mce_mdre_fold_first_prefix_negative. ff_h_mce_mdre_fold_first_prefix_negative + S (ff_n_mce_alternating_mdre_fold_first_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_first_prefix)) * ff_vc_mce_fold_mdre_fold_first)) /\ exists ff_q_mce_mdre_fold_first_prefix_negative. ff_vb_mce_fold_mdre_fold_first = ff_q_mce_mdre_fold_first_prefix_negative * S ((S (ff_index_mce_alternating_mdre_fold_first_prefix)) * ff_vc_mce_fold_mdre_fold_first) + (ff_n_mce_alternating_mdre_fold_first_prefix))) /\ (((exists ff_even_mce_term_mdre_fold_first_prefix_term. ff_index_mce_alternating_mdre_fold_first_prefix = 2 * ff_even_mce_term_mdre_fold_first_prefix_term) /\ (ff_p_mce_alternating_mdre_fold_first_prefix = (ff_ap_mce_alternating_mdre_fold_first_prefix) * (ff_bp_mce_alternating_mdre_fold_first_prefix) + (ff_an_mce_alternating_mdre_fold_first_prefix) * (ff_bn_mce_alternating_mdre_fold_first_prefix) /\ ff_n_mce_alternating_mdre_fold_first_prefix = (ff_ap_mce_alternating_mdre_fold_first_prefix) * (ff_bn_mce_alternating_mdre_fold_first_prefix) + (ff_an_mce_alternating_mdre_fold_first_prefix) * (ff_bp_mce_alternating_mdre_fold_first_prefix))) \/ ((exists ff_odd_mce_term_mdre_fold_first_prefix_term. ff_index_mce_alternating_mdre_fold_first_prefix = 2 * ff_odd_mce_term_mdre_fold_first_prefix_term + 1) /\ (ff_p_mce_alternating_mdre_fold_first_prefix = (ff_ap_mce_alternating_mdre_fold_first_prefix) * (ff_bn_mce_alternating_mdre_fold_first_prefix) + (ff_an_mce_alternating_mdre_fold_first_prefix) * (ff_bp_mce_alternating_mdre_fold_first_prefix) /\ ff_n_mce_alternating_mdre_fold_first_prefix = (ff_ap_mce_alternating_mdre_fold_first_prefix) * (ff_bp_mce_alternating_mdre_fold_first_prefix) + (ff_an_mce_alternating_mdre_fold_first_prefix) * (ff_bn_mce_alternating_mdre_fold_first_prefix))))))))))) /\ ((exists ff_u_mce_mdre_fold_first_positive ff_v_mce_mdre_fold_first_positive. ((((exists ff_h_mce_mdre_fold_first_positive_start. ff_h_mce_mdre_fold_first_positive_start + S (0) = S ((S (0)) * ff_v_mce_mdre_fold_first_positive)) /\ exists ff_q_mce_mdre_fold_first_positive_start. ff_u_mce_mdre_fold_first_positive = ff_q_mce_mdre_fold_first_positive_start * S ((S (0)) * ff_v_mce_mdre_fold_first_positive) + (0))) /\ ((((exists ff_h_mce_mdre_fold_first_positive_terminal. ff_h_mce_mdre_fold_first_positive_terminal + S (p) = S ((S (l)) * ff_v_mce_mdre_fold_first_positive)) /\ exists ff_q_mce_mdre_fold_first_positive_terminal. ff_u_mce_mdre_fold_first_positive = ff_q_mce_mdre_fold_first_positive_terminal * S ((S (l)) * ff_v_mce_mdre_fold_first_positive) + (p))) /\ forall ff_i_mce_mdre_fold_first_positive. (exists ff_lt_mce_mdre_fold_first_positive_bound. ff_lt_mce_mdre_fold_first_positive_bound + S ff_i_mce_mdre_fold_first_positive = l) -> exists ff_a_mce_mdre_fold_first_positive ff_r_mce_mdre_fold_first_positive ff_s_mce_mdre_fold_first_positive. ((((exists ff_h_mce_mdre_fold_first_positive_summand. ff_h_mce_mdre_fold_first_positive_summand + S (ff_a_mce_mdre_fold_first_positive) = S ((S (ff_i_mce_mdre_fold_first_positive)) * ff_uc_mce_fold_mdre_fold_first)) /\ exists ff_q_mce_mdre_fold_first_positive_summand. ff_ub_mce_fold_mdre_fold_first = ff_q_mce_mdre_fold_first_positive_summand * S ((S (ff_i_mce_mdre_fold_first_positive)) * ff_uc_mce_fold_mdre_fold_first) + (ff_a_mce_mdre_fold_first_positive))) /\ ((((exists ff_h_mce_mdre_fold_first_positive_partial. ff_h_mce_mdre_fold_first_positive_partial + S (ff_r_mce_mdre_fold_first_positive) = S ((S (ff_i_mce_mdre_fold_first_positive)) * ff_v_mce_mdre_fold_first_positive)) /\ exists ff_q_mce_mdre_fold_first_positive_partial. ff_u_mce_mdre_fold_first_positive = ff_q_mce_mdre_fold_first_positive_partial * S ((S (ff_i_mce_mdre_fold_first_positive)) * ff_v_mce_mdre_fold_first_positive) + (ff_r_mce_mdre_fold_first_positive))) /\ ((((exists ff_h_mce_mdre_fold_first_positive_successor. ff_h_mce_mdre_fold_first_positive_successor + S (ff_s_mce_mdre_fold_first_positive) = S ((S (S ff_i_mce_mdre_fold_first_positive)) * ff_v_mce_mdre_fold_first_positive)) /\ exists ff_q_mce_mdre_fold_first_positive_successor. ff_u_mce_mdre_fold_first_positive = ff_q_mce_mdre_fold_first_positive_successor * S ((S (S ff_i_mce_mdre_fold_first_positive)) * ff_v_mce_mdre_fold_first_positive) + (ff_s_mce_mdre_fold_first_positive))) /\ ff_s_mce_mdre_fold_first_positive = ff_r_mce_mdre_fold_first_positive + ff_a_mce_mdre_fold_first_positive)))))) /\ (exists ff_u_mce_mdre_fold_first_negative ff_v_mce_mdre_fold_first_negative. ((((exists ff_h_mce_mdre_fold_first_negative_start. ff_h_mce_mdre_fold_first_negative_start + S (0) = S ((S (0)) * ff_v_mce_mdre_fold_first_negative)) /\ exists ff_q_mce_mdre_fold_first_negative_start. ff_u_mce_mdre_fold_first_negative = ff_q_mce_mdre_fold_first_negative_start * S ((S (0)) * ff_v_mce_mdre_fold_first_negative) + (0))) /\ ((((exists ff_h_mce_mdre_fold_first_negative_terminal. ff_h_mce_mdre_fold_first_negative_terminal + S (n) = S ((S (l)) * ff_v_mce_mdre_fold_first_negative)) /\ exists ff_q_mce_mdre_fold_first_negative_terminal. ff_u_mce_mdre_fold_first_negative = ff_q_mce_mdre_fold_first_negative_terminal * S ((S (l)) * ff_v_mce_mdre_fold_first_negative) + (n))) /\ forall ff_i_mce_mdre_fold_first_negative. (exists ff_lt_mce_mdre_fold_first_negative_bound. ff_lt_mce_mdre_fold_first_negative_bound + S ff_i_mce_mdre_fold_first_negative = l) -> exists ff_a_mce_mdre_fold_first_negative ff_r_mce_mdre_fold_first_negative ff_s_mce_mdre_fold_first_negative. ((((exists ff_h_mce_mdre_fold_first_negative_summand. ff_h_mce_mdre_fold_first_negative_summand + S (ff_a_mce_mdre_fold_first_negative) = S ((S (ff_i_mce_mdre_fold_first_negative)) * ff_vc_mce_fold_mdre_fold_first)) /\ exists ff_q_mce_mdre_fold_first_negative_summand. ff_vb_mce_fold_mdre_fold_first = ff_q_mce_mdre_fold_first_negative_summand * S ((S (ff_i_mce_mdre_fold_first_negative)) * ff_vc_mce_fold_mdre_fold_first) + (ff_a_mce_mdre_fold_first_negative))) /\ ((((exists ff_h_mce_mdre_fold_first_negative_partial. ff_h_mce_mdre_fold_first_negative_partial + S (ff_r_mce_mdre_fold_first_negative) = S ((S (ff_i_mce_mdre_fold_first_negative)) * ff_v_mce_mdre_fold_first_negative)) /\ exists ff_q_mce_mdre_fold_first_negative_partial. ff_u_mce_mdre_fold_first_negative = ff_q_mce_mdre_fold_first_negative_partial * S ((S (ff_i_mce_mdre_fold_first_negative)) * ff_v_mce_mdre_fold_first_negative) + (ff_r_mce_mdre_fold_first_negative))) /\ ((((exists ff_h_mce_mdre_fold_first_negative_successor. ff_h_mce_mdre_fold_first_negative_successor + S (ff_s_mce_mdre_fold_first_negative) = S ((S (S ff_i_mce_mdre_fold_first_negative)) * ff_v_mce_mdre_fold_first_negative)) /\ exists ff_q_mce_mdre_fold_first_negative_successor. ff_u_mce_mdre_fold_first_negative = ff_q_mce_mdre_fold_first_negative_successor * S ((S (S ff_i_mce_mdre_fold_first_negative)) * ff_v_mce_mdre_fold_first_negative) + (ff_s_mce_mdre_fold_first_negative))) /\ ff_s_mce_mdre_fold_first_negative = ff_r_mce_mdre_fold_first_negative + ff_a_mce_mdre_fold_first_negative))))))))) -> (exists ff_ub_mce_fold_mdre_fold_second ff_uc_mce_fold_mdre_fold_second ff_vb_mce_fold_mdre_fold_second ff_vc_mce_fold_mdre_fold_second. ((forall ff_index_mce_alternating_mdre_fold_second_prefix. (exists ff_gap_mce_mdre_fold_second_prefix_index. ff_gap_mce_mdre_fold_second_prefix_index + S (ff_index_mce_alternating_mdre_fold_second_prefix) = (l)) -> exists ff_ap_mce_alternating_mdre_fold_second_prefix ff_an_mce_alternating_mdre_fold_second_prefix ff_bp_mce_alternating_mdre_fold_second_prefix ff_bn_mce_alternating_mdre_fold_second_prefix ff_p_mce_alternating_mdre_fold_second_prefix ff_n_mce_alternating_mdre_fold_second_prefix. ((((exists ff_h_mce_mdre_fold_second_prefix_ap. ff_h_mce_mdre_fold_second_prefix_ap + S (ff_ap_mce_alternating_mdre_fold_second_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_second_prefix)) * qc)) /\ exists ff_q_mce_mdre_fold_second_prefix_ap. qb = ff_q_mce_mdre_fold_second_prefix_ap * S ((S (ff_index_mce_alternating_mdre_fold_second_prefix)) * qc) + (ff_ap_mce_alternating_mdre_fold_second_prefix))) /\ ((((exists ff_h_mce_mdre_fold_second_prefix_an. ff_h_mce_mdre_fold_second_prefix_an + S (ff_an_mce_alternating_mdre_fold_second_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_second_prefix)) * rc)) /\ exists ff_q_mce_mdre_fold_second_prefix_an. rb = ff_q_mce_mdre_fold_second_prefix_an * S ((S (ff_index_mce_alternating_mdre_fold_second_prefix)) * rc) + (ff_an_mce_alternating_mdre_fold_second_prefix))) /\ ((((exists ff_h_mce_mdre_fold_second_prefix_bp. ff_h_mce_mdre_fold_second_prefix_bp + S (ff_bp_mce_alternating_mdre_fold_second_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_second_prefix)) * uc)) /\ exists ff_q_mce_mdre_fold_second_prefix_bp. ub = ff_q_mce_mdre_fold_second_prefix_bp * S ((S (ff_index_mce_alternating_mdre_fold_second_prefix)) * uc) + (ff_bp_mce_alternating_mdre_fold_second_prefix))) /\ ((((exists ff_h_mce_mdre_fold_second_prefix_bn. ff_h_mce_mdre_fold_second_prefix_bn + S (ff_bn_mce_alternating_mdre_fold_second_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_second_prefix)) * vc)) /\ exists ff_q_mce_mdre_fold_second_prefix_bn. vb = ff_q_mce_mdre_fold_second_prefix_bn * S ((S (ff_index_mce_alternating_mdre_fold_second_prefix)) * vc) + (ff_bn_mce_alternating_mdre_fold_second_prefix))) /\ ((((exists ff_h_mce_mdre_fold_second_prefix_positive. ff_h_mce_mdre_fold_second_prefix_positive + S (ff_p_mce_alternating_mdre_fold_second_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_second_prefix)) * ff_uc_mce_fold_mdre_fold_second)) /\ exists ff_q_mce_mdre_fold_second_prefix_positive. ff_ub_mce_fold_mdre_fold_second = ff_q_mce_mdre_fold_second_prefix_positive * S ((S (ff_index_mce_alternating_mdre_fold_second_prefix)) * ff_uc_mce_fold_mdre_fold_second) + (ff_p_mce_alternating_mdre_fold_second_prefix))) /\ ((((exists ff_h_mce_mdre_fold_second_prefix_negative. ff_h_mce_mdre_fold_second_prefix_negative + S (ff_n_mce_alternating_mdre_fold_second_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_second_prefix)) * ff_vc_mce_fold_mdre_fold_second)) /\ exists ff_q_mce_mdre_fold_second_prefix_negative. ff_vb_mce_fold_mdre_fold_second = ff_q_mce_mdre_fold_second_prefix_negative * S ((S (ff_index_mce_alternating_mdre_fold_second_prefix)) * ff_vc_mce_fold_mdre_fold_second) + (ff_n_mce_alternating_mdre_fold_second_prefix))) /\ (((exists ff_even_mce_term_mdre_fold_second_prefix_term. ff_index_mce_alternating_mdre_fold_second_prefix = 2 * ff_even_mce_term_mdre_fold_second_prefix_term) /\ (ff_p_mce_alternating_mdre_fold_second_prefix = (ff_ap_mce_alternating_mdre_fold_second_prefix) * (ff_bp_mce_alternating_mdre_fold_second_prefix) + (ff_an_mce_alternating_mdre_fold_second_prefix) * (ff_bn_mce_alternating_mdre_fold_second_prefix) /\ ff_n_mce_alternating_mdre_fold_second_prefix = (ff_ap_mce_alternating_mdre_fold_second_prefix) * (ff_bn_mce_alternating_mdre_fold_second_prefix) + (ff_an_mce_alternating_mdre_fold_second_prefix) * (ff_bp_mce_alternating_mdre_fold_second_prefix))) \/ ((exists ff_odd_mce_term_mdre_fold_second_prefix_term. ff_index_mce_alternating_mdre_fold_second_prefix = 2 * ff_odd_mce_term_mdre_fold_second_prefix_term + 1) /\ (ff_p_mce_alternating_mdre_fold_second_prefix = (ff_ap_mce_alternating_mdre_fold_second_prefix) * (ff_bn_mce_alternating_mdre_fold_second_prefix) + (ff_an_mce_alternating_mdre_fold_second_prefix) * (ff_bp_mce_alternating_mdre_fold_second_prefix) /\ ff_n_mce_alternating_mdre_fold_second_prefix = (ff_ap_mce_alternating_mdre_fold_second_prefix) * (ff_bp_mce_alternating_mdre_fold_second_prefix) + (ff_an_mce_alternating_mdre_fold_second_prefix) * (ff_bn_mce_alternating_mdre_fold_second_prefix))))))))))) /\ ((exists ff_u_mce_mdre_fold_second_positive ff_v_mce_mdre_fold_second_positive. ((((exists ff_h_mce_mdre_fold_second_positive_start. ff_h_mce_mdre_fold_second_positive_start + S (0) = S ((S (0)) * ff_v_mce_mdre_fold_second_positive)) /\ exists ff_q_mce_mdre_fold_second_positive_start. ff_u_mce_mdre_fold_second_positive = ff_q_mce_mdre_fold_second_positive_start * S ((S (0)) * ff_v_mce_mdre_fold_second_positive) + (0))) /\ ((((exists ff_h_mce_mdre_fold_second_positive_terminal. ff_h_mce_mdre_fold_second_positive_terminal + S (r) = S ((S (l)) * ff_v_mce_mdre_fold_second_positive)) /\ exists ff_q_mce_mdre_fold_second_positive_terminal. ff_u_mce_mdre_fold_second_positive = ff_q_mce_mdre_fold_second_positive_terminal * S ((S (l)) * ff_v_mce_mdre_fold_second_positive) + (r))) /\ forall ff_i_mce_mdre_fold_second_positive. (exists ff_lt_mce_mdre_fold_second_positive_bound. ff_lt_mce_mdre_fold_second_positive_bound + S ff_i_mce_mdre_fold_second_positive = l) -> exists ff_a_mce_mdre_fold_second_positive ff_r_mce_mdre_fold_second_positive ff_s_mce_mdre_fold_second_positive. ((((exists ff_h_mce_mdre_fold_second_positive_summand. ff_h_mce_mdre_fold_second_positive_summand + S (ff_a_mce_mdre_fold_second_positive) = S ((S (ff_i_mce_mdre_fold_second_positive)) * ff_uc_mce_fold_mdre_fold_second)) /\ exists ff_q_mce_mdre_fold_second_positive_summand. ff_ub_mce_fold_mdre_fold_second = ff_q_mce_mdre_fold_second_positive_summand * S ((S (ff_i_mce_mdre_fold_second_positive)) * ff_uc_mce_fold_mdre_fold_second) + (ff_a_mce_mdre_fold_second_positive))) /\ ((((exists ff_h_mce_mdre_fold_second_positive_partial. ff_h_mce_mdre_fold_second_positive_partial + S (ff_r_mce_mdre_fold_second_positive) = S ((S (ff_i_mce_mdre_fold_second_positive)) * ff_v_mce_mdre_fold_second_positive)) /\ exists ff_q_mce_mdre_fold_second_positive_partial. ff_u_mce_mdre_fold_second_positive = ff_q_mce_mdre_fold_second_positive_partial * S ((S (ff_i_mce_mdre_fold_second_positive)) * ff_v_mce_mdre_fold_second_positive) + (ff_r_mce_mdre_fold_second_positive))) /\ ((((exists ff_h_mce_mdre_fold_second_positive_successor. ff_h_mce_mdre_fold_second_positive_successor + S (ff_s_mce_mdre_fold_second_positive) = S ((S (S ff_i_mce_mdre_fold_second_positive)) * ff_v_mce_mdre_fold_second_positive)) /\ exists ff_q_mce_mdre_fold_second_positive_successor. ff_u_mce_mdre_fold_second_positive = ff_q_mce_mdre_fold_second_positive_successor * S ((S (S ff_i_mce_mdre_fold_second_positive)) * ff_v_mce_mdre_fold_second_positive) + (ff_s_mce_mdre_fold_second_positive))) /\ ff_s_mce_mdre_fold_second_positive = ff_r_mce_mdre_fold_second_positive + ff_a_mce_mdre_fold_second_positive)))))) /\ (exists ff_u_mce_mdre_fold_second_negative ff_v_mce_mdre_fold_second_negative. ((((exists ff_h_mce_mdre_fold_second_negative_start. ff_h_mce_mdre_fold_second_negative_start + S (0) = S ((S (0)) * ff_v_mce_mdre_fold_second_negative)) /\ exists ff_q_mce_mdre_fold_second_negative_start. ff_u_mce_mdre_fold_second_negative = ff_q_mce_mdre_fold_second_negative_start * S ((S (0)) * ff_v_mce_mdre_fold_second_negative) + (0))) /\ ((((exists ff_h_mce_mdre_fold_second_negative_terminal. ff_h_mce_mdre_fold_second_negative_terminal + S (s) = S ((S (l)) * ff_v_mce_mdre_fold_second_negative)) /\ exists ff_q_mce_mdre_fold_second_negative_terminal. ff_u_mce_mdre_fold_second_negative = ff_q_mce_mdre_fold_second_negative_terminal * S ((S (l)) * ff_v_mce_mdre_fold_second_negative) + (s))) /\ forall ff_i_mce_mdre_fold_second_negative. (exists ff_lt_mce_mdre_fold_second_negative_bound. ff_lt_mce_mdre_fold_second_negative_bound + S ff_i_mce_mdre_fold_second_negative = l) -> exists ff_a_mce_mdre_fold_second_negative ff_r_mce_mdre_fold_second_negative ff_s_mce_mdre_fold_second_negative. ((((exists ff_h_mce_mdre_fold_second_negative_summand. ff_h_mce_mdre_fold_second_negative_summand + S (ff_a_mce_mdre_fold_second_negative) = S ((S (ff_i_mce_mdre_fold_second_negative)) * ff_vc_mce_fold_mdre_fold_second)) /\ exists ff_q_mce_mdre_fold_second_negative_summand. ff_vb_mce_fold_mdre_fold_second = ff_q_mce_mdre_fold_second_negative_summand * S ((S (ff_i_mce_mdre_fold_second_negative)) * ff_vc_mce_fold_mdre_fold_second) + (ff_a_mce_mdre_fold_second_negative))) /\ ((((exists ff_h_mce_mdre_fold_second_negative_partial. ff_h_mce_mdre_fold_second_negative_partial + S (ff_r_mce_mdre_fold_second_negative) = S ((S (ff_i_mce_mdre_fold_second_negative)) * ff_v_mce_mdre_fold_second_negative)) /\ exists ff_q_mce_mdre_fold_second_negative_partial. ff_u_mce_mdre_fold_second_negative = ff_q_mce_mdre_fold_second_negative_partial * S ((S (ff_i_mce_mdre_fold_second_negative)) * ff_v_mce_mdre_fold_second_negative) + (ff_r_mce_mdre_fold_second_negative))) /\ ((((exists ff_h_mce_mdre_fold_second_negative_successor. ff_h_mce_mdre_fold_second_negative_successor + S (ff_s_mce_mdre_fold_second_negative) = S ((S (S ff_i_mce_mdre_fold_second_negative)) * ff_v_mce_mdre_fold_second_negative)) /\ exists ff_q_mce_mdre_fold_second_negative_successor. ff_u_mce_mdre_fold_second_negative = ff_q_mce_mdre_fold_second_negative_successor * S ((S (S ff_i_mce_mdre_fold_second_negative)) * ff_v_mce_mdre_fold_second_negative) + (ff_s_mce_mdre_fold_second_negative))) /\ ff_s_mce_mdre_fold_second_negative = ff_r_mce_mdre_fold_second_negative + ff_a_mce_mdre_fold_second_negative))))))))) -> p = r /\ n = s

Complete tactic proof in conservative notation

All 69 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

69 script commands · 8 reading checkpoints · 1 local claims

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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (1)
01Fix variables and assumptionsL1–10

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro pb
  2. L2
    intro pc
  3. L3
    intro nb
  4. L4
    intro nc
  5. L5
    intro eb
  6. L6
    intro ec
  7. L7
    intro fb
  8. L8
    intro fc
  9. L9
    intro qb
  10. L10
    intro qc
02Fix variables and assumptionsL11–20

Work with arbitrary variables or the premises of the current implication.

  1. L11
    intro rb
  2. L12
    intro rc
  3. L13
    intro ub
  4. L14
    intro uc
  5. L15
    intro vb
  6. L16
    intro vc
  7. L17
    intro l
  8. L18
    intro p
  9. L19
    intro n
  10. L20
    intro r
03Fix variables and assumptionsL21–27

Work with arbitrary variables or the premises of the current implication.

  1. L21
    intro s
  2. L22
    intro hrowp
  3. L23
    intro hrown
  4. L24
    intro hcofp
  5. L25
    intro hcofn
  6. L26
    intro hfirst
  7. L27
    intro hsecond
04Establish htransportedL28–37

Establish this local claim before using it. It is not an additional assumption.

  1. L28
    have htransported : SignedAlternatingCofactorFold(qb,qc,rb,rc,ub,uc,vb,vc,l,p,n)Definitions: SignedAlternatingCofactorFold(qb,qc,rb,rc,ub,uc,vb,vc,l,p,n)Original native command in the exact edition
  2. L29
    specialize matrix_recursive_alternating_fold_transport (pb)
  3. L30
    specialize matrix_recursive_alternating_fold_transport (pc)
  4. L31
    specialize matrix_recursive_alternating_fold_transport (nb)
  5. L32
    specialize matrix_recursive_alternating_fold_transport (nc)
  6. L33
    specialize matrix_recursive_alternating_fold_transport (eb)
  7. L34
    specialize matrix_recursive_alternating_fold_transport (ec)
  8. L35
    specialize matrix_recursive_alternating_fold_transport (fb)
  9. L36
    specialize matrix_recursive_alternating_fold_transport (fc)
  10. L37
    specialize matrix_recursive_alternating_fold_transport (qb)
05Use earlier factsL38–47

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L38
    specialize matrix_recursive_alternating_fold_transport (qc)
  2. L39
    specialize matrix_recursive_alternating_fold_transport (rb)
  3. L40
    specialize matrix_recursive_alternating_fold_transport (rc)
  4. L41
    specialize matrix_recursive_alternating_fold_transport (ub)
  5. L42
    specialize matrix_recursive_alternating_fold_transport (uc)
  6. L43
    specialize matrix_recursive_alternating_fold_transport (vb)
  7. L44
    specialize matrix_recursive_alternating_fold_transport (vc)
  8. L45
    specialize matrix_recursive_alternating_fold_transport (l)
  9. L46
    specialize matrix_recursive_alternating_fold_transport (p)
  10. L47
    specialize matrix_recursive_alternating_fold_transport (n)
06Use earlier factsL48–57

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L48
    apply matrix_recursive_alternating_fold_transport
  2. L49
    exact hrowp
  3. L50
    exact hrown
  4. L51
    exact hcofp
  5. L52
    exact hcofn
  6. L53
    exact hfirst
  7. L54
    specialize signed_alternating_cofactor_fold_functional (qb)
  8. L55
    specialize signed_alternating_cofactor_fold_functional (qc)
  9. L56
    specialize signed_alternating_cofactor_fold_functional (rb)
  10. L57
    specialize signed_alternating_cofactor_fold_functional (rc)
07Use earlier factsL58–67

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L58
    specialize signed_alternating_cofactor_fold_functional (ub)
  2. L59
    specialize signed_alternating_cofactor_fold_functional (uc)
  3. L60
    specialize signed_alternating_cofactor_fold_functional (vb)
  4. L61
    specialize signed_alternating_cofactor_fold_functional (vc)
  5. L62
    specialize signed_alternating_cofactor_fold_functional (l)
  6. L63
    specialize signed_alternating_cofactor_fold_functional (p)
  7. L64
    specialize signed_alternating_cofactor_fold_functional (n)
  8. L65
    specialize signed_alternating_cofactor_fold_functional (r)
  9. L66
    specialize signed_alternating_cofactor_fold_functional (s)
  10. L67
    apply signed_alternating_cofactor_fold_functional
08Use earlier factsL68–69

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L68
    exact htransported
  2. L69
    exact hsecond

Library-wide reading audit

Original defined command ledger · 69 lines
  1. 0001intro pb
  2. 0002intro pc
  3. 0003intro nb
  4. 0004intro nc
  5. 0005intro eb
  6. 0006intro ec
  7. 0007intro fb
  8. 0008intro fc
  9. 0009intro qb
  10. 0010intro qc
  11. 0011intro rb
  12. 0012intro rc
  13. 0013intro ub
  14. 0014intro uc
  15. 0015intro vb
  16. 0016intro vc
  17. 0017intro l
  18. 0018intro p
  19. 0019intro n
  20. 0020intro r
  21. 0021intro s
  22. 0022intro hrowp
  23. 0023intro hrown
  24. 0024intro hcofp
  25. 0025intro hcofn
  26. 0026intro hfirst
  27. 0027intro hsecond
  28. 0028have htransported : SignedAlternatingCofactorFold(qb,qc,rb,rc,ub,uc,vb,vc,l,p,n)
  29. 0029specialize matrix_recursive_alternating_fold_transport (pb)
  30. 0030specialize matrix_recursive_alternating_fold_transport (pc)
  31. 0031specialize matrix_recursive_alternating_fold_transport (nb)
  32. 0032specialize matrix_recursive_alternating_fold_transport (nc)
  33. 0033specialize matrix_recursive_alternating_fold_transport (eb)
  34. 0034specialize matrix_recursive_alternating_fold_transport (ec)
  35. 0035specialize matrix_recursive_alternating_fold_transport (fb)
  36. 0036specialize matrix_recursive_alternating_fold_transport (fc)
  37. 0037specialize matrix_recursive_alternating_fold_transport (qb)
  38. 0038specialize matrix_recursive_alternating_fold_transport (qc)
  39. 0039specialize matrix_recursive_alternating_fold_transport (rb)
  40. 0040specialize matrix_recursive_alternating_fold_transport (rc)
  41. 0041specialize matrix_recursive_alternating_fold_transport (ub)
  42. 0042specialize matrix_recursive_alternating_fold_transport (uc)
  43. 0043specialize matrix_recursive_alternating_fold_transport (vb)
  44. 0044specialize matrix_recursive_alternating_fold_transport (vc)
  45. 0045specialize matrix_recursive_alternating_fold_transport (l)
  46. 0046specialize matrix_recursive_alternating_fold_transport (p)
  47. 0047specialize matrix_recursive_alternating_fold_transport (n)
  48. 0048apply matrix_recursive_alternating_fold_transport
  49. 0049exact hrowp
  50. 0050exact hrown
  51. 0051exact hcofp
  52. 0052exact hcofn
  53. 0053exact hfirst
  54. 0054specialize signed_alternating_cofactor_fold_functional (qb)
  55. 0055specialize signed_alternating_cofactor_fold_functional (qc)
  56. 0056specialize signed_alternating_cofactor_fold_functional (rb)
  57. 0057specialize signed_alternating_cofactor_fold_functional (rc)
  58. 0058specialize signed_alternating_cofactor_fold_functional (ub)
  59. 0059specialize signed_alternating_cofactor_fold_functional (uc)
  60. 0060specialize signed_alternating_cofactor_fold_functional (vb)
  61. 0061specialize signed_alternating_cofactor_fold_functional (vc)
  62. 0062specialize signed_alternating_cofactor_fold_functional (l)
  63. 0063specialize signed_alternating_cofactor_fold_functional (p)
  64. 0064specialize signed_alternating_cofactor_fold_functional (n)
  65. 0065specialize signed_alternating_cofactor_fold_functional (r)
  66. 0066specialize signed_alternating_cofactor_fold_functional (s)
  67. 0067apply signed_alternating_cofactor_fold_functional
  68. 0068exact htransported
  69. 0069exact hsecond