DL001F

matrix_recursive_signed_minor_extensional

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

Every pair of corresponding actual signed cofactor minors of pointwise-equal matrices are themselves pointwise equal, regardless of their beta encodings.

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 pb pc nb nc qb qc rb rc q j up us un ut vp vs vn vt. (((forall mdr_i_parent_equalp mdr_a_parent_equalp. (exists mdr_gap_parent_equalpb. mdr_gap_parent_equalpb + S (mdr_i_parent_equalp) = ((S q) * (S q))) -> (((exists ff_h_mdr_parent_equalpo. ff_h_mdr_parent_equalpo + S (mdr_a_parent_equalp) = S ((S (mdr_i_parent_equalp)) * pc)) /\ exists ff_q_mdr_parent_equalpo. pb = ff_q_mdr_parent_equalpo * S ((S (mdr_i_parent_equalp)) * pc) + (mdr_a_parent_equalp))) -> (((exists ff_h_mdr_parent_equalpn. ff_h_mdr_parent_equalpn + S (mdr_a_parent_equalp) = S ((S (mdr_i_parent_equalp)) * qc)) /\ exists ff_q_mdr_parent_equalpn. qb = ff_q_mdr_parent_equalpn * S ((S (mdr_i_parent_equalp)) * qc) + (mdr_a_parent_equalp)))) /\ (forall mdr_i_parent_equaln mdr_a_parent_equaln. (exists mdr_gap_parent_equalnb. mdr_gap_parent_equalnb + S (mdr_i_parent_equaln) = ((S q) * (S q))) -> (((exists ff_h_mdr_parent_equalno. ff_h_mdr_parent_equalno + S (mdr_a_parent_equaln) = S ((S (mdr_i_parent_equaln)) * nc)) /\ exists ff_q_mdr_parent_equalno. nb = ff_q_mdr_parent_equalno * S ((S (mdr_i_parent_equaln)) * nc) + (mdr_a_parent_equaln))) -> (((exists ff_h_mdr_parent_equalnn. ff_h_mdr_parent_equalnn + S (mdr_a_parent_equaln) = S ((S (mdr_i_parent_equaln)) * rc)) /\ exists ff_q_mdr_parent_equalnn. rb = ff_q_mdr_parent_equalnn * S ((S (mdr_i_parent_equaln)) * rc) + (mdr_a_parent_equaln)))))) -> (((forall ff_index_mdm_prefix_mdr_left_signed_minor_positive. (exists ff_gap_mdm_lt_mdr_left_signed_minor_positive_index_bound. ff_gap_mdm_lt_mdr_left_signed_minor_positive_index_bound + S (ff_index_mdm_prefix_mdr_left_signed_minor_positive) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_left_signed_minor_positive ff_column_mdm_prefix_mdr_left_signed_minor_positive ff_value_mdm_prefix_mdr_left_signed_minor_positive. (ff_index_mdm_prefix_mdr_left_signed_minor_positive = (q) * ff_row_mdm_prefix_mdr_left_signed_minor_positive + ff_column_mdm_prefix_mdr_left_signed_minor_positive /\ ((exists ff_gap_mdm_lt_mdr_left_signed_minor_positive_column_bound. ff_gap_mdm_lt_mdr_left_signed_minor_positive_column_bound + S (ff_column_mdm_prefix_mdr_left_signed_minor_positive) = (q)) /\ ((exists ff_row_mdm_cell_mdr_left_signed_minor_positive_cell ff_column_mdm_cell_mdr_left_signed_minor_positive_cell. (((((exists ff_gap_mdm_lt_mdr_left_signed_minor_positive_cell_row_before. ff_gap_mdm_lt_mdr_left_signed_minor_positive_cell_row_before + S (ff_row_mdm_prefix_mdr_left_signed_minor_positive) = (0)) /\ ff_row_mdm_cell_mdr_left_signed_minor_positive_cell = ff_row_mdm_prefix_mdr_left_signed_minor_positive) \/ ((exists ff_gap_mdm_le_mdr_left_signed_minor_positive_cell_row_after. ff_gap_mdm_le_mdr_left_signed_minor_positive_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_left_signed_minor_positive)) /\ ff_row_mdm_cell_mdr_left_signed_minor_positive_cell = S ff_row_mdm_prefix_mdr_left_signed_minor_positive))) /\ (((((exists ff_gap_mdm_lt_mdr_left_signed_minor_positive_cell_column_before. ff_gap_mdm_lt_mdr_left_signed_minor_positive_cell_column_before + S (ff_column_mdm_prefix_mdr_left_signed_minor_positive) = (j)) /\ ff_column_mdm_cell_mdr_left_signed_minor_positive_cell = ff_column_mdm_prefix_mdr_left_signed_minor_positive) \/ ((exists ff_gap_mdm_le_mdr_left_signed_minor_positive_cell_column_after. ff_gap_mdm_le_mdr_left_signed_minor_positive_cell_column_after + (j) = (ff_column_mdm_prefix_mdr_left_signed_minor_positive)) /\ ff_column_mdm_cell_mdr_left_signed_minor_positive_cell = S ff_column_mdm_prefix_mdr_left_signed_minor_positive))) /\ (((exists ff_h_mdm_mdr_left_signed_minor_positive_cell_source. ff_h_mdm_mdr_left_signed_minor_positive_cell_source + S (ff_value_mdm_prefix_mdr_left_signed_minor_positive) = S ((S ((ff_row_mdm_cell_mdr_left_signed_minor_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_left_signed_minor_positive_cell))) * pc)) /\ exists ff_q_mdm_mdr_left_signed_minor_positive_cell_source. pb = ff_q_mdm_mdr_left_signed_minor_positive_cell_source * S ((S ((ff_row_mdm_cell_mdr_left_signed_minor_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_left_signed_minor_positive_cell))) * pc) + (ff_value_mdm_prefix_mdr_left_signed_minor_positive)))))) /\ (((exists ff_h_mdm_mdr_left_signed_minor_positive_target. ff_h_mdm_mdr_left_signed_minor_positive_target + S (ff_value_mdm_prefix_mdr_left_signed_minor_positive) = S ((S (ff_index_mdm_prefix_mdr_left_signed_minor_positive)) * us)) /\ exists ff_q_mdm_mdr_left_signed_minor_positive_target. up = ff_q_mdm_mdr_left_signed_minor_positive_target * S ((S (ff_index_mdm_prefix_mdr_left_signed_minor_positive)) * us) + (ff_value_mdm_prefix_mdr_left_signed_minor_positive))))))) /\ (forall ff_index_mdm_prefix_mdr_left_signed_minor_negative. (exists ff_gap_mdm_lt_mdr_left_signed_minor_negative_index_bound. ff_gap_mdm_lt_mdr_left_signed_minor_negative_index_bound + S (ff_index_mdm_prefix_mdr_left_signed_minor_negative) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_left_signed_minor_negative ff_column_mdm_prefix_mdr_left_signed_minor_negative ff_value_mdm_prefix_mdr_left_signed_minor_negative. (ff_index_mdm_prefix_mdr_left_signed_minor_negative = (q) * ff_row_mdm_prefix_mdr_left_signed_minor_negative + ff_column_mdm_prefix_mdr_left_signed_minor_negative /\ ((exists ff_gap_mdm_lt_mdr_left_signed_minor_negative_column_bound. ff_gap_mdm_lt_mdr_left_signed_minor_negative_column_bound + S (ff_column_mdm_prefix_mdr_left_signed_minor_negative) = (q)) /\ ((exists ff_row_mdm_cell_mdr_left_signed_minor_negative_cell ff_column_mdm_cell_mdr_left_signed_minor_negative_cell. (((((exists ff_gap_mdm_lt_mdr_left_signed_minor_negative_cell_row_before. ff_gap_mdm_lt_mdr_left_signed_minor_negative_cell_row_before + S (ff_row_mdm_prefix_mdr_left_signed_minor_negative) = (0)) /\ ff_row_mdm_cell_mdr_left_signed_minor_negative_cell = ff_row_mdm_prefix_mdr_left_signed_minor_negative) \/ ((exists ff_gap_mdm_le_mdr_left_signed_minor_negative_cell_row_after. ff_gap_mdm_le_mdr_left_signed_minor_negative_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_left_signed_minor_negative)) /\ ff_row_mdm_cell_mdr_left_signed_minor_negative_cell = S ff_row_mdm_prefix_mdr_left_signed_minor_negative))) /\ (((((exists ff_gap_mdm_lt_mdr_left_signed_minor_negative_cell_column_before. ff_gap_mdm_lt_mdr_left_signed_minor_negative_cell_column_before + S (ff_column_mdm_prefix_mdr_left_signed_minor_negative) = (j)) /\ ff_column_mdm_cell_mdr_left_signed_minor_negative_cell = ff_column_mdm_prefix_mdr_left_signed_minor_negative) \/ ((exists ff_gap_mdm_le_mdr_left_signed_minor_negative_cell_column_after. ff_gap_mdm_le_mdr_left_signed_minor_negative_cell_column_after + (j) = (ff_column_mdm_prefix_mdr_left_signed_minor_negative)) /\ ff_column_mdm_cell_mdr_left_signed_minor_negative_cell = S ff_column_mdm_prefix_mdr_left_signed_minor_negative))) /\ (((exists ff_h_mdm_mdr_left_signed_minor_negative_cell_source. ff_h_mdm_mdr_left_signed_minor_negative_cell_source + S (ff_value_mdm_prefix_mdr_left_signed_minor_negative) = S ((S ((ff_row_mdm_cell_mdr_left_signed_minor_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_left_signed_minor_negative_cell))) * nc)) /\ exists ff_q_mdm_mdr_left_signed_minor_negative_cell_source. nb = ff_q_mdm_mdr_left_signed_minor_negative_cell_source * S ((S ((ff_row_mdm_cell_mdr_left_signed_minor_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_left_signed_minor_negative_cell))) * nc) + (ff_value_mdm_prefix_mdr_left_signed_minor_negative)))))) /\ (((exists ff_h_mdm_mdr_left_signed_minor_negative_target. ff_h_mdm_mdr_left_signed_minor_negative_target + S (ff_value_mdm_prefix_mdr_left_signed_minor_negative) = S ((S (ff_index_mdm_prefix_mdr_left_signed_minor_negative)) * ut)) /\ exists ff_q_mdm_mdr_left_signed_minor_negative_target. un = ff_q_mdm_mdr_left_signed_minor_negative_target * S ((S (ff_index_mdm_prefix_mdr_left_signed_minor_negative)) * ut) + (ff_value_mdm_prefix_mdr_left_signed_minor_negative))))))))) -> (((forall ff_index_mdm_prefix_mdr_right_signed_minor_positive. (exists ff_gap_mdm_lt_mdr_right_signed_minor_positive_index_bound. ff_gap_mdm_lt_mdr_right_signed_minor_positive_index_bound + S (ff_index_mdm_prefix_mdr_right_signed_minor_positive) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_right_signed_minor_positive ff_column_mdm_prefix_mdr_right_signed_minor_positive ff_value_mdm_prefix_mdr_right_signed_minor_positive. (ff_index_mdm_prefix_mdr_right_signed_minor_positive = (q) * ff_row_mdm_prefix_mdr_right_signed_minor_positive + ff_column_mdm_prefix_mdr_right_signed_minor_positive /\ ((exists ff_gap_mdm_lt_mdr_right_signed_minor_positive_column_bound. ff_gap_mdm_lt_mdr_right_signed_minor_positive_column_bound + S (ff_column_mdm_prefix_mdr_right_signed_minor_positive) = (q)) /\ ((exists ff_row_mdm_cell_mdr_right_signed_minor_positive_cell ff_column_mdm_cell_mdr_right_signed_minor_positive_cell. (((((exists ff_gap_mdm_lt_mdr_right_signed_minor_positive_cell_row_before. ff_gap_mdm_lt_mdr_right_signed_minor_positive_cell_row_before + S (ff_row_mdm_prefix_mdr_right_signed_minor_positive) = (0)) /\ ff_row_mdm_cell_mdr_right_signed_minor_positive_cell = ff_row_mdm_prefix_mdr_right_signed_minor_positive) \/ ((exists ff_gap_mdm_le_mdr_right_signed_minor_positive_cell_row_after. ff_gap_mdm_le_mdr_right_signed_minor_positive_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_right_signed_minor_positive)) /\ ff_row_mdm_cell_mdr_right_signed_minor_positive_cell = S ff_row_mdm_prefix_mdr_right_signed_minor_positive))) /\ (((((exists ff_gap_mdm_lt_mdr_right_signed_minor_positive_cell_column_before. ff_gap_mdm_lt_mdr_right_signed_minor_positive_cell_column_before + S (ff_column_mdm_prefix_mdr_right_signed_minor_positive) = (j)) /\ ff_column_mdm_cell_mdr_right_signed_minor_positive_cell = ff_column_mdm_prefix_mdr_right_signed_minor_positive) \/ ((exists ff_gap_mdm_le_mdr_right_signed_minor_positive_cell_column_after. ff_gap_mdm_le_mdr_right_signed_minor_positive_cell_column_after + (j) = (ff_column_mdm_prefix_mdr_right_signed_minor_positive)) /\ ff_column_mdm_cell_mdr_right_signed_minor_positive_cell = S ff_column_mdm_prefix_mdr_right_signed_minor_positive))) /\ (((exists ff_h_mdm_mdr_right_signed_minor_positive_cell_source. ff_h_mdm_mdr_right_signed_minor_positive_cell_source + S (ff_value_mdm_prefix_mdr_right_signed_minor_positive) = S ((S ((ff_row_mdm_cell_mdr_right_signed_minor_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_right_signed_minor_positive_cell))) * qc)) /\ exists ff_q_mdm_mdr_right_signed_minor_positive_cell_source. qb = ff_q_mdm_mdr_right_signed_minor_positive_cell_source * S ((S ((ff_row_mdm_cell_mdr_right_signed_minor_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdr_right_signed_minor_positive_cell))) * qc) + (ff_value_mdm_prefix_mdr_right_signed_minor_positive)))))) /\ (((exists ff_h_mdm_mdr_right_signed_minor_positive_target. ff_h_mdm_mdr_right_signed_minor_positive_target + S (ff_value_mdm_prefix_mdr_right_signed_minor_positive) = S ((S (ff_index_mdm_prefix_mdr_right_signed_minor_positive)) * vs)) /\ exists ff_q_mdm_mdr_right_signed_minor_positive_target. vp = ff_q_mdm_mdr_right_signed_minor_positive_target * S ((S (ff_index_mdm_prefix_mdr_right_signed_minor_positive)) * vs) + (ff_value_mdm_prefix_mdr_right_signed_minor_positive))))))) /\ (forall ff_index_mdm_prefix_mdr_right_signed_minor_negative. (exists ff_gap_mdm_lt_mdr_right_signed_minor_negative_index_bound. ff_gap_mdm_lt_mdr_right_signed_minor_negative_index_bound + S (ff_index_mdm_prefix_mdr_right_signed_minor_negative) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdr_right_signed_minor_negative ff_column_mdm_prefix_mdr_right_signed_minor_negative ff_value_mdm_prefix_mdr_right_signed_minor_negative. (ff_index_mdm_prefix_mdr_right_signed_minor_negative = (q) * ff_row_mdm_prefix_mdr_right_signed_minor_negative + ff_column_mdm_prefix_mdr_right_signed_minor_negative /\ ((exists ff_gap_mdm_lt_mdr_right_signed_minor_negative_column_bound. ff_gap_mdm_lt_mdr_right_signed_minor_negative_column_bound + S (ff_column_mdm_prefix_mdr_right_signed_minor_negative) = (q)) /\ ((exists ff_row_mdm_cell_mdr_right_signed_minor_negative_cell ff_column_mdm_cell_mdr_right_signed_minor_negative_cell. (((((exists ff_gap_mdm_lt_mdr_right_signed_minor_negative_cell_row_before. ff_gap_mdm_lt_mdr_right_signed_minor_negative_cell_row_before + S (ff_row_mdm_prefix_mdr_right_signed_minor_negative) = (0)) /\ ff_row_mdm_cell_mdr_right_signed_minor_negative_cell = ff_row_mdm_prefix_mdr_right_signed_minor_negative) \/ ((exists ff_gap_mdm_le_mdr_right_signed_minor_negative_cell_row_after. ff_gap_mdm_le_mdr_right_signed_minor_negative_cell_row_after + (0) = (ff_row_mdm_prefix_mdr_right_signed_minor_negative)) /\ ff_row_mdm_cell_mdr_right_signed_minor_negative_cell = S ff_row_mdm_prefix_mdr_right_signed_minor_negative))) /\ (((((exists ff_gap_mdm_lt_mdr_right_signed_minor_negative_cell_column_before. ff_gap_mdm_lt_mdr_right_signed_minor_negative_cell_column_before + S (ff_column_mdm_prefix_mdr_right_signed_minor_negative) = (j)) /\ ff_column_mdm_cell_mdr_right_signed_minor_negative_cell = ff_column_mdm_prefix_mdr_right_signed_minor_negative) \/ ((exists ff_gap_mdm_le_mdr_right_signed_minor_negative_cell_column_after. ff_gap_mdm_le_mdr_right_signed_minor_negative_cell_column_after + (j) = (ff_column_mdm_prefix_mdr_right_signed_minor_negative)) /\ ff_column_mdm_cell_mdr_right_signed_minor_negative_cell = S ff_column_mdm_prefix_mdr_right_signed_minor_negative))) /\ (((exists ff_h_mdm_mdr_right_signed_minor_negative_cell_source. ff_h_mdm_mdr_right_signed_minor_negative_cell_source + S (ff_value_mdm_prefix_mdr_right_signed_minor_negative) = S ((S ((ff_row_mdm_cell_mdr_right_signed_minor_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_right_signed_minor_negative_cell))) * rc)) /\ exists ff_q_mdm_mdr_right_signed_minor_negative_cell_source. rb = ff_q_mdm_mdr_right_signed_minor_negative_cell_source * S ((S ((ff_row_mdm_cell_mdr_right_signed_minor_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdr_right_signed_minor_negative_cell))) * rc) + (ff_value_mdm_prefix_mdr_right_signed_minor_negative)))))) /\ (((exists ff_h_mdm_mdr_right_signed_minor_negative_target. ff_h_mdm_mdr_right_signed_minor_negative_target + S (ff_value_mdm_prefix_mdr_right_signed_minor_negative) = S ((S (ff_index_mdm_prefix_mdr_right_signed_minor_negative)) * vt)) /\ exists ff_q_mdm_mdr_right_signed_minor_negative_target. vn = ff_q_mdm_mdr_right_signed_minor_negative_target * S ((S (ff_index_mdm_prefix_mdr_right_signed_minor_negative)) * vt) + (ff_value_mdm_prefix_mdr_right_signed_minor_negative))))))))) -> (((forall mdr_i_child_equalp mdr_a_child_equalp. (exists mdr_gap_child_equalpb. mdr_gap_child_equalpb + S (mdr_i_child_equalp) = ((q) * (q))) -> (((exists ff_h_mdr_child_equalpo. ff_h_mdr_child_equalpo + S (mdr_a_child_equalp) = S ((S (mdr_i_child_equalp)) * us)) /\ exists ff_q_mdr_child_equalpo. up = ff_q_mdr_child_equalpo * S ((S (mdr_i_child_equalp)) * us) + (mdr_a_child_equalp))) -> (((exists ff_h_mdr_child_equalpn. ff_h_mdr_child_equalpn + S (mdr_a_child_equalp) = S ((S (mdr_i_child_equalp)) * vs)) /\ exists ff_q_mdr_child_equalpn. vp = ff_q_mdr_child_equalpn * S ((S (mdr_i_child_equalp)) * vs) + (mdr_a_child_equalp)))) /\ (forall mdr_i_child_equaln mdr_a_child_equaln. (exists mdr_gap_child_equalnb. mdr_gap_child_equalnb + S (mdr_i_child_equaln) = ((q) * (q))) -> (((exists ff_h_mdr_child_equalno. ff_h_mdr_child_equalno + S (mdr_a_child_equaln) = S ((S (mdr_i_child_equaln)) * ut)) /\ exists ff_q_mdr_child_equalno. un = ff_q_mdr_child_equalno * S ((S (mdr_i_child_equaln)) * ut) + (mdr_a_child_equaln))) -> (((exists ff_h_mdr_child_equalnn. ff_h_mdr_child_equalnn + S (mdr_a_child_equaln) = S ((S (mdr_i_child_equaln)) * vt)) /\ exists ff_q_mdr_child_equalnn. vn = ff_q_mdr_child_equalnn * S ((S (mdr_i_child_equaln)) * vt) + (mdr_a_child_equaln))))))

Constructive proof overview

Generated structural guide

Every pair of corresponding actual signed cofactor minors of pointwise-equal matrices are themselves pointwise equal, regardless of their beta encodings.

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

71 script commands · 10 reading checkpoints · 2 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)

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

