DL0091

matrix_integer_signed_minor_balance

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

Genuine cofactor minors of integer-equal matrices are integer-equal, even when every positive/negative code and representative differs.

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 ub uc vb vc Ub Uc Vb Vc q j. (forall ics_index_signed_minor_parent ics_value0_signed_minor_parent ics_value1_signed_minor_parent ics_value2_signed_minor_parent ics_value3_signed_minor_parent. (exists ics_gap_signed_minor_parent_bound. ics_gap_signed_minor_parent_bound + S (ics_index_signed_minor_parent) = ((S q) * (S q))) -> (((exists fs_h_ics_signed_minor_parent_at0. fs_h_ics_signed_minor_parent_at0 + S (ics_value0_signed_minor_parent) = S ((S (ics_index_signed_minor_parent)) * ac)) /\ exists fs_q_ics_signed_minor_parent_at0. ab = fs_q_ics_signed_minor_parent_at0 * S ((S (ics_index_signed_minor_parent)) * ac) + (ics_value0_signed_minor_parent))) -> (((exists fs_h_ics_signed_minor_parent_at1. fs_h_ics_signed_minor_parent_at1 + S (ics_value1_signed_minor_parent) = S ((S (ics_index_signed_minor_parent)) * bc)) /\ exists fs_q_ics_signed_minor_parent_at1. bb = fs_q_ics_signed_minor_parent_at1 * S ((S (ics_index_signed_minor_parent)) * bc) + (ics_value1_signed_minor_parent))) -> (((exists fs_h_ics_signed_minor_parent_at2. fs_h_ics_signed_minor_parent_at2 + S (ics_value2_signed_minor_parent) = S ((S (ics_index_signed_minor_parent)) * ec)) /\ exists fs_q_ics_signed_minor_parent_at2. eb = fs_q_ics_signed_minor_parent_at2 * S ((S (ics_index_signed_minor_parent)) * ec) + (ics_value2_signed_minor_parent))) -> (((exists fs_h_ics_signed_minor_parent_at3. fs_h_ics_signed_minor_parent_at3 + S (ics_value3_signed_minor_parent) = S ((S (ics_index_signed_minor_parent)) * fc)) /\ exists fs_q_ics_signed_minor_parent_at3. fb = fs_q_ics_signed_minor_parent_at3 * S ((S (ics_index_signed_minor_parent)) * fc) + (ics_value3_signed_minor_parent))) -> ics_value0_signed_minor_parent + ics_value3_signed_minor_parent = ics_value2_signed_minor_parent + ics_value1_signed_minor_parent) -> (((forall ff_index_mdm_prefix_mdr_signed_minor_first_positive. (exists ff_gap_mdm_lt_mdr_signed_minor_first_positive_index_bound. ff_gap_mdm_lt_mdr_signed_minor_first_positive_index_bound + S (ff_index_mdm_prefix_mdr_signed_minor_first_positive) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_signed_minor_first_positive ff_column_mdm_prefix_mdr_signed_minor_first_positive ff_value_mdm_prefix_mdr_signed_minor_first_positive. (ff_index_mdm_prefix_mdr_signed_minor_first_positive = (q) * ff_row_mdm_prefix_mdr_signed_minor_first_positive + ff_column_mdm_prefix_mdr_signed_minor_first_positive /\ ((exists ff_gap_mdm_lt_mdr_signed_minor_first_positive_column_bound. ff_gap_mdm_lt_mdr_signed_minor_first_positive_column_bound + S (ff_column_mdm_prefix_mdr_signed_minor_first_positive) = (q)) /\ ((exists ff_row_mdm_cell_mdr_signed_minor_first_positive_cell ff_column_mdm_cell_mdr_signed_minor_first_positive_cell. (((((exists ff_gap_mdm_lt_mdr_signed_minor_first_positive_cell_row_before. ff_gap_mdm_lt_mdr_signed_minor_first_positive_cell_row_before + S (ff_row_mdm_prefix_mdr_signed_minor_first_positive) = (0)) /\ ff_row_mdm_cell_mdr_signed_minor_first_positive_cell = ff_row_mdm_prefix_mdr_signed_minor_first_positive) \/ ((exists ff_gap_mdm_le_mdr_signed_minor_first_positive_cell_row_after. ff_gap_mdm_le_mdr_signed_minor_first_positive_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_signed_minor_first_positive)) /\ ff_row_mdm_cell_mdr_signed_minor_first_positive_cell = S ff_row_mdm_prefix_mdr_signed_minor_first_positive))) /\ (((((exists ff_gap_mdm_lt_mdr_signed_minor_first_positive_cell_column_before. ff_gap_mdm_lt_mdr_signed_minor_first_positive_cell_column_before + S (ff_column_mdm_prefix_mdr_signed_minor_first_positive) = (j)) /\ ff_column_mdm_cell_mdr_signed_minor_first_positive_cell = ff_column_mdm_prefix_mdr_signed_minor_first_positive) \/ ((exists ff_gap_mdm_le_mdr_signed_minor_first_positive_cell_column_after. ff_gap_mdm_le_mdr_signed_minor_first_positive_cell_column_after + (j) = (ff_column_mdm_prefix_mdr_signed_minor_first_positive)) /\ ff_column_mdm_cell_mdr_signed_minor_first_positive_cell = S ff_column_mdm_prefix_mdr_signed_minor_first_positive))) /\ (((exists ff_h_mdm_mdr_signed_minor_first_positive_cell_source. ff_h_mdm_mdr_signed_minor_first_positive_cell_source + S (ff_value_mdm_prefix_mdr_signed_minor_first_positive) = S ((S ((ff_row_mdm_cell_mdr_signed_minor_first_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_signed_minor_first_positive_cell))) * ac)) /\ exists ff_q_mdm_mdr_signed_minor_first_positive_cell_source. ab = ff_q_mdm_mdr_signed_minor_first_positive_cell_source * S ((S ((ff_row_mdm_cell_mdr_signed_minor_first_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_signed_minor_first_positive_cell))) * ac) + (ff_value_mdm_prefix_mdr_signed_minor_first_positive)))))) /\ (((exists ff_h_mdm_mdr_signed_minor_first_positive_target. ff_h_mdm_mdr_signed_minor_first_positive_target + S (ff_value_mdm_prefix_mdr_signed_minor_first_positive) = S ((S (ff_index_mdm_prefix_mdr_signed_minor_first_positive)) * uc)) /\ exists ff_q_mdm_mdr_signed_minor_first_positive_target. ub = ff_q_mdm_mdr_signed_minor_first_positive_target * S ((S (ff_index_mdm_prefix_mdr_signed_minor_first_positive)) * uc) + (ff_value_mdm_prefix_mdr_signed_minor_first_positive))))))) /\ (forall ff_index_mdm_prefix_mdr_signed_minor_first_negative. (exists ff_gap_mdm_lt_mdr_signed_minor_first_negative_index_bound. ff_gap_mdm_lt_mdr_signed_minor_first_negative_index_bound + S (ff_index_mdm_prefix_mdr_signed_minor_first_negative) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_signed_minor_first_negative ff_column_mdm_prefix_mdr_signed_minor_first_negative ff_value_mdm_prefix_mdr_signed_minor_first_negative. (ff_index_mdm_prefix_mdr_signed_minor_first_negative = (q) * ff_row_mdm_prefix_mdr_signed_minor_first_negative + ff_column_mdm_prefix_mdr_signed_minor_first_negative /\ ((exists ff_gap_mdm_lt_mdr_signed_minor_first_negative_column_bound. ff_gap_mdm_lt_mdr_signed_minor_first_negative_column_bound + S (ff_column_mdm_prefix_mdr_signed_minor_first_negative) = (q)) /\ ((exists ff_row_mdm_cell_mdr_signed_minor_first_negative_cell ff_column_mdm_cell_mdr_signed_minor_first_negative_cell. (((((exists ff_gap_mdm_lt_mdr_signed_minor_first_negative_cell_row_before. ff_gap_mdm_lt_mdr_signed_minor_first_negative_cell_row_before + S (ff_row_mdm_prefix_mdr_signed_minor_first_negative) = (0)) /\ ff_row_mdm_cell_mdr_signed_minor_first_negative_cell = ff_row_mdm_prefix_mdr_signed_minor_first_negative) \/ ((exists ff_gap_mdm_le_mdr_signed_minor_first_negative_cell_row_after. ff_gap_mdm_le_mdr_signed_minor_first_negative_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_signed_minor_first_negative)) /\ ff_row_mdm_cell_mdr_signed_minor_first_negative_cell = S ff_row_mdm_prefix_mdr_signed_minor_first_negative))) /\ (((((exists ff_gap_mdm_lt_mdr_signed_minor_first_negative_cell_column_before. ff_gap_mdm_lt_mdr_signed_minor_first_negative_cell_column_before + S (ff_column_mdm_prefix_mdr_signed_minor_first_negative) = (j)) /\ ff_column_mdm_cell_mdr_signed_minor_first_negative_cell = ff_column_mdm_prefix_mdr_signed_minor_first_negative) \/ ((exists ff_gap_mdm_le_mdr_signed_minor_first_negative_cell_column_after. ff_gap_mdm_le_mdr_signed_minor_first_negative_cell_column_after + (j) = (ff_column_mdm_prefix_mdr_signed_minor_first_negative)) /\ ff_column_mdm_cell_mdr_signed_minor_first_negative_cell = S ff_column_mdm_prefix_mdr_signed_minor_first_negative))) /\ (((exists ff_h_mdm_mdr_signed_minor_first_negative_cell_source. ff_h_mdm_mdr_signed_minor_first_negative_cell_source + S (ff_value_mdm_prefix_mdr_signed_minor_first_negative) = S ((S ((ff_row_mdm_cell_mdr_signed_minor_first_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_signed_minor_first_negative_cell))) * bc)) /\ exists ff_q_mdm_mdr_signed_minor_first_negative_cell_source. bb = ff_q_mdm_mdr_signed_minor_first_negative_cell_source * S ((S ((ff_row_mdm_cell_mdr_signed_minor_first_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_signed_minor_first_negative_cell))) * bc) + (ff_value_mdm_prefix_mdr_signed_minor_first_negative)))))) /\ (((exists ff_h_mdm_mdr_signed_minor_first_negative_target. ff_h_mdm_mdr_signed_minor_first_negative_target + S (ff_value_mdm_prefix_mdr_signed_minor_first_negative) = S ((S (ff_index_mdm_prefix_mdr_signed_minor_first_negative)) * vc)) /\ exists ff_q_mdm_mdr_signed_minor_first_negative_target. vb = ff_q_mdm_mdr_signed_minor_first_negative_target * S ((S (ff_index_mdm_prefix_mdr_signed_minor_first_negative)) * vc) + (ff_value_mdm_prefix_mdr_signed_minor_first_negative))))))))) -> (((forall ff_index_mdm_prefix_mdr_signed_minor_second_positive. (exists ff_gap_mdm_lt_mdr_signed_minor_second_positive_index_bound. ff_gap_mdm_lt_mdr_signed_minor_second_positive_index_bound + S (ff_index_mdm_prefix_mdr_signed_minor_second_positive) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_signed_minor_second_positive ff_column_mdm_prefix_mdr_signed_minor_second_positive ff_value_mdm_prefix_mdr_signed_minor_second_positive. (ff_index_mdm_prefix_mdr_signed_minor_second_positive = (q) * ff_row_mdm_prefix_mdr_signed_minor_second_positive + ff_column_mdm_prefix_mdr_signed_minor_second_positive /\ ((exists ff_gap_mdm_lt_mdr_signed_minor_second_positive_column_bound. ff_gap_mdm_lt_mdr_signed_minor_second_positive_column_bound + S (ff_column_mdm_prefix_mdr_signed_minor_second_positive) = (q)) /\ ((exists ff_row_mdm_cell_mdr_signed_minor_second_positive_cell ff_column_mdm_cell_mdr_signed_minor_second_positive_cell. (((((exists ff_gap_mdm_lt_mdr_signed_minor_second_positive_cell_row_before. ff_gap_mdm_lt_mdr_signed_minor_second_positive_cell_row_before + S (ff_row_mdm_prefix_mdr_signed_minor_second_positive) = (0)) /\ ff_row_mdm_cell_mdr_signed_minor_second_positive_cell = ff_row_mdm_prefix_mdr_signed_minor_second_positive) \/ ((exists ff_gap_mdm_le_mdr_signed_minor_second_positive_cell_row_after. ff_gap_mdm_le_mdr_signed_minor_second_positive_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_signed_minor_second_positive)) /\ ff_row_mdm_cell_mdr_signed_minor_second_positive_cell = S ff_row_mdm_prefix_mdr_signed_minor_second_positive))) /\ (((((exists ff_gap_mdm_lt_mdr_signed_minor_second_positive_cell_column_before. ff_gap_mdm_lt_mdr_signed_minor_second_positive_cell_column_before + S (ff_column_mdm_prefix_mdr_signed_minor_second_positive) = (j)) /\ ff_column_mdm_cell_mdr_signed_minor_second_positive_cell = ff_column_mdm_prefix_mdr_signed_minor_second_positive) \/ ((exists ff_gap_mdm_le_mdr_signed_minor_second_positive_cell_column_after. ff_gap_mdm_le_mdr_signed_minor_second_positive_cell_column_after + (j) = (ff_column_mdm_prefix_mdr_signed_minor_second_positive)) /\ ff_column_mdm_cell_mdr_signed_minor_second_positive_cell = S ff_column_mdm_prefix_mdr_signed_minor_second_positive))) /\ (((exists ff_h_mdm_mdr_signed_minor_second_positive_cell_source. ff_h_mdm_mdr_signed_minor_second_positive_cell_source + S (ff_value_mdm_prefix_mdr_signed_minor_second_positive) = S ((S ((ff_row_mdm_cell_mdr_signed_minor_second_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_signed_minor_second_positive_cell))) * ec)) /\ exists ff_q_mdm_mdr_signed_minor_second_positive_cell_source. eb = ff_q_mdm_mdr_signed_minor_second_positive_cell_source * S ((S ((ff_row_mdm_cell_mdr_signed_minor_second_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_signed_minor_second_positive_cell))) * ec) + (ff_value_mdm_prefix_mdr_signed_minor_second_positive)))))) /\ (((exists ff_h_mdm_mdr_signed_minor_second_positive_target. ff_h_mdm_mdr_signed_minor_second_positive_target + S (ff_value_mdm_prefix_mdr_signed_minor_second_positive) = S ((S (ff_index_mdm_prefix_mdr_signed_minor_second_positive)) * Uc)) /\ exists ff_q_mdm_mdr_signed_minor_second_positive_target. Ub = ff_q_mdm_mdr_signed_minor_second_positive_target * S ((S (ff_index_mdm_prefix_mdr_signed_minor_second_positive)) * Uc) + (ff_value_mdm_prefix_mdr_signed_minor_second_positive))))))) /\ (forall ff_index_mdm_prefix_mdr_signed_minor_second_negative. (exists ff_gap_mdm_lt_mdr_signed_minor_second_negative_index_bound. ff_gap_mdm_lt_mdr_signed_minor_second_negative_index_bound + S (ff_index_mdm_prefix_mdr_signed_minor_second_negative) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_signed_minor_second_negative ff_column_mdm_prefix_mdr_signed_minor_second_negative ff_value_mdm_prefix_mdr_signed_minor_second_negative. (ff_index_mdm_prefix_mdr_signed_minor_second_negative = (q) * ff_row_mdm_prefix_mdr_signed_minor_second_negative + ff_column_mdm_prefix_mdr_signed_minor_second_negative /\ ((exists ff_gap_mdm_lt_mdr_signed_minor_second_negative_column_bound. ff_gap_mdm_lt_mdr_signed_minor_second_negative_column_bound + S (ff_column_mdm_prefix_mdr_signed_minor_second_negative) = (q)) /\ ((exists ff_row_mdm_cell_mdr_signed_minor_second_negative_cell ff_column_mdm_cell_mdr_signed_minor_second_negative_cell. (((((exists ff_gap_mdm_lt_mdr_signed_minor_second_negative_cell_row_before. ff_gap_mdm_lt_mdr_signed_minor_second_negative_cell_row_before + S (ff_row_mdm_prefix_mdr_signed_minor_second_negative) = (0)) /\ ff_row_mdm_cell_mdr_signed_minor_second_negative_cell = ff_row_mdm_prefix_mdr_signed_minor_second_negative) \/ ((exists ff_gap_mdm_le_mdr_signed_minor_second_negative_cell_row_after. ff_gap_mdm_le_mdr_signed_minor_second_negative_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_signed_minor_second_negative)) /\ ff_row_mdm_cell_mdr_signed_minor_second_negative_cell = S ff_row_mdm_prefix_mdr_signed_minor_second_negative))) /\ (((((exists ff_gap_mdm_lt_mdr_signed_minor_second_negative_cell_column_before. ff_gap_mdm_lt_mdr_signed_minor_second_negative_cell_column_before + S (ff_column_mdm_prefix_mdr_signed_minor_second_negative) = (j)) /\ ff_column_mdm_cell_mdr_signed_minor_second_negative_cell = ff_column_mdm_prefix_mdr_signed_minor_second_negative) \/ ((exists ff_gap_mdm_le_mdr_signed_minor_second_negative_cell_column_after. ff_gap_mdm_le_mdr_signed_minor_second_negative_cell_column_after + (j) = (ff_column_mdm_prefix_mdr_signed_minor_second_negative)) /\ ff_column_mdm_cell_mdr_signed_minor_second_negative_cell = S ff_column_mdm_prefix_mdr_signed_minor_second_negative))) /\ (((exists ff_h_mdm_mdr_signed_minor_second_negative_cell_source. ff_h_mdm_mdr_signed_minor_second_negative_cell_source + S (ff_value_mdm_prefix_mdr_signed_minor_second_negative) = S ((S ((ff_row_mdm_cell_mdr_signed_minor_second_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_signed_minor_second_negative_cell))) * fc)) /\ exists ff_q_mdm_mdr_signed_minor_second_negative_cell_source. fb = ff_q_mdm_mdr_signed_minor_second_negative_cell_source * S ((S ((ff_row_mdm_cell_mdr_signed_minor_second_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_signed_minor_second_negative_cell))) * fc) + (ff_value_mdm_prefix_mdr_signed_minor_second_negative)))))) /\ (((exists ff_h_mdm_mdr_signed_minor_second_negative_target. ff_h_mdm_mdr_signed_minor_second_negative_target + S (ff_value_mdm_prefix_mdr_signed_minor_second_negative) = S ((S (ff_index_mdm_prefix_mdr_signed_minor_second_negative)) * Vc)) /\ exists ff_q_mdm_mdr_signed_minor_second_negative_target. Vb = ff_q_mdm_mdr_signed_minor_second_negative_target * S ((S (ff_index_mdm_prefix_mdr_signed_minor_second_negative)) * Vc) + (ff_value_mdm_prefix_mdr_signed_minor_second_negative))))))))) -> (forall ics_index_signed_minor_equal ics_value0_signed_minor_equal ics_value1_signed_minor_equal ics_value2_signed_minor_equal ics_value3_signed_minor_equal. (exists ics_gap_signed_minor_equal_bound. ics_gap_signed_minor_equal_bound + S (ics_index_signed_minor_equal) = ((q) * (q))) -> (((exists fs_h_ics_signed_minor_equal_at0. fs_h_ics_signed_minor_equal_at0 + S (ics_value0_signed_minor_equal) = S ((S (ics_index_signed_minor_equal)) * uc)) /\ exists fs_q_ics_signed_minor_equal_at0. ub = fs_q_ics_signed_minor_equal_at0 * S ((S (ics_index_signed_minor_equal)) * uc) + (ics_value0_signed_minor_equal))) -> (((exists fs_h_ics_signed_minor_equal_at1. fs_h_ics_signed_minor_equal_at1 + S (ics_value1_signed_minor_equal) = S ((S (ics_index_signed_minor_equal)) * vc)) /\ exists fs_q_ics_signed_minor_equal_at1. vb = fs_q_ics_signed_minor_equal_at1 * S ((S (ics_index_signed_minor_equal)) * vc) + (ics_value1_signed_minor_equal))) -> (((exists fs_h_ics_signed_minor_equal_at2. fs_h_ics_signed_minor_equal_at2 + S (ics_value2_signed_minor_equal) = S ((S (ics_index_signed_minor_equal)) * Uc)) /\ exists fs_q_ics_signed_minor_equal_at2. Ub = fs_q_ics_signed_minor_equal_at2 * S ((S (ics_index_signed_minor_equal)) * Uc) + (ics_value2_signed_minor_equal))) -> (((exists fs_h_ics_signed_minor_equal_at3. fs_h_ics_signed_minor_equal_at3 + S (ics_value3_signed_minor_equal) = S ((S (ics_index_signed_minor_equal)) * Vc)) /\ exists fs_q_ics_signed_minor_equal_at3. Vb = fs_q_ics_signed_minor_equal_at3 * S ((S (ics_index_signed_minor_equal)) * Vc) + (ics_value3_signed_minor_equal))) -> ics_value0_signed_minor_equal + ics_value3_signed_minor_equal = ics_value2_signed_minor_equal + ics_value1_signed_minor_equal)

