DL0017

signed_recursive_determinant_zero_value

Every genuine zero-dimensional determinant has exactly the empty product value (1,0), with no exceptional code or trace boundary.

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. ∀ p. ∀ n. SignedRecursiveDeterminant(pb,pc,nb,nc,0,p,n) → p = 1 ∧ n = 0

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

Definition DAG

Actual proof prerequisites

succ_ne_zero · checked external prerequisitematrix_recursive_history_step_at
Original expanded first-order statement
forall pb pc nb nc p n. (exists mdr_b_zero_value mdr_c_zero_value mdr_l_zero_value mdr_i_zero_value. ((forall mdr_i_zero_valueh. (exists mdr_gap_zero_valuehi. mdr_gap_zero_valuehi + S (mdr_i_zero_valueh) = (mdr_l_zero_value)) -> exists mdr_d_zero_valueh mdr_pb_zero_valueh mdr_pc_zero_valueh mdr_nb_zero_valueh mdr_nc_zero_valueh mdr_p_zero_valueh mdr_n_zero_valueh. ((exists mdr_z_zero_valuehr. ((exists mdr_a_zero_valuehrc mdr_b_zero_valuehrc mdr_c_zero_valuehrc mdr_e_zero_valuehrc mdr_f_zero_valuehrc. ((mdr_a_zero_valuehrc = ((mdr_d_zero_valueh) + (mdr_pb_zero_valueh)) * S ((mdr_d_zero_valueh) + (mdr_pb_zero_valueh)) + ((mdr_pb_zero_valueh) + (mdr_pb_zero_valueh))) /\ ((mdr_b_zero_valuehrc = ((mdr_pc_zero_valueh) + (mdr_nb_zero_valueh)) * S ((mdr_pc_zero_valueh) + (mdr_nb_zero_valueh)) + ((mdr_nb_zero_valueh) + (mdr_nb_zero_valueh))) /\ ((mdr_c_zero_valuehrc = ((mdr_a_zero_valuehrc) + (mdr_b_zero_valuehrc)) * S ((mdr_a_zero_valuehrc) + (mdr_b_zero_valuehrc)) + ((mdr_b_zero_valuehrc) + (mdr_b_zero_valuehrc))) /\ ((mdr_e_zero_valuehrc = ((mdr_p_zero_valueh) + (mdr_n_zero_valueh)) * S ((mdr_p_zero_valueh) + (mdr_n_zero_valueh)) + ((mdr_n_zero_valueh) + (mdr_n_zero_valueh))) /\ ((mdr_f_zero_valuehrc = ((mdr_nc_zero_valueh) + (mdr_e_zero_valuehrc)) * S ((mdr_nc_zero_valueh) + (mdr_e_zero_valuehrc)) + ((mdr_e_zero_valuehrc) + (mdr_e_zero_valuehrc))) /\ ((mdr_z_zero_valuehr) = ((mdr_c_zero_valuehrc) + (mdr_f_zero_valuehrc)) * S ((mdr_c_zero_valuehrc) + (mdr_f_zero_valuehrc)) + ((mdr_f_zero_valuehrc) + (mdr_f_zero_valuehrc))))))))) /\ (((exists ff_h_mdr_zero_valuehrb. ff_h_mdr_zero_valuehrb + S (mdr_z_zero_valuehr) = S ((S (mdr_i_zero_valueh)) * mdr_c_zero_value)) /\ exists ff_q_mdr_zero_valuehrb. mdr_b_zero_value = ff_q_mdr_zero_valuehrb * S ((S (mdr_i_zero_valueh)) * mdr_c_zero_value) + (mdr_z_zero_valuehr))))) /\ (((((mdr_d_zero_valueh) = 0) /\ (((mdr_p_zero_valueh) = 1) /\ ((mdr_n_zero_valueh) = 0))) \/ exists mdr_q_zero_valuehs mdr_eb_zero_valuehs mdr_ec_zero_valuehs mdr_fb_zero_valuehs mdr_fc_zero_valuehs. (((mdr_d_zero_valueh) = S (mdr_q_zero_valuehs)) /\ ((forall mdr_j_zero_valuehsc. (exists mdr_gap_zero_valuehscj. mdr_gap_zero_valuehscj + S (mdr_j_zero_valuehsc) = (S (mdr_q_zero_valuehs))) -> exists mdr_i_zero_valuehsc mdr_up_zero_valuehsc mdr_us_zero_valuehsc mdr_un_zero_valuehsc mdr_ut_zero_valuehsc mdr_p_zero_valuehsc mdr_n_zero_valuehsc. ((exists mdr_gap_zero_valuehsci. mdr_gap_zero_valuehsci + S (mdr_i_zero_valuehsc) = (mdr_i_zero_valueh)) /\ ((exists mdr_z_zero_valuehscr. ((exists mdr_a_zero_valuehscrc mdr_b_zero_valuehscrc mdr_c_zero_valuehscrc mdr_e_zero_valuehscrc mdr_f_zero_valuehscrc. ((mdr_a_zero_valuehscrc = ((mdr_q_zero_valuehs) + (mdr_up_zero_valuehsc)) * S ((mdr_q_zero_valuehs) + (mdr_up_zero_valuehsc)) + ((mdr_up_zero_valuehsc) + (mdr_up_zero_valuehsc))) /\ ((mdr_b_zero_valuehscrc = ((mdr_us_zero_valuehsc) + (mdr_un_zero_valuehsc)) * S ((mdr_us_zero_valuehsc) + (mdr_un_zero_valuehsc)) + ((mdr_un_zero_valuehsc) + (mdr_un_zero_valuehsc))) /\ ((mdr_c_zero_valuehscrc = ((mdr_a_zero_valuehscrc) + (mdr_b_zero_valuehscrc)) * S ((mdr_a_zero_valuehscrc) + (mdr_b_zero_valuehscrc)) + ((mdr_b_zero_valuehscrc) + (mdr_b_zero_valuehscrc))) /\ ((mdr_e_zero_valuehscrc = ((mdr_p_zero_valuehsc) + (mdr_n_zero_valuehsc)) * S ((mdr_p_zero_valuehsc) + (mdr_n_zero_valuehsc)) + ((mdr_n_zero_valuehsc) + (mdr_n_zero_valuehsc))) /\ ((mdr_f_zero_valuehscrc = ((mdr_ut_zero_valuehsc) + (mdr_e_zero_valuehscrc)) * S ((mdr_ut_zero_valuehsc) + (mdr_e_zero_valuehscrc)) + ((mdr_e_zero_valuehscrc) + (mdr_e_zero_valuehscrc))) /\ ((mdr_z_zero_valuehscr) = ((mdr_c_zero_valuehscrc) + (mdr_f_zero_valuehscrc)) * S ((mdr_c_zero_valuehscrc) + (mdr_f_zero_valuehscrc)) + ((mdr_f_zero_valuehscrc) + (mdr_f_zero_valuehscrc))))))))) /\ (((exists ff_h_mdr_zero_valuehscrb. ff_h_mdr_zero_valuehscrb + S (mdr_z_zero_valuehscr) = S ((S (mdr_i_zero_valuehsc)) * mdr_c_zero_value)) /\ exists ff_q_mdr_zero_valuehscrb. mdr_b_zero_value = ff_q_mdr_zero_valuehscrb * S ((S (mdr_i_zero_valuehsc)) * mdr_c_zero_value) + (mdr_z_zero_valuehscr))))) /\ ((((forall ff_index_mdm_prefix_mdr_zero_valuehscm_positive. (exists ff_gap_mdm_lt_mdr_zero_valuehscm_positive_index_bound. ff_gap_mdm_lt_mdr_zero_valuehscm_positive_index_bound + S (ff_index_mdm_prefix_mdr_zero_valuehscm_positive) = ((mdr_q_zero_valuehs) * (mdr_q_zero_valuehs))) -> exists ff_row_mdm_prefix_mdr_zero_valuehscm_positive ff_column_mdm_prefix_mdr_zero_valuehscm_positive ff_value_mdm_prefix_mdr_zero_valuehscm_positive. (ff_index_mdm_prefix_mdr_zero_valuehscm_positive = (mdr_q_zero_valuehs) * ff_row_mdm_prefix_mdr_zero_valuehscm_positive + ff_column_mdm_prefix_mdr_zero_valuehscm_positive /\ ((exists ff_gap_mdm_lt_mdr_zero_valuehscm_positive_column_bound. ff_gap_mdm_lt_mdr_zero_valuehscm_positive_column_bound + S (ff_column_mdm_prefix_mdr_zero_valuehscm_positive) = (mdr_q_zero_valuehs)) /\ ((exists ff_row_mdm_cell_mdr_zero_valuehscm_positive_cell ff_column_mdm_cell_mdr_zero_valuehscm_positive_cell. (((((exists ff_gap_mdm_lt_mdr_zero_valuehscm_positive_cell_row_before. ff_gap_mdm_lt_mdr_zero_valuehscm_positive_cell_row_before + S (ff_row_mdm_prefix_mdr_zero_valuehscm_positive) = (0)) /\ ff_row_mdm_cell_mdr_zero_valuehscm_positive_cell = ff_row_mdm_prefix_mdr_zero_valuehscm_positive) \/ ((exists ff_gap_mdm_le_mdr_zero_valuehscm_positive_cell_row_after. ff_gap_mdm_le_mdr_zero_valuehscm_positive_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_zero_valuehscm_positive)) /\ ff_row_mdm_cell_mdr_zero_valuehscm_positive_cell = S ff_row_mdm_prefix_mdr_zero_valuehscm_positive))) /\ (((((exists ff_gap_mdm_lt_mdr_zero_valuehscm_positive_cell_column_before. ff_gap_mdm_lt_mdr_zero_valuehscm_positive_cell_column_before + S (ff_column_mdm_prefix_mdr_zero_valuehscm_positive) = (mdr_j_zero_valuehsc)) /\ ff_column_mdm_cell_mdr_zero_valuehscm_positive_cell = ff_column_mdm_prefix_mdr_zero_valuehscm_positive) \/ ((exists ff_gap_mdm_le_mdr_zero_valuehscm_positive_cell_column_after. ff_gap_mdm_le_mdr_zero_valuehscm_positive_cell_column_after + (mdr_j_zero_valuehsc) = (ff_column_mdm_prefix_mdr_zero_valuehscm_positive)) /\ ff_column_mdm_cell_mdr_zero_valuehscm_positive_cell = S ff_column_mdm_prefix_mdr_zero_valuehscm_positive))) /\ (((exists ff_h_mdm_mdr_zero_valuehscm_positive_cell_source. ff_h_mdm_mdr_zero_valuehscm_positive_cell_source + S (ff_value_mdm_prefix_mdr_zero_valuehscm_positive) = S ((S ((ff_row_mdm_cell_mdr_zero_valuehscm_positive_cell) * (S (mdr_q_zero_valuehs)) + (ff_column_mdm_cell_mdr_zero_valuehscm_positive_cell))) * mdr_pc_zero_valueh)) /\ exists ff_q_mdm_mdr_zero_valuehscm_positive_cell_source. mdr_pb_zero_valueh = ff_q_mdm_mdr_zero_valuehscm_positive_cell_source * S ((S ((ff_row_mdm_cell_mdr_zero_valuehscm_positive_cell) * (S (mdr_q_zero_valuehs)) + (ff_column_mdm_cell_mdr_zero_valuehscm_positive_cell))) * mdr_pc_zero_valueh) + (ff_value_mdm_prefix_mdr_zero_valuehscm_positive)))))) /\ (((exists ff_h_mdm_mdr_zero_valuehscm_positive_target. ff_h_mdm_mdr_zero_valuehscm_positive_target + S (ff_value_mdm_prefix_mdr_zero_valuehscm_positive) = S ((S (ff_index_mdm_prefix_mdr_zero_valuehscm_positive)) * mdr_us_zero_valuehsc)) /\ exists ff_q_mdm_mdr_zero_valuehscm_positive_target. mdr_up_zero_valuehsc = ff_q_mdm_mdr_zero_valuehscm_positive_target * S ((S (ff_index_mdm_prefix_mdr_zero_valuehscm_positive)) * mdr_us_zero_valuehsc) + (ff_value_mdm_prefix_mdr_zero_valuehscm_positive))))))) /\ (forall ff_index_mdm_prefix_mdr_zero_valuehscm_negative. (exists ff_gap_mdm_lt_mdr_zero_valuehscm_negative_index_bound. ff_gap_mdm_lt_mdr_zero_valuehscm_negative_index_bound + S (ff_index_mdm_prefix_mdr_zero_valuehscm_negative) = ((mdr_q_zero_valuehs) * (mdr_q_zero_valuehs))) -> exists ff_row_mdm_prefix_mdr_zero_valuehscm_negative ff_column_mdm_prefix_mdr_zero_valuehscm_negative ff_value_mdm_prefix_mdr_zero_valuehscm_negative. (ff_index_mdm_prefix_mdr_zero_valuehscm_negative = (mdr_q_zero_valuehs) * ff_row_mdm_prefix_mdr_zero_valuehscm_negative + ff_column_mdm_prefix_mdr_zero_valuehscm_negative /\ ((exists ff_gap_mdm_lt_mdr_zero_valuehscm_negative_column_bound. ff_gap_mdm_lt_mdr_zero_valuehscm_negative_column_bound + S (ff_column_mdm_prefix_mdr_zero_valuehscm_negative) = (mdr_q_zero_valuehs)) /\ ((exists ff_row_mdm_cell_mdr_zero_valuehscm_negative_cell ff_column_mdm_cell_mdr_zero_valuehscm_negative_cell. (((((exists ff_gap_mdm_lt_mdr_zero_valuehscm_negative_cell_row_before. ff_gap_mdm_lt_mdr_zero_valuehscm_negative_cell_row_before + S (ff_row_mdm_prefix_mdr_zero_valuehscm_negative) = (0)) /\ ff_row_mdm_cell_mdr_zero_valuehscm_negative_cell = ff_row_mdm_prefix_mdr_zero_valuehscm_negative) \/ ((exists ff_gap_mdm_le_mdr_zero_valuehscm_negative_cell_row_after. ff_gap_mdm_le_mdr_zero_valuehscm_negative_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_zero_valuehscm_negative)) /\ ff_row_mdm_cell_mdr_zero_valuehscm_negative_cell = S ff_row_mdm_prefix_mdr_zero_valuehscm_negative))) /\ (((((exists ff_gap_mdm_lt_mdr_zero_valuehscm_negative_cell_column_before. ff_gap_mdm_lt_mdr_zero_valuehscm_negative_cell_column_before + S (ff_column_mdm_prefix_mdr_zero_valuehscm_negative) = (mdr_j_zero_valuehsc)) /\ ff_column_mdm_cell_mdr_zero_valuehscm_negative_cell = ff_column_mdm_prefix_mdr_zero_valuehscm_negative) \/ ((exists ff_gap_mdm_le_mdr_zero_valuehscm_negative_cell_column_after. ff_gap_mdm_le_mdr_zero_valuehscm_negative_cell_column_after + (mdr_j_zero_valuehsc) = (ff_column_mdm_prefix_mdr_zero_valuehscm_negative)) /\ ff_column_mdm_cell_mdr_zero_valuehscm_negative_cell = S ff_column_mdm_prefix_mdr_zero_valuehscm_negative))) /\ (((exists ff_h_mdm_mdr_zero_valuehscm_negative_cell_source. ff_h_mdm_mdr_zero_valuehscm_negative_cell_source + S (ff_value_mdm_prefix_mdr_zero_valuehscm_negative) = S ((S ((ff_row_mdm_cell_mdr_zero_valuehscm_negative_cell) * (S (mdr_q_zero_valuehs)) + (ff_column_mdm_cell_mdr_zero_valuehscm_negative_cell))) * mdr_nc_zero_valueh)) /\ exists ff_q_mdm_mdr_zero_valuehscm_negative_cell_source. mdr_nb_zero_valueh = ff_q_mdm_mdr_zero_valuehscm_negative_cell_source * S ((S ((ff_row_mdm_cell_mdr_zero_valuehscm_negative_cell) * (S (mdr_q_zero_valuehs)) + (ff_column_mdm_cell_mdr_zero_valuehscm_negative_cell))) * mdr_nc_zero_valueh) + (ff_value_mdm_prefix_mdr_zero_valuehscm_negative)))))) /\ (((exists ff_h_mdm_mdr_zero_valuehscm_negative_target. ff_h_mdm_mdr_zero_valuehscm_negative_target + S (ff_value_mdm_prefix_mdr_zero_valuehscm_negative) = S ((S (ff_index_mdm_prefix_mdr_zero_valuehscm_negative)) * mdr_ut_zero_valuehsc)) /\ exists ff_q_mdm_mdr_zero_valuehscm_negative_target. mdr_un_zero_valuehsc = ff_q_mdm_mdr_zero_valuehscm_negative_target * S ((S (ff_index_mdm_prefix_mdr_zero_valuehscm_negative)) * mdr_ut_zero_valuehsc) + (ff_value_mdm_prefix_mdr_zero_valuehscm_negative))))))))) /\ ((((exists ff_h_mdr_zero_valuehscp. ff_h_mdr_zero_valuehscp + S (mdr_p_zero_valuehsc) = S ((S (mdr_j_zero_valuehsc)) * mdr_ec_zero_valuehs)) /\ exists ff_q_mdr_zero_valuehscp. mdr_eb_zero_valuehs = ff_q_mdr_zero_valuehscp * S ((S (mdr_j_zero_valuehsc)) * mdr_ec_zero_valuehs) + (mdr_p_zero_valuehsc))) /\ (((exists ff_h_mdr_zero_valuehscn. ff_h_mdr_zero_valuehscn + S (mdr_n_zero_valuehsc) = S ((S (mdr_j_zero_valuehsc)) * mdr_fc_zero_valuehs)) /\ exists ff_q_mdr_zero_valuehscn. mdr_fb_zero_valuehs = ff_q_mdr_zero_valuehscn * S ((S (mdr_j_zero_valuehsc)) * mdr_fc_zero_valuehs) + (mdr_n_zero_valuehsc)))))))) /\ (exists ff_ub_mce_fold_mdr_zero_valuehsf ff_uc_mce_fold_mdr_zero_valuehsf ff_vb_mce_fold_mdr_zero_valuehsf ff_vc_mce_fold_mdr_zero_valuehsf. ((forall ff_index_mce_alternating_mdr_zero_valuehsf_prefix. (exists ff_gap_mce_mdr_zero_valuehsf_prefix_index. ff_gap_mce_mdr_zero_valuehsf_prefix_index + S (ff_index_mce_alternating_mdr_zero_valuehsf_prefix) = (S (mdr_q_zero_valuehs))) -> exists ff_ap_mce_alternating_mdr_zero_valuehsf_prefix ff_an_mce_alternating_mdr_zero_valuehsf_prefix ff_bp_mce_alternating_mdr_zero_valuehsf_prefix ff_bn_mce_alternating_mdr_zero_valuehsf_prefix ff_p_mce_alternating_mdr_zero_valuehsf_prefix ff_n_mce_alternating_mdr_zero_valuehsf_prefix. ((((exists ff_h_mce_mdr_zero_valuehsf_prefix_ap. ff_h_mce_mdr_zero_valuehsf_prefix_ap + S (ff_ap_mce_alternating_mdr_zero_valuehsf_prefix) = S ((S (ff_index_mce_alternating_mdr_zero_valuehsf_prefix)) * mdr_pc_zero_valueh)) /\ exists ff_q_mce_mdr_zero_valuehsf_prefix_ap. mdr_pb_zero_valueh = ff_q_mce_mdr_zero_valuehsf_prefix_ap * S ((S (ff_index_mce_alternating_mdr_zero_valuehsf_prefix)) * mdr_pc_zero_valueh) + (ff_ap_mce_alternating_mdr_zero_valuehsf_prefix))) /\ ((((exists ff_h_mce_mdr_zero_valuehsf_prefix_an. ff_h_mce_mdr_zero_valuehsf_prefix_an + S (ff_an_mce_alternating_mdr_zero_valuehsf_prefix) = S ((S (ff_index_mce_alternating_mdr_zero_valuehsf_prefix)) * mdr_nc_zero_valueh)) /\ exists ff_q_mce_mdr_zero_valuehsf_prefix_an. mdr_nb_zero_valueh = ff_q_mce_mdr_zero_valuehsf_prefix_an * S ((S (ff_index_mce_alternating_mdr_zero_valuehsf_prefix)) * mdr_nc_zero_valueh) + (ff_an_mce_alternating_mdr_zero_valuehsf_prefix))) /\ ((((exists ff_h_mce_mdr_zero_valuehsf_prefix_bp. ff_h_mce_mdr_zero_valuehsf_prefix_bp + S (ff_bp_mce_alternating_mdr_zero_valuehsf_prefix) = S ((S (ff_index_mce_alternating_mdr_zero_valuehsf_prefix)) * mdr_ec_zero_valuehs)) /\ exists ff_q_mce_mdr_zero_valuehsf_prefix_bp. mdr_eb_zero_valuehs = ff_q_mce_mdr_zero_valuehsf_prefix_bp * S ((S (ff_index_mce_alternating_mdr_zero_valuehsf_prefix)) * mdr_ec_zero_valuehs) + (ff_bp_mce_alternating_mdr_zero_valuehsf_prefix))) /\ ((((exists ff_h_mce_mdr_zero_valuehsf_prefix_bn. ff_h_mce_mdr_zero_valuehsf_prefix_bn + S (ff_bn_mce_alternating_mdr_zero_valuehsf_prefix) = S ((S (ff_index_mce_alternating_mdr_zero_valuehsf_prefix)) * mdr_fc_zero_valuehs)) /\ exists ff_q_mce_mdr_zero_valuehsf_prefix_bn. mdr_fb_zero_valuehs = ff_q_mce_mdr_zero_valuehsf_prefix_bn * S ((S (ff_index_mce_alternating_mdr_zero_valuehsf_prefix)) * mdr_fc_zero_valuehs) + (ff_bn_mce_alternating_mdr_zero_valuehsf_prefix))) /\ ((((exists ff_h_mce_mdr_zero_valuehsf_prefix_positive. ff_h_mce_mdr_zero_valuehsf_prefix_positive + S (ff_p_mce_alternating_mdr_zero_valuehsf_prefix) = S ((S (ff_index_mce_alternating_mdr_zero_valuehsf_prefix)) * ff_uc_mce_fold_mdr_zero_valuehsf)) /\ exists ff_q_mce_mdr_zero_valuehsf_prefix_positive. ff_ub_mce_fold_mdr_zero_valuehsf = ff_q_mce_mdr_zero_valuehsf_prefix_positive * S ((S (ff_index_mce_alternating_mdr_zero_valuehsf_prefix)) * ff_uc_mce_fold_mdr_zero_valuehsf) + (ff_p_mce_alternating_mdr_zero_valuehsf_prefix))) /\ ((((exists ff_h_mce_mdr_zero_valuehsf_prefix_negative. ff_h_mce_mdr_zero_valuehsf_prefix_negative + S (ff_n_mce_alternating_mdr_zero_valuehsf_prefix) = S ((S (ff_index_mce_alternating_mdr_zero_valuehsf_prefix)) * ff_vc_mce_fold_mdr_zero_valuehsf)) /\ exists ff_q_mce_mdr_zero_valuehsf_prefix_negative. ff_vb_mce_fold_mdr_zero_valuehsf = ff_q_mce_mdr_zero_valuehsf_prefix_negative * S ((S (ff_index_mce_alternating_mdr_zero_valuehsf_prefix)) * ff_vc_mce_fold_mdr_zero_valuehsf) + (ff_n_mce_alternating_mdr_zero_valuehsf_prefix))) /\ (((exists ff_even_mce_term_mdr_zero_valuehsf_prefix_term. ff_index_mce_alternating_mdr_zero_valuehsf_prefix = 2 * ff_even_mce_term_mdr_zero_valuehsf_prefix_term) /\ (ff_p_mce_alternating_mdr_zero_valuehsf_prefix = (ff_ap_mce_alternating_mdr_zero_valuehsf_prefix) * (ff_bp_mce_alternating_mdr_zero_valuehsf_prefix) + (ff_an_mce_alternating_mdr_zero_valuehsf_prefix) * (ff_bn_mce_alternating_mdr_zero_valuehsf_prefix) /\ ff_n_mce_alternating_mdr_zero_valuehsf_prefix = (ff_ap_mce_alternating_mdr_zero_valuehsf_prefix) * (ff_bn_mce_alternating_mdr_zero_valuehsf_prefix) + (ff_an_mce_alternating_mdr_zero_valuehsf_prefix) * (ff_bp_mce_alternating_mdr_zero_valuehsf_prefix))) \/ ((exists ff_odd_mce_term_mdr_zero_valuehsf_prefix_term. ff_index_mce_alternating_mdr_zero_valuehsf_prefix = 2 * ff_odd_mce_term_mdr_zero_valuehsf_prefix_term + 1) /\ (ff_p_mce_alternating_mdr_zero_valuehsf_prefix = (ff_ap_mce_alternating_mdr_zero_valuehsf_prefix) * (ff_bn_mce_alternating_mdr_zero_valuehsf_prefix) + (ff_an_mce_alternating_mdr_zero_valuehsf_prefix) * (ff_bp_mce_alternating_mdr_zero_valuehsf_prefix) /\ ff_n_mce_alternating_mdr_zero_valuehsf_prefix = (ff_ap_mce_alternating_mdr_zero_valuehsf_prefix) * (ff_bp_mce_alternating_mdr_zero_valuehsf_prefix) + (ff_an_mce_alternating_mdr_zero_valuehsf_prefix) * (ff_bn_mce_alternating_mdr_zero_valuehsf_prefix))))))))))) /\ ((exists ff_u_mce_mdr_zero_valuehsf_positive ff_v_mce_mdr_zero_valuehsf_positive. ((((exists ff_h_mce_mdr_zero_valuehsf_positive_start. ff_h_mce_mdr_zero_valuehsf_positive_start + S (0) = S ((S (0)) * ff_v_mce_mdr_zero_valuehsf_positive)) /\ exists ff_q_mce_mdr_zero_valuehsf_positive_start. ff_u_mce_mdr_zero_valuehsf_positive = ff_q_mce_mdr_zero_valuehsf_positive_start * S ((S (0)) * ff_v_mce_mdr_zero_valuehsf_positive) + (0))) /\ ((((exists ff_h_mce_mdr_zero_valuehsf_positive_terminal. ff_h_mce_mdr_zero_valuehsf_positive_terminal + S (mdr_p_zero_valueh) = S ((S ((S (mdr_q_zero_valuehs)))) * ff_v_mce_mdr_zero_valuehsf_positive)) /\ exists ff_q_mce_mdr_zero_valuehsf_positive_terminal. ff_u_mce_mdr_zero_valuehsf_positive = ff_q_mce_mdr_zero_valuehsf_positive_terminal * S ((S ((S (mdr_q_zero_valuehs)))) * ff_v_mce_mdr_zero_valuehsf_positive) + (mdr_p_zero_valueh))) /\ forall ff_i_mce_mdr_zero_valuehsf_positive. (exists ff_lt_mce_mdr_zero_valuehsf_positive_bound. ff_lt_mce_mdr_zero_valuehsf_positive_bound + S ff_i_mce_mdr_zero_valuehsf_positive = (S (mdr_q_zero_valuehs))) -> exists ff_a_mce_mdr_zero_valuehsf_positive ff_r_mce_mdr_zero_valuehsf_positive ff_s_mce_mdr_zero_valuehsf_positive. ((((exists ff_h_mce_mdr_zero_valuehsf_positive_summand. ff_h_mce_mdr_zero_valuehsf_positive_summand + S (ff_a_mce_mdr_zero_valuehsf_positive) = S ((S (ff_i_mce_mdr_zero_valuehsf_positive)) * ff_uc_mce_fold_mdr_zero_valuehsf)) /\ exists ff_q_mce_mdr_zero_valuehsf_positive_summand. ff_ub_mce_fold_mdr_zero_valuehsf = ff_q_mce_mdr_zero_valuehsf_positive_summand * S ((S (ff_i_mce_mdr_zero_valuehsf_positive)) * ff_uc_mce_fold_mdr_zero_valuehsf) + (ff_a_mce_mdr_zero_valuehsf_positive))) /\ ((((exists ff_h_mce_mdr_zero_valuehsf_positive_partial. ff_h_mce_mdr_zero_valuehsf_positive_partial + S (ff_r_mce_mdr_zero_valuehsf_positive) = S ((S (ff_i_mce_mdr_zero_valuehsf_positive)) * ff_v_mce_mdr_zero_valuehsf_positive)) /\ exists ff_q_mce_mdr_zero_valuehsf_positive_partial. ff_u_mce_mdr_zero_valuehsf_positive = ff_q_mce_mdr_zero_valuehsf_positive_partial * S ((S (ff_i_mce_mdr_zero_valuehsf_positive)) * ff_v_mce_mdr_zero_valuehsf_positive) + (ff_r_mce_mdr_zero_valuehsf_positive))) /\ ((((exists ff_h_mce_mdr_zero_valuehsf_positive_successor. ff_h_mce_mdr_zero_valuehsf_positive_successor + S (ff_s_mce_mdr_zero_valuehsf_positive) = S ((S (S ff_i_mce_mdr_zero_valuehsf_positive)) * ff_v_mce_mdr_zero_valuehsf_positive)) /\ exists ff_q_mce_mdr_zero_valuehsf_positive_successor. ff_u_mce_mdr_zero_valuehsf_positive = ff_q_mce_mdr_zero_valuehsf_positive_successor * S ((S (S ff_i_mce_mdr_zero_valuehsf_positive)) * ff_v_mce_mdr_zero_valuehsf_positive) + (ff_s_mce_mdr_zero_valuehsf_positive))) /\ ff_s_mce_mdr_zero_valuehsf_positive = ff_r_mce_mdr_zero_valuehsf_positive + ff_a_mce_mdr_zero_valuehsf_positive)))))) /\ (exists ff_u_mce_mdr_zero_valuehsf_negative ff_v_mce_mdr_zero_valuehsf_negative. ((((exists ff_h_mce_mdr_zero_valuehsf_negative_start. ff_h_mce_mdr_zero_valuehsf_negative_start + S (0) = S ((S (0)) * ff_v_mce_mdr_zero_valuehsf_negative)) /\ exists ff_q_mce_mdr_zero_valuehsf_negative_start. ff_u_mce_mdr_zero_valuehsf_negative = ff_q_mce_mdr_zero_valuehsf_negative_start * S ((S (0)) * ff_v_mce_mdr_zero_valuehsf_negative) + (0))) /\ ((((exists ff_h_mce_mdr_zero_valuehsf_negative_terminal. ff_h_mce_mdr_zero_valuehsf_negative_terminal + S (mdr_n_zero_valueh) = S ((S ((S (mdr_q_zero_valuehs)))) * ff_v_mce_mdr_zero_valuehsf_negative)) /\ exists ff_q_mce_mdr_zero_valuehsf_negative_terminal. ff_u_mce_mdr_zero_valuehsf_negative = ff_q_mce_mdr_zero_valuehsf_negative_terminal * S ((S ((S (mdr_q_zero_valuehs)))) * ff_v_mce_mdr_zero_valuehsf_negative) + (mdr_n_zero_valueh))) /\ forall ff_i_mce_mdr_zero_valuehsf_negative. (exists ff_lt_mce_mdr_zero_valuehsf_negative_bound. ff_lt_mce_mdr_zero_valuehsf_negative_bound + S ff_i_mce_mdr_zero_valuehsf_negative = (S (mdr_q_zero_valuehs))) -> exists ff_a_mce_mdr_zero_valuehsf_negative ff_r_mce_mdr_zero_valuehsf_negative ff_s_mce_mdr_zero_valuehsf_negative. ((((exists ff_h_mce_mdr_zero_valuehsf_negative_summand. ff_h_mce_mdr_zero_valuehsf_negative_summand + S (ff_a_mce_mdr_zero_valuehsf_negative) = S ((S (ff_i_mce_mdr_zero_valuehsf_negative)) * ff_vc_mce_fold_mdr_zero_valuehsf)) /\ exists ff_q_mce_mdr_zero_valuehsf_negative_summand. ff_vb_mce_fold_mdr_zero_valuehsf = ff_q_mce_mdr_zero_valuehsf_negative_summand * S ((S (ff_i_mce_mdr_zero_valuehsf_negative)) * ff_vc_mce_fold_mdr_zero_valuehsf) + (ff_a_mce_mdr_zero_valuehsf_negative))) /\ ((((exists ff_h_mce_mdr_zero_valuehsf_negative_partial. ff_h_mce_mdr_zero_valuehsf_negative_partial + S (ff_r_mce_mdr_zero_valuehsf_negative) = S ((S (ff_i_mce_mdr_zero_valuehsf_negative)) * ff_v_mce_mdr_zero_valuehsf_negative)) /\ exists ff_q_mce_mdr_zero_valuehsf_negative_partial. ff_u_mce_mdr_zero_valuehsf_negative = ff_q_mce_mdr_zero_valuehsf_negative_partial * S ((S (ff_i_mce_mdr_zero_valuehsf_negative)) * ff_v_mce_mdr_zero_valuehsf_negative) + (ff_r_mce_mdr_zero_valuehsf_negative))) /\ ((((exists ff_h_mce_mdr_zero_valuehsf_negative_successor. ff_h_mce_mdr_zero_valuehsf_negative_successor + S (ff_s_mce_mdr_zero_valuehsf_negative) = S ((S (S ff_i_mce_mdr_zero_valuehsf_negative)) * ff_v_mce_mdr_zero_valuehsf_negative)) /\ exists ff_q_mce_mdr_zero_valuehsf_negative_successor. ff_u_mce_mdr_zero_valuehsf_negative = ff_q_mce_mdr_zero_valuehsf_negative_successor * S ((S (S ff_i_mce_mdr_zero_valuehsf_negative)) * ff_v_mce_mdr_zero_valuehsf_negative) + (ff_s_mce_mdr_zero_valuehsf_negative))) /\ ff_s_mce_mdr_zero_valuehsf_negative = ff_r_mce_mdr_zero_valuehsf_negative + ff_a_mce_mdr_zero_valuehsf_negative))))))))))))))) /\ ((exists mdr_gap_zero_valuei. mdr_gap_zero_valuei + S (mdr_i_zero_value) = (mdr_l_zero_value)) /\ (exists mdr_z_zero_valuer. ((exists mdr_a_zero_valuerc mdr_b_zero_valuerc mdr_c_zero_valuerc mdr_e_zero_valuerc mdr_f_zero_valuerc. ((mdr_a_zero_valuerc = ((0) + (pb)) * S ((0) + (pb)) + ((pb) + (pb))) /\ ((mdr_b_zero_valuerc = ((pc) + (nb)) * S ((pc) + (nb)) + ((nb) + (nb))) /\ ((mdr_c_zero_valuerc = ((mdr_a_zero_valuerc) + (mdr_b_zero_valuerc)) * S ((mdr_a_zero_valuerc) + (mdr_b_zero_valuerc)) + ((mdr_b_zero_valuerc) + (mdr_b_zero_valuerc))) /\ ((mdr_e_zero_valuerc = ((p) + (n)) * S ((p) + (n)) + ((n) + (n))) /\ ((mdr_f_zero_valuerc = ((nc) + (mdr_e_zero_valuerc)) * S ((nc) + (mdr_e_zero_valuerc)) + ((mdr_e_zero_valuerc) + (mdr_e_zero_valuerc))) /\ ((mdr_z_zero_valuer) = ((mdr_c_zero_valuerc) + (mdr_f_zero_valuerc)) * S ((mdr_c_zero_valuerc) + (mdr_f_zero_valuerc)) + ((mdr_f_zero_valuerc) + (mdr_f_zero_valuerc))))))))) /\ (((exists ff_h_mdr_zero_valuerb. ff_h_mdr_zero_valuerb + S (mdr_z_zero_valuer) = S ((S (mdr_i_zero_value)) * mdr_c_zero_value)) /\ exists ff_q_mdr_zero_valuerb. mdr_b_zero_value = ff_q_mdr_zero_valuerb * S ((S (mdr_i_zero_value)) * mdr_c_zero_value) + (mdr_z_zero_valuer)))))))) -> p = 1 /\ n = 0

