DL000E

matrix_recursive_children_recode

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

Reencoding the two already computed cofactor-value streams preserves every actual minor evaluation.

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 ub uc vb vc. (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)))))))) -> (forall mdr_i_recode_p mdr_a_recode_p. (exists mdr_gap_recode_pb. mdr_gap_recode_pb + S (mdr_i_recode_p) = (k)) -> (((exists ff_h_mdr_recode_po. ff_h_mdr_recode_po + S (mdr_a_recode_p) = S ((S (mdr_i_recode_p)) * ec)) /\ exists ff_q_mdr_recode_po. eb = ff_q_mdr_recode_po * S ((S (mdr_i_recode_p)) * ec) + (mdr_a_recode_p))) -> (((exists ff_h_mdr_recode_pn. ff_h_mdr_recode_pn + S (mdr_a_recode_p) = S ((S (mdr_i_recode_p)) * uc)) /\ exists ff_q_mdr_recode_pn. ub = ff_q_mdr_recode_pn * S ((S (mdr_i_recode_p)) * uc) + (mdr_a_recode_p)))) -> (forall mdr_i_recode_n mdr_a_recode_n. (exists mdr_gap_recode_nb. mdr_gap_recode_nb + S (mdr_i_recode_n) = (k)) -> (((exists ff_h_mdr_recode_no. ff_h_mdr_recode_no + S (mdr_a_recode_n) = S ((S (mdr_i_recode_n)) * fc)) /\ exists ff_q_mdr_recode_no. fb = ff_q_mdr_recode_no * S ((S (mdr_i_recode_n)) * fc) + (mdr_a_recode_n))) -> (((exists ff_h_mdr_recode_nn. ff_h_mdr_recode_nn + S (mdr_a_recode_n) = S ((S (mdr_i_recode_n)) * vc)) /\ exists ff_q_mdr_recode_nn. vb = ff_q_mdr_recode_nn * S ((S (mdr_i_recode_n)) * vc) + (mdr_a_recode_n)))) -> (forall mdr_j_recoded. (exists mdr_gap_recodedj. mdr_gap_recodedj + S (mdr_j_recoded) = (k)) -> exists mdr_i_recoded mdr_up_recoded mdr_us_recoded mdr_un_recoded mdr_ut_recoded mdr_p_recoded mdr_n_recoded. ((exists mdr_gap_recodedi. mdr_gap_recodedi + S (mdr_i_recoded) = (l)) /\ ((exists mdr_z_recodedr. ((exists mdr_a_recodedrc mdr_b_recodedrc mdr_c_recodedrc mdr_e_recodedrc mdr_f_recodedrc. ((mdr_a_recodedrc = ((q) + (mdr_up_recoded)) * S ((q) + (mdr_up_recoded)) + ((mdr_up_recoded) + (mdr_up_recoded))) /\ ((mdr_b_recodedrc = ((mdr_us_recoded) + (mdr_un_recoded)) * S ((mdr_us_recoded) + (mdr_un_recoded)) + ((mdr_un_recoded) + (mdr_un_recoded))) /\ ((mdr_c_recodedrc = ((mdr_a_recodedrc) + (mdr_b_recodedrc)) * S ((mdr_a_recodedrc) + (mdr_b_recodedrc)) + ((mdr_b_recodedrc) + (mdr_b_recodedrc))) /\ ((mdr_e_recodedrc = ((mdr_p_recoded) + (mdr_n_recoded)) * S ((mdr_p_recoded) + (mdr_n_recoded)) + ((mdr_n_recoded) + (mdr_n_recoded))) /\ ((mdr_f_recodedrc = ((mdr_ut_recoded) + (mdr_e_recodedrc)) * S ((mdr_ut_recoded) + (mdr_e_recodedrc)) + ((mdr_e_recodedrc) + (mdr_e_recodedrc))) /\ ((mdr_z_recodedr) = ((mdr_c_recodedrc) + (mdr_f_recodedrc)) * S ((mdr_c_recodedrc) + (mdr_f_recodedrc)) + ((mdr_f_recodedrc) + (mdr_f_recodedrc))))))))) /\ (((exists ff_h_mdr_recodedrb. ff_h_mdr_recodedrb + S (mdr_z_recodedr) = S ((S (mdr_i_recoded)) * c)) /\ exists ff_q_mdr_recodedrb. b = ff_q_mdr_recodedrb * S ((S (mdr_i_recoded)) * c) + (mdr_z_recodedr))))) /\ ((((forall ff_index_mdm_prefix_mdr_recodedm_positive. (exists ff_gap_mdm_lt_mdr_recodedm_positive_index_bound. ff_gap_mdm_lt_mdr_recodedm_positive_index_bound + S (ff_index_mdm_prefix_mdr_recodedm_positive) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_recodedm_positive ff_column_mdm_prefix_mdr_recodedm_positive ff_value_mdm_prefix_mdr_recodedm_positive. (ff_index_mdm_prefix_mdr_recodedm_positive = (q) * ff_row_mdm_prefix_mdr_recodedm_positive + ff_column_mdm_prefix_mdr_recodedm_positive /\ ((exists ff_gap_mdm_lt_mdr_recodedm_positive_column_bound. ff_gap_mdm_lt_mdr_recodedm_positive_column_bound + S (ff_column_mdm_prefix_mdr_recodedm_positive) = (q)) /\ ((exists ff_row_mdm_cell_mdr_recodedm_positive_cell ff_column_mdm_cell_mdr_recodedm_positive_cell. (((((exists ff_gap_mdm_lt_mdr_recodedm_positive_cell_row_before. ff_gap_mdm_lt_mdr_recodedm_positive_cell_row_before + S (ff_row_mdm_prefix_mdr_recodedm_positive) = (0)) /\ ff_row_mdm_cell_mdr_recodedm_positive_cell = ff_row_mdm_prefix_mdr_recodedm_positive) \/ ((exists ff_gap_mdm_le_mdr_recodedm_positive_cell_row_after. ff_gap_mdm_le_mdr_recodedm_positive_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_recodedm_positive)) /\ ff_row_mdm_cell_mdr_recodedm_positive_cell = S ff_row_mdm_prefix_mdr_recodedm_positive))) /\ (((((exists ff_gap_mdm_lt_mdr_recodedm_positive_cell_column_before. ff_gap_mdm_lt_mdr_recodedm_positive_cell_column_before + S (ff_column_mdm_prefix_mdr_recodedm_positive) = (mdr_j_recoded)) /\ ff_column_mdm_cell_mdr_recodedm_positive_cell = ff_column_mdm_prefix_mdr_recodedm_positive) \/ ((exists ff_gap_mdm_le_mdr_recodedm_positive_cell_column_after. ff_gap_mdm_le_mdr_recodedm_positive_cell_column_after + (mdr_j_recoded) = (ff_column_mdm_prefix_mdr_recodedm_positive)) /\ ff_column_mdm_cell_mdr_recodedm_positive_cell = S ff_column_mdm_prefix_mdr_recodedm_positive))) /\ (((exists ff_h_mdm_mdr_recodedm_positive_cell_source. ff_h_mdm_mdr_recodedm_positive_cell_source + S (ff_value_mdm_prefix_mdr_recodedm_positive) = S ((S ((ff_row_mdm_cell_mdr_recodedm_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_recodedm_positive_cell))) * pc)) /\ exists ff_q_mdm_mdr_recodedm_positive_cell_source. pb = ff_q_mdm_mdr_recodedm_positive_cell_source * S ((S ((ff_row_mdm_cell_mdr_recodedm_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_recodedm_positive_cell))) * pc) + (ff_value_mdm_prefix_mdr_recodedm_positive)))))) /\ (((exists ff_h_mdm_mdr_recodedm_positive_target. ff_h_mdm_mdr_recodedm_positive_target + S (ff_value_mdm_prefix_mdr_recodedm_positive) = S ((S (ff_index_mdm_prefix_mdr_recodedm_positive)) * mdr_us_recoded)) /\ exists ff_q_mdm_mdr_recodedm_positive_target. mdr_up_recoded = ff_q_mdm_mdr_recodedm_positive_target * S ((S (ff_index_mdm_prefix_mdr_recodedm_positive)) * mdr_us_recoded) + (ff_value_mdm_prefix_mdr_recodedm_positive))))))) /\ (forall ff_index_mdm_prefix_mdr_recodedm_negative. (exists ff_gap_mdm_lt_mdr_recodedm_negative_index_bound. ff_gap_mdm_lt_mdr_recodedm_negative_index_bound + S (ff_index_mdm_prefix_mdr_recodedm_negative) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_recodedm_negative ff_column_mdm_prefix_mdr_recodedm_negative ff_value_mdm_prefix_mdr_recodedm_negative. (ff_index_mdm_prefix_mdr_recodedm_negative = (q) * ff_row_mdm_prefix_mdr_recodedm_negative + ff_column_mdm_prefix_mdr_recodedm_negative /\ ((exists ff_gap_mdm_lt_mdr_recodedm_negative_column_bound. ff_gap_mdm_lt_mdr_recodedm_negative_column_bound + S (ff_column_mdm_prefix_mdr_recodedm_negative) = (q)) /\ ((exists ff_row_mdm_cell_mdr_recodedm_negative_cell ff_column_mdm_cell_mdr_recodedm_negative_cell. (((((exists ff_gap_mdm_lt_mdr_recodedm_negative_cell_row_before. ff_gap_mdm_lt_mdr_recodedm_negative_cell_row_before + S (ff_row_mdm_prefix_mdr_recodedm_negative) = (0)) /\ ff_row_mdm_cell_mdr_recodedm_negative_cell = ff_row_mdm_prefix_mdr_recodedm_negative) \/ ((exists ff_gap_mdm_le_mdr_recodedm_negative_cell_row_after. ff_gap_mdm_le_mdr_recodedm_negative_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_recodedm_negative)) /\ ff_row_mdm_cell_mdr_recodedm_negative_cell = S ff_row_mdm_prefix_mdr_recodedm_negative))) /\ (((((exists ff_gap_mdm_lt_mdr_recodedm_negative_cell_column_before. ff_gap_mdm_lt_mdr_recodedm_negative_cell_column_before + S (ff_column_mdm_prefix_mdr_recodedm_negative) = (mdr_j_recoded)) /\ ff_column_mdm_cell_mdr_recodedm_negative_cell = ff_column_mdm_prefix_mdr_recodedm_negative) \/ ((exists ff_gap_mdm_le_mdr_recodedm_negative_cell_column_after. ff_gap_mdm_le_mdr_recodedm_negative_cell_column_after + (mdr_j_recoded) = (ff_column_mdm_prefix_mdr_recodedm_negative)) /\ ff_column_mdm_cell_mdr_recodedm_negative_cell = S ff_column_mdm_prefix_mdr_recodedm_negative))) /\ (((exists ff_h_mdm_mdr_recodedm_negative_cell_source. ff_h_mdm_mdr_recodedm_negative_cell_source + S (ff_value_mdm_prefix_mdr_recodedm_negative) = S ((S ((ff_row_mdm_cell_mdr_recodedm_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_recodedm_negative_cell))) * nc)) /\ exists ff_q_mdm_mdr_recodedm_negative_cell_source. nb = ff_q_mdm_mdr_recodedm_negative_cell_source * S ((S ((ff_row_mdm_cell_mdr_recodedm_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_recodedm_negative_cell))) * nc) + (ff_value_mdm_prefix_mdr_recodedm_negative)))))) /\ (((exists ff_h_mdm_mdr_recodedm_negative_target. ff_h_mdm_mdr_recodedm_negative_target + S (ff_value_mdm_prefix_mdr_recodedm_negative) = S ((S (ff_index_mdm_prefix_mdr_recodedm_negative)) * mdr_ut_recoded)) /\ exists ff_q_mdm_mdr_recodedm_negative_target. mdr_un_recoded = ff_q_mdm_mdr_recodedm_negative_target * S ((S (ff_index_mdm_prefix_mdr_recodedm_negative)) * mdr_ut_recoded) + (ff_value_mdm_prefix_mdr_recodedm_negative))))))))) /\ ((((exists ff_h_mdr_recodedp. ff_h_mdr_recodedp + S (mdr_p_recoded) = S ((S (mdr_j_recoded)) * uc)) /\ exists ff_q_mdr_recodedp. ub = ff_q_mdr_recodedp * S ((S (mdr_j_recoded)) * uc) + (mdr_p_recoded))) /\ (((exists ff_h_mdr_recodedn. ff_h_mdr_recodedn + S (mdr_n_recoded) = S ((S (mdr_j_recoded)) * vc)) /\ exists ff_q_mdr_recodedn. vb = ff_q_mdr_recodedn * S ((S (mdr_j_recoded)) * vc) + (mdr_n_recoded))))))))