Constructive proof overview

Generated structural guide

Genuine cofactor minors of integer-equal matrices are integer-equal, even when every positive/negative code and representative differs.

The unchanged tactic script uses 5 declared prerequisites and contains 140 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

140 script commands · 18 reading checkpoints · 3 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 (4)
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 ub
  10. L10
    intro uc
02Fix variables and assumptionsL11–20

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

  1. L11
    intro vb
  2. L12
    intro vc
  3. L13
    intro Ub
  4. L14
    intro Uc
  5. L15
    intro Vb
  6. L16
    intro Vc
  7. L17
    intro q
  8. L18
    intro j
  9. L19
    intro hequal
  10. L20
    intro hfirst
03Fix variables and assumptionsL21–21

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

  1. L21
    intro hsecond
04Separate the logical casesL22–23

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

  1. L22
    cases hfirst
  2. L23
    cases hsecond
05Fix variables and assumptionsL24–33

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

  1. L24
    intro i
  2. L25
    intro a
  3. L26
    intro b
  4. L27
    intro c
  5. L28
    intro d
  6. L29
    intro hi
  7. L30
    intro ha
  8. L31
    intro hb
  9. L32
    intro hc
  10. L33
    intro hd
06Establish hqL34–40

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix integer square index width nonzero.

  1. L34
    have hq : ~(q = 0)
  2. L35
    intro hzero
  3. L36
    specialize matrix_integer_square_index_width_nonzero (q)
  4. L37
    specialize matrix_integer_square_index_width_nonzero (i)
  5. L38
    apply matrix_integer_square_index_width_nonzero
  6. L39
    exact hi
  7. L40
    exact hzero