Complete tactic proof in conservative notation

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

44 script commands · 10 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–7

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 p
  6. L6
    intro n
  7. L7
    intro hdeterminant
02Separate the logical casesL8–13

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

  1. L8
    cases hdeterminant
  2. L9
    cases hdeterminant_witness
  3. L10
    cases hdeterminant_witness_witness
  4. L11
    cases hdeterminant_witness_witness_witness
  5. L12
    cases hdeterminant_witness_witness_witness_witness
  6. L13
    cases hdeterminant_witness_witness_witness_witness_right
03Establish hlocalL14–23

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

  1. L14
    have hlocal : SignedDeterminantLocalStep(x,x1,x3,0,pb,pc,nb,nc,p,n)Definitions: SignedDeterminantLocalStep(x,x1,x3,0,pb,pc,nb,nc,p,n)Original native command in the exact edition
  2. L15
    specialize matrix_recursive_history_step_at (x)
  3. L16
    specialize matrix_recursive_history_step_at (x1)
  4. L17
    specialize matrix_recursive_history_step_at (x2)
  5. L18
    specialize matrix_recursive_history_step_at (x3)
  6. L19
    specialize matrix_recursive_history_step_at (0)
  7. L20
    specialize matrix_recursive_history_step_at (pb)
  8. L21
    specialize matrix_recursive_history_step_at (pc)
  9. L22
    specialize matrix_recursive_history_step_at (nb)
  10. L23
    specialize matrix_recursive_history_step_at (nc)