Constructive proof overview

Generated structural guide

Reencoding the two already computed cofactor-value streams preserves every actual minor evaluation.

The unchanged tactic script uses 0 declared prerequisites and contains 61 exact native proof lines.

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

Proof neighborhood

Direct dependencies

none

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

61 script commands · 15 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.

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 ub
  5. L15
    intro uc
  6. L16
    intro vb
  7. L17
    intro vc
  8. L18
    intro hchildren
  9. L19
    intro hpositive
  10. L20
    intro hnegative
03Fix variables and assumptionsL21–22

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

  1. L21
    intro j
  2. L22
    intro hj
04Establish hentryL23–26

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

  1. L23
    have hentry : ∃ i. ∃ up. ∃ us. ∃ un. ∃ ut. ∃ a. ∃ z. Lt(i,l) ∧ (SignedDeterminantNodeAt(b,c,i,q,up,us,un,ut,a,z) ∧ (SignedMatrixMinor(pb,pc,nb,nc,S q,0,j,q,up,us,un,ut) ∧ (BetaAt(eb,ec,j,a) ∧ BetaAt(fb,fc,j,z))))Definitions: SignedMatrixMinorSignedDeterminantNodeAtLtBetaAt
  2. L24
    specialize hchildren (j)
  3. L25
    apply hchildren
  4. L26
    exact hj