07Establish hcoordinatesL41–45

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

  1. L41
    have hcoordinates : exists r s. i = q * r + s /\ (exists mdr_gap_minor_common_col. mdr_gap_minor_common_col + S (s) = (q))
  2. L42
    specialize division_remainder_exists (q)
  3. L43
    specialize division_remainder_exists (i)
  4. L44
    apply division_remainder_exists
  5. L45
    exact hq
08Separate the logical casesL46–48

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

  1. L46
    cases hcoordinates
  2. L47
    cases hcoordinates_witness
  3. L48
    cases hcoordinates_witness_witness
09Establish hrowL49–58

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix recursive quotient row bound.

  1. L49
    have hrow : exists mdr_gap_minor_common_row. mdr_gap_minor_common_row + S (x) = (q)
  2. L50
    specialize matrix_recursive_quotient_row_bound (q)
  3. L51
    specialize matrix_recursive_quotient_row_bound (i)
  4. L52
    specialize matrix_recursive_quotient_row_bound (x)
  5. L53
    specialize matrix_recursive_quotient_row_bound (x1)
  6. L54
    apply matrix_recursive_quotient_row_bound
  7. L55
    exact hcoordinates_witness_witness_left
  8. L56
    exact hi
  9. L57
    specialize matrix_integer_minor_cell_balance (ab)
  10. L58
    specialize matrix_integer_minor_cell_balance (ac)
