DL000F

matrix_recursive_children_extend

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

Append one actual smaller determinant to the cofactor streams, preserving all previously certified columns.

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.

Exact expanded first-order arithmetic statement

forall b c l pb pc nb nc q eb ec fb fc k i up us un ut a z. (forall mdr_j_old. (exists mdr_gap_oldj. mdr_gap_oldj + S (mdr_j_old) = (k)) -> exists mdr_i_old mdr_up_old mdr_us_old mdr_un_old mdr_ut_old mdr_p_old mdr_n_old. ((exists mdr_gap_oldi. mdr_gap_oldi + S (mdr_i_old) = (l)) /\ ((exists mdr_z_oldr. ((exists mdr_a_oldrc mdr_b_oldrc mdr_c_oldrc mdr_e_oldrc mdr_f_oldrc. ((mdr_a_oldrc = ((q) + (mdr_up_old)) * S ((q) + (mdr_up_old)) + ((mdr_up_old) + (mdr_up_old))) /\ ((mdr_b_oldrc = ((mdr_us_old) + (mdr_un_old)) * S ((mdr_us_old) + (mdr_un_old)) + ((mdr_un_old) + (mdr_un_old))) /\ ((mdr_c_oldrc = ((mdr_a_oldrc) + (mdr_b_oldrc)) * S ((mdr_a_oldrc) + (mdr_b_oldrc)) + ((mdr_b_oldrc) + (mdr_b_oldrc))) /\ ((mdr_e_oldrc = ((mdr_p_old) + (mdr_n_old)) * S ((mdr_p_old) + (mdr_n_old)) + ((mdr_n_old) + (mdr_n_old))) /\ ((mdr_f_oldrc = ((mdr_ut_old) + (mdr_e_oldrc)) * S ((mdr_ut_old) + (mdr_e_oldrc)) + ((mdr_e_oldrc) + (mdr_e_oldrc))) /\ ((mdr_z_oldr) = ((mdr_c_oldrc) + (mdr_f_oldrc)) * S ((mdr_c_oldrc) + (mdr_f_oldrc)) + ((mdr_f_oldrc) + (mdr_f_oldrc))))))))) /\ (((exists ff_h_mdr_oldrb. ff_h_mdr_oldrb + S (mdr_z_oldr) = S ((S (mdr_i_old)) * c)) /\ exists ff_q_mdr_oldrb. b = ff_q_mdr_oldrb * S ((S (mdr_i_old)) * c) + (mdr_z_oldr))))) /\ ((((forall ff_index_mdm_prefix_mdr_oldm_positive. (exists ff_gap_mdm_lt_mdr_oldm_positive_index_bound. ff_gap_mdm_lt_mdr_oldm_positive_index_bound + S (ff_index_mdm_prefix_mdr_oldm_positive) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_oldm_positive ff_column_mdm_prefix_mdr_oldm_positive ff_value_mdm_prefix_mdr_oldm_positive. (ff_index_mdm_prefix_mdr_oldm_positive = (q) * ff_row_mdm_prefix_mdr_oldm_positive + ff_column_mdm_prefix_mdr_oldm_positive /\ ((exists ff_gap_mdm_lt_mdr_oldm_positive_column_bound. ff_gap_mdm_lt_mdr_oldm_positive_column_bound + S (ff_column_mdm_prefix_mdr_oldm_positive) = (q)) /\ ((exists ff_row_mdm_cell_mdr_oldm_positive_cell ff_column_mdm_cell_mdr_oldm_positive_cell. (((((exists ff_gap_mdm_lt_mdr_oldm_positive_cell_row_before. ff_gap_mdm_lt_mdr_oldm_positive_cell_row_before + S (ff_row_mdm_prefix_mdr_oldm_positive) = (0)) /\ ff_row_mdm_cell_mdr_oldm_positive_cell = ff_row_mdm_prefix_mdr_oldm_positive) \/ ((exists ff_gap_mdm_le_mdr_oldm_positive_cell_row_after. ff_gap_mdm_le_mdr_oldm_positive_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_oldm_positive)) /\ ff_row_mdm_cell_mdr_oldm_positive_cell = S ff_row_mdm_prefix_mdr_oldm_positive))) /\ (((((exists ff_gap_mdm_lt_mdr_oldm_positive_cell_column_before. ff_gap_mdm_lt_mdr_oldm_positive_cell_column_before + S (ff_column_mdm_prefix_mdr_oldm_positive) = (mdr_j_old)) /\ ff_column_mdm_cell_mdr_oldm_positive_cell = ff_column_mdm_prefix_mdr_oldm_positive) \/ ((exists ff_gap_mdm_le_mdr_oldm_positive_cell_column_after. ff_gap_mdm_le_mdr_oldm_positive_cell_column_after + (mdr_j_old) = (ff_column_mdm_prefix_mdr_oldm_positive)) /\ ff_column_mdm_cell_mdr_oldm_positive_cell = S ff_column_mdm_prefix_mdr_oldm_positive))) /\ (((exists ff_h_mdm_mdr_oldm_positive_cell_source. ff_h_mdm_mdr_oldm_positive_cell_source + S (ff_value_mdm_prefix_mdr_oldm_positive) = S ((S ((ff_row_mdm_cell_mdr_oldm_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_oldm_positive_cell))) * pc)) /\ exists ff_q_mdm_mdr_oldm_positive_cell_source. pb = ff_q_mdm_mdr_oldm_positive_cell_source * S ((S ((ff_row_mdm_cell_mdr_oldm_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_oldm_positive_cell))) * pc) + (ff_value_mdm_prefix_mdr_oldm_positive)))))) /\ (((exists ff_h_mdm_mdr_oldm_positive_target. ff_h_mdm_mdr_oldm_positive_target + S (ff_value_mdm_prefix_mdr_oldm_positive) = S ((S (ff_index_mdm_prefix_mdr_oldm_positive)) * mdr_us_old)) /\ exists ff_q_mdm_mdr_oldm_positive_target. mdr_up_old = ff_q_mdm_mdr_oldm_positive_target * S ((S (ff_index_mdm_prefix_mdr_oldm_positive)) * mdr_us_old) + (ff_value_mdm_prefix_mdr_oldm_positive))))))) /\ (forall ff_index_mdm_prefix_mdr_oldm_negative. (exists ff_gap_mdm_lt_mdr_oldm_negative_index_bound. ff_gap_mdm_lt_mdr_oldm_negative_index_bound + S (ff_index_mdm_prefix_mdr_oldm_negative) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_oldm_negative ff_column_mdm_prefix_mdr_oldm_negative ff_value_mdm_prefix_mdr_oldm_negative. (ff_index_mdm_prefix_mdr_oldm_negative = (q) * ff_row_mdm_prefix_mdr_oldm_negative + ff_column_mdm_prefix_mdr_oldm_negative /\ ((exists ff_gap_mdm_lt_mdr_oldm_negative_column_bound. ff_gap_mdm_lt_mdr_oldm_negative_column_bound + S (ff_column_mdm_prefix_mdr_oldm_negative) = (q)) /\ ((exists ff_row_mdm_cell_mdr_oldm_negative_cell ff_column_mdm_cell_mdr_oldm_negative_cell. (((((exists ff_gap_mdm_lt_mdr_oldm_negative_cell_row_before. ff_gap_mdm_lt_mdr_oldm_negative_cell_row_before + S (ff_row_mdm_prefix_mdr_oldm_negative) = (0)) /\ ff_row_mdm_cell_mdr_oldm_negative_cell = ff_row_mdm_prefix_mdr_oldm_negative) \/ ((exists ff_gap_mdm_le_mdr_oldm_negative_cell_row_after. ff_gap_mdm_le_mdr_oldm_negative_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_oldm_negative)) /\ ff_row_mdm_cell_mdr_oldm_negative_cell = S ff_row_mdm_prefix_mdr_oldm_negative))) /\ (((((exists ff_gap_mdm_lt_mdr_oldm_negative_cell_column_before. ff_gap_mdm_lt_mdr_oldm_negative_cell_column_before + S (ff_column_mdm_prefix_mdr_oldm_negative) = (mdr_j_old)) /\ ff_column_mdm_cell_mdr_oldm_negative_cell = ff_column_mdm_prefix_mdr_oldm_negative) \/ ((exists ff_gap_mdm_le_mdr_oldm_negative_cell_column_after. ff_gap_mdm_le_mdr_oldm_negative_cell_column_after + (mdr_j_old) = (ff_column_mdm_prefix_mdr_oldm_negative)) /\ ff_column_mdm_cell_mdr_oldm_negative_cell = S ff_column_mdm_prefix_mdr_oldm_negative))) /\ (((exists ff_h_mdm_mdr_oldm_negative_cell_source. ff_h_mdm_mdr_oldm_negative_cell_source + S (ff_value_mdm_prefix_mdr_oldm_negative) = S ((S ((ff_row_mdm_cell_mdr_oldm_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_oldm_negative_cell))) * nc)) /\ exists ff_q_mdm_mdr_oldm_negative_cell_source. nb = ff_q_mdm_mdr_oldm_negative_cell_source * S ((S ((ff_row_mdm_cell_mdr_oldm_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_oldm_negative_cell))) * nc) + (ff_value_mdm_prefix_mdr_oldm_negative)))))) /\ (((exists ff_h_mdm_mdr_oldm_negative_target. ff_h_mdm_mdr_oldm_negative_target + S (ff_value_mdm_prefix_mdr_oldm_negative) = S ((S (ff_index_mdm_prefix_mdr_oldm_negative)) * mdr_ut_old)) /\ exists ff_q_mdm_mdr_oldm_negative_target. mdr_un_old = ff_q_mdm_mdr_oldm_negative_target * S ((S (ff_index_mdm_prefix_mdr_oldm_negative)) * mdr_ut_old) + (ff_value_mdm_prefix_mdr_oldm_negative))))))))) /\ ((((exists ff_h_mdr_oldp. ff_h_mdr_oldp + S (mdr_p_old) = S ((S (mdr_j_old)) * ec)) /\ exists ff_q_mdr_oldp. eb = ff_q_mdr_oldp * S ((S (mdr_j_old)) * ec) + (mdr_p_old))) /\ (((exists ff_h_mdr_oldn. ff_h_mdr_oldn + S (mdr_n_old) = S ((S (mdr_j_old)) * fc)) /\ exists ff_q_mdr_oldn. fb = ff_q_mdr_oldn * S ((S (mdr_j_old)) * fc) + (mdr_n_old)))))))) -> (exists mdr_gap_append_child_bound. mdr_gap_append_child_bound + S (i) = (l)) -> (exists mdr_z_append_child_record. ((exists mdr_a_append_child_recordc mdr_b_append_child_recordc mdr_c_append_child_recordc mdr_e_append_child_recordc mdr_f_append_child_recordc. ((mdr_a_append_child_recordc = ((q) + (up)) * S ((q) + (up)) + ((up) + (up))) /\ ((mdr_b_append_child_recordc = ((us) + (un)) * S ((us) + (un)) + ((un) + (un))) /\ ((mdr_c_append_child_recordc = ((mdr_a_append_child_recordc) + (mdr_b_append_child_recordc)) * S ((mdr_a_append_child_recordc) + (mdr_b_append_child_recordc)) + ((mdr_b_append_child_recordc) + (mdr_b_append_child_recordc))) /\ ((mdr_e_append_child_recordc = ((a) + (z)) * S ((a) + (z)) + ((z) + (z))) /\ ((mdr_f_append_child_recordc = ((ut) + (mdr_e_append_child_recordc)) * S ((ut) + (mdr_e_append_child_recordc)) + ((mdr_e_append_child_recordc) + (mdr_e_append_child_recordc))) /\ ((mdr_z_append_child_record) = ((mdr_c_append_child_recordc) + (mdr_f_append_child_recordc)) * S ((mdr_c_append_child_recordc) + (mdr_f_append_child_recordc)) + ((mdr_f_append_child_recordc) + (mdr_f_append_child_recordc))))))))) /\ (((exists ff_h_mdr_append_child_recordb. ff_h_mdr_append_child_recordb + S (mdr_z_append_child_record) = S ((S (i)) * c)) /\ exists ff_q_mdr_append_child_recordb. b = ff_q_mdr_append_child_recordb * S ((S (i)) * c) + (mdr_z_append_child_record))))) -> (((forall ff_index_mdm_prefix_mdr_append_child_minor_positive. (exists ff_gap_mdm_lt_mdr_append_child_minor_positive_index_bound. ff_gap_mdm_lt_mdr_append_child_minor_positive_index_bound + S (ff_index_mdm_prefix_mdr_append_child_minor_positive) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_append_child_minor_positive ff_column_mdm_prefix_mdr_append_child_minor_positive ff_value_mdm_prefix_mdr_append_child_minor_positive. (ff_index_mdm_prefix_mdr_append_child_minor_positive = (q) * ff_row_mdm_prefix_mdr_append_child_minor_positive + ff_column_mdm_prefix_mdr_append_child_minor_positive /\ ((exists ff_gap_mdm_lt_mdr_append_child_minor_positive_column_bound. ff_gap_mdm_lt_mdr_append_child_minor_positive_column_bound + S (ff_column_mdm_prefix_mdr_append_child_minor_positive) = (q)) /\ ((exists ff_row_mdm_cell_mdr_append_child_minor_positive_cell ff_column_mdm_cell_mdr_append_child_minor_positive_cell. (((((exists ff_gap_mdm_lt_mdr_append_child_minor_positive_cell_row_before. ff_gap_mdm_lt_mdr_append_child_minor_positive_cell_row_before + S (ff_row_mdm_prefix_mdr_append_child_minor_positive) = (0)) /\ ff_row_mdm_cell_mdr_append_child_minor_positive_cell = ff_row_mdm_prefix_mdr_append_child_minor_positive) \/ ((exists ff_gap_mdm_le_mdr_append_child_minor_positive_cell_row_after. ff_gap_mdm_le_mdr_append_child_minor_positive_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_append_child_minor_positive)) /\ ff_row_mdm_cell_mdr_append_child_minor_positive_cell = S ff_row_mdm_prefix_mdr_append_child_minor_positive))) /\ (((((exists ff_gap_mdm_lt_mdr_append_child_minor_positive_cell_column_before. ff_gap_mdm_lt_mdr_append_child_minor_positive_cell_column_before + S (ff_column_mdm_prefix_mdr_append_child_minor_positive) = (k)) /\ ff_column_mdm_cell_mdr_append_child_minor_positive_cell = ff_column_mdm_prefix_mdr_append_child_minor_positive) \/ ((exists ff_gap_mdm_le_mdr_append_child_minor_positive_cell_column_after. ff_gap_mdm_le_mdr_append_child_minor_positive_cell_column_after + (k) = (ff_column_mdm_prefix_mdr_append_child_minor_positive)) /\ ff_column_mdm_cell_mdr_append_child_minor_positive_cell = S ff_column_mdm_prefix_mdr_append_child_minor_positive))) /\ (((exists ff_h_mdm_mdr_append_child_minor_positive_cell_source. ff_h_mdm_mdr_append_child_minor_positive_cell_source + S (ff_value_mdm_prefix_mdr_append_child_minor_positive) = S ((S ((ff_row_mdm_cell_mdr_append_child_minor_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_append_child_minor_positive_cell))) * pc)) /\ exists ff_q_mdm_mdr_append_child_minor_positive_cell_source. pb = ff_q_mdm_mdr_append_child_minor_positive_cell_source * S ((S ((ff_row_mdm_cell_mdr_append_child_minor_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_append_child_minor_positive_cell))) * pc) + (ff_value_mdm_prefix_mdr_append_child_minor_positive)))))) /\ (((exists ff_h_mdm_mdr_append_child_minor_positive_target. ff_h_mdm_mdr_append_child_minor_positive_target + S (ff_value_mdm_prefix_mdr_append_child_minor_positive) = S ((S (ff_index_mdm_prefix_mdr_append_child_minor_positive)) * us)) /\ exists ff_q_mdm_mdr_append_child_minor_positive_target. up = ff_q_mdm_mdr_append_child_minor_positive_target * S ((S (ff_index_mdm_prefix_mdr_append_child_minor_positive)) * us) + (ff_value_mdm_prefix_mdr_append_child_minor_positive))))))) /\ (forall ff_index_mdm_prefix_mdr_append_child_minor_negative. (exists ff_gap_mdm_lt_mdr_append_child_minor_negative_index_bound. ff_gap_mdm_lt_mdr_append_child_minor_negative_index_bound + S (ff_index_mdm_prefix_mdr_append_child_minor_negative) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_append_child_minor_negative ff_column_mdm_prefix_mdr_append_child_minor_negative ff_value_mdm_prefix_mdr_append_child_minor_negative. (ff_index_mdm_prefix_mdr_append_child_minor_negative = (q) * ff_row_mdm_prefix_mdr_append_child_minor_negative + ff_column_mdm_prefix_mdr_append_child_minor_negative /\ ((exists ff_gap_mdm_lt_mdr_append_child_minor_negative_column_bound. ff_gap_mdm_lt_mdr_append_child_minor_negative_column_bound + S (ff_column_mdm_prefix_mdr_append_child_minor_negative) = (q)) /\ ((exists ff_row_mdm_cell_mdr_append_child_minor_negative_cell ff_column_mdm_cell_mdr_append_child_minor_negative_cell. (((((exists ff_gap_mdm_lt_mdr_append_child_minor_negative_cell_row_before. ff_gap_mdm_lt_mdr_append_child_minor_negative_cell_row_before + S (ff_row_mdm_prefix_mdr_append_child_minor_negative) = (0)) /\ ff_row_mdm_cell_mdr_append_child_minor_negative_cell = ff_row_mdm_prefix_mdr_append_child_minor_negative) \/ ((exists ff_gap_mdm_le_mdr_append_child_minor_negative_cell_row_after. ff_gap_mdm_le_mdr_append_child_minor_negative_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_append_child_minor_negative)) /\ ff_row_mdm_cell_mdr_append_child_minor_negative_cell = S ff_row_mdm_prefix_mdr_append_child_minor_negative))) /\ (((((exists ff_gap_mdm_lt_mdr_append_child_minor_negative_cell_column_before. ff_gap_mdm_lt_mdr_append_child_minor_negative_cell_column_before + S (ff_column_mdm_prefix_mdr_append_child_minor_negative) = (k)) /\ ff_column_mdm_cell_mdr_append_child_minor_negative_cell = ff_column_mdm_prefix_mdr_append_child_minor_negative) \/ ((exists ff_gap_mdm_le_mdr_append_child_minor_negative_cell_column_after. ff_gap_mdm_le_mdr_append_child_minor_negative_cell_column_after + (k) = (ff_column_mdm_prefix_mdr_append_child_minor_negative)) /\ ff_column_mdm_cell_mdr_append_child_minor_negative_cell = S ff_column_mdm_prefix_mdr_append_child_minor_negative))) /\ (((exists ff_h_mdm_mdr_append_child_minor_negative_cell_source. ff_h_mdm_mdr_append_child_minor_negative_cell_source + S (ff_value_mdm_prefix_mdr_append_child_minor_negative) = S ((S ((ff_row_mdm_cell_mdr_append_child_minor_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_append_child_minor_negative_cell))) * nc)) /\ exists ff_q_mdm_mdr_append_child_minor_negative_cell_source. nb = ff_q_mdm_mdr_append_child_minor_negative_cell_source * S ((S ((ff_row_mdm_cell_mdr_append_child_minor_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_append_child_minor_negative_cell))) * nc) + (ff_value_mdm_prefix_mdr_append_child_minor_negative)))))) /\ (((exists ff_h_mdm_mdr_append_child_minor_negative_target. ff_h_mdm_mdr_append_child_minor_negative_target + S (ff_value_mdm_prefix_mdr_append_child_minor_negative) = S ((S (ff_index_mdm_prefix_mdr_append_child_minor_negative)) * ut)) /\ exists ff_q_mdm_mdr_append_child_minor_negative_target. un = ff_q_mdm_mdr_append_child_minor_negative_target * S ((S (ff_index_mdm_prefix_mdr_append_child_minor_negative)) * ut) + (ff_value_mdm_prefix_mdr_append_child_minor_negative))))))))) -> exists ub uc vb vc. (forall mdr_j_append_children. (exists mdr_gap_append_childrenj. mdr_gap_append_childrenj + S (mdr_j_append_children) = (S k)) -> exists mdr_i_append_children mdr_up_append_children mdr_us_append_children mdr_un_append_children mdr_ut_append_children mdr_p_append_children mdr_n_append_children. ((exists mdr_gap_append_childreni. mdr_gap_append_childreni + S (mdr_i_append_children) = (l)) /\ ((exists mdr_z_append_childrenr. ((exists mdr_a_append_childrenrc mdr_b_append_childrenrc mdr_c_append_childrenrc mdr_e_append_childrenrc mdr_f_append_childrenrc. ((mdr_a_append_childrenrc = ((q) + (mdr_up_append_children)) * S ((q) + (mdr_up_append_children)) + ((mdr_up_append_children) + (mdr_up_append_children))) /\ ((mdr_b_append_childrenrc = ((mdr_us_append_children) + (mdr_un_append_children)) * S ((mdr_us_append_children) + (mdr_un_append_children)) + ((mdr_un_append_children) + (mdr_un_append_children))) /\ ((mdr_c_append_childrenrc = ((mdr_a_append_childrenrc) + (mdr_b_append_childrenrc)) * S ((mdr_a_append_childrenrc) + (mdr_b_append_childrenrc)) + ((mdr_b_append_childrenrc) + (mdr_b_append_childrenrc))) /\ ((mdr_e_append_childrenrc = ((mdr_p_append_children) + (mdr_n_append_children)) * S ((mdr_p_append_children) + (mdr_n_append_children)) + ((mdr_n_append_children) + (mdr_n_append_children))) /\ ((mdr_f_append_childrenrc = ((mdr_ut_append_children) + (mdr_e_append_childrenrc)) * S ((mdr_ut_append_children) + (mdr_e_append_childrenrc)) + ((mdr_e_append_childrenrc) + (mdr_e_append_childrenrc))) /\ ((mdr_z_append_childrenr) = ((mdr_c_append_childrenrc) + (mdr_f_append_childrenrc)) * S ((mdr_c_append_childrenrc) + (mdr_f_append_childrenrc)) + ((mdr_f_append_childrenrc) + (mdr_f_append_childrenrc))))))))) /\ (((exists ff_h_mdr_append_childrenrb. ff_h_mdr_append_childrenrb + S (mdr_z_append_childrenr) = S ((S (mdr_i_append_children)) * c)) /\ exists ff_q_mdr_append_childrenrb. b = ff_q_mdr_append_childrenrb * S ((S (mdr_i_append_children)) * c) + (mdr_z_append_childrenr))))) /\ ((((forall ff_index_mdm_prefix_mdr_append_childrenm_positive. (exists ff_gap_mdm_lt_mdr_append_childrenm_positive_index_bound. ff_gap_mdm_lt_mdr_append_childrenm_positive_index_bound + S (ff_index_mdm_prefix_mdr_append_childrenm_positive) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_append_childrenm_positive ff_column_mdm_prefix_mdr_append_childrenm_positive ff_value_mdm_prefix_mdr_append_childrenm_positive. (ff_index_mdm_prefix_mdr_append_childrenm_positive = (q) * ff_row_mdm_prefix_mdr_append_childrenm_positive + ff_column_mdm_prefix_mdr_append_childrenm_positive /\ ((exists ff_gap_mdm_lt_mdr_append_childrenm_positive_column_bound. ff_gap_mdm_lt_mdr_append_childrenm_positive_column_bound + S (ff_column_mdm_prefix_mdr_append_childrenm_positive) = (q)) /\ ((exists ff_row_mdm_cell_mdr_append_childrenm_positive_cell ff_column_mdm_cell_mdr_append_childrenm_positive_cell. (((((exists ff_gap_mdm_lt_mdr_append_childrenm_positive_cell_row_before. ff_gap_mdm_lt_mdr_append_childrenm_positive_cell_row_before + S (ff_row_mdm_prefix_mdr_append_childrenm_positive) = (0)) /\ ff_row_mdm_cell_mdr_append_childrenm_positive_cell = ff_row_mdm_prefix_mdr_append_childrenm_positive) \/ ((exists ff_gap_mdm_le_mdr_append_childrenm_positive_cell_row_after. ff_gap_mdm_le_mdr_append_childrenm_positive_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_append_childrenm_positive)) /\ ff_row_mdm_cell_mdr_append_childrenm_positive_cell = S ff_row_mdm_prefix_mdr_append_childrenm_positive))) /\ (((((exists ff_gap_mdm_lt_mdr_append_childrenm_positive_cell_column_before. ff_gap_mdm_lt_mdr_append_childrenm_positive_cell_column_before + S (ff_column_mdm_prefix_mdr_append_childrenm_positive) = (mdr_j_append_children)) /\ ff_column_mdm_cell_mdr_append_childrenm_positive_cell = ff_column_mdm_prefix_mdr_append_childrenm_positive) \/ ((exists ff_gap_mdm_le_mdr_append_childrenm_positive_cell_column_after. ff_gap_mdm_le_mdr_append_childrenm_positive_cell_column_after + (mdr_j_append_children) = (ff_column_mdm_prefix_mdr_append_childrenm_positive)) /\ ff_column_mdm_cell_mdr_append_childrenm_positive_cell = S ff_column_mdm_prefix_mdr_append_childrenm_positive))) /\ (((exists ff_h_mdm_mdr_append_childrenm_positive_cell_source. ff_h_mdm_mdr_append_childrenm_positive_cell_source + S (ff_value_mdm_prefix_mdr_append_childrenm_positive) = S ((S ((ff_row_mdm_cell_mdr_append_childrenm_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_append_childrenm_positive_cell))) * pc)) /\ exists ff_q_mdm_mdr_append_childrenm_positive_cell_source. pb = ff_q_mdm_mdr_append_childrenm_positive_cell_source * S ((S ((ff_row_mdm_cell_mdr_append_childrenm_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_append_childrenm_positive_cell))) * pc) + (ff_value_mdm_prefix_mdr_append_childrenm_positive)))))) /\ (((exists ff_h_mdm_mdr_append_childrenm_positive_target. ff_h_mdm_mdr_append_childrenm_positive_target + S (ff_value_mdm_prefix_mdr_append_childrenm_positive) = S ((S (ff_index_mdm_prefix_mdr_append_childrenm_positive)) * mdr_us_append_children)) /\ exists ff_q_mdm_mdr_append_childrenm_positive_target. mdr_up_append_children = ff_q_mdm_mdr_append_childrenm_positive_target * S ((S (ff_index_mdm_prefix_mdr_append_childrenm_positive)) * mdr_us_append_children) + (ff_value_mdm_prefix_mdr_append_childrenm_positive))))))) /\ (forall ff_index_mdm_prefix_mdr_append_childrenm_negative. (exists ff_gap_mdm_lt_mdr_append_childrenm_negative_index_bound. ff_gap_mdm_lt_mdr_append_childrenm_negative_index_bound + S (ff_index_mdm_prefix_mdr_append_childrenm_negative) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_append_childrenm_negative ff_column_mdm_prefix_mdr_append_childrenm_negative ff_value_mdm_prefix_mdr_append_childrenm_negative. (ff_index_mdm_prefix_mdr_append_childrenm_negative = (q) * ff_row_mdm_prefix_mdr_append_childrenm_negative + ff_column_mdm_prefix_mdr_append_childrenm_negative /\ ((exists ff_gap_mdm_lt_mdr_append_childrenm_negative_column_bound. ff_gap_mdm_lt_mdr_append_childrenm_negative_column_bound + S (ff_column_mdm_prefix_mdr_append_childrenm_negative) = (q)) /\ ((exists ff_row_mdm_cell_mdr_append_childrenm_negative_cell ff_column_mdm_cell_mdr_append_childrenm_negative_cell. (((((exists ff_gap_mdm_lt_mdr_append_childrenm_negative_cell_row_before. ff_gap_mdm_lt_mdr_append_childrenm_negative_cell_row_before + S (ff_row_mdm_prefix_mdr_append_childrenm_negative) = (0)) /\ ff_row_mdm_cell_mdr_append_childrenm_negative_cell = ff_row_mdm_prefix_mdr_append_childrenm_negative) \/ ((exists ff_gap_mdm_le_mdr_append_childrenm_negative_cell_row_after. ff_gap_mdm_le_mdr_append_childrenm_negative_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_append_childrenm_negative)) /\ ff_row_mdm_cell_mdr_append_childrenm_negative_cell = S ff_row_mdm_prefix_mdr_append_childrenm_negative))) /\ (((((exists ff_gap_mdm_lt_mdr_append_childrenm_negative_cell_column_before. ff_gap_mdm_lt_mdr_append_childrenm_negative_cell_column_before + S (ff_column_mdm_prefix_mdr_append_childrenm_negative) = (mdr_j_append_children)) /\ ff_column_mdm_cell_mdr_append_childrenm_negative_cell = ff_column_mdm_prefix_mdr_append_childrenm_negative) \/ ((exists ff_gap_mdm_le_mdr_append_childrenm_negative_cell_column_after. ff_gap_mdm_le_mdr_append_childrenm_negative_cell_column_after + (mdr_j_append_children) = (ff_column_mdm_prefix_mdr_append_childrenm_negative)) /\ ff_column_mdm_cell_mdr_append_childrenm_negative_cell = S ff_column_mdm_prefix_mdr_append_childrenm_negative))) /\ (((exists ff_h_mdm_mdr_append_childrenm_negative_cell_source. ff_h_mdm_mdr_append_childrenm_negative_cell_source + S (ff_value_mdm_prefix_mdr_append_childrenm_negative) = S ((S ((ff_row_mdm_cell_mdr_append_childrenm_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_append_childrenm_negative_cell))) * nc)) /\ exists ff_q_mdm_mdr_append_childrenm_negative_cell_source. nb = ff_q_mdm_mdr_append_childrenm_negative_cell_source * S ((S ((ff_row_mdm_cell_mdr_append_childrenm_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_append_childrenm_negative_cell))) * nc) + (ff_value_mdm_prefix_mdr_append_childrenm_negative)))))) /\ (((exists ff_h_mdm_mdr_append_childrenm_negative_target. ff_h_mdm_mdr_append_childrenm_negative_target + S (ff_value_mdm_prefix_mdr_append_childrenm_negative) = S ((S (ff_index_mdm_prefix_mdr_append_childrenm_negative)) * mdr_ut_append_children)) /\ exists ff_q_mdm_mdr_append_childrenm_negative_target. mdr_un_append_children = ff_q_mdm_mdr_append_childrenm_negative_target * S ((S (ff_index_mdm_prefix_mdr_append_childrenm_negative)) * mdr_ut_append_children) + (ff_value_mdm_prefix_mdr_append_childrenm_negative))))))))) /\ ((((exists ff_h_mdr_append_childrenp. ff_h_mdr_append_childrenp + S (mdr_p_append_children) = S ((S (mdr_j_append_children)) * uc)) /\ exists ff_q_mdr_append_childrenp. ub = ff_q_mdr_append_childrenp * S ((S (mdr_j_append_children)) * uc) + (mdr_p_append_children))) /\ (((exists ff_h_mdr_append_childrenn. ff_h_mdr_append_childrenn + S (mdr_n_append_children) = S ((S (mdr_j_append_children)) * vc)) /\ exists ff_q_mdr_append_childrenn. vb = ff_q_mdr_append_childrenn * S ((S (mdr_j_append_children)) * vc) + (mdr_n_append_children))))))))