01Fix variables and assumptionsL1–10

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

  1. L1
    intro pb
  2. L2
    intro pc
  3. L3
    intro nb
  4. L4
    intro nc
  5. L5
    intro qb
  6. L6
    intro qc
  7. L7
    intro rb
  8. L8
    intro rc
  9. L9
    intro q
  10. L10
    intro j
02Fix variables and assumptionsL11–20

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

  1. L11
    intro up
  2. L12
    intro us
  3. L13
    intro un
  4. L14
    intro ut
  5. L15
    intro vp
  6. L16
    intro vs
  7. L17
    intro vn
  8. L18
    intro vt
  9. L19
    intro hparent
  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–25

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

  1. L22
    cases hparent
  2. L23
    cases hfirst
  3. L24
    cases hsecond
  4. L25
    split
05Establish hpositiveL26–35

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix recursive minor prefix transport.

  1. L26
    have hpositive : MatrixMinorPrefix(qb,qc,S q,0,j,up,us,q,q · q)Definitions: MatrixMinorPrefix
  2. L27
    specialize matrix_recursive_minor_prefix_transport (pb)
  3. L28
    specialize matrix_recursive_minor_prefix_transport (pc)
  4. L29
    specialize matrix_recursive_minor_prefix_transport (qb)
  5. L30
    specialize matrix_recursive_minor_prefix_transport (qc)
  6. L31
    specialize matrix_recursive_minor_prefix_transport (q)
  7. L32
    specialize matrix_recursive_minor_prefix_transport (j)
  8. L33
    specialize matrix_recursive_minor_prefix_transport (up)
  9. L34
    specialize matrix_recursive_minor_prefix_transport (us)
  10. L35
    apply matrix_recursive_minor_prefix_transport