05Separate the logical casesL27–36

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

  1. L27
    cases hentry
  2. L28
    cases hentry_witness
  3. L29
    cases hentry_witness_witness
  4. L30
    cases hentry_witness_witness_witness
  5. L31
    cases hentry_witness_witness_witness_witness
  6. L32
    cases hentry_witness_witness_witness_witness_witness
  7. L33
    cases hentry_witness_witness_witness_witness_witness_witness
  8. L34
    cases hentry_witness_witness_witness_witness_witness_witness_witness
  9. L35
    cases hentry_witness_witness_witness_witness_witness_witness_witness_right
  10. L36
    cases hentry_witness_witness_witness_witness_witness_witness_witness_right_right
06Separate the logical casesL37–37

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

  1. L37
    cases hentry_witness_witness_witness_witness_witness_witness_witness_right_right_right
07Construct an explicit witnessL38–44

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

  1. L38
    exists x
  2. L39
    exists x1
  3. L40
    exists x2
  4. L41
    exists x3
  5. L42
    exists x4
  6. L43
    exists x5
  7. L44
    exists x6
08Separate the logical casesL45–45

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

  1. L45
    split
09Use earlier factsL46–46

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

  1. L46
    exact hentry_witness_witness_witness_witness_witness_witness_witness_left
10Separate the logical casesL47–47

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

  1. L47
    split