Constructive proof overview

Generated structural guide

Append one actual smaller determinant to the cofactor streams, preserving all previously certified columns.

The unchanged tactic script uses 3 declared prerequisites and contains 103 exact native proof lines.

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

Proof neighborhood

Direct dependencies

beta_prefix_extend Stable theorem; checked-use authorized finite_lt_succ_eq_or_lt Stable theorem; checked-use authorized DL000E matrix_recursive_children_recode

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

Read the argument

Proof checkpoints

103 script commands · 27 reading checkpoints · 4 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.

Named ingredients (1)

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–10

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

  1. L1
    intro b
  2. L2
    intro c
  3. L3
    intro l
  4. L4
    intro pb
  5. L5
    intro pc
  6. L6
    intro nb
  7. L7
    intro nc
  8. L8
    intro q
  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 k
  4. L14
    intro i
  5. L15
    intro up
  6. L16
    intro us
  7. L17
    intro un
  8. L18
    intro ut
  9. L19
    intro a
  10. L20
    intro z
03Fix variables and assumptionsL21–24

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

  1. L21
    intro hchildren
  2. L22
    intro hi
  3. L23
    intro hrecord
  4. L24
    intro hminor
04Establish hposL25–30

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.

  1. L25
    have hpos : ∃ ub. ∃ uc. BetaAt(ub,uc,k,a) ∧ (∀ x. ∀ y. Lt(x,k) → BetaAt(eb,ec,x,y) → BetaAt(ub,uc,x,y))Definitions: LtBetaAt
  2. L26
    specialize beta_prefix_extend (k)
  3. L27
    specialize beta_prefix_extend (eb)
  4. L28
    specialize beta_prefix_extend (ec)
  5. L29
    specialize beta_prefix_extend (a)
  6. L30
    apply beta_prefix_extend
