DL001F

matrix_recursive_signed_minor_extensional

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

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

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.

This branch proves the finite determinant/rank/span substrate. It does not claim Smith or Hermite normal form, lattice index equals determinant, determinant multiplicativity, lattice reduction, or geometry-of-numbers theorems.

Exact theorem in conservative defined notation

∀ pb. ∀ pc. ∀ nb. ∀ nc. ∀ qb. ∀ qc. ∀ rb. ∀ rc. ∀ q. ∀ j. ∀ up. ∀ us. ∀ un. ∀ ut. ∀ vp. ∀ vs. ∀ vn. ∀ vt. SignedMatrixPrefixEquality(pb,pc,nb,nc,qb,qc,rb,rc,S q)SignedMatrixMinor(pb,pc,nb,nc,S q,0,j,q,up,us,un,ut)SignedMatrixMinor(qb,qc,rb,rc,S q,0,j,q,vp,vs,vn,vt)SignedMatrixPrefixEquality(up,us,un,ut,vp,vs,vn,vt,q)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

Original expanded first-order 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))))))

Complete tactic proof in conservative notation

All 71 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (2)
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(qb,qc,S q,0,j,up,us,q,q · q)Original native command in the exact edition
  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(rb,rc,S q,0,j,un,ut,q,q · q)Original native command in the exact edition
  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 defined 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 : MatrixMinorPrefix(qb,qc,S q,0,j,up,us,q,q · q)
  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 : MatrixMinorPrefix(rb,rc,S q,0,j,un,ut,q,q · q)
  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