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 b c q j u v U V. (forall ff_index_mdm_prefix_mdre_first_minor. (exists ff_gap_mdm_lt_mdre_first_minor_index_bound. ff_gap_mdm_lt_mdre_first_minor_index_bound + S (ff_index_mdm_prefix_mdre_first_minor) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdre_first_minor ff_column_mdm_prefix_mdre_first_minor ff_value_mdm_prefix_mdre_first_minor. (ff_index_mdm_prefix_mdre_first_minor = (q) * ff_row_mdm_prefix_mdre_first_minor + ff_column_mdm_prefix_mdre_first_minor /\ ((exists ff_gap_mdm_lt_mdre_first_minor_column_bound. ff_gap_mdm_lt_mdre_first_minor_column_bound + S (ff_column_mdm_prefix_mdre_first_minor) = (q)) /\ ((exists ff_row_mdm_cell_mdre_first_minor_cell ff_column_mdm_cell_mdre_first_minor_cell. (((((exists ff_gap_mdm_lt_mdre_first_minor_cell_row_before. ff_gap_mdm_lt_mdre_first_minor_cell_row_before + S (ff_row_mdm_prefix_mdre_first_minor) = (0)) /\ ff_row_mdm_cell_mdre_first_minor_cell = ff_row_mdm_prefix_mdre_first_minor) \/ ((exists ff_gap_mdm_le_mdre_first_minor_cell_row_after. ff_gap_mdm_le_mdre_first_minor_cell_row_after + (0) = (ff_row_mdm_prefix_mdre_first_minor)) /\ ff_row_mdm_cell_mdre_first_minor_cell = S ff_row_mdm_prefix_mdre_first_minor))) /\ (((((exists ff_gap_mdm_lt_mdre_first_minor_cell_column_before. ff_gap_mdm_lt_mdre_first_minor_cell_column_before + S (ff_column_mdm_prefix_mdre_first_minor) = (j)) /\ ff_column_mdm_cell_mdre_first_minor_cell = ff_column_mdm_prefix_mdre_first_minor) \/ ((exists ff_gap_mdm_le_mdre_first_minor_cell_column_after. ff_gap_mdm_le_mdre_first_minor_cell_column_after + (j) = (ff_column_mdm_prefix_mdre_first_minor)) /\ ff_column_mdm_cell_mdre_first_minor_cell = S ff_column_mdm_prefix_mdre_first_minor))) /\ (((exists ff_h_mdm_mdre_first_minor_cell_source. ff_h_mdm_mdre_first_minor_cell_source + S (ff_value_mdm_prefix_mdre_first_minor) = S ((S ((ff_row_mdm_cell_mdre_first_minor_cell) * (S (q)) + (ff_column_mdm_cell_mdre_first_minor_cell))) * c)) /\ exists ff_q_mdm_mdre_first_minor_cell_source. b = ff_q_mdm_mdre_first_minor_cell_source * S ((S ((ff_row_mdm_cell_mdre_first_minor_cell) * (S (q)) + (ff_column_mdm_cell_mdre_first_minor_cell))) * c) + (ff_value_mdm_prefix_mdre_first_minor)))))) /\ (((exists ff_h_mdm_mdre_first_minor_target. ff_h_mdm_mdre_first_minor_target + S (ff_value_mdm_prefix_mdre_first_minor) = S ((S (ff_index_mdm_prefix_mdre_first_minor)) * v)) /\ exists ff_q_mdm_mdre_first_minor_target. u = ff_q_mdm_mdre_first_minor_target * S ((S (ff_index_mdm_prefix_mdre_first_minor)) * v) + (ff_value_mdm_prefix_mdre_first_minor))))))) -> (forall ff_index_mdm_prefix_mdre_second_minor. (exists ff_gap_mdm_lt_mdre_second_minor_index_bound. ff_gap_mdm_lt_mdre_second_minor_index_bound + S (ff_index_mdm_prefix_mdre_second_minor) = ((q) * (q))) -> exists ff_row_mdm_prefix_mdre_second_minor ff_column_mdm_prefix_mdre_second_minor ff_value_mdm_prefix_mdre_second_minor. (ff_index_mdm_prefix_mdre_second_minor = (q) * ff_row_mdm_prefix_mdre_second_minor + ff_column_mdm_prefix_mdre_second_minor /\ ((exists ff_gap_mdm_lt_mdre_second_minor_column_bound. ff_gap_mdm_lt_mdre_second_minor_column_bound + S (ff_column_mdm_prefix_mdre_second_minor) = (q)) /\ ((exists ff_row_mdm_cell_mdre_second_minor_cell ff_column_mdm_cell_mdre_second_minor_cell. (((((exists ff_gap_mdm_lt_mdre_second_minor_cell_row_before. ff_gap_mdm_lt_mdre_second_minor_cell_row_before + S (ff_row_mdm_prefix_mdre_second_minor) = (0)) /\ ff_row_mdm_cell_mdre_second_minor_cell = ff_row_mdm_prefix_mdre_second_minor) \/ ((exists ff_gap_mdm_le_mdre_second_minor_cell_row_after. ff_gap_mdm_le_mdre_second_minor_cell_row_after + (0) = (ff_row_mdm_prefix_mdre_second_minor)) /\ ff_row_mdm_cell_mdre_second_minor_cell = S ff_row_mdm_prefix_mdre_second_minor))) /\ (((((exists ff_gap_mdm_lt_mdre_second_minor_cell_column_before. ff_gap_mdm_lt_mdre_second_minor_cell_column_before + S (ff_column_mdm_prefix_mdre_second_minor) = (j)) /\ ff_column_mdm_cell_mdre_second_minor_cell = ff_column_mdm_prefix_mdre_second_minor) \/ ((exists ff_gap_mdm_le_mdre_second_minor_cell_column_after. ff_gap_mdm_le_mdre_second_minor_cell_column_after + (j) = (ff_column_mdm_prefix_mdre_second_minor)) /\ ff_column_mdm_cell_mdre_second_minor_cell = S ff_column_mdm_prefix_mdre_second_minor))) /\ (((exists ff_h_mdm_mdre_second_minor_cell_source. ff_h_mdm_mdre_second_minor_cell_source + S (ff_value_mdm_prefix_mdre_second_minor) = S ((S ((ff_row_mdm_cell_mdre_second_minor_cell) * (S (q)) + (ff_column_mdm_cell_mdre_second_minor_cell))) * c)) /\ exists ff_q_mdm_mdre_second_minor_cell_source. b = ff_q_mdm_mdre_second_minor_cell_source * S ((S ((ff_row_mdm_cell_mdre_second_minor_cell) * (S (q)) + (ff_column_mdm_cell_mdre_second_minor_cell))) * c) + (ff_value_mdm_prefix_mdre_second_minor)))))) /\ (((exists ff_h_mdm_mdre_second_minor_target. ff_h_mdm_mdre_second_minor_target + S (ff_value_mdm_prefix_mdre_second_minor) = S ((S (ff_index_mdm_prefix_mdre_second_minor)) * V)) /\ exists ff_q_mdm_mdre_second_minor_target. U = ff_q_mdm_mdre_second_minor_target * S ((S (ff_index_mdm_prefix_mdre_second_minor)) * V) + (ff_value_mdm_prefix_mdre_second_minor))))))) -> (forall mdr_i_minor_unique mdr_a_minor_unique. (exists mdr_gap_minor_uniqueb. mdr_gap_minor_uniqueb + S (mdr_i_minor_unique) = (q * q)) -> (((exists ff_h_mdr_minor_uniqueo. ff_h_mdr_minor_uniqueo + S (mdr_a_minor_unique) = S ((S (mdr_i_minor_unique)) * v)) /\ exists ff_q_mdr_minor_uniqueo. u = ff_q_mdr_minor_uniqueo * S ((S (mdr_i_minor_unique)) * v) + (mdr_a_minor_unique))) -> (((exists ff_h_mdr_minor_uniquen. ff_h_mdr_minor_uniquen + S (mdr_a_minor_unique) = S ((S (mdr_i_minor_unique)) * V)) /\ exists ff_q_mdr_minor_uniquen. U = ff_q_mdr_minor_uniquen * S ((S (mdr_i_minor_unique)) * V) + (mdr_a_minor_unique))))Constructive proof overview
Generated structural guide
Two complete codes of the same actual cofactor minor agree at every in-range child entry; division uniqueness aligns the genuine row/column witnesses.
The unchanged tactic script uses 3 declared prerequisites and contains 82 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
division_remainder_unique Stable theorem; checked-use authorized beta_at_unique Stable theorem; checked-use authorized beta_matrix_minor_cell_functional Alpha theorem; checked-use authorizedDirect 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
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.
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–14
03Establish hfirstL15–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hleft.
04Separate the logical casesL19–24
05Establish hsecondL25–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hright.
06Separate the logical casesL29–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
07Establish hcoordinatesL35–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder unique.
- L35
have hcoordinates : x = x3 /\ x1 = x4 - L36
specialize division_remainder_unique (q) - L37
specialize division_remainder_unique (k) - L38
specialize division_remainder_unique (x) - L39
specialize division_remainder_unique (x1) - L40
specialize division_remainder_unique (x3) - L41
specialize division_remainder_unique (x4) - L42
apply division_remainder_unique - L43
exact hfirst_witness_witness_witness_left - L44
exact hfirst_witness_witness_witness_right_left
08Use earlier factsL45–46
09Separate the logical casesL47–47
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L47
cases hcoordinates
10Establish hvaluesL48–57
Establish this local claim before using it. It is not an additional assumption.
- L48
have hvalues : x2 = x5 - L49
specialize beta_matrix_minor_cell_functional (b) - L50
specialize beta_matrix_minor_cell_functional (c) - L51
specialize beta_matrix_minor_cell_functional (S q) - L52
specialize beta_matrix_minor_cell_functional (0) - L53
specialize beta_matrix_minor_cell_functional (j) - L54
specialize beta_matrix_minor_cell_functional (x) - L55
specialize beta_matrix_minor_cell_functional (x1) - L56
specialize beta_matrix_minor_cell_functional (x2) - L57
specialize beta_matrix_minor_cell_functional (x5)
11Use earlier factsL58–59
12Calculate and transport equalitiesL60–67
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
13Use earlier factsL68–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L68
exact hsecond_witness_witness_witness_right_right_left
14Establish houtputL69–78
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
15Use earlier factsL79–79
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L79
exact hvalues
16Calculate and transport equalitiesL80–81
17Use earlier factsL82–82
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
exact hsecond_witness_witness_witness_right_right_right
Original exact command ledger · 82 lines
- 0001
intro b - 0002
intro c - 0003
intro q - 0004
intro j - 0005
intro u - 0006
intro v - 0007
intro U - 0008
intro V - 0009
intro hleft - 0010
intro hright - 0011
intro k - 0012
intro a - 0013
intro hk - 0014
intro ha - 0015
have hfirst : exists r s z. ((k = q * r + s) /\ ((exists mdr_gap_first_s. mdr_gap_first_s + S (s) = (q)) /\ ((exists ff_row_mdm_cell_mdre_first_cell ff_column_mdm_cell_mdre_first_cell. (((((exists ff_gap_mdm_lt_mdre_first_cell_row_before. ff_gap_mdm_lt_mdre_first_cell_row_before + S (r) = (0)) /\ ff_row_mdm_cell_mdre_first_cell = r) \/ ((exists ff_gap_mdm_le_mdre_first_cell_row_after. ff_gap_mdm_le_mdre_first_cell_row_after + (0) = (r)) /\ ff_row_mdm_cell_mdre_first_cell = S r))) /\ (((((exists ff_gap_mdm_lt_mdre_first_cell_column_before. ff_gap_mdm_lt_mdre_first_cell_column_before + S (s) = (j)) /\ ff_column_mdm_cell_mdre_first_cell = s) \/ ((exists ff_gap_mdm_le_mdre_first_cell_column_after. ff_gap_mdm_le_mdre_first_cell_column_after + (j) = (s)) /\ ff_column_mdm_cell_mdre_first_cell = S s))) /\ (((exists ff_h_mdm_mdre_first_cell_source. ff_h_mdm_mdre_first_cell_source + S (z) = S ((S ((ff_row_mdm_cell_mdre_first_cell) * (S (q)) + (ff_column_mdm_cell_mdre_first_cell))) * c)) /\ exists ff_q_mdm_mdre_first_cell_source. b = ff_q_mdm_mdre_first_cell_source * S ((S ((ff_row_mdm_cell_mdre_first_cell) * (S (q)) + (ff_column_mdm_cell_mdre_first_cell))) * c) + (z)))))) /\ (((exists ff_h_mdr_first_value. ff_h_mdr_first_value + S (z) = S ((S (k)) * v)) /\ exists ff_q_mdr_first_value. u = ff_q_mdr_first_value * S ((S (k)) * v) + (z)))))) - 0016
specialize hleft (k) - 0017
apply hleft - 0018
exact hk - 0019
cases hfirst - 0020
cases hfirst_witness - 0021
cases hfirst_witness_witness - 0022
cases hfirst_witness_witness_witness - 0023
cases hfirst_witness_witness_witness_right - 0024
cases hfirst_witness_witness_witness_right_right - 0025
have hsecond : exists r s z. ((k = q * r + s) /\ ((exists mdr_gap_second_s. mdr_gap_second_s + S (s) = (q)) /\ ((exists ff_row_mdm_cell_mdre_second_cell ff_column_mdm_cell_mdre_second_cell. (((((exists ff_gap_mdm_lt_mdre_second_cell_row_before. ff_gap_mdm_lt_mdre_second_cell_row_before + S (r) = (0)) /\ ff_row_mdm_cell_mdre_second_cell = r) \/ ((exists ff_gap_mdm_le_mdre_second_cell_row_after. ff_gap_mdm_le_mdre_second_cell_row_after + (0) = (r)) /\ ff_row_mdm_cell_mdre_second_cell = S r))) /\ (((((exists ff_gap_mdm_lt_mdre_second_cell_column_before. ff_gap_mdm_lt_mdre_second_cell_column_before + S (s) = (j)) /\ ff_column_mdm_cell_mdre_second_cell = s) \/ ((exists ff_gap_mdm_le_mdre_second_cell_column_after. ff_gap_mdm_le_mdre_second_cell_column_after + (j) = (s)) /\ ff_column_mdm_cell_mdre_second_cell = S s))) /\ (((exists ff_h_mdm_mdre_second_cell_source. ff_h_mdm_mdre_second_cell_source + S (z) = S ((S ((ff_row_mdm_cell_mdre_second_cell) * (S (q)) + (ff_column_mdm_cell_mdre_second_cell))) * c)) /\ exists ff_q_mdm_mdre_second_cell_source. b = ff_q_mdm_mdre_second_cell_source * S ((S ((ff_row_mdm_cell_mdre_second_cell) * (S (q)) + (ff_column_mdm_cell_mdre_second_cell))) * c) + (z)))))) /\ (((exists ff_h_mdr_second_value. ff_h_mdr_second_value + S (z) = S ((S (k)) * V)) /\ exists ff_q_mdr_second_value. U = ff_q_mdr_second_value * S ((S (k)) * V) + (z)))))) - 0026
specialize hright (k) - 0027
apply hright - 0028
exact hk - 0029
cases hsecond - 0030
cases hsecond_witness - 0031
cases hsecond_witness_witness - 0032
cases hsecond_witness_witness_witness - 0033
cases hsecond_witness_witness_witness_right - 0034
cases hsecond_witness_witness_witness_right_right - 0035
have hcoordinates : x = x3 /\ x1 = x4 - 0036
specialize division_remainder_unique (q) - 0037
specialize division_remainder_unique (k) - 0038
specialize division_remainder_unique (x) - 0039
specialize division_remainder_unique (x1) - 0040
specialize division_remainder_unique (x3) - 0041
specialize division_remainder_unique (x4) - 0042
apply division_remainder_unique - 0043
exact hfirst_witness_witness_witness_left - 0044
exact hfirst_witness_witness_witness_right_left - 0045
exact hsecond_witness_witness_witness_left - 0046
exact hsecond_witness_witness_witness_right_left - 0047
cases hcoordinates - 0048
have hvalues : x2 = x5 - 0049
specialize beta_matrix_minor_cell_functional (b) - 0050
specialize beta_matrix_minor_cell_functional (c) - 0051
specialize beta_matrix_minor_cell_functional (S q) - 0052
specialize beta_matrix_minor_cell_functional (0) - 0053
specialize beta_matrix_minor_cell_functional (j) - 0054
specialize beta_matrix_minor_cell_functional (x) - 0055
specialize beta_matrix_minor_cell_functional (x1) - 0056
specialize beta_matrix_minor_cell_functional (x2) - 0057
specialize beta_matrix_minor_cell_functional (x5) - 0058
apply beta_matrix_minor_cell_functional - 0059
exact hfirst_witness_witness_witness_right_right_left - 0060
rewrite hcoordinates_left - 0061
rewrite hcoordinates_left - 0062
rewrite hcoordinates_left - 0063
rewrite hcoordinates_left - 0064
rewrite hcoordinates_right - 0065
rewrite hcoordinates_right - 0066
rewrite hcoordinates_right - 0067
rewrite hcoordinates_right - 0068
exact hsecond_witness_witness_witness_right_right_left - 0069
have houtput : a = x5 - 0070
trans x2 - 0071
specialize beta_at_unique (u) - 0072
specialize beta_at_unique (v) - 0073
specialize beta_at_unique (k) - 0074
specialize beta_at_unique (a) - 0075
specialize beta_at_unique (x2) - 0076
apply beta_at_unique - 0077
exact ha - 0078
exact hfirst_witness_witness_witness_right_right_right - 0079
exact hvalues - 0080
rewrite houtput - 0081
rewrite houtput - 0082
exact hsecond_witness_witness_witness_right_right_right