05Separate the logical casesL31–33

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

  1. L31
    cases hpos
  2. L32
    cases hpos_witness
  3. L33
    cases hpos_witness_witness
06Establish hnegL34–39

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.

  1. L34
    have hneg : ∃ vb. ∃ vc. BetaAt(vb,vc,k,z) ∧ (∀ x. ∀ y. Lt(x,k) → BetaAt(fb,fc,x,y) → BetaAt(vb,vc,x,y))Definitions: LtBetaAt
  2. L35
    specialize beta_prefix_extend (k)
  3. L36
    specialize beta_prefix_extend (fb)
  4. L37
    specialize beta_prefix_extend (fc)
  5. L38
    specialize beta_prefix_extend (z)
  6. L39
    apply beta_prefix_extend
07Separate the logical casesL40–42

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

  1. L40
    cases hneg
  2. L41
    cases hneg_witness
  3. L42
    cases hneg_witness_witness
08Establish hrecodedL43–52

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

  1. L43
    have hrecoded : SignedDeterminantChildPrefix(b,c,l,pb,pc,nb,nc,q,x,x1,x2,x3,k)Definitions: SignedDeterminantChildPrefix
  2. L44
    specialize matrix_recursive_children_recode (b)
  3. L45
    specialize matrix_recursive_children_recode (c)
  4. L46
    specialize matrix_recursive_children_recode (l)
  5. L47
    specialize matrix_recursive_children_recode (pb)
  6. L48
    specialize matrix_recursive_children_recode (pc)
  7. L49
    specialize matrix_recursive_children_recode (nb)
  8. L50
    specialize matrix_recursive_children_recode (nc)
  9. L51
    specialize matrix_recursive_children_recode (q)
  10. L52
    specialize matrix_recursive_children_recode (eb)
