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 kb kc ab ac rb rc bb bc l. (exists pfa_gap_scale_scalar. pfa_gap_scale_scalar + S (k) = (p)) -> (forall fom_index_pfp_scale_source. (exists fom_gap_pfp_scale_source_index_bound. fom_gap_pfp_scale_source_index_bound + S (fom_index_pfp_scale_source) = l) -> exists fom_value_pfp_scale_source. ((((exists fom_beta_height_pfp_scale_source_entry. fom_beta_height_pfp_scale_source_entry + S (fom_value_pfp_scale_source) = S ((S (fom_index_pfp_scale_source)) * ac)) /\ exists fom_beta_quotient_pfp_scale_source_entry. ab = fom_beta_quotient_pfp_scale_source_entry * S ((S (fom_index_pfp_scale_source)) * ac) + (fom_value_pfp_scale_source))) /\ (exists fom_gap_pfp_scale_source_value_bound. fom_gap_pfp_scale_source_value_bound + S (fom_value_pfp_scale_source) = p))) -> (forall pfp_repeat_index_scale_repeated. (exists pfa_gap_scale_repeatedindex. pfa_gap_scale_repeatedindex + S (pfp_repeat_index_scale_repeated) = (l)) -> (((exists ff_h_pfp_scale_repeatedentry. ff_h_pfp_scale_repeatedentry + S (k) = S ((S (pfp_repeat_index_scale_repeated)) * kc)) /\ exists ff_q_pfp_scale_repeatedentry. kb = ff_q_pfp_scale_repeatedentry * S ((S (pfp_repeat_index_scale_repeated)) * kc) + (k)))) -> (forall fpmp_index_pfp_scale_raw fpmp_left_pfp_scale_raw fpmp_right_pfp_scale_raw fpmp_target_pfp_scale_raw. (exists fpmp_gap_pfp_scale_raw. fpmp_gap_pfp_scale_raw + S fpmp_index_pfp_scale_raw = l) -> (((exists ff_h_fpmp_pfp_scale_raw_left. ff_h_fpmp_pfp_scale_raw_left + S (fpmp_left_pfp_scale_raw) = S ((S (fpmp_index_pfp_scale_raw)) * kc)) /\ exists ff_q_fpmp_pfp_scale_raw_left. kb = ff_q_fpmp_pfp_scale_raw_left * S ((S (fpmp_index_pfp_scale_raw)) * kc) + (fpmp_left_pfp_scale_raw))) -> (((exists ff_h_fpmp_pfp_scale_raw_right. ff_h_fpmp_pfp_scale_raw_right + S (fpmp_right_pfp_scale_raw) = S ((S (fpmp_index_pfp_scale_raw)) * ac)) /\ exists ff_q_fpmp_pfp_scale_raw_right. ab = ff_q_fpmp_pfp_scale_raw_right * S ((S (fpmp_index_pfp_scale_raw)) * ac) + (fpmp_right_pfp_scale_raw))) -> (((exists ff_h_fpmp_pfp_scale_raw_target. ff_h_fpmp_pfp_scale_raw_target + S (fpmp_target_pfp_scale_raw) = S ((S (fpmp_index_pfp_scale_raw)) * rc)) /\ exists ff_q_fpmp_pfp_scale_raw_target. rb = ff_q_fpmp_pfp_scale_raw_target * S ((S (fpmp_index_pfp_scale_raw)) * rc) + (fpmp_target_pfp_scale_raw))) -> fpmp_target_pfp_scale_raw = fpmp_left_pfp_scale_raw * fpmp_right_pfp_scale_raw) -> (forall pfp_index_scale_normalize. (exists pfa_gap_scale_normalizeindex. pfa_gap_scale_normalizeindex + S (pfp_index_scale_normalize) = (l)) -> exists pfp_source_scale_normalize pfp_residue_scale_normalize. ((((exists ff_h_pfp_scale_normalizesource. ff_h_pfp_scale_normalizesource + S (pfp_source_scale_normalize) = S ((S (pfp_index_scale_normalize)) * rc)) /\ exists ff_q_pfp_scale_normalizesource. rb = ff_q_pfp_scale_normalizesource * S ((S (pfp_index_scale_normalize)) * rc) + (pfp_source_scale_normalize))) /\ (((((exists ff_h_pfp_scale_normalizetarget. ff_h_pfp_scale_normalizetarget + S (pfp_residue_scale_normalize) = S ((S (pfp_index_scale_normalize)) * bc)) /\ exists ff_q_pfp_scale_normalizetarget. bb = ff_q_pfp_scale_normalizetarget * S ((S (pfp_index_scale_normalize)) * bc) + (pfp_residue_scale_normalize))) /\ ((((exists pfa_gap_scale_normalizeresiduebound. pfa_gap_scale_normalizeresiduebound + S (pfp_residue_scale_normalize) = (p)) /\ ((exists pfa_offset_left_scale_normalizeresiduecongruence pfa_offset_right_scale_normalizeresiduecongruence. (pfp_source_scale_normalize) + (p) * pfa_offset_left_scale_normalizeresiduecongruence = (pfp_residue_scale_normalize) + (p) * pfa_offset_right_scale_normalizeresiduecongruence))))))))) -> (((exists pfa_gap_scale_resultscalar. pfa_gap_scale_resultscalar + S (k) = (p)) /\ ((forall pfp_index_scale_result. (exists pfa_gap_scale_resultindex. pfa_gap_scale_resultindex + S (pfp_index_scale_result) = (l)) -> exists pfp_source_scale_result pfp_value_scale_result. ((((exists ff_h_pfp_scale_resultsource. ff_h_pfp_scale_resultsource + S (pfp_source_scale_result) = S ((S (pfp_index_scale_result)) * ac)) /\ exists ff_q_pfp_scale_resultsource. ab = ff_q_pfp_scale_resultsource * S ((S (pfp_index_scale_result)) * ac) + (pfp_source_scale_result))) /\ (((((exists ff_h_pfp_scale_resulttarget. ff_h_pfp_scale_resulttarget + S (pfp_value_scale_result) = S ((S (pfp_index_scale_result)) * bc)) /\ exists ff_q_pfp_scale_resulttarget. bb = ff_q_pfp_scale_resulttarget * S ((S (pfp_index_scale_result)) * bc) + (pfp_value_scale_result))) /\ ((((exists pfa_gap_scale_resultoperationleft. pfa_gap_scale_resultoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_resultoperationright. pfa_gap_scale_resultoperationright + S (pfp_source_scale_result) = (p)) /\ ((((exists pfa_gap_scale_resultoperationresultbound. pfa_gap_scale_resultoperationresultbound + S (pfp_value_scale_result) = (p)) /\ ((exists pfa_offset_left_scale_resultoperationresultcongruence pfa_offset_right_scale_resultoperationresultcongruence. ((k) * (pfp_source_scale_result)) + (p) * pfa_offset_left_scale_resultoperationresultcongruence = (pfp_value_scale_result) + (p) * pfa_offset_right_scale_resultoperationresultcongruence)))))))))))))))))Constructive proof overview
Generated structural guide
Normalize an actual pointwise product with a repeated scalar to obtain genuine canonical scalar multiplication.
The unchanged tactic script uses 1 declared prerequisite and contains 62 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
prime_field_residue_input_equal 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–16
03Separate the logical casesL17–17
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L17
split
04Use earlier factsL18–18
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L18
exact hk
05Fix variables and assumptionsL19–20
06Establish haL21–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hc.
- L21
have ha : exists a. ((((exists ff_h_pfp_scale_chosen_a. ff_h_pfp_scale_chosen_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_scale_chosen_a. ab = ff_q_pfp_scale_chosen_a * S ((S (i)) * ac) + (a))) /\ ((exists pfa_gap_scale_chosen_bound. pfa_gap_scale_chosen_bound + S (a) = (p)))) - L22
specialize hc (i) - L23
apply hc - L24
exact hi
07Separate the logical casesL25–26
08Establish hvnL27–30
09Separate the logical casesL31–34
10Construct an explicit witnessL35–36
11Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
split
12Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact ha_witness_left
13Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
split
14Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact hvn_witness_witness_right_left
15Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
split
16Use earlier factsL42–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
exact hk
17Separate the logical casesL43–43
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L43
split
18Use earlier factsL44–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
19Calculate and transport equalitiesL50–50
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L50
symm
20Use earlier factsL51–60
Original exact command ledger · 62 lines
- 0001
intro p - 0002
intro k - 0003
intro kb - 0004
intro kc - 0005
intro ab - 0006
intro ac - 0007
intro rb - 0008
intro rc - 0009
intro bb - 0010
intro bc - 0011
intro l - 0012
intro hk - 0013
intro hc - 0014
intro hr - 0015
intro hm - 0016
intro hn - 0017
split - 0018
exact hk - 0019
intro i - 0020
intro hi - 0021
have ha : exists a. ((((exists ff_h_pfp_scale_chosen_a. ff_h_pfp_scale_chosen_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_scale_chosen_a. ab = ff_q_pfp_scale_chosen_a * S ((S (i)) * ac) + (a))) /\ ((exists pfa_gap_scale_chosen_bound. pfa_gap_scale_chosen_bound + S (a) = (p)))) - 0022
specialize hc (i) - 0023
apply hc - 0024
exact hi - 0025
cases ha - 0026
cases ha_witness - 0027
have hvn : exists n r. ((((exists ff_h_pfp_scale_chosen_product. ff_h_pfp_scale_chosen_product + S (n) = S ((S (i)) * rc)) /\ exists ff_q_pfp_scale_chosen_product. rb = ff_q_pfp_scale_chosen_product * S ((S (i)) * rc) + (n))) /\ (((((exists ff_h_pfp_scale_chosen_output. ff_h_pfp_scale_chosen_output + S (r) = S ((S (i)) * bc)) /\ exists ff_q_pfp_scale_chosen_output. bb = ff_q_pfp_scale_chosen_output * S ((S (i)) * bc) + (r))) /\ ((((exists pfa_gap_scale_chosen_residuebound. pfa_gap_scale_chosen_residuebound + S (r) = (p)) /\ ((exists pfa_offset_left_scale_chosen_residuecongruence pfa_offset_right_scale_chosen_residuecongruence. (n) + (p) * pfa_offset_left_scale_chosen_residuecongruence = (r) + (p) * pfa_offset_right_scale_chosen_residuecongruence)))))))) - 0028
specialize hn (i) - 0029
apply hn - 0030
exact hi - 0031
cases hvn - 0032
cases hvn_witness - 0033
cases hvn_witness_witness - 0034
cases hvn_witness_witness_right - 0035
exists x - 0036
exists x2 - 0037
split - 0038
exact ha_witness_left - 0039
split - 0040
exact hvn_witness_witness_right_left - 0041
split - 0042
exact hk - 0043
split - 0044
exact ha_witness_right - 0045
specialize prime_field_residue_input_equal (p) - 0046
specialize prime_field_residue_input_equal (k*x) - 0047
specialize prime_field_residue_input_equal (x1) - 0048
specialize prime_field_residue_input_equal (x2) - 0049
apply prime_field_residue_input_equal - 0050
symm - 0051
specialize hm (i) - 0052
specialize hm (k) - 0053
specialize hm (x) - 0054
specialize hm (x1) - 0055
apply hm - 0056
exact hi - 0057
specialize hr (i) - 0058
apply hr - 0059
exact hi - 0060
exact ha_witness_left - 0061
exact hvn_witness_witness_left - 0062
exact hvn_witness_witness_right_right