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 bb bc M c db dc sb sc kb kc tb tc. (~((p) = 1) /\ forall pfa_factor_left_append_sum_prime pfa_factor_right_append_sum_prime. (p) = pfa_factor_left_append_sum_prime * pfa_factor_right_append_sum_prime -> pfa_factor_left_append_sum_prime = 1 \/ pfa_factor_right_append_sum_prime = 1) -> (forall fom_index_pfp_append_sum_old_coefficients. (exists fom_gap_pfp_append_sum_old_coefficients_index_bound. fom_gap_pfp_append_sum_old_coefficients_index_bound + S (fom_index_pfp_append_sum_old_coefficients) = M) -> exists fom_value_pfp_append_sum_old_coefficients. ((((exists fom_beta_height_pfp_append_sum_old_coefficients_entry. fom_beta_height_pfp_append_sum_old_coefficients_entry + S (fom_value_pfp_append_sum_old_coefficients) = S ((S (fom_index_pfp_append_sum_old_coefficients)) * bc)) /\ exists fom_beta_quotient_pfp_append_sum_old_coefficients_entry. bb = fom_beta_quotient_pfp_append_sum_old_coefficients_entry * S ((S (fom_index_pfp_append_sum_old_coefficients)) * bc) + (fom_value_pfp_append_sum_old_coefficients))) /\ (exists fom_gap_pfp_append_sum_old_coefficients_value_bound. fom_gap_pfp_append_sum_old_coefficients_value_bound + S (fom_value_pfp_append_sum_old_coefficients) = p))) -> (exists pfa_gap_append_sum_scalar. pfa_gap_append_sum_scalar + S (c) = (p)) -> (forall mdr_i_pfp_append_sum_preserve mdr_a_pfp_append_sum_preserve. (exists mdr_gap_pfp_append_sum_preserveb. mdr_gap_pfp_append_sum_preserveb + S (mdr_i_pfp_append_sum_preserve) = (M)) -> (((exists ff_h_mdr_pfp_append_sum_preserveo. ff_h_mdr_pfp_append_sum_preserveo + S (mdr_a_pfp_append_sum_preserve) = S ((S (mdr_i_pfp_append_sum_preserve)) * bc)) /\ exists ff_q_mdr_pfp_append_sum_preserveo. bb = ff_q_mdr_pfp_append_sum_preserveo * S ((S (mdr_i_pfp_append_sum_preserve)) * bc) + (mdr_a_pfp_append_sum_preserve))) -> (((exists ff_h_mdr_pfp_append_sum_preserven. ff_h_mdr_pfp_append_sum_preserven + S (mdr_a_pfp_append_sum_preserve) = S ((S (mdr_i_pfp_append_sum_preserve)) * dc)) /\ exists ff_q_mdr_pfp_append_sum_preserven. db = ff_q_mdr_pfp_append_sum_preserven * S ((S (mdr_i_pfp_append_sum_preserve)) * dc) + (mdr_a_pfp_append_sum_preserve)))) -> (((exists ff_h_pfp_append_sum_actual_last. ff_h_pfp_append_sum_actual_last + S (c) = S ((S (M)) * dc)) /\ exists ff_q_pfp_append_sum_actual_last. db = ff_q_pfp_append_sum_actual_last * S ((S (M)) * dc) + (c))) -> (((forall mdr_i_pfp_append_sum_shiftprefix mdr_a_pfp_append_sum_shiftprefix. (exists mdr_gap_pfp_append_sum_shiftprefixb. mdr_gap_pfp_append_sum_shiftprefixb + S (mdr_i_pfp_append_sum_shiftprefix) = (M)) -> (((exists ff_h_mdr_pfp_append_sum_shiftprefixo. ff_h_mdr_pfp_append_sum_shiftprefixo + S (mdr_a_pfp_append_sum_shiftprefix) = S ((S (mdr_i_pfp_append_sum_shiftprefix)) * bc)) /\ exists ff_q_mdr_pfp_append_sum_shiftprefixo. bb = ff_q_mdr_pfp_append_sum_shiftprefixo * S ((S (mdr_i_pfp_append_sum_shiftprefix)) * bc) + (mdr_a_pfp_append_sum_shiftprefix))) -> (((exists ff_h_mdr_pfp_append_sum_shiftprefixn. ff_h_mdr_pfp_append_sum_shiftprefixn + S (mdr_a_pfp_append_sum_shiftprefix) = S ((S (mdr_i_pfp_append_sum_shiftprefix)) * sc)) /\ exists ff_q_mdr_pfp_append_sum_shiftprefixn. sb = ff_q_mdr_pfp_append_sum_shiftprefixn * S ((S (mdr_i_pfp_append_sum_shiftprefix)) * sc) + (mdr_a_pfp_append_sum_shiftprefix)))) /\ ((((exists ff_h_pfp_append_sum_shiftlast. ff_h_pfp_append_sum_shiftlast + S (0) = S ((S (M)) * sc)) /\ exists ff_q_pfp_append_sum_shiftlast. sb = ff_q_pfp_append_sum_shiftlast * S ((S (M)) * sc) + (0)))))) -> (((exists ff_h_pfp_append_sum_singleton. ff_h_pfp_append_sum_singleton + S (c) = S ((S (0)) * kc)) /\ exists ff_q_pfp_append_sum_singleton. kb = ff_q_pfp_append_sum_singleton * S ((S (0)) * kc) + (c))) -> (((forall pfp_repeat_index_append_sum_left_padzeros. (exists pfa_gap_append_sum_left_padzerosindex. pfa_gap_append_sum_left_padzerosindex + S (pfp_repeat_index_append_sum_left_padzeros) = (M)) -> (((exists ff_h_pfp_append_sum_left_padzerosentry. ff_h_pfp_append_sum_left_padzerosentry + S (0) = S ((S (pfp_repeat_index_append_sum_left_padzeros)) * tc)) /\ exists ff_q_pfp_append_sum_left_padzerosentry. tb = ff_q_pfp_append_sum_left_padzerosentry * S ((S (pfp_repeat_index_append_sum_left_padzeros)) * tc) + (0)))) /\ ((forall pfrep_index_append_sum_left_pad pfrep_value_append_sum_left_pad. (exists pfa_gap_append_sum_left_padbound. pfa_gap_append_sum_left_padbound + S (pfrep_index_append_sum_left_pad) = (1)) -> (((exists ff_h_pfp_append_sum_left_padinput. ff_h_pfp_append_sum_left_padinput + S (pfrep_value_append_sum_left_pad) = S ((S (pfrep_index_append_sum_left_pad)) * kc)) /\ exists ff_q_pfp_append_sum_left_padinput. kb = ff_q_pfp_append_sum_left_padinput * S ((S (pfrep_index_append_sum_left_pad)) * kc) + (pfrep_value_append_sum_left_pad))) -> (((exists ff_h_pfp_append_sum_left_padoutput. ff_h_pfp_append_sum_left_padoutput + S (pfrep_value_append_sum_left_pad) = S ((S ((M)+pfrep_index_append_sum_left_pad)) * tc)) /\ exists ff_q_pfp_append_sum_left_padoutput. tb = ff_q_pfp_append_sum_left_padoutput * S ((S ((M)+pfrep_index_append_sum_left_pad)) * tc) + (pfrep_value_append_sum_left_pad))))))) -> (forall pfp_index_append_sum_result. (exists pfa_gap_append_sum_resultindex. pfa_gap_append_sum_resultindex + S (pfp_index_append_sum_result) = (S M)) -> exists pfp_left_append_sum_result pfp_right_append_sum_result pfp_value_append_sum_result. ((((exists ff_h_pfp_append_sum_resultleft. ff_h_pfp_append_sum_resultleft + S (pfp_left_append_sum_result) = S ((S (pfp_index_append_sum_result)) * sc)) /\ exists ff_q_pfp_append_sum_resultleft. sb = ff_q_pfp_append_sum_resultleft * S ((S (pfp_index_append_sum_result)) * sc) + (pfp_left_append_sum_result))) /\ (((((exists ff_h_pfp_append_sum_resultright. ff_h_pfp_append_sum_resultright + S (pfp_right_append_sum_result) = S ((S (pfp_index_append_sum_result)) * tc)) /\ exists ff_q_pfp_append_sum_resultright. tb = ff_q_pfp_append_sum_resultright * S ((S (pfp_index_append_sum_result)) * tc) + (pfp_right_append_sum_result))) /\ (((((exists ff_h_pfp_append_sum_resulttarget. ff_h_pfp_append_sum_resulttarget + S (pfp_value_append_sum_result) = S ((S (pfp_index_append_sum_result)) * dc)) /\ exists ff_q_pfp_append_sum_resulttarget. db = ff_q_pfp_append_sum_resulttarget * S ((S (pfp_index_append_sum_result)) * dc) + (pfp_value_append_sum_result))) /\ ((((exists pfa_gap_append_sum_resultoperationleft. pfa_gap_append_sum_resultoperationleft + S (pfp_left_append_sum_result) = (p)) /\ (((exists pfa_gap_append_sum_resultoperationright. pfa_gap_append_sum_resultoperationright + S (pfp_right_append_sum_result) = (p)) /\ ((((exists pfa_gap_append_sum_resultoperationresultbound. pfa_gap_append_sum_resultoperationresultbound + S (pfp_value_append_sum_result) = (p)) /\ ((exists pfa_offset_left_append_sum_resultoperationresultcongruence pfa_offset_right_append_sum_resultoperationresultcongruence. ((pfp_left_append_sum_result) + (pfp_right_append_sum_result)) + (p) * pfa_offset_left_append_sum_resultoperationresultcongruence = (pfp_value_append_sum_result) + (p) * pfa_offset_right_append_sum_resultoperationresultcongruence))))))))))))))))Constructive proof overview
Generated structural guide
Every actual appended prefix is the actual aligned sum of a genuine trailing-zero shift and the leading-padded singleton constant; the last and earlier entries are proved separately, including M=0.
The unchanged tactic script uses 3 declared prerequisites and contains 94 exact native proof lines.
Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
finite_lt_succ_eq_or_lt Alpha theorem; checked-use authorized prime_field_add_zero_left Alpha theorem; checked-use authorized prime_field_add_zero_right 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–20
03Fix variables and assumptionsL21–21
Work with arbitrary variables or the premises of the current implication.
- L21
intro ht
04Separate the logical casesL22–23
05Establish hconstantL24–24
Establish this local claim before using it. It is not an additional assumption.
- L24
have hconstant : ((exists ff_h_pfp_append_sum_constant. ff_h_pfp_append_sum_constant + S (c) = S ((S (M)) * tc)) /\ exists ff_q_pfp_append_sum_constant. tb = ff_q_pfp_append_sum_constant * S ((S (M)) * tc) + (c))
06Establish hrawL25–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply ht right.
07Construct an explicit witnessL29–29
Supply the displayed value, then prove that it has the required property.
- L29
exists 0
08Calculate and transport equalitiesL30–30
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L30
simp
09Use earlier factsL31–31
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
exact hk
10Establish hindexL32–38
11Establish hcaseL39–43
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 casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
cases hcase
13Construct an explicit witnessL45–47
14Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
split
15Calculate and transport equalitiesL49–50
16Use earlier factsL51–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
exact hs_right
17Separate the logical casesL52–52
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L52
split
18Calculate and transport equalitiesL53–54
19Use earlier factsL55–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L55
exact hconstant
20Separate the logical casesL56–56
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L56
split
21Calculate and transport equalitiesL57–58
22Use earlier factsL59–64
23Establish haL65–68
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hb.
- L65
have ha : exists a. ((((exists ff_h_pfp_append_sum_old_value. ff_h_pfp_append_sum_old_value + S (a) = S ((S (i)) * bc)) /\ exists ff_q_pfp_append_sum_old_value. bb = ff_q_pfp_append_sum_old_value * S ((S (i)) * bc) + (a))) /\ ((exists pfa_gap_append_sum_old_bound. pfa_gap_append_sum_old_bound + S (a) = (p)))) - L66
specialize hb (i) - L67
apply hb - L68
exact hcase_right
24Separate the logical casesL69–70
25Construct an explicit witnessL71–73
26Separate the logical casesL74–74
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L74
split
27Use earlier factsL75–79
28Separate the logical casesL80–80
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L80
split
29Use earlier factsL81–83
30Separate the logical casesL84–84
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L84
split
31Use earlier factsL85–94
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 94 lines
- 0001
intro p - 0002
intro bb - 0003
intro bc - 0004
intro M - 0005
intro c - 0006
intro db - 0007
intro dc - 0008
intro sb - 0009
intro sc - 0010
intro kb - 0011
intro kc - 0012
intro tb - 0013
intro tc - 0014
intro hp - 0015
intro hb - 0016
intro hc - 0017
intro he - 0018
intro hlast - 0019
intro hs - 0020
intro hk - 0021
intro ht - 0022
cases hs - 0023
cases ht - 0024
have hconstant : ((exists ff_h_pfp_append_sum_constant. ff_h_pfp_append_sum_constant + S (c) = S ((S (M)) * tc)) /\ exists ff_q_pfp_append_sum_constant. tb = ff_q_pfp_append_sum_constant * S ((S (M)) * tc) + (c)) - 0025
have hraw : ((exists ff_h_pfp_append_sum_raw_constant. ff_h_pfp_append_sum_raw_constant + S (c) = S ((S (M+0)) * tc)) /\ exists ff_q_pfp_append_sum_raw_constant. tb = ff_q_pfp_append_sum_raw_constant * S ((S (M+0)) * tc) + (c)) - 0026
specialize ht_right (0) - 0027
specialize ht_right (c) - 0028
apply ht_right - 0029
exists 0 - 0030
simp - 0031
exact hk - 0032
have hindex : M+0=M - 0033
simp - 0034
rewrite hindex at hraw - 0035
rewrite hindex at hraw - 0036
exact hraw - 0037
intro i - 0038
intro hi - 0039
have hcase : i=M \/ (exists pfa_gap_append_sum_earlier_index. pfa_gap_append_sum_earlier_index + S (i) = (M)) - 0040
specialize finite_lt_succ_eq_or_lt (M) - 0041
specialize finite_lt_succ_eq_or_lt (i) - 0042
apply finite_lt_succ_eq_or_lt - 0043
exact hi - 0044
cases hcase - 0045
exists 0 - 0046
exists c - 0047
exists c - 0048
split - 0049
rewrite hcase_left - 0050
rewrite hcase_left - 0051
exact hs_right - 0052
split - 0053
rewrite hcase_left - 0054
rewrite hcase_left - 0055
exact hconstant - 0056
split - 0057
rewrite hcase_left - 0058
rewrite hcase_left - 0059
exact hlast - 0060
specialize prime_field_add_zero_left (p) - 0061
specialize prime_field_add_zero_left (c) - 0062
apply prime_field_add_zero_left - 0063
exact hp - 0064
exact hc - 0065
have ha : exists a. ((((exists ff_h_pfp_append_sum_old_value. ff_h_pfp_append_sum_old_value + S (a) = S ((S (i)) * bc)) /\ exists ff_q_pfp_append_sum_old_value. bb = ff_q_pfp_append_sum_old_value * S ((S (i)) * bc) + (a))) /\ ((exists pfa_gap_append_sum_old_bound. pfa_gap_append_sum_old_bound + S (a) = (p)))) - 0066
specialize hb (i) - 0067
apply hb - 0068
exact hcase_right - 0069
cases ha - 0070
cases ha_witness - 0071
exists x - 0072
exists 0 - 0073
exists x - 0074
split - 0075
specialize hs_left (i) - 0076
specialize hs_left (x) - 0077
apply hs_left - 0078
exact hcase_right - 0079
exact ha_witness_left - 0080
split - 0081
specialize ht_left (i) - 0082
apply ht_left - 0083
exact hcase_right - 0084
split - 0085
specialize he (i) - 0086
specialize he (x) - 0087
apply he - 0088
exact hcase_right - 0089
exact ha_witness_left - 0090
specialize prime_field_add_zero_right (p) - 0091
specialize prime_field_add_zero_right (x) - 0092
apply prime_field_add_zero_right - 0093
exact hp - 0094
exact ha_witness_right