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 L bb bc k i a r. (~((p) = 1) /\ forall pfa_factor_left_constant_coefficient_prime pfa_factor_right_constant_coefficient_prime. (p) = pfa_factor_left_constant_coefficient_prime * pfa_factor_right_constant_coefficient_prime -> pfa_factor_left_constant_coefficient_prime = 1 \/ pfa_factor_right_constant_coefficient_prime = 1) -> (forall fom_index_pfp_constant_coefficient_A. (exists fom_gap_pfp_constant_coefficient_A_index_bound. fom_gap_pfp_constant_coefficient_A_index_bound + S (fom_index_pfp_constant_coefficient_A) = L) -> exists fom_value_pfp_constant_coefficient_A. ((((exists fom_beta_height_pfp_constant_coefficient_A_entry. fom_beta_height_pfp_constant_coefficient_A_entry + S (fom_value_pfp_constant_coefficient_A) = S ((S (fom_index_pfp_constant_coefficient_A)) * ac)) /\ exists fom_beta_quotient_pfp_constant_coefficient_A_entry. ab = fom_beta_quotient_pfp_constant_coefficient_A_entry * S ((S (fom_index_pfp_constant_coefficient_A)) * ac) + (fom_value_pfp_constant_coefficient_A))) /\ (exists fom_gap_pfp_constant_coefficient_A_value_bound. fom_gap_pfp_constant_coefficient_A_value_bound + S (fom_value_pfp_constant_coefficient_A) = p))) -> (forall fom_index_pfp_constant_coefficient_B. (exists fom_gap_pfp_constant_coefficient_B_index_bound. fom_gap_pfp_constant_coefficient_B_index_bound + S (fom_index_pfp_constant_coefficient_B) = 1) -> exists fom_value_pfp_constant_coefficient_B. ((((exists fom_beta_height_pfp_constant_coefficient_B_entry. fom_beta_height_pfp_constant_coefficient_B_entry + S (fom_value_pfp_constant_coefficient_B) = S ((S (fom_index_pfp_constant_coefficient_B)) * bc)) /\ exists fom_beta_quotient_pfp_constant_coefficient_B_entry. bb = fom_beta_quotient_pfp_constant_coefficient_B_entry * S ((S (fom_index_pfp_constant_coefficient_B)) * bc) + (fom_value_pfp_constant_coefficient_B))) /\ (exists fom_gap_pfp_constant_coefficient_B_value_bound. fom_gap_pfp_constant_coefficient_B_value_bound + S (fom_value_pfp_constant_coefficient_B) = p))) -> (((exists ff_h_pfp_constant_coefficient_constant. ff_h_pfp_constant_coefficient_constant + S (k) = S ((S (0)) * bc)) /\ exists ff_q_pfp_constant_coefficient_constant. bb = ff_q_pfp_constant_coefficient_constant * S ((S (0)) * bc) + (k))) -> (exists pfa_gap_constant_coefficient_index. pfa_gap_constant_coefficient_index + S (i) = (L)) -> (((exists ff_h_pfp_constant_coefficient_entry. ff_h_pfp_constant_coefficient_entry + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_constant_coefficient_entry. ab = ff_q_pfp_constant_coefficient_entry * S ((S (i)) * ac) + (a))) -> (exists pfc_terms_code_constant_coefficient_actual pfc_terms_scale_constant_coefficient_actual pfc_natural_sum_constant_coefficient_actual. ((forall pfc_index_constant_coefficient_actualdiagonal. (exists pfa_gap_constant_coefficient_actualdiagonalbound. pfa_gap_constant_coefficient_actualdiagonalbound + S (pfc_index_constant_coefficient_actualdiagonal) = (S (i))) -> exists pfc_value_constant_coefficient_actualdiagonal. ((((exists ff_h_pfp_constant_coefficient_actualdiagonalentry. ff_h_pfp_constant_coefficient_actualdiagonalentry + S (pfc_value_constant_coefficient_actualdiagonal) = S ((S (pfc_index_constant_coefficient_actualdiagonal)) * pfc_terms_scale_constant_coefficient_actual)) /\ exists ff_q_pfp_constant_coefficient_actualdiagonalentry. pfc_terms_code_constant_coefficient_actual = ff_q_pfp_constant_coefficient_actualdiagonalentry * S ((S (pfc_index_constant_coefficient_actualdiagonal)) * pfc_terms_scale_constant_coefficient_actual) + (pfc_value_constant_coefficient_actualdiagonal))) /\ ((exists pfc_complement_constant_coefficient_actualdiagonalterm pfc_left_constant_coefficient_actualdiagonalterm pfc_right_constant_coefficient_actualdiagonalterm. (((pfc_index_constant_coefficient_actualdiagonal)+pfc_complement_constant_coefficient_actualdiagonalterm=(i)) /\ ((((((exists pfa_gap_constant_coefficient_actualdiagonaltermleftinside. pfa_gap_constant_coefficient_actualdiagonaltermleftinside + S (pfc_index_constant_coefficient_actualdiagonal) = (L)) /\ ((((exists ff_h_pfp_constant_coefficient_actualdiagonaltermleftentry. ff_h_pfp_constant_coefficient_actualdiagonaltermleftentry + S (pfc_left_constant_coefficient_actualdiagonalterm) = S ((S (pfc_index_constant_coefficient_actualdiagonal)) * ac)) /\ exists ff_q_pfp_constant_coefficient_actualdiagonaltermleftentry. ab = ff_q_pfp_constant_coefficient_actualdiagonaltermleftentry * S ((S (pfc_index_constant_coefficient_actualdiagonal)) * ac) + (pfc_left_constant_coefficient_actualdiagonalterm)))))) \/ (((exists pfc_gap_constant_coefficient_actualdiagonaltermleftoutside. pfc_gap_constant_coefficient_actualdiagonaltermleftoutside+(L)=(pfc_index_constant_coefficient_actualdiagonal)) /\ (((pfc_left_constant_coefficient_actualdiagonalterm)=0))))) /\ ((((((exists pfa_gap_constant_coefficient_actualdiagonaltermrightinside. pfa_gap_constant_coefficient_actualdiagonaltermrightinside + S (pfc_complement_constant_coefficient_actualdiagonalterm) = (1)) /\ ((((exists ff_h_pfp_constant_coefficient_actualdiagonaltermrightentry. ff_h_pfp_constant_coefficient_actualdiagonaltermrightentry + S (pfc_right_constant_coefficient_actualdiagonalterm) = S ((S (pfc_complement_constant_coefficient_actualdiagonalterm)) * bc)) /\ exists ff_q_pfp_constant_coefficient_actualdiagonaltermrightentry. bb = ff_q_pfp_constant_coefficient_actualdiagonaltermrightentry * S ((S (pfc_complement_constant_coefficient_actualdiagonalterm)) * bc) + (pfc_right_constant_coefficient_actualdiagonalterm)))))) \/ (((exists pfc_gap_constant_coefficient_actualdiagonaltermrightoutside. pfc_gap_constant_coefficient_actualdiagonaltermrightoutside+(1)=(pfc_complement_constant_coefficient_actualdiagonalterm)) /\ (((pfc_right_constant_coefficient_actualdiagonalterm)=0))))) /\ (((pfc_value_constant_coefficient_actualdiagonal)=pfc_left_constant_coefficient_actualdiagonalterm*pfc_right_constant_coefficient_actualdiagonalterm))))))))))) /\ (((exists fs_u_pfc_constant_coefficient_actualsum fs_v_pfc_constant_coefficient_actualsum. ((((exists fs_h_pfc_constant_coefficient_actualsum_body_start. fs_h_pfc_constant_coefficient_actualsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_constant_coefficient_actualsum)) /\ exists fs_q_pfc_constant_coefficient_actualsum_body_start. fs_u_pfc_constant_coefficient_actualsum = fs_q_pfc_constant_coefficient_actualsum_body_start * S ((S (0)) * fs_v_pfc_constant_coefficient_actualsum) + (0))) /\ ((((exists fs_h_pfc_constant_coefficient_actualsum_body_terminal. fs_h_pfc_constant_coefficient_actualsum_body_terminal + S (pfc_natural_sum_constant_coefficient_actual) = S ((S (S (i))) * fs_v_pfc_constant_coefficient_actualsum)) /\ exists fs_q_pfc_constant_coefficient_actualsum_body_terminal. fs_u_pfc_constant_coefficient_actualsum = fs_q_pfc_constant_coefficient_actualsum_body_terminal * S ((S (S (i))) * fs_v_pfc_constant_coefficient_actualsum) + (pfc_natural_sum_constant_coefficient_actual))) /\ forall fs_i_pfc_constant_coefficient_actualsum_body_steps. (exists fs_lt_pfc_constant_coefficient_actualsum_body_steps_bound. fs_lt_pfc_constant_coefficient_actualsum_body_steps_bound + S fs_i_pfc_constant_coefficient_actualsum_body_steps = S (i)) -> exists fs_a_pfc_constant_coefficient_actualsum_body_steps fs_r_pfc_constant_coefficient_actualsum_body_steps fs_s_pfc_constant_coefficient_actualsum_body_steps. ((((exists fs_h_pfc_constant_coefficient_actualsum_body_steps_summand. fs_h_pfc_constant_coefficient_actualsum_body_steps_summand + S (fs_a_pfc_constant_coefficient_actualsum_body_steps) = S ((S (fs_i_pfc_constant_coefficient_actualsum_body_steps)) * pfc_terms_scale_constant_coefficient_actual)) /\ exists fs_q_pfc_constant_coefficient_actualsum_body_steps_summand. pfc_terms_code_constant_coefficient_actual = fs_q_pfc_constant_coefficient_actualsum_body_steps_summand * S ((S (fs_i_pfc_constant_coefficient_actualsum_body_steps)) * pfc_terms_scale_constant_coefficient_actual) + (fs_a_pfc_constant_coefficient_actualsum_body_steps))) /\ ((((exists fs_h_pfc_constant_coefficient_actualsum_body_steps_partial. fs_h_pfc_constant_coefficient_actualsum_body_steps_partial + S (fs_r_pfc_constant_coefficient_actualsum_body_steps) = S ((S (fs_i_pfc_constant_coefficient_actualsum_body_steps)) * fs_v_pfc_constant_coefficient_actualsum)) /\ exists fs_q_pfc_constant_coefficient_actualsum_body_steps_partial. fs_u_pfc_constant_coefficient_actualsum = fs_q_pfc_constant_coefficient_actualsum_body_steps_partial * S ((S (fs_i_pfc_constant_coefficient_actualsum_body_steps)) * fs_v_pfc_constant_coefficient_actualsum) + (fs_r_pfc_constant_coefficient_actualsum_body_steps))) /\ ((((exists fs_h_pfc_constant_coefficient_actualsum_body_steps_successor. fs_h_pfc_constant_coefficient_actualsum_body_steps_successor + S (fs_s_pfc_constant_coefficient_actualsum_body_steps) = S ((S (S fs_i_pfc_constant_coefficient_actualsum_body_steps)) * fs_v_pfc_constant_coefficient_actualsum)) /\ exists fs_q_pfc_constant_coefficient_actualsum_body_steps_successor. fs_u_pfc_constant_coefficient_actualsum = fs_q_pfc_constant_coefficient_actualsum_body_steps_successor * S ((S (S fs_i_pfc_constant_coefficient_actualsum_body_steps)) * fs_v_pfc_constant_coefficient_actualsum) + (fs_s_pfc_constant_coefficient_actualsum_body_steps))) /\ fs_s_pfc_constant_coefficient_actualsum_body_steps = fs_r_pfc_constant_coefficient_actualsum_body_steps + fs_a_pfc_constant_coefficient_actualsum_body_steps)))))) /\ ((((exists pfa_gap_constant_coefficient_actualresiduebound. pfa_gap_constant_coefficient_actualresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_constant_coefficient_actualresiduecongruence pfa_offset_right_constant_coefficient_actualresiduecongruence. (pfc_natural_sum_constant_coefficient_actual) + (p) * pfa_offset_left_constant_coefficient_actualresiduecongruence = (r) + (p) * pfa_offset_right_constant_coefficient_actualresiduecongruence))))))))) -> (((exists pfa_gap_constant_coefficient_resultleft. pfa_gap_constant_coefficient_resultleft + S (k) = (p)) /\ (((exists pfa_gap_constant_coefficient_resultright. pfa_gap_constant_coefficient_resultright + S (a) = (p)) /\ ((((exists pfa_gap_constant_coefficient_resultresultbound. pfa_gap_constant_coefficient_resultresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_constant_coefficient_resultresultcongruence pfa_offset_right_constant_coefficient_resultresultcongruence. ((k) * (a)) + (p) * pfa_offset_left_constant_coefficient_resultresultcongruence = (r) + (p) * pfa_offset_right_constant_coefficient_resultresultcongruence)))))))))Constructive proof overview
Generated structural guide
The actual antidiagonal coefficient with a length-one right factor is its actual scalar product, by triangular append and proved vanished prior support.
The unchanged tactic script uses 12 declared prerequisites and contains 158 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
prime_nonzero Alpha theorem; checked-use authorized prime_field_convolution_coefficient_exists Alpha theorem; checked-use authorized prime_field_convolution_coefficient_zero_past_support Alpha theorem; checked-use authorized zero_add Alpha theorem; checked-use authorized PX0003 prime_field_convolution_coefficient_prefix_transport le_refl Alpha theorem; checked-use authorized prime_field_multiply_exists Alpha theorem; checked-use authorized matrix_rank_bounded_prefix_value Alpha theorem; checked-use authorized PX0008 prime_field_convolution_coefficient_append prime_field_add_functional Alpha theorem; checked-use authorized prime_field_add_zero_left Alpha theorem; checked-use authorized prime_field_multiply_commutative 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–10
02Fix variables and assumptionsL11–17
03Establish hp0L18–23
04Establish hcL24–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field convolution coefficient exists.
- L24
have hc : ∃ c. FpConvolutionCoefficient(p,ab,ac,i,bb,bc,1,i,c)Definitions: FpConvolutionCoefficient - L25
specialize prime_field_convolution_coefficient_exists (p) - L26
specialize prime_field_convolution_coefficient_exists (ab) - L27
specialize prime_field_convolution_coefficient_exists (ac) - L28
specialize prime_field_convolution_coefficient_exists (i) - L29
specialize prime_field_convolution_coefficient_exists (bb) - L30
specialize prime_field_convolution_coefficient_exists (bc) - L31
specialize prime_field_convolution_coefficient_exists (1) - L32
specialize prime_field_convolution_coefficient_exists (i) - L33
apply prime_field_convolution_coefficient_exists
05Use earlier factsL34–34
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
exact hp0
06Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
cases hc
07Establish hc0L36–45
Establish this local claim before using it. It is not an additional assumption.
- L36
have hc0 : x=0 - L37
specialize prime_field_convolution_coefficient_zero_past_support (p) - L38
specialize prime_field_convolution_coefficient_zero_past_support (ab) - L39
specialize prime_field_convolution_coefficient_zero_past_support (ac) - L40
specialize prime_field_convolution_coefficient_zero_past_support (i) - L41
specialize prime_field_convolution_coefficient_zero_past_support (bb) - L42
specialize prime_field_convolution_coefficient_zero_past_support (bc) - L43
specialize prime_field_convolution_coefficient_zero_past_support (1) - L44
specialize prime_field_convolution_coefficient_zero_past_support (i) - L45
specialize prime_field_convolution_coefficient_zero_past_support (x)
08Use earlier factsL46–47
09Construct an explicit witnessL48–48
Supply the displayed value, then prove that it has the required property.
- L48
exists 0
10Calculate and transport equalitiesL49–49
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L49
simp [zero_add]
11Use earlier factsL50–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L50
exact hc_witness
12Establish hshortL51–60
Establish this local claim before using it. It is not an additional assumption.
- L51
have hshort : FpConvolutionCoefficient(p,ab,ac,S i,bb,bc,1,i,r)Definitions: FpConvolutionCoefficient - L52
specialize prime_field_convolution_coefficient_prefix_transport (p) - L53
specialize prime_field_convolution_coefficient_prefix_transport (ab) - L54
specialize prime_field_convolution_coefficient_prefix_transport (ac) - L55
specialize prime_field_convolution_coefficient_prefix_transport (L) - L56
specialize prime_field_convolution_coefficient_prefix_transport (ab) - L57
specialize prime_field_convolution_coefficient_prefix_transport (ac) - L58
specialize prime_field_convolution_coefficient_prefix_transport (S i) - L59
specialize prime_field_convolution_coefficient_prefix_transport (bb) - L60
specialize prime_field_convolution_coefficient_prefix_transport (bc)
13Use earlier factsL61–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L61
specialize prime_field_convolution_coefficient_prefix_transport (1) - L62
specialize prime_field_convolution_coefficient_prefix_transport (S i) - L63
specialize prime_field_convolution_coefficient_prefix_transport (i) - L64
specialize prime_field_convolution_coefficient_prefix_transport (r) - L65
apply prime_field_convolution_coefficient_prefix_transport - L66
exact hi - L67
specialize le_refl (S i) - L68
apply le_refl
14Fix variables and assumptionsL69–72
15Use earlier factsL73–76
16Establish hmL77–86
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field multiply exists.
- L77
have hm : ∃ z. FpMul(p,a,k,z)Definitions: FpMul - L78
specialize prime_field_multiply_exists (p) - L79
specialize prime_field_multiply_exists (a) - L80
specialize prime_field_multiply_exists (k) - L81
apply prime_field_multiply_exists - L82
exact hp - L83
specialize matrix_rank_bounded_prefix_value (ab) - L84
specialize matrix_rank_bounded_prefix_value (ac) - L85
specialize matrix_rank_bounded_prefix_value (L) - L86
specialize matrix_rank_bounded_prefix_value (p)
17Use earlier factsL87–96
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L87
specialize matrix_rank_bounded_prefix_value (i) - L88
specialize matrix_rank_bounded_prefix_value (a) - L89
apply matrix_rank_bounded_prefix_value - L90
exact hA - L91
exact hi - L92
exact ha - L93
specialize matrix_rank_bounded_prefix_value (bb) - L94
specialize matrix_rank_bounded_prefix_value (bc) - L95
specialize matrix_rank_bounded_prefix_value (1) - L96
specialize matrix_rank_bounded_prefix_value (p)
18Use earlier factsL97–100
19Construct an explicit witnessL101–101
Supply the displayed value, then prove that it has the required property.
- L101
exists 0
20Calculate and transport equalitiesL102–102
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L102
simp [zero_add]
21Use earlier factsL103–103
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L103
exact hk
22Separate the logical casesL104–104
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L104
cases hm
23Establish hsL105–114
Establish this local claim before using it. It is not an additional assumption.
- L105
have hs : ((exists pfa_gap_constant_actual_sumleft. pfa_gap_constant_actual_sumleft + S (x) = (p)) /\ (((exists pfa_gap_constant_actual_sumright. pfa_gap_constant_actual_sumright + S (x1) = (p)) /\ ((((exists pfa_gap_constant_actual_sumresultbound. pfa_gap_constant_actual_sumresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_constant_actual_sumresultcongruence pfa_offset_right_constant_actual_sumresultcongruence. ((x) + (x1)) + (p) * pfa_offset_left_constant_actual_sumresultcongruence = (r) + (p) * pfa_offset_right_constant_actual_sumresultcongruence)))))))) - L106
specialize prime_field_convolution_coefficient_append (p) - L107
specialize prime_field_convolution_coefficient_append (ab) - L108
specialize prime_field_convolution_coefficient_append (ac) - L109
specialize prime_field_convolution_coefficient_append (ab) - L110
specialize prime_field_convolution_coefficient_append (ac) - L111
specialize prime_field_convolution_coefficient_append (bb) - L112
specialize prime_field_convolution_coefficient_append (bc) - L113
specialize prime_field_convolution_coefficient_append (0) - L114
specialize prime_field_convolution_coefficient_append (i)
24Use earlier factsL115–120
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L115
specialize prime_field_convolution_coefficient_append (a) - L116
specialize prime_field_convolution_coefficient_append (k) - L117
specialize prime_field_convolution_coefficient_append (x) - L118
specialize prime_field_convolution_coefficient_append (x1) - L119
specialize prime_field_convolution_coefficient_append (r) - L120
apply prime_field_convolution_coefficient_append
25Fix variables and assumptionsL121–124
26Use earlier factsL125–130
27Calculate and transport equalitiesL131–132
28Establish heqL133–142
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field add functional.
- L133
have heq : r=x1 - L134
specialize prime_field_add_functional (p) - L135
specialize prime_field_add_functional (0) - L136
specialize prime_field_add_functional (x1) - L137
specialize prime_field_add_functional (r) - L138
specialize prime_field_add_functional (x1) - L139
apply prime_field_add_functional - L140
exact hs - L141
specialize prime_field_add_zero_left (p) - L142
specialize prime_field_add_zero_left (x1)
29Use earlier factsL143–144
30Establish hmcL145–146
Establish this local claim before using it. It is not an additional assumption.
- L145
have hmc : ((exists pfa_gap_constant_product_copyleft. pfa_gap_constant_product_copyleft + S (a) = (p)) /\ (((exists pfa_gap_constant_product_copyright. pfa_gap_constant_product_copyright + S (k) = (p)) /\ ((((exists pfa_gap_constant_product_copyresultbound. pfa_gap_constant_product_copyresultbound + S (x1) = (p)) /\ ((exists pfa_offset_left_constant_product_copyresultcongruence pfa_offset_right_constant_product_copyresultcongruence. ((a) * (k)) + (p) * pfa_offset_left_constant_product_copyresultcongruence = (x1) + (p) * pfa_offset_right_constant_product_copyresultcongruence)))))))) - L146
exact hm_witness
31Separate the logical casesL147–149
32Use earlier factsL150–150
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L150
exact hmc_right_right_left
33Calculate and transport equalitiesL151–152
34Use earlier factsL153–158
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 158 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro L - 0005
intro bb - 0006
intro bc - 0007
intro k - 0008
intro i - 0009
intro a - 0010
intro r - 0011
intro hp - 0012
intro hA - 0013
intro hB - 0014
intro hk - 0015
intro hi - 0016
intro ha - 0017
intro hr - 0018
have hp0 : ~(p=0) - 0019
intro hpzero - 0020
specialize prime_nonzero (p) - 0021
apply prime_nonzero - 0022
exact hp - 0023
exact hpzero - 0024
have hc : exists c. (exists pfc_terms_code_constant_old_coefficient pfc_terms_scale_constant_old_coefficient pfc_natural_sum_constant_old_coefficient. ((forall pfc_index_constant_old_coefficientdiagonal. (exists pfa_gap_constant_old_coefficientdiagonalbound. pfa_gap_constant_old_coefficientdiagonalbound + S (pfc_index_constant_old_coefficientdiagonal) = (S (i))) -> exists pfc_value_constant_old_coefficientdiagonal. ((((exists ff_h_pfp_constant_old_coefficientdiagonalentry. ff_h_pfp_constant_old_coefficientdiagonalentry + S (pfc_value_constant_old_coefficientdiagonal) = S ((S (pfc_index_constant_old_coefficientdiagonal)) * pfc_terms_scale_constant_old_coefficient)) /\ exists ff_q_pfp_constant_old_coefficientdiagonalentry. pfc_terms_code_constant_old_coefficient = ff_q_pfp_constant_old_coefficientdiagonalentry * S ((S (pfc_index_constant_old_coefficientdiagonal)) * pfc_terms_scale_constant_old_coefficient) + (pfc_value_constant_old_coefficientdiagonal))) /\ ((exists pfc_complement_constant_old_coefficientdiagonalterm pfc_left_constant_old_coefficientdiagonalterm pfc_right_constant_old_coefficientdiagonalterm. (((pfc_index_constant_old_coefficientdiagonal)+pfc_complement_constant_old_coefficientdiagonalterm=(i)) /\ ((((((exists pfa_gap_constant_old_coefficientdiagonaltermleftinside. pfa_gap_constant_old_coefficientdiagonaltermleftinside + S (pfc_index_constant_old_coefficientdiagonal) = (i)) /\ ((((exists ff_h_pfp_constant_old_coefficientdiagonaltermleftentry. ff_h_pfp_constant_old_coefficientdiagonaltermleftentry + S (pfc_left_constant_old_coefficientdiagonalterm) = S ((S (pfc_index_constant_old_coefficientdiagonal)) * ac)) /\ exists ff_q_pfp_constant_old_coefficientdiagonaltermleftentry. ab = ff_q_pfp_constant_old_coefficientdiagonaltermleftentry * S ((S (pfc_index_constant_old_coefficientdiagonal)) * ac) + (pfc_left_constant_old_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_constant_old_coefficientdiagonaltermleftoutside. pfc_gap_constant_old_coefficientdiagonaltermleftoutside+(i)=(pfc_index_constant_old_coefficientdiagonal)) /\ (((pfc_left_constant_old_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_constant_old_coefficientdiagonaltermrightinside. pfa_gap_constant_old_coefficientdiagonaltermrightinside + S (pfc_complement_constant_old_coefficientdiagonalterm) = (1)) /\ ((((exists ff_h_pfp_constant_old_coefficientdiagonaltermrightentry. ff_h_pfp_constant_old_coefficientdiagonaltermrightentry + S (pfc_right_constant_old_coefficientdiagonalterm) = S ((S (pfc_complement_constant_old_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_constant_old_coefficientdiagonaltermrightentry. bb = ff_q_pfp_constant_old_coefficientdiagonaltermrightentry * S ((S (pfc_complement_constant_old_coefficientdiagonalterm)) * bc) + (pfc_right_constant_old_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_constant_old_coefficientdiagonaltermrightoutside. pfc_gap_constant_old_coefficientdiagonaltermrightoutside+(1)=(pfc_complement_constant_old_coefficientdiagonalterm)) /\ (((pfc_right_constant_old_coefficientdiagonalterm)=0))))) /\ (((pfc_value_constant_old_coefficientdiagonal)=pfc_left_constant_old_coefficientdiagonalterm*pfc_right_constant_old_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_constant_old_coefficientsum fs_v_pfc_constant_old_coefficientsum. ((((exists fs_h_pfc_constant_old_coefficientsum_body_start. fs_h_pfc_constant_old_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_constant_old_coefficientsum)) /\ exists fs_q_pfc_constant_old_coefficientsum_body_start. fs_u_pfc_constant_old_coefficientsum = fs_q_pfc_constant_old_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_constant_old_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_constant_old_coefficientsum_body_terminal. fs_h_pfc_constant_old_coefficientsum_body_terminal + S (pfc_natural_sum_constant_old_coefficient) = S ((S (S (i))) * fs_v_pfc_constant_old_coefficientsum)) /\ exists fs_q_pfc_constant_old_coefficientsum_body_terminal. fs_u_pfc_constant_old_coefficientsum = fs_q_pfc_constant_old_coefficientsum_body_terminal * S ((S (S (i))) * fs_v_pfc_constant_old_coefficientsum) + (pfc_natural_sum_constant_old_coefficient))) /\ forall fs_i_pfc_constant_old_coefficientsum_body_steps. (exists fs_lt_pfc_constant_old_coefficientsum_body_steps_bound. fs_lt_pfc_constant_old_coefficientsum_body_steps_bound + S fs_i_pfc_constant_old_coefficientsum_body_steps = S (i)) -> exists fs_a_pfc_constant_old_coefficientsum_body_steps fs_r_pfc_constant_old_coefficientsum_body_steps fs_s_pfc_constant_old_coefficientsum_body_steps. ((((exists fs_h_pfc_constant_old_coefficientsum_body_steps_summand. fs_h_pfc_constant_old_coefficientsum_body_steps_summand + S (fs_a_pfc_constant_old_coefficientsum_body_steps) = S ((S (fs_i_pfc_constant_old_coefficientsum_body_steps)) * pfc_terms_scale_constant_old_coefficient)) /\ exists fs_q_pfc_constant_old_coefficientsum_body_steps_summand. pfc_terms_code_constant_old_coefficient = fs_q_pfc_constant_old_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_constant_old_coefficientsum_body_steps)) * pfc_terms_scale_constant_old_coefficient) + (fs_a_pfc_constant_old_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_constant_old_coefficientsum_body_steps_partial. fs_h_pfc_constant_old_coefficientsum_body_steps_partial + S (fs_r_pfc_constant_old_coefficientsum_body_steps) = S ((S (fs_i_pfc_constant_old_coefficientsum_body_steps)) * fs_v_pfc_constant_old_coefficientsum)) /\ exists fs_q_pfc_constant_old_coefficientsum_body_steps_partial. fs_u_pfc_constant_old_coefficientsum = fs_q_pfc_constant_old_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_constant_old_coefficientsum_body_steps)) * fs_v_pfc_constant_old_coefficientsum) + (fs_r_pfc_constant_old_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_constant_old_coefficientsum_body_steps_successor. fs_h_pfc_constant_old_coefficientsum_body_steps_successor + S (fs_s_pfc_constant_old_coefficientsum_body_steps) = S ((S (S fs_i_pfc_constant_old_coefficientsum_body_steps)) * fs_v_pfc_constant_old_coefficientsum)) /\ exists fs_q_pfc_constant_old_coefficientsum_body_steps_successor. fs_u_pfc_constant_old_coefficientsum = fs_q_pfc_constant_old_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_constant_old_coefficientsum_body_steps)) * fs_v_pfc_constant_old_coefficientsum) + (fs_s_pfc_constant_old_coefficientsum_body_steps))) /\ fs_s_pfc_constant_old_coefficientsum_body_steps = fs_r_pfc_constant_old_coefficientsum_body_steps + fs_a_pfc_constant_old_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_constant_old_coefficientresiduebound. pfa_gap_constant_old_coefficientresiduebound + S (c) = (p)) /\ ((exists pfa_offset_left_constant_old_coefficientresiduecongruence pfa_offset_right_constant_old_coefficientresiduecongruence. (pfc_natural_sum_constant_old_coefficient) + (p) * pfa_offset_left_constant_old_coefficientresiduecongruence = (c) + (p) * pfa_offset_right_constant_old_coefficientresiduecongruence))))))))) - 0025
specialize prime_field_convolution_coefficient_exists (p) - 0026
specialize prime_field_convolution_coefficient_exists (ab) - 0027
specialize prime_field_convolution_coefficient_exists (ac) - 0028
specialize prime_field_convolution_coefficient_exists (i) - 0029
specialize prime_field_convolution_coefficient_exists (bb) - 0030
specialize prime_field_convolution_coefficient_exists (bc) - 0031
specialize prime_field_convolution_coefficient_exists (1) - 0032
specialize prime_field_convolution_coefficient_exists (i) - 0033
apply prime_field_convolution_coefficient_exists - 0034
exact hp0 - 0035
cases hc - 0036
have hc0 : x=0 - 0037
specialize prime_field_convolution_coefficient_zero_past_support (p) - 0038
specialize prime_field_convolution_coefficient_zero_past_support (ab) - 0039
specialize prime_field_convolution_coefficient_zero_past_support (ac) - 0040
specialize prime_field_convolution_coefficient_zero_past_support (i) - 0041
specialize prime_field_convolution_coefficient_zero_past_support (bb) - 0042
specialize prime_field_convolution_coefficient_zero_past_support (bc) - 0043
specialize prime_field_convolution_coefficient_zero_past_support (1) - 0044
specialize prime_field_convolution_coefficient_zero_past_support (i) - 0045
specialize prime_field_convolution_coefficient_zero_past_support (x) - 0046
apply prime_field_convolution_coefficient_zero_past_support - 0047
exact hp0 - 0048
exists 0 - 0049
simp [zero_add] - 0050
exact hc_witness - 0051
have hshort : exists pfc_terms_code_constant_short_coefficient pfc_terms_scale_constant_short_coefficient pfc_natural_sum_constant_short_coefficient. ((forall pfc_index_constant_short_coefficientdiagonal. (exists pfa_gap_constant_short_coefficientdiagonalbound. pfa_gap_constant_short_coefficientdiagonalbound + S (pfc_index_constant_short_coefficientdiagonal) = (S (i))) -> exists pfc_value_constant_short_coefficientdiagonal. ((((exists ff_h_pfp_constant_short_coefficientdiagonalentry. ff_h_pfp_constant_short_coefficientdiagonalentry + S (pfc_value_constant_short_coefficientdiagonal) = S ((S (pfc_index_constant_short_coefficientdiagonal)) * pfc_terms_scale_constant_short_coefficient)) /\ exists ff_q_pfp_constant_short_coefficientdiagonalentry. pfc_terms_code_constant_short_coefficient = ff_q_pfp_constant_short_coefficientdiagonalentry * S ((S (pfc_index_constant_short_coefficientdiagonal)) * pfc_terms_scale_constant_short_coefficient) + (pfc_value_constant_short_coefficientdiagonal))) /\ ((exists pfc_complement_constant_short_coefficientdiagonalterm pfc_left_constant_short_coefficientdiagonalterm pfc_right_constant_short_coefficientdiagonalterm. (((pfc_index_constant_short_coefficientdiagonal)+pfc_complement_constant_short_coefficientdiagonalterm=(i)) /\ ((((((exists pfa_gap_constant_short_coefficientdiagonaltermleftinside. pfa_gap_constant_short_coefficientdiagonaltermleftinside + S (pfc_index_constant_short_coefficientdiagonal) = (S i)) /\ ((((exists ff_h_pfp_constant_short_coefficientdiagonaltermleftentry. ff_h_pfp_constant_short_coefficientdiagonaltermleftentry + S (pfc_left_constant_short_coefficientdiagonalterm) = S ((S (pfc_index_constant_short_coefficientdiagonal)) * ac)) /\ exists ff_q_pfp_constant_short_coefficientdiagonaltermleftentry. ab = ff_q_pfp_constant_short_coefficientdiagonaltermleftentry * S ((S (pfc_index_constant_short_coefficientdiagonal)) * ac) + (pfc_left_constant_short_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_constant_short_coefficientdiagonaltermleftoutside. pfc_gap_constant_short_coefficientdiagonaltermleftoutside+(S i)=(pfc_index_constant_short_coefficientdiagonal)) /\ (((pfc_left_constant_short_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_constant_short_coefficientdiagonaltermrightinside. pfa_gap_constant_short_coefficientdiagonaltermrightinside + S (pfc_complement_constant_short_coefficientdiagonalterm) = (1)) /\ ((((exists ff_h_pfp_constant_short_coefficientdiagonaltermrightentry. ff_h_pfp_constant_short_coefficientdiagonaltermrightentry + S (pfc_right_constant_short_coefficientdiagonalterm) = S ((S (pfc_complement_constant_short_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_constant_short_coefficientdiagonaltermrightentry. bb = ff_q_pfp_constant_short_coefficientdiagonaltermrightentry * S ((S (pfc_complement_constant_short_coefficientdiagonalterm)) * bc) + (pfc_right_constant_short_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_constant_short_coefficientdiagonaltermrightoutside. pfc_gap_constant_short_coefficientdiagonaltermrightoutside+(1)=(pfc_complement_constant_short_coefficientdiagonalterm)) /\ (((pfc_right_constant_short_coefficientdiagonalterm)=0))))) /\ (((pfc_value_constant_short_coefficientdiagonal)=pfc_left_constant_short_coefficientdiagonalterm*pfc_right_constant_short_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_constant_short_coefficientsum fs_v_pfc_constant_short_coefficientsum. ((((exists fs_h_pfc_constant_short_coefficientsum_body_start. fs_h_pfc_constant_short_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_constant_short_coefficientsum)) /\ exists fs_q_pfc_constant_short_coefficientsum_body_start. fs_u_pfc_constant_short_coefficientsum = fs_q_pfc_constant_short_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_constant_short_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_constant_short_coefficientsum_body_terminal. fs_h_pfc_constant_short_coefficientsum_body_terminal + S (pfc_natural_sum_constant_short_coefficient) = S ((S (S (i))) * fs_v_pfc_constant_short_coefficientsum)) /\ exists fs_q_pfc_constant_short_coefficientsum_body_terminal. fs_u_pfc_constant_short_coefficientsum = fs_q_pfc_constant_short_coefficientsum_body_terminal * S ((S (S (i))) * fs_v_pfc_constant_short_coefficientsum) + (pfc_natural_sum_constant_short_coefficient))) /\ forall fs_i_pfc_constant_short_coefficientsum_body_steps. (exists fs_lt_pfc_constant_short_coefficientsum_body_steps_bound. fs_lt_pfc_constant_short_coefficientsum_body_steps_bound + S fs_i_pfc_constant_short_coefficientsum_body_steps = S (i)) -> exists fs_a_pfc_constant_short_coefficientsum_body_steps fs_r_pfc_constant_short_coefficientsum_body_steps fs_s_pfc_constant_short_coefficientsum_body_steps. ((((exists fs_h_pfc_constant_short_coefficientsum_body_steps_summand. fs_h_pfc_constant_short_coefficientsum_body_steps_summand + S (fs_a_pfc_constant_short_coefficientsum_body_steps) = S ((S (fs_i_pfc_constant_short_coefficientsum_body_steps)) * pfc_terms_scale_constant_short_coefficient)) /\ exists fs_q_pfc_constant_short_coefficientsum_body_steps_summand. pfc_terms_code_constant_short_coefficient = fs_q_pfc_constant_short_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_constant_short_coefficientsum_body_steps)) * pfc_terms_scale_constant_short_coefficient) + (fs_a_pfc_constant_short_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_constant_short_coefficientsum_body_steps_partial. fs_h_pfc_constant_short_coefficientsum_body_steps_partial + S (fs_r_pfc_constant_short_coefficientsum_body_steps) = S ((S (fs_i_pfc_constant_short_coefficientsum_body_steps)) * fs_v_pfc_constant_short_coefficientsum)) /\ exists fs_q_pfc_constant_short_coefficientsum_body_steps_partial. fs_u_pfc_constant_short_coefficientsum = fs_q_pfc_constant_short_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_constant_short_coefficientsum_body_steps)) * fs_v_pfc_constant_short_coefficientsum) + (fs_r_pfc_constant_short_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_constant_short_coefficientsum_body_steps_successor. fs_h_pfc_constant_short_coefficientsum_body_steps_successor + S (fs_s_pfc_constant_short_coefficientsum_body_steps) = S ((S (S fs_i_pfc_constant_short_coefficientsum_body_steps)) * fs_v_pfc_constant_short_coefficientsum)) /\ exists fs_q_pfc_constant_short_coefficientsum_body_steps_successor. fs_u_pfc_constant_short_coefficientsum = fs_q_pfc_constant_short_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_constant_short_coefficientsum_body_steps)) * fs_v_pfc_constant_short_coefficientsum) + (fs_s_pfc_constant_short_coefficientsum_body_steps))) /\ fs_s_pfc_constant_short_coefficientsum_body_steps = fs_r_pfc_constant_short_coefficientsum_body_steps + fs_a_pfc_constant_short_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_constant_short_coefficientresiduebound. pfa_gap_constant_short_coefficientresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_constant_short_coefficientresiduecongruence pfa_offset_right_constant_short_coefficientresiduecongruence. (pfc_natural_sum_constant_short_coefficient) + (p) * pfa_offset_left_constant_short_coefficientresiduecongruence = (r) + (p) * pfa_offset_right_constant_short_coefficientresiduecongruence)))))))) - 0052
specialize prime_field_convolution_coefficient_prefix_transport (p) - 0053
specialize prime_field_convolution_coefficient_prefix_transport (ab) - 0054
specialize prime_field_convolution_coefficient_prefix_transport (ac) - 0055
specialize prime_field_convolution_coefficient_prefix_transport (L) - 0056
specialize prime_field_convolution_coefficient_prefix_transport (ab) - 0057
specialize prime_field_convolution_coefficient_prefix_transport (ac) - 0058
specialize prime_field_convolution_coefficient_prefix_transport (S i) - 0059
specialize prime_field_convolution_coefficient_prefix_transport (bb) - 0060
specialize prime_field_convolution_coefficient_prefix_transport (bc) - 0061
specialize prime_field_convolution_coefficient_prefix_transport (1) - 0062
specialize prime_field_convolution_coefficient_prefix_transport (S i) - 0063
specialize prime_field_convolution_coefficient_prefix_transport (i) - 0064
specialize prime_field_convolution_coefficient_prefix_transport (r) - 0065
apply prime_field_convolution_coefficient_prefix_transport - 0066
exact hi - 0067
specialize le_refl (S i) - 0068
apply le_refl - 0069
intro j - 0070
intro z - 0071
intro hj - 0072
intro hz - 0073
exact hz - 0074
specialize le_refl (S i) - 0075
apply le_refl - 0076
exact hr - 0077
have hm : exists z. (((exists pfa_gap_constant_chosen_productleft. pfa_gap_constant_chosen_productleft + S (a) = (p)) /\ (((exists pfa_gap_constant_chosen_productright. pfa_gap_constant_chosen_productright + S (k) = (p)) /\ ((((exists pfa_gap_constant_chosen_productresultbound. pfa_gap_constant_chosen_productresultbound + S (z) = (p)) /\ ((exists pfa_offset_left_constant_chosen_productresultcongruence pfa_offset_right_constant_chosen_productresultcongruence. ((a) * (k)) + (p) * pfa_offset_left_constant_chosen_productresultcongruence = (z) + (p) * pfa_offset_right_constant_chosen_productresultcongruence))))))))) - 0078
specialize prime_field_multiply_exists (p) - 0079
specialize prime_field_multiply_exists (a) - 0080
specialize prime_field_multiply_exists (k) - 0081
apply prime_field_multiply_exists - 0082
exact hp - 0083
specialize matrix_rank_bounded_prefix_value (ab) - 0084
specialize matrix_rank_bounded_prefix_value (ac) - 0085
specialize matrix_rank_bounded_prefix_value (L) - 0086
specialize matrix_rank_bounded_prefix_value (p) - 0087
specialize matrix_rank_bounded_prefix_value (i) - 0088
specialize matrix_rank_bounded_prefix_value (a) - 0089
apply matrix_rank_bounded_prefix_value - 0090
exact hA - 0091
exact hi - 0092
exact ha - 0093
specialize matrix_rank_bounded_prefix_value (bb) - 0094
specialize matrix_rank_bounded_prefix_value (bc) - 0095
specialize matrix_rank_bounded_prefix_value (1) - 0096
specialize matrix_rank_bounded_prefix_value (p) - 0097
specialize matrix_rank_bounded_prefix_value (0) - 0098
specialize matrix_rank_bounded_prefix_value (k) - 0099
apply matrix_rank_bounded_prefix_value - 0100
exact hB - 0101
exists 0 - 0102
simp [zero_add] - 0103
exact hk - 0104
cases hm - 0105
have hs : ((exists pfa_gap_constant_actual_sumleft. pfa_gap_constant_actual_sumleft + S (x) = (p)) /\ (((exists pfa_gap_constant_actual_sumright. pfa_gap_constant_actual_sumright + S (x1) = (p)) /\ ((((exists pfa_gap_constant_actual_sumresultbound. pfa_gap_constant_actual_sumresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_constant_actual_sumresultcongruence pfa_offset_right_constant_actual_sumresultcongruence. ((x) + (x1)) + (p) * pfa_offset_left_constant_actual_sumresultcongruence = (r) + (p) * pfa_offset_right_constant_actual_sumresultcongruence)))))))) - 0106
specialize prime_field_convolution_coefficient_append (p) - 0107
specialize prime_field_convolution_coefficient_append (ab) - 0108
specialize prime_field_convolution_coefficient_append (ac) - 0109
specialize prime_field_convolution_coefficient_append (ab) - 0110
specialize prime_field_convolution_coefficient_append (ac) - 0111
specialize prime_field_convolution_coefficient_append (bb) - 0112
specialize prime_field_convolution_coefficient_append (bc) - 0113
specialize prime_field_convolution_coefficient_append (0) - 0114
specialize prime_field_convolution_coefficient_append (i) - 0115
specialize prime_field_convolution_coefficient_append (a) - 0116
specialize prime_field_convolution_coefficient_append (k) - 0117
specialize prime_field_convolution_coefficient_append (x) - 0118
specialize prime_field_convolution_coefficient_append (x1) - 0119
specialize prime_field_convolution_coefficient_append (r) - 0120
apply prime_field_convolution_coefficient_append - 0121
intro j - 0122
intro z - 0123
intro hj - 0124
intro hz - 0125
exact hz - 0126
exact ha - 0127
exact hk - 0128
exact hc_witness - 0129
exact hshort - 0130
exact hm_witness - 0131
rewrite hc0 at hs - 0132
rewrite hc0 at hs - 0133
have heq : r=x1 - 0134
specialize prime_field_add_functional (p) - 0135
specialize prime_field_add_functional (0) - 0136
specialize prime_field_add_functional (x1) - 0137
specialize prime_field_add_functional (r) - 0138
specialize prime_field_add_functional (x1) - 0139
apply prime_field_add_functional - 0140
exact hs - 0141
specialize prime_field_add_zero_left (p) - 0142
specialize prime_field_add_zero_left (x1) - 0143
apply prime_field_add_zero_left - 0144
exact hp - 0145
have hmc : ((exists pfa_gap_constant_product_copyleft. pfa_gap_constant_product_copyleft + S (a) = (p)) /\ (((exists pfa_gap_constant_product_copyright. pfa_gap_constant_product_copyright + S (k) = (p)) /\ ((((exists pfa_gap_constant_product_copyresultbound. pfa_gap_constant_product_copyresultbound + S (x1) = (p)) /\ ((exists pfa_offset_left_constant_product_copyresultcongruence pfa_offset_right_constant_product_copyresultcongruence. ((a) * (k)) + (p) * pfa_offset_left_constant_product_copyresultcongruence = (x1) + (p) * pfa_offset_right_constant_product_copyresultcongruence)))))))) - 0146
exact hm_witness - 0147
cases hmc - 0148
cases hmc_right - 0149
cases hmc_right_right - 0150
exact hmc_right_right_left - 0151
rewrite heq - 0152
rewrite heq - 0153
specialize prime_field_multiply_commutative (p) - 0154
specialize prime_field_multiply_commutative (a) - 0155
specialize prime_field_multiply_commutative (k) - 0156
specialize prime_field_multiply_commutative (x1) - 0157
apply prime_field_multiply_commutative - 0158
exact hm_witness