09Use earlier factsL53–62

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

  1. L53
    specialize matrix_recursive_children_recode (ec)
  2. L54
    specialize matrix_recursive_children_recode (fb)
  3. L55
    specialize matrix_recursive_children_recode (fc)
  4. L56
    specialize matrix_recursive_children_recode (k)
  5. L57
    specialize matrix_recursive_children_recode (x)
  6. L58
    specialize matrix_recursive_children_recode (x1)
  7. L59
    specialize matrix_recursive_children_recode (x2)
  8. L60
    specialize matrix_recursive_children_recode (x3)
  9. L61
    apply matrix_recursive_children_recode
  10. L62
    exact hchildren
10Use earlier factsL63–64

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

  1. L63
    exact hpos_witness_witness_right
  2. L64
    exact hneg_witness_witness_right
11Construct an explicit witnessL65–68

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

  1. L65
    exists x
  2. L66
    exists x1
  3. L67
    exists x2
  4. L68
    exists x3
12Fix variables and assumptionsL69–70

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

  1. L69
    intro j
  2. L70
    intro hj
13Establish hsplitL71–75

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.

  1. L71
    have hsplit : j = k \/ exists gap. gap + S j = k
  2. L72
    specialize finite_lt_succ_eq_or_lt (k)
  3. L73
    specialize finite_lt_succ_eq_or_lt (j)
  4. L74
    apply finite_lt_succ_eq_or_lt
  5. L75
    exact hj