06Use earlier factsL36–45

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

  1. L36
    exact hparent_left
  2. L37
    exact hfirst_left
  3. L38
    specialize matrix_recursive_minor_prefix_functional (qb)
  4. L39
    specialize matrix_recursive_minor_prefix_functional (qc)
  5. L40
    specialize matrix_recursive_minor_prefix_functional (q)
  6. L41
    specialize matrix_recursive_minor_prefix_functional (j)
  7. L42
    specialize matrix_recursive_minor_prefix_functional (up)
  8. L43
    specialize matrix_recursive_minor_prefix_functional (us)
  9. L44
    specialize matrix_recursive_minor_prefix_functional (vp)
  10. L45
    specialize matrix_recursive_minor_prefix_functional (vs)
07Use earlier factsL46–48

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

  1. L46
    apply matrix_recursive_minor_prefix_functional
  2. L47
    exact hpositive
  3. L48
    exact hsecond_left
08Establish hnegativeL49–58

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix recursive minor prefix transport.

  1. L49
    have hnegative : MatrixMinorPrefix(rb,rc,S q,0,j,un,ut,q,q · q)Definitions: MatrixMinorPrefix
  2. L50
    specialize matrix_recursive_minor_prefix_transport (nb)
  3. L51
    specialize matrix_recursive_minor_prefix_transport (nc)
  4. L52
    specialize matrix_recursive_minor_prefix_transport (rb)
  5. L53
    specialize matrix_recursive_minor_prefix_transport (rc)
  6. L54
    specialize matrix_recursive_minor_prefix_transport (q)
  7. L55
    specialize matrix_recursive_minor_prefix_transport (j)
  8. L56
    specialize matrix_recursive_minor_prefix_transport (un)
  9. L57
    specialize matrix_recursive_minor_prefix_transport (ut)
  10. L58
    apply matrix_recursive_minor_prefix_transport
