DL0099

matrix_integer_signed_selected_balance

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

Every pair of genuinely selected submatrices from integer-equal rectangular parents has equal represented integer entries, despite arbitrary component recodings.

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 ab ac bb bc eb ec fb fc r w q rb rc cb cc ub uc vb vc Ub Uc Vb Vc. (forall ics_index_selected_matrix_parents ics_value0_selected_matrix_parents ics_value1_selected_matrix_parents ics_value2_selected_matrix_parents ics_value3_selected_matrix_parents. (exists ics_gap_selected_matrix_parents_bound. ics_gap_selected_matrix_parents_bound + S (ics_index_selected_matrix_parents) = ((r) * (w))) -> (((exists fs_h_ics_selected_matrix_parents_at0. fs_h_ics_selected_matrix_parents_at0 + S (ics_value0_selected_matrix_parents) = S ((S (ics_index_selected_matrix_parents)) * ac)) /\ exists fs_q_ics_selected_matrix_parents_at0. ab = fs_q_ics_selected_matrix_parents_at0 * S ((S (ics_index_selected_matrix_parents)) * ac) + (ics_value0_selected_matrix_parents))) -> (((exists fs_h_ics_selected_matrix_parents_at1. fs_h_ics_selected_matrix_parents_at1 + S (ics_value1_selected_matrix_parents) = S ((S (ics_index_selected_matrix_parents)) * bc)) /\ exists fs_q_ics_selected_matrix_parents_at1. bb = fs_q_ics_selected_matrix_parents_at1 * S ((S (ics_index_selected_matrix_parents)) * bc) + (ics_value1_selected_matrix_parents))) -> (((exists fs_h_ics_selected_matrix_parents_at2. fs_h_ics_selected_matrix_parents_at2 + S (ics_value2_selected_matrix_parents) = S ((S (ics_index_selected_matrix_parents)) * ec)) /\ exists fs_q_ics_selected_matrix_parents_at2. eb = fs_q_ics_selected_matrix_parents_at2 * S ((S (ics_index_selected_matrix_parents)) * ec) + (ics_value2_selected_matrix_parents))) -> (((exists fs_h_ics_selected_matrix_parents_at3. fs_h_ics_selected_matrix_parents_at3 + S (ics_value3_selected_matrix_parents) = S ((S (ics_index_selected_matrix_parents)) * fc)) /\ exists fs_q_ics_selected_matrix_parents_at3. fb = fs_q_ics_selected_matrix_parents_at3 * S ((S (ics_index_selected_matrix_parents)) * fc) + (ics_value3_selected_matrix_parents))) -> ics_value0_selected_matrix_parents + ics_value3_selected_matrix_parents = ics_value2_selected_matrix_parents + ics_value1_selected_matrix_parents) -> (((forall fom_index_mrf_selected_matrix_rowsbound. (exists fom_gap_mrf_selected_matrix_rowsbound_index_bound. fom_gap_mrf_selected_matrix_rowsbound_index_bound + S (fom_index_mrf_selected_matrix_rowsbound) = q) -> exists fom_value_mrf_selected_matrix_rowsbound. ((((exists fom_beta_height_mrf_selected_matrix_rowsbound_entry. fom_beta_height_mrf_selected_matrix_rowsbound_entry + S (fom_value_mrf_selected_matrix_rowsbound) = S ((S (fom_index_mrf_selected_matrix_rowsbound)) * rc)) /\ exists fom_beta_quotient_mrf_selected_matrix_rowsbound_entry. rb = fom_beta_quotient_mrf_selected_matrix_rowsbound_entry * S ((S (fom_index_mrf_selected_matrix_rowsbound)) * rc) + (fom_value_mrf_selected_matrix_rowsbound))) /\ (exists fom_gap_mrf_selected_matrix_rowsbound_value_bound. fom_gap_mrf_selected_matrix_rowsbound_value_bound + S (fom_value_mrf_selected_matrix_rowsbound) = r))) /\ (forall mdr_i_selected_matrix_rowsdistinct mdr_j_selected_matrix_rowsdistinct mdr_a_selected_matrix_rowsdistinct. (exists mdr_gap_selected_matrix_rowsdistincti. mdr_gap_selected_matrix_rowsdistincti + S (mdr_i_selected_matrix_rowsdistinct) = (q)) -> (exists mdr_gap_selected_matrix_rowsdistinctj. mdr_gap_selected_matrix_rowsdistinctj + S (mdr_j_selected_matrix_rowsdistinct) = (q)) -> (((exists ff_h_mdr_selected_matrix_rowsdistinctfirst. ff_h_mdr_selected_matrix_rowsdistinctfirst + S (mdr_a_selected_matrix_rowsdistinct) = S ((S (mdr_i_selected_matrix_rowsdistinct)) * rc)) /\ exists ff_q_mdr_selected_matrix_rowsdistinctfirst. rb = ff_q_mdr_selected_matrix_rowsdistinctfirst * S ((S (mdr_i_selected_matrix_rowsdistinct)) * rc) + (mdr_a_selected_matrix_rowsdistinct))) -> (((exists ff_h_mdr_selected_matrix_rowsdistinctsecond. ff_h_mdr_selected_matrix_rowsdistinctsecond + S (mdr_a_selected_matrix_rowsdistinct) = S ((S (mdr_j_selected_matrix_rowsdistinct)) * rc)) /\ exists ff_q_mdr_selected_matrix_rowsdistinctsecond. rb = ff_q_mdr_selected_matrix_rowsdistinctsecond * S ((S (mdr_j_selected_matrix_rowsdistinct)) * rc) + (mdr_a_selected_matrix_rowsdistinct))) -> mdr_i_selected_matrix_rowsdistinct = mdr_j_selected_matrix_rowsdistinct))) -> (((forall fom_index_mrf_selected_matrix_columnsbound. (exists fom_gap_mrf_selected_matrix_columnsbound_index_bound. fom_gap_mrf_selected_matrix_columnsbound_index_bound + S (fom_index_mrf_selected_matrix_columnsbound) = q) -> exists fom_value_mrf_selected_matrix_columnsbound. ((((exists fom_beta_height_mrf_selected_matrix_columnsbound_entry. fom_beta_height_mrf_selected_matrix_columnsbound_entry + S (fom_value_mrf_selected_matrix_columnsbound) = S ((S (fom_index_mrf_selected_matrix_columnsbound)) * cc)) /\ exists fom_beta_quotient_mrf_selected_matrix_columnsbound_entry. cb = fom_beta_quotient_mrf_selected_matrix_columnsbound_entry * S ((S (fom_index_mrf_selected_matrix_columnsbound)) * cc) + (fom_value_mrf_selected_matrix_columnsbound))) /\ (exists fom_gap_mrf_selected_matrix_columnsbound_value_bound. fom_gap_mrf_selected_matrix_columnsbound_value_bound + S (fom_value_mrf_selected_matrix_columnsbound) = w))) /\ (forall mdr_i_selected_matrix_columnsdistinct mdr_j_selected_matrix_columnsdistinct mdr_a_selected_matrix_columnsdistinct. (exists mdr_gap_selected_matrix_columnsdistincti. mdr_gap_selected_matrix_columnsdistincti + S (mdr_i_selected_matrix_columnsdistinct) = (q)) -> (exists mdr_gap_selected_matrix_columnsdistinctj. mdr_gap_selected_matrix_columnsdistinctj + S (mdr_j_selected_matrix_columnsdistinct) = (q)) -> (((exists ff_h_mdr_selected_matrix_columnsdistinctfirst. ff_h_mdr_selected_matrix_columnsdistinctfirst + S (mdr_a_selected_matrix_columnsdistinct) = S ((S (mdr_i_selected_matrix_columnsdistinct)) * cc)) /\ exists ff_q_mdr_selected_matrix_columnsdistinctfirst. cb = ff_q_mdr_selected_matrix_columnsdistinctfirst * S ((S (mdr_i_selected_matrix_columnsdistinct)) * cc) + (mdr_a_selected_matrix_columnsdistinct))) -> (((exists ff_h_mdr_selected_matrix_columnsdistinctsecond. ff_h_mdr_selected_matrix_columnsdistinctsecond + S (mdr_a_selected_matrix_columnsdistinct) = S ((S (mdr_j_selected_matrix_columnsdistinct)) * cc)) /\ exists ff_q_mdr_selected_matrix_columnsdistinctsecond. cb = ff_q_mdr_selected_matrix_columnsdistinctsecond * S ((S (mdr_j_selected_matrix_columnsdistinct)) * cc) + (mdr_a_selected_matrix_columnsdistinct))) -> mdr_i_selected_matrix_columnsdistinct = mdr_j_selected_matrix_columnsdistinct))) -> (((forall mdr_i_first_selected_matrixpositive. (exists mdr_gap_first_selected_matrixpositivebound. mdr_gap_first_selected_matrixpositivebound + S (mdr_i_first_selected_matrixpositive) = ((q) * (q))) -> exists mdr_a_first_selected_matrixpositive. (((exists mdr_r_first_selected_matrixpositivepoint mdr_s_first_selected_matrixpositivepoint mdr_u_first_selected_matrixpositivepoint mdr_v_first_selected_matrixpositivepoint. ((mdr_i_first_selected_matrixpositive = (q) * mdr_r_first_selected_matrixpositivepoint + mdr_s_first_selected_matrixpositivepoint) /\ ((exists mdr_gap_first_selected_matrixpositivepointcolumn. mdr_gap_first_selected_matrixpositivepointcolumn + S (mdr_s_first_selected_matrixpositivepoint) = (q)) /\ ((((exists ff_h_mdr_first_selected_matrixpositivepointrow_index. ff_h_mdr_first_selected_matrixpositivepointrow_index + S (mdr_u_first_selected_matrixpositivepoint) = S ((S (mdr_r_first_selected_matrixpositivepoint)) * rc)) /\ exists ff_q_mdr_first_selected_matrixpositivepointrow_index. rb = ff_q_mdr_first_selected_matrixpositivepointrow_index * S ((S (mdr_r_first_selected_matrixpositivepoint)) * rc) + (mdr_u_first_selected_matrixpositivepoint))) /\ ((((exists ff_h_mdr_first_selected_matrixpositivepointcolumn_index. ff_h_mdr_first_selected_matrixpositivepointcolumn_index + S (mdr_v_first_selected_matrixpositivepoint) = S ((S (mdr_s_first_selected_matrixpositivepoint)) * cc)) /\ exists ff_q_mdr_first_selected_matrixpositivepointcolumn_index. cb = ff_q_mdr_first_selected_matrixpositivepointcolumn_index * S ((S (mdr_s_first_selected_matrixpositivepoint)) * cc) + (mdr_v_first_selected_matrixpositivepoint))) /\ (((exists ff_h_mdr_first_selected_matrixpositivepointsource. ff_h_mdr_first_selected_matrixpositivepointsource + S (mdr_a_first_selected_matrixpositive) = S ((S ((mdr_u_first_selected_matrixpositivepoint) * (w) + (mdr_v_first_selected_matrixpositivepoint))) * ac)) /\ exists ff_q_mdr_first_selected_matrixpositivepointsource. ab = ff_q_mdr_first_selected_matrixpositivepointsource * S ((S ((mdr_u_first_selected_matrixpositivepoint) * (w) + (mdr_v_first_selected_matrixpositivepoint))) * ac) + (mdr_a_first_selected_matrixpositive)))))))) /\ (((exists ff_h_mdr_first_selected_matrixpositiveoutput. ff_h_mdr_first_selected_matrixpositiveoutput + S (mdr_a_first_selected_matrixpositive) = S ((S (mdr_i_first_selected_matrixpositive)) * uc)) /\ exists ff_q_mdr_first_selected_matrixpositiveoutput. ub = ff_q_mdr_first_selected_matrixpositiveoutput * S ((S (mdr_i_first_selected_matrixpositive)) * uc) + (mdr_a_first_selected_matrixpositive)))))) /\ (forall mdr_i_first_selected_matrixnegative. (exists mdr_gap_first_selected_matrixnegativebound. mdr_gap_first_selected_matrixnegativebound + S (mdr_i_first_selected_matrixnegative) = ((q) * (q))) -> exists mdr_a_first_selected_matrixnegative. (((exists mdr_r_first_selected_matrixnegativepoint mdr_s_first_selected_matrixnegativepoint mdr_u_first_selected_matrixnegativepoint mdr_v_first_selected_matrixnegativepoint. ((mdr_i_first_selected_matrixnegative = (q) * mdr_r_first_selected_matrixnegativepoint + mdr_s_first_selected_matrixnegativepoint) /\ ((exists mdr_gap_first_selected_matrixnegativepointcolumn. mdr_gap_first_selected_matrixnegativepointcolumn + S (mdr_s_first_selected_matrixnegativepoint) = (q)) /\ ((((exists ff_h_mdr_first_selected_matrixnegativepointrow_index. ff_h_mdr_first_selected_matrixnegativepointrow_index + S (mdr_u_first_selected_matrixnegativepoint) = S ((S (mdr_r_first_selected_matrixnegativepoint)) * rc)) /\ exists ff_q_mdr_first_selected_matrixnegativepointrow_index. rb = ff_q_mdr_first_selected_matrixnegativepointrow_index * S ((S (mdr_r_first_selected_matrixnegativepoint)) * rc) + (mdr_u_first_selected_matrixnegativepoint))) /\ ((((exists ff_h_mdr_first_selected_matrixnegativepointcolumn_index. ff_h_mdr_first_selected_matrixnegativepointcolumn_index + S (mdr_v_first_selected_matrixnegativepoint) = S ((S (mdr_s_first_selected_matrixnegativepoint)) * cc)) /\ exists ff_q_mdr_first_selected_matrixnegativepointcolumn_index. cb = ff_q_mdr_first_selected_matrixnegativepointcolumn_index * S ((S (mdr_s_first_selected_matrixnegativepoint)) * cc) + (mdr_v_first_selected_matrixnegativepoint))) /\ (((exists ff_h_mdr_first_selected_matrixnegativepointsource. ff_h_mdr_first_selected_matrixnegativepointsource + S (mdr_a_first_selected_matrixnegative) = S ((S ((mdr_u_first_selected_matrixnegativepoint) * (w) + (mdr_v_first_selected_matrixnegativepoint))) * bc)) /\ exists ff_q_mdr_first_selected_matrixnegativepointsource. bb = ff_q_mdr_first_selected_matrixnegativepointsource * S ((S ((mdr_u_first_selected_matrixnegativepoint) * (w) + (mdr_v_first_selected_matrixnegativepoint))) * bc) + (mdr_a_first_selected_matrixnegative)))))))) /\ (((exists ff_h_mdr_first_selected_matrixnegativeoutput. ff_h_mdr_first_selected_matrixnegativeoutput + S (mdr_a_first_selected_matrixnegative) = S ((S (mdr_i_first_selected_matrixnegative)) * vc)) /\ exists ff_q_mdr_first_selected_matrixnegativeoutput. vb = ff_q_mdr_first_selected_matrixnegativeoutput * S ((S (mdr_i_first_selected_matrixnegative)) * vc) + (mdr_a_first_selected_matrixnegative)))))))) -> (((forall mdr_i_second_selected_matrixpositive. (exists mdr_gap_second_selected_matrixpositivebound. mdr_gap_second_selected_matrixpositivebound + S (mdr_i_second_selected_matrixpositive) = ((q) * (q))) -> exists mdr_a_second_selected_matrixpositive. (((exists mdr_r_second_selected_matrixpositivepoint mdr_s_second_selected_matrixpositivepoint mdr_u_second_selected_matrixpositivepoint mdr_v_second_selected_matrixpositivepoint. ((mdr_i_second_selected_matrixpositive = (q) * mdr_r_second_selected_matrixpositivepoint + mdr_s_second_selected_matrixpositivepoint) /\ ((exists mdr_gap_second_selected_matrixpositivepointcolumn. mdr_gap_second_selected_matrixpositivepointcolumn + S (mdr_s_second_selected_matrixpositivepoint) = (q)) /\ ((((exists ff_h_mdr_second_selected_matrixpositivepointrow_index. ff_h_mdr_second_selected_matrixpositivepointrow_index + S (mdr_u_second_selected_matrixpositivepoint) = S ((S (mdr_r_second_selected_matrixpositivepoint)) * rc)) /\ exists ff_q_mdr_second_selected_matrixpositivepointrow_index. rb = ff_q_mdr_second_selected_matrixpositivepointrow_index * S ((S (mdr_r_second_selected_matrixpositivepoint)) * rc) + (mdr_u_second_selected_matrixpositivepoint))) /\ ((((exists ff_h_mdr_second_selected_matrixpositivepointcolumn_index. ff_h_mdr_second_selected_matrixpositivepointcolumn_index + S (mdr_v_second_selected_matrixpositivepoint) = S ((S (mdr_s_second_selected_matrixpositivepoint)) * cc)) /\ exists ff_q_mdr_second_selected_matrixpositivepointcolumn_index. cb = ff_q_mdr_second_selected_matrixpositivepointcolumn_index * S ((S (mdr_s_second_selected_matrixpositivepoint)) * cc) + (mdr_v_second_selected_matrixpositivepoint))) /\ (((exists ff_h_mdr_second_selected_matrixpositivepointsource. ff_h_mdr_second_selected_matrixpositivepointsource + S (mdr_a_second_selected_matrixpositive) = S ((S ((mdr_u_second_selected_matrixpositivepoint) * (w) + (mdr_v_second_selected_matrixpositivepoint))) * ec)) /\ exists ff_q_mdr_second_selected_matrixpositivepointsource. eb = ff_q_mdr_second_selected_matrixpositivepointsource * S ((S ((mdr_u_second_selected_matrixpositivepoint) * (w) + (mdr_v_second_selected_matrixpositivepoint))) * ec) + (mdr_a_second_selected_matrixpositive)))))))) /\ (((exists ff_h_mdr_second_selected_matrixpositiveoutput. ff_h_mdr_second_selected_matrixpositiveoutput + S (mdr_a_second_selected_matrixpositive) = S ((S (mdr_i_second_selected_matrixpositive)) * Uc)) /\ exists ff_q_mdr_second_selected_matrixpositiveoutput. Ub = ff_q_mdr_second_selected_matrixpositiveoutput * S ((S (mdr_i_second_selected_matrixpositive)) * Uc) + (mdr_a_second_selected_matrixpositive)))))) /\ (forall mdr_i_second_selected_matrixnegative. (exists mdr_gap_second_selected_matrixnegativebound. mdr_gap_second_selected_matrixnegativebound + S (mdr_i_second_selected_matrixnegative) = ((q) * (q))) -> exists mdr_a_second_selected_matrixnegative. (((exists mdr_r_second_selected_matrixnegativepoint mdr_s_second_selected_matrixnegativepoint mdr_u_second_selected_matrixnegativepoint mdr_v_second_selected_matrixnegativepoint. ((mdr_i_second_selected_matrixnegative = (q) * mdr_r_second_selected_matrixnegativepoint + mdr_s_second_selected_matrixnegativepoint) /\ ((exists mdr_gap_second_selected_matrixnegativepointcolumn. mdr_gap_second_selected_matrixnegativepointcolumn + S (mdr_s_second_selected_matrixnegativepoint) = (q)) /\ ((((exists ff_h_mdr_second_selected_matrixnegativepointrow_index. ff_h_mdr_second_selected_matrixnegativepointrow_index + S (mdr_u_second_selected_matrixnegativepoint) = S ((S (mdr_r_second_selected_matrixnegativepoint)) * rc)) /\ exists ff_q_mdr_second_selected_matrixnegativepointrow_index. rb = ff_q_mdr_second_selected_matrixnegativepointrow_index * S ((S (mdr_r_second_selected_matrixnegativepoint)) * rc) + (mdr_u_second_selected_matrixnegativepoint))) /\ ((((exists ff_h_mdr_second_selected_matrixnegativepointcolumn_index. ff_h_mdr_second_selected_matrixnegativepointcolumn_index + S (mdr_v_second_selected_matrixnegativepoint) = S ((S (mdr_s_second_selected_matrixnegativepoint)) * cc)) /\ exists ff_q_mdr_second_selected_matrixnegativepointcolumn_index. cb = ff_q_mdr_second_selected_matrixnegativepointcolumn_index * S ((S (mdr_s_second_selected_matrixnegativepoint)) * cc) + (mdr_v_second_selected_matrixnegativepoint))) /\ (((exists ff_h_mdr_second_selected_matrixnegativepointsource. ff_h_mdr_second_selected_matrixnegativepointsource + S (mdr_a_second_selected_matrixnegative) = S ((S ((mdr_u_second_selected_matrixnegativepoint) * (w) + (mdr_v_second_selected_matrixnegativepoint))) * fc)) /\ exists ff_q_mdr_second_selected_matrixnegativepointsource. fb = ff_q_mdr_second_selected_matrixnegativepointsource * S ((S ((mdr_u_second_selected_matrixnegativepoint) * (w) + (mdr_v_second_selected_matrixnegativepoint))) * fc) + (mdr_a_second_selected_matrixnegative)))))))) /\ (((exists ff_h_mdr_second_selected_matrixnegativeoutput. ff_h_mdr_second_selected_matrixnegativeoutput + S (mdr_a_second_selected_matrixnegative) = S ((S (mdr_i_second_selected_matrixnegative)) * Vc)) /\ exists ff_q_mdr_second_selected_matrixnegativeoutput. Vb = ff_q_mdr_second_selected_matrixnegativeoutput * S ((S (mdr_i_second_selected_matrixnegative)) * Vc) + (mdr_a_second_selected_matrixnegative)))))))) -> (forall ics_index_selected_matrices_equal ics_value0_selected_matrices_equal ics_value1_selected_matrices_equal ics_value2_selected_matrices_equal ics_value3_selected_matrices_equal. (exists ics_gap_selected_matrices_equal_bound. ics_gap_selected_matrices_equal_bound + S (ics_index_selected_matrices_equal) = ((q) * (q))) -> (((exists fs_h_ics_selected_matrices_equal_at0. fs_h_ics_selected_matrices_equal_at0 + S (ics_value0_selected_matrices_equal) = S ((S (ics_index_selected_matrices_equal)) * uc)) /\ exists fs_q_ics_selected_matrices_equal_at0. ub = fs_q_ics_selected_matrices_equal_at0 * S ((S (ics_index_selected_matrices_equal)) * uc) + (ics_value0_selected_matrices_equal))) -> (((exists fs_h_ics_selected_matrices_equal_at1. fs_h_ics_selected_matrices_equal_at1 + S (ics_value1_selected_matrices_equal) = S ((S (ics_index_selected_matrices_equal)) * vc)) /\ exists fs_q_ics_selected_matrices_equal_at1. vb = fs_q_ics_selected_matrices_equal_at1 * S ((S (ics_index_selected_matrices_equal)) * vc) + (ics_value1_selected_matrices_equal))) -> (((exists fs_h_ics_selected_matrices_equal_at2. fs_h_ics_selected_matrices_equal_at2 + S (ics_value2_selected_matrices_equal) = S ((S (ics_index_selected_matrices_equal)) * Uc)) /\ exists fs_q_ics_selected_matrices_equal_at2. Ub = fs_q_ics_selected_matrices_equal_at2 * S ((S (ics_index_selected_matrices_equal)) * Uc) + (ics_value2_selected_matrices_equal))) -> (((exists fs_h_ics_selected_matrices_equal_at3. fs_h_ics_selected_matrices_equal_at3 + S (ics_value3_selected_matrices_equal) = S ((S (ics_index_selected_matrices_equal)) * Vc)) /\ exists fs_q_ics_selected_matrices_equal_at3. Vb = fs_q_ics_selected_matrices_equal_at3 * S ((S (ics_index_selected_matrices_equal)) * Vc) + (ics_value3_selected_matrices_equal))) -> ics_value0_selected_matrices_equal + ics_value3_selected_matrices_equal = ics_value2_selected_matrices_equal + ics_value1_selected_matrices_equal)

