DL008C

matrix_integer_cofactor_fold_balance

The complete actual alternating cofactor fold is independent of every input signed-pair representative, at arbitrary finite length.

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

∀ ab. ∀ ac. ∀ bb. ∀ bc. ∀ cb. ∀ cc. ∀ db. ∀ dc. ∀ eb. ∀ ec. ∀ fb. ∀ fc. ∀ gb. ∀ gc. ∀ hb. ∀ hc. ∀ l. ∀ p. ∀ n. ∀ P. ∀ N. IntegerVectorEqual(ab,ac,bb,bc,eb,ec,fb,fc,l)IntegerVectorEqual(cb,cc,db,dc,gb,gc,hb,hc,l)SignedAlternatingCofactorFold(ab,ac,bb,bc,cb,cc,db,dc,l,p,n)SignedAlternatingCofactorFold(eb,ec,fb,fc,gb,gc,hb,hc,l,P,N) → p + N = P + n

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall ab ac bb bc cb cc db dc eb ec fb fc gb gc hb hc l p n P N. (forall ics_index_fold_rows_equal ics_value0_fold_rows_equal ics_value1_fold_rows_equal ics_value2_fold_rows_equal ics_value3_fold_rows_equal. (exists ics_gap_fold_rows_equal_bound. ics_gap_fold_rows_equal_bound + S (ics_index_fold_rows_equal) = (l)) -> (((exists fs_h_ics_fold_rows_equal_at0. fs_h_ics_fold_rows_equal_at0 + S (ics_value0_fold_rows_equal) = S ((S (ics_index_fold_rows_equal)) * ac)) /\ exists fs_q_ics_fold_rows_equal_at0. ab = fs_q_ics_fold_rows_equal_at0 * S ((S (ics_index_fold_rows_equal)) * ac) + (ics_value0_fold_rows_equal))) -> (((exists fs_h_ics_fold_rows_equal_at1. fs_h_ics_fold_rows_equal_at1 + S (ics_value1_fold_rows_equal) = S ((S (ics_index_fold_rows_equal)) * bc)) /\ exists fs_q_ics_fold_rows_equal_at1. bb = fs_q_ics_fold_rows_equal_at1 * S ((S (ics_index_fold_rows_equal)) * bc) + (ics_value1_fold_rows_equal))) -> (((exists fs_h_ics_fold_rows_equal_at2. fs_h_ics_fold_rows_equal_at2 + S (ics_value2_fold_rows_equal) = S ((S (ics_index_fold_rows_equal)) * ec)) /\ exists fs_q_ics_fold_rows_equal_at2. eb = fs_q_ics_fold_rows_equal_at2 * S ((S (ics_index_fold_rows_equal)) * ec) + (ics_value2_fold_rows_equal))) -> (((exists fs_h_ics_fold_rows_equal_at3. fs_h_ics_fold_rows_equal_at3 + S (ics_value3_fold_rows_equal) = S ((S (ics_index_fold_rows_equal)) * fc)) /\ exists fs_q_ics_fold_rows_equal_at3. fb = fs_q_ics_fold_rows_equal_at3 * S ((S (ics_index_fold_rows_equal)) * fc) + (ics_value3_fold_rows_equal))) -> ics_value0_fold_rows_equal + ics_value3_fold_rows_equal = ics_value2_fold_rows_equal + ics_value1_fold_rows_equal) -> (forall ics_index_fold_cofactors_equal ics_value0_fold_cofactors_equal ics_value1_fold_cofactors_equal ics_value2_fold_cofactors_equal ics_value3_fold_cofactors_equal. (exists ics_gap_fold_cofactors_equal_bound. ics_gap_fold_cofactors_equal_bound + S (ics_index_fold_cofactors_equal) = (l)) -> (((exists fs_h_ics_fold_cofactors_equal_at0. fs_h_ics_fold_cofactors_equal_at0 + S (ics_value0_fold_cofactors_equal) = S ((S (ics_index_fold_cofactors_equal)) * cc)) /\ exists fs_q_ics_fold_cofactors_equal_at0. cb = fs_q_ics_fold_cofactors_equal_at0 * S ((S (ics_index_fold_cofactors_equal)) * cc) + (ics_value0_fold_cofactors_equal))) -> (((exists fs_h_ics_fold_cofactors_equal_at1. fs_h_ics_fold_cofactors_equal_at1 + S (ics_value1_fold_cofactors_equal) = S ((S (ics_index_fold_cofactors_equal)) * dc)) /\ exists fs_q_ics_fold_cofactors_equal_at1. db = fs_q_ics_fold_cofactors_equal_at1 * S ((S (ics_index_fold_cofactors_equal)) * dc) + (ics_value1_fold_cofactors_equal))) -> (((exists fs_h_ics_fold_cofactors_equal_at2. fs_h_ics_fold_cofactors_equal_at2 + S (ics_value2_fold_cofactors_equal) = S ((S (ics_index_fold_cofactors_equal)) * gc)) /\ exists fs_q_ics_fold_cofactors_equal_at2. gb = fs_q_ics_fold_cofactors_equal_at2 * S ((S (ics_index_fold_cofactors_equal)) * gc) + (ics_value2_fold_cofactors_equal))) -> (((exists fs_h_ics_fold_cofactors_equal_at3. fs_h_ics_fold_cofactors_equal_at3 + S (ics_value3_fold_cofactors_equal) = S ((S (ics_index_fold_cofactors_equal)) * hc)) /\ exists fs_q_ics_fold_cofactors_equal_at3. hb = fs_q_ics_fold_cofactors_equal_at3 * S ((S (ics_index_fold_cofactors_equal)) * hc) + (ics_value3_fold_cofactors_equal))) -> ics_value0_fold_cofactors_equal + ics_value3_fold_cofactors_equal = ics_value2_fold_cofactors_equal + ics_value1_fold_cofactors_equal) -> (exists ff_ub_mce_fold_integer_fold_first ff_uc_mce_fold_integer_fold_first ff_vb_mce_fold_integer_fold_first ff_vc_mce_fold_integer_fold_first. ((forall ff_index_mce_alternating_integer_fold_first_prefix. (exists ff_gap_mce_integer_fold_first_prefix_index. ff_gap_mce_integer_fold_first_prefix_index + S (ff_index_mce_alternating_integer_fold_first_prefix) = (l)) -> exists ff_ap_mce_alternating_integer_fold_first_prefix ff_an_mce_alternating_integer_fold_first_prefix ff_bp_mce_alternating_integer_fold_first_prefix ff_bn_mce_alternating_integer_fold_first_prefix ff_p_mce_alternating_integer_fold_first_prefix ff_n_mce_alternating_integer_fold_first_prefix. ((((exists ff_h_mce_integer_fold_first_prefix_ap. ff_h_mce_integer_fold_first_prefix_ap + S (ff_ap_mce_alternating_integer_fold_first_prefix) = S ((S (ff_index_mce_alternating_integer_fold_first_prefix)) * ac)) /\ exists ff_q_mce_integer_fold_first_prefix_ap. ab = ff_q_mce_integer_fold_first_prefix_ap * S ((S (ff_index_mce_alternating_integer_fold_first_prefix)) * ac) + (ff_ap_mce_alternating_integer_fold_first_prefix))) /\ ((((exists ff_h_mce_integer_fold_first_prefix_an. ff_h_mce_integer_fold_first_prefix_an + S (ff_an_mce_alternating_integer_fold_first_prefix) = S ((S (ff_index_mce_alternating_integer_fold_first_prefix)) * bc)) /\ exists ff_q_mce_integer_fold_first_prefix_an. bb = ff_q_mce_integer_fold_first_prefix_an * S ((S (ff_index_mce_alternating_integer_fold_first_prefix)) * bc) + (ff_an_mce_alternating_integer_fold_first_prefix))) /\ ((((exists ff_h_mce_integer_fold_first_prefix_bp. ff_h_mce_integer_fold_first_prefix_bp + S (ff_bp_mce_alternating_integer_fold_first_prefix) = S ((S (ff_index_mce_alternating_integer_fold_first_prefix)) * cc)) /\ exists ff_q_mce_integer_fold_first_prefix_bp. cb = ff_q_mce_integer_fold_first_prefix_bp * S ((S (ff_index_mce_alternating_integer_fold_first_prefix)) * cc) + (ff_bp_mce_alternating_integer_fold_first_prefix))) /\ ((((exists ff_h_mce_integer_fold_first_prefix_bn. ff_h_mce_integer_fold_first_prefix_bn + S (ff_bn_mce_alternating_integer_fold_first_prefix) = S ((S (ff_index_mce_alternating_integer_fold_first_prefix)) * dc)) /\ exists ff_q_mce_integer_fold_first_prefix_bn. db = ff_q_mce_integer_fold_first_prefix_bn * S ((S (ff_index_mce_alternating_integer_fold_first_prefix)) * dc) + (ff_bn_mce_alternating_integer_fold_first_prefix))) /\ ((((exists ff_h_mce_integer_fold_first_prefix_positive. ff_h_mce_integer_fold_first_prefix_positive + S (ff_p_mce_alternating_integer_fold_first_prefix) = S ((S (ff_index_mce_alternating_integer_fold_first_prefix)) * ff_uc_mce_fold_integer_fold_first)) /\ exists ff_q_mce_integer_fold_first_prefix_positive. ff_ub_mce_fold_integer_fold_first = ff_q_mce_integer_fold_first_prefix_positive * S ((S (ff_index_mce_alternating_integer_fold_first_prefix)) * ff_uc_mce_fold_integer_fold_first) + (ff_p_mce_alternating_integer_fold_first_prefix))) /\ ((((exists ff_h_mce_integer_fold_first_prefix_negative. ff_h_mce_integer_fold_first_prefix_negative + S (ff_n_mce_alternating_integer_fold_first_prefix) = S ((S (ff_index_mce_alternating_integer_fold_first_prefix)) * ff_vc_mce_fold_integer_fold_first)) /\ exists ff_q_mce_integer_fold_first_prefix_negative. ff_vb_mce_fold_integer_fold_first = ff_q_mce_integer_fold_first_prefix_negative * S ((S (ff_index_mce_alternating_integer_fold_first_prefix)) * ff_vc_mce_fold_integer_fold_first) + (ff_n_mce_alternating_integer_fold_first_prefix))) /\ (((exists ff_even_mce_term_integer_fold_first_prefix_term. ff_index_mce_alternating_integer_fold_first_prefix = 2 * ff_even_mce_term_integer_fold_first_prefix_term) /\ (ff_p_mce_alternating_integer_fold_first_prefix = (ff_ap_mce_alternating_integer_fold_first_prefix) * (ff_bp_mce_alternating_integer_fold_first_prefix) + (ff_an_mce_alternating_integer_fold_first_prefix) * (ff_bn_mce_alternating_integer_fold_first_prefix) /\ ff_n_mce_alternating_integer_fold_first_prefix = (ff_ap_mce_alternating_integer_fold_first_prefix) * (ff_bn_mce_alternating_integer_fold_first_prefix) + (ff_an_mce_alternating_integer_fold_first_prefix) * (ff_bp_mce_alternating_integer_fold_first_prefix))) \/ ((exists ff_odd_mce_term_integer_fold_first_prefix_term. ff_index_mce_alternating_integer_fold_first_prefix = 2 * ff_odd_mce_term_integer_fold_first_prefix_term + 1) /\ (ff_p_mce_alternating_integer_fold_first_prefix = (ff_ap_mce_alternating_integer_fold_first_prefix) * (ff_bn_mce_alternating_integer_fold_first_prefix) + (ff_an_mce_alternating_integer_fold_first_prefix) * (ff_bp_mce_alternating_integer_fold_first_prefix) /\ ff_n_mce_alternating_integer_fold_first_prefix = (ff_ap_mce_alternating_integer_fold_first_prefix) * (ff_bp_mce_alternating_integer_fold_first_prefix) + (ff_an_mce_alternating_integer_fold_first_prefix) * (ff_bn_mce_alternating_integer_fold_first_prefix))))))))))) /\ ((exists ff_u_mce_integer_fold_first_positive ff_v_mce_integer_fold_first_positive. ((((exists ff_h_mce_integer_fold_first_positive_start. ff_h_mce_integer_fold_first_positive_start + S (0) = S ((S (0)) * ff_v_mce_integer_fold_first_positive)) /\ exists ff_q_mce_integer_fold_first_positive_start. ff_u_mce_integer_fold_first_positive = ff_q_mce_integer_fold_first_positive_start * S ((S (0)) * ff_v_mce_integer_fold_first_positive) + (0))) /\ ((((exists ff_h_mce_integer_fold_first_positive_terminal. ff_h_mce_integer_fold_first_positive_terminal + S (p) = S ((S (l)) * ff_v_mce_integer_fold_first_positive)) /\ exists ff_q_mce_integer_fold_first_positive_terminal. ff_u_mce_integer_fold_first_positive = ff_q_mce_integer_fold_first_positive_terminal * S ((S (l)) * ff_v_mce_integer_fold_first_positive) + (p))) /\ forall ff_i_mce_integer_fold_first_positive. (exists ff_lt_mce_integer_fold_first_positive_bound. ff_lt_mce_integer_fold_first_positive_bound + S ff_i_mce_integer_fold_first_positive = l) -> exists ff_a_mce_integer_fold_first_positive ff_r_mce_integer_fold_first_positive ff_s_mce_integer_fold_first_positive. ((((exists ff_h_mce_integer_fold_first_positive_summand. ff_h_mce_integer_fold_first_positive_summand + S (ff_a_mce_integer_fold_first_positive) = S ((S (ff_i_mce_integer_fold_first_positive)) * ff_uc_mce_fold_integer_fold_first)) /\ exists ff_q_mce_integer_fold_first_positive_summand. ff_ub_mce_fold_integer_fold_first = ff_q_mce_integer_fold_first_positive_summand * S ((S (ff_i_mce_integer_fold_first_positive)) * ff_uc_mce_fold_integer_fold_first) + (ff_a_mce_integer_fold_first_positive))) /\ ((((exists ff_h_mce_integer_fold_first_positive_partial. ff_h_mce_integer_fold_first_positive_partial + S (ff_r_mce_integer_fold_first_positive) = S ((S (ff_i_mce_integer_fold_first_positive)) * ff_v_mce_integer_fold_first_positive)) /\ exists ff_q_mce_integer_fold_first_positive_partial. ff_u_mce_integer_fold_first_positive = ff_q_mce_integer_fold_first_positive_partial * S ((S (ff_i_mce_integer_fold_first_positive)) * ff_v_mce_integer_fold_first_positive) + (ff_r_mce_integer_fold_first_positive))) /\ ((((exists ff_h_mce_integer_fold_first_positive_successor. ff_h_mce_integer_fold_first_positive_successor + S (ff_s_mce_integer_fold_first_positive) = S ((S (S ff_i_mce_integer_fold_first_positive)) * ff_v_mce_integer_fold_first_positive)) /\ exists ff_q_mce_integer_fold_first_positive_successor. ff_u_mce_integer_fold_first_positive = ff_q_mce_integer_fold_first_positive_successor * S ((S (S ff_i_mce_integer_fold_first_positive)) * ff_v_mce_integer_fold_first_positive) + (ff_s_mce_integer_fold_first_positive))) /\ ff_s_mce_integer_fold_first_positive = ff_r_mce_integer_fold_first_positive + ff_a_mce_integer_fold_first_positive)))))) /\ (exists ff_u_mce_integer_fold_first_negative ff_v_mce_integer_fold_first_negative. ((((exists ff_h_mce_integer_fold_first_negative_start. ff_h_mce_integer_fold_first_negative_start + S (0) = S ((S (0)) * ff_v_mce_integer_fold_first_negative)) /\ exists ff_q_mce_integer_fold_first_negative_start. ff_u_mce_integer_fold_first_negative = ff_q_mce_integer_fold_first_negative_start * S ((S (0)) * ff_v_mce_integer_fold_first_negative) + (0))) /\ ((((exists ff_h_mce_integer_fold_first_negative_terminal. ff_h_mce_integer_fold_first_negative_terminal + S (n) = S ((S (l)) * ff_v_mce_integer_fold_first_negative)) /\ exists ff_q_mce_integer_fold_first_negative_terminal. ff_u_mce_integer_fold_first_negative = ff_q_mce_integer_fold_first_negative_terminal * S ((S (l)) * ff_v_mce_integer_fold_first_negative) + (n))) /\ forall ff_i_mce_integer_fold_first_negative. (exists ff_lt_mce_integer_fold_first_negative_bound. ff_lt_mce_integer_fold_first_negative_bound + S ff_i_mce_integer_fold_first_negative = l) -> exists ff_a_mce_integer_fold_first_negative ff_r_mce_integer_fold_first_negative ff_s_mce_integer_fold_first_negative. ((((exists ff_h_mce_integer_fold_first_negative_summand. ff_h_mce_integer_fold_first_negative_summand + S (ff_a_mce_integer_fold_first_negative) = S ((S (ff_i_mce_integer_fold_first_negative)) * ff_vc_mce_fold_integer_fold_first)) /\ exists ff_q_mce_integer_fold_first_negative_summand. ff_vb_mce_fold_integer_fold_first = ff_q_mce_integer_fold_first_negative_summand * S ((S (ff_i_mce_integer_fold_first_negative)) * ff_vc_mce_fold_integer_fold_first) + (ff_a_mce_integer_fold_first_negative))) /\ ((((exists ff_h_mce_integer_fold_first_negative_partial. ff_h_mce_integer_fold_first_negative_partial + S (ff_r_mce_integer_fold_first_negative) = S ((S (ff_i_mce_integer_fold_first_negative)) * ff_v_mce_integer_fold_first_negative)) /\ exists ff_q_mce_integer_fold_first_negative_partial. ff_u_mce_integer_fold_first_negative = ff_q_mce_integer_fold_first_negative_partial * S ((S (ff_i_mce_integer_fold_first_negative)) * ff_v_mce_integer_fold_first_negative) + (ff_r_mce_integer_fold_first_negative))) /\ ((((exists ff_h_mce_integer_fold_first_negative_successor. ff_h_mce_integer_fold_first_negative_successor + S (ff_s_mce_integer_fold_first_negative) = S ((S (S ff_i_mce_integer_fold_first_negative)) * ff_v_mce_integer_fold_first_negative)) /\ exists ff_q_mce_integer_fold_first_negative_successor. ff_u_mce_integer_fold_first_negative = ff_q_mce_integer_fold_first_negative_successor * S ((S (S ff_i_mce_integer_fold_first_negative)) * ff_v_mce_integer_fold_first_negative) + (ff_s_mce_integer_fold_first_negative))) /\ ff_s_mce_integer_fold_first_negative = ff_r_mce_integer_fold_first_negative + ff_a_mce_integer_fold_first_negative))))))))) -> (exists ff_ub_mce_fold_integer_fold_second ff_uc_mce_fold_integer_fold_second ff_vb_mce_fold_integer_fold_second ff_vc_mce_fold_integer_fold_second. ((forall ff_index_mce_alternating_integer_fold_second_prefix. (exists ff_gap_mce_integer_fold_second_prefix_index. ff_gap_mce_integer_fold_second_prefix_index + S (ff_index_mce_alternating_integer_fold_second_prefix) = (l)) -> exists ff_ap_mce_alternating_integer_fold_second_prefix ff_an_mce_alternating_integer_fold_second_prefix ff_bp_mce_alternating_integer_fold_second_prefix ff_bn_mce_alternating_integer_fold_second_prefix ff_p_mce_alternating_integer_fold_second_prefix ff_n_mce_alternating_integer_fold_second_prefix. ((((exists ff_h_mce_integer_fold_second_prefix_ap. ff_h_mce_integer_fold_second_prefix_ap + S (ff_ap_mce_alternating_integer_fold_second_prefix) = S ((S (ff_index_mce_alternating_integer_fold_second_prefix)) * ec)) /\ exists ff_q_mce_integer_fold_second_prefix_ap. eb = ff_q_mce_integer_fold_second_prefix_ap * S ((S (ff_index_mce_alternating_integer_fold_second_prefix)) * ec) + (ff_ap_mce_alternating_integer_fold_second_prefix))) /\ ((((exists ff_h_mce_integer_fold_second_prefix_an. ff_h_mce_integer_fold_second_prefix_an + S (ff_an_mce_alternating_integer_fold_second_prefix) = S ((S (ff_index_mce_alternating_integer_fold_second_prefix)) * fc)) /\ exists ff_q_mce_integer_fold_second_prefix_an. fb = ff_q_mce_integer_fold_second_prefix_an * S ((S (ff_index_mce_alternating_integer_fold_second_prefix)) * fc) + (ff_an_mce_alternating_integer_fold_second_prefix))) /\ ((((exists ff_h_mce_integer_fold_second_prefix_bp. ff_h_mce_integer_fold_second_prefix_bp + S (ff_bp_mce_alternating_integer_fold_second_prefix) = S ((S (ff_index_mce_alternating_integer_fold_second_prefix)) * gc)) /\ exists ff_q_mce_integer_fold_second_prefix_bp. gb = ff_q_mce_integer_fold_second_prefix_bp * S ((S (ff_index_mce_alternating_integer_fold_second_prefix)) * gc) + (ff_bp_mce_alternating_integer_fold_second_prefix))) /\ ((((exists ff_h_mce_integer_fold_second_prefix_bn. ff_h_mce_integer_fold_second_prefix_bn + S (ff_bn_mce_alternating_integer_fold_second_prefix) = S ((S (ff_index_mce_alternating_integer_fold_second_prefix)) * hc)) /\ exists ff_q_mce_integer_fold_second_prefix_bn. hb = ff_q_mce_integer_fold_second_prefix_bn * S ((S (ff_index_mce_alternating_integer_fold_second_prefix)) * hc) + (ff_bn_mce_alternating_integer_fold_second_prefix))) /\ ((((exists ff_h_mce_integer_fold_second_prefix_positive. ff_h_mce_integer_fold_second_prefix_positive + S (ff_p_mce_alternating_integer_fold_second_prefix) = S ((S (ff_index_mce_alternating_integer_fold_second_prefix)) * ff_uc_mce_fold_integer_fold_second)) /\ exists ff_q_mce_integer_fold_second_prefix_positive. ff_ub_mce_fold_integer_fold_second = ff_q_mce_integer_fold_second_prefix_positive * S ((S (ff_index_mce_alternating_integer_fold_second_prefix)) * ff_uc_mce_fold_integer_fold_second) + (ff_p_mce_alternating_integer_fold_second_prefix))) /\ ((((exists ff_h_mce_integer_fold_second_prefix_negative. ff_h_mce_integer_fold_second_prefix_negative + S (ff_n_mce_alternating_integer_fold_second_prefix) = S ((S (ff_index_mce_alternating_integer_fold_second_prefix)) * ff_vc_mce_fold_integer_fold_second)) /\ exists ff_q_mce_integer_fold_second_prefix_negative. ff_vb_mce_fold_integer_fold_second = ff_q_mce_integer_fold_second_prefix_negative * S ((S (ff_index_mce_alternating_integer_fold_second_prefix)) * ff_vc_mce_fold_integer_fold_second) + (ff_n_mce_alternating_integer_fold_second_prefix))) /\ (((exists ff_even_mce_term_integer_fold_second_prefix_term. ff_index_mce_alternating_integer_fold_second_prefix = 2 * ff_even_mce_term_integer_fold_second_prefix_term) /\ (ff_p_mce_alternating_integer_fold_second_prefix = (ff_ap_mce_alternating_integer_fold_second_prefix) * (ff_bp_mce_alternating_integer_fold_second_prefix) + (ff_an_mce_alternating_integer_fold_second_prefix) * (ff_bn_mce_alternating_integer_fold_second_prefix) /\ ff_n_mce_alternating_integer_fold_second_prefix = (ff_ap_mce_alternating_integer_fold_second_prefix) * (ff_bn_mce_alternating_integer_fold_second_prefix) + (ff_an_mce_alternating_integer_fold_second_prefix) * (ff_bp_mce_alternating_integer_fold_second_prefix))) \/ ((exists ff_odd_mce_term_integer_fold_second_prefix_term. ff_index_mce_alternating_integer_fold_second_prefix = 2 * ff_odd_mce_term_integer_fold_second_prefix_term + 1) /\ (ff_p_mce_alternating_integer_fold_second_prefix = (ff_ap_mce_alternating_integer_fold_second_prefix) * (ff_bn_mce_alternating_integer_fold_second_prefix) + (ff_an_mce_alternating_integer_fold_second_prefix) * (ff_bp_mce_alternating_integer_fold_second_prefix) /\ ff_n_mce_alternating_integer_fold_second_prefix = (ff_ap_mce_alternating_integer_fold_second_prefix) * (ff_bp_mce_alternating_integer_fold_second_prefix) + (ff_an_mce_alternating_integer_fold_second_prefix) * (ff_bn_mce_alternating_integer_fold_second_prefix))))))))))) /\ ((exists ff_u_mce_integer_fold_second_positive ff_v_mce_integer_fold_second_positive. ((((exists ff_h_mce_integer_fold_second_positive_start. ff_h_mce_integer_fold_second_positive_start + S (0) = S ((S (0)) * ff_v_mce_integer_fold_second_positive)) /\ exists ff_q_mce_integer_fold_second_positive_start. ff_u_mce_integer_fold_second_positive = ff_q_mce_integer_fold_second_positive_start * S ((S (0)) * ff_v_mce_integer_fold_second_positive) + (0))) /\ ((((exists ff_h_mce_integer_fold_second_positive_terminal. ff_h_mce_integer_fold_second_positive_terminal + S (P) = S ((S (l)) * ff_v_mce_integer_fold_second_positive)) /\ exists ff_q_mce_integer_fold_second_positive_terminal. ff_u_mce_integer_fold_second_positive = ff_q_mce_integer_fold_second_positive_terminal * S ((S (l)) * ff_v_mce_integer_fold_second_positive) + (P))) /\ forall ff_i_mce_integer_fold_second_positive. (exists ff_lt_mce_integer_fold_second_positive_bound. ff_lt_mce_integer_fold_second_positive_bound + S ff_i_mce_integer_fold_second_positive = l) -> exists ff_a_mce_integer_fold_second_positive ff_r_mce_integer_fold_second_positive ff_s_mce_integer_fold_second_positive. ((((exists ff_h_mce_integer_fold_second_positive_summand. ff_h_mce_integer_fold_second_positive_summand + S (ff_a_mce_integer_fold_second_positive) = S ((S (ff_i_mce_integer_fold_second_positive)) * ff_uc_mce_fold_integer_fold_second)) /\ exists ff_q_mce_integer_fold_second_positive_summand. ff_ub_mce_fold_integer_fold_second = ff_q_mce_integer_fold_second_positive_summand * S ((S (ff_i_mce_integer_fold_second_positive)) * ff_uc_mce_fold_integer_fold_second) + (ff_a_mce_integer_fold_second_positive))) /\ ((((exists ff_h_mce_integer_fold_second_positive_partial. ff_h_mce_integer_fold_second_positive_partial + S (ff_r_mce_integer_fold_second_positive) = S ((S (ff_i_mce_integer_fold_second_positive)) * ff_v_mce_integer_fold_second_positive)) /\ exists ff_q_mce_integer_fold_second_positive_partial. ff_u_mce_integer_fold_second_positive = ff_q_mce_integer_fold_second_positive_partial * S ((S (ff_i_mce_integer_fold_second_positive)) * ff_v_mce_integer_fold_second_positive) + (ff_r_mce_integer_fold_second_positive))) /\ ((((exists ff_h_mce_integer_fold_second_positive_successor. ff_h_mce_integer_fold_second_positive_successor + S (ff_s_mce_integer_fold_second_positive) = S ((S (S ff_i_mce_integer_fold_second_positive)) * ff_v_mce_integer_fold_second_positive)) /\ exists ff_q_mce_integer_fold_second_positive_successor. ff_u_mce_integer_fold_second_positive = ff_q_mce_integer_fold_second_positive_successor * S ((S (S ff_i_mce_integer_fold_second_positive)) * ff_v_mce_integer_fold_second_positive) + (ff_s_mce_integer_fold_second_positive))) /\ ff_s_mce_integer_fold_second_positive = ff_r_mce_integer_fold_second_positive + ff_a_mce_integer_fold_second_positive)))))) /\ (exists ff_u_mce_integer_fold_second_negative ff_v_mce_integer_fold_second_negative. ((((exists ff_h_mce_integer_fold_second_negative_start. ff_h_mce_integer_fold_second_negative_start + S (0) = S ((S (0)) * ff_v_mce_integer_fold_second_negative)) /\ exists ff_q_mce_integer_fold_second_negative_start. ff_u_mce_integer_fold_second_negative = ff_q_mce_integer_fold_second_negative_start * S ((S (0)) * ff_v_mce_integer_fold_second_negative) + (0))) /\ ((((exists ff_h_mce_integer_fold_second_negative_terminal. ff_h_mce_integer_fold_second_negative_terminal + S (N) = S ((S (l)) * ff_v_mce_integer_fold_second_negative)) /\ exists ff_q_mce_integer_fold_second_negative_terminal. ff_u_mce_integer_fold_second_negative = ff_q_mce_integer_fold_second_negative_terminal * S ((S (l)) * ff_v_mce_integer_fold_second_negative) + (N))) /\ forall ff_i_mce_integer_fold_second_negative. (exists ff_lt_mce_integer_fold_second_negative_bound. ff_lt_mce_integer_fold_second_negative_bound + S ff_i_mce_integer_fold_second_negative = l) -> exists ff_a_mce_integer_fold_second_negative ff_r_mce_integer_fold_second_negative ff_s_mce_integer_fold_second_negative. ((((exists ff_h_mce_integer_fold_second_negative_summand. ff_h_mce_integer_fold_second_negative_summand + S (ff_a_mce_integer_fold_second_negative) = S ((S (ff_i_mce_integer_fold_second_negative)) * ff_vc_mce_fold_integer_fold_second)) /\ exists ff_q_mce_integer_fold_second_negative_summand. ff_vb_mce_fold_integer_fold_second = ff_q_mce_integer_fold_second_negative_summand * S ((S (ff_i_mce_integer_fold_second_negative)) * ff_vc_mce_fold_integer_fold_second) + (ff_a_mce_integer_fold_second_negative))) /\ ((((exists ff_h_mce_integer_fold_second_negative_partial. ff_h_mce_integer_fold_second_negative_partial + S (ff_r_mce_integer_fold_second_negative) = S ((S (ff_i_mce_integer_fold_second_negative)) * ff_v_mce_integer_fold_second_negative)) /\ exists ff_q_mce_integer_fold_second_negative_partial. ff_u_mce_integer_fold_second_negative = ff_q_mce_integer_fold_second_negative_partial * S ((S (ff_i_mce_integer_fold_second_negative)) * ff_v_mce_integer_fold_second_negative) + (ff_r_mce_integer_fold_second_negative))) /\ ((((exists ff_h_mce_integer_fold_second_negative_successor. ff_h_mce_integer_fold_second_negative_successor + S (ff_s_mce_integer_fold_second_negative) = S ((S (S ff_i_mce_integer_fold_second_negative)) * ff_v_mce_integer_fold_second_negative)) /\ exists ff_q_mce_integer_fold_second_negative_successor. ff_u_mce_integer_fold_second_negative = ff_q_mce_integer_fold_second_negative_successor * S ((S (S ff_i_mce_integer_fold_second_negative)) * ff_v_mce_integer_fold_second_negative) + (ff_s_mce_integer_fold_second_negative))) /\ ff_s_mce_integer_fold_second_negative = ff_r_mce_integer_fold_second_negative + ff_a_mce_integer_fold_second_negative))))))))) -> p + N = P + n

