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 k ab ac bb bc cb cc L. (~((p) = 1) /\ forall pfa_factor_left_constant_scale_prime pfa_factor_right_constant_scale_prime. (p) = pfa_factor_left_constant_scale_prime * pfa_factor_right_constant_scale_prime -> pfa_factor_left_constant_scale_prime = 1 \/ pfa_factor_right_constant_scale_prime = 1) -> (((exists ff_h_pfp_constant_scale_value. ff_h_pfp_constant_scale_value + S (k) = S ((S (0)) * bc)) /\ exists ff_q_pfp_constant_scale_value. bb = ff_q_pfp_constant_scale_value * S ((S (0)) * bc) + (k))) -> (((forall fom_index_pfp_constant_scale_convolutionleft. (exists fom_gap_pfp_constant_scale_convolutionleft_index_bound. fom_gap_pfp_constant_scale_convolutionleft_index_bound + S (fom_index_pfp_constant_scale_convolutionleft) = L) -> exists fom_value_pfp_constant_scale_convolutionleft. ((((exists fom_beta_height_pfp_constant_scale_convolutionleft_entry. fom_beta_height_pfp_constant_scale_convolutionleft_entry + S (fom_value_pfp_constant_scale_convolutionleft) = S ((S (fom_index_pfp_constant_scale_convolutionleft)) * ac)) /\ exists fom_beta_quotient_pfp_constant_scale_convolutionleft_entry. ab = fom_beta_quotient_pfp_constant_scale_convolutionleft_entry * S ((S (fom_index_pfp_constant_scale_convolutionleft)) * ac) + (fom_value_pfp_constant_scale_convolutionleft))) /\ (exists fom_gap_pfp_constant_scale_convolutionleft_value_bound. fom_gap_pfp_constant_scale_convolutionleft_value_bound + S (fom_value_pfp_constant_scale_convolutionleft) = p))) /\ (((forall fom_index_pfp_constant_scale_convolutionright. (exists fom_gap_pfp_constant_scale_convolutionright_index_bound. fom_gap_pfp_constant_scale_convolutionright_index_bound + S (fom_index_pfp_constant_scale_convolutionright) = 1) -> exists fom_value_pfp_constant_scale_convolutionright. ((((exists fom_beta_height_pfp_constant_scale_convolutionright_entry. fom_beta_height_pfp_constant_scale_convolutionright_entry + S (fom_value_pfp_constant_scale_convolutionright) = S ((S (fom_index_pfp_constant_scale_convolutionright)) * bc)) /\ exists fom_beta_quotient_pfp_constant_scale_convolutionright_entry. bb = fom_beta_quotient_pfp_constant_scale_convolutionright_entry * S ((S (fom_index_pfp_constant_scale_convolutionright)) * bc) + (fom_value_pfp_constant_scale_convolutionright))) /\ (exists fom_gap_pfp_constant_scale_convolutionright_value_bound. fom_gap_pfp_constant_scale_convolutionright_value_bound + S (fom_value_pfp_constant_scale_convolutionright) = p))) /\ (((((((L)=0 \/ (1)=0) /\ (((L)=0)))) \/ (((~((L)=0)) /\ (((~((1)=0)) /\ (((L)+(1)=S (L)))))))) /\ ((forall pfc_index_constant_scale_convolutioncoefficients. (exists pfa_gap_constant_scale_convolutioncoefficientsbound. pfa_gap_constant_scale_convolutioncoefficientsbound + S (pfc_index_constant_scale_convolutioncoefficients) = (L)) -> exists pfc_value_constant_scale_convolutioncoefficients. ((((exists ff_h_pfp_constant_scale_convolutioncoefficientsentry. ff_h_pfp_constant_scale_convolutioncoefficientsentry + S (pfc_value_constant_scale_convolutioncoefficients) = S ((S (pfc_index_constant_scale_convolutioncoefficients)) * cc)) /\ exists ff_q_pfp_constant_scale_convolutioncoefficientsentry. cb = ff_q_pfp_constant_scale_convolutioncoefficientsentry * S ((S (pfc_index_constant_scale_convolutioncoefficients)) * cc) + (pfc_value_constant_scale_convolutioncoefficients))) /\ ((exists pfc_terms_code_constant_scale_convolutioncoefficientscoefficient pfc_terms_scale_constant_scale_convolutioncoefficientscoefficient pfc_natural_sum_constant_scale_convolutioncoefficientscoefficient. ((forall pfc_index_constant_scale_convolutioncoefficientscoefficientdiagonal. (exists pfa_gap_constant_scale_convolutioncoefficientscoefficientdiagonalbound. pfa_gap_constant_scale_convolutioncoefficientscoefficientdiagonalbound + S (pfc_index_constant_scale_convolutioncoefficientscoefficientdiagonal) = (S (pfc_index_constant_scale_convolutioncoefficients))) -> exists pfc_value_constant_scale_convolutioncoefficientscoefficientdiagonal. ((((exists ff_h_pfp_constant_scale_convolutioncoefficientscoefficientdiagonalentry. ff_h_pfp_constant_scale_convolutioncoefficientscoefficientdiagonalentry + S (pfc_value_constant_scale_convolutioncoefficientscoefficientdiagonal) = S ((S (pfc_index_constant_scale_convolutioncoefficientscoefficientdiagonal)) * pfc_terms_scale_constant_scale_convolutioncoefficientscoefficient)) /\ exists ff_q_pfp_constant_scale_convolutioncoefficientscoefficientdiagonalentry. pfc_terms_code_constant_scale_convolutioncoefficientscoefficient = ff_q_pfp_constant_scale_convolutioncoefficientscoefficientdiagonalentry * S ((S (pfc_index_constant_scale_convolutioncoefficientscoefficientdiagonal)) * pfc_terms_scale_constant_scale_convolutioncoefficientscoefficient) + (pfc_value_constant_scale_convolutioncoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_constant_scale_convolutioncoefficientscoefficientdiagonalterm pfc_left_constant_scale_convolutioncoefficientscoefficientdiagonalterm pfc_right_constant_scale_convolutioncoefficientscoefficientdiagonalterm. (((pfc_index_constant_scale_convolutioncoefficientscoefficientdiagonal)+pfc_complement_constant_scale_convolutioncoefficientscoefficientdiagonalterm=(pfc_index_constant_scale_convolutioncoefficients)) /\ ((((((exists pfa_gap_constant_scale_convolutioncoefficientscoefficientdiagonaltermleftinside. pfa_gap_constant_scale_convolutioncoefficientscoefficientdiagonaltermleftinside + S (pfc_index_constant_scale_convolutioncoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_constant_scale_convolutioncoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_constant_scale_convolutioncoefficientscoefficientdiagonaltermleftentry + S (pfc_left_constant_scale_convolutioncoefficientscoefficientdiagonalterm) = S ((S (pfc_index_constant_scale_convolutioncoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_constant_scale_convolutioncoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_constant_scale_convolutioncoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_constant_scale_convolutioncoefficientscoefficientdiagonal)) * ac) + (pfc_left_constant_scale_convolutioncoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_constant_scale_convolutioncoefficientscoefficientdiagonaltermleftoutside. pfc_gap_constant_scale_convolutioncoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_constant_scale_convolutioncoefficientscoefficientdiagonal)) /\ (((pfc_left_constant_scale_convolutioncoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_constant_scale_convolutioncoefficientscoefficientdiagonaltermrightinside. pfa_gap_constant_scale_convolutioncoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_constant_scale_convolutioncoefficientscoefficientdiagonalterm) = (1)) /\ ((((exists ff_h_pfp_constant_scale_convolutioncoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_constant_scale_convolutioncoefficientscoefficientdiagonaltermrightentry + S (pfc_right_constant_scale_convolutioncoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_constant_scale_convolutioncoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_constant_scale_convolutioncoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_constant_scale_convolutioncoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_constant_scale_convolutioncoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_constant_scale_convolutioncoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_constant_scale_convolutioncoefficientscoefficientdiagonaltermrightoutside. pfc_gap_constant_scale_convolutioncoefficientscoefficientdiagonaltermrightoutside+(1)=(pfc_complement_constant_scale_convolutioncoefficientscoefficientdiagonalterm)) /\ (((pfc_right_constant_scale_convolutioncoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_constant_scale_convolutioncoefficientscoefficientdiagonal)=pfc_left_constant_scale_convolutioncoefficientscoefficientdiagonalterm*pfc_right_constant_scale_convolutioncoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_constant_scale_convolutioncoefficientscoefficientsum fs_v_pfc_constant_scale_convolutioncoefficientscoefficientsum. ((((exists fs_h_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_start. fs_h_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_constant_scale_convolutioncoefficientscoefficientsum)) /\ exists fs_q_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_start. fs_u_pfc_constant_scale_convolutioncoefficientscoefficientsum = fs_q_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_constant_scale_convolutioncoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_terminal. fs_h_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_constant_scale_convolutioncoefficientscoefficient) = S ((S (S (pfc_index_constant_scale_convolutioncoefficients))) * fs_v_pfc_constant_scale_convolutioncoefficientscoefficientsum)) /\ exists fs_q_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_terminal. fs_u_pfc_constant_scale_convolutioncoefficientscoefficientsum = fs_q_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_constant_scale_convolutioncoefficients))) * fs_v_pfc_constant_scale_convolutioncoefficientscoefficientsum) + (pfc_natural_sum_constant_scale_convolutioncoefficientscoefficient))) /\ forall fs_i_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps = S (pfc_index_constant_scale_convolutioncoefficients)) -> exists fs_a_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps fs_r_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps fs_s_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps_summand. fs_h_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps)) * pfc_terms_scale_constant_scale_convolutioncoefficientscoefficient)) /\ exists fs_q_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps_summand. pfc_terms_code_constant_scale_convolutioncoefficientscoefficient = fs_q_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps)) * pfc_terms_scale_constant_scale_convolutioncoefficientscoefficient) + (fs_a_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps_partial. fs_h_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps)) * fs_v_pfc_constant_scale_convolutioncoefficientscoefficientsum)) /\ exists fs_q_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps_partial. fs_u_pfc_constant_scale_convolutioncoefficientscoefficientsum = fs_q_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps)) * fs_v_pfc_constant_scale_convolutioncoefficientscoefficientsum) + (fs_r_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps_successor. fs_h_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps)) * fs_v_pfc_constant_scale_convolutioncoefficientscoefficientsum)) /\ exists fs_q_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps_successor. fs_u_pfc_constant_scale_convolutioncoefficientscoefficientsum = fs_q_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps)) * fs_v_pfc_constant_scale_convolutioncoefficientscoefficientsum) + (fs_s_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps = fs_r_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps + fs_a_pfc_constant_scale_convolutioncoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_constant_scale_convolutioncoefficientscoefficientresiduebound. pfa_gap_constant_scale_convolutioncoefficientscoefficientresiduebound + S (pfc_value_constant_scale_convolutioncoefficients) = (p)) /\ ((exists pfa_offset_left_constant_scale_convolutioncoefficientscoefficientresiduecongruence pfa_offset_right_constant_scale_convolutioncoefficientscoefficientresiduecongruence. (pfc_natural_sum_constant_scale_convolutioncoefficientscoefficient) + (p) * pfa_offset_left_constant_scale_convolutioncoefficientscoefficientresiduecongruence = (pfc_value_constant_scale_convolutioncoefficients) + (p) * pfa_offset_right_constant_scale_convolutioncoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((exists pfa_gap_constant_scale_resultscalar. pfa_gap_constant_scale_resultscalar + S (k) = (p)) /\ ((forall pfp_index_constant_scale_result. (exists pfa_gap_constant_scale_resultindex. pfa_gap_constant_scale_resultindex + S (pfp_index_constant_scale_result) = (L)) -> exists pfp_source_constant_scale_result pfp_value_constant_scale_result. ((((exists ff_h_pfp_constant_scale_resultsource. ff_h_pfp_constant_scale_resultsource + S (pfp_source_constant_scale_result) = S ((S (pfp_index_constant_scale_result)) * ac)) /\ exists ff_q_pfp_constant_scale_resultsource. ab = ff_q_pfp_constant_scale_resultsource * S ((S (pfp_index_constant_scale_result)) * ac) + (pfp_source_constant_scale_result))) /\ (((((exists ff_h_pfp_constant_scale_resulttarget. ff_h_pfp_constant_scale_resulttarget + S (pfp_value_constant_scale_result) = S ((S (pfp_index_constant_scale_result)) * cc)) /\ exists ff_q_pfp_constant_scale_resulttarget. cb = ff_q_pfp_constant_scale_resulttarget * S ((S (pfp_index_constant_scale_result)) * cc) + (pfp_value_constant_scale_result))) /\ ((((exists pfa_gap_constant_scale_resultoperationleft. pfa_gap_constant_scale_resultoperationleft + S (k) = (p)) /\ (((exists pfa_gap_constant_scale_resultoperationright. pfa_gap_constant_scale_resultoperationright + S (pfp_source_constant_scale_result) = (p)) /\ ((((exists pfa_gap_constant_scale_resultoperationresultbound. pfa_gap_constant_scale_resultoperationresultbound + S (pfp_value_constant_scale_result) = (p)) /\ ((exists pfa_offset_left_constant_scale_resultoperationresultcongruence pfa_offset_right_constant_scale_resultoperationresultcongruence. ((k) * (pfp_source_constant_scale_result)) + (p) * pfa_offset_left_constant_scale_resultoperationresultcongruence = (pfp_value_constant_scale_result) + (p) * pfa_offset_right_constant_scale_resultoperationresultcongruence)))))))))))))))))Constructive proof overview
Generated structural guide
An actual proper-length constant-right polynomial product is the existing actual coefficient scalar action.
The unchanged tactic script uses 4 declared prerequisites and contains 82 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
matrix_rank_bounded_prefix_value Alpha theorem; checked-use authorized beta_at_exists Alpha theorem; checked-use authorized PX0023 prime_field_polynomial_constant_right_coefficient prime_field_polynomial_convolution_entry 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 (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Establish hcopyL13–14
Establish this local claim before using it. It is not an additional assumption.
- L13
have hcopy : FpPolyProduct(p,ab,ac,L,bb,bc,1,cb,cc,L)Definitions: FpPolyProduct - L14
exact hc
04Separate the logical casesL15–18
05Use earlier factsL19–26
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
specialize matrix_rank_bounded_prefix_value (bb) - L20
specialize matrix_rank_bounded_prefix_value (bc) - L21
specialize matrix_rank_bounded_prefix_value (1) - L22
specialize matrix_rank_bounded_prefix_value (p) - L23
specialize matrix_rank_bounded_prefix_value (0) - L24
specialize matrix_rank_bounded_prefix_value (k) - L25
apply matrix_rank_bounded_prefix_value - L26
exact hcopy_right_left
06Construct an explicit witnessL27–27
Supply the displayed value, then prove that it has the required property.
- L27
exists 0
07Calculate and transport equalitiesL28–28
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L28
simp
08Use earlier factsL29–29
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L29
exact hk
09Fix variables and assumptionsL30–31
10Establish haL32–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L32
have ha : exists a. (((exists ff_h_pfp_constant_scale_source. ff_h_pfp_constant_scale_source + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_constant_scale_source. ab = ff_q_pfp_constant_scale_source * S ((S (i)) * ac) + (a))) - L33
specialize beta_at_exists (ab) - L34
specialize beta_at_exists (ac) - L35
specialize beta_at_exists (i) - L36
apply beta_at_exists
11Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
cases ha
12Establish hrL38–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L38
have hr : exists r. (((exists ff_h_pfp_constant_scale_target. ff_h_pfp_constant_scale_target + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_constant_scale_target. cb = ff_q_pfp_constant_scale_target * S ((S (i)) * cc) + (r))) - L39
specialize beta_at_exists (cb) - L40
specialize beta_at_exists (cc) - L41
specialize beta_at_exists (i) - L42
apply beta_at_exists
13Separate the logical casesL43–43
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L43
cases hr
14Construct an explicit witnessL44–45
15Separate the logical casesL46–46
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L46
split
16Use earlier factsL47–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
exact ha_witness
17Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
split
18Use earlier factsL49–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hr_witness - L50
specialize prime_field_polynomial_constant_right_coefficient (p) - L51
specialize prime_field_polynomial_constant_right_coefficient (ab) - L52
specialize prime_field_polynomial_constant_right_coefficient (ac) - L53
specialize prime_field_polynomial_constant_right_coefficient (L) - L54
specialize prime_field_polynomial_constant_right_coefficient (bb) - L55
specialize prime_field_polynomial_constant_right_coefficient (bc) - L56
specialize prime_field_polynomial_constant_right_coefficient (k) - L57
specialize prime_field_polynomial_constant_right_coefficient (i) - L58
specialize prime_field_polynomial_constant_right_coefficient (x)
19Use earlier factsL59–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
specialize prime_field_polynomial_constant_right_coefficient (x1) - L60
apply prime_field_polynomial_constant_right_coefficient - L61
exact hp - L62
exact hcopy_left - L63
exact hcopy_right_left - L64
exact hk - L65
exact hi - L66
exact ha_witness - L67
specialize prime_field_polynomial_convolution_entry (p) - L68
specialize prime_field_polynomial_convolution_entry (ab)
20Use earlier factsL69–78
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L69
specialize prime_field_polynomial_convolution_entry (ac) - L70
specialize prime_field_polynomial_convolution_entry (L) - L71
specialize prime_field_polynomial_convolution_entry (bb) - L72
specialize prime_field_polynomial_convolution_entry (bc) - L73
specialize prime_field_polynomial_convolution_entry (1) - L74
specialize prime_field_polynomial_convolution_entry (cb) - L75
specialize prime_field_polynomial_convolution_entry (cc) - L76
specialize prime_field_polynomial_convolution_entry (L) - L77
specialize prime_field_polynomial_convolution_entry (i) - L78
specialize prime_field_polynomial_convolution_entry (x1)
Original exact command ledger · 82 lines
- 0001
intro p - 0002
intro k - 0003
intro ab - 0004
intro ac - 0005
intro bb - 0006
intro bc - 0007
intro cb - 0008
intro cc - 0009
intro L - 0010
intro hp - 0011
intro hk - 0012
intro hc - 0013
have hcopy : ((forall fom_index_pfp_constant_product_copyleft. (exists fom_gap_pfp_constant_product_copyleft_index_bound. fom_gap_pfp_constant_product_copyleft_index_bound + S (fom_index_pfp_constant_product_copyleft) = L) -> exists fom_value_pfp_constant_product_copyleft. ((((exists fom_beta_height_pfp_constant_product_copyleft_entry. fom_beta_height_pfp_constant_product_copyleft_entry + S (fom_value_pfp_constant_product_copyleft) = S ((S (fom_index_pfp_constant_product_copyleft)) * ac)) /\ exists fom_beta_quotient_pfp_constant_product_copyleft_entry. ab = fom_beta_quotient_pfp_constant_product_copyleft_entry * S ((S (fom_index_pfp_constant_product_copyleft)) * ac) + (fom_value_pfp_constant_product_copyleft))) /\ (exists fom_gap_pfp_constant_product_copyleft_value_bound. fom_gap_pfp_constant_product_copyleft_value_bound + S (fom_value_pfp_constant_product_copyleft) = p))) /\ (((forall fom_index_pfp_constant_product_copyright. (exists fom_gap_pfp_constant_product_copyright_index_bound. fom_gap_pfp_constant_product_copyright_index_bound + S (fom_index_pfp_constant_product_copyright) = 1) -> exists fom_value_pfp_constant_product_copyright. ((((exists fom_beta_height_pfp_constant_product_copyright_entry. fom_beta_height_pfp_constant_product_copyright_entry + S (fom_value_pfp_constant_product_copyright) = S ((S (fom_index_pfp_constant_product_copyright)) * bc)) /\ exists fom_beta_quotient_pfp_constant_product_copyright_entry. bb = fom_beta_quotient_pfp_constant_product_copyright_entry * S ((S (fom_index_pfp_constant_product_copyright)) * bc) + (fom_value_pfp_constant_product_copyright))) /\ (exists fom_gap_pfp_constant_product_copyright_value_bound. fom_gap_pfp_constant_product_copyright_value_bound + S (fom_value_pfp_constant_product_copyright) = p))) /\ (((((((L)=0 \/ (1)=0) /\ (((L)=0)))) \/ (((~((L)=0)) /\ (((~((1)=0)) /\ (((L)+(1)=S (L)))))))) /\ ((forall pfc_index_constant_product_copycoefficients. (exists pfa_gap_constant_product_copycoefficientsbound. pfa_gap_constant_product_copycoefficientsbound + S (pfc_index_constant_product_copycoefficients) = (L)) -> exists pfc_value_constant_product_copycoefficients. ((((exists ff_h_pfp_constant_product_copycoefficientsentry. ff_h_pfp_constant_product_copycoefficientsentry + S (pfc_value_constant_product_copycoefficients) = S ((S (pfc_index_constant_product_copycoefficients)) * cc)) /\ exists ff_q_pfp_constant_product_copycoefficientsentry. cb = ff_q_pfp_constant_product_copycoefficientsentry * S ((S (pfc_index_constant_product_copycoefficients)) * cc) + (pfc_value_constant_product_copycoefficients))) /\ ((exists pfc_terms_code_constant_product_copycoefficientscoefficient pfc_terms_scale_constant_product_copycoefficientscoefficient pfc_natural_sum_constant_product_copycoefficientscoefficient. ((forall pfc_index_constant_product_copycoefficientscoefficientdiagonal. (exists pfa_gap_constant_product_copycoefficientscoefficientdiagonalbound. pfa_gap_constant_product_copycoefficientscoefficientdiagonalbound + S (pfc_index_constant_product_copycoefficientscoefficientdiagonal) = (S (pfc_index_constant_product_copycoefficients))) -> exists pfc_value_constant_product_copycoefficientscoefficientdiagonal. ((((exists ff_h_pfp_constant_product_copycoefficientscoefficientdiagonalentry. ff_h_pfp_constant_product_copycoefficientscoefficientdiagonalentry + S (pfc_value_constant_product_copycoefficientscoefficientdiagonal) = S ((S (pfc_index_constant_product_copycoefficientscoefficientdiagonal)) * pfc_terms_scale_constant_product_copycoefficientscoefficient)) /\ exists ff_q_pfp_constant_product_copycoefficientscoefficientdiagonalentry. pfc_terms_code_constant_product_copycoefficientscoefficient = ff_q_pfp_constant_product_copycoefficientscoefficientdiagonalentry * S ((S (pfc_index_constant_product_copycoefficientscoefficientdiagonal)) * pfc_terms_scale_constant_product_copycoefficientscoefficient) + (pfc_value_constant_product_copycoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_constant_product_copycoefficientscoefficientdiagonalterm pfc_left_constant_product_copycoefficientscoefficientdiagonalterm pfc_right_constant_product_copycoefficientscoefficientdiagonalterm. (((pfc_index_constant_product_copycoefficientscoefficientdiagonal)+pfc_complement_constant_product_copycoefficientscoefficientdiagonalterm=(pfc_index_constant_product_copycoefficients)) /\ ((((((exists pfa_gap_constant_product_copycoefficientscoefficientdiagonaltermleftinside. pfa_gap_constant_product_copycoefficientscoefficientdiagonaltermleftinside + S (pfc_index_constant_product_copycoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_constant_product_copycoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_constant_product_copycoefficientscoefficientdiagonaltermleftentry + S (pfc_left_constant_product_copycoefficientscoefficientdiagonalterm) = S ((S (pfc_index_constant_product_copycoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_constant_product_copycoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_constant_product_copycoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_constant_product_copycoefficientscoefficientdiagonal)) * ac) + (pfc_left_constant_product_copycoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_constant_product_copycoefficientscoefficientdiagonaltermleftoutside. pfc_gap_constant_product_copycoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_constant_product_copycoefficientscoefficientdiagonal)) /\ (((pfc_left_constant_product_copycoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_constant_product_copycoefficientscoefficientdiagonaltermrightinside. pfa_gap_constant_product_copycoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_constant_product_copycoefficientscoefficientdiagonalterm) = (1)) /\ ((((exists ff_h_pfp_constant_product_copycoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_constant_product_copycoefficientscoefficientdiagonaltermrightentry + S (pfc_right_constant_product_copycoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_constant_product_copycoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_constant_product_copycoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_constant_product_copycoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_constant_product_copycoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_constant_product_copycoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_constant_product_copycoefficientscoefficientdiagonaltermrightoutside. pfc_gap_constant_product_copycoefficientscoefficientdiagonaltermrightoutside+(1)=(pfc_complement_constant_product_copycoefficientscoefficientdiagonalterm)) /\ (((pfc_right_constant_product_copycoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_constant_product_copycoefficientscoefficientdiagonal)=pfc_left_constant_product_copycoefficientscoefficientdiagonalterm*pfc_right_constant_product_copycoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_constant_product_copycoefficientscoefficientsum fs_v_pfc_constant_product_copycoefficientscoefficientsum. ((((exists fs_h_pfc_constant_product_copycoefficientscoefficientsum_body_start. fs_h_pfc_constant_product_copycoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_constant_product_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_constant_product_copycoefficientscoefficientsum_body_start. fs_u_pfc_constant_product_copycoefficientscoefficientsum = fs_q_pfc_constant_product_copycoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_constant_product_copycoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_constant_product_copycoefficientscoefficientsum_body_terminal. fs_h_pfc_constant_product_copycoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_constant_product_copycoefficientscoefficient) = S ((S (S (pfc_index_constant_product_copycoefficients))) * fs_v_pfc_constant_product_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_constant_product_copycoefficientscoefficientsum_body_terminal. fs_u_pfc_constant_product_copycoefficientscoefficientsum = fs_q_pfc_constant_product_copycoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_constant_product_copycoefficients))) * fs_v_pfc_constant_product_copycoefficientscoefficientsum) + (pfc_natural_sum_constant_product_copycoefficientscoefficient))) /\ forall fs_i_pfc_constant_product_copycoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_constant_product_copycoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_constant_product_copycoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_constant_product_copycoefficientscoefficientsum_body_steps = S (pfc_index_constant_product_copycoefficients)) -> exists fs_a_pfc_constant_product_copycoefficientscoefficientsum_body_steps fs_r_pfc_constant_product_copycoefficientscoefficientsum_body_steps fs_s_pfc_constant_product_copycoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_constant_product_copycoefficientscoefficientsum_body_steps_summand. fs_h_pfc_constant_product_copycoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_constant_product_copycoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_constant_product_copycoefficientscoefficientsum_body_steps)) * pfc_terms_scale_constant_product_copycoefficientscoefficient)) /\ exists fs_q_pfc_constant_product_copycoefficientscoefficientsum_body_steps_summand. pfc_terms_code_constant_product_copycoefficientscoefficient = fs_q_pfc_constant_product_copycoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_constant_product_copycoefficientscoefficientsum_body_steps)) * pfc_terms_scale_constant_product_copycoefficientscoefficient) + (fs_a_pfc_constant_product_copycoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_constant_product_copycoefficientscoefficientsum_body_steps_partial. fs_h_pfc_constant_product_copycoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_constant_product_copycoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_constant_product_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_constant_product_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_constant_product_copycoefficientscoefficientsum_body_steps_partial. fs_u_pfc_constant_product_copycoefficientscoefficientsum = fs_q_pfc_constant_product_copycoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_constant_product_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_constant_product_copycoefficientscoefficientsum) + (fs_r_pfc_constant_product_copycoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_constant_product_copycoefficientscoefficientsum_body_steps_successor. fs_h_pfc_constant_product_copycoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_constant_product_copycoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_constant_product_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_constant_product_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_constant_product_copycoefficientscoefficientsum_body_steps_successor. fs_u_pfc_constant_product_copycoefficientscoefficientsum = fs_q_pfc_constant_product_copycoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_constant_product_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_constant_product_copycoefficientscoefficientsum) + (fs_s_pfc_constant_product_copycoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_constant_product_copycoefficientscoefficientsum_body_steps = fs_r_pfc_constant_product_copycoefficientscoefficientsum_body_steps + fs_a_pfc_constant_product_copycoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_constant_product_copycoefficientscoefficientresiduebound. pfa_gap_constant_product_copycoefficientscoefficientresiduebound + S (pfc_value_constant_product_copycoefficients) = (p)) /\ ((exists pfa_offset_left_constant_product_copycoefficientscoefficientresiduecongruence pfa_offset_right_constant_product_copycoefficientscoefficientresiduecongruence. (pfc_natural_sum_constant_product_copycoefficientscoefficient) + (p) * pfa_offset_left_constant_product_copycoefficientscoefficientresiduecongruence = (pfc_value_constant_product_copycoefficients) + (p) * pfa_offset_right_constant_product_copycoefficientscoefficientresiduecongruence)))))))))))))))))) - 0014
exact hc - 0015
cases hcopy - 0016
cases hcopy_right - 0017
cases hcopy_right_right - 0018
split - 0019
specialize matrix_rank_bounded_prefix_value (bb) - 0020
specialize matrix_rank_bounded_prefix_value (bc) - 0021
specialize matrix_rank_bounded_prefix_value (1) - 0022
specialize matrix_rank_bounded_prefix_value (p) - 0023
specialize matrix_rank_bounded_prefix_value (0) - 0024
specialize matrix_rank_bounded_prefix_value (k) - 0025
apply matrix_rank_bounded_prefix_value - 0026
exact hcopy_right_left - 0027
exists 0 - 0028
simp - 0029
exact hk - 0030
intro i - 0031
intro hi - 0032
have ha : exists a. (((exists ff_h_pfp_constant_scale_source. ff_h_pfp_constant_scale_source + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_constant_scale_source. ab = ff_q_pfp_constant_scale_source * S ((S (i)) * ac) + (a))) - 0033
specialize beta_at_exists (ab) - 0034
specialize beta_at_exists (ac) - 0035
specialize beta_at_exists (i) - 0036
apply beta_at_exists - 0037
cases ha - 0038
have hr : exists r. (((exists ff_h_pfp_constant_scale_target. ff_h_pfp_constant_scale_target + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_constant_scale_target. cb = ff_q_pfp_constant_scale_target * S ((S (i)) * cc) + (r))) - 0039
specialize beta_at_exists (cb) - 0040
specialize beta_at_exists (cc) - 0041
specialize beta_at_exists (i) - 0042
apply beta_at_exists - 0043
cases hr - 0044
exists x - 0045
exists x1 - 0046
split - 0047
exact ha_witness - 0048
split - 0049
exact hr_witness - 0050
specialize prime_field_polynomial_constant_right_coefficient (p) - 0051
specialize prime_field_polynomial_constant_right_coefficient (ab) - 0052
specialize prime_field_polynomial_constant_right_coefficient (ac) - 0053
specialize prime_field_polynomial_constant_right_coefficient (L) - 0054
specialize prime_field_polynomial_constant_right_coefficient (bb) - 0055
specialize prime_field_polynomial_constant_right_coefficient (bc) - 0056
specialize prime_field_polynomial_constant_right_coefficient (k) - 0057
specialize prime_field_polynomial_constant_right_coefficient (i) - 0058
specialize prime_field_polynomial_constant_right_coefficient (x) - 0059
specialize prime_field_polynomial_constant_right_coefficient (x1) - 0060
apply prime_field_polynomial_constant_right_coefficient - 0061
exact hp - 0062
exact hcopy_left - 0063
exact hcopy_right_left - 0064
exact hk - 0065
exact hi - 0066
exact ha_witness - 0067
specialize prime_field_polynomial_convolution_entry (p) - 0068
specialize prime_field_polynomial_convolution_entry (ab) - 0069
specialize prime_field_polynomial_convolution_entry (ac) - 0070
specialize prime_field_polynomial_convolution_entry (L) - 0071
specialize prime_field_polynomial_convolution_entry (bb) - 0072
specialize prime_field_polynomial_convolution_entry (bc) - 0073
specialize prime_field_polynomial_convolution_entry (1) - 0074
specialize prime_field_polynomial_convolution_entry (cb) - 0075
specialize prime_field_polynomial_convolution_entry (cc) - 0076
specialize prime_field_polynomial_convolution_entry (L) - 0077
specialize prime_field_polynomial_convolution_entry (i) - 0078
specialize prime_field_polynomial_convolution_entry (x1) - 0079
apply prime_field_polynomial_convolution_entry - 0080
exact hc - 0081
exact hi - 0082
exact hr_witness