10Use earlier factsL59–68

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

  1. L59
    specialize matrix_integer_minor_cell_balance (bb)
  2. L60
    specialize matrix_integer_minor_cell_balance (bc)
  3. L61
    specialize matrix_integer_minor_cell_balance (eb)
  4. L62
    specialize matrix_integer_minor_cell_balance (ec)
  5. L63
    specialize matrix_integer_minor_cell_balance (fb)
  6. L64
    specialize matrix_integer_minor_cell_balance (fc)
  7. L65
    specialize matrix_integer_minor_cell_balance (q)
  8. L66
    specialize matrix_integer_minor_cell_balance (j)
  9. L67
    specialize matrix_integer_minor_cell_balance (x)
  10. L68
    specialize matrix_integer_minor_cell_balance (x1)
11Use earlier factsL69–78

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

  1. L69
    specialize matrix_integer_minor_cell_balance (a)
  2. L70
    specialize matrix_integer_minor_cell_balance (b)
  3. L71
    specialize matrix_integer_minor_cell_balance (c)
  4. L72
    specialize matrix_integer_minor_cell_balance (d)
  5. L73
    apply matrix_integer_minor_cell_balance
  6. L74
    exact hequal
  7. L75
    exact hrow
  8. L76
    exact hcoordinates_witness_witness_right
  9. L77
    specialize matrix_integer_minor_prefix_cell_at_coordinates (ab)
  10. L78
    specialize matrix_integer_minor_prefix_cell_at_coordinates (ac)