Complete tactic proof in conservative notation

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

85 script commands · 10 reading checkpoints · 0 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 (2)
01Fix variables and assumptionsL1–10

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

  1. L1
    intro ab
  2. L2
    intro ac
  3. L3
    intro bb
  4. L4
    intro bc
  5. L5
    intro cb
  6. L6
    intro cc
  7. L7
    intro db
  8. L8
    intro dc
  9. L9
    intro eb
  10. L10
    intro ec
02Fix variables and assumptionsL11–20

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

  1. L11
    intro fb
  2. L12
    intro fc
  3. L13
    intro gb
  4. L14
    intro gc
  5. L15
    intro hb
  6. L16
    intro hc
  7. L17
    intro l
  8. L18
    intro p
  9. L19
    intro n
  10. L20
    intro P
03Fix variables and assumptionsL21–25

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

  1. L21
    intro N
  2. L22
    intro hrows
  3. L23
    intro hcofactors
  4. L24
    intro hfirst
  5. L25
    intro hsecond
04Separate the logical casesL26–35

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L26
    cases hfirst
  2. L27
    cases hfirst_witness
  3. L28
    cases hfirst_witness_witness
  4. L29
    cases hfirst_witness_witness_witness
  5. L30
    cases hfirst_witness_witness_witness_witness
  6. L31
    cases hfirst_witness_witness_witness_witness_right
  7. L32
    cases hsecond
  8. L33
    cases hsecond_witness
  9. L34
    cases hsecond_witness_witness
  10. L35
    cases hsecond_witness_witness_witness