11Use earlier factsL48–48

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

  1. L48
    exact hentry_witness_witness_witness_witness_witness_witness_witness_right_left
12Separate the logical casesL49–49

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

  1. L49
    split
13Use earlier factsL50–50

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

  1. L50
    exact hentry_witness_witness_witness_witness_witness_witness_witness_right_right_left
14Separate the logical casesL51–51

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

  1. L51
    split
15Use earlier factsL52–61

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

  1. L52
    specialize hpositive (j)
  2. L53
    specialize hpositive (x5)
  3. L54
    apply hpositive
  4. L55
    exact hj
  5. L56
    exact hentry_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  6. L57
    specialize hnegative (j)
  7. L58
    specialize hnegative (x6)
  8. L59
    apply hnegative
  9. L60
    exact hj
  10. L61
    exact hentry_witness_witness_witness_witness_witness_witness_witness_right_right_right_right

Library-wide reading audit

Original exact command ledger · 61 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 ub
  15. 0015intro uc
  16. 0016intro vb
  17. 0017intro vc
  18. 0018intro hchildren
  19. 0019intro hpositive
  20. 0020intro hnegative
  21. 0021intro j
  22. 0022intro hj
  23. 0023have hentry : exists i up us un ut a z. ((exists mdr_gap_at_i. mdr_gap_at_i + S (i) = (l)) /\ ((exists mdr_z_at_r. ((exists mdr_a_at_rc mdr_b_at_rc mdr_c_at_rc mdr_e_at_rc mdr_f_at_rc. ((mdr_a_at_rc = ((q) + (up)) * S ((q) + (up)) + ((up) + (up))) /\ ((mdr_b_at_rc = ((us) + (un)) * S ((us) + (un)) + ((un) + (un))) /\ ((mdr_c_at_rc = ((mdr_a_at_rc) + (mdr_b_at_rc)) * S ((mdr_a_at_rc) + (mdr_b_at_rc)) + ((mdr_b_at_rc) + (mdr_b_at_rc))) /\ ((mdr_e_at_rc = ((a) + (z)) * S ((a) + (z)) + ((z) + (z))) /\ ((mdr_f_at_rc = ((ut) + (mdr_e_at_rc)) * S ((ut) + (mdr_e_at_rc)) + ((mdr_e_at_rc) + (mdr_e_at_rc))) /\ ((mdr_z_at_r) = ((mdr_c_at_rc) + (mdr_f_at_rc)) * S ((mdr_c_at_rc) + (mdr_f_at_rc)) + ((mdr_f_at_rc) + (mdr_f_at_rc))))))))) /\ (((exists ff_h_mdr_at_rb. ff_h_mdr_at_rb + S (mdr_z_at_r) = S ((S (i)) * c)) /\ exists ff_q_mdr_at_rb. b = ff_q_mdr_at_rb * S ((S (i)) * c) + (mdr_z_at_r))))) /\ ((((forall ff_index_mdm_prefix_mdr_at_m_positive. (exists ff_gap_mdm_lt_mdr_at_m_positive_index_bound. ff_gap_mdm_lt_mdr_at_m_positive_index_bound + S (ff_index_mdm_prefix_mdr_at_m_positive) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_at_m_positive ff_column_mdm_prefix_mdr_at_m_positive ff_value_mdm_prefix_mdr_at_m_positive. (ff_index_mdm_prefix_mdr_at_m_positive = (q) * ff_row_mdm_prefix_mdr_at_m_positive + ff_column_mdm_prefix_mdr_at_m_positive /\ ((exists ff_gap_mdm_lt_mdr_at_m_positive_column_bound. ff_gap_mdm_lt_mdr_at_m_positive_column_bound + S (ff_column_mdm_prefix_mdr_at_m_positive) = (q)) /\ ((exists ff_row_mdm_cell_mdr_at_m_positive_cell ff_column_mdm_cell_mdr_at_m_positive_cell. (((((exists ff_gap_mdm_lt_mdr_at_m_positive_cell_row_before. ff_gap_mdm_lt_mdr_at_m_positive_cell_row_before + S (ff_row_mdm_prefix_mdr_at_m_positive) = (0)) /\ ff_row_mdm_cell_mdr_at_m_positive_cell = ff_row_mdm_prefix_mdr_at_m_positive) \/ ((exists ff_gap_mdm_le_mdr_at_m_positive_cell_row_after. ff_gap_mdm_le_mdr_at_m_positive_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_at_m_positive)) /\ ff_row_mdm_cell_mdr_at_m_positive_cell = S ff_row_mdm_prefix_mdr_at_m_positive))) /\ (((((exists ff_gap_mdm_lt_mdr_at_m_positive_cell_column_before. ff_gap_mdm_lt_mdr_at_m_positive_cell_column_before + S (ff_column_mdm_prefix_mdr_at_m_positive) = (j)) /\ ff_column_mdm_cell_mdr_at_m_positive_cell = ff_column_mdm_prefix_mdr_at_m_positive) \/ ((exists ff_gap_mdm_le_mdr_at_m_positive_cell_column_after. ff_gap_mdm_le_mdr_at_m_positive_cell_column_after + (j) = (ff_column_mdm_prefix_mdr_at_m_positive)) /\ ff_column_mdm_cell_mdr_at_m_positive_cell = S ff_column_mdm_prefix_mdr_at_m_positive))) /\ (((exists ff_h_mdm_mdr_at_m_positive_cell_source. ff_h_mdm_mdr_at_m_positive_cell_source + S (ff_value_mdm_prefix_mdr_at_m_positive) = S ((S ((ff_row_mdm_cell_mdr_at_m_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_at_m_positive_cell))) * pc)) /\ exists ff_q_mdm_mdr_at_m_positive_cell_source. pb = ff_q_mdm_mdr_at_m_positive_cell_source * S ((S ((ff_row_mdm_cell_mdr_at_m_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_at_m_positive_cell))) * pc) + (ff_value_mdm_prefix_mdr_at_m_positive)))))) /\ (((exists ff_h_mdm_mdr_at_m_positive_target. ff_h_mdm_mdr_at_m_positive_target + S (ff_value_mdm_prefix_mdr_at_m_positive) = S ((S (ff_index_mdm_prefix_mdr_at_m_positive)) * us)) /\ exists ff_q_mdm_mdr_at_m_positive_target. up = ff_q_mdm_mdr_at_m_positive_target * S ((S (ff_index_mdm_prefix_mdr_at_m_positive)) * us) + (ff_value_mdm_prefix_mdr_at_m_positive))))))) /\ (forall ff_index_mdm_prefix_mdr_at_m_negative. (exists ff_gap_mdm_lt_mdr_at_m_negative_index_bound. ff_gap_mdm_lt_mdr_at_m_negative_index_bound + S (ff_index_mdm_prefix_mdr_at_m_negative) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_at_m_negative ff_column_mdm_prefix_mdr_at_m_negative ff_value_mdm_prefix_mdr_at_m_negative. (ff_index_mdm_prefix_mdr_at_m_negative = (q) * ff_row_mdm_prefix_mdr_at_m_negative + ff_column_mdm_prefix_mdr_at_m_negative /\ ((exists ff_gap_mdm_lt_mdr_at_m_negative_column_bound. ff_gap_mdm_lt_mdr_at_m_negative_column_bound + S (ff_column_mdm_prefix_mdr_at_m_negative) = (q)) /\ ((exists ff_row_mdm_cell_mdr_at_m_negative_cell ff_column_mdm_cell_mdr_at_m_negative_cell. (((((exists ff_gap_mdm_lt_mdr_at_m_negative_cell_row_before. ff_gap_mdm_lt_mdr_at_m_negative_cell_row_before + S (ff_row_mdm_prefix_mdr_at_m_negative) = (0)) /\ ff_row_mdm_cell_mdr_at_m_negative_cell = ff_row_mdm_prefix_mdr_at_m_negative) \/ ((exists ff_gap_mdm_le_mdr_at_m_negative_cell_row_after. ff_gap_mdm_le_mdr_at_m_negative_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_at_m_negative)) /\ ff_row_mdm_cell_mdr_at_m_negative_cell = S ff_row_mdm_prefix_mdr_at_m_negative))) /\ (((((exists ff_gap_mdm_lt_mdr_at_m_negative_cell_column_before. ff_gap_mdm_lt_mdr_at_m_negative_cell_column_before + S (ff_column_mdm_prefix_mdr_at_m_negative) = (j)) /\ ff_column_mdm_cell_mdr_at_m_negative_cell = ff_column_mdm_prefix_mdr_at_m_negative) \/ ((exists ff_gap_mdm_le_mdr_at_m_negative_cell_column_after. ff_gap_mdm_le_mdr_at_m_negative_cell_column_after + (j) = (ff_column_mdm_prefix_mdr_at_m_negative)) /\ ff_column_mdm_cell_mdr_at_m_negative_cell = S ff_column_mdm_prefix_mdr_at_m_negative))) /\ (((exists ff_h_mdm_mdr_at_m_negative_cell_source. ff_h_mdm_mdr_at_m_negative_cell_source + S (ff_value_mdm_prefix_mdr_at_m_negative) = S ((S ((ff_row_mdm_cell_mdr_at_m_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_at_m_negative_cell))) * nc)) /\ exists ff_q_mdm_mdr_at_m_negative_cell_source. nb = ff_q_mdm_mdr_at_m_negative_cell_source * S ((S ((ff_row_mdm_cell_mdr_at_m_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_at_m_negative_cell))) * nc) + (ff_value_mdm_prefix_mdr_at_m_negative)))))) /\ (((exists ff_h_mdm_mdr_at_m_negative_target. ff_h_mdm_mdr_at_m_negative_target + S (ff_value_mdm_prefix_mdr_at_m_negative) = S ((S (ff_index_mdm_prefix_mdr_at_m_negative)) * ut)) /\ exists ff_q_mdm_mdr_at_m_negative_target. un = ff_q_mdm_mdr_at_m_negative_target * S ((S (ff_index_mdm_prefix_mdr_at_m_negative)) * ut) + (ff_value_mdm_prefix_mdr_at_m_negative))))))))) /\ ((((exists ff_h_mdr_at_p. ff_h_mdr_at_p + S (a) = S ((S (j)) * ec)) /\ exists ff_q_mdr_at_p. eb = ff_q_mdr_at_p * S ((S (j)) * ec) + (a))) /\ (((exists ff_h_mdr_at_n. ff_h_mdr_at_n + S (z) = S ((S (j)) * fc)) /\ exists ff_q_mdr_at_n. fb = ff_q_mdr_at_n * S ((S (j)) * fc) + (z)))))))
  24. 0024specialize hchildren (j)
  25. 0025apply hchildren
  26. 0026exact hj
  27. 0027cases hentry
  28. 0028cases hentry_witness
  29. 0029cases hentry_witness_witness
  30. 0030cases hentry_witness_witness_witness
  31. 0031cases hentry_witness_witness_witness_witness
  32. 0032cases hentry_witness_witness_witness_witness_witness
  33. 0033cases hentry_witness_witness_witness_witness_witness_witness
  34. 0034cases hentry_witness_witness_witness_witness_witness_witness_witness
  35. 0035cases hentry_witness_witness_witness_witness_witness_witness_witness_right
  36. 0036cases hentry_witness_witness_witness_witness_witness_witness_witness_right_right
  37. 0037cases hentry_witness_witness_witness_witness_witness_witness_witness_right_right_right
  38. 0038exists x
  39. 0039exists x1
  40. 0040exists x2
  41. 0041exists x3
  42. 0042exists x4
  43. 0043exists x5
  44. 0044exists x6
  45. 0045split
  46. 0046exact hentry_witness_witness_witness_witness_witness_witness_witness_left
  47. 0047split
  48. 0048exact hentry_witness_witness_witness_witness_witness_witness_witness_right_left
  49. 0049split
  50. 0050exact hentry_witness_witness_witness_witness_witness_witness_witness_right_right_left
  51. 0051split
  52. 0052specialize hpositive (j)
  53. 0053specialize hpositive (x5)
  54. 0054apply hpositive
  55. 0055exact hj
  56. 0056exact hentry_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  57. 0057specialize hnegative (j)
  58. 0058specialize hnegative (x6)
  59. 0059apply hnegative
  60. 0060exact hj
  61. 0061exact hentry_witness_witness_witness_witness_witness_witness_witness_right_right_right_right