09Use earlier factsL59–68

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

  1. L59
    exact hparent_right
  2. L60
    exact hfirst_right
  3. L61
    specialize matrix_recursive_minor_prefix_functional (rb)
  4. L62
    specialize matrix_recursive_minor_prefix_functional (rc)
  5. L63
    specialize matrix_recursive_minor_prefix_functional (q)
  6. L64
    specialize matrix_recursive_minor_prefix_functional (j)
  7. L65
    specialize matrix_recursive_minor_prefix_functional (un)
  8. L66
    specialize matrix_recursive_minor_prefix_functional (ut)
  9. L67
    specialize matrix_recursive_minor_prefix_functional (vn)
  10. L68
    specialize matrix_recursive_minor_prefix_functional (vt)
10Use earlier factsL69–71

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

  1. L69
    apply matrix_recursive_minor_prefix_functional
  2. L70
    exact hnegative
  3. L71
    exact hsecond_right

Library-wide reading audit

Original exact command ledger · 71 lines
  1. 0001intro pb
  2. 0002intro pc
  3. 0003intro nb
  4. 0004intro nc
  5. 0005intro qb
  6. 0006intro qc
  7. 0007intro rb
  8. 0008intro rc
  9. 0009intro q
  10. 0010intro j
  11. 0011intro up
  12. 0012intro us
  13. 0013intro un
  14. 0014intro ut
  15. 0015intro vp
  16. 0016intro vs
  17. 0017intro vn
  18. 0018intro vt
  19. 0019intro hparent
  20. 0020intro hfirst
  21. 0021intro hsecond
  22. 0022cases hparent
  23. 0023cases hfirst
  24. 0024cases hsecond
  25. 0025split
  26. 0026have hpositive : forall ff_index_mdm_prefix_mdre_transported_positive. (exists ff_gap_mdm_lt_mdre_transported_positive_index_bound. ff_gap_mdm_lt_mdre_transported_positive_index_bound + S (ff_index_mdm_prefix_mdre_transported_positive) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdre_transported_positive ff_column_mdm_prefix_mdre_transported_positive ff_value_mdm_prefix_mdre_transported_positive. (ff_index_mdm_prefix_mdre_transported_positive = (q) * ff_row_mdm_prefix_mdre_transported_positive + ff_column_mdm_prefix_mdre_transported_positive /\ ((exists ff_gap_mdm_lt_mdre_transported_positive_column_bound. ff_gap_mdm_lt_mdre_transported_positive_column_bound + S (ff_column_mdm_prefix_mdre_transported_positive) = (q)) /\ ((exists ff_row_mdm_cell_mdre_transported_positive_cell ff_column_mdm_cell_mdre_transported_positive_cell. (((((exists ff_gap_mdm_lt_mdre_transported_positive_cell_row_before. ff_gap_mdm_lt_mdre_transported_positive_cell_row_before + S (ff_row_mdm_prefix_mdre_transported_positive) = (0)) /\ ff_row_mdm_cell_mdre_transported_positive_cell = ff_row_mdm_prefix_mdre_transported_positive) \/ ((exists ff_gap_mdm_le_mdre_transported_positive_cell_row_after. ff_gap_mdm_le_mdre_transported_positive_cell_row_after + (0) = (ff_row_mdm_prefix_mdre_transported_positive)) /\ ff_row_mdm_cell_mdre_transported_positive_cell = S ff_row_mdm_prefix_mdre_transported_positive))) /\ (((((exists ff_gap_mdm_lt_mdre_transported_positive_cell_column_before. ff_gap_mdm_lt_mdre_transported_positive_cell_column_before + S (ff_column_mdm_prefix_mdre_transported_positive) = (j)) /\ ff_column_mdm_cell_mdre_transported_positive_cell = ff_column_mdm_prefix_mdre_transported_positive) \/ ((exists ff_gap_mdm_le_mdre_transported_positive_cell_column_after. ff_gap_mdm_le_mdre_transported_positive_cell_column_after + (j) = (ff_column_mdm_prefix_mdre_transported_positive)) /\ ff_column_mdm_cell_mdre_transported_positive_cell = S ff_column_mdm_prefix_mdre_transported_positive))) /\ (((exists ff_h_mdm_mdre_transported_positive_cell_source. ff_h_mdm_mdre_transported_positive_cell_source + S (ff_value_mdm_prefix_mdre_transported_positive) = S ((S ((ff_row_mdm_cell_mdre_transported_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdre_transported_positive_cell))) * qc)) /\ exists ff_q_mdm_mdre_transported_positive_cell_source. qb = ff_q_mdm_mdre_transported_positive_cell_source * S ((S ((ff_row_mdm_cell_mdre_transported_positive_cell) * (S (q)) + (ff_column_mdm_cell_mdre_transported_positive_cell))) * qc) + (ff_value_mdm_prefix_mdre_transported_positive)))))) /\ (((exists ff_h_mdm_mdre_transported_positive_target. ff_h_mdm_mdre_transported_positive_target + S (ff_value_mdm_prefix_mdre_transported_positive) = S ((S (ff_index_mdm_prefix_mdre_transported_positive)) * us)) /\ exists ff_q_mdm_mdre_transported_positive_target. up = ff_q_mdm_mdre_transported_positive_target * S ((S (ff_index_mdm_prefix_mdre_transported_positive)) * us) + (ff_value_mdm_prefix_mdre_transported_positive))))))
  27. 0027specialize matrix_recursive_minor_prefix_transport (pb)
  28. 0028specialize matrix_recursive_minor_prefix_transport (pc)
  29. 0029specialize matrix_recursive_minor_prefix_transport (qb)
  30. 0030specialize matrix_recursive_minor_prefix_transport (qc)
  31. 0031specialize matrix_recursive_minor_prefix_transport (q)
  32. 0032specialize matrix_recursive_minor_prefix_transport (j)
  33. 0033specialize matrix_recursive_minor_prefix_transport (up)
  34. 0034specialize matrix_recursive_minor_prefix_transport (us)
  35. 0035apply matrix_recursive_minor_prefix_transport
  36. 0036exact hparent_left
  37. 0037exact hfirst_left
  38. 0038specialize matrix_recursive_minor_prefix_functional (qb)
  39. 0039specialize matrix_recursive_minor_prefix_functional (qc)
  40. 0040specialize matrix_recursive_minor_prefix_functional (q)
  41. 0041specialize matrix_recursive_minor_prefix_functional (j)
  42. 0042specialize matrix_recursive_minor_prefix_functional (up)
  43. 0043specialize matrix_recursive_minor_prefix_functional (us)
  44. 0044specialize matrix_recursive_minor_prefix_functional (vp)
  45. 0045specialize matrix_recursive_minor_prefix_functional (vs)
  46. 0046apply matrix_recursive_minor_prefix_functional
  47. 0047exact hpositive
  48. 0048exact hsecond_left
  49. 0049have hnegative : forall ff_index_mdm_prefix_mdre_transported_negative. (exists ff_gap_mdm_lt_mdre_transported_negative_index_bound. ff_gap_mdm_lt_mdre_transported_negative_index_bound + S (ff_index_mdm_prefix_mdre_transported_negative) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdre_transported_negative ff_column_mdm_prefix_mdre_transported_negative ff_value_mdm_prefix_mdre_transported_negative. (ff_index_mdm_prefix_mdre_transported_negative = (q) * ff_row_mdm_prefix_mdre_transported_negative + ff_column_mdm_prefix_mdre_transported_negative /\ ((exists ff_gap_mdm_lt_mdre_transported_negative_column_bound. ff_gap_mdm_lt_mdre_transported_negative_column_bound + S (ff_column_mdm_prefix_mdre_transported_negative) = (q)) /\ ((exists ff_row_mdm_cell_mdre_transported_negative_cell ff_column_mdm_cell_mdre_transported_negative_cell. (((((exists ff_gap_mdm_lt_mdre_transported_negative_cell_row_before. ff_gap_mdm_lt_mdre_transported_negative_cell_row_before + S (ff_row_mdm_prefix_mdre_transported_negative) = (0)) /\ ff_row_mdm_cell_mdre_transported_negative_cell = ff_row_mdm_prefix_mdre_transported_negative) \/ ((exists ff_gap_mdm_le_mdre_transported_negative_cell_row_after. ff_gap_mdm_le_mdre_transported_negative_cell_row_after + (0) = (ff_row_mdm_prefix_mdre_transported_negative)) /\ ff_row_mdm_cell_mdre_transported_negative_cell = S ff_row_mdm_prefix_mdre_transported_negative))) /\ (((((exists ff_gap_mdm_lt_mdre_transported_negative_cell_column_before. ff_gap_mdm_lt_mdre_transported_negative_cell_column_before + S (ff_column_mdm_prefix_mdre_transported_negative) = (j)) /\ ff_column_mdm_cell_mdre_transported_negative_cell = ff_column_mdm_prefix_mdre_transported_negative) \/ ((exists ff_gap_mdm_le_mdre_transported_negative_cell_column_after. ff_gap_mdm_le_mdre_transported_negative_cell_column_after + (j) = (ff_column_mdm_prefix_mdre_transported_negative)) /\ ff_column_mdm_cell_mdre_transported_negative_cell = S ff_column_mdm_prefix_mdre_transported_negative))) /\ (((exists ff_h_mdm_mdre_transported_negative_cell_source. ff_h_mdm_mdre_transported_negative_cell_source + S (ff_value_mdm_prefix_mdre_transported_negative) = S ((S ((ff_row_mdm_cell_mdre_transported_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdre_transported_negative_cell))) * rc)) /\ exists ff_q_mdm_mdre_transported_negative_cell_source. rb = ff_q_mdm_mdre_transported_negative_cell_source * S ((S ((ff_row_mdm_cell_mdre_transported_negative_cell) * (S (q)) + (ff_column_mdm_cell_mdre_transported_negative_cell))) * rc) + (ff_value_mdm_prefix_mdre_transported_negative)))))) /\ (((exists ff_h_mdm_mdre_transported_negative_target. ff_h_mdm_mdre_transported_negative_target + S (ff_value_mdm_prefix_mdre_transported_negative) = S ((S (ff_index_mdm_prefix_mdre_transported_negative)) * ut)) /\ exists ff_q_mdm_mdre_transported_negative_target. un = ff_q_mdm_mdre_transported_negative_target * S ((S (ff_index_mdm_prefix_mdre_transported_negative)) * ut) + (ff_value_mdm_prefix_mdre_transported_negative))))))
  50. 0050specialize matrix_recursive_minor_prefix_transport (nb)
  51. 0051specialize matrix_recursive_minor_prefix_transport (nc)
  52. 0052specialize matrix_recursive_minor_prefix_transport (rb)
  53. 0053specialize matrix_recursive_minor_prefix_transport (rc)
  54. 0054specialize matrix_recursive_minor_prefix_transport (q)
  55. 0055specialize matrix_recursive_minor_prefix_transport (j)
  56. 0056specialize matrix_recursive_minor_prefix_transport (un)
  57. 0057specialize matrix_recursive_minor_prefix_transport (ut)
  58. 0058apply matrix_recursive_minor_prefix_transport
  59. 0059exact hparent_right
  60. 0060exact hfirst_right
  61. 0061specialize matrix_recursive_minor_prefix_functional (rb)
  62. 0062specialize matrix_recursive_minor_prefix_functional (rc)
  63. 0063specialize matrix_recursive_minor_prefix_functional (q)
  64. 0064specialize matrix_recursive_minor_prefix_functional (j)
  65. 0065specialize matrix_recursive_minor_prefix_functional (un)
  66. 0066specialize matrix_recursive_minor_prefix_functional (ut)
  67. 0067specialize matrix_recursive_minor_prefix_functional (vn)
  68. 0068specialize matrix_recursive_minor_prefix_functional (vt)
  69. 0069apply matrix_recursive_minor_prefix_functional
  70. 0070exact hnegative
  71. 0071exact hsecond_right