05Separate the logical casesL36–37

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L36
    cases hsecond_witness_witness_witness_witness
  2. L37
    cases hsecond_witness_witness_witness_witness_right
06Use earlier factsL38–47

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

  1. L38
    specialize matrix_integer_signed_sum_balance (x)
  2. L39
    specialize matrix_integer_signed_sum_balance (x1)
  3. L40
    specialize matrix_integer_signed_sum_balance (x2)
  4. L41
    specialize matrix_integer_signed_sum_balance (x3)
  5. L42
    specialize matrix_integer_signed_sum_balance (x4)
  6. L43
    specialize matrix_integer_signed_sum_balance (x5)
  7. L44
    specialize matrix_integer_signed_sum_balance (x6)
  8. L45
    specialize matrix_integer_signed_sum_balance (x7)
  9. L46
    specialize matrix_integer_signed_sum_balance (l)
  10. L47
    specialize matrix_integer_signed_sum_balance (p)
07Use earlier factsL48–57

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

  1. L48
    specialize matrix_integer_signed_sum_balance (n)
  2. L49
    specialize matrix_integer_signed_sum_balance (P)
  3. L50
    specialize matrix_integer_signed_sum_balance (N)
  4. L51
    apply matrix_integer_signed_sum_balance
  5. L52
    specialize matrix_integer_alternating_prefix_balance (ab)
  6. L53
    specialize matrix_integer_alternating_prefix_balance (ac)
  7. L54
    specialize matrix_integer_alternating_prefix_balance (bb)
  8. L55
    specialize matrix_integer_alternating_prefix_balance (bc)
  9. L56
    specialize matrix_integer_alternating_prefix_balance (cb)
  10. L57
    specialize matrix_integer_alternating_prefix_balance (cc)
