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
∀ b. ∀ c. ∀ l. ∀ pb. ∀ pc. ∀ nb. ∀ nc. ∀ q. ∀ eb. ∀ ec. ∀ fb. ∀ fc. ∀ k. ∀ ub. ∀ uc. ∀ vb. ∀ vc. SignedDeterminantChildPrefix(b,c,l,pb,pc,nb,nc,q,eb,ec,fb,fc,k) → (∀ x. ∀ y. Lt(x,k) → BetaAt(eb,ec,x,y) → BetaAt(ub,uc,x,y) ) → (∀ x. ∀ y. Lt(x,k) → BetaAt(fb,fc,x,y) → BetaAt(vb,vc,x,y) ) → SignedDeterminantChildPrefix(b,c,l,pb,pc,nb,nc,q,ub,uc,vb,vc,k)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG SignedMatrixMinor(pb,pc,nb,nc,w,r,d,q,up,us,un,ut) · 1 SignedDeterminantNodeAt(b,c,i,d,pb,pc,nb,nc,p,n) · 1 SignedDeterminantChildPrefix(b,c,limit,pb,pc,nb,nc,q,eb,ec,fb,fc,l) · 2 Lt(a,b) · 3 BetaAt(b,c,i,x) · 6
Actual proof prerequisites none
Original expanded first-order 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))))))))
Complete tactic proof in conservative notation
All 61 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 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.
Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.
Expand checkpoints Collapse checkpoints Show original steps Find a step
01 Fix variables and assumptions L1–10 Work with arbitrary variables or the premises of the current implication.
L1 intro b
L2 intro c
L3 intro l
L4 intro pb
L5 intro pc
L6 intro nb
L7 intro nc
L8 intro q
L9 intro eb
L10 intro ec
02 Fix variables and assumptions L11–20 Work with arbitrary variables or the premises of the current implication.
L11 intro fb
L12 intro fc
L13 intro k
L14 intro ub
L15 intro uc
L16 intro vb
L17 intro vc
L18 intro hchildren
L19 intro hpositive
L20 intro hnegative
03 Fix variables and assumptions L21–22 Work with arbitrary variables or the premises of the current implication.
L21 intro j
L22 intro hj
04 Establish hentry L23–26 Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hchildren.
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: 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) Original native command in the exact edition L24 specialize hchildren (j)
L25 apply hchildren
L26 exact hj
05 Separate the logical cases L27–36 Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
L27 cases hentry
L28 cases hentry_witness
L29 cases hentry_witness_witness
L30 cases hentry_witness_witness_witness
L31 cases hentry_witness_witness_witness_witness
L32 cases hentry_witness_witness_witness_witness_witness
L33 cases hentry_witness_witness_witness_witness_witness_witness
L34 cases hentry_witness_witness_witness_witness_witness_witness_witness
L35 cases hentry_witness_witness_witness_witness_witness_witness_witness_right
L36 cases hentry_witness_witness_witness_witness_witness_witness_witness_right_right
06 Separate the logical cases L37–37 Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
L37 cases hentry_witness_witness_witness_witness_witness_witness_witness_right_right_right
07 Construct an explicit witness L38–44 Supply the displayed value, then prove that it has the required property.
L38 exists x
L39 exists x1
L40 exists x2
L41 exists x3
L42 exists x4
L43 exists x5
L44 exists x6
08 Separate the logical cases L45–45 Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
L45 split
09 Use earlier facts L46–46 Instantiate or apply named facts and discharge the corresponding proof obligations.
L46 exact hentry_witness_witness_witness_witness_witness_witness_witness_left
10 Separate the logical cases L47–47 Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
L47 split
11 Use earlier facts L48–48 Instantiate or apply named facts and discharge the corresponding proof obligations.
L48 exact hentry_witness_witness_witness_witness_witness_witness_witness_right_left
12 Separate the logical cases L49–49 Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
L49 split
13 Use earlier facts L50–50 Instantiate or apply named facts and discharge the corresponding proof obligations.
L50 exact hentry_witness_witness_witness_witness_witness_witness_witness_right_right_left
14 Separate the logical cases L51–51 Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
L51 split
15 Use earlier facts L52–61 Instantiate or apply named facts and discharge the corresponding proof obligations.
L52 specialize hpositive (j)
L53 specialize hpositive (x5)
L54 apply hpositive
L55 exact hj
L56 exact hentry_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
L57 specialize hnegative (j)
L58 specialize hnegative (x6)
L59 apply hnegative
L60 exact hj
L61 exact hentry_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
Library-wide reading audit
Original defined command ledger · 61 lines 0001 intro b0002 intro c0003 intro l0004 intro pb0005 intro pc0006 intro nb0007 intro nc0008 intro q0009 intro eb0010 intro ec0011 intro fb0012 intro fc0013 intro k0014 intro ub0015 intro uc0016 intro vb0017 intro vc0018 intro hchildren0019 intro hpositive0020 intro hnegative0021 intro j0022 intro hj0023 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) )))0024 specialize hchildren (j)0025 apply hchildren0026 exact hj0027 cases hentry0028 cases hentry_witness0029 cases hentry_witness_witness0030 cases hentry_witness_witness_witness0031 cases hentry_witness_witness_witness_witness0032 cases hentry_witness_witness_witness_witness_witness0033 cases hentry_witness_witness_witness_witness_witness_witness0034 cases hentry_witness_witness_witness_witness_witness_witness_witness0035 cases hentry_witness_witness_witness_witness_witness_witness_witness_right0036 cases hentry_witness_witness_witness_witness_witness_witness_witness_right_right0037 cases hentry_witness_witness_witness_witness_witness_witness_witness_right_right_right0038 exists x0039 exists x10040 exists x20041 exists x30042 exists x40043 exists x50044 exists x60045 split0046 exact hentry_witness_witness_witness_witness_witness_witness_witness_left0047 split0048 exact hentry_witness_witness_witness_witness_witness_witness_witness_right_left0049 split0050 exact hentry_witness_witness_witness_witness_witness_witness_witness_right_right_left0051 split0052 specialize hpositive (j)0053 specialize hpositive (x5)0054 apply hpositive0055 exact hj0056 exact hentry_witness_witness_witness_witness_witness_witness_witness_right_right_right_left0057 specialize hnegative (j)0058 specialize hnegative (x6)0059 apply hnegative0060 exact hj0061 exact hentry_witness_witness_witness_witness_witness_witness_witness_right_right_right_right