12Use earlier factsL79–88

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

  1. L79
    specialize matrix_integer_minor_prefix_cell_at_coordinates (q)
  2. L80
    specialize matrix_integer_minor_prefix_cell_at_coordinates (j)
  3. L81
    specialize matrix_integer_minor_prefix_cell_at_coordinates (ub)
  4. L82
    specialize matrix_integer_minor_prefix_cell_at_coordinates (uc)
  5. L83
    specialize matrix_integer_minor_prefix_cell_at_coordinates (i)
  6. L84
    specialize matrix_integer_minor_prefix_cell_at_coordinates (x)
  7. L85
    specialize matrix_integer_minor_prefix_cell_at_coordinates (x1)
  8. L86
    specialize matrix_integer_minor_prefix_cell_at_coordinates (a)
  9. L87
    apply matrix_integer_minor_prefix_cell_at_coordinates
  10. L88
    exact hfirst_left
13Use earlier factsL89–98

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

  1. L89
    exact hi
  2. L90
    exact hcoordinates_witness_witness_left
  3. L91
    exact hcoordinates_witness_witness_right
  4. L92
    exact ha
  5. L93
    specialize matrix_integer_minor_prefix_cell_at_coordinates (bb)
  6. L94
    specialize matrix_integer_minor_prefix_cell_at_coordinates (bc)
  7. L95
    specialize matrix_integer_minor_prefix_cell_at_coordinates (q)
  8. L96
    specialize matrix_integer_minor_prefix_cell_at_coordinates (j)
  9. L97
    specialize matrix_integer_minor_prefix_cell_at_coordinates (vb)
  10. L98
    specialize matrix_integer_minor_prefix_cell_at_coordinates (vc)