08Use earlier factsL58–67

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

  1. L58
    specialize matrix_integer_alternating_prefix_balance (db)
  2. L59
    specialize matrix_integer_alternating_prefix_balance (dc)
  3. L60
    specialize matrix_integer_alternating_prefix_balance (eb)
  4. L61
    specialize matrix_integer_alternating_prefix_balance (ec)
  5. L62
    specialize matrix_integer_alternating_prefix_balance (fb)
  6. L63
    specialize matrix_integer_alternating_prefix_balance (fc)
  7. L64
    specialize matrix_integer_alternating_prefix_balance (gb)
  8. L65
    specialize matrix_integer_alternating_prefix_balance (gc)
  9. L66
    specialize matrix_integer_alternating_prefix_balance (hb)
  10. L67
    specialize matrix_integer_alternating_prefix_balance (hc)
09Use earlier factsL68–77

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

  1. L68
    specialize matrix_integer_alternating_prefix_balance (x)
  2. L69
    specialize matrix_integer_alternating_prefix_balance (x1)
  3. L70
    specialize matrix_integer_alternating_prefix_balance (x2)
  4. L71
    specialize matrix_integer_alternating_prefix_balance (x3)
  5. L72
    specialize matrix_integer_alternating_prefix_balance (x4)
  6. L73
    specialize matrix_integer_alternating_prefix_balance (x5)
  7. L74
    specialize matrix_integer_alternating_prefix_balance (x6)
  8. L75
    specialize matrix_integer_alternating_prefix_balance (x7)
  9. L76
    specialize matrix_integer_alternating_prefix_balance (l)
  10. L77
    apply matrix_integer_alternating_prefix_balance
