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 ab ac bb bc cb cc L i a b r. (forall pfp_index_padded_add_source. (exists pfa_gap_padded_add_sourceindex. pfa_gap_padded_add_sourceindex + S (pfp_index_padded_add_source) = (L)) -> exists pfp_left_padded_add_source pfp_right_padded_add_source pfp_value_padded_add_source. ((((exists ff_h_pfp_padded_add_sourceleft. ff_h_pfp_padded_add_sourceleft + S (pfp_left_padded_add_source) = S ((S (pfp_index_padded_add_source)) * ac)) /\ exists ff_q_pfp_padded_add_sourceleft. ab = ff_q_pfp_padded_add_sourceleft * S ((S (pfp_index_padded_add_source)) * ac) + (pfp_left_padded_add_source))) /\ (((((exists ff_h_pfp_padded_add_sourceright. ff_h_pfp_padded_add_sourceright + S (pfp_right_padded_add_source) = S ((S (pfp_index_padded_add_source)) * bc)) /\ exists ff_q_pfp_padded_add_sourceright. bb = ff_q_pfp_padded_add_sourceright * S ((S (pfp_index_padded_add_source)) * bc) + (pfp_right_padded_add_source))) /\ (((((exists ff_h_pfp_padded_add_sourcetarget. ff_h_pfp_padded_add_sourcetarget + S (pfp_value_padded_add_source) = S ((S (pfp_index_padded_add_source)) * cc)) /\ exists ff_q_pfp_padded_add_sourcetarget. cb = ff_q_pfp_padded_add_sourcetarget * S ((S (pfp_index_padded_add_source)) * cc) + (pfp_value_padded_add_source))) /\ ((((exists pfa_gap_padded_add_sourceoperationleft. pfa_gap_padded_add_sourceoperationleft + S (pfp_left_padded_add_source) = (p)) /\ (((exists pfa_gap_padded_add_sourceoperationright. pfa_gap_padded_add_sourceoperationright + S (pfp_right_padded_add_source) = (p)) /\ ((((exists pfa_gap_padded_add_sourceoperationresultbound. pfa_gap_padded_add_sourceoperationresultbound + S (pfp_value_padded_add_source) = (p)) /\ ((exists pfa_offset_left_padded_add_sourceoperationresultcongruence pfa_offset_right_padded_add_sourceoperationresultcongruence. ((pfp_left_padded_add_source) + (pfp_right_padded_add_source)) + (p) * pfa_offset_left_padded_add_sourceoperationresultcongruence = (pfp_value_padded_add_source) + (p) * pfa_offset_right_padded_add_sourceoperationresultcongruence)))))))))))))))) -> ((((exists pfa_gap_padded_add_ainside. pfa_gap_padded_add_ainside + S (i) = (L)) /\ ((((exists ff_h_pfp_padded_add_aentry. ff_h_pfp_padded_add_aentry + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_padded_add_aentry. ab = ff_q_pfp_padded_add_aentry * S ((S (i)) * ac) + (a)))))) \/ (((exists pfc_gap_padded_add_aoutside. pfc_gap_padded_add_aoutside+(L)=(i)) /\ (((a)=0))))) -> ((((exists pfa_gap_padded_add_binside. pfa_gap_padded_add_binside + S (i) = (L)) /\ ((((exists ff_h_pfp_padded_add_bentry. ff_h_pfp_padded_add_bentry + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_padded_add_bentry. bb = ff_q_pfp_padded_add_bentry * S ((S (i)) * bc) + (b)))))) \/ (((exists pfc_gap_padded_add_boutside. pfc_gap_padded_add_boutside+(L)=(i)) /\ (((b)=0))))) -> ((((exists pfa_gap_padded_add_rinside. pfa_gap_padded_add_rinside + S (i) = (L)) /\ ((((exists ff_h_pfp_padded_add_rentry. ff_h_pfp_padded_add_rentry + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_padded_add_rentry. cb = ff_q_pfp_padded_add_rentry * S ((S (i)) * cc) + (r)))))) \/ (((exists pfc_gap_padded_add_routside. pfc_gap_padded_add_routside+(L)=(i)) /\ (((r)=0))))) -> (exists pfa_offset_left_padded_add_result pfa_offset_right_padded_add_result. (a+b) + (p) * pfa_offset_left_padded_add_result = (r) + (p) * pfa_offset_right_padded_add_result)Constructive proof overview
Generated structural guide
An actual coefficient sum extends by actual zeros to an additive congruence at every index; no claim is made about arbitrary decoded entries outside the original prefixes.
The unchanged tactic script uses 3 declared prerequisites and contains 92 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
polynomial_zero_extended_entry_inside Alpha theorem; checked-use authorized prime_field_polynomial_add_entry Alpha theorem; checked-use authorized polynomial_zero_extended_entry_functional 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–18
04Establish hebL19–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial zero extended entry inside.
- L19
have heb : ((exists ff_h_pfp_padded_add_heb. ff_h_pfp_padded_add_heb + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_padded_add_heb. bb = ff_q_pfp_padded_add_heb * S ((S (i)) * bc) + (b)) - L20
specialize polynomial_zero_extended_entry_inside (bb) - L21
specialize polynomial_zero_extended_entry_inside (bc) - L22
specialize polynomial_zero_extended_entry_inside (L) - L23
specialize polynomial_zero_extended_entry_inside (i) - L24
specialize polynomial_zero_extended_entry_inside (b) - L25
apply polynomial_zero_extended_entry_inside - L26
exact ha_left_left - L27
exact hb
05Establish herL28–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial zero extended entry inside.
- L28
have her : ((exists ff_h_pfp_padded_add_her. ff_h_pfp_padded_add_her + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_padded_add_her. cb = ff_q_pfp_padded_add_her * S ((S (i)) * cc) + (r)) - L29
specialize polynomial_zero_extended_entry_inside (cb) - L30
specialize polynomial_zero_extended_entry_inside (cc) - L31
specialize polynomial_zero_extended_entry_inside (L) - L32
specialize polynomial_zero_extended_entry_inside (i) - L33
specialize polynomial_zero_extended_entry_inside (r) - L34
apply polynomial_zero_extended_entry_inside - L35
exact ha_left_left - L36
exact hr
06Establish hfieldL37–46
Establish this local claim before using it. It is not an additional assumption.
- L37
have hfield : FpAdd(p,a,b,r)Definitions: FpAdd - L38
specialize prime_field_polynomial_add_entry (p) - L39
specialize prime_field_polynomial_add_entry (ab) - L40
specialize prime_field_polynomial_add_entry (ac) - L41
specialize prime_field_polynomial_add_entry (bb) - L42
specialize prime_field_polynomial_add_entry (bc) - L43
specialize prime_field_polynomial_add_entry (cb) - L44
specialize prime_field_polynomial_add_entry (cc) - L45
specialize prime_field_polynomial_add_entry (L) - L46
specialize prime_field_polynomial_add_entry (i)
07Use earlier factsL47–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
08Separate the logical casesL56–58
09Use earlier factsL59–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
exact hfield_right_right_right
10Separate the logical casesL60–60
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
cases ha_right
11Establish hbzeroL61–69
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial zero extended entry functional.
- L61
have hbzero : b=0 - L62
specialize polynomial_zero_extended_entry_functional (bb) - L63
specialize polynomial_zero_extended_entry_functional (bc) - L64
specialize polynomial_zero_extended_entry_functional (L) - L65
specialize polynomial_zero_extended_entry_functional (i) - L66
specialize polynomial_zero_extended_entry_functional (b) - L67
specialize polynomial_zero_extended_entry_functional (0) - L68
apply polynomial_zero_extended_entry_functional - L69
exact hb
12Separate the logical casesL70–71
13Use earlier factsL72–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L72
exact ha_right_left
14Calculate and transport equalitiesL73–73
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L73
refl
15Establish hrzeroL74–82
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial zero extended entry functional.
- L74
have hrzero : r=0 - L75
specialize polynomial_zero_extended_entry_functional (cb) - L76
specialize polynomial_zero_extended_entry_functional (cc) - L77
specialize polynomial_zero_extended_entry_functional (L) - L78
specialize polynomial_zero_extended_entry_functional (i) - L79
specialize polynomial_zero_extended_entry_functional (r) - L80
specialize polynomial_zero_extended_entry_functional (0) - L81
apply polynomial_zero_extended_entry_functional - L82
exact hr
16Separate the logical casesL83–84
17Use earlier factsL85–85
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L85
exact ha_right_left
18Calculate and transport equalitiesL86–89
19Construct an explicit witnessL90–91
20Calculate and transport equalitiesL92–92
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L92
simp
Original exact command ledger · 92 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro bb - 0005
intro bc - 0006
intro cb - 0007
intro cc - 0008
intro L - 0009
intro i - 0010
intro a - 0011
intro b - 0012
intro r - 0013
intro hs - 0014
intro ha - 0015
intro hb - 0016
intro hr - 0017
cases ha - 0018
cases ha_left - 0019
have heb : ((exists ff_h_pfp_padded_add_heb. ff_h_pfp_padded_add_heb + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_padded_add_heb. bb = ff_q_pfp_padded_add_heb * S ((S (i)) * bc) + (b)) - 0020
specialize polynomial_zero_extended_entry_inside (bb) - 0021
specialize polynomial_zero_extended_entry_inside (bc) - 0022
specialize polynomial_zero_extended_entry_inside (L) - 0023
specialize polynomial_zero_extended_entry_inside (i) - 0024
specialize polynomial_zero_extended_entry_inside (b) - 0025
apply polynomial_zero_extended_entry_inside - 0026
exact ha_left_left - 0027
exact hb - 0028
have her : ((exists ff_h_pfp_padded_add_her. ff_h_pfp_padded_add_her + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_padded_add_her. cb = ff_q_pfp_padded_add_her * S ((S (i)) * cc) + (r)) - 0029
specialize polynomial_zero_extended_entry_inside (cb) - 0030
specialize polynomial_zero_extended_entry_inside (cc) - 0031
specialize polynomial_zero_extended_entry_inside (L) - 0032
specialize polynomial_zero_extended_entry_inside (i) - 0033
specialize polynomial_zero_extended_entry_inside (r) - 0034
apply polynomial_zero_extended_entry_inside - 0035
exact ha_left_left - 0036
exact hr - 0037
have hfield : ((exists pfa_gap_padded_add_inside_valueleft. pfa_gap_padded_add_inside_valueleft + S (a) = (p)) /\ (((exists pfa_gap_padded_add_inside_valueright. pfa_gap_padded_add_inside_valueright + S (b) = (p)) /\ ((((exists pfa_gap_padded_add_inside_valueresultbound. pfa_gap_padded_add_inside_valueresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_padded_add_inside_valueresultcongruence pfa_offset_right_padded_add_inside_valueresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_padded_add_inside_valueresultcongruence = (r) + (p) * pfa_offset_right_padded_add_inside_valueresultcongruence)))))))) - 0038
specialize prime_field_polynomial_add_entry (p) - 0039
specialize prime_field_polynomial_add_entry (ab) - 0040
specialize prime_field_polynomial_add_entry (ac) - 0041
specialize prime_field_polynomial_add_entry (bb) - 0042
specialize prime_field_polynomial_add_entry (bc) - 0043
specialize prime_field_polynomial_add_entry (cb) - 0044
specialize prime_field_polynomial_add_entry (cc) - 0045
specialize prime_field_polynomial_add_entry (L) - 0046
specialize prime_field_polynomial_add_entry (i) - 0047
specialize prime_field_polynomial_add_entry (a) - 0048
specialize prime_field_polynomial_add_entry (b) - 0049
specialize prime_field_polynomial_add_entry (r) - 0050
apply prime_field_polynomial_add_entry - 0051
exact hs - 0052
exact ha_left_left - 0053
exact ha_left_right - 0054
exact heb - 0055
exact her - 0056
cases hfield - 0057
cases hfield_right - 0058
cases hfield_right_right - 0059
exact hfield_right_right_right - 0060
cases ha_right - 0061
have hbzero : b=0 - 0062
specialize polynomial_zero_extended_entry_functional (bb) - 0063
specialize polynomial_zero_extended_entry_functional (bc) - 0064
specialize polynomial_zero_extended_entry_functional (L) - 0065
specialize polynomial_zero_extended_entry_functional (i) - 0066
specialize polynomial_zero_extended_entry_functional (b) - 0067
specialize polynomial_zero_extended_entry_functional (0) - 0068
apply polynomial_zero_extended_entry_functional - 0069
exact hb - 0070
right - 0071
split - 0072
exact ha_right_left - 0073
refl - 0074
have hrzero : r=0 - 0075
specialize polynomial_zero_extended_entry_functional (cb) - 0076
specialize polynomial_zero_extended_entry_functional (cc) - 0077
specialize polynomial_zero_extended_entry_functional (L) - 0078
specialize polynomial_zero_extended_entry_functional (i) - 0079
specialize polynomial_zero_extended_entry_functional (r) - 0080
specialize polynomial_zero_extended_entry_functional (0) - 0081
apply polynomial_zero_extended_entry_functional - 0082
exact hr - 0083
right - 0084
split - 0085
exact ha_right_left - 0086
refl - 0087
rewrite ha_right_right - 0088
rewrite hbzero - 0089
rewrite hrzero - 0090
exists 0 - 0091
exists 0 - 0092
simp