Constructive proof overview

Generated structural guide

Every pair of genuinely selected submatrices from integer-equal rectangular parents has equal represented integer entries, despite arbitrary component recodings.

The unchanged tactic script uses 2 declared prerequisites and contains 129 exact native proof lines.

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

Proof neighborhood

Direct dependencies

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

129 script commands · 14 reading checkpoints · 0 local claims

This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.

Named ingredients (2)
01Fix variables and assumptionsL1–10

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

  1. L1
    intro ab
  2. L2
    intro ac
  3. L3
    intro bb
  4. L4
    intro bc
  5. L5
    intro eb
  6. L6
    intro ec
  7. L7
    intro fb
  8. L8
    intro fc
  9. L9
    intro r
  10. L10
    intro w
02Fix variables and assumptionsL11–20

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

  1. L11
    intro q
  2. L12
    intro rb
  3. L13
    intro rc
  4. L14
    intro cb
  5. L15
    intro cc
  6. L16
    intro ub
  7. L17
    intro uc
  8. L18
    intro vb
  9. L19
    intro vc
  10. L20
    intro Ub
03Fix variables and assumptionsL21–28

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

  1. L21
    intro Uc
  2. L22
    intro Vb
  3. L23
    intro Vc
  4. L24
    intro hequal
  5. L25
    intro hrows
  6. L26
    intro hcolumns
  7. L27
    intro hfirst
  8. L28
    intro hsecond
