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 kb kc ab ac hb hc L. (((exists ff_h_pfp_left_constant_product_K. ff_h_pfp_left_constant_product_K + S (k) = S ((S (0)) * kc)) /\ exists ff_q_pfp_left_constant_product_K. kb = ff_q_pfp_left_constant_product_K * S ((S (0)) * kc) + (k))) -> (((forall fom_index_pfp_left_constant_product_sourceleft. (exists fom_gap_pfp_left_constant_product_sourceleft_index_bound. fom_gap_pfp_left_constant_product_sourceleft_index_bound + S (fom_index_pfp_left_constant_product_sourceleft) = 1) -> exists fom_value_pfp_left_constant_product_sourceleft. ((((exists fom_beta_height_pfp_left_constant_product_sourceleft_entry. fom_beta_height_pfp_left_constant_product_sourceleft_entry + S (fom_value_pfp_left_constant_product_sourceleft) = S ((S (fom_index_pfp_left_constant_product_sourceleft)) * kc)) /\ exists fom_beta_quotient_pfp_left_constant_product_sourceleft_entry. kb = fom_beta_quotient_pfp_left_constant_product_sourceleft_entry * S ((S (fom_index_pfp_left_constant_product_sourceleft)) * kc) + (fom_value_pfp_left_constant_product_sourceleft))) /\ (exists fom_gap_pfp_left_constant_product_sourceleft_value_bound. fom_gap_pfp_left_constant_product_sourceleft_value_bound + S (fom_value_pfp_left_constant_product_sourceleft) = p))) /\ (((forall fom_index_pfp_left_constant_product_sourceright. (exists fom_gap_pfp_left_constant_product_sourceright_index_bound. fom_gap_pfp_left_constant_product_sourceright_index_bound + S (fom_index_pfp_left_constant_product_sourceright) = L) -> exists fom_value_pfp_left_constant_product_sourceright. ((((exists fom_beta_height_pfp_left_constant_product_sourceright_entry. fom_beta_height_pfp_left_constant_product_sourceright_entry + S (fom_value_pfp_left_constant_product_sourceright) = S ((S (fom_index_pfp_left_constant_product_sourceright)) * ac)) /\ exists fom_beta_quotient_pfp_left_constant_product_sourceright_entry. ab = fom_beta_quotient_pfp_left_constant_product_sourceright_entry * S ((S (fom_index_pfp_left_constant_product_sourceright)) * ac) + (fom_value_pfp_left_constant_product_sourceright))) /\ (exists fom_gap_pfp_left_constant_product_sourceright_value_bound. fom_gap_pfp_left_constant_product_sourceright_value_bound + S (fom_value_pfp_left_constant_product_sourceright) = p))) /\ (((((((1)=0 \/ (L)=0) /\ (((L)=0)))) \/ (((~((1)=0)) /\ (((~((L)=0)) /\ (((1)+(L)=S (L)))))))) /\ ((forall pfc_index_left_constant_product_sourcecoefficients. (exists pfa_gap_left_constant_product_sourcecoefficientsbound. pfa_gap_left_constant_product_sourcecoefficientsbound + S (pfc_index_left_constant_product_sourcecoefficients) = (L)) -> exists pfc_value_left_constant_product_sourcecoefficients. ((((exists ff_h_pfp_left_constant_product_sourcecoefficientsentry. ff_h_pfp_left_constant_product_sourcecoefficientsentry + S (pfc_value_left_constant_product_sourcecoefficients) = S ((S (pfc_index_left_constant_product_sourcecoefficients)) * hc)) /\ exists ff_q_pfp_left_constant_product_sourcecoefficientsentry. hb = ff_q_pfp_left_constant_product_sourcecoefficientsentry * S ((S (pfc_index_left_constant_product_sourcecoefficients)) * hc) + (pfc_value_left_constant_product_sourcecoefficients))) /\ ((exists pfc_terms_code_left_constant_product_sourcecoefficientscoefficient pfc_terms_scale_left_constant_product_sourcecoefficientscoefficient pfc_natural_sum_left_constant_product_sourcecoefficientscoefficient. ((forall pfc_index_left_constant_product_sourcecoefficientscoefficientdiagonal. (exists pfa_gap_left_constant_product_sourcecoefficientscoefficientdiagonalbound. pfa_gap_left_constant_product_sourcecoefficientscoefficientdiagonalbound + S (pfc_index_left_constant_product_sourcecoefficientscoefficientdiagonal) = (S (pfc_index_left_constant_product_sourcecoefficients))) -> exists pfc_value_left_constant_product_sourcecoefficientscoefficientdiagonal. ((((exists ff_h_pfp_left_constant_product_sourcecoefficientscoefficientdiagonalentry. ff_h_pfp_left_constant_product_sourcecoefficientscoefficientdiagonalentry + S (pfc_value_left_constant_product_sourcecoefficientscoefficientdiagonal) = S ((S (pfc_index_left_constant_product_sourcecoefficientscoefficientdiagonal)) * pfc_terms_scale_left_constant_product_sourcecoefficientscoefficient)) /\ exists ff_q_pfp_left_constant_product_sourcecoefficientscoefficientdiagonalentry. pfc_terms_code_left_constant_product_sourcecoefficientscoefficient = ff_q_pfp_left_constant_product_sourcecoefficientscoefficientdiagonalentry * S ((S (pfc_index_left_constant_product_sourcecoefficientscoefficientdiagonal)) * pfc_terms_scale_left_constant_product_sourcecoefficientscoefficient) + (pfc_value_left_constant_product_sourcecoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_left_constant_product_sourcecoefficientscoefficientdiagonalterm pfc_left_left_constant_product_sourcecoefficientscoefficientdiagonalterm pfc_right_left_constant_product_sourcecoefficientscoefficientdiagonalterm. (((pfc_index_left_constant_product_sourcecoefficientscoefficientdiagonal)+pfc_complement_left_constant_product_sourcecoefficientscoefficientdiagonalterm=(pfc_index_left_constant_product_sourcecoefficients)) /\ ((((((exists pfa_gap_left_constant_product_sourcecoefficientscoefficientdiagonaltermleftinside. pfa_gap_left_constant_product_sourcecoefficientscoefficientdiagonaltermleftinside + S (pfc_index_left_constant_product_sourcecoefficientscoefficientdiagonal) = (1)) /\ ((((exists ff_h_pfp_left_constant_product_sourcecoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_left_constant_product_sourcecoefficientscoefficientdiagonaltermleftentry + S (pfc_left_left_constant_product_sourcecoefficientscoefficientdiagonalterm) = S ((S (pfc_index_left_constant_product_sourcecoefficientscoefficientdiagonal)) * kc)) /\ exists ff_q_pfp_left_constant_product_sourcecoefficientscoefficientdiagonaltermleftentry. kb = ff_q_pfp_left_constant_product_sourcecoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_left_constant_product_sourcecoefficientscoefficientdiagonal)) * kc) + (pfc_left_left_constant_product_sourcecoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_left_constant_product_sourcecoefficientscoefficientdiagonaltermleftoutside. pfc_gap_left_constant_product_sourcecoefficientscoefficientdiagonaltermleftoutside+(1)=(pfc_index_left_constant_product_sourcecoefficientscoefficientdiagonal)) /\ (((pfc_left_left_constant_product_sourcecoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_left_constant_product_sourcecoefficientscoefficientdiagonaltermrightinside. pfa_gap_left_constant_product_sourcecoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_left_constant_product_sourcecoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_left_constant_product_sourcecoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_left_constant_product_sourcecoefficientscoefficientdiagonaltermrightentry + S (pfc_right_left_constant_product_sourcecoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_left_constant_product_sourcecoefficientscoefficientdiagonalterm)) * ac)) /\ exists ff_q_pfp_left_constant_product_sourcecoefficientscoefficientdiagonaltermrightentry. ab = ff_q_pfp_left_constant_product_sourcecoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_left_constant_product_sourcecoefficientscoefficientdiagonalterm)) * ac) + (pfc_right_left_constant_product_sourcecoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_left_constant_product_sourcecoefficientscoefficientdiagonaltermrightoutside. pfc_gap_left_constant_product_sourcecoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_left_constant_product_sourcecoefficientscoefficientdiagonalterm)) /\ (((pfc_right_left_constant_product_sourcecoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_left_constant_product_sourcecoefficientscoefficientdiagonal)=pfc_left_left_constant_product_sourcecoefficientscoefficientdiagonalterm*pfc_right_left_constant_product_sourcecoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_left_constant_product_sourcecoefficientscoefficientsum fs_v_pfc_left_constant_product_sourcecoefficientscoefficientsum. ((((exists fs_h_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_start. fs_h_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_left_constant_product_sourcecoefficientscoefficientsum)) /\ exists fs_q_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_start. fs_u_pfc_left_constant_product_sourcecoefficientscoefficientsum = fs_q_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_left_constant_product_sourcecoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_terminal. fs_h_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_left_constant_product_sourcecoefficientscoefficient) = S ((S (S (pfc_index_left_constant_product_sourcecoefficients))) * fs_v_pfc_left_constant_product_sourcecoefficientscoefficientsum)) /\ exists fs_q_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_terminal. fs_u_pfc_left_constant_product_sourcecoefficientscoefficientsum = fs_q_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_left_constant_product_sourcecoefficients))) * fs_v_pfc_left_constant_product_sourcecoefficientscoefficientsum) + (pfc_natural_sum_left_constant_product_sourcecoefficientscoefficient))) /\ forall fs_i_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps = S (pfc_index_left_constant_product_sourcecoefficients)) -> exists fs_a_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps fs_r_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps fs_s_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps_summand. fs_h_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps)) * pfc_terms_scale_left_constant_product_sourcecoefficientscoefficient)) /\ exists fs_q_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps_summand. pfc_terms_code_left_constant_product_sourcecoefficientscoefficient = fs_q_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps)) * pfc_terms_scale_left_constant_product_sourcecoefficientscoefficient) + (fs_a_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps_partial. fs_h_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps)) * fs_v_pfc_left_constant_product_sourcecoefficientscoefficientsum)) /\ exists fs_q_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps_partial. fs_u_pfc_left_constant_product_sourcecoefficientscoefficientsum = fs_q_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps)) * fs_v_pfc_left_constant_product_sourcecoefficientscoefficientsum) + (fs_r_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps_successor. fs_h_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps)) * fs_v_pfc_left_constant_product_sourcecoefficientscoefficientsum)) /\ exists fs_q_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps_successor. fs_u_pfc_left_constant_product_sourcecoefficientscoefficientsum = fs_q_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps)) * fs_v_pfc_left_constant_product_sourcecoefficientscoefficientsum) + (fs_s_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps = fs_r_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps + fs_a_pfc_left_constant_product_sourcecoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_left_constant_product_sourcecoefficientscoefficientresiduebound. pfa_gap_left_constant_product_sourcecoefficientscoefficientresiduebound + S (pfc_value_left_constant_product_sourcecoefficients) = (p)) /\ ((exists pfa_offset_left_left_constant_product_sourcecoefficientscoefficientresiduecongruence pfa_offset_right_left_constant_product_sourcecoefficientscoefficientresiduecongruence. (pfc_natural_sum_left_constant_product_sourcecoefficientscoefficient) + (p) * pfa_offset_left_left_constant_product_sourcecoefficientscoefficientresiduecongruence = (pfc_value_left_constant_product_sourcecoefficients) + (p) * pfa_offset_right_left_constant_product_sourcecoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((exists pfa_gap_left_constant_product_scalescalar. pfa_gap_left_constant_product_scalescalar + S (k) = (p)) /\ ((forall pfp_index_left_constant_product_scale. (exists pfa_gap_left_constant_product_scaleindex. pfa_gap_left_constant_product_scaleindex + S (pfp_index_left_constant_product_scale) = (L)) -> exists pfp_source_left_constant_product_scale pfp_value_left_constant_product_scale. ((((exists ff_h_pfp_left_constant_product_scalesource. ff_h_pfp_left_constant_product_scalesource + S (pfp_source_left_constant_product_scale) = S ((S (pfp_index_left_constant_product_scale)) * ac)) /\ exists ff_q_pfp_left_constant_product_scalesource. ab = ff_q_pfp_left_constant_product_scalesource * S ((S (pfp_index_left_constant_product_scale)) * ac) + (pfp_source_left_constant_product_scale))) /\ (((((exists ff_h_pfp_left_constant_product_scaletarget. ff_h_pfp_left_constant_product_scaletarget + S (pfp_value_left_constant_product_scale) = S ((S (pfp_index_left_constant_product_scale)) * hc)) /\ exists ff_q_pfp_left_constant_product_scaletarget. hb = ff_q_pfp_left_constant_product_scaletarget * S ((S (pfp_index_left_constant_product_scale)) * hc) + (pfp_value_left_constant_product_scale))) /\ ((((exists pfa_gap_left_constant_product_scaleoperationleft. pfa_gap_left_constant_product_scaleoperationleft + S (k) = (p)) /\ (((exists pfa_gap_left_constant_product_scaleoperationright. pfa_gap_left_constant_product_scaleoperationright + S (pfp_source_left_constant_product_scale) = (p)) /\ ((((exists pfa_gap_left_constant_product_scaleoperationresultbound. pfa_gap_left_constant_product_scaleoperationresultbound + S (pfp_value_left_constant_product_scale) = (p)) /\ ((exists pfa_offset_left_left_constant_product_scaleoperationresultcongruence pfa_offset_right_left_constant_product_scaleoperationresultcongruence. ((k) * (pfp_source_left_constant_product_scale)) + (p) * pfa_offset_left_left_constant_product_scaleoperationresultcongruence = (pfp_value_left_constant_product_scale) + (p) * pfa_offset_right_left_constant_product_scaleoperationresultcongruence)))))))))))))))))Constructive proof overview
Generated structural guide
An actual length-L product of a canonical left singleton and a length-L prefix yields the existing scalar graph, even when L=0. The scalar bound follows from the singleton rather than from vacuous output entries.
The unchanged tactic script uses 4 declared prerequisites and contains 74 exact native proof lines.
Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
matrix_rank_bounded_prefix_value Alpha theorem; checked-use authorized zero_add Alpha theorem; checked-use authorized beta_at_exists Alpha theorem; checked-use authorized PG004F prime_field_convolution_coefficient_left_constantDirect 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–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hproduct
03Separate the logical casesL12–14
04Establish hkbL15–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix rank bounded prefix value.
- L15
have hkb : exists pfa_gap_left_constant_product_k_bound. pfa_gap_left_constant_product_k_bound + S (k) = (p) - L16
specialize matrix_rank_bounded_prefix_value (kb) - L17
specialize matrix_rank_bounded_prefix_value (kc) - L18
specialize matrix_rank_bounded_prefix_value (1) - L19
specialize matrix_rank_bounded_prefix_value (p) - L20
specialize matrix_rank_bounded_prefix_value (0) - L21
specialize matrix_rank_bounded_prefix_value (k) - L22
apply matrix_rank_bounded_prefix_value - L23
exact hproduct_left
05Construct an explicit witnessL24–24
Supply the displayed value, then prove that it has the required property.
- L24
exists 0
06Use earlier factsL25–26
07Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
split
08Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
exact hkb
09Fix variables and assumptionsL29–30
10Establish haL31–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L31
have ha : exists a. ((exists ff_h_pfp_left_constant_product_A. ff_h_pfp_left_constant_product_A + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_left_constant_product_A. ab = ff_q_pfp_left_constant_product_A * S ((S (i)) * ac) + (a)) - L32
specialize beta_at_exists (ab) - L33
specialize beta_at_exists (ac) - L34
specialize beta_at_exists (i) - L35
apply beta_at_exists
11Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
cases ha
12Establish hrL37–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hproduct right right right.
13Separate the logical casesL41–42
14Construct an explicit witnessL43–44
15Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
split
16Use earlier factsL46–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
exact ha_witness
17Separate the logical casesL47–47
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L47
split
18Use earlier factsL48–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L48
exact hr_witness_left - L49
specialize prime_field_convolution_coefficient_left_constant (p) - L50
specialize prime_field_convolution_coefficient_left_constant (k) - L51
specialize prime_field_convolution_coefficient_left_constant (kb) - L52
specialize prime_field_convolution_coefficient_left_constant (kc) - L53
specialize prime_field_convolution_coefficient_left_constant (ab) - L54
specialize prime_field_convolution_coefficient_left_constant (ac) - L55
specialize prime_field_convolution_coefficient_left_constant (L) - L56
specialize prime_field_convolution_coefficient_left_constant (i) - L57
specialize prime_field_convolution_coefficient_left_constant (x)
19Use earlier factsL58–67
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L58
specialize prime_field_convolution_coefficient_left_constant (x1) - L59
apply prime_field_convolution_coefficient_left_constant - L60
exact hk - L61
exact hi - L62
exact ha_witness - L63
exact hkb - L64
specialize matrix_rank_bounded_prefix_value (ab) - L65
specialize matrix_rank_bounded_prefix_value (ac) - L66
specialize matrix_rank_bounded_prefix_value (L) - L67
specialize matrix_rank_bounded_prefix_value (p)
20Use earlier factsL68–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 74 lines
- 0001
intro p - 0002
intro k - 0003
intro kb - 0004
intro kc - 0005
intro ab - 0006
intro ac - 0007
intro hb - 0008
intro hc - 0009
intro L - 0010
intro hk - 0011
intro hproduct - 0012
cases hproduct - 0013
cases hproduct_right - 0014
cases hproduct_right_right - 0015
have hkb : exists pfa_gap_left_constant_product_k_bound. pfa_gap_left_constant_product_k_bound + S (k) = (p) - 0016
specialize matrix_rank_bounded_prefix_value (kb) - 0017
specialize matrix_rank_bounded_prefix_value (kc) - 0018
specialize matrix_rank_bounded_prefix_value (1) - 0019
specialize matrix_rank_bounded_prefix_value (p) - 0020
specialize matrix_rank_bounded_prefix_value (0) - 0021
specialize matrix_rank_bounded_prefix_value (k) - 0022
apply matrix_rank_bounded_prefix_value - 0023
exact hproduct_left - 0024
exists 0 - 0025
apply zero_add - 0026
exact hk - 0027
split - 0028
exact hkb - 0029
intro i - 0030
intro hi - 0031
have ha : exists a. ((exists ff_h_pfp_left_constant_product_A. ff_h_pfp_left_constant_product_A + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_left_constant_product_A. ab = ff_q_pfp_left_constant_product_A * S ((S (i)) * ac) + (a)) - 0032
specialize beta_at_exists (ab) - 0033
specialize beta_at_exists (ac) - 0034
specialize beta_at_exists (i) - 0035
apply beta_at_exists - 0036
cases ha - 0037
have hr : exists r. ((((exists ff_h_pfp_left_constant_product_H. ff_h_pfp_left_constant_product_H + S (r) = S ((S (i)) * hc)) /\ exists ff_q_pfp_left_constant_product_H. hb = ff_q_pfp_left_constant_product_H * S ((S (i)) * hc) + (r))) /\ ((exists pfc_terms_code_left_constant_product_coefficient pfc_terms_scale_left_constant_product_coefficient pfc_natural_sum_left_constant_product_coefficient. ((forall pfc_index_left_constant_product_coefficientdiagonal. (exists pfa_gap_left_constant_product_coefficientdiagonalbound. pfa_gap_left_constant_product_coefficientdiagonalbound + S (pfc_index_left_constant_product_coefficientdiagonal) = (S (i))) -> exists pfc_value_left_constant_product_coefficientdiagonal. ((((exists ff_h_pfp_left_constant_product_coefficientdiagonalentry. ff_h_pfp_left_constant_product_coefficientdiagonalentry + S (pfc_value_left_constant_product_coefficientdiagonal) = S ((S (pfc_index_left_constant_product_coefficientdiagonal)) * pfc_terms_scale_left_constant_product_coefficient)) /\ exists ff_q_pfp_left_constant_product_coefficientdiagonalentry. pfc_terms_code_left_constant_product_coefficient = ff_q_pfp_left_constant_product_coefficientdiagonalentry * S ((S (pfc_index_left_constant_product_coefficientdiagonal)) * pfc_terms_scale_left_constant_product_coefficient) + (pfc_value_left_constant_product_coefficientdiagonal))) /\ ((exists pfc_complement_left_constant_product_coefficientdiagonalterm pfc_left_left_constant_product_coefficientdiagonalterm pfc_right_left_constant_product_coefficientdiagonalterm. (((pfc_index_left_constant_product_coefficientdiagonal)+pfc_complement_left_constant_product_coefficientdiagonalterm=(i)) /\ ((((((exists pfa_gap_left_constant_product_coefficientdiagonaltermleftinside. pfa_gap_left_constant_product_coefficientdiagonaltermleftinside + S (pfc_index_left_constant_product_coefficientdiagonal) = (1)) /\ ((((exists ff_h_pfp_left_constant_product_coefficientdiagonaltermleftentry. ff_h_pfp_left_constant_product_coefficientdiagonaltermleftentry + S (pfc_left_left_constant_product_coefficientdiagonalterm) = S ((S (pfc_index_left_constant_product_coefficientdiagonal)) * kc)) /\ exists ff_q_pfp_left_constant_product_coefficientdiagonaltermleftentry. kb = ff_q_pfp_left_constant_product_coefficientdiagonaltermleftentry * S ((S (pfc_index_left_constant_product_coefficientdiagonal)) * kc) + (pfc_left_left_constant_product_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_left_constant_product_coefficientdiagonaltermleftoutside. pfc_gap_left_constant_product_coefficientdiagonaltermleftoutside+(1)=(pfc_index_left_constant_product_coefficientdiagonal)) /\ (((pfc_left_left_constant_product_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_left_constant_product_coefficientdiagonaltermrightinside. pfa_gap_left_constant_product_coefficientdiagonaltermrightinside + S (pfc_complement_left_constant_product_coefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_left_constant_product_coefficientdiagonaltermrightentry. ff_h_pfp_left_constant_product_coefficientdiagonaltermrightentry + S (pfc_right_left_constant_product_coefficientdiagonalterm) = S ((S (pfc_complement_left_constant_product_coefficientdiagonalterm)) * ac)) /\ exists ff_q_pfp_left_constant_product_coefficientdiagonaltermrightentry. ab = ff_q_pfp_left_constant_product_coefficientdiagonaltermrightentry * S ((S (pfc_complement_left_constant_product_coefficientdiagonalterm)) * ac) + (pfc_right_left_constant_product_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_left_constant_product_coefficientdiagonaltermrightoutside. pfc_gap_left_constant_product_coefficientdiagonaltermrightoutside+(L)=(pfc_complement_left_constant_product_coefficientdiagonalterm)) /\ (((pfc_right_left_constant_product_coefficientdiagonalterm)=0))))) /\ (((pfc_value_left_constant_product_coefficientdiagonal)=pfc_left_left_constant_product_coefficientdiagonalterm*pfc_right_left_constant_product_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_left_constant_product_coefficientsum fs_v_pfc_left_constant_product_coefficientsum. ((((exists fs_h_pfc_left_constant_product_coefficientsum_body_start. fs_h_pfc_left_constant_product_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_left_constant_product_coefficientsum)) /\ exists fs_q_pfc_left_constant_product_coefficientsum_body_start. fs_u_pfc_left_constant_product_coefficientsum = fs_q_pfc_left_constant_product_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_left_constant_product_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_left_constant_product_coefficientsum_body_terminal. fs_h_pfc_left_constant_product_coefficientsum_body_terminal + S (pfc_natural_sum_left_constant_product_coefficient) = S ((S (S (i))) * fs_v_pfc_left_constant_product_coefficientsum)) /\ exists fs_q_pfc_left_constant_product_coefficientsum_body_terminal. fs_u_pfc_left_constant_product_coefficientsum = fs_q_pfc_left_constant_product_coefficientsum_body_terminal * S ((S (S (i))) * fs_v_pfc_left_constant_product_coefficientsum) + (pfc_natural_sum_left_constant_product_coefficient))) /\ forall fs_i_pfc_left_constant_product_coefficientsum_body_steps. (exists fs_lt_pfc_left_constant_product_coefficientsum_body_steps_bound. fs_lt_pfc_left_constant_product_coefficientsum_body_steps_bound + S fs_i_pfc_left_constant_product_coefficientsum_body_steps = S (i)) -> exists fs_a_pfc_left_constant_product_coefficientsum_body_steps fs_r_pfc_left_constant_product_coefficientsum_body_steps fs_s_pfc_left_constant_product_coefficientsum_body_steps. ((((exists fs_h_pfc_left_constant_product_coefficientsum_body_steps_summand. fs_h_pfc_left_constant_product_coefficientsum_body_steps_summand + S (fs_a_pfc_left_constant_product_coefficientsum_body_steps) = S ((S (fs_i_pfc_left_constant_product_coefficientsum_body_steps)) * pfc_terms_scale_left_constant_product_coefficient)) /\ exists fs_q_pfc_left_constant_product_coefficientsum_body_steps_summand. pfc_terms_code_left_constant_product_coefficient = fs_q_pfc_left_constant_product_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_left_constant_product_coefficientsum_body_steps)) * pfc_terms_scale_left_constant_product_coefficient) + (fs_a_pfc_left_constant_product_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_left_constant_product_coefficientsum_body_steps_partial. fs_h_pfc_left_constant_product_coefficientsum_body_steps_partial + S (fs_r_pfc_left_constant_product_coefficientsum_body_steps) = S ((S (fs_i_pfc_left_constant_product_coefficientsum_body_steps)) * fs_v_pfc_left_constant_product_coefficientsum)) /\ exists fs_q_pfc_left_constant_product_coefficientsum_body_steps_partial. fs_u_pfc_left_constant_product_coefficientsum = fs_q_pfc_left_constant_product_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_left_constant_product_coefficientsum_body_steps)) * fs_v_pfc_left_constant_product_coefficientsum) + (fs_r_pfc_left_constant_product_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_left_constant_product_coefficientsum_body_steps_successor. fs_h_pfc_left_constant_product_coefficientsum_body_steps_successor + S (fs_s_pfc_left_constant_product_coefficientsum_body_steps) = S ((S (S fs_i_pfc_left_constant_product_coefficientsum_body_steps)) * fs_v_pfc_left_constant_product_coefficientsum)) /\ exists fs_q_pfc_left_constant_product_coefficientsum_body_steps_successor. fs_u_pfc_left_constant_product_coefficientsum = fs_q_pfc_left_constant_product_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_left_constant_product_coefficientsum_body_steps)) * fs_v_pfc_left_constant_product_coefficientsum) + (fs_s_pfc_left_constant_product_coefficientsum_body_steps))) /\ fs_s_pfc_left_constant_product_coefficientsum_body_steps = fs_r_pfc_left_constant_product_coefficientsum_body_steps + fs_a_pfc_left_constant_product_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_left_constant_product_coefficientresiduebound. pfa_gap_left_constant_product_coefficientresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_left_constant_product_coefficientresiduecongruence pfa_offset_right_left_constant_product_coefficientresiduecongruence. (pfc_natural_sum_left_constant_product_coefficient) + (p) * pfa_offset_left_left_constant_product_coefficientresiduecongruence = (r) + (p) * pfa_offset_right_left_constant_product_coefficientresiduecongruence))))))))))) - 0038
specialize hproduct_right_right_right (i) - 0039
apply hproduct_right_right_right - 0040
exact hi - 0041
cases hr - 0042
cases hr_witness - 0043
exists x - 0044
exists x1 - 0045
split - 0046
exact ha_witness - 0047
split - 0048
exact hr_witness_left - 0049
specialize prime_field_convolution_coefficient_left_constant (p) - 0050
specialize prime_field_convolution_coefficient_left_constant (k) - 0051
specialize prime_field_convolution_coefficient_left_constant (kb) - 0052
specialize prime_field_convolution_coefficient_left_constant (kc) - 0053
specialize prime_field_convolution_coefficient_left_constant (ab) - 0054
specialize prime_field_convolution_coefficient_left_constant (ac) - 0055
specialize prime_field_convolution_coefficient_left_constant (L) - 0056
specialize prime_field_convolution_coefficient_left_constant (i) - 0057
specialize prime_field_convolution_coefficient_left_constant (x) - 0058
specialize prime_field_convolution_coefficient_left_constant (x1) - 0059
apply prime_field_convolution_coefficient_left_constant - 0060
exact hk - 0061
exact hi - 0062
exact ha_witness - 0063
exact hkb - 0064
specialize matrix_rank_bounded_prefix_value (ab) - 0065
specialize matrix_rank_bounded_prefix_value (ac) - 0066
specialize matrix_rank_bounded_prefix_value (L) - 0067
specialize matrix_rank_bounded_prefix_value (p) - 0068
specialize matrix_rank_bounded_prefix_value (i) - 0069
specialize matrix_rank_bounded_prefix_value (x) - 0070
apply matrix_rank_bounded_prefix_value - 0071
exact hproduct_right_left - 0072
exact hi - 0073
exact ha_witness - 0074
exact hr_witness_right