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 expanded first-order arithmetic statement
forall V L r s. (((~((V)=0)) /\ (forall dpi_index_dpi_append_source dpi_row_dpi_append_source dpi_column_dpi_append_source. (exists pvs_gap_dpi_append_sourcewindow. pvs_gap_dpi_append_sourcewindow + S (dpi_index_dpi_append_source) = (L)) -> (exists pvs_gap_dpi_append_sourceremainder. pvs_gap_dpi_append_sourceremainder + S (dpi_column_dpi_append_source) = (V)) -> (dpi_index_dpi_append_source)=(V)*(dpi_row_dpi_append_source)+(dpi_column_dpi_append_source) -> (((exists ff_h_pvs_dpi_append_sourcevalue. ff_h_pvs_dpi_append_sourcevalue + S ((dpi_row_dpi_append_source)*(dpi_column_dpi_append_source)) = S ((S (dpi_index_dpi_append_source)) * s)) /\ exists ff_q_pvs_dpi_append_sourcevalue. r = ff_q_pvs_dpi_append_sourcevalue * S ((S (dpi_index_dpi_append_source)) * s) + ((dpi_row_dpi_append_source)*(dpi_column_dpi_append_source))))))) -> exists t u. ((((~((V)=0)) /\ (forall dpi_index_dpi_append_target dpi_row_dpi_append_target dpi_column_dpi_append_target. (exists pvs_gap_dpi_append_targetwindow. pvs_gap_dpi_append_targetwindow + S (dpi_index_dpi_append_target) = (S L)) -> (exists pvs_gap_dpi_append_targetremainder. pvs_gap_dpi_append_targetremainder + S (dpi_column_dpi_append_target) = (V)) -> (dpi_index_dpi_append_target)=(V)*(dpi_row_dpi_append_target)+(dpi_column_dpi_append_target) -> (((exists ff_h_pvs_dpi_append_targetvalue. ff_h_pvs_dpi_append_targetvalue + S ((dpi_row_dpi_append_target)*(dpi_column_dpi_append_target)) = S ((S (dpi_index_dpi_append_target)) * u)) /\ exists ff_q_pvs_dpi_append_targetvalue. t = ff_q_pvs_dpi_append_targetvalue * S ((S (dpi_index_dpi_append_target)) * u) + ((dpi_row_dpi_append_target)*(dpi_column_dpi_append_target))))))) /\ (forall pfp_i_pvs_dpi_append_old_entries pfp_a_pvs_dpi_append_old_entries. (exists pfp_gap_pvs_dpi_append_old_entriesbound. pfp_gap_pvs_dpi_append_old_entriesbound + S (pfp_i_pvs_dpi_append_old_entries) = (L)) -> (((exists ff_h_pfp_pvs_dpi_append_old_entriesold. ff_h_pfp_pvs_dpi_append_old_entriesold + S (pfp_a_pvs_dpi_append_old_entries) = S ((S (pfp_i_pvs_dpi_append_old_entries)) * s)) /\ exists ff_q_pfp_pvs_dpi_append_old_entriesold. r = ff_q_pfp_pvs_dpi_append_old_entriesold * S ((S (pfp_i_pvs_dpi_append_old_entries)) * s) + (pfp_a_pvs_dpi_append_old_entries))) -> (((exists ff_h_pfp_pvs_dpi_append_old_entriesnew. ff_h_pfp_pvs_dpi_append_old_entriesnew + S (pfp_a_pvs_dpi_append_old_entries) = S ((S (pfp_i_pvs_dpi_append_old_entries)) * u)) /\ exists ff_q_pfp_pvs_dpi_append_old_entriesnew. t = ff_q_pfp_pvs_dpi_append_old_entriesnew * S ((S (pfp_i_pvs_dpi_append_old_entries)) * u) + (pfp_a_pvs_dpi_append_old_entries)))))Constructive proof overview
Generated structural guide
Actual bounded quotient and remainder determine the next product value; beta-prefix extension constructs new codes and preserves all earlier decoded entries.
The unchanged tactic script uses 4 declared prerequisites and contains 77 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
division_remainder_exists Stable theorem; checked-use authorized beta_prefix_extend Stable theorem; checked-use authorized finite_lt_succ_eq_or_lt Stable theorem; checked-use authorized division_remainder_unique Stable 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–5
02Separate the logical casesL6–6
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L6
cases hm
03Establish hcoordsL7–11
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder exists.
04Separate the logical casesL12–14
05Establish hextL15–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.
06Separate the logical casesL21–23
07Construct an explicit witnessL24–25
08Separate the logical casesL26–27
09Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
exact hm_left
10Fix variables and assumptionsL29–34
11Establish hcaseL35–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
12Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
cases hcase
13Establish hnewL41–45
14Establish hsameL46–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder unique.
- L46
have hsame : d=x /\ e=x1 - L47
specialize division_remainder_unique (V) - L48
specialize division_remainder_unique (L) - L49
specialize division_remainder_unique (d) - L50
specialize division_remainder_unique (e) - L51
specialize division_remainder_unique (x) - L52
specialize division_remainder_unique (x1) - L53
apply division_remainder_unique - L54
exact hnew - L55
exact he
15Use earlier factsL56–57
16Separate the logical casesL58–58
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L58
cases hsame
17Calculate and transport equalitiesL59–64
18Use earlier factsL65–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 77 lines
- 0001
intro V - 0002
intro L - 0003
intro r - 0004
intro s - 0005
intro hm - 0006
cases hm - 0007
have hcoords : exists d e. (((L=V*d+e) /\ (exists pvs_gap_dpi_append_remainder. pvs_gap_dpi_append_remainder + S (e) = (V)))) - 0008
specialize division_remainder_exists (V) - 0009
specialize division_remainder_exists (L) - 0010
apply division_remainder_exists - 0011
exact hm_left - 0012
cases hcoords - 0013
cases hcoords_witness - 0014
cases hcoords_witness_witness - 0015
have hext : exists t u. (((((exists ff_h_pvs_dpi_append_last. ff_h_pvs_dpi_append_last + S (x*x1) = S ((S (L)) * u)) /\ exists ff_q_pvs_dpi_append_last. t = ff_q_pvs_dpi_append_last * S ((S (L)) * u) + (x*x1))) /\ (forall pfp_i_pvs_dpi_append_preserve pfp_a_pvs_dpi_append_preserve. (exists pfp_gap_pvs_dpi_append_preservebound. pfp_gap_pvs_dpi_append_preservebound + S (pfp_i_pvs_dpi_append_preserve) = (L)) -> (((exists ff_h_pfp_pvs_dpi_append_preserveold. ff_h_pfp_pvs_dpi_append_preserveold + S (pfp_a_pvs_dpi_append_preserve) = S ((S (pfp_i_pvs_dpi_append_preserve)) * s)) /\ exists ff_q_pfp_pvs_dpi_append_preserveold. r = ff_q_pfp_pvs_dpi_append_preserveold * S ((S (pfp_i_pvs_dpi_append_preserve)) * s) + (pfp_a_pvs_dpi_append_preserve))) -> (((exists ff_h_pfp_pvs_dpi_append_preservenew. ff_h_pfp_pvs_dpi_append_preservenew + S (pfp_a_pvs_dpi_append_preserve) = S ((S (pfp_i_pvs_dpi_append_preserve)) * u)) /\ exists ff_q_pfp_pvs_dpi_append_preservenew. t = ff_q_pfp_pvs_dpi_append_preservenew * S ((S (pfp_i_pvs_dpi_append_preserve)) * u) + (pfp_a_pvs_dpi_append_preserve)))))) - 0016
specialize beta_prefix_extend (L) - 0017
specialize beta_prefix_extend (r) - 0018
specialize beta_prefix_extend (s) - 0019
specialize beta_prefix_extend (x*x1) - 0020
apply beta_prefix_extend - 0021
cases hext - 0022
cases hext_witness - 0023
cases hext_witness_witness - 0024
exists x2 - 0025
exists x3 - 0026
split - 0027
split - 0028
exact hm_left - 0029
intro i - 0030
intro d - 0031
intro e - 0032
intro hi - 0033
intro he - 0034
intro heq - 0035
have hcase : i=L \/ (exists pvs_gap_dpi_append_cases. pvs_gap_dpi_append_cases + S (i) = (L)) - 0036
specialize finite_lt_succ_eq_or_lt (L) - 0037
specialize finite_lt_succ_eq_or_lt (i) - 0038
apply finite_lt_succ_eq_or_lt - 0039
exact hi - 0040
cases hcase - 0041
have hnew : L=V*d+e - 0042
trans i - 0043
symm - 0044
exact hcase_left - 0045
exact heq - 0046
have hsame : d=x /\ e=x1 - 0047
specialize division_remainder_unique (V) - 0048
specialize division_remainder_unique (L) - 0049
specialize division_remainder_unique (d) - 0050
specialize division_remainder_unique (e) - 0051
specialize division_remainder_unique (x) - 0052
specialize division_remainder_unique (x1) - 0053
apply division_remainder_unique - 0054
exact hnew - 0055
exact he - 0056
exact hcoords_witness_witness_left - 0057
exact hcoords_witness_witness_right - 0058
cases hsame - 0059
rewrite hcase_left - 0060
rewrite hcase_left - 0061
rewrite hsame_left - 0062
rewrite hsame_left - 0063
rewrite hsame_right - 0064
rewrite hsame_right - 0065
exact hext_witness_witness_left - 0066
specialize hext_witness_witness_right (i) - 0067
specialize hext_witness_witness_right (d*e) - 0068
apply hext_witness_witness_right - 0069
exact hcase_right - 0070
specialize hm_right (i) - 0071
specialize hm_right (d) - 0072
specialize hm_right (e) - 0073
apply hm_right - 0074
exact hcase_right - 0075
exact he - 0076
exact heq - 0077
exact hext_witness_witness_right