04Separate the logical casesL29–30

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

  1. L29
    cases hfirst
  2. L30
    cases hsecond
05Fix variables and assumptionsL31–40

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

  1. L31
    intro i
  2. L32
    intro a
  3. L33
    intro b
  4. L34
    intro c
  5. L35
    intro d
  6. L36
    intro hi
  7. L37
    intro ha
  8. L38
    intro hb
  9. L39
    intro hc
  10. L40
    intro hd
06Use earlier factsL41–50

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

  1. L41
    specialize matrix_integer_selected_point_balance (ab)
  2. L42
    specialize matrix_integer_selected_point_balance (ac)
  3. L43
    specialize matrix_integer_selected_point_balance (bb)
  4. L44
    specialize matrix_integer_selected_point_balance (bc)
  5. L45
    specialize matrix_integer_selected_point_balance (eb)
  6. L46
    specialize matrix_integer_selected_point_balance (ec)
  7. L47
    specialize matrix_integer_selected_point_balance (fb)
  8. L48
    specialize matrix_integer_selected_point_balance (fc)
  9. L49
    specialize matrix_integer_selected_point_balance (r)
  10. L50
    specialize matrix_integer_selected_point_balance (w)
07Use earlier factsL51–60

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

  1. L51
    specialize matrix_integer_selected_point_balance (q)
  2. L52
    specialize matrix_integer_selected_point_balance (rb)
  3. L53
    specialize matrix_integer_selected_point_balance (rc)
  4. L54
    specialize matrix_integer_selected_point_balance (cb)
  5. L55
    specialize matrix_integer_selected_point_balance (cc)
  6. L56
    specialize matrix_integer_selected_point_balance (i)
  7. L57
    specialize matrix_integer_selected_point_balance (a)
  8. L58
    specialize matrix_integer_selected_point_balance (b)
  9. L59
    specialize matrix_integer_selected_point_balance (c)
  10. L60
    specialize matrix_integer_selected_point_balance (d)