10Use earlier factsL78–85

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

  1. L78
    exact hrows
  2. L79
    exact hcofactors
  3. L80
    exact hfirst_witness_witness_witness_witness_left
  4. L81
    exact hsecond_witness_witness_witness_witness_left
  5. L82
    exact hfirst_witness_witness_witness_witness_right_left
  6. L83
    exact hfirst_witness_witness_witness_witness_right_right
  7. L84
    exact hsecond_witness_witness_witness_witness_right_left
  8. L85
    exact hsecond_witness_witness_witness_witness_right_right

Library-wide reading audit

Original defined command ledger · 85 lines
  1. 0001intro ab
  2. 0002intro ac
  3. 0003intro bb
  4. 0004intro bc
  5. 0005intro cb
  6. 0006intro cc
  7. 0007intro db
  8. 0008intro dc
  9. 0009intro eb
  10. 0010intro ec
  11. 0011intro fb
  12. 0012intro fc
  13. 0013intro gb
  14. 0014intro gc
  15. 0015intro hb
  16. 0016intro hc
  17. 0017intro l
  18. 0018intro p
  19. 0019intro n
  20. 0020intro P
  21. 0021intro N
  22. 0022intro hrows
  23. 0023intro hcofactors
  24. 0024intro hfirst
  25. 0025intro hsecond
  26. 0026cases hfirst
  27. 0027cases hfirst_witness
  28. 0028cases hfirst_witness_witness
  29. 0029cases hfirst_witness_witness_witness
  30. 0030cases hfirst_witness_witness_witness_witness
  31. 0031cases hfirst_witness_witness_witness_witness_right
  32. 0032cases hsecond
  33. 0033cases hsecond_witness
  34. 0034cases hsecond_witness_witness
  35. 0035cases hsecond_witness_witness_witness
  36. 0036cases hsecond_witness_witness_witness_witness
  37. 0037cases hsecond_witness_witness_witness_witness_right
  38. 0038specialize matrix_integer_signed_sum_balance (x)
  39. 0039specialize matrix_integer_signed_sum_balance (x1)
  40. 0040specialize matrix_integer_signed_sum_balance (x2)
  41. 0041specialize matrix_integer_signed_sum_balance (x3)
  42. 0042specialize matrix_integer_signed_sum_balance (x4)
  43. 0043specialize matrix_integer_signed_sum_balance (x5)
  44. 0044specialize matrix_integer_signed_sum_balance (x6)
  45. 0045specialize matrix_integer_signed_sum_balance (x7)
  46. 0046specialize matrix_integer_signed_sum_balance (l)
  47. 0047specialize matrix_integer_signed_sum_balance (p)
  48. 0048specialize matrix_integer_signed_sum_balance (n)
  49. 0049specialize matrix_integer_signed_sum_balance (P)
  50. 0050specialize matrix_integer_signed_sum_balance (N)
  51. 0051apply matrix_integer_signed_sum_balance
  52. 0052specialize matrix_integer_alternating_prefix_balance (ab)
  53. 0053specialize matrix_integer_alternating_prefix_balance (ac)
  54. 0054specialize matrix_integer_alternating_prefix_balance (bb)
  55. 0055specialize matrix_integer_alternating_prefix_balance (bc)
  56. 0056specialize matrix_integer_alternating_prefix_balance (cb)
  57. 0057specialize matrix_integer_alternating_prefix_balance (cc)
  58. 0058specialize matrix_integer_alternating_prefix_balance (db)
  59. 0059specialize matrix_integer_alternating_prefix_balance (dc)
  60. 0060specialize matrix_integer_alternating_prefix_balance (eb)
  61. 0061specialize matrix_integer_alternating_prefix_balance (ec)
  62. 0062specialize matrix_integer_alternating_prefix_balance (fb)
  63. 0063specialize matrix_integer_alternating_prefix_balance (fc)
  64. 0064specialize matrix_integer_alternating_prefix_balance (gb)
  65. 0065specialize matrix_integer_alternating_prefix_balance (gc)
  66. 0066specialize matrix_integer_alternating_prefix_balance (hb)
  67. 0067specialize matrix_integer_alternating_prefix_balance (hc)
  68. 0068specialize matrix_integer_alternating_prefix_balance (x)
  69. 0069specialize matrix_integer_alternating_prefix_balance (x1)
  70. 0070specialize matrix_integer_alternating_prefix_balance (x2)
  71. 0071specialize matrix_integer_alternating_prefix_balance (x3)
  72. 0072specialize matrix_integer_alternating_prefix_balance (x4)
  73. 0073specialize matrix_integer_alternating_prefix_balance (x5)
  74. 0074specialize matrix_integer_alternating_prefix_balance (x6)
  75. 0075specialize matrix_integer_alternating_prefix_balance (x7)
  76. 0076specialize matrix_integer_alternating_prefix_balance (l)
  77. 0077apply matrix_integer_alternating_prefix_balance
  78. 0078exact hrows
  79. 0079exact hcofactors
  80. 0080exact hfirst_witness_witness_witness_witness_left
  81. 0081exact hsecond_witness_witness_witness_witness_left
  82. 0082exact hfirst_witness_witness_witness_witness_right_left
  83. 0083exact hfirst_witness_witness_witness_witness_right_right
  84. 0084exact hsecond_witness_witness_witness_witness_right_left
  85. 0085exact hsecond_witness_witness_witness_witness_right_right