DL0021

matrix_recursive_alternating_fold_transport

An actual signed alternating sum transports to extensionally equal input encodings while preserving its genuine term and partial-sum witnesses.

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. (∀ 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,p,n)

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

Definition DAG

Actual proof prerequisites

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. (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_source ff_uc_mce_fold_mdre_fold_source ff_vb_mce_fold_mdre_fold_source ff_vc_mce_fold_mdre_fold_source. ((forall ff_index_mce_alternating_mdre_fold_source_prefix. (exists ff_gap_mce_mdre_fold_source_prefix_index. ff_gap_mce_mdre_fold_source_prefix_index + S (ff_index_mce_alternating_mdre_fold_source_prefix) = (l)) -> exists ff_ap_mce_alternating_mdre_fold_source_prefix ff_an_mce_alternating_mdre_fold_source_prefix ff_bp_mce_alternating_mdre_fold_source_prefix ff_bn_mce_alternating_mdre_fold_source_prefix ff_p_mce_alternating_mdre_fold_source_prefix ff_n_mce_alternating_mdre_fold_source_prefix. ((((exists ff_h_mce_mdre_fold_source_prefix_ap. ff_h_mce_mdre_fold_source_prefix_ap + S (ff_ap_mce_alternating_mdre_fold_source_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_source_prefix)) * pc)) /\ exists ff_q_mce_mdre_fold_source_prefix_ap. pb = ff_q_mce_mdre_fold_source_prefix_ap * S ((S (ff_index_mce_alternating_mdre_fold_source_prefix)) * pc) + (ff_ap_mce_alternating_mdre_fold_source_prefix))) /\ ((((exists ff_h_mce_mdre_fold_source_prefix_an. ff_h_mce_mdre_fold_source_prefix_an + S (ff_an_mce_alternating_mdre_fold_source_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_source_prefix)) * nc)) /\ exists ff_q_mce_mdre_fold_source_prefix_an. nb = ff_q_mce_mdre_fold_source_prefix_an * S ((S (ff_index_mce_alternating_mdre_fold_source_prefix)) * nc) + (ff_an_mce_alternating_mdre_fold_source_prefix))) /\ ((((exists ff_h_mce_mdre_fold_source_prefix_bp. ff_h_mce_mdre_fold_source_prefix_bp + S (ff_bp_mce_alternating_mdre_fold_source_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_source_prefix)) * ec)) /\ exists ff_q_mce_mdre_fold_source_prefix_bp. eb = ff_q_mce_mdre_fold_source_prefix_bp * S ((S (ff_index_mce_alternating_mdre_fold_source_prefix)) * ec) + (ff_bp_mce_alternating_mdre_fold_source_prefix))) /\ ((((exists ff_h_mce_mdre_fold_source_prefix_bn. ff_h_mce_mdre_fold_source_prefix_bn + S (ff_bn_mce_alternating_mdre_fold_source_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_source_prefix)) * fc)) /\ exists ff_q_mce_mdre_fold_source_prefix_bn. fb = ff_q_mce_mdre_fold_source_prefix_bn * S ((S (ff_index_mce_alternating_mdre_fold_source_prefix)) * fc) + (ff_bn_mce_alternating_mdre_fold_source_prefix))) /\ ((((exists ff_h_mce_mdre_fold_source_prefix_positive. ff_h_mce_mdre_fold_source_prefix_positive + S (ff_p_mce_alternating_mdre_fold_source_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_source_prefix)) * ff_uc_mce_fold_mdre_fold_source)) /\ exists ff_q_mce_mdre_fold_source_prefix_positive. ff_ub_mce_fold_mdre_fold_source = ff_q_mce_mdre_fold_source_prefix_positive * S ((S (ff_index_mce_alternating_mdre_fold_source_prefix)) * ff_uc_mce_fold_mdre_fold_source) + (ff_p_mce_alternating_mdre_fold_source_prefix))) /\ ((((exists ff_h_mce_mdre_fold_source_prefix_negative. ff_h_mce_mdre_fold_source_prefix_negative + S (ff_n_mce_alternating_mdre_fold_source_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_source_prefix)) * ff_vc_mce_fold_mdre_fold_source)) /\ exists ff_q_mce_mdre_fold_source_prefix_negative. ff_vb_mce_fold_mdre_fold_source = ff_q_mce_mdre_fold_source_prefix_negative * S ((S (ff_index_mce_alternating_mdre_fold_source_prefix)) * ff_vc_mce_fold_mdre_fold_source) + (ff_n_mce_alternating_mdre_fold_source_prefix))) /\ (((exists ff_even_mce_term_mdre_fold_source_prefix_term. ff_index_mce_alternating_mdre_fold_source_prefix = 2 * ff_even_mce_term_mdre_fold_source_prefix_term) /\ (ff_p_mce_alternating_mdre_fold_source_prefix = (ff_ap_mce_alternating_mdre_fold_source_prefix) * (ff_bp_mce_alternating_mdre_fold_source_prefix) + (ff_an_mce_alternating_mdre_fold_source_prefix) * (ff_bn_mce_alternating_mdre_fold_source_prefix) /\ ff_n_mce_alternating_mdre_fold_source_prefix = (ff_ap_mce_alternating_mdre_fold_source_prefix) * (ff_bn_mce_alternating_mdre_fold_source_prefix) + (ff_an_mce_alternating_mdre_fold_source_prefix) * (ff_bp_mce_alternating_mdre_fold_source_prefix))) \/ ((exists ff_odd_mce_term_mdre_fold_source_prefix_term. ff_index_mce_alternating_mdre_fold_source_prefix = 2 * ff_odd_mce_term_mdre_fold_source_prefix_term + 1) /\ (ff_p_mce_alternating_mdre_fold_source_prefix = (ff_ap_mce_alternating_mdre_fold_source_prefix) * (ff_bn_mce_alternating_mdre_fold_source_prefix) + (ff_an_mce_alternating_mdre_fold_source_prefix) * (ff_bp_mce_alternating_mdre_fold_source_prefix) /\ ff_n_mce_alternating_mdre_fold_source_prefix = (ff_ap_mce_alternating_mdre_fold_source_prefix) * (ff_bp_mce_alternating_mdre_fold_source_prefix) + (ff_an_mce_alternating_mdre_fold_source_prefix) * (ff_bn_mce_alternating_mdre_fold_source_prefix))))))))))) /\ ((exists ff_u_mce_mdre_fold_source_positive ff_v_mce_mdre_fold_source_positive. ((((exists ff_h_mce_mdre_fold_source_positive_start. ff_h_mce_mdre_fold_source_positive_start + S (0) = S ((S (0)) * ff_v_mce_mdre_fold_source_positive)) /\ exists ff_q_mce_mdre_fold_source_positive_start. ff_u_mce_mdre_fold_source_positive = ff_q_mce_mdre_fold_source_positive_start * S ((S (0)) * ff_v_mce_mdre_fold_source_positive) + (0))) /\ ((((exists ff_h_mce_mdre_fold_source_positive_terminal. ff_h_mce_mdre_fold_source_positive_terminal + S (p) = S ((S (l)) * ff_v_mce_mdre_fold_source_positive)) /\ exists ff_q_mce_mdre_fold_source_positive_terminal. ff_u_mce_mdre_fold_source_positive = ff_q_mce_mdre_fold_source_positive_terminal * S ((S (l)) * ff_v_mce_mdre_fold_source_positive) + (p))) /\ forall ff_i_mce_mdre_fold_source_positive. (exists ff_lt_mce_mdre_fold_source_positive_bound. ff_lt_mce_mdre_fold_source_positive_bound + S ff_i_mce_mdre_fold_source_positive = l) -> exists ff_a_mce_mdre_fold_source_positive ff_r_mce_mdre_fold_source_positive ff_s_mce_mdre_fold_source_positive. ((((exists ff_h_mce_mdre_fold_source_positive_summand. ff_h_mce_mdre_fold_source_positive_summand + S (ff_a_mce_mdre_fold_source_positive) = S ((S (ff_i_mce_mdre_fold_source_positive)) * ff_uc_mce_fold_mdre_fold_source)) /\ exists ff_q_mce_mdre_fold_source_positive_summand. ff_ub_mce_fold_mdre_fold_source = ff_q_mce_mdre_fold_source_positive_summand * S ((S (ff_i_mce_mdre_fold_source_positive)) * ff_uc_mce_fold_mdre_fold_source) + (ff_a_mce_mdre_fold_source_positive))) /\ ((((exists ff_h_mce_mdre_fold_source_positive_partial. ff_h_mce_mdre_fold_source_positive_partial + S (ff_r_mce_mdre_fold_source_positive) = S ((S (ff_i_mce_mdre_fold_source_positive)) * ff_v_mce_mdre_fold_source_positive)) /\ exists ff_q_mce_mdre_fold_source_positive_partial. ff_u_mce_mdre_fold_source_positive = ff_q_mce_mdre_fold_source_positive_partial * S ((S (ff_i_mce_mdre_fold_source_positive)) * ff_v_mce_mdre_fold_source_positive) + (ff_r_mce_mdre_fold_source_positive))) /\ ((((exists ff_h_mce_mdre_fold_source_positive_successor. ff_h_mce_mdre_fold_source_positive_successor + S (ff_s_mce_mdre_fold_source_positive) = S ((S (S ff_i_mce_mdre_fold_source_positive)) * ff_v_mce_mdre_fold_source_positive)) /\ exists ff_q_mce_mdre_fold_source_positive_successor. ff_u_mce_mdre_fold_source_positive = ff_q_mce_mdre_fold_source_positive_successor * S ((S (S ff_i_mce_mdre_fold_source_positive)) * ff_v_mce_mdre_fold_source_positive) + (ff_s_mce_mdre_fold_source_positive))) /\ ff_s_mce_mdre_fold_source_positive = ff_r_mce_mdre_fold_source_positive + ff_a_mce_mdre_fold_source_positive)))))) /\ (exists ff_u_mce_mdre_fold_source_negative ff_v_mce_mdre_fold_source_negative. ((((exists ff_h_mce_mdre_fold_source_negative_start. ff_h_mce_mdre_fold_source_negative_start + S (0) = S ((S (0)) * ff_v_mce_mdre_fold_source_negative)) /\ exists ff_q_mce_mdre_fold_source_negative_start. ff_u_mce_mdre_fold_source_negative = ff_q_mce_mdre_fold_source_negative_start * S ((S (0)) * ff_v_mce_mdre_fold_source_negative) + (0))) /\ ((((exists ff_h_mce_mdre_fold_source_negative_terminal. ff_h_mce_mdre_fold_source_negative_terminal + S (n) = S ((S (l)) * ff_v_mce_mdre_fold_source_negative)) /\ exists ff_q_mce_mdre_fold_source_negative_terminal. ff_u_mce_mdre_fold_source_negative = ff_q_mce_mdre_fold_source_negative_terminal * S ((S (l)) * ff_v_mce_mdre_fold_source_negative) + (n))) /\ forall ff_i_mce_mdre_fold_source_negative. (exists ff_lt_mce_mdre_fold_source_negative_bound. ff_lt_mce_mdre_fold_source_negative_bound + S ff_i_mce_mdre_fold_source_negative = l) -> exists ff_a_mce_mdre_fold_source_negative ff_r_mce_mdre_fold_source_negative ff_s_mce_mdre_fold_source_negative. ((((exists ff_h_mce_mdre_fold_source_negative_summand. ff_h_mce_mdre_fold_source_negative_summand + S (ff_a_mce_mdre_fold_source_negative) = S ((S (ff_i_mce_mdre_fold_source_negative)) * ff_vc_mce_fold_mdre_fold_source)) /\ exists ff_q_mce_mdre_fold_source_negative_summand. ff_vb_mce_fold_mdre_fold_source = ff_q_mce_mdre_fold_source_negative_summand * S ((S (ff_i_mce_mdre_fold_source_negative)) * ff_vc_mce_fold_mdre_fold_source) + (ff_a_mce_mdre_fold_source_negative))) /\ ((((exists ff_h_mce_mdre_fold_source_negative_partial. ff_h_mce_mdre_fold_source_negative_partial + S (ff_r_mce_mdre_fold_source_negative) = S ((S (ff_i_mce_mdre_fold_source_negative)) * ff_v_mce_mdre_fold_source_negative)) /\ exists ff_q_mce_mdre_fold_source_negative_partial. ff_u_mce_mdre_fold_source_negative = ff_q_mce_mdre_fold_source_negative_partial * S ((S (ff_i_mce_mdre_fold_source_negative)) * ff_v_mce_mdre_fold_source_negative) + (ff_r_mce_mdre_fold_source_negative))) /\ ((((exists ff_h_mce_mdre_fold_source_negative_successor. ff_h_mce_mdre_fold_source_negative_successor + S (ff_s_mce_mdre_fold_source_negative) = S ((S (S ff_i_mce_mdre_fold_source_negative)) * ff_v_mce_mdre_fold_source_negative)) /\ exists ff_q_mce_mdre_fold_source_negative_successor. ff_u_mce_mdre_fold_source_negative = ff_q_mce_mdre_fold_source_negative_successor * S ((S (S ff_i_mce_mdre_fold_source_negative)) * ff_v_mce_mdre_fold_source_negative) + (ff_s_mce_mdre_fold_source_negative))) /\ ff_s_mce_mdre_fold_source_negative = ff_r_mce_mdre_fold_source_negative + ff_a_mce_mdre_fold_source_negative))))))))) -> (exists ff_ub_mce_fold_mdre_fold_target ff_uc_mce_fold_mdre_fold_target ff_vb_mce_fold_mdre_fold_target ff_vc_mce_fold_mdre_fold_target. ((forall ff_index_mce_alternating_mdre_fold_target_prefix. (exists ff_gap_mce_mdre_fold_target_prefix_index. ff_gap_mce_mdre_fold_target_prefix_index + S (ff_index_mce_alternating_mdre_fold_target_prefix) = (l)) -> exists ff_ap_mce_alternating_mdre_fold_target_prefix ff_an_mce_alternating_mdre_fold_target_prefix ff_bp_mce_alternating_mdre_fold_target_prefix ff_bn_mce_alternating_mdre_fold_target_prefix ff_p_mce_alternating_mdre_fold_target_prefix ff_n_mce_alternating_mdre_fold_target_prefix. ((((exists ff_h_mce_mdre_fold_target_prefix_ap. ff_h_mce_mdre_fold_target_prefix_ap + S (ff_ap_mce_alternating_mdre_fold_target_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_target_prefix)) * qc)) /\ exists ff_q_mce_mdre_fold_target_prefix_ap. qb = ff_q_mce_mdre_fold_target_prefix_ap * S ((S (ff_index_mce_alternating_mdre_fold_target_prefix)) * qc) + (ff_ap_mce_alternating_mdre_fold_target_prefix))) /\ ((((exists ff_h_mce_mdre_fold_target_prefix_an. ff_h_mce_mdre_fold_target_prefix_an + S (ff_an_mce_alternating_mdre_fold_target_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_target_prefix)) * rc)) /\ exists ff_q_mce_mdre_fold_target_prefix_an. rb = ff_q_mce_mdre_fold_target_prefix_an * S ((S (ff_index_mce_alternating_mdre_fold_target_prefix)) * rc) + (ff_an_mce_alternating_mdre_fold_target_prefix))) /\ ((((exists ff_h_mce_mdre_fold_target_prefix_bp. ff_h_mce_mdre_fold_target_prefix_bp + S (ff_bp_mce_alternating_mdre_fold_target_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_target_prefix)) * uc)) /\ exists ff_q_mce_mdre_fold_target_prefix_bp. ub = ff_q_mce_mdre_fold_target_prefix_bp * S ((S (ff_index_mce_alternating_mdre_fold_target_prefix)) * uc) + (ff_bp_mce_alternating_mdre_fold_target_prefix))) /\ ((((exists ff_h_mce_mdre_fold_target_prefix_bn. ff_h_mce_mdre_fold_target_prefix_bn + S (ff_bn_mce_alternating_mdre_fold_target_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_target_prefix)) * vc)) /\ exists ff_q_mce_mdre_fold_target_prefix_bn. vb = ff_q_mce_mdre_fold_target_prefix_bn * S ((S (ff_index_mce_alternating_mdre_fold_target_prefix)) * vc) + (ff_bn_mce_alternating_mdre_fold_target_prefix))) /\ ((((exists ff_h_mce_mdre_fold_target_prefix_positive. ff_h_mce_mdre_fold_target_prefix_positive + S (ff_p_mce_alternating_mdre_fold_target_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_target_prefix)) * ff_uc_mce_fold_mdre_fold_target)) /\ exists ff_q_mce_mdre_fold_target_prefix_positive. ff_ub_mce_fold_mdre_fold_target = ff_q_mce_mdre_fold_target_prefix_positive * S ((S (ff_index_mce_alternating_mdre_fold_target_prefix)) * ff_uc_mce_fold_mdre_fold_target) + (ff_p_mce_alternating_mdre_fold_target_prefix))) /\ ((((exists ff_h_mce_mdre_fold_target_prefix_negative. ff_h_mce_mdre_fold_target_prefix_negative + S (ff_n_mce_alternating_mdre_fold_target_prefix) = S ((S (ff_index_mce_alternating_mdre_fold_target_prefix)) * ff_vc_mce_fold_mdre_fold_target)) /\ exists ff_q_mce_mdre_fold_target_prefix_negative. ff_vb_mce_fold_mdre_fold_target = ff_q_mce_mdre_fold_target_prefix_negative * S ((S (ff_index_mce_alternating_mdre_fold_target_prefix)) * ff_vc_mce_fold_mdre_fold_target) + (ff_n_mce_alternating_mdre_fold_target_prefix))) /\ (((exists ff_even_mce_term_mdre_fold_target_prefix_term. ff_index_mce_alternating_mdre_fold_target_prefix = 2 * ff_even_mce_term_mdre_fold_target_prefix_term) /\ (ff_p_mce_alternating_mdre_fold_target_prefix = (ff_ap_mce_alternating_mdre_fold_target_prefix) * (ff_bp_mce_alternating_mdre_fold_target_prefix) + (ff_an_mce_alternating_mdre_fold_target_prefix) * (ff_bn_mce_alternating_mdre_fold_target_prefix) /\ ff_n_mce_alternating_mdre_fold_target_prefix = (ff_ap_mce_alternating_mdre_fold_target_prefix) * (ff_bn_mce_alternating_mdre_fold_target_prefix) + (ff_an_mce_alternating_mdre_fold_target_prefix) * (ff_bp_mce_alternating_mdre_fold_target_prefix))) \/ ((exists ff_odd_mce_term_mdre_fold_target_prefix_term. ff_index_mce_alternating_mdre_fold_target_prefix = 2 * ff_odd_mce_term_mdre_fold_target_prefix_term + 1) /\ (ff_p_mce_alternating_mdre_fold_target_prefix = (ff_ap_mce_alternating_mdre_fold_target_prefix) * (ff_bn_mce_alternating_mdre_fold_target_prefix) + (ff_an_mce_alternating_mdre_fold_target_prefix) * (ff_bp_mce_alternating_mdre_fold_target_prefix) /\ ff_n_mce_alternating_mdre_fold_target_prefix = (ff_ap_mce_alternating_mdre_fold_target_prefix) * (ff_bp_mce_alternating_mdre_fold_target_prefix) + (ff_an_mce_alternating_mdre_fold_target_prefix) * (ff_bn_mce_alternating_mdre_fold_target_prefix))))))))))) /\ ((exists ff_u_mce_mdre_fold_target_positive ff_v_mce_mdre_fold_target_positive. ((((exists ff_h_mce_mdre_fold_target_positive_start. ff_h_mce_mdre_fold_target_positive_start + S (0) = S ((S (0)) * ff_v_mce_mdre_fold_target_positive)) /\ exists ff_q_mce_mdre_fold_target_positive_start. ff_u_mce_mdre_fold_target_positive = ff_q_mce_mdre_fold_target_positive_start * S ((S (0)) * ff_v_mce_mdre_fold_target_positive) + (0))) /\ ((((exists ff_h_mce_mdre_fold_target_positive_terminal. ff_h_mce_mdre_fold_target_positive_terminal + S (p) = S ((S (l)) * ff_v_mce_mdre_fold_target_positive)) /\ exists ff_q_mce_mdre_fold_target_positive_terminal. ff_u_mce_mdre_fold_target_positive = ff_q_mce_mdre_fold_target_positive_terminal * S ((S (l)) * ff_v_mce_mdre_fold_target_positive) + (p))) /\ forall ff_i_mce_mdre_fold_target_positive. (exists ff_lt_mce_mdre_fold_target_positive_bound. ff_lt_mce_mdre_fold_target_positive_bound + S ff_i_mce_mdre_fold_target_positive = l) -> exists ff_a_mce_mdre_fold_target_positive ff_r_mce_mdre_fold_target_positive ff_s_mce_mdre_fold_target_positive. ((((exists ff_h_mce_mdre_fold_target_positive_summand. ff_h_mce_mdre_fold_target_positive_summand + S (ff_a_mce_mdre_fold_target_positive) = S ((S (ff_i_mce_mdre_fold_target_positive)) * ff_uc_mce_fold_mdre_fold_target)) /\ exists ff_q_mce_mdre_fold_target_positive_summand. ff_ub_mce_fold_mdre_fold_target = ff_q_mce_mdre_fold_target_positive_summand * S ((S (ff_i_mce_mdre_fold_target_positive)) * ff_uc_mce_fold_mdre_fold_target) + (ff_a_mce_mdre_fold_target_positive))) /\ ((((exists ff_h_mce_mdre_fold_target_positive_partial. ff_h_mce_mdre_fold_target_positive_partial + S (ff_r_mce_mdre_fold_target_positive) = S ((S (ff_i_mce_mdre_fold_target_positive)) * ff_v_mce_mdre_fold_target_positive)) /\ exists ff_q_mce_mdre_fold_target_positive_partial. ff_u_mce_mdre_fold_target_positive = ff_q_mce_mdre_fold_target_positive_partial * S ((S (ff_i_mce_mdre_fold_target_positive)) * ff_v_mce_mdre_fold_target_positive) + (ff_r_mce_mdre_fold_target_positive))) /\ ((((exists ff_h_mce_mdre_fold_target_positive_successor. ff_h_mce_mdre_fold_target_positive_successor + S (ff_s_mce_mdre_fold_target_positive) = S ((S (S ff_i_mce_mdre_fold_target_positive)) * ff_v_mce_mdre_fold_target_positive)) /\ exists ff_q_mce_mdre_fold_target_positive_successor. ff_u_mce_mdre_fold_target_positive = ff_q_mce_mdre_fold_target_positive_successor * S ((S (S ff_i_mce_mdre_fold_target_positive)) * ff_v_mce_mdre_fold_target_positive) + (ff_s_mce_mdre_fold_target_positive))) /\ ff_s_mce_mdre_fold_target_positive = ff_r_mce_mdre_fold_target_positive + ff_a_mce_mdre_fold_target_positive)))))) /\ (exists ff_u_mce_mdre_fold_target_negative ff_v_mce_mdre_fold_target_negative. ((((exists ff_h_mce_mdre_fold_target_negative_start. ff_h_mce_mdre_fold_target_negative_start + S (0) = S ((S (0)) * ff_v_mce_mdre_fold_target_negative)) /\ exists ff_q_mce_mdre_fold_target_negative_start. ff_u_mce_mdre_fold_target_negative = ff_q_mce_mdre_fold_target_negative_start * S ((S (0)) * ff_v_mce_mdre_fold_target_negative) + (0))) /\ ((((exists ff_h_mce_mdre_fold_target_negative_terminal. ff_h_mce_mdre_fold_target_negative_terminal + S (n) = S ((S (l)) * ff_v_mce_mdre_fold_target_negative)) /\ exists ff_q_mce_mdre_fold_target_negative_terminal. ff_u_mce_mdre_fold_target_negative = ff_q_mce_mdre_fold_target_negative_terminal * S ((S (l)) * ff_v_mce_mdre_fold_target_negative) + (n))) /\ forall ff_i_mce_mdre_fold_target_negative. (exists ff_lt_mce_mdre_fold_target_negative_bound. ff_lt_mce_mdre_fold_target_negative_bound + S ff_i_mce_mdre_fold_target_negative = l) -> exists ff_a_mce_mdre_fold_target_negative ff_r_mce_mdre_fold_target_negative ff_s_mce_mdre_fold_target_negative. ((((exists ff_h_mce_mdre_fold_target_negative_summand. ff_h_mce_mdre_fold_target_negative_summand + S (ff_a_mce_mdre_fold_target_negative) = S ((S (ff_i_mce_mdre_fold_target_negative)) * ff_vc_mce_fold_mdre_fold_target)) /\ exists ff_q_mce_mdre_fold_target_negative_summand. ff_vb_mce_fold_mdre_fold_target = ff_q_mce_mdre_fold_target_negative_summand * S ((S (ff_i_mce_mdre_fold_target_negative)) * ff_vc_mce_fold_mdre_fold_target) + (ff_a_mce_mdre_fold_target_negative))) /\ ((((exists ff_h_mce_mdre_fold_target_negative_partial. ff_h_mce_mdre_fold_target_negative_partial + S (ff_r_mce_mdre_fold_target_negative) = S ((S (ff_i_mce_mdre_fold_target_negative)) * ff_v_mce_mdre_fold_target_negative)) /\ exists ff_q_mce_mdre_fold_target_negative_partial. ff_u_mce_mdre_fold_target_negative = ff_q_mce_mdre_fold_target_negative_partial * S ((S (ff_i_mce_mdre_fold_target_negative)) * ff_v_mce_mdre_fold_target_negative) + (ff_r_mce_mdre_fold_target_negative))) /\ ((((exists ff_h_mce_mdre_fold_target_negative_successor. ff_h_mce_mdre_fold_target_negative_successor + S (ff_s_mce_mdre_fold_target_negative) = S ((S (S ff_i_mce_mdre_fold_target_negative)) * ff_v_mce_mdre_fold_target_negative)) /\ exists ff_q_mce_mdre_fold_target_negative_successor. ff_u_mce_mdre_fold_target_negative = ff_q_mce_mdre_fold_target_negative_successor * S ((S (S ff_i_mce_mdre_fold_target_negative)) * ff_v_mce_mdre_fold_target_negative) + (ff_s_mce_mdre_fold_target_negative))) /\ ff_s_mce_mdre_fold_target_negative = ff_r_mce_mdre_fold_target_negative + ff_a_mce_mdre_fold_target_negative)))))))))