14Use earlier factsL99–108

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

  1. L99
    specialize matrix_integer_minor_prefix_cell_at_coordinates (i)
  2. L100
    specialize matrix_integer_minor_prefix_cell_at_coordinates (x)
  3. L101
    specialize matrix_integer_minor_prefix_cell_at_coordinates (x1)
  4. L102
    specialize matrix_integer_minor_prefix_cell_at_coordinates (b)
  5. L103
    apply matrix_integer_minor_prefix_cell_at_coordinates
  6. L104
    exact hfirst_right
  7. L105
    exact hi
  8. L106
    exact hcoordinates_witness_witness_left
  9. L107
    exact hcoordinates_witness_witness_right
  10. L108
    exact hb
15Use earlier factsL109–118

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

  1. L109
    specialize matrix_integer_minor_prefix_cell_at_coordinates (eb)
  2. L110
    specialize matrix_integer_minor_prefix_cell_at_coordinates (ec)
  3. L111
    specialize matrix_integer_minor_prefix_cell_at_coordinates (q)
  4. L112
    specialize matrix_integer_minor_prefix_cell_at_coordinates (j)
  5. L113
    specialize matrix_integer_minor_prefix_cell_at_coordinates (Ub)
  6. L114
    specialize matrix_integer_minor_prefix_cell_at_coordinates (Uc)
  7. L115
    specialize matrix_integer_minor_prefix_cell_at_coordinates (i)
  8. L116
    specialize matrix_integer_minor_prefix_cell_at_coordinates (x)
  9. L117
    specialize matrix_integer_minor_prefix_cell_at_coordinates (x1)
  10. L118
    specialize matrix_integer_minor_prefix_cell_at_coordinates (c)