14Separate the logical casesL76–76

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

  1. L76
    cases hsplit
15Construct an explicit witnessL77–83

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

  1. L77
    exists i
  2. L78
    exists up
  3. L79
    exists us
  4. L80
    exists un
  5. L81
    exists ut
  6. L82
    exists a
  7. L83
    exists z
16Separate the logical casesL84–84

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

  1. L84
    split
17Use earlier factsL85–85

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

  1. L85
    exact hi
18Separate the logical casesL86–86

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

  1. L86
    split
19Use earlier factsL87–87

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

  1. L87
    exact hrecord
20Separate the logical casesL88–88

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

  1. L88
    split
21Calculate and transport equalitiesL89–92

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

  1. L89
    rewrite hsplit_left
  2. L90
    rewrite hsplit_left
  3. L91
    rewrite hsplit_left
  4. L92
    rewrite hsplit_left
22Use earlier factsL93–93

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

  1. L93
    exact hminor
23Separate the logical casesL94–94

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

  1. L94
    split
24Calculate and transport equalitiesL95–96

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

  1. L95
    rewrite hsplit_left
  2. L96
    rewrite hsplit_left
25Use earlier factsL97–97

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

  1. L97
    exact hpos_witness_witness_left
26Calculate and transport equalitiesL98–99

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

  1. L98
    rewrite hsplit_left
  2. L99
    rewrite hsplit_left