08Use earlier factsL61–70

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

  1. L61
    apply matrix_integer_selected_point_balance
  2. L62
    exact hequal
  3. L63
    exact hrows
  4. L64
    exact hcolumns
  5. L65
    exact hi
  6. L66
    specialize matrix_integer_selected_prefix_point_at (ab)
  7. L67
    specialize matrix_integer_selected_prefix_point_at (ac)
  8. L68
    specialize matrix_integer_selected_prefix_point_at (w)
  9. L69
    specialize matrix_integer_selected_prefix_point_at (rb)
  10. L70
    specialize matrix_integer_selected_prefix_point_at (rc)
09Use earlier factsL71–80

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

  1. L71
    specialize matrix_integer_selected_prefix_point_at (cb)
  2. L72
    specialize matrix_integer_selected_prefix_point_at (cc)
  3. L73
    specialize matrix_integer_selected_prefix_point_at (q)
  4. L74
    specialize matrix_integer_selected_prefix_point_at (ub)
  5. L75
    specialize matrix_integer_selected_prefix_point_at (uc)
  6. L76
    specialize matrix_integer_selected_prefix_point_at (i)
  7. L77
    specialize matrix_integer_selected_prefix_point_at (a)
  8. L78
    apply matrix_integer_selected_prefix_point_at
  9. L79
    exact hfirst_left
  10. L80
    exact hi