16Use earlier factsL119–128

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

  1. L119
    apply matrix_integer_minor_prefix_cell_at_coordinates
  2. L120
    exact hsecond_left
  3. L121
    exact hi
  4. L122
    exact hcoordinates_witness_witness_left
  5. L123
    exact hcoordinates_witness_witness_right
  6. L124
    exact hc
  7. L125
    specialize matrix_integer_minor_prefix_cell_at_coordinates (fb)
  8. L126
    specialize matrix_integer_minor_prefix_cell_at_coordinates (fc)
  9. L127
    specialize matrix_integer_minor_prefix_cell_at_coordinates (q)
  10. L128
    specialize matrix_integer_minor_prefix_cell_at_coordinates (j)
17Use earlier factsL129–138

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

  1. L129
    specialize matrix_integer_minor_prefix_cell_at_coordinates (Vb)
  2. L130
    specialize matrix_integer_minor_prefix_cell_at_coordinates (Vc)
  3. L131
    specialize matrix_integer_minor_prefix_cell_at_coordinates (i)
  4. L132
    specialize matrix_integer_minor_prefix_cell_at_coordinates (x)
  5. L133
    specialize matrix_integer_minor_prefix_cell_at_coordinates (x1)
  6. L134
    specialize matrix_integer_minor_prefix_cell_at_coordinates (d)
  7. L135
    apply matrix_integer_minor_prefix_cell_at_coordinates
  8. L136
    exact hsecond_right
  9. L137
    exact hi
  10. L138
    exact hcoordinates_witness_witness_left
18Use earlier factsL139–140

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

  1. L139
    exact hcoordinates_witness_witness_right
  2. L140
    exact hd

Library-wide reading audit