04Use earlier factsL24–29

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

  1. L24
    specialize matrix_recursive_history_step_at (p)
  2. L25
    specialize matrix_recursive_history_step_at (n)
  3. L26
    apply matrix_recursive_history_step_at
  4. L27
    exact hdeterminant_witness_witness_witness_witness_left
  5. L28
    exact hdeterminant_witness_witness_witness_witness_right_left
  6. L29
    exact hdeterminant_witness_witness_witness_witness_right_right
05Separate the logical casesL30–31

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

  1. L30
    cases hlocal
  2. L31
    cases hlocal_left
06Use earlier factsL32–32

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

  1. L32
    exact hlocal_left_right
07Separate the logical casesL33–40

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

  1. L33
    cases hlocal_right
  2. L34
    cases hlocal_right_witness
  3. L35
    cases hlocal_right_witness_witness
  4. L36
    cases hlocal_right_witness_witness_witness
  5. L37
    cases hlocal_right_witness_witness_witness_witness
  6. L38
    cases hlocal_right_witness_witness_witness_witness_witness
  7. L39
    cases hlocal_right_witness_witness_witness_witness_witness_right
  8. L40
    exfalso
08Use earlier factsL41–42

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

  1. L41
    specialize succ_ne_zero (x4)
  2. L42
    apply succ_ne_zero
