Exact expanded first-order arithmetic statement
forall p b c d e t l n r. (~((p) = 1) /\ forall pfa_factor_left_iff_prime pfa_factor_right_iff_prime. (p) = pfa_factor_left_iff_prime * pfa_factor_right_iff_prime -> pfa_factor_left_iff_prime = 1 \/ pfa_factor_right_iff_prime = 1) -> (forall pfp_index_iff_reduction. (exists pfa_gap_iff_reductionindex. pfa_gap_iff_reductionindex + S (pfp_index_iff_reduction) = (l)) -> exists pfp_source_iff_reduction pfp_residue_iff_reduction. ((((exists ff_h_pfp_iff_reductionsource. ff_h_pfp_iff_reductionsource + S (pfp_source_iff_reduction) = S ((S (pfp_index_iff_reduction)) * c)) /\ exists ff_q_pfp_iff_reductionsource. b = ff_q_pfp_iff_reductionsource * S ((S (pfp_index_iff_reduction)) * c) + (pfp_source_iff_reduction))) /\ (((((exists ff_h_pfp_iff_reductiontarget. ff_h_pfp_iff_reductiontarget + S (pfp_residue_iff_reduction) = S ((S (pfp_index_iff_reduction)) * e)) /\ exists ff_q_pfp_iff_reductiontarget. d = ff_q_pfp_iff_reductiontarget * S ((S (pfp_index_iff_reduction)) * e) + (pfp_residue_iff_reduction))) /\ ((((exists pfa_gap_iff_reductionresiduebound. pfa_gap_iff_reductionresiduebound + S (pfp_residue_iff_reduction) = (p)) /\ ((exists pfa_offset_left_iff_reductionresiduecongruence pfa_offset_right_iff_reductionresiduecongruence. (pfp_source_iff_reduction) + (p) * pfa_offset_left_iff_reductionresiduecongruence = (pfp_residue_iff_reduction) + (p) * pfa_offset_right_iff_reductionresiduecongruence))))))))) -> (exists pfa_gap_iff_base. pfa_gap_iff_base + S (t) = (p)) -> (exists ff_u_ph_pfh_iff_natural ff_v_ph_pfh_iff_natural. ((((exists fs_h_ph_pfh_iff_natural_body_start. fs_h_ph_pfh_iff_natural_body_start + S (0) = S ((S (0)) * ff_v_ph_pfh_iff_natural)) /\ exists fs_q_ph_pfh_iff_natural_body_start. ff_u_ph_pfh_iff_natural = fs_q_ph_pfh_iff_natural_body_start * S ((S (0)) * ff_v_ph_pfh_iff_natural) + (0))) /\ ((((exists fs_h_ph_pfh_iff_natural_body_terminal. fs_h_ph_pfh_iff_natural_body_terminal + S (n) = S ((S (l)) * ff_v_ph_pfh_iff_natural)) /\ exists fs_q_ph_pfh_iff_natural_body_terminal. ff_u_ph_pfh_iff_natural = fs_q_ph_pfh_iff_natural_body_terminal * S ((S (l)) * ff_v_ph_pfh_iff_natural) + (n))) /\ forall ff_i_ph_pfh_iff_natural_body_steps. (exists ph_bound_pfh_iff_natural_body_steps. ph_bound_pfh_iff_natural_body_steps + S ff_i_ph_pfh_iff_natural_body_steps = l) -> exists ff_coefficient_ph_pfh_iff_natural_body_steps ff_previous_ph_pfh_iff_natural_body_steps ff_current_ph_pfh_iff_natural_body_steps. ((((exists fs_h_ph_pfh_iff_natural_body_steps_coefficient. fs_h_ph_pfh_iff_natural_body_steps_coefficient + S (ff_coefficient_ph_pfh_iff_natural_body_steps) = S ((S (ff_i_ph_pfh_iff_natural_body_steps)) * c)) /\ exists fs_q_ph_pfh_iff_natural_body_steps_coefficient. b = fs_q_ph_pfh_iff_natural_body_steps_coefficient * S ((S (ff_i_ph_pfh_iff_natural_body_steps)) * c) + (ff_coefficient_ph_pfh_iff_natural_body_steps))) /\ ((((exists fs_h_ph_pfh_iff_natural_body_steps_before. fs_h_ph_pfh_iff_natural_body_steps_before + S (ff_previous_ph_pfh_iff_natural_body_steps) = S ((S (ff_i_ph_pfh_iff_natural_body_steps)) * ff_v_ph_pfh_iff_natural)) /\ exists fs_q_ph_pfh_iff_natural_body_steps_before. ff_u_ph_pfh_iff_natural = fs_q_ph_pfh_iff_natural_body_steps_before * S ((S (ff_i_ph_pfh_iff_natural_body_steps)) * ff_v_ph_pfh_iff_natural) + (ff_previous_ph_pfh_iff_natural_body_steps))) /\ ((((exists fs_h_ph_pfh_iff_natural_body_steps_after. fs_h_ph_pfh_iff_natural_body_steps_after + S (ff_current_ph_pfh_iff_natural_body_steps) = S ((S (S ff_i_ph_pfh_iff_natural_body_steps)) * ff_v_ph_pfh_iff_natural)) /\ exists fs_q_ph_pfh_iff_natural_body_steps_after. ff_u_ph_pfh_iff_natural = fs_q_ph_pfh_iff_natural_body_steps_after * S ((S (S ff_i_ph_pfh_iff_natural_body_steps)) * ff_v_ph_pfh_iff_natural) + (ff_current_ph_pfh_iff_natural_body_steps))) /\ ff_current_ph_pfh_iff_natural_body_steps = ff_previous_ph_pfh_iff_natural_body_steps * t + ff_coefficient_ph_pfh_iff_natural_body_steps)))))) -> (((exists pfh_trace_code_iff_execution_forward pfh_trace_scale_iff_execution_forward. (((exists pfa_gap_iff_execution_forwardtracebase. pfa_gap_iff_execution_forwardtracebase + S (t) = (p)) /\ (((((exists ff_h_pfp_iff_execution_forwardtraceinitial. ff_h_pfp_iff_execution_forwardtraceinitial + S (0) = S ((S (0)) * pfh_trace_scale_iff_execution_forward)) /\ exists ff_q_pfp_iff_execution_forwardtraceinitial. pfh_trace_code_iff_execution_forward = ff_q_pfp_iff_execution_forwardtraceinitial * S ((S (0)) * pfh_trace_scale_iff_execution_forward) + (0))) /\ (((((exists ff_h_pfp_iff_execution_forwardtraceterminal. ff_h_pfp_iff_execution_forwardtraceterminal + S (r) = S ((S (l)) * pfh_trace_scale_iff_execution_forward)) /\ exists ff_q_pfp_iff_execution_forwardtraceterminal. pfh_trace_code_iff_execution_forward = ff_q_pfp_iff_execution_forwardtraceterminal * S ((S (l)) * pfh_trace_scale_iff_execution_forward) + (r))) /\ ((forall pfh_index_iff_execution_forwardtracesteps. (exists pfa_gap_iff_execution_forwardtracestepsindex. pfa_gap_iff_execution_forwardtracestepsindex + S (pfh_index_iff_execution_forwardtracesteps) = (l)) -> (exists pfh_coefficient_iff_execution_forwardtracestepsstep pfh_before_iff_execution_forwardtracestepsstep pfh_after_iff_execution_forwardtracestepsstep pfh_product_iff_execution_forwardtracestepsstep. ((((exists ff_h_pfp_iff_execution_forwardtracestepsstepcoefficient. ff_h_pfp_iff_execution_forwardtracestepsstepcoefficient + S (pfh_coefficient_iff_execution_forwardtracestepsstep) = S ((S (pfh_index_iff_execution_forwardtracesteps)) * e)) /\ exists ff_q_pfp_iff_execution_forwardtracestepsstepcoefficient. d = ff_q_pfp_iff_execution_forwardtracestepsstepcoefficient * S ((S (pfh_index_iff_execution_forwardtracesteps)) * e) + (pfh_coefficient_iff_execution_forwardtracestepsstep))) /\ (((((exists ff_h_pfp_iff_execution_forwardtracestepsstepbefore. ff_h_pfp_iff_execution_forwardtracestepsstepbefore + S (pfh_before_iff_execution_forwardtracestepsstep) = S ((S (pfh_index_iff_execution_forwardtracesteps)) * pfh_trace_scale_iff_execution_forward)) /\ exists ff_q_pfp_iff_execution_forwardtracestepsstepbefore. pfh_trace_code_iff_execution_forward = ff_q_pfp_iff_execution_forwardtracestepsstepbefore * S ((S (pfh_index_iff_execution_forwardtracesteps)) * pfh_trace_scale_iff_execution_forward) + (pfh_before_iff_execution_forwardtracestepsstep))) /\ (((((exists ff_h_pfp_iff_execution_forwardtracestepsstepafter. ff_h_pfp_iff_execution_forwardtracestepsstepafter + S (pfh_after_iff_execution_forwardtracestepsstep) = S ((S (S (pfh_index_iff_execution_forwardtracesteps))) * pfh_trace_scale_iff_execution_forward)) /\ exists ff_q_pfp_iff_execution_forwardtracestepsstepafter. pfh_trace_code_iff_execution_forward = ff_q_pfp_iff_execution_forwardtracestepsstepafter * S ((S (S (pfh_index_iff_execution_forwardtracesteps))) * pfh_trace_scale_iff_execution_forward) + (pfh_after_iff_execution_forwardtracestepsstep))) /\ (((((exists pfa_gap_iff_execution_forwardtracestepsstepmultiplyleft. pfa_gap_iff_execution_forwardtracestepsstepmultiplyleft + S (pfh_before_iff_execution_forwardtracestepsstep) = (p)) /\ (((exists pfa_gap_iff_execution_forwardtracestepsstepmultiplyright. pfa_gap_iff_execution_forwardtracestepsstepmultiplyright + S (t) = (p)) /\ ((((exists pfa_gap_iff_execution_forwardtracestepsstepmultiplyresultbound. pfa_gap_iff_execution_forwardtracestepsstepmultiplyresultbound + S (pfh_product_iff_execution_forwardtracestepsstep) = (p)) /\ ((exists pfa_offset_left_iff_execution_forwardtracestepsstepmultiplyresultcongruence pfa_offset_right_iff_execution_forwardtracestepsstepmultiplyresultcongruence. ((pfh_before_iff_execution_forwardtracestepsstep) * (t)) + (p) * pfa_offset_left_iff_execution_forwardtracestepsstepmultiplyresultcongruence = (pfh_product_iff_execution_forwardtracestepsstep) + (p) * pfa_offset_right_iff_execution_forwardtracestepsstepmultiplyresultcongruence))))))))) /\ ((((exists pfa_gap_iff_execution_forwardtracestepsstepaddleft. pfa_gap_iff_execution_forwardtracestepsstepaddleft + S (pfh_product_iff_execution_forwardtracestepsstep) = (p)) /\ (((exists pfa_gap_iff_execution_forwardtracestepsstepaddright. pfa_gap_iff_execution_forwardtracestepsstepaddright + S (pfh_coefficient_iff_execution_forwardtracestepsstep) = (p)) /\ ((((exists pfa_gap_iff_execution_forwardtracestepsstepaddresultbound. pfa_gap_iff_execution_forwardtracestepsstepaddresultbound + S (pfh_after_iff_execution_forwardtracestepsstep) = (p)) /\ ((exists pfa_offset_left_iff_execution_forwardtracestepsstepaddresultcongruence pfa_offset_right_iff_execution_forwardtracestepsstepaddresultcongruence. ((pfh_product_iff_execution_forwardtracestepsstep) + (pfh_coefficient_iff_execution_forwardtracestepsstep)) + (p) * pfa_offset_left_iff_execution_forwardtracestepsstepaddresultcongruence = (pfh_after_iff_execution_forwardtracestepsstep) + (p) * pfa_offset_right_iff_execution_forwardtracestepsstepaddresultcongruence))))))))))))))))))))))))))) -> (((exists pfa_gap_iff_residue_forwardbound. pfa_gap_iff_residue_forwardbound + S (r) = (p)) /\ ((exists pfa_offset_left_iff_residue_forwardcongruence pfa_offset_right_iff_residue_forwardcongruence. (n) + (p) * pfa_offset_left_iff_residue_forwardcongruence = (r) + (p) * pfa_offset_right_iff_residue_forwardcongruence))))) /\ (((((exists pfa_gap_iff_residue_backwardbound. pfa_gap_iff_residue_backwardbound + S (r) = (p)) /\ ((exists pfa_offset_left_iff_residue_backwardcongruence pfa_offset_right_iff_residue_backwardcongruence. (n) + (p) * pfa_offset_left_iff_residue_backwardcongruence = (r) + (p) * pfa_offset_right_iff_residue_backwardcongruence)))) -> (exists pfh_trace_code_iff_execution_backward pfh_trace_scale_iff_execution_backward. (((exists pfa_gap_iff_execution_backwardtracebase. pfa_gap_iff_execution_backwardtracebase + S (t) = (p)) /\ (((((exists ff_h_pfp_iff_execution_backwardtraceinitial. ff_h_pfp_iff_execution_backwardtraceinitial + S (0) = S ((S (0)) * pfh_trace_scale_iff_execution_backward)) /\ exists ff_q_pfp_iff_execution_backwardtraceinitial. pfh_trace_code_iff_execution_backward = ff_q_pfp_iff_execution_backwardtraceinitial * S ((S (0)) * pfh_trace_scale_iff_execution_backward) + (0))) /\ (((((exists ff_h_pfp_iff_execution_backwardtraceterminal. ff_h_pfp_iff_execution_backwardtraceterminal + S (r) = S ((S (l)) * pfh_trace_scale_iff_execution_backward)) /\ exists ff_q_pfp_iff_execution_backwardtraceterminal. pfh_trace_code_iff_execution_backward = ff_q_pfp_iff_execution_backwardtraceterminal * S ((S (l)) * pfh_trace_scale_iff_execution_backward) + (r))) /\ ((forall pfh_index_iff_execution_backwardtracesteps. (exists pfa_gap_iff_execution_backwardtracestepsindex. pfa_gap_iff_execution_backwardtracestepsindex + S (pfh_index_iff_execution_backwardtracesteps) = (l)) -> (exists pfh_coefficient_iff_execution_backwardtracestepsstep pfh_before_iff_execution_backwardtracestepsstep pfh_after_iff_execution_backwardtracestepsstep pfh_product_iff_execution_backwardtracestepsstep. ((((exists ff_h_pfp_iff_execution_backwardtracestepsstepcoefficient. ff_h_pfp_iff_execution_backwardtracestepsstepcoefficient + S (pfh_coefficient_iff_execution_backwardtracestepsstep) = S ((S (pfh_index_iff_execution_backwardtracesteps)) * e)) /\ exists ff_q_pfp_iff_execution_backwardtracestepsstepcoefficient. d = ff_q_pfp_iff_execution_backwardtracestepsstepcoefficient * S ((S (pfh_index_iff_execution_backwardtracesteps)) * e) + (pfh_coefficient_iff_execution_backwardtracestepsstep))) /\ (((((exists ff_h_pfp_iff_execution_backwardtracestepsstepbefore. ff_h_pfp_iff_execution_backwardtracestepsstepbefore + S (pfh_before_iff_execution_backwardtracestepsstep) = S ((S (pfh_index_iff_execution_backwardtracesteps)) * pfh_trace_scale_iff_execution_backward)) /\ exists ff_q_pfp_iff_execution_backwardtracestepsstepbefore. pfh_trace_code_iff_execution_backward = ff_q_pfp_iff_execution_backwardtracestepsstepbefore * S ((S (pfh_index_iff_execution_backwardtracesteps)) * pfh_trace_scale_iff_execution_backward) + (pfh_before_iff_execution_backwardtracestepsstep))) /\ (((((exists ff_h_pfp_iff_execution_backwardtracestepsstepafter. ff_h_pfp_iff_execution_backwardtracestepsstepafter + S (pfh_after_iff_execution_backwardtracestepsstep) = S ((S (S (pfh_index_iff_execution_backwardtracesteps))) * pfh_trace_scale_iff_execution_backward)) /\ exists ff_q_pfp_iff_execution_backwardtracestepsstepafter. pfh_trace_code_iff_execution_backward = ff_q_pfp_iff_execution_backwardtracestepsstepafter * S ((S (S (pfh_index_iff_execution_backwardtracesteps))) * pfh_trace_scale_iff_execution_backward) + (pfh_after_iff_execution_backwardtracestepsstep))) /\ (((((exists pfa_gap_iff_execution_backwardtracestepsstepmultiplyleft. pfa_gap_iff_execution_backwardtracestepsstepmultiplyleft + S (pfh_before_iff_execution_backwardtracestepsstep) = (p)) /\ (((exists pfa_gap_iff_execution_backwardtracestepsstepmultiplyright. pfa_gap_iff_execution_backwardtracestepsstepmultiplyright + S (t) = (p)) /\ ((((exists pfa_gap_iff_execution_backwardtracestepsstepmultiplyresultbound. pfa_gap_iff_execution_backwardtracestepsstepmultiplyresultbound + S (pfh_product_iff_execution_backwardtracestepsstep) = (p)) /\ ((exists pfa_offset_left_iff_execution_backwardtracestepsstepmultiplyresultcongruence pfa_offset_right_iff_execution_backwardtracestepsstepmultiplyresultcongruence. ((pfh_before_iff_execution_backwardtracestepsstep) * (t)) + (p) * pfa_offset_left_iff_execution_backwardtracestepsstepmultiplyresultcongruence = (pfh_product_iff_execution_backwardtracestepsstep) + (p) * pfa_offset_right_iff_execution_backwardtracestepsstepmultiplyresultcongruence))))))))) /\ ((((exists pfa_gap_iff_execution_backwardtracestepsstepaddleft. pfa_gap_iff_execution_backwardtracestepsstepaddleft + S (pfh_product_iff_execution_backwardtracestepsstep) = (p)) /\ (((exists pfa_gap_iff_execution_backwardtracestepsstepaddright. pfa_gap_iff_execution_backwardtracestepsstepaddright + S (pfh_coefficient_iff_execution_backwardtracestepsstep) = (p)) /\ ((((exists pfa_gap_iff_execution_backwardtracestepsstepaddresultbound. pfa_gap_iff_execution_backwardtracestepsstepaddresultbound + S (pfh_after_iff_execution_backwardtracestepsstep) = (p)) /\ ((exists pfa_offset_left_iff_execution_backwardtracestepsstepaddresultcongruence pfa_offset_right_iff_execution_backwardtracestepsstepaddresultcongruence. ((pfh_product_iff_execution_backwardtracestepsstep) + (pfh_coefficient_iff_execution_backwardtracestepsstep)) + (p) * pfa_offset_left_iff_execution_backwardtracestepsstepaddresultcongruence = (pfh_after_iff_execution_backwardtracestepsstep) + (p) * pfa_offset_right_iff_execution_backwardtracestepsstepaddresultcongruence))))))))))))))))))))))))))))))Constructive proof overview
Generated structural guide
After actual coefficient reduction, the genuine modular execution exists with exactly—and every—canonical residue of the original natural T12 evaluation.
The unchanged tactic script uses 4 declared prerequisites and contains 74 exact native proof lines.
Public research checkpoint: original HA and independently compiled Lean verified; not Alpha-enrolled, no Alpha checked-use authority; not Stable
Proof neighborhood
Direct dependencies
PP0027 prime_field_polynomial_horner_normalization_residue PP0022 prime_field_polynomial_horner_exists PP0004 prime_field_polynomial_normalization_bounded binary_canonical_residue_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. The literal dependency-closed bundle is checked by original HA and the independently compiled Lean verifier. Public delivery grants no Alpha checked-use authority or 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 (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–13
03Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L14
split
04Fix variables and assumptionsL15–15
Work with arbitrary variables or the premises of the current implication.
- L15
intro he
05Use earlier factsL16–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L16
specialize prime_field_polynomial_horner_normalization_residue (p) - L17
specialize prime_field_polynomial_horner_normalization_residue (b) - L18
specialize prime_field_polynomial_horner_normalization_residue (c) - L19
specialize prime_field_polynomial_horner_normalization_residue (d) - L20
specialize prime_field_polynomial_horner_normalization_residue (e) - L21
specialize prime_field_polynomial_horner_normalization_residue (t) - L22
specialize prime_field_polynomial_horner_normalization_residue (l) - L23
specialize prime_field_polynomial_horner_normalization_residue (n) - L24
specialize prime_field_polynomial_horner_normalization_residue (r) - L25
apply prime_field_polynomial_horner_normalization_residue
06Use earlier factsL26–29
07Fix variables and assumptionsL30–30
Work with arbitrary variables or the premises of the current implication.
- L30
intro hr
08Establish heL31–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial horner exists.
- L31
have he : ∃ s. FpHorner(p,d,e,t,l,s)Definitions: FpHorner - L32
specialize prime_field_polynomial_horner_exists (p) - L33
specialize prime_field_polynomial_horner_exists (d) - L34
specialize prime_field_polynomial_horner_exists (e) - L35
specialize prime_field_polynomial_horner_exists (t) - L36
specialize prime_field_polynomial_horner_exists (l) - L37
apply prime_field_polynomial_horner_exists - L38
exact hp - L39
specialize prime_field_polynomial_normalization_bounded (p) - L40
specialize prime_field_polynomial_normalization_bounded (b)
09Use earlier factsL41–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
specialize prime_field_polynomial_normalization_bounded (c) - L42
specialize prime_field_polynomial_normalization_bounded (d) - L43
specialize prime_field_polynomial_normalization_bounded (e) - L44
specialize prime_field_polynomial_normalization_bounded (l) - L45
apply prime_field_polynomial_normalization_bounded - L46
exact hred - L47
exact ht
10Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
cases he
11Establish hsL49–58
Establish this local claim before using it. It is not an additional assumption.
- L49
have hs : ((exists pfa_gap_iff_chosen_residuebound. pfa_gap_iff_chosen_residuebound + S (x) = (p)) /\ ((exists pfa_offset_left_iff_chosen_residuecongruence pfa_offset_right_iff_chosen_residuecongruence. (n) + (p) * pfa_offset_left_iff_chosen_residuecongruence = (x) + (p) * pfa_offset_right_iff_chosen_residuecongruence))) - L50
specialize prime_field_polynomial_horner_normalization_residue (p) - L51
specialize prime_field_polynomial_horner_normalization_residue (b) - L52
specialize prime_field_polynomial_horner_normalization_residue (c) - L53
specialize prime_field_polynomial_horner_normalization_residue (d) - L54
specialize prime_field_polynomial_horner_normalization_residue (e) - L55
specialize prime_field_polynomial_horner_normalization_residue (t) - L56
specialize prime_field_polynomial_horner_normalization_residue (l) - L57
specialize prime_field_polynomial_horner_normalization_residue (n) - L58
specialize prime_field_polynomial_horner_normalization_residue (x)
12Use earlier factsL59–63
13Establish heqL64–73
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary canonical residue functional.
- L64
have heq : x=r - L65
specialize binary_canonical_residue_functional (p) - L66
specialize binary_canonical_residue_functional (n) - L67
specialize binary_canonical_residue_functional (x) - L68
specialize binary_canonical_residue_functional (r) - L69
apply binary_canonical_residue_functional - L70
exact hs - L71
exact hr - L72
rewrite heq at he_witness - L73
rewrite heq at he_witness
14Use earlier factsL74–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L74
exact he_witness
Original exact command ledger · 74 lines
- 0001
intro p - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro e - 0006
intro t - 0007
intro l - 0008
intro n - 0009
intro r - 0010
intro hp - 0011
intro hred - 0012
intro ht - 0013
intro hn - 0014
split - 0015
intro he - 0016
specialize prime_field_polynomial_horner_normalization_residue (p) - 0017
specialize prime_field_polynomial_horner_normalization_residue (b) - 0018
specialize prime_field_polynomial_horner_normalization_residue (c) - 0019
specialize prime_field_polynomial_horner_normalization_residue (d) - 0020
specialize prime_field_polynomial_horner_normalization_residue (e) - 0021
specialize prime_field_polynomial_horner_normalization_residue (t) - 0022
specialize prime_field_polynomial_horner_normalization_residue (l) - 0023
specialize prime_field_polynomial_horner_normalization_residue (n) - 0024
specialize prime_field_polynomial_horner_normalization_residue (r) - 0025
apply prime_field_polynomial_horner_normalization_residue - 0026
exact hp - 0027
exact hred - 0028
exact hn - 0029
exact he - 0030
intro hr - 0031
have he : exists s. (exists pfh_trace_code_iff_chosen_execution pfh_trace_scale_iff_chosen_execution. (((exists pfa_gap_iff_chosen_executiontracebase. pfa_gap_iff_chosen_executiontracebase + S (t) = (p)) /\ (((((exists ff_h_pfp_iff_chosen_executiontraceinitial. ff_h_pfp_iff_chosen_executiontraceinitial + S (0) = S ((S (0)) * pfh_trace_scale_iff_chosen_execution)) /\ exists ff_q_pfp_iff_chosen_executiontraceinitial. pfh_trace_code_iff_chosen_execution = ff_q_pfp_iff_chosen_executiontraceinitial * S ((S (0)) * pfh_trace_scale_iff_chosen_execution) + (0))) /\ (((((exists ff_h_pfp_iff_chosen_executiontraceterminal. ff_h_pfp_iff_chosen_executiontraceterminal + S (s) = S ((S (l)) * pfh_trace_scale_iff_chosen_execution)) /\ exists ff_q_pfp_iff_chosen_executiontraceterminal. pfh_trace_code_iff_chosen_execution = ff_q_pfp_iff_chosen_executiontraceterminal * S ((S (l)) * pfh_trace_scale_iff_chosen_execution) + (s))) /\ ((forall pfh_index_iff_chosen_executiontracesteps. (exists pfa_gap_iff_chosen_executiontracestepsindex. pfa_gap_iff_chosen_executiontracestepsindex + S (pfh_index_iff_chosen_executiontracesteps) = (l)) -> (exists pfh_coefficient_iff_chosen_executiontracestepsstep pfh_before_iff_chosen_executiontracestepsstep pfh_after_iff_chosen_executiontracestepsstep pfh_product_iff_chosen_executiontracestepsstep. ((((exists ff_h_pfp_iff_chosen_executiontracestepsstepcoefficient. ff_h_pfp_iff_chosen_executiontracestepsstepcoefficient + S (pfh_coefficient_iff_chosen_executiontracestepsstep) = S ((S (pfh_index_iff_chosen_executiontracesteps)) * e)) /\ exists ff_q_pfp_iff_chosen_executiontracestepsstepcoefficient. d = ff_q_pfp_iff_chosen_executiontracestepsstepcoefficient * S ((S (pfh_index_iff_chosen_executiontracesteps)) * e) + (pfh_coefficient_iff_chosen_executiontracestepsstep))) /\ (((((exists ff_h_pfp_iff_chosen_executiontracestepsstepbefore. ff_h_pfp_iff_chosen_executiontracestepsstepbefore + S (pfh_before_iff_chosen_executiontracestepsstep) = S ((S (pfh_index_iff_chosen_executiontracesteps)) * pfh_trace_scale_iff_chosen_execution)) /\ exists ff_q_pfp_iff_chosen_executiontracestepsstepbefore. pfh_trace_code_iff_chosen_execution = ff_q_pfp_iff_chosen_executiontracestepsstepbefore * S ((S (pfh_index_iff_chosen_executiontracesteps)) * pfh_trace_scale_iff_chosen_execution) + (pfh_before_iff_chosen_executiontracestepsstep))) /\ (((((exists ff_h_pfp_iff_chosen_executiontracestepsstepafter. ff_h_pfp_iff_chosen_executiontracestepsstepafter + S (pfh_after_iff_chosen_executiontracestepsstep) = S ((S (S (pfh_index_iff_chosen_executiontracesteps))) * pfh_trace_scale_iff_chosen_execution)) /\ exists ff_q_pfp_iff_chosen_executiontracestepsstepafter. pfh_trace_code_iff_chosen_execution = ff_q_pfp_iff_chosen_executiontracestepsstepafter * S ((S (S (pfh_index_iff_chosen_executiontracesteps))) * pfh_trace_scale_iff_chosen_execution) + (pfh_after_iff_chosen_executiontracestepsstep))) /\ (((((exists pfa_gap_iff_chosen_executiontracestepsstepmultiplyleft. pfa_gap_iff_chosen_executiontracestepsstepmultiplyleft + S (pfh_before_iff_chosen_executiontracestepsstep) = (p)) /\ (((exists pfa_gap_iff_chosen_executiontracestepsstepmultiplyright. pfa_gap_iff_chosen_executiontracestepsstepmultiplyright + S (t) = (p)) /\ ((((exists pfa_gap_iff_chosen_executiontracestepsstepmultiplyresultbound. pfa_gap_iff_chosen_executiontracestepsstepmultiplyresultbound + S (pfh_product_iff_chosen_executiontracestepsstep) = (p)) /\ ((exists pfa_offset_left_iff_chosen_executiontracestepsstepmultiplyresultcongruence pfa_offset_right_iff_chosen_executiontracestepsstepmultiplyresultcongruence. ((pfh_before_iff_chosen_executiontracestepsstep) * (t)) + (p) * pfa_offset_left_iff_chosen_executiontracestepsstepmultiplyresultcongruence = (pfh_product_iff_chosen_executiontracestepsstep) + (p) * pfa_offset_right_iff_chosen_executiontracestepsstepmultiplyresultcongruence))))))))) /\ ((((exists pfa_gap_iff_chosen_executiontracestepsstepaddleft. pfa_gap_iff_chosen_executiontracestepsstepaddleft + S (pfh_product_iff_chosen_executiontracestepsstep) = (p)) /\ (((exists pfa_gap_iff_chosen_executiontracestepsstepaddright. pfa_gap_iff_chosen_executiontracestepsstepaddright + S (pfh_coefficient_iff_chosen_executiontracestepsstep) = (p)) /\ ((((exists pfa_gap_iff_chosen_executiontracestepsstepaddresultbound. pfa_gap_iff_chosen_executiontracestepsstepaddresultbound + S (pfh_after_iff_chosen_executiontracestepsstep) = (p)) /\ ((exists pfa_offset_left_iff_chosen_executiontracestepsstepaddresultcongruence pfa_offset_right_iff_chosen_executiontracestepsstepaddresultcongruence. ((pfh_product_iff_chosen_executiontracestepsstep) + (pfh_coefficient_iff_chosen_executiontracestepsstep)) + (p) * pfa_offset_left_iff_chosen_executiontracestepsstepaddresultcongruence = (pfh_after_iff_chosen_executiontracestepsstep) + (p) * pfa_offset_right_iff_chosen_executiontracestepsstepaddresultcongruence))))))))))))))))))))))))))) - 0032
specialize prime_field_polynomial_horner_exists (p) - 0033
specialize prime_field_polynomial_horner_exists (d) - 0034
specialize prime_field_polynomial_horner_exists (e) - 0035
specialize prime_field_polynomial_horner_exists (t) - 0036
specialize prime_field_polynomial_horner_exists (l) - 0037
apply prime_field_polynomial_horner_exists - 0038
exact hp - 0039
specialize prime_field_polynomial_normalization_bounded (p) - 0040
specialize prime_field_polynomial_normalization_bounded (b) - 0041
specialize prime_field_polynomial_normalization_bounded (c) - 0042
specialize prime_field_polynomial_normalization_bounded (d) - 0043
specialize prime_field_polynomial_normalization_bounded (e) - 0044
specialize prime_field_polynomial_normalization_bounded (l) - 0045
apply prime_field_polynomial_normalization_bounded - 0046
exact hred - 0047
exact ht - 0048
cases he - 0049
have hs : ((exists pfa_gap_iff_chosen_residuebound. pfa_gap_iff_chosen_residuebound + S (x) = (p)) /\ ((exists pfa_offset_left_iff_chosen_residuecongruence pfa_offset_right_iff_chosen_residuecongruence. (n) + (p) * pfa_offset_left_iff_chosen_residuecongruence = (x) + (p) * pfa_offset_right_iff_chosen_residuecongruence))) - 0050
specialize prime_field_polynomial_horner_normalization_residue (p) - 0051
specialize prime_field_polynomial_horner_normalization_residue (b) - 0052
specialize prime_field_polynomial_horner_normalization_residue (c) - 0053
specialize prime_field_polynomial_horner_normalization_residue (d) - 0054
specialize prime_field_polynomial_horner_normalization_residue (e) - 0055
specialize prime_field_polynomial_horner_normalization_residue (t) - 0056
specialize prime_field_polynomial_horner_normalization_residue (l) - 0057
specialize prime_field_polynomial_horner_normalization_residue (n) - 0058
specialize prime_field_polynomial_horner_normalization_residue (x) - 0059
apply prime_field_polynomial_horner_normalization_residue - 0060
exact hp - 0061
exact hred - 0062
exact hn - 0063
exact he_witness - 0064
have heq : x=r - 0065
specialize binary_canonical_residue_functional (p) - 0066
specialize binary_canonical_residue_functional (n) - 0067
specialize binary_canonical_residue_functional (x) - 0068
specialize binary_canonical_residue_functional (r) - 0069
apply binary_canonical_residue_functional - 0070
exact hs - 0071
exact hr - 0072
rewrite heq at he_witness - 0073
rewrite heq at he_witness - 0074
exact he_witness