10Use earlier factsL81–90

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

  1. L81
    exact ha
  2. L82
    specialize matrix_integer_selected_prefix_point_at (bb)
  3. L83
    specialize matrix_integer_selected_prefix_point_at (bc)
  4. L84
    specialize matrix_integer_selected_prefix_point_at (w)
  5. L85
    specialize matrix_integer_selected_prefix_point_at (rb)
  6. L86
    specialize matrix_integer_selected_prefix_point_at (rc)
  7. L87
    specialize matrix_integer_selected_prefix_point_at (cb)
  8. L88
    specialize matrix_integer_selected_prefix_point_at (cc)
  9. L89
    specialize matrix_integer_selected_prefix_point_at (q)
  10. L90
    specialize matrix_integer_selected_prefix_point_at (vb)
11Use earlier factsL91–100

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

  1. L91
    specialize matrix_integer_selected_prefix_point_at (vc)
  2. L92
    specialize matrix_integer_selected_prefix_point_at (i)
  3. L93
    specialize matrix_integer_selected_prefix_point_at (b)
  4. L94
    apply matrix_integer_selected_prefix_point_at
  5. L95
    exact hfirst_right
  6. L96
    exact hi
  7. L97
    exact hb
  8. L98
    specialize matrix_integer_selected_prefix_point_at (eb)
  9. L99
    specialize matrix_integer_selected_prefix_point_at (ec)
  10. L100
    specialize matrix_integer_selected_prefix_point_at (w)