27Use earlier factsL100–103

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

  1. L100
    exact hneg_witness_witness_left
  2. L101
    specialize hrecoded (j)
  3. L102
    apply hrecoded
  4. L103
    exact hsplit_right

Library-wide reading audit

Original exact command ledger · 103 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro l
  4. 0004intro pb
  5. 0005intro pc
  6. 0006intro nb
  7. 0007intro nc
  8. 0008intro q
  9. 0009intro eb
  10. 0010intro ec
  11. 0011intro fb
  12. 0012intro fc
  13. 0013intro k
  14. 0014intro i
  15. 0015intro up
  16. 0016intro us
  17. 0017intro un
  18. 0018intro ut
  19. 0019intro a
  20. 0020intro z
  21. 0021intro hchildren
  22. 0022intro hi
  23. 0023intro hrecord
  24. 0024intro hminor
  25. 0025have hpos : exists ub uc. ((((exists ff_h_mdr_append_pos. ff_h_mdr_append_pos + S (a) = S ((S (k)) * uc)) /\ exists ff_q_mdr_append_pos. ub = ff_q_mdr_append_pos * S ((S (k)) * uc) + (a))) /\ (forall mdr_i_append_pos_preserve mdr_a_append_pos_preserve. (exists mdr_gap_append_pos_preserveb. mdr_gap_append_pos_preserveb + S (mdr_i_append_pos_preserve) = (k)) -> (((exists ff_h_mdr_append_pos_preserveo. ff_h_mdr_append_pos_preserveo + S (mdr_a_append_pos_preserve) = S ((S (mdr_i_append_pos_preserve)) * ec)) /\ exists ff_q_mdr_append_pos_preserveo. eb = ff_q_mdr_append_pos_preserveo * S ((S (mdr_i_append_pos_preserve)) * ec) + (mdr_a_append_pos_preserve))) -> (((exists ff_h_mdr_append_pos_preserven. ff_h_mdr_append_pos_preserven + S (mdr_a_append_pos_preserve) = S ((S (mdr_i_append_pos_preserve)) * uc)) /\ exists ff_q_mdr_append_pos_preserven. ub = ff_q_mdr_append_pos_preserven * S ((S (mdr_i_append_pos_preserve)) * uc) + (mdr_a_append_pos_preserve)))))
  26. 0026specialize beta_prefix_extend (k)
  27. 0027specialize beta_prefix_extend (eb)
  28. 0028specialize beta_prefix_extend (ec)
  29. 0029specialize beta_prefix_extend (a)
  30. 0030apply beta_prefix_extend
  31. 0031cases hpos
  32. 0032cases hpos_witness
  33. 0033cases hpos_witness_witness
  34. 0034have hneg : exists vb vc. ((((exists ff_h_mdr_append_neg. ff_h_mdr_append_neg + S (z) = S ((S (k)) * vc)) /\ exists ff_q_mdr_append_neg. vb = ff_q_mdr_append_neg * S ((S (k)) * vc) + (z))) /\ (forall mdr_i_append_neg_preserve mdr_a_append_neg_preserve. (exists mdr_gap_append_neg_preserveb. mdr_gap_append_neg_preserveb + S (mdr_i_append_neg_preserve) = (k)) -> (((exists ff_h_mdr_append_neg_preserveo. ff_h_mdr_append_neg_preserveo + S (mdr_a_append_neg_preserve) = S ((S (mdr_i_append_neg_preserve)) * fc)) /\ exists ff_q_mdr_append_neg_preserveo. fb = ff_q_mdr_append_neg_preserveo * S ((S (mdr_i_append_neg_preserve)) * fc) + (mdr_a_append_neg_preserve))) -> (((exists ff_h_mdr_append_neg_preserven. ff_h_mdr_append_neg_preserven + S (mdr_a_append_neg_preserve) = S ((S (mdr_i_append_neg_preserve)) * vc)) /\ exists ff_q_mdr_append_neg_preserven. vb = ff_q_mdr_append_neg_preserven * S ((S (mdr_i_append_neg_preserve)) * vc) + (mdr_a_append_neg_preserve)))))
  35. 0035specialize beta_prefix_extend (k)
  36. 0036specialize beta_prefix_extend (fb)
  37. 0037specialize beta_prefix_extend (fc)
  38. 0038specialize beta_prefix_extend (z)
  39. 0039apply beta_prefix_extend
  40. 0040cases hneg
  41. 0041cases hneg_witness
  42. 0042cases hneg_witness_witness
  43. 0043have hrecoded : forall mdr_j_append_recoded. (exists mdr_gap_append_recodedj. mdr_gap_append_recodedj + S (mdr_j_append_recoded) = (k)) -> exists mdr_i_append_recoded mdr_up_append_recoded mdr_us_append_recoded mdr_un_append_recoded mdr_ut_append_recoded mdr_p_append_recoded mdr_n_append_recoded. ((exists mdr_gap_append_recodedi. mdr_gap_append_recodedi + S (mdr_i_append_recoded) = (l)) /\ ((exists mdr_z_append_recodedr. ((exists mdr_a_append_recodedrc mdr_b_append_recodedrc mdr_c_append_recodedrc mdr_e_append_recodedrc mdr_f_append_recodedrc. ((mdr_a_append_recodedrc = ((q) + (mdr_up_append_recoded)) * S ((q) + (mdr_up_append_recoded)) + ((mdr_up_append_recoded) + (mdr_up_append_recoded))) /\ ((mdr_b_append_recodedrc = ((mdr_us_append_recoded) + (mdr_un_append_recoded)) * S ((mdr_us_append_recoded) + (mdr_un_append_recoded)) + ((mdr_un_append_recoded) + (mdr_un_append_recoded))) /\ ((mdr_c_append_recodedrc = ((mdr_a_append_recodedrc) + (mdr_b_append_recodedrc)) * S ((mdr_a_append_recodedrc) + (mdr_b_append_recodedrc)) + ((mdr_b_append_recodedrc) + (mdr_b_append_recodedrc))) /\ ((mdr_e_append_recodedrc = ((mdr_p_append_recoded) + (mdr_n_append_recoded)) * S ((mdr_p_append_recoded) + (mdr_n_append_recoded)) + ((mdr_n_append_recoded) + (mdr_n_append_recoded))) /\ ((mdr_f_append_recodedrc = ((mdr_ut_append_recoded) + (mdr_e_append_recodedrc)) * S ((mdr_ut_append_recoded) + (mdr_e_append_recodedrc)) + ((mdr_e_append_recodedrc) + (mdr_e_append_recodedrc))) /\ ((mdr_z_append_recodedr) = ((mdr_c_append_recodedrc) + (mdr_f_append_recodedrc)) * S ((mdr_c_append_recodedrc) + (mdr_f_append_recodedrc)) + ((mdr_f_append_recodedrc) + (mdr_f_append_recodedrc))))))))) /\ (((exists ff_h_mdr_append_recodedrb. ff_h_mdr_append_recodedrb + S (mdr_z_append_recodedr) = S ((S (mdr_i_append_recoded)) * c)) /\ exists ff_q_mdr_append_recodedrb. b = ff_q_mdr_append_recodedrb * S ((S (mdr_i_append_recoded)) * c) + (mdr_z_append_recodedr))))) /\ ((((forall ff_index_mdm_prefix_mdr_append_recodedm_positive. (exists ff_gap_mdm_lt_mdr_append_recodedm_positive_index_bound. ff_gap_mdm_lt_mdr_append_recodedm_positive_index_bound + S (ff_index_mdm_prefix_mdr_append_recodedm_positive) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_append_recodedm_positive ff_column_mdm_prefix_mdr_append_recodedm_positive ff_value_mdm_prefix_mdr_append_recodedm_positive. (ff_index_mdm_prefix_mdr_append_recodedm_positive = (q) * ff_row_mdm_prefix_mdr_append_recodedm_positive + ff_column_mdm_prefix_mdr_append_recodedm_positive /\ ((exists ff_gap_mdm_lt_mdr_append_recodedm_positive_column_bound. ff_gap_mdm_lt_mdr_append_recodedm_positive_column_bound + S (ff_column_mdm_prefix_mdr_append_recodedm_positive) = (q)) /\ ((exists ff_row_mdm_cell_mdr_append_recodedm_positive_cell ff_column_mdm_cell_mdr_append_recodedm_positive_cell. (((((exists ff_gap_mdm_lt_mdr_append_recodedm_positive_cell_row_before. ff_gap_mdm_lt_mdr_append_recodedm_positive_cell_row_before + S (ff_row_mdm_prefix_mdr_append_recodedm_positive) = (0)) /\ ff_row_mdm_cell_mdr_append_recodedm_positive_cell = ff_row_mdm_prefix_mdr_append_recodedm_positive) \/ ((exists ff_gap_mdm_le_mdr_append_recodedm_positive_cell_row_after. ff_gap_mdm_le_mdr_append_recodedm_positive_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_append_recodedm_positive)) /\ ff_row_mdm_cell_mdr_append_recodedm_positive_cell = S ff_row_mdm_prefix_mdr_append_recodedm_positive))) /\ (((((exists ff_gap_mdm_lt_mdr_append_recodedm_positive_cell_column_before. ff_gap_mdm_lt_mdr_append_recodedm_positive_cell_column_before + S (ff_column_mdm_prefix_mdr_append_recodedm_positive) = (mdr_j_append_recoded)) /\ ff_column_mdm_cell_mdr_append_recodedm_positive_cell = ff_column_mdm_prefix_mdr_append_recodedm_positive) \/ ((exists ff_gap_mdm_le_mdr_append_recodedm_positive_cell_column_after. ff_gap_mdm_le_mdr_append_recodedm_positive_cell_column_after + (mdr_j_append_recoded) = (ff_column_mdm_prefix_mdr_append_recodedm_positive)) /\ ff_column_mdm_cell_mdr_append_recodedm_positive_cell = S ff_column_mdm_prefix_mdr_append_recodedm_positive))) /\ (((exists ff_h_mdm_mdr_append_recodedm_positive_cell_source. ff_h_mdm_mdr_append_recodedm_positive_cell_source + S (ff_value_mdm_prefix_mdr_append_recodedm_positive) = S ((S ((ff_row_mdm_cell_mdr_append_recodedm_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_append_recodedm_positive_cell))) * pc)) /\ exists ff_q_mdm_mdr_append_recodedm_positive_cell_source. pb = ff_q_mdm_mdr_append_recodedm_positive_cell_source * S ((S ((ff_row_mdm_cell_mdr_append_recodedm_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_append_recodedm_positive_cell))) * pc) + (ff_value_mdm_prefix_mdr_append_recodedm_positive)))))) /\ (((exists ff_h_mdm_mdr_append_recodedm_positive_target. ff_h_mdm_mdr_append_recodedm_positive_target + S (ff_value_mdm_prefix_mdr_append_recodedm_positive) = S ((S (ff_index_mdm_prefix_mdr_append_recodedm_positive)) * mdr_us_append_recoded)) /\ exists ff_q_mdm_mdr_append_recodedm_positive_target. mdr_up_append_recoded = ff_q_mdm_mdr_append_recodedm_positive_target * S ((S (ff_index_mdm_prefix_mdr_append_recodedm_positive)) * mdr_us_append_recoded) + (ff_value_mdm_prefix_mdr_append_recodedm_positive))))))) /\ (forall ff_index_mdm_prefix_mdr_append_recodedm_negative. (exists ff_gap_mdm_lt_mdr_append_recodedm_negative_index_bound. ff_gap_mdm_lt_mdr_append_recodedm_negative_index_bound + S (ff_index_mdm_prefix_mdr_append_recodedm_negative) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_append_recodedm_negative ff_column_mdm_prefix_mdr_append_recodedm_negative ff_value_mdm_prefix_mdr_append_recodedm_negative. (ff_index_mdm_prefix_mdr_append_recodedm_negative = (q) * ff_row_mdm_prefix_mdr_append_recodedm_negative + ff_column_mdm_prefix_mdr_append_recodedm_negative /\ ((exists ff_gap_mdm_lt_mdr_append_recodedm_negative_column_bound. ff_gap_mdm_lt_mdr_append_recodedm_negative_column_bound + S (ff_column_mdm_prefix_mdr_append_recodedm_negative) = (q)) /\ ((exists ff_row_mdm_cell_mdr_append_recodedm_negative_cell ff_column_mdm_cell_mdr_append_recodedm_negative_cell. (((((exists ff_gap_mdm_lt_mdr_append_recodedm_negative_cell_row_before. ff_gap_mdm_lt_mdr_append_recodedm_negative_cell_row_before + S (ff_row_mdm_prefix_mdr_append_recodedm_negative) = (0)) /\ ff_row_mdm_cell_mdr_append_recodedm_negative_cell = ff_row_mdm_prefix_mdr_append_recodedm_negative) \/ ((exists ff_gap_mdm_le_mdr_append_recodedm_negative_cell_row_after. ff_gap_mdm_le_mdr_append_recodedm_negative_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_append_recodedm_negative)) /\ ff_row_mdm_cell_mdr_append_recodedm_negative_cell = S ff_row_mdm_prefix_mdr_append_recodedm_negative))) /\ (((((exists ff_gap_mdm_lt_mdr_append_recodedm_negative_cell_column_before. ff_gap_mdm_lt_mdr_append_recodedm_negative_cell_column_before + S (ff_column_mdm_prefix_mdr_append_recodedm_negative) = (mdr_j_append_recoded)) /\ ff_column_mdm_cell_mdr_append_recodedm_negative_cell = ff_column_mdm_prefix_mdr_append_recodedm_negative) \/ ((exists ff_gap_mdm_le_mdr_append_recodedm_negative_cell_column_after. ff_gap_mdm_le_mdr_append_recodedm_negative_cell_column_after + (mdr_j_append_recoded) = (ff_column_mdm_prefix_mdr_append_recodedm_negative)) /\ ff_column_mdm_cell_mdr_append_recodedm_negative_cell = S ff_column_mdm_prefix_mdr_append_recodedm_negative))) /\ (((exists ff_h_mdm_mdr_append_recodedm_negative_cell_source. ff_h_mdm_mdr_append_recodedm_negative_cell_source + S (ff_value_mdm_prefix_mdr_append_recodedm_negative) = S ((S ((ff_row_mdm_cell_mdr_append_recodedm_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_append_recodedm_negative_cell))) * nc)) /\ exists ff_q_mdm_mdr_append_recodedm_negative_cell_source. nb = ff_q_mdm_mdr_append_recodedm_negative_cell_source * S ((S ((ff_row_mdm_cell_mdr_append_recodedm_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_append_recodedm_negative_cell))) * nc) + (ff_value_mdm_prefix_mdr_append_recodedm_negative)))))) /\ (((exists ff_h_mdm_mdr_append_recodedm_negative_target. ff_h_mdm_mdr_append_recodedm_negative_target + S (ff_value_mdm_prefix_mdr_append_recodedm_negative) = S ((S (ff_index_mdm_prefix_mdr_append_recodedm_negative)) * mdr_ut_append_recoded)) /\ exists ff_q_mdm_mdr_append_recodedm_negative_target. mdr_un_append_recoded = ff_q_mdm_mdr_append_recodedm_negative_target * S ((S (ff_index_mdm_prefix_mdr_append_recodedm_negative)) * mdr_ut_append_recoded) + (ff_value_mdm_prefix_mdr_append_recodedm_negative))))))))) /\ ((((exists ff_h_mdr_append_recodedp. ff_h_mdr_append_recodedp + S (mdr_p_append_recoded) = S ((S (mdr_j_append_recoded)) * x1)) /\ exists ff_q_mdr_append_recodedp. x = ff_q_mdr_append_recodedp * S ((S (mdr_j_append_recoded)) * x1) + (mdr_p_append_recoded))) /\ (((exists ff_h_mdr_append_recodedn. ff_h_mdr_append_recodedn + S (mdr_n_append_recoded) = S ((S (mdr_j_append_recoded)) * x3)) /\ exists ff_q_mdr_append_recodedn. x2 = ff_q_mdr_append_recodedn * S ((S (mdr_j_append_recoded)) * x3) + (mdr_n_append_recoded)))))))
  44. 0044specialize matrix_recursive_children_recode (b)
  45. 0045specialize matrix_recursive_children_recode (c)
  46. 0046specialize matrix_recursive_children_recode (l)
  47. 0047specialize matrix_recursive_children_recode (pb)
  48. 0048specialize matrix_recursive_children_recode (pc)
  49. 0049specialize matrix_recursive_children_recode (nb)
  50. 0050specialize matrix_recursive_children_recode (nc)
  51. 0051specialize matrix_recursive_children_recode (q)
  52. 0052specialize matrix_recursive_children_recode (eb)
  53. 0053specialize matrix_recursive_children_recode (ec)
  54. 0054specialize matrix_recursive_children_recode (fb)
  55. 0055specialize matrix_recursive_children_recode (fc)
  56. 0056specialize matrix_recursive_children_recode (k)
  57. 0057specialize matrix_recursive_children_recode (x)
  58. 0058specialize matrix_recursive_children_recode (x1)
  59. 0059specialize matrix_recursive_children_recode (x2)
  60. 0060specialize matrix_recursive_children_recode (x3)
  61. 0061apply matrix_recursive_children_recode
  62. 0062exact hchildren
  63. 0063exact hpos_witness_witness_right
  64. 0064exact hneg_witness_witness_right
  65. 0065exists x
  66. 0066exists x1
  67. 0067exists x2
  68. 0068exists x3
  69. 0069intro j
  70. 0070intro hj
  71. 0071have hsplit : j = k \/ exists gap. gap + S j = k
  72. 0072specialize finite_lt_succ_eq_or_lt (k)
  73. 0073specialize finite_lt_succ_eq_or_lt (j)
  74. 0074apply finite_lt_succ_eq_or_lt
  75. 0075exact hj
  76. 0076cases hsplit
  77. 0077exists i
  78. 0078exists up
  79. 0079exists us
  80. 0080exists un
  81. 0081exists ut
  82. 0082exists a
  83. 0083exists z
  84. 0084split
  85. 0085exact hi
  86. 0086split
  87. 0087exact hrecord
  88. 0088split
  89. 0089rewrite hsplit_left
  90. 0090rewrite hsplit_left
  91. 0091rewrite hsplit_left
  92. 0092rewrite hsplit_left
  93. 0093exact hminor
  94. 0094split
  95. 0095rewrite hsplit_left
  96. 0096rewrite hsplit_left
  97. 0097exact hpos_witness_witness_left
  98. 0098rewrite hsplit_left
  99. 0099rewrite hsplit_left
  100. 0100exact hneg_witness_witness_left
  101. 0101specialize hrecoded (j)
  102. 0102apply hrecoded
  103. 0103exact hsplit_right