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 b c t l. (~((p) = 1) /\ forall pfa_factor_left_zero_prime pfa_factor_right_zero_prime. (p) = pfa_factor_left_zero_prime * pfa_factor_right_zero_prime -> pfa_factor_left_zero_prime = 1 \/ pfa_factor_right_zero_prime = 1) -> (exists pfa_gap_zero_base. pfa_gap_zero_base + S (t) = (p)) -> (forall pfp_repeat_index_zero_coefficients. (exists pfa_gap_zero_coefficientsindex. pfa_gap_zero_coefficientsindex + S (pfp_repeat_index_zero_coefficients) = (l)) -> (((exists ff_h_pfp_zero_coefficientsentry. ff_h_pfp_zero_coefficientsentry + S (0) = S ((S (pfp_repeat_index_zero_coefficients)) * c)) /\ exists ff_q_pfp_zero_coefficientsentry. b = ff_q_pfp_zero_coefficientsentry * S ((S (pfp_repeat_index_zero_coefficients)) * c) + (0)))) -> (exists pfh_trace_code_zero_execution pfh_trace_scale_zero_execution. (((exists pfa_gap_zero_executiontracebase. pfa_gap_zero_executiontracebase + S (t) = (p)) /\ (((((exists ff_h_pfp_zero_executiontraceinitial. ff_h_pfp_zero_executiontraceinitial + S (0) = S ((S (0)) * pfh_trace_scale_zero_execution)) /\ exists ff_q_pfp_zero_executiontraceinitial. pfh_trace_code_zero_execution = ff_q_pfp_zero_executiontraceinitial * S ((S (0)) * pfh_trace_scale_zero_execution) + (0))) /\ (((((exists ff_h_pfp_zero_executiontraceterminal. ff_h_pfp_zero_executiontraceterminal + S (0) = S ((S (l)) * pfh_trace_scale_zero_execution)) /\ exists ff_q_pfp_zero_executiontraceterminal. pfh_trace_code_zero_execution = ff_q_pfp_zero_executiontraceterminal * S ((S (l)) * pfh_trace_scale_zero_execution) + (0))) /\ ((forall pfh_index_zero_executiontracesteps. (exists pfa_gap_zero_executiontracestepsindex. pfa_gap_zero_executiontracestepsindex + S (pfh_index_zero_executiontracesteps) = (l)) -> (exists pfh_coefficient_zero_executiontracestepsstep pfh_before_zero_executiontracestepsstep pfh_after_zero_executiontracestepsstep pfh_product_zero_executiontracestepsstep. ((((exists ff_h_pfp_zero_executiontracestepsstepcoefficient. ff_h_pfp_zero_executiontracestepsstepcoefficient + S (pfh_coefficient_zero_executiontracestepsstep) = S ((S (pfh_index_zero_executiontracesteps)) * c)) /\ exists ff_q_pfp_zero_executiontracestepsstepcoefficient. b = ff_q_pfp_zero_executiontracestepsstepcoefficient * S ((S (pfh_index_zero_executiontracesteps)) * c) + (pfh_coefficient_zero_executiontracestepsstep))) /\ (((((exists ff_h_pfp_zero_executiontracestepsstepbefore. ff_h_pfp_zero_executiontracestepsstepbefore + S (pfh_before_zero_executiontracestepsstep) = S ((S (pfh_index_zero_executiontracesteps)) * pfh_trace_scale_zero_execution)) /\ exists ff_q_pfp_zero_executiontracestepsstepbefore. pfh_trace_code_zero_execution = ff_q_pfp_zero_executiontracestepsstepbefore * S ((S (pfh_index_zero_executiontracesteps)) * pfh_trace_scale_zero_execution) + (pfh_before_zero_executiontracestepsstep))) /\ (((((exists ff_h_pfp_zero_executiontracestepsstepafter. ff_h_pfp_zero_executiontracestepsstepafter + S (pfh_after_zero_executiontracestepsstep) = S ((S (S (pfh_index_zero_executiontracesteps))) * pfh_trace_scale_zero_execution)) /\ exists ff_q_pfp_zero_executiontracestepsstepafter. pfh_trace_code_zero_execution = ff_q_pfp_zero_executiontracestepsstepafter * S ((S (S (pfh_index_zero_executiontracesteps))) * pfh_trace_scale_zero_execution) + (pfh_after_zero_executiontracestepsstep))) /\ (((((exists pfa_gap_zero_executiontracestepsstepmultiplyleft. pfa_gap_zero_executiontracestepsstepmultiplyleft + S (pfh_before_zero_executiontracestepsstep) = (p)) /\ (((exists pfa_gap_zero_executiontracestepsstepmultiplyright. pfa_gap_zero_executiontracestepsstepmultiplyright + S (t) = (p)) /\ ((((exists pfa_gap_zero_executiontracestepsstepmultiplyresultbound. pfa_gap_zero_executiontracestepsstepmultiplyresultbound + S (pfh_product_zero_executiontracestepsstep) = (p)) /\ ((exists pfa_offset_left_zero_executiontracestepsstepmultiplyresultcongruence pfa_offset_right_zero_executiontracestepsstepmultiplyresultcongruence. ((pfh_before_zero_executiontracestepsstep) * (t)) + (p) * pfa_offset_left_zero_executiontracestepsstepmultiplyresultcongruence = (pfh_product_zero_executiontracestepsstep) + (p) * pfa_offset_right_zero_executiontracestepsstepmultiplyresultcongruence))))))))) /\ ((((exists pfa_gap_zero_executiontracestepsstepaddleft. pfa_gap_zero_executiontracestepsstepaddleft + S (pfh_product_zero_executiontracestepsstep) = (p)) /\ (((exists pfa_gap_zero_executiontracestepsstepaddright. pfa_gap_zero_executiontracestepsstepaddright + S (pfh_coefficient_zero_executiontracestepsstep) = (p)) /\ ((((exists pfa_gap_zero_executiontracestepsstepaddresultbound. pfa_gap_zero_executiontracestepsstepaddresultbound + S (pfh_after_zero_executiontracestepsstep) = (p)) /\ ((exists pfa_offset_left_zero_executiontracestepsstepaddresultcongruence pfa_offset_right_zero_executiontracestepsstepaddresultcongruence. ((pfh_product_zero_executiontracestepsstep) + (pfh_coefficient_zero_executiontracestepsstep)) + (p) * pfa_offset_left_zero_executiontracestepsstepaddresultcongruence = (pfh_after_zero_executiontracestepsstep) + (p) * pfa_offset_right_zero_executiontracestepsstepaddresultcongruence)))))))))))))))))))))))))))Constructive proof overview
Generated structural guide
Every actually encoded all-zero coefficient prefix has a genuine zero-result modular execution, including length zero.
The unchanged tactic script uses 7 declared prerequisites and contains 57 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
PP002B prime_field_polynomial_horner_empty_construct PP002C prime_field_polynomial_horner_successor_construct zero_add Stable theorem; checked-use authorized le_succ Stable theorem; checked-use authorized prime_field_multiply_zero_left Alpha theorem; checked-use authorized prime_field_add_zero_left Alpha theorem; checked-use authorized prime_field_zero_below_prime 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.
Named ingredients (2)
01Fix variables and assumptionsL1–5
02Induction on lL6–15
Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.
- L6
induction l - L7
intro hp - L8
intro ht - L9
intro hz - L10
specialize prime_field_polynomial_horner_empty_construct (p) - L11
specialize prime_field_polynomial_horner_empty_construct (b) - L12
specialize prime_field_polynomial_horner_empty_construct (c) - L13
specialize prime_field_polynomial_horner_empty_construct (t) - L14
apply prime_field_polynomial_horner_empty_construct - L15
exact hp
03Use earlier factsL16–16
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L16
exact ht
04Fix variables and assumptionsL17–19
05Use earlier factsL20–29
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L20
specialize prime_field_polynomial_horner_successor_construct (p) - L21
specialize prime_field_polynomial_horner_successor_construct (b) - L22
specialize prime_field_polynomial_horner_successor_construct (c) - L23
specialize prime_field_polynomial_horner_successor_construct (t) - L24
specialize prime_field_polynomial_horner_successor_construct (l) - L25
specialize prime_field_polynomial_horner_successor_construct (0) - L26
specialize prime_field_polynomial_horner_successor_construct (0) - L27
specialize prime_field_polynomial_horner_successor_construct (0) - L28
specialize prime_field_polynomial_horner_successor_construct (0) - L29
apply prime_field_polynomial_horner_successor_construct
06Use earlier factsL30–32
07Construct an explicit witnessL33–33
Supply the displayed value, then prove that it has the required property.
- L33
exists 0
08Use earlier factsL34–37
09Fix variables and assumptionsL38–39
10Use earlier factsL40–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
11Use earlier factsL50–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 57 lines
- 0001
intro p - 0002
intro b - 0003
intro c - 0004
intro t - 0005
intro l - 0006
induction l - 0007
intro hp - 0008
intro ht - 0009
intro hz - 0010
specialize prime_field_polynomial_horner_empty_construct (p) - 0011
specialize prime_field_polynomial_horner_empty_construct (b) - 0012
specialize prime_field_polynomial_horner_empty_construct (c) - 0013
specialize prime_field_polynomial_horner_empty_construct (t) - 0014
apply prime_field_polynomial_horner_empty_construct - 0015
exact hp - 0016
exact ht - 0017
intro hp - 0018
intro ht - 0019
intro hz - 0020
specialize prime_field_polynomial_horner_successor_construct (p) - 0021
specialize prime_field_polynomial_horner_successor_construct (b) - 0022
specialize prime_field_polynomial_horner_successor_construct (c) - 0023
specialize prime_field_polynomial_horner_successor_construct (t) - 0024
specialize prime_field_polynomial_horner_successor_construct (l) - 0025
specialize prime_field_polynomial_horner_successor_construct (0) - 0026
specialize prime_field_polynomial_horner_successor_construct (0) - 0027
specialize prime_field_polynomial_horner_successor_construct (0) - 0028
specialize prime_field_polynomial_horner_successor_construct (0) - 0029
apply prime_field_polynomial_horner_successor_construct - 0030
exact hp - 0031
specialize hz (l) - 0032
apply hz - 0033
exists 0 - 0034
apply zero_add - 0035
apply IH - 0036
exact hp - 0037
exact ht - 0038
intro i - 0039
intro hi - 0040
specialize hz (i) - 0041
apply hz - 0042
specialize le_succ (S i) - 0043
specialize le_succ (l) - 0044
apply le_succ - 0045
exact hi - 0046
specialize prime_field_multiply_zero_left (p) - 0047
specialize prime_field_multiply_zero_left (t) - 0048
apply prime_field_multiply_zero_left - 0049
exact hp - 0050
exact ht - 0051
specialize prime_field_add_zero_left (p) - 0052
specialize prime_field_add_zero_left (0) - 0053
apply prime_field_add_zero_left - 0054
exact hp - 0055
specialize prime_field_zero_below_prime (p) - 0056
apply prime_field_zero_below_prime - 0057
exact hp