12Use earlier factsL101–110

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

  1. L101
    specialize matrix_integer_selected_prefix_point_at (rb)
  2. L102
    specialize matrix_integer_selected_prefix_point_at (rc)
  3. L103
    specialize matrix_integer_selected_prefix_point_at (cb)
  4. L104
    specialize matrix_integer_selected_prefix_point_at (cc)
  5. L105
    specialize matrix_integer_selected_prefix_point_at (q)
  6. L106
    specialize matrix_integer_selected_prefix_point_at (Ub)
  7. L107
    specialize matrix_integer_selected_prefix_point_at (Uc)
  8. L108
    specialize matrix_integer_selected_prefix_point_at (i)
  9. L109
    specialize matrix_integer_selected_prefix_point_at (c)
  10. L110
    apply matrix_integer_selected_prefix_point_at
13Use earlier factsL111–120

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

  1. L111
    exact hsecond_left
  2. L112
    exact hi
  3. L113
    exact hc
  4. L114
    specialize matrix_integer_selected_prefix_point_at (fb)
  5. L115
    specialize matrix_integer_selected_prefix_point_at (fc)
  6. L116
    specialize matrix_integer_selected_prefix_point_at (w)
  7. L117
    specialize matrix_integer_selected_prefix_point_at (rb)
  8. L118
    specialize matrix_integer_selected_prefix_point_at (rc)
  9. L119
    specialize matrix_integer_selected_prefix_point_at (cb)
  10. L120
    specialize matrix_integer_selected_prefix_point_at (cc)
