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 p k ab ac l. ~(p=0) -> (exists pfa_gap_scale_exists_scalar. pfa_gap_scale_exists_scalar + S (k) = (p)) -> (forall fom_index_pfp_scale_exists_source. (exists fom_gap_pfp_scale_exists_source_index_bound. fom_gap_pfp_scale_exists_source_index_bound + S (fom_index_pfp_scale_exists_source) = l) -> exists fom_value_pfp_scale_exists_source. ((((exists fom_beta_height_pfp_scale_exists_source_entry. fom_beta_height_pfp_scale_exists_source_entry + S (fom_value_pfp_scale_exists_source) = S ((S (fom_index_pfp_scale_exists_source)) * ac)) /\ exists fom_beta_quotient_pfp_scale_exists_source_entry. ab = fom_beta_quotient_pfp_scale_exists_source_entry * S ((S (fom_index_pfp_scale_exists_source)) * ac) + (fom_value_pfp_scale_exists_source))) /\ (exists fom_gap_pfp_scale_exists_source_value_bound. fom_gap_pfp_scale_exists_source_value_bound + S (fom_value_pfp_scale_exists_source) = p))) -> exists bb bc. (((exists pfa_gap_scale_exists_resultscalar. pfa_gap_scale_exists_resultscalar + S (k) = (p)) /\ ((forall pfp_index_scale_exists_result. (exists pfa_gap_scale_exists_resultindex. pfa_gap_scale_exists_resultindex + S (pfp_index_scale_exists_result) = (l)) -> exists pfp_source_scale_exists_result pfp_value_scale_exists_result. ((((exists ff_h_pfp_scale_exists_resultsource. ff_h_pfp_scale_exists_resultsource + S (pfp_source_scale_exists_result) = S ((S (pfp_index_scale_exists_result)) * ac)) /\ exists ff_q_pfp_scale_exists_resultsource. ab = ff_q_pfp_scale_exists_resultsource * S ((S (pfp_index_scale_exists_result)) * ac) + (pfp_source_scale_exists_result))) /\ (((((exists ff_h_pfp_scale_exists_resulttarget. ff_h_pfp_scale_exists_resulttarget + S (pfp_value_scale_exists_result) = S ((S (pfp_index_scale_exists_result)) * bc)) /\ exists ff_q_pfp_scale_exists_resulttarget. bb = ff_q_pfp_scale_exists_resulttarget * S ((S (pfp_index_scale_exists_result)) * bc) + (pfp_value_scale_exists_result))) /\ ((((exists pfa_gap_scale_exists_resultoperationleft. pfa_gap_scale_exists_resultoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_exists_resultoperationright. pfa_gap_scale_exists_resultoperationright + S (pfp_source_scale_exists_result) = (p)) /\ ((((exists pfa_gap_scale_exists_resultoperationresultbound. pfa_gap_scale_exists_resultoperationresultbound + S (pfp_value_scale_exists_result) = (p)) /\ ((exists pfa_offset_left_scale_exists_resultoperationresultcongruence pfa_offset_right_scale_exists_resultoperationresultcongruence. ((k) * (pfp_source_scale_exists_result)) + (p) * pfa_offset_left_scale_exists_resultoperationresultcongruence = (pfp_value_scale_exists_result) + (p) * pfa_offset_right_scale_exists_resultoperationresultcongruence)))))))))))))))))Constructive proof overview
Generated structural guide
Every canonical scalar has an actual finite coefficient-product table, including scalar zero and empty inputs.
The unchanged tactic script uses 4 declared prerequisites and contains 51 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_repeat_exists Stable theorem; checked-use authorized beta_pointwise_mul_prefix_exists Alpha theorem; checked-use authorized PP0002 prime_field_polynomial_normalization_exists PP0014 prime_field_polynomial_scale_from_normalizationDirect 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.
Named ingredients (2)
01Fix variables and assumptionsL1–8
02Establish hrL9–12
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta repeat exists.
- L9
have hr : exists kb kc. (forall pfp_repeat_index_scale_exists_repeat. (exists pfa_gap_scale_exists_repeatindex. pfa_gap_scale_exists_repeatindex + S (pfp_repeat_index_scale_exists_repeat) = (l)) -> (((exists ff_h_pfp_scale_exists_repeatentry. ff_h_pfp_scale_exists_repeatentry + S (k) = S ((S (pfp_repeat_index_scale_exists_repeat)) * kc)) /\ exists ff_q_pfp_scale_exists_repeatentry. kb = ff_q_pfp_scale_exists_repeatentry * S ((S (pfp_repeat_index_scale_exists_repeat)) * kc) + (k)))) - L10
specialize beta_repeat_exists (k) - L11
specialize beta_repeat_exists (l) - L12
apply beta_repeat_exists
03Separate the logical casesL13–14
04Establish hmL15–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta pointwise mul prefix exists.
05Separate the logical casesL22–23
06Establish hnL24–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial normalization exists.
- L24
have hn : ∃ bb. ∃ bc. FpCoefficientReduction(p,x2,x3,bb,bc,l)Definitions: FpCoefficientReduction - L25
specialize prime_field_polynomial_normalization_exists (p) - L26
specialize prime_field_polynomial_normalization_exists (x2) - L27
specialize prime_field_polynomial_normalization_exists (x3) - L28
specialize prime_field_polynomial_normalization_exists (l) - L29
apply prime_field_polynomial_normalization_exists - L30
exact hp
07Separate the logical casesL31–32
08Construct an explicit witnessL33–34
09Use earlier factsL35–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
specialize prime_field_polynomial_scale_from_normalization (p) - L36
specialize prime_field_polynomial_scale_from_normalization (k) - L37
specialize prime_field_polynomial_scale_from_normalization (x) - L38
specialize prime_field_polynomial_scale_from_normalization (x1) - L39
specialize prime_field_polynomial_scale_from_normalization (ab) - L40
specialize prime_field_polynomial_scale_from_normalization (ac) - L41
specialize prime_field_polynomial_scale_from_normalization (x2) - L42
specialize prime_field_polynomial_scale_from_normalization (x3) - L43
specialize prime_field_polynomial_scale_from_normalization (x4) - L44
specialize prime_field_polynomial_scale_from_normalization (x5)
10Use earlier factsL45–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 51 lines
- 0001
intro p - 0002
intro k - 0003
intro ab - 0004
intro ac - 0005
intro l - 0006
intro hp - 0007
intro hk - 0008
intro hc - 0009
have hr : exists kb kc. (forall pfp_repeat_index_scale_exists_repeat. (exists pfa_gap_scale_exists_repeatindex. pfa_gap_scale_exists_repeatindex + S (pfp_repeat_index_scale_exists_repeat) = (l)) -> (((exists ff_h_pfp_scale_exists_repeatentry. ff_h_pfp_scale_exists_repeatentry + S (k) = S ((S (pfp_repeat_index_scale_exists_repeat)) * kc)) /\ exists ff_q_pfp_scale_exists_repeatentry. kb = ff_q_pfp_scale_exists_repeatentry * S ((S (pfp_repeat_index_scale_exists_repeat)) * kc) + (k)))) - 0010
specialize beta_repeat_exists (k) - 0011
specialize beta_repeat_exists (l) - 0012
apply beta_repeat_exists - 0013
cases hr - 0014
cases hr_witness - 0015
have hm : exists rb rc. (forall fpmp_index_pfp_scale_exists_raw fpmp_left_pfp_scale_exists_raw fpmp_right_pfp_scale_exists_raw fpmp_target_pfp_scale_exists_raw. (exists fpmp_gap_pfp_scale_exists_raw. fpmp_gap_pfp_scale_exists_raw + S fpmp_index_pfp_scale_exists_raw = l) -> (((exists ff_h_fpmp_pfp_scale_exists_raw_left. ff_h_fpmp_pfp_scale_exists_raw_left + S (fpmp_left_pfp_scale_exists_raw) = S ((S (fpmp_index_pfp_scale_exists_raw)) * x1)) /\ exists ff_q_fpmp_pfp_scale_exists_raw_left. x = ff_q_fpmp_pfp_scale_exists_raw_left * S ((S (fpmp_index_pfp_scale_exists_raw)) * x1) + (fpmp_left_pfp_scale_exists_raw))) -> (((exists ff_h_fpmp_pfp_scale_exists_raw_right. ff_h_fpmp_pfp_scale_exists_raw_right + S (fpmp_right_pfp_scale_exists_raw) = S ((S (fpmp_index_pfp_scale_exists_raw)) * ac)) /\ exists ff_q_fpmp_pfp_scale_exists_raw_right. ab = ff_q_fpmp_pfp_scale_exists_raw_right * S ((S (fpmp_index_pfp_scale_exists_raw)) * ac) + (fpmp_right_pfp_scale_exists_raw))) -> (((exists ff_h_fpmp_pfp_scale_exists_raw_target. ff_h_fpmp_pfp_scale_exists_raw_target + S (fpmp_target_pfp_scale_exists_raw) = S ((S (fpmp_index_pfp_scale_exists_raw)) * rc)) /\ exists ff_q_fpmp_pfp_scale_exists_raw_target. rb = ff_q_fpmp_pfp_scale_exists_raw_target * S ((S (fpmp_index_pfp_scale_exists_raw)) * rc) + (fpmp_target_pfp_scale_exists_raw))) -> fpmp_target_pfp_scale_exists_raw = fpmp_left_pfp_scale_exists_raw * fpmp_right_pfp_scale_exists_raw) - 0016
specialize beta_pointwise_mul_prefix_exists (x) - 0017
specialize beta_pointwise_mul_prefix_exists (x1) - 0018
specialize beta_pointwise_mul_prefix_exists (ab) - 0019
specialize beta_pointwise_mul_prefix_exists (ac) - 0020
specialize beta_pointwise_mul_prefix_exists (l) - 0021
apply beta_pointwise_mul_prefix_exists - 0022
cases hm - 0023
cases hm_witness - 0024
have hn : exists bb bc. (forall pfp_index_scale_exists_normalization. (exists pfa_gap_scale_exists_normalizationindex. pfa_gap_scale_exists_normalizationindex + S (pfp_index_scale_exists_normalization) = (l)) -> exists pfp_source_scale_exists_normalization pfp_residue_scale_exists_normalization. ((((exists ff_h_pfp_scale_exists_normalizationsource. ff_h_pfp_scale_exists_normalizationsource + S (pfp_source_scale_exists_normalization) = S ((S (pfp_index_scale_exists_normalization)) * x3)) /\ exists ff_q_pfp_scale_exists_normalizationsource. x2 = ff_q_pfp_scale_exists_normalizationsource * S ((S (pfp_index_scale_exists_normalization)) * x3) + (pfp_source_scale_exists_normalization))) /\ (((((exists ff_h_pfp_scale_exists_normalizationtarget. ff_h_pfp_scale_exists_normalizationtarget + S (pfp_residue_scale_exists_normalization) = S ((S (pfp_index_scale_exists_normalization)) * bc)) /\ exists ff_q_pfp_scale_exists_normalizationtarget. bb = ff_q_pfp_scale_exists_normalizationtarget * S ((S (pfp_index_scale_exists_normalization)) * bc) + (pfp_residue_scale_exists_normalization))) /\ ((((exists pfa_gap_scale_exists_normalizationresiduebound. pfa_gap_scale_exists_normalizationresiduebound + S (pfp_residue_scale_exists_normalization) = (p)) /\ ((exists pfa_offset_left_scale_exists_normalizationresiduecongruence pfa_offset_right_scale_exists_normalizationresiduecongruence. (pfp_source_scale_exists_normalization) + (p) * pfa_offset_left_scale_exists_normalizationresiduecongruence = (pfp_residue_scale_exists_normalization) + (p) * pfa_offset_right_scale_exists_normalizationresiduecongruence))))))))) - 0025
specialize prime_field_polynomial_normalization_exists (p) - 0026
specialize prime_field_polynomial_normalization_exists (x2) - 0027
specialize prime_field_polynomial_normalization_exists (x3) - 0028
specialize prime_field_polynomial_normalization_exists (l) - 0029
apply prime_field_polynomial_normalization_exists - 0030
exact hp - 0031
cases hn - 0032
cases hn_witness - 0033
exists x4 - 0034
exists x5 - 0035
specialize prime_field_polynomial_scale_from_normalization (p) - 0036
specialize prime_field_polynomial_scale_from_normalization (k) - 0037
specialize prime_field_polynomial_scale_from_normalization (x) - 0038
specialize prime_field_polynomial_scale_from_normalization (x1) - 0039
specialize prime_field_polynomial_scale_from_normalization (ab) - 0040
specialize prime_field_polynomial_scale_from_normalization (ac) - 0041
specialize prime_field_polynomial_scale_from_normalization (x2) - 0042
specialize prime_field_polynomial_scale_from_normalization (x3) - 0043
specialize prime_field_polynomial_scale_from_normalization (x4) - 0044
specialize prime_field_polynomial_scale_from_normalization (x5) - 0045
specialize prime_field_polynomial_scale_from_normalization (l) - 0046
apply prime_field_polynomial_scale_from_normalization - 0047
exact hk - 0048
exact hc - 0049
exact hr_witness_witness - 0050
exact hm_witness_witness - 0051
exact hn_witness_witness