09Calculate and transport equalitiesL43–43

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L43
    symm
10Use earlier factsL44–44

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

  1. L44
    exact hlocal_right_witness_witness_witness_witness_witness_left

Library-wide reading audit

Original defined command ledger · 44 lines
  1. 0001intro pb
  2. 0002intro pc
  3. 0003intro nb
  4. 0004intro nc
  5. 0005intro p
  6. 0006intro n
  7. 0007intro hdeterminant
  8. 0008cases hdeterminant
  9. 0009cases hdeterminant_witness
  10. 0010cases hdeterminant_witness_witness
  11. 0011cases hdeterminant_witness_witness_witness
  12. 0012cases hdeterminant_witness_witness_witness_witness
  13. 0013cases hdeterminant_witness_witness_witness_witness_right
  14. 0014have hlocal : SignedDeterminantLocalStep(x,x1,x3,0,pb,pc,nb,nc,p,n)
  15. 0015specialize matrix_recursive_history_step_at (x)
  16. 0016specialize matrix_recursive_history_step_at (x1)
  17. 0017specialize matrix_recursive_history_step_at (x2)
  18. 0018specialize matrix_recursive_history_step_at (x3)
  19. 0019specialize matrix_recursive_history_step_at (0)
  20. 0020specialize matrix_recursive_history_step_at (pb)
  21. 0021specialize matrix_recursive_history_step_at (pc)
  22. 0022specialize matrix_recursive_history_step_at (nb)
  23. 0023specialize matrix_recursive_history_step_at (nc)
  24. 0024specialize matrix_recursive_history_step_at (p)
  25. 0025specialize matrix_recursive_history_step_at (n)
  26. 0026apply matrix_recursive_history_step_at
  27. 0027exact hdeterminant_witness_witness_witness_witness_left
  28. 0028exact hdeterminant_witness_witness_witness_witness_right_left
  29. 0029exact hdeterminant_witness_witness_witness_witness_right_right
  30. 0030cases hlocal
  31. 0031cases hlocal_left
  32. 0032exact hlocal_left_right
  33. 0033cases hlocal_right
  34. 0034cases hlocal_right_witness
  35. 0035cases hlocal_right_witness_witness
  36. 0036cases hlocal_right_witness_witness_witness
  37. 0037cases hlocal_right_witness_witness_witness_witness
  38. 0038cases hlocal_right_witness_witness_witness_witness_witness
  39. 0039cases hlocal_right_witness_witness_witness_witness_witness_right
  40. 0040exfalso
  41. 0041specialize succ_ne_zero (x4)
  42. 0042apply succ_ne_zero
  43. 0043symm
  44. 0044exact hlocal_right_witness_witness_witness_witness_witness_left