14Use earlier factsL121–129

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

  1. L121
    specialize matrix_integer_selected_prefix_point_at (q)
  2. L122
    specialize matrix_integer_selected_prefix_point_at (Vb)
  3. L123
    specialize matrix_integer_selected_prefix_point_at (Vc)
  4. L124
    specialize matrix_integer_selected_prefix_point_at (i)
  5. L125
    specialize matrix_integer_selected_prefix_point_at (d)
  6. L126
    apply matrix_integer_selected_prefix_point_at
  7. L127
    exact hsecond_right
  8. L128
    exact hi
  9. L129
    exact hd

Library-wide reading audit

Original exact command ledger · 129 lines
  1. 0001intro ab
  2. 0002intro ac
  3. 0003intro bb
  4. 0004intro bc
  5. 0005intro eb
  6. 0006intro ec
  7. 0007intro fb
  8. 0008intro fc
  9. 0009intro r
  10. 0010intro w
  11. 0011intro q
  12. 0012intro rb
  13. 0013intro rc
  14. 0014intro cb
  15. 0015intro cc
  16. 0016intro ub
  17. 0017intro uc
  18. 0018intro vb
  19. 0019intro vc
  20. 0020intro Ub
  21. 0021intro Uc
  22. 0022intro Vb
  23. 0023intro Vc
  24. 0024intro hequal
  25. 0025intro hrows
  26. 0026intro hcolumns
  27. 0027intro hfirst
  28. 0028intro hsecond
  29. 0029cases hfirst
  30. 0030cases hsecond
  31. 0031intro i
  32. 0032intro a
  33. 0033intro b
  34. 0034intro c
  35. 0035intro d
  36. 0036intro hi
  37. 0037intro ha
  38. 0038intro hb
  39. 0039intro hc
  40. 0040intro hd
  41. 0041specialize matrix_integer_selected_point_balance (ab)
  42. 0042specialize matrix_integer_selected_point_balance (ac)
  43. 0043specialize matrix_integer_selected_point_balance (bb)
  44. 0044specialize matrix_integer_selected_point_balance (bc)
  45. 0045specialize matrix_integer_selected_point_balance (eb)
  46. 0046specialize matrix_integer_selected_point_balance (ec)
  47. 0047specialize matrix_integer_selected_point_balance (fb)
  48. 0048specialize matrix_integer_selected_point_balance (fc)
  49. 0049specialize matrix_integer_selected_point_balance (r)
  50. 0050specialize matrix_integer_selected_point_balance (w)
  51. 0051specialize matrix_integer_selected_point_balance (q)
  52. 0052specialize matrix_integer_selected_point_balance (rb)
  53. 0053specialize matrix_integer_selected_point_balance (rc)
  54. 0054specialize matrix_integer_selected_point_balance (cb)
  55. 0055specialize matrix_integer_selected_point_balance (cc)
  56. 0056specialize matrix_integer_selected_point_balance (i)
  57. 0057specialize matrix_integer_selected_point_balance (a)
  58. 0058specialize matrix_integer_selected_point_balance (b)
  59. 0059specialize matrix_integer_selected_point_balance (c)
  60. 0060specialize matrix_integer_selected_point_balance (d)
  61. 0061apply matrix_integer_selected_point_balance
  62. 0062exact hequal
  63. 0063exact hrows
  64. 0064exact hcolumns
  65. 0065exact hi
  66. 0066specialize matrix_integer_selected_prefix_point_at (ab)
  67. 0067specialize matrix_integer_selected_prefix_point_at (ac)
  68. 0068specialize matrix_integer_selected_prefix_point_at (w)
  69. 0069specialize matrix_integer_selected_prefix_point_at (rb)
  70. 0070specialize matrix_integer_selected_prefix_point_at (rc)
  71. 0071specialize matrix_integer_selected_prefix_point_at (cb)
  72. 0072specialize matrix_integer_selected_prefix_point_at (cc)
  73. 0073specialize matrix_integer_selected_prefix_point_at (q)
  74. 0074specialize matrix_integer_selected_prefix_point_at (ub)
  75. 0075specialize matrix_integer_selected_prefix_point_at (uc)
  76. 0076specialize matrix_integer_selected_prefix_point_at (i)
  77. 0077specialize matrix_integer_selected_prefix_point_at (a)
  78. 0078apply matrix_integer_selected_prefix_point_at
  79. 0079exact hfirst_left
  80. 0080exact hi
  81. 0081exact ha
  82. 0082specialize matrix_integer_selected_prefix_point_at (bb)
  83. 0083specialize matrix_integer_selected_prefix_point_at (bc)
  84. 0084specialize matrix_integer_selected_prefix_point_at (w)
  85. 0085specialize matrix_integer_selected_prefix_point_at (rb)
  86. 0086specialize matrix_integer_selected_prefix_point_at (rc)
  87. 0087specialize matrix_integer_selected_prefix_point_at (cb)
  88. 0088specialize matrix_integer_selected_prefix_point_at (cc)
  89. 0089specialize matrix_integer_selected_prefix_point_at (q)
  90. 0090specialize matrix_integer_selected_prefix_point_at (vb)
  91. 0091specialize matrix_integer_selected_prefix_point_at (vc)
  92. 0092specialize matrix_integer_selected_prefix_point_at (i)
  93. 0093specialize matrix_integer_selected_prefix_point_at (b)
  94. 0094apply matrix_integer_selected_prefix_point_at
  95. 0095exact hfirst_right
  96. 0096exact hi
  97. 0097exact hb
  98. 0098specialize matrix_integer_selected_prefix_point_at (eb)
  99. 0099specialize matrix_integer_selected_prefix_point_at (ec)
  100. 0100specialize matrix_integer_selected_prefix_point_at (w)
  101. 0101specialize matrix_integer_selected_prefix_point_at (rb)
  102. 0102specialize matrix_integer_selected_prefix_point_at (rc)
  103. 0103specialize matrix_integer_selected_prefix_point_at (cb)
  104. 0104specialize matrix_integer_selected_prefix_point_at (cc)
  105. 0105specialize matrix_integer_selected_prefix_point_at (q)
  106. 0106specialize matrix_integer_selected_prefix_point_at (Ub)
  107. 0107specialize matrix_integer_selected_prefix_point_at (Uc)
  108. 0108specialize matrix_integer_selected_prefix_point_at (i)
  109. 0109specialize matrix_integer_selected_prefix_point_at (c)
  110. 0110apply matrix_integer_selected_prefix_point_at
  111. 0111exact hsecond_left
  112. 0112exact hi
  113. 0113exact hc
  114. 0114specialize matrix_integer_selected_prefix_point_at (fb)
  115. 0115specialize matrix_integer_selected_prefix_point_at (fc)
  116. 0116specialize matrix_integer_selected_prefix_point_at (w)
  117. 0117specialize matrix_integer_selected_prefix_point_at (rb)
  118. 0118specialize matrix_integer_selected_prefix_point_at (rc)
  119. 0119specialize matrix_integer_selected_prefix_point_at (cb)
  120. 0120specialize matrix_integer_selected_prefix_point_at (cc)
  121. 0121specialize matrix_integer_selected_prefix_point_at (q)
  122. 0122specialize matrix_integer_selected_prefix_point_at (Vb)
  123. 0123specialize matrix_integer_selected_prefix_point_at (Vc)
  124. 0124specialize matrix_integer_selected_prefix_point_at (i)
  125. 0125specialize matrix_integer_selected_prefix_point_at (d)
  126. 0126apply matrix_integer_selected_prefix_point_at
  127. 0127exact hsecond_right
  128. 0128exact hi
  129. 0129exact hd