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 a n qb qc r Qb Qc s. (~((p) = 1) /\ forall pfa_factor_left_functional_prime pfa_factor_right_functional_prime. (p) = pfa_factor_left_functional_prime * pfa_factor_right_functional_prime -> pfa_factor_left_functional_prime = 1 \/ pfa_factor_right_functional_prime = 1) -> (exists pfs_history_code_functional_first pfs_history_scale_functional_first. ((((exists pfa_gap_functional_firsttracebase. pfa_gap_functional_firsttracebase + S (a) = (p)) /\ (((((exists ff_h_pfp_functional_firsttraceinitial. ff_h_pfp_functional_firsttraceinitial + S (0) = S ((S (0)) * pfs_history_scale_functional_first)) /\ exists ff_q_pfp_functional_firsttraceinitial. pfs_history_code_functional_first = ff_q_pfp_functional_firsttraceinitial * S ((S (0)) * pfs_history_scale_functional_first) + (0))) /\ (((((exists ff_h_pfp_functional_firsttraceterminal. ff_h_pfp_functional_firsttraceterminal + S (r) = S ((S (S (n))) * pfs_history_scale_functional_first)) /\ exists ff_q_pfp_functional_firsttraceterminal. pfs_history_code_functional_first = ff_q_pfp_functional_firsttraceterminal * S ((S (S (n))) * pfs_history_scale_functional_first) + (r))) /\ ((forall pfh_index_functional_firsttracesteps. (exists pfa_gap_functional_firsttracestepsindex. pfa_gap_functional_firsttracestepsindex + S (pfh_index_functional_firsttracesteps) = (S (n))) -> (exists pfh_coefficient_functional_firsttracestepsstep pfh_before_functional_firsttracestepsstep pfh_after_functional_firsttracestepsstep pfh_product_functional_firsttracestepsstep. ((((exists ff_h_pfp_functional_firsttracestepsstepcoefficient. ff_h_pfp_functional_firsttracestepsstepcoefficient + S (pfh_coefficient_functional_firsttracestepsstep) = S ((S (pfh_index_functional_firsttracesteps)) * c)) /\ exists ff_q_pfp_functional_firsttracestepsstepcoefficient. b = ff_q_pfp_functional_firsttracestepsstepcoefficient * S ((S (pfh_index_functional_firsttracesteps)) * c) + (pfh_coefficient_functional_firsttracestepsstep))) /\ (((((exists ff_h_pfp_functional_firsttracestepsstepbefore. ff_h_pfp_functional_firsttracestepsstepbefore + S (pfh_before_functional_firsttracestepsstep) = S ((S (pfh_index_functional_firsttracesteps)) * pfs_history_scale_functional_first)) /\ exists ff_q_pfp_functional_firsttracestepsstepbefore. pfs_history_code_functional_first = ff_q_pfp_functional_firsttracestepsstepbefore * S ((S (pfh_index_functional_firsttracesteps)) * pfs_history_scale_functional_first) + (pfh_before_functional_firsttracestepsstep))) /\ (((((exists ff_h_pfp_functional_firsttracestepsstepafter. ff_h_pfp_functional_firsttracestepsstepafter + S (pfh_after_functional_firsttracestepsstep) = S ((S (S (pfh_index_functional_firsttracesteps))) * pfs_history_scale_functional_first)) /\ exists ff_q_pfp_functional_firsttracestepsstepafter. pfs_history_code_functional_first = ff_q_pfp_functional_firsttracestepsstepafter * S ((S (S (pfh_index_functional_firsttracesteps))) * pfs_history_scale_functional_first) + (pfh_after_functional_firsttracestepsstep))) /\ (((((exists pfa_gap_functional_firsttracestepsstepmultiplyleft. pfa_gap_functional_firsttracestepsstepmultiplyleft + S (pfh_before_functional_firsttracestepsstep) = (p)) /\ (((exists pfa_gap_functional_firsttracestepsstepmultiplyright. pfa_gap_functional_firsttracestepsstepmultiplyright + S (a) = (p)) /\ ((((exists pfa_gap_functional_firsttracestepsstepmultiplyresultbound. pfa_gap_functional_firsttracestepsstepmultiplyresultbound + S (pfh_product_functional_firsttracestepsstep) = (p)) /\ ((exists pfa_offset_left_functional_firsttracestepsstepmultiplyresultcongruence pfa_offset_right_functional_firsttracestepsstepmultiplyresultcongruence. ((pfh_before_functional_firsttracestepsstep) * (a)) + (p) * pfa_offset_left_functional_firsttracestepsstepmultiplyresultcongruence = (pfh_product_functional_firsttracestepsstep) + (p) * pfa_offset_right_functional_firsttracestepsstepmultiplyresultcongruence))))))))) /\ ((((exists pfa_gap_functional_firsttracestepsstepaddleft. pfa_gap_functional_firsttracestepsstepaddleft + S (pfh_product_functional_firsttracestepsstep) = (p)) /\ (((exists pfa_gap_functional_firsttracestepsstepaddright. pfa_gap_functional_firsttracestepsstepaddright + S (pfh_coefficient_functional_firsttracestepsstep) = (p)) /\ ((((exists pfa_gap_functional_firsttracestepsstepaddresultbound. pfa_gap_functional_firsttracestepsstepaddresultbound + S (pfh_after_functional_firsttracestepsstep) = (p)) /\ ((exists pfa_offset_left_functional_firsttracestepsstepaddresultcongruence pfa_offset_right_functional_firsttracestepsstepaddresultcongruence. ((pfh_product_functional_firsttracestepsstep) + (pfh_coefficient_functional_firsttracestepsstep)) + (p) * pfa_offset_left_functional_firsttracestepsstepaddresultcongruence = (pfh_after_functional_firsttracestepsstep) + (p) * pfa_offset_right_functional_firsttracestepsstepaddresultcongruence)))))))))))))))))))))))))) /\ ((forall ff_index_mcp_pfs_functional_firstquotient ff_source_mcp_pfs_functional_firstquotient ff_target_mcp_pfs_functional_firstquotient. (exists mcp_gap_pfs_functional_firstquotient_bound. mcp_gap_pfs_functional_firstquotient_bound + S (ff_index_mcp_pfs_functional_firstquotient) = (n)) -> (((exists fs_h_mcp_pfs_functional_firstquotient_source. fs_h_mcp_pfs_functional_firstquotient_source + S (ff_source_mcp_pfs_functional_firstquotient) = S ((S ((1) + (1) * ff_index_mcp_pfs_functional_firstquotient)) * pfs_history_scale_functional_first)) /\ exists fs_q_mcp_pfs_functional_firstquotient_source. pfs_history_code_functional_first = fs_q_mcp_pfs_functional_firstquotient_source * S ((S ((1) + (1) * ff_index_mcp_pfs_functional_firstquotient)) * pfs_history_scale_functional_first) + (ff_source_mcp_pfs_functional_firstquotient))) -> (((exists fs_h_mcp_pfs_functional_firstquotient_target. fs_h_mcp_pfs_functional_firstquotient_target + S (ff_target_mcp_pfs_functional_firstquotient) = S ((S (ff_index_mcp_pfs_functional_firstquotient)) * qc)) /\ exists fs_q_mcp_pfs_functional_firstquotient_target. qb = fs_q_mcp_pfs_functional_firstquotient_target * S ((S (ff_index_mcp_pfs_functional_firstquotient)) * qc) + (ff_target_mcp_pfs_functional_firstquotient))) -> ff_target_mcp_pfs_functional_firstquotient = ff_source_mcp_pfs_functional_firstquotient)))) -> (exists pfs_history_code_functional_second pfs_history_scale_functional_second. ((((exists pfa_gap_functional_secondtracebase. pfa_gap_functional_secondtracebase + S (a) = (p)) /\ (((((exists ff_h_pfp_functional_secondtraceinitial. ff_h_pfp_functional_secondtraceinitial + S (0) = S ((S (0)) * pfs_history_scale_functional_second)) /\ exists ff_q_pfp_functional_secondtraceinitial. pfs_history_code_functional_second = ff_q_pfp_functional_secondtraceinitial * S ((S (0)) * pfs_history_scale_functional_second) + (0))) /\ (((((exists ff_h_pfp_functional_secondtraceterminal. ff_h_pfp_functional_secondtraceterminal + S (s) = S ((S (S (n))) * pfs_history_scale_functional_second)) /\ exists ff_q_pfp_functional_secondtraceterminal. pfs_history_code_functional_second = ff_q_pfp_functional_secondtraceterminal * S ((S (S (n))) * pfs_history_scale_functional_second) + (s))) /\ ((forall pfh_index_functional_secondtracesteps. (exists pfa_gap_functional_secondtracestepsindex. pfa_gap_functional_secondtracestepsindex + S (pfh_index_functional_secondtracesteps) = (S (n))) -> (exists pfh_coefficient_functional_secondtracestepsstep pfh_before_functional_secondtracestepsstep pfh_after_functional_secondtracestepsstep pfh_product_functional_secondtracestepsstep. ((((exists ff_h_pfp_functional_secondtracestepsstepcoefficient. ff_h_pfp_functional_secondtracestepsstepcoefficient + S (pfh_coefficient_functional_secondtracestepsstep) = S ((S (pfh_index_functional_secondtracesteps)) * c)) /\ exists ff_q_pfp_functional_secondtracestepsstepcoefficient. b = ff_q_pfp_functional_secondtracestepsstepcoefficient * S ((S (pfh_index_functional_secondtracesteps)) * c) + (pfh_coefficient_functional_secondtracestepsstep))) /\ (((((exists ff_h_pfp_functional_secondtracestepsstepbefore. ff_h_pfp_functional_secondtracestepsstepbefore + S (pfh_before_functional_secondtracestepsstep) = S ((S (pfh_index_functional_secondtracesteps)) * pfs_history_scale_functional_second)) /\ exists ff_q_pfp_functional_secondtracestepsstepbefore. pfs_history_code_functional_second = ff_q_pfp_functional_secondtracestepsstepbefore * S ((S (pfh_index_functional_secondtracesteps)) * pfs_history_scale_functional_second) + (pfh_before_functional_secondtracestepsstep))) /\ (((((exists ff_h_pfp_functional_secondtracestepsstepafter. ff_h_pfp_functional_secondtracestepsstepafter + S (pfh_after_functional_secondtracestepsstep) = S ((S (S (pfh_index_functional_secondtracesteps))) * pfs_history_scale_functional_second)) /\ exists ff_q_pfp_functional_secondtracestepsstepafter. pfs_history_code_functional_second = ff_q_pfp_functional_secondtracestepsstepafter * S ((S (S (pfh_index_functional_secondtracesteps))) * pfs_history_scale_functional_second) + (pfh_after_functional_secondtracestepsstep))) /\ (((((exists pfa_gap_functional_secondtracestepsstepmultiplyleft. pfa_gap_functional_secondtracestepsstepmultiplyleft + S (pfh_before_functional_secondtracestepsstep) = (p)) /\ (((exists pfa_gap_functional_secondtracestepsstepmultiplyright. pfa_gap_functional_secondtracestepsstepmultiplyright + S (a) = (p)) /\ ((((exists pfa_gap_functional_secondtracestepsstepmultiplyresultbound. pfa_gap_functional_secondtracestepsstepmultiplyresultbound + S (pfh_product_functional_secondtracestepsstep) = (p)) /\ ((exists pfa_offset_left_functional_secondtracestepsstepmultiplyresultcongruence pfa_offset_right_functional_secondtracestepsstepmultiplyresultcongruence. ((pfh_before_functional_secondtracestepsstep) * (a)) + (p) * pfa_offset_left_functional_secondtracestepsstepmultiplyresultcongruence = (pfh_product_functional_secondtracestepsstep) + (p) * pfa_offset_right_functional_secondtracestepsstepmultiplyresultcongruence))))))))) /\ ((((exists pfa_gap_functional_secondtracestepsstepaddleft. pfa_gap_functional_secondtracestepsstepaddleft + S (pfh_product_functional_secondtracestepsstep) = (p)) /\ (((exists pfa_gap_functional_secondtracestepsstepaddright. pfa_gap_functional_secondtracestepsstepaddright + S (pfh_coefficient_functional_secondtracestepsstep) = (p)) /\ ((((exists pfa_gap_functional_secondtracestepsstepaddresultbound. pfa_gap_functional_secondtracestepsstepaddresultbound + S (pfh_after_functional_secondtracestepsstep) = (p)) /\ ((exists pfa_offset_left_functional_secondtracestepsstepaddresultcongruence pfa_offset_right_functional_secondtracestepsstepaddresultcongruence. ((pfh_product_functional_secondtracestepsstep) + (pfh_coefficient_functional_secondtracestepsstep)) + (p) * pfa_offset_left_functional_secondtracestepsstepaddresultcongruence = (pfh_after_functional_secondtracestepsstep) + (p) * pfa_offset_right_functional_secondtracestepsstepaddresultcongruence)))))))))))))))))))))))))) /\ ((forall ff_index_mcp_pfs_functional_secondquotient ff_source_mcp_pfs_functional_secondquotient ff_target_mcp_pfs_functional_secondquotient. (exists mcp_gap_pfs_functional_secondquotient_bound. mcp_gap_pfs_functional_secondquotient_bound + S (ff_index_mcp_pfs_functional_secondquotient) = (n)) -> (((exists fs_h_mcp_pfs_functional_secondquotient_source. fs_h_mcp_pfs_functional_secondquotient_source + S (ff_source_mcp_pfs_functional_secondquotient) = S ((S ((1) + (1) * ff_index_mcp_pfs_functional_secondquotient)) * pfs_history_scale_functional_second)) /\ exists fs_q_mcp_pfs_functional_secondquotient_source. pfs_history_code_functional_second = fs_q_mcp_pfs_functional_secondquotient_source * S ((S ((1) + (1) * ff_index_mcp_pfs_functional_secondquotient)) * pfs_history_scale_functional_second) + (ff_source_mcp_pfs_functional_secondquotient))) -> (((exists fs_h_mcp_pfs_functional_secondquotient_target. fs_h_mcp_pfs_functional_secondquotient_target + S (ff_target_mcp_pfs_functional_secondquotient) = S ((S (ff_index_mcp_pfs_functional_secondquotient)) * Qc)) /\ exists fs_q_mcp_pfs_functional_secondquotient_target. Qb = fs_q_mcp_pfs_functional_secondquotient_target * S ((S (ff_index_mcp_pfs_functional_secondquotient)) * Qc) + (ff_target_mcp_pfs_functional_secondquotient))) -> ff_target_mcp_pfs_functional_secondquotient = ff_source_mcp_pfs_functional_secondquotient)))) -> ((r=s) /\ ((forall mdr_i_pfp_functional_values mdr_a_pfp_functional_values. (exists mdr_gap_pfp_functional_valuesb. mdr_gap_pfp_functional_valuesb + S (mdr_i_pfp_functional_values) = (n)) -> (((exists ff_h_mdr_pfp_functional_valueso. ff_h_mdr_pfp_functional_valueso + S (mdr_a_pfp_functional_values) = S ((S (mdr_i_pfp_functional_values)) * qc)) /\ exists ff_q_mdr_pfp_functional_valueso. qb = ff_q_mdr_pfp_functional_valueso * S ((S (mdr_i_pfp_functional_values)) * qc) + (mdr_a_pfp_functional_values))) -> (((exists ff_h_mdr_pfp_functional_valuesn. ff_h_mdr_pfp_functional_valuesn + S (mdr_a_pfp_functional_values) = S ((S (mdr_i_pfp_functional_values)) * Qc)) /\ exists ff_q_mdr_pfp_functional_valuesn. Qb = ff_q_mdr_pfp_functional_valuesn * S ((S (mdr_i_pfp_functional_values)) * Qc) + (mdr_a_pfp_functional_values))))))Constructive proof overview
Generated structural guide
The remainder and all decoded quotient values are unique, independently of either beta encoding or the chosen execution history.
The unchanged tactic script uses 4 declared prerequisites and contains 95 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
prime_field_polynomial_horner_functional Alpha theorem; checked-use authorized PQ0048 prime_field_polynomial_synthetic_remainder_execution beta_at_exists Stable theorem; checked-use authorized PQ0049 prime_field_polynomial_synthetic_quotient_entryDirect 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–10
02Fix variables and assumptionsL11–14
03Separate the logical casesL15–15
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L15
split
04Use earlier factsL16–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L16
specialize prime_field_polynomial_horner_functional (p) - L17
specialize prime_field_polynomial_horner_functional (b) - L18
specialize prime_field_polynomial_horner_functional (c) - L19
specialize prime_field_polynomial_horner_functional (a) - L20
specialize prime_field_polynomial_horner_functional (S n) - L21
specialize prime_field_polynomial_horner_functional (r) - L22
specialize prime_field_polynomial_horner_functional (s) - L23
apply prime_field_polynomial_horner_functional - L24
exact hp - L25
specialize prime_field_polynomial_synthetic_remainder_execution (p)
05Use earlier factsL26–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L26
specialize prime_field_polynomial_synthetic_remainder_execution (b) - L27
specialize prime_field_polynomial_synthetic_remainder_execution (c) - L28
specialize prime_field_polynomial_synthetic_remainder_execution (a) - L29
specialize prime_field_polynomial_synthetic_remainder_execution (n) - L30
specialize prime_field_polynomial_synthetic_remainder_execution (qb) - L31
specialize prime_field_polynomial_synthetic_remainder_execution (qc) - L32
specialize prime_field_polynomial_synthetic_remainder_execution (r) - L33
apply prime_field_polynomial_synthetic_remainder_execution - L34
exact hq - L35
specialize prime_field_polynomial_synthetic_remainder_execution (p)
06Use earlier factsL36–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
specialize prime_field_polynomial_synthetic_remainder_execution (b) - L37
specialize prime_field_polynomial_synthetic_remainder_execution (c) - L38
specialize prime_field_polynomial_synthetic_remainder_execution (a) - L39
specialize prime_field_polynomial_synthetic_remainder_execution (n) - L40
specialize prime_field_polynomial_synthetic_remainder_execution (Qb) - L41
specialize prime_field_polynomial_synthetic_remainder_execution (Qc) - L42
specialize prime_field_polynomial_synthetic_remainder_execution (s) - L43
apply prime_field_polynomial_synthetic_remainder_execution - L44
exact hQ
07Fix variables and assumptionsL45–48
08Establish htL49–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L49
have ht : exists z. (((exists ff_h_pfp_functional_target. ff_h_pfp_functional_target + S (z) = S ((S (i)) * Qc)) /\ exists ff_q_pfp_functional_target. Qb = ff_q_pfp_functional_target * S ((S (i)) * Qc) + (z))) - L50
specialize beta_at_exists (Qb) - L51
specialize beta_at_exists (Qc) - L52
specialize beta_at_exists (i) - L53
apply beta_at_exists
09Separate the logical casesL54–54
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L54
cases ht
10Establish heqL55–64
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial horner functional.
- L55
have heq : x=h - L56
specialize prime_field_polynomial_horner_functional (p) - L57
specialize prime_field_polynomial_horner_functional (b) - L58
specialize prime_field_polynomial_horner_functional (c) - L59
specialize prime_field_polynomial_horner_functional (a) - L60
specialize prime_field_polynomial_horner_functional (S i) - L61
specialize prime_field_polynomial_horner_functional (x) - L62
specialize prime_field_polynomial_horner_functional (h) - L63
apply prime_field_polynomial_horner_functional - L64
exact hp
11Use earlier factsL65–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L65
specialize prime_field_polynomial_synthetic_quotient_entry (p) - L66
specialize prime_field_polynomial_synthetic_quotient_entry (b) - L67
specialize prime_field_polynomial_synthetic_quotient_entry (c) - L68
specialize prime_field_polynomial_synthetic_quotient_entry (a) - L69
specialize prime_field_polynomial_synthetic_quotient_entry (n) - L70
specialize prime_field_polynomial_synthetic_quotient_entry (Qb) - L71
specialize prime_field_polynomial_synthetic_quotient_entry (Qc) - L72
specialize prime_field_polynomial_synthetic_quotient_entry (s) - L73
specialize prime_field_polynomial_synthetic_quotient_entry (i) - L74
specialize prime_field_polynomial_synthetic_quotient_entry (x)
12Use earlier factsL75–84
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L75
apply prime_field_polynomial_synthetic_quotient_entry - L76
exact hQ - L77
exact hi - L78
exact ht_witness - L79
specialize prime_field_polynomial_synthetic_quotient_entry (p) - L80
specialize prime_field_polynomial_synthetic_quotient_entry (b) - L81
specialize prime_field_polynomial_synthetic_quotient_entry (c) - L82
specialize prime_field_polynomial_synthetic_quotient_entry (a) - L83
specialize prime_field_polynomial_synthetic_quotient_entry (n) - L84
specialize prime_field_polynomial_synthetic_quotient_entry (qb)
13Use earlier factsL85–92
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L85
specialize prime_field_polynomial_synthetic_quotient_entry (qc) - L86
specialize prime_field_polynomial_synthetic_quotient_entry (r) - L87
specialize prime_field_polynomial_synthetic_quotient_entry (i) - L88
specialize prime_field_polynomial_synthetic_quotient_entry (h) - L89
apply prime_field_polynomial_synthetic_quotient_entry - L90
exact hq - L91
exact hi - L92
exact hh
14Calculate and transport equalitiesL93–94
15Use earlier factsL95–95
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L95
exact ht_witness
Original exact command ledger · 95 lines
- 0001
intro p - 0002
intro b - 0003
intro c - 0004
intro a - 0005
intro n - 0006
intro qb - 0007
intro qc - 0008
intro r - 0009
intro Qb - 0010
intro Qc - 0011
intro s - 0012
intro hp - 0013
intro hq - 0014
intro hQ - 0015
split - 0016
specialize prime_field_polynomial_horner_functional (p) - 0017
specialize prime_field_polynomial_horner_functional (b) - 0018
specialize prime_field_polynomial_horner_functional (c) - 0019
specialize prime_field_polynomial_horner_functional (a) - 0020
specialize prime_field_polynomial_horner_functional (S n) - 0021
specialize prime_field_polynomial_horner_functional (r) - 0022
specialize prime_field_polynomial_horner_functional (s) - 0023
apply prime_field_polynomial_horner_functional - 0024
exact hp - 0025
specialize prime_field_polynomial_synthetic_remainder_execution (p) - 0026
specialize prime_field_polynomial_synthetic_remainder_execution (b) - 0027
specialize prime_field_polynomial_synthetic_remainder_execution (c) - 0028
specialize prime_field_polynomial_synthetic_remainder_execution (a) - 0029
specialize prime_field_polynomial_synthetic_remainder_execution (n) - 0030
specialize prime_field_polynomial_synthetic_remainder_execution (qb) - 0031
specialize prime_field_polynomial_synthetic_remainder_execution (qc) - 0032
specialize prime_field_polynomial_synthetic_remainder_execution (r) - 0033
apply prime_field_polynomial_synthetic_remainder_execution - 0034
exact hq - 0035
specialize prime_field_polynomial_synthetic_remainder_execution (p) - 0036
specialize prime_field_polynomial_synthetic_remainder_execution (b) - 0037
specialize prime_field_polynomial_synthetic_remainder_execution (c) - 0038
specialize prime_field_polynomial_synthetic_remainder_execution (a) - 0039
specialize prime_field_polynomial_synthetic_remainder_execution (n) - 0040
specialize prime_field_polynomial_synthetic_remainder_execution (Qb) - 0041
specialize prime_field_polynomial_synthetic_remainder_execution (Qc) - 0042
specialize prime_field_polynomial_synthetic_remainder_execution (s) - 0043
apply prime_field_polynomial_synthetic_remainder_execution - 0044
exact hQ - 0045
intro i - 0046
intro h - 0047
intro hi - 0048
intro hh - 0049
have ht : exists z. (((exists ff_h_pfp_functional_target. ff_h_pfp_functional_target + S (z) = S ((S (i)) * Qc)) /\ exists ff_q_pfp_functional_target. Qb = ff_q_pfp_functional_target * S ((S (i)) * Qc) + (z))) - 0050
specialize beta_at_exists (Qb) - 0051
specialize beta_at_exists (Qc) - 0052
specialize beta_at_exists (i) - 0053
apply beta_at_exists - 0054
cases ht - 0055
have heq : x=h - 0056
specialize prime_field_polynomial_horner_functional (p) - 0057
specialize prime_field_polynomial_horner_functional (b) - 0058
specialize prime_field_polynomial_horner_functional (c) - 0059
specialize prime_field_polynomial_horner_functional (a) - 0060
specialize prime_field_polynomial_horner_functional (S i) - 0061
specialize prime_field_polynomial_horner_functional (x) - 0062
specialize prime_field_polynomial_horner_functional (h) - 0063
apply prime_field_polynomial_horner_functional - 0064
exact hp - 0065
specialize prime_field_polynomial_synthetic_quotient_entry (p) - 0066
specialize prime_field_polynomial_synthetic_quotient_entry (b) - 0067
specialize prime_field_polynomial_synthetic_quotient_entry (c) - 0068
specialize prime_field_polynomial_synthetic_quotient_entry (a) - 0069
specialize prime_field_polynomial_synthetic_quotient_entry (n) - 0070
specialize prime_field_polynomial_synthetic_quotient_entry (Qb) - 0071
specialize prime_field_polynomial_synthetic_quotient_entry (Qc) - 0072
specialize prime_field_polynomial_synthetic_quotient_entry (s) - 0073
specialize prime_field_polynomial_synthetic_quotient_entry (i) - 0074
specialize prime_field_polynomial_synthetic_quotient_entry (x) - 0075
apply prime_field_polynomial_synthetic_quotient_entry - 0076
exact hQ - 0077
exact hi - 0078
exact ht_witness - 0079
specialize prime_field_polynomial_synthetic_quotient_entry (p) - 0080
specialize prime_field_polynomial_synthetic_quotient_entry (b) - 0081
specialize prime_field_polynomial_synthetic_quotient_entry (c) - 0082
specialize prime_field_polynomial_synthetic_quotient_entry (a) - 0083
specialize prime_field_polynomial_synthetic_quotient_entry (n) - 0084
specialize prime_field_polynomial_synthetic_quotient_entry (qb) - 0085
specialize prime_field_polynomial_synthetic_quotient_entry (qc) - 0086
specialize prime_field_polynomial_synthetic_quotient_entry (r) - 0087
specialize prime_field_polynomial_synthetic_quotient_entry (i) - 0088
specialize prime_field_polynomial_synthetic_quotient_entry (h) - 0089
apply prime_field_polynomial_synthetic_quotient_entry - 0090
exact hq - 0091
exact hi - 0092
exact hh - 0093
rewrite heq at ht_witness - 0094
rewrite heq at ht_witness - 0095
exact ht_witness