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 p l. ~(p = 0) -> exists b c. (forall fsri_index_exists. (exists fsri_gap_exists_index. fsri_gap_exists_index + S (fsri_index_exists) = (l)) -> exists fsri_quotient_exists fsri_residue_exists. (fsri_index_exists * fsri_index_exists = (p) * fsri_quotient_exists + fsri_residue_exists /\ ((exists fsri_gap_exists_residue. fsri_gap_exists_residue + S (fsri_residue_exists) = (p)) /\ (((exists fsri_height_exists_entry. fsri_height_exists_entry + S (fsri_residue_exists) = S ((S (fsri_index_exists)) * (c))) /\ exists fsri_quotient_exists_entry. (b) = fsri_quotient_exists_entry * S ((S (fsri_index_exists)) * (c)) + (fsri_residue_exists))))))Constructive proof overview
Generated structural guide
For every nonzero modulus and arbitrary finite length, canonical square residues are constructively encoded as one beta prefix.
The unchanged tactic script uses 4 declared prerequisites and contains 70 exact native proof lines.
dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged
Proof neighborhood
Direct dependencies
beta_range_exists Stable theorem; checked-use authorized beta_pointwise_mul_prefix_exists Alpha theorem; checked-use authorized beta_division_prefix_exists Alpha theorem; checked-use authorized zero_add 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–3
02Establish hrangeL4–7
Establish this local claim before using it. It is not an additional assumption.
- L4
have hrange : exists b c. forall i. (exists fsri_gap_range_index. fsri_gap_range_index + S (i) = (l)) -> (((exists fsri_height_range_entry. fsri_height_range_entry + S (0 + i) = S ((S (i)) * (c))) /\ exists fsri_quotient_range_entry. (b) = fsri_quotient_range_entry * S ((S (i)) * (c)) + (0 + i))) - L5
specialize beta_range_exists 0 - L6
specialize beta_range_exists l - L7
exact beta_range_exists
03Separate the logical casesL8–9
04Establish hsquaresL10–16
Establish this local claim before using it. It is not an additional assumption.
05Separate the logical casesL17–18
06Establish hdivisionsL19–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta division prefix exists.
- L19
have hdivisions : ∃ qb. ∃ qc. ∃ rb. ∃ rc. DivisionPrefix(p,x2,x3,qb,qc,rb,rc,l)Definitions: DivisionPrefix - L20
specialize beta_division_prefix_exists p - L21
specialize beta_division_prefix_exists x2 - L22
specialize beta_division_prefix_exists x3 - L23
specialize beta_division_prefix_exists l - L24
apply beta_division_prefix_exists - L25
exact hnonzero
07Separate the logical casesL26–29
08Construct an explicit witnessL30–31
09Fix variables and assumptionsL32–33
10Establish hindex_zeroL34–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hrange witness witness.
- L34
have hindex_zero : ((exists fsri_height_square_index_zero. fsri_height_square_index_zero + S (0 + i) = S ((S (i)) * (x1))) /\ exists fsri_quotient_square_index_zero. (x) = fsri_quotient_square_index_zero * S ((S (i)) * (x1)) + (0 + i)) - L35
specialize hrange_witness_witness i - L36
apply hrange_witness_witness - L37
exact hi
11Establish hzeroL38–41
12Establish hdivisionL42–45
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hdivisions witness witness witness witness.
13Separate the logical casesL46–52
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
14Establish hvalueL53–62
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hsquares witness witness.
- L53
have hvalue : x8 = i * i - L54
specialize hsquares_witness_witness i - L55
specialize hsquares_witness_witness i - L56
specialize hsquares_witness_witness i - L57
specialize hsquares_witness_witness x8 - L58
apply hsquares_witness_witness - L59
exact hi - L60
exact hindex_zero - L61
exact hindex_zero - L62
exact hdivision_witness_witness_witness_left
15Construct an explicit witnessL63–64
16Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
split
17Calculate and transport equalitiesL66–66
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L66
rewrite <- hvalue
18Use earlier factsL67–67
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L67
exact hdivision_witness_witness_witness_right_right_right_left
19Separate the logical casesL68–68
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L68
split
Original exact command ledger · 70 lines
- 0001
intro p - 0002
intro l - 0003
intro hnonzero - 0004
have hrange : exists b c. forall i. (exists fsri_gap_range_index. fsri_gap_range_index + S (i) = (l)) -> (((exists fsri_height_range_entry. fsri_height_range_entry + S (0 + i) = S ((S (i)) * (c))) /\ exists fsri_quotient_range_entry. (b) = fsri_quotient_range_entry * S ((S (i)) * (c)) + (0 + i))) - 0005
specialize beta_range_exists 0 - 0006
specialize beta_range_exists l - 0007
exact beta_range_exists - 0008
cases hrange - 0009
cases hrange_witness - 0010
have hsquares : exists b c. (forall fpmp_index_fsri_square_values fpmp_left_fsri_square_values fpmp_right_fsri_square_values fpmp_target_fsri_square_values. (exists fpmp_gap_fsri_square_values. fpmp_gap_fsri_square_values + S fpmp_index_fsri_square_values = l) -> (((exists ff_h_fpmp_fsri_square_values_left. ff_h_fpmp_fsri_square_values_left + S (fpmp_left_fsri_square_values) = S ((S (fpmp_index_fsri_square_values)) * x1)) /\ exists ff_q_fpmp_fsri_square_values_left. x = ff_q_fpmp_fsri_square_values_left * S ((S (fpmp_index_fsri_square_values)) * x1) + (fpmp_left_fsri_square_values))) -> (((exists ff_h_fpmp_fsri_square_values_right. ff_h_fpmp_fsri_square_values_right + S (fpmp_right_fsri_square_values) = S ((S (fpmp_index_fsri_square_values)) * x1)) /\ exists ff_q_fpmp_fsri_square_values_right. x = ff_q_fpmp_fsri_square_values_right * S ((S (fpmp_index_fsri_square_values)) * x1) + (fpmp_right_fsri_square_values))) -> (((exists ff_h_fpmp_fsri_square_values_target. ff_h_fpmp_fsri_square_values_target + S (fpmp_target_fsri_square_values) = S ((S (fpmp_index_fsri_square_values)) * c)) /\ exists ff_q_fpmp_fsri_square_values_target. b = ff_q_fpmp_fsri_square_values_target * S ((S (fpmp_index_fsri_square_values)) * c) + (fpmp_target_fsri_square_values))) -> fpmp_target_fsri_square_values = fpmp_left_fsri_square_values * fpmp_right_fsri_square_values) - 0011
specialize beta_pointwise_mul_prefix_exists x - 0012
specialize beta_pointwise_mul_prefix_exists x1 - 0013
specialize beta_pointwise_mul_prefix_exists x - 0014
specialize beta_pointwise_mul_prefix_exists x1 - 0015
specialize beta_pointwise_mul_prefix_exists l - 0016
exact beta_pointwise_mul_prefix_exists - 0017
cases hsquares - 0018
cases hsquares_witness - 0019
have hdivisions : exists qb qc rb rc. (forall fdp_index_fsri_square_divisions. (exists gsp_lt_gap_fsri_square_divisions_index_bound. gsp_lt_gap_fsri_square_divisions_index_bound + S fdp_index_fsri_square_divisions = l) -> exists fdp_value_fsri_square_divisions fdp_quotient_fsri_square_divisions fdp_remainder_fsri_square_divisions. (((exists ff_h_fdp_fsri_square_divisions_source. ff_h_fdp_fsri_square_divisions_source + S (fdp_value_fsri_square_divisions) = S ((S (fdp_index_fsri_square_divisions)) * x3)) /\ exists ff_q_fdp_fsri_square_divisions_source. x2 = ff_q_fdp_fsri_square_divisions_source * S ((S (fdp_index_fsri_square_divisions)) * x3) + (fdp_value_fsri_square_divisions))) /\ ((((exists ff_h_fdp_fsri_square_divisions_quotient_entry. ff_h_fdp_fsri_square_divisions_quotient_entry + S (fdp_quotient_fsri_square_divisions) = S ((S (fdp_index_fsri_square_divisions)) * qc)) /\ exists ff_q_fdp_fsri_square_divisions_quotient_entry. qb = ff_q_fdp_fsri_square_divisions_quotient_entry * S ((S (fdp_index_fsri_square_divisions)) * qc) + (fdp_quotient_fsri_square_divisions))) /\ ((((exists ff_h_fdp_fsri_square_divisions_remainder_entry. ff_h_fdp_fsri_square_divisions_remainder_entry + S (fdp_remainder_fsri_square_divisions) = S ((S (fdp_index_fsri_square_divisions)) * rc)) /\ exists ff_q_fdp_fsri_square_divisions_remainder_entry. rb = ff_q_fdp_fsri_square_divisions_remainder_entry * S ((S (fdp_index_fsri_square_divisions)) * rc) + (fdp_remainder_fsri_square_divisions))) /\ (fdp_value_fsri_square_divisions = p * fdp_quotient_fsri_square_divisions + fdp_remainder_fsri_square_divisions /\ (exists gsp_lt_gap_fsri_square_divisions_remainder_bound. gsp_lt_gap_fsri_square_divisions_remainder_bound + S fdp_remainder_fsri_square_divisions = p))))) - 0020
specialize beta_division_prefix_exists p - 0021
specialize beta_division_prefix_exists x2 - 0022
specialize beta_division_prefix_exists x3 - 0023
specialize beta_division_prefix_exists l - 0024
apply beta_division_prefix_exists - 0025
exact hnonzero - 0026
cases hdivisions - 0027
cases hdivisions_witness - 0028
cases hdivisions_witness_witness - 0029
cases hdivisions_witness_witness_witness - 0030
exists x6 - 0031
exists x7 - 0032
intro i - 0033
intro hi - 0034
have hindex_zero : ((exists fsri_height_square_index_zero. fsri_height_square_index_zero + S (0 + i) = S ((S (i)) * (x1))) /\ exists fsri_quotient_square_index_zero. (x) = fsri_quotient_square_index_zero * S ((S (i)) * (x1)) + (0 + i)) - 0035
specialize hrange_witness_witness i - 0036
apply hrange_witness_witness - 0037
exact hi - 0038
have hzero : 0 + i = i - 0039
apply zero_add - 0040
rewrite hzero at hindex_zero - 0041
rewrite hzero at hindex_zero - 0042
have hdivision : exists v q r. ((((exists fsri_height_square_source_value. fsri_height_square_source_value + S (v) = S ((S (i)) * (x3))) /\ exists fsri_quotient_square_source_value. (x2) = fsri_quotient_square_source_value * S ((S (i)) * (x3)) + (v))) /\ ((((exists fsri_height_square_quotient_value. fsri_height_square_quotient_value + S (q) = S ((S (i)) * (x5))) /\ exists fsri_quotient_square_quotient_value. (x4) = fsri_quotient_square_quotient_value * S ((S (i)) * (x5)) + (q))) /\ ((((exists fsri_height_square_remainder_value. fsri_height_square_remainder_value + S (r) = S ((S (i)) * (x7))) /\ exists fsri_quotient_square_remainder_value. (x6) = fsri_quotient_square_remainder_value * S ((S (i)) * (x7)) + (r))) /\ (v = p * q + r /\ (exists fsri_gap_square_remainder_bound. fsri_gap_square_remainder_bound + S (r) = (p)))))) - 0043
specialize hdivisions_witness_witness_witness_witness i - 0044
apply hdivisions_witness_witness_witness_witness - 0045
exact hi - 0046
cases hdivision - 0047
cases hdivision_witness - 0048
cases hdivision_witness_witness - 0049
cases hdivision_witness_witness_witness - 0050
cases hdivision_witness_witness_witness_right - 0051
cases hdivision_witness_witness_witness_right_right - 0052
cases hdivision_witness_witness_witness_right_right_right - 0053
have hvalue : x8 = i * i - 0054
specialize hsquares_witness_witness i - 0055
specialize hsquares_witness_witness i - 0056
specialize hsquares_witness_witness i - 0057
specialize hsquares_witness_witness x8 - 0058
apply hsquares_witness_witness - 0059
exact hi - 0060
exact hindex_zero - 0061
exact hindex_zero - 0062
exact hdivision_witness_witness_witness_left - 0063
exists x9 - 0064
exists x10 - 0065
split - 0066
rewrite <- hvalue - 0067
exact hdivision_witness_witness_witness_right_right_right_left - 0068
split - 0069
exact hdivision_witness_witness_witness_right_right_right_right - 0070
exact hdivision_witness_witness_witness_right_right_left