Complete tactic proof in conservative notation

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

65 script commands · 11 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 (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 hrowp
03Fix variables and assumptionsL21–24

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

  1. L21
    intro hrown
  2. L22
    intro hcofp
  3. L23
    intro hcofn
  4. L24
    intro hfold
04Separate the logical casesL25–30

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

  1. L25
    cases hfold
  2. L26
    cases hfold_witness
  3. L27
    cases hfold_witness_witness
  4. L28
    cases hfold_witness_witness_witness
  5. L29
    cases hfold_witness_witness_witness_witness
  6. L30
    cases hfold_witness_witness_witness_witness_right
05Construct an explicit witnessL31–34

Supply the displayed value, then prove that it has the required property.

  1. L31
    exists x
  2. L32
    exists x1
  3. L33
    exists x2
  4. L34
    exists x3
06Separate the logical casesL35–35

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

  1. L35
    split
07Use earlier factsL36–45

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

  1. L36
    specialize matrix_recursive_alternating_prefix_transport (pb)
  2. L37
    specialize matrix_recursive_alternating_prefix_transport (pc)
  3. L38
    specialize matrix_recursive_alternating_prefix_transport (nb)
  4. L39
    specialize matrix_recursive_alternating_prefix_transport (nc)
  5. L40
    specialize matrix_recursive_alternating_prefix_transport (eb)
  6. L41
    specialize matrix_recursive_alternating_prefix_transport (ec)
  7. L42
    specialize matrix_recursive_alternating_prefix_transport (fb)
  8. L43
    specialize matrix_recursive_alternating_prefix_transport (fc)
  9. L44
    specialize matrix_recursive_alternating_prefix_transport (qb)
  10. L45
    specialize matrix_recursive_alternating_prefix_transport (qc)
08Use earlier factsL46–55

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

  1. L46
    specialize matrix_recursive_alternating_prefix_transport (rb)
  2. L47
    specialize matrix_recursive_alternating_prefix_transport (rc)
  3. L48
    specialize matrix_recursive_alternating_prefix_transport (ub)
  4. L49
    specialize matrix_recursive_alternating_prefix_transport (uc)
  5. L50
    specialize matrix_recursive_alternating_prefix_transport (vb)
  6. L51
    specialize matrix_recursive_alternating_prefix_transport (vc)
  7. L52
    specialize matrix_recursive_alternating_prefix_transport (x)
  8. L53
    specialize matrix_recursive_alternating_prefix_transport (x1)
  9. L54
    specialize matrix_recursive_alternating_prefix_transport (x2)
  10. L55
    specialize matrix_recursive_alternating_prefix_transport (x3)
09Use earlier factsL56–62

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

  1. L56
    specialize matrix_recursive_alternating_prefix_transport (l)
  2. L57
    apply matrix_recursive_alternating_prefix_transport
  3. L58
    exact hrowp
  4. L59
    exact hrown
  5. L60
    exact hcofp
  6. L61
    exact hcofn
  7. L62
    exact hfold_witness_witness_witness_witness_left
10Separate the logical casesL63–63

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

  1. L63
    split
11Use earlier factsL64–65

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

  1. L64
    exact hfold_witness_witness_witness_witness_right_left
  2. L65
    exact hfold_witness_witness_witness_witness_right_right

Library-wide reading audit

Original defined command ledger · 65 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 hrowp
  21. 0021intro hrown
  22. 0022intro hcofp
  23. 0023intro hcofn
  24. 0024intro hfold
  25. 0025cases hfold
  26. 0026cases hfold_witness
  27. 0027cases hfold_witness_witness
  28. 0028cases hfold_witness_witness_witness
  29. 0029cases hfold_witness_witness_witness_witness
  30. 0030cases hfold_witness_witness_witness_witness_right
  31. 0031exists x
  32. 0032exists x1
  33. 0033exists x2
  34. 0034exists x3
  35. 0035split
  36. 0036specialize matrix_recursive_alternating_prefix_transport (pb)
  37. 0037specialize matrix_recursive_alternating_prefix_transport (pc)
  38. 0038specialize matrix_recursive_alternating_prefix_transport (nb)
  39. 0039specialize matrix_recursive_alternating_prefix_transport (nc)
  40. 0040specialize matrix_recursive_alternating_prefix_transport (eb)
  41. 0041specialize matrix_recursive_alternating_prefix_transport (ec)
  42. 0042specialize matrix_recursive_alternating_prefix_transport (fb)
  43. 0043specialize matrix_recursive_alternating_prefix_transport (fc)
  44. 0044specialize matrix_recursive_alternating_prefix_transport (qb)
  45. 0045specialize matrix_recursive_alternating_prefix_transport (qc)
  46. 0046specialize matrix_recursive_alternating_prefix_transport (rb)
  47. 0047specialize matrix_recursive_alternating_prefix_transport (rc)
  48. 0048specialize matrix_recursive_alternating_prefix_transport (ub)
  49. 0049specialize matrix_recursive_alternating_prefix_transport (uc)
  50. 0050specialize matrix_recursive_alternating_prefix_transport (vb)
  51. 0051specialize matrix_recursive_alternating_prefix_transport (vc)
  52. 0052specialize matrix_recursive_alternating_prefix_transport (x)
  53. 0053specialize matrix_recursive_alternating_prefix_transport (x1)
  54. 0054specialize matrix_recursive_alternating_prefix_transport (x2)
  55. 0055specialize matrix_recursive_alternating_prefix_transport (x3)
  56. 0056specialize matrix_recursive_alternating_prefix_transport (l)
  57. 0057apply matrix_recursive_alternating_prefix_transport
  58. 0058exact hrowp
  59. 0059exact hrown
  60. 0060exact hcofp
  61. 0061exact hcofn
  62. 0062exact hfold_witness_witness_witness_witness_left
  63. 0063split
  64. 0064exact hfold_witness_witness_witness_witness_right_left
  65. 0065exact hfold_witness_witness_witness_witness_right_right