Original exact command ledger · 140 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 ub
  10. 0010intro uc
  11. 0011intro vb
  12. 0012intro vc
  13. 0013intro Ub
  14. 0014intro Uc
  15. 0015intro Vb
  16. 0016intro Vc
  17. 0017intro q
  18. 0018intro j
  19. 0019intro hequal
  20. 0020intro hfirst
  21. 0021intro hsecond
  22. 0022cases hfirst
  23. 0023cases hsecond
  24. 0024intro i
  25. 0025intro a
  26. 0026intro b
  27. 0027intro c
  28. 0028intro d
  29. 0029intro hi
  30. 0030intro ha
  31. 0031intro hb
  32. 0032intro hc
  33. 0033intro hd
  34. 0034have hq : ~(q = 0)
  35. 0035intro hzero
  36. 0036specialize matrix_integer_square_index_width_nonzero (q)
  37. 0037specialize matrix_integer_square_index_width_nonzero (i)
  38. 0038apply matrix_integer_square_index_width_nonzero
  39. 0039exact hi
  40. 0040exact hzero
  41. 0041have hcoordinates : exists r s. i = q * r + s /\ (exists mdr_gap_minor_common_col. mdr_gap_minor_common_col + S (s) = (q))
  42. 0042specialize division_remainder_exists (q)
  43. 0043specialize division_remainder_exists (i)
  44. 0044apply division_remainder_exists
  45. 0045exact hq
  46. 0046cases hcoordinates
  47. 0047cases hcoordinates_witness
  48. 0048cases hcoordinates_witness_witness
  49. 0049have hrow : exists mdr_gap_minor_common_row. mdr_gap_minor_common_row + S (x) = (q)
  50. 0050specialize matrix_recursive_quotient_row_bound (q)
  51. 0051specialize matrix_recursive_quotient_row_bound (i)
  52. 0052specialize matrix_recursive_quotient_row_bound (x)
  53. 0053specialize matrix_recursive_quotient_row_bound (x1)
  54. 0054apply matrix_recursive_quotient_row_bound
  55. 0055exact hcoordinates_witness_witness_left
  56. 0056exact hi
  57. 0057specialize matrix_integer_minor_cell_balance (ab)
  58. 0058specialize matrix_integer_minor_cell_balance (ac)
  59. 0059specialize matrix_integer_minor_cell_balance (bb)
  60. 0060specialize matrix_integer_minor_cell_balance (bc)
  61. 0061specialize matrix_integer_minor_cell_balance (eb)
  62. 0062specialize matrix_integer_minor_cell_balance (ec)
  63. 0063specialize matrix_integer_minor_cell_balance (fb)
  64. 0064specialize matrix_integer_minor_cell_balance (fc)
  65. 0065specialize matrix_integer_minor_cell_balance (q)
  66. 0066specialize matrix_integer_minor_cell_balance (j)
  67. 0067specialize matrix_integer_minor_cell_balance (x)
  68. 0068specialize matrix_integer_minor_cell_balance (x1)
  69. 0069specialize matrix_integer_minor_cell_balance (a)
  70. 0070specialize matrix_integer_minor_cell_balance (b)
  71. 0071specialize matrix_integer_minor_cell_balance (c)
  72. 0072specialize matrix_integer_minor_cell_balance (d)
  73. 0073apply matrix_integer_minor_cell_balance
  74. 0074exact hequal
  75. 0075exact hrow
  76. 0076exact hcoordinates_witness_witness_right
  77. 0077specialize matrix_integer_minor_prefix_cell_at_coordinates (ab)
  78. 0078specialize matrix_integer_minor_prefix_cell_at_coordinates (ac)
  79. 0079specialize matrix_integer_minor_prefix_cell_at_coordinates (q)
  80. 0080specialize matrix_integer_minor_prefix_cell_at_coordinates (j)
  81. 0081specialize matrix_integer_minor_prefix_cell_at_coordinates (ub)
  82. 0082specialize matrix_integer_minor_prefix_cell_at_coordinates (uc)
  83. 0083specialize matrix_integer_minor_prefix_cell_at_coordinates (i)
  84. 0084specialize matrix_integer_minor_prefix_cell_at_coordinates (x)
  85. 0085specialize matrix_integer_minor_prefix_cell_at_coordinates (x1)
  86. 0086specialize matrix_integer_minor_prefix_cell_at_coordinates (a)
  87. 0087apply matrix_integer_minor_prefix_cell_at_coordinates
  88. 0088exact hfirst_left
  89. 0089exact hi
  90. 0090exact hcoordinates_witness_witness_left
  91. 0091exact hcoordinates_witness_witness_right
  92. 0092exact ha
  93. 0093specialize matrix_integer_minor_prefix_cell_at_coordinates (bb)
  94. 0094specialize matrix_integer_minor_prefix_cell_at_coordinates (bc)
  95. 0095specialize matrix_integer_minor_prefix_cell_at_coordinates (q)
  96. 0096specialize matrix_integer_minor_prefix_cell_at_coordinates (j)
  97. 0097specialize matrix_integer_minor_prefix_cell_at_coordinates (vb)
  98. 0098specialize matrix_integer_minor_prefix_cell_at_coordinates (vc)
  99. 0099specialize matrix_integer_minor_prefix_cell_at_coordinates (i)
  100. 0100specialize matrix_integer_minor_prefix_cell_at_coordinates (x)
  101. 0101specialize matrix_integer_minor_prefix_cell_at_coordinates (x1)
  102. 0102specialize matrix_integer_minor_prefix_cell_at_coordinates (b)
  103. 0103apply matrix_integer_minor_prefix_cell_at_coordinates
  104. 0104exact hfirst_right
  105. 0105exact hi
  106. 0106exact hcoordinates_witness_witness_left
  107. 0107exact hcoordinates_witness_witness_right
  108. 0108exact hb
  109. 0109specialize matrix_integer_minor_prefix_cell_at_coordinates (eb)
  110. 0110specialize matrix_integer_minor_prefix_cell_at_coordinates (ec)
  111. 0111specialize matrix_integer_minor_prefix_cell_at_coordinates (q)
  112. 0112specialize matrix_integer_minor_prefix_cell_at_coordinates (j)
  113. 0113specialize matrix_integer_minor_prefix_cell_at_coordinates (Ub)
  114. 0114specialize matrix_integer_minor_prefix_cell_at_coordinates (Uc)
  115. 0115specialize matrix_integer_minor_prefix_cell_at_coordinates (i)
  116. 0116specialize matrix_integer_minor_prefix_cell_at_coordinates (x)
  117. 0117specialize matrix_integer_minor_prefix_cell_at_coordinates (x1)
  118. 0118specialize matrix_integer_minor_prefix_cell_at_coordinates (c)
  119. 0119apply matrix_integer_minor_prefix_cell_at_coordinates
  120. 0120exact hsecond_left
  121. 0121exact hi
  122. 0122exact hcoordinates_witness_witness_left
  123. 0123exact hcoordinates_witness_witness_right
  124. 0124exact hc
  125. 0125specialize matrix_integer_minor_prefix_cell_at_coordinates (fb)
  126. 0126specialize matrix_integer_minor_prefix_cell_at_coordinates (fc)
  127. 0127specialize matrix_integer_minor_prefix_cell_at_coordinates (q)
  128. 0128specialize matrix_integer_minor_prefix_cell_at_coordinates (j)
  129. 0129specialize matrix_integer_minor_prefix_cell_at_coordinates (Vb)
  130. 0130specialize matrix_integer_minor_prefix_cell_at_coordinates (Vc)
  131. 0131specialize matrix_integer_minor_prefix_cell_at_coordinates (i)
  132. 0132specialize matrix_integer_minor_prefix_cell_at_coordinates (x)
  133. 0133specialize matrix_integer_minor_prefix_cell_at_coordinates (x1)
  134. 0134specialize matrix_integer_minor_prefix_cell_at_coordinates (d)
  135. 0135apply matrix_integer_minor_prefix_cell_at_coordinates
  136. 0136exact hsecond_right
  137. 0137exact hi
  138. 0138exact hcoordinates_witness_witness_left
  139. 0139exact hcoordinates_witness_witness_right
  140. 0140exact hd