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 qb qc Q db dc D pb pc P ab ac L a. ((((L)=S (a)) /\ (((forall fom_index_pfp_nonempty_targetcoefficients. (exists fom_gap_pfp_nonempty_targetcoefficients_index_bound. fom_gap_pfp_nonempty_targetcoefficients_index_bound + S (fom_index_pfp_nonempty_targetcoefficients) = L) -> exists fom_value_pfp_nonempty_targetcoefficients. ((((exists fom_beta_height_pfp_nonempty_targetcoefficients_entry. fom_beta_height_pfp_nonempty_targetcoefficients_entry + S (fom_value_pfp_nonempty_targetcoefficients) = S ((S (fom_index_pfp_nonempty_targetcoefficients)) * ac)) /\ exists fom_beta_quotient_pfp_nonempty_targetcoefficients_entry. ab = fom_beta_quotient_pfp_nonempty_targetcoefficients_entry * S ((S (fom_index_pfp_nonempty_targetcoefficients)) * ac) + (fom_value_pfp_nonempty_targetcoefficients))) /\ (exists fom_gap_pfp_nonempty_targetcoefficients_value_bound. fom_gap_pfp_nonempty_targetcoefficients_value_bound + S (fom_value_pfp_nonempty_targetcoefficients) = p))) /\ ((exists pfd_leading_nonempty_target. ((((exists ff_h_pfp_nonempty_targetentry. ff_h_pfp_nonempty_targetentry + S (pfd_leading_nonempty_target) = S ((S (0)) * ac)) /\ exists ff_q_pfp_nonempty_targetentry. ab = ff_q_pfp_nonempty_targetentry * S ((S (0)) * ac) + (pfd_leading_nonempty_target))) /\ ((~(pfd_leading_nonempty_target=0)))))))))) -> (((forall fom_index_pfp_nonempty_productleft. (exists fom_gap_pfp_nonempty_productleft_index_bound. fom_gap_pfp_nonempty_productleft_index_bound + S (fom_index_pfp_nonempty_productleft) = Q) -> exists fom_value_pfp_nonempty_productleft. ((((exists fom_beta_height_pfp_nonempty_productleft_entry. fom_beta_height_pfp_nonempty_productleft_entry + S (fom_value_pfp_nonempty_productleft) = S ((S (fom_index_pfp_nonempty_productleft)) * qc)) /\ exists fom_beta_quotient_pfp_nonempty_productleft_entry. qb = fom_beta_quotient_pfp_nonempty_productleft_entry * S ((S (fom_index_pfp_nonempty_productleft)) * qc) + (fom_value_pfp_nonempty_productleft))) /\ (exists fom_gap_pfp_nonempty_productleft_value_bound. fom_gap_pfp_nonempty_productleft_value_bound + S (fom_value_pfp_nonempty_productleft) = p))) /\ (((forall fom_index_pfp_nonempty_productright. (exists fom_gap_pfp_nonempty_productright_index_bound. fom_gap_pfp_nonempty_productright_index_bound + S (fom_index_pfp_nonempty_productright) = D) -> exists fom_value_pfp_nonempty_productright. ((((exists fom_beta_height_pfp_nonempty_productright_entry. fom_beta_height_pfp_nonempty_productright_entry + S (fom_value_pfp_nonempty_productright) = S ((S (fom_index_pfp_nonempty_productright)) * dc)) /\ exists fom_beta_quotient_pfp_nonempty_productright_entry. db = fom_beta_quotient_pfp_nonempty_productright_entry * S ((S (fom_index_pfp_nonempty_productright)) * dc) + (fom_value_pfp_nonempty_productright))) /\ (exists fom_gap_pfp_nonempty_productright_value_bound. fom_gap_pfp_nonempty_productright_value_bound + S (fom_value_pfp_nonempty_productright) = p))) /\ (((((((Q)=0 \/ (D)=0) /\ (((P)=0)))) \/ (((~((Q)=0)) /\ (((~((D)=0)) /\ (((Q)+(D)=S (P)))))))) /\ ((forall pfc_index_nonempty_productcoefficients. (exists pfa_gap_nonempty_productcoefficientsbound. pfa_gap_nonempty_productcoefficientsbound + S (pfc_index_nonempty_productcoefficients) = (P)) -> exists pfc_value_nonempty_productcoefficients. ((((exists ff_h_pfp_nonempty_productcoefficientsentry. ff_h_pfp_nonempty_productcoefficientsentry + S (pfc_value_nonempty_productcoefficients) = S ((S (pfc_index_nonempty_productcoefficients)) * pc)) /\ exists ff_q_pfp_nonempty_productcoefficientsentry. pb = ff_q_pfp_nonempty_productcoefficientsentry * S ((S (pfc_index_nonempty_productcoefficients)) * pc) + (pfc_value_nonempty_productcoefficients))) /\ ((exists pfc_terms_code_nonempty_productcoefficientscoefficient pfc_terms_scale_nonempty_productcoefficientscoefficient pfc_natural_sum_nonempty_productcoefficientscoefficient. ((forall pfc_index_nonempty_productcoefficientscoefficientdiagonal. (exists pfa_gap_nonempty_productcoefficientscoefficientdiagonalbound. pfa_gap_nonempty_productcoefficientscoefficientdiagonalbound + S (pfc_index_nonempty_productcoefficientscoefficientdiagonal) = (S (pfc_index_nonempty_productcoefficients))) -> exists pfc_value_nonempty_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_nonempty_productcoefficientscoefficientdiagonalentry. ff_h_pfp_nonempty_productcoefficientscoefficientdiagonalentry + S (pfc_value_nonempty_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_nonempty_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_nonempty_productcoefficientscoefficient)) /\ exists ff_q_pfp_nonempty_productcoefficientscoefficientdiagonalentry. pfc_terms_code_nonempty_productcoefficientscoefficient = ff_q_pfp_nonempty_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_nonempty_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_nonempty_productcoefficientscoefficient) + (pfc_value_nonempty_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_nonempty_productcoefficientscoefficientdiagonalterm pfc_left_nonempty_productcoefficientscoefficientdiagonalterm pfc_right_nonempty_productcoefficientscoefficientdiagonalterm. (((pfc_index_nonempty_productcoefficientscoefficientdiagonal)+pfc_complement_nonempty_productcoefficientscoefficientdiagonalterm=(pfc_index_nonempty_productcoefficients)) /\ ((((((exists pfa_gap_nonempty_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_nonempty_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_nonempty_productcoefficientscoefficientdiagonal) = (Q)) /\ ((((exists ff_h_pfp_nonempty_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_nonempty_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_nonempty_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_nonempty_productcoefficientscoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_nonempty_productcoefficientscoefficientdiagonaltermleftentry. qb = ff_q_pfp_nonempty_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_nonempty_productcoefficientscoefficientdiagonal)) * qc) + (pfc_left_nonempty_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_nonempty_productcoefficientscoefficientdiagonaltermleftoutside+(Q)=(pfc_index_nonempty_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_nonempty_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_nonempty_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_nonempty_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_nonempty_productcoefficientscoefficientdiagonalterm) = (D)) /\ ((((exists ff_h_pfp_nonempty_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_nonempty_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_nonempty_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_nonempty_productcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_nonempty_productcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_nonempty_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_nonempty_productcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_nonempty_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_nonempty_productcoefficientscoefficientdiagonaltermrightoutside+(D)=(pfc_complement_nonempty_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_nonempty_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_nonempty_productcoefficientscoefficientdiagonal)=pfc_left_nonempty_productcoefficientscoefficientdiagonalterm*pfc_right_nonempty_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_nonempty_productcoefficientscoefficientsum fs_v_pfc_nonempty_productcoefficientscoefficientsum. ((((exists fs_h_pfc_nonempty_productcoefficientscoefficientsum_body_start. fs_h_pfc_nonempty_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_nonempty_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_productcoefficientscoefficientsum_body_start. fs_u_pfc_nonempty_productcoefficientscoefficientsum = fs_q_pfc_nonempty_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_nonempty_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_nonempty_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_nonempty_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_nonempty_productcoefficientscoefficient) = S ((S (S (pfc_index_nonempty_productcoefficients))) * fs_v_pfc_nonempty_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_nonempty_productcoefficientscoefficientsum = fs_q_pfc_nonempty_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_nonempty_productcoefficients))) * fs_v_pfc_nonempty_productcoefficientscoefficientsum) + (pfc_natural_sum_nonempty_productcoefficientscoefficient))) /\ forall fs_i_pfc_nonempty_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_nonempty_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_nonempty_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_nonempty_productcoefficientscoefficientsum_body_steps = S (pfc_index_nonempty_productcoefficients)) -> exists fs_a_pfc_nonempty_productcoefficientscoefficientsum_body_steps fs_r_pfc_nonempty_productcoefficientscoefficientsum_body_steps fs_s_pfc_nonempty_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_nonempty_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_nonempty_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_nonempty_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_nonempty_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_nonempty_productcoefficientscoefficient)) /\ exists fs_q_pfc_nonempty_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_nonempty_productcoefficientscoefficient = fs_q_pfc_nonempty_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_nonempty_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_nonempty_productcoefficientscoefficient) + (fs_a_pfc_nonempty_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_nonempty_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_nonempty_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_nonempty_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_nonempty_productcoefficientscoefficientsum = fs_q_pfc_nonempty_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_nonempty_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_productcoefficientscoefficientsum) + (fs_r_pfc_nonempty_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_nonempty_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_nonempty_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_nonempty_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_nonempty_productcoefficientscoefficientsum = fs_q_pfc_nonempty_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_nonempty_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_productcoefficientscoefficientsum) + (fs_s_pfc_nonempty_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_nonempty_productcoefficientscoefficientsum_body_steps = fs_r_pfc_nonempty_productcoefficientscoefficientsum_body_steps + fs_a_pfc_nonempty_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_nonempty_productcoefficientscoefficientresiduebound. pfa_gap_nonempty_productcoefficientscoefficientresiduebound + S (pfc_value_nonempty_productcoefficients) = (p)) /\ ((exists pfa_offset_left_nonempty_productcoefficientscoefficientresiduecongruence pfa_offset_right_nonempty_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_nonempty_productcoefficientscoefficient) + (p) * pfa_offset_left_nonempty_productcoefficientscoefficientresiduecongruence = (pfc_value_nonempty_productcoefficients) + (p) * pfa_offset_right_nonempty_productcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (forall pfrep_power_nonempty_target_equivalent pfrep_left_nonempty_target_equivalent pfrep_right_nonempty_target_equivalent. ((exists pfrep_position_nonempty_target_equivalentfirst. ((pfrep_position_nonempty_target_equivalentfirst+S (pfrep_power_nonempty_target_equivalent)=(P)) /\ ((((exists ff_h_pfp_nonempty_target_equivalentfirstentry. ff_h_pfp_nonempty_target_equivalentfirstentry + S (pfrep_left_nonempty_target_equivalent) = S ((S (pfrep_position_nonempty_target_equivalentfirst)) * pc)) /\ exists ff_q_pfp_nonempty_target_equivalentfirstentry. pb = ff_q_pfp_nonempty_target_equivalentfirstentry * S ((S (pfrep_position_nonempty_target_equivalentfirst)) * pc) + (pfrep_left_nonempty_target_equivalent)))))) \/ (((exists pfrep_gap_nonempty_target_equivalentfirstoutside. pfrep_gap_nonempty_target_equivalentfirstoutside+(P)=(pfrep_power_nonempty_target_equivalent)) /\ (((pfrep_left_nonempty_target_equivalent)=0))))) -> ((exists pfrep_position_nonempty_target_equivalentsecond. ((pfrep_position_nonempty_target_equivalentsecond+S (pfrep_power_nonempty_target_equivalent)=(L)) /\ ((((exists ff_h_pfp_nonempty_target_equivalentsecondentry. ff_h_pfp_nonempty_target_equivalentsecondentry + S (pfrep_right_nonempty_target_equivalent) = S ((S (pfrep_position_nonempty_target_equivalentsecond)) * ac)) /\ exists ff_q_pfp_nonempty_target_equivalentsecondentry. ab = ff_q_pfp_nonempty_target_equivalentsecondentry * S ((S (pfrep_position_nonempty_target_equivalentsecond)) * ac) + (pfrep_right_nonempty_target_equivalent)))))) \/ (((exists pfrep_gap_nonempty_target_equivalentsecondoutside. pfrep_gap_nonempty_target_equivalentsecondoutside+(L)=(pfrep_power_nonempty_target_equivalent)) /\ (((pfrep_right_nonempty_target_equivalent)=0))))) -> pfrep_left_nonempty_target_equivalent=pfrep_right_nonempty_target_equivalent) -> (~(Q=0))Constructive proof overview
Generated structural guide
An actual product formally equal to a nonzero-leading representation cannot have an empty left factor. No degree is assigned to empty factors.
The unchanged tactic script uses 4 declared prerequisites and contains 64 exact native proof lines.
Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
PG006D prime_field_polynomial_nonzero_leading_equivalent_length_bound prime_field_polynomial_equivalent_symmetric Alpha theorem; checked-use authorized succ_ne_zero Alpha theorem; checked-use authorized le_zero 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–18
03Establish hlengthL19–19
Establish this local claim before using it. It is not an additional assumption.
- L19
have hlength : ((((Q)=0 \/ (D)=0) /\ (((P)=0)))) \/ (((~((Q)=0)) /\ (((~((D)=0)) /\ (((Q)+(D)=S (P)))))))
04Separate the logical casesL20–22
05Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
exact hc_right_right_left
06Separate the logical casesL24–27
07Establish hboundL28–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial nonzero leading equivalent length bound.
- L28
have hbound : exists pfc_gap_nonempty_bound. pfc_gap_nonempty_bound+(S a)=(P) - L29
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (ab) - L30
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (ac) - L31
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (a) - L32
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (pb) - L33
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (pc) - L34
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (P) - L35
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (x) - L36
apply prime_field_polynomial_nonzero_leading_equivalent_length_bound - L37
exact ha_right_right_witness_left
08Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact ha_right_right_witness_right
09Establish hsameL39–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial equivalent symmetric.
- L39
have hsame : PolynomialEquivalent(ab,ac,L,pb,pc,P)Definitions: PolynomialEquivalent - L40
specialize prime_field_polynomial_equivalent_symmetric (pb) - L41
specialize prime_field_polynomial_equivalent_symmetric (pc) - L42
specialize prime_field_polynomial_equivalent_symmetric (P) - L43
specialize prime_field_polynomial_equivalent_symmetric (ab) - L44
specialize prime_field_polynomial_equivalent_symmetric (ac) - L45
specialize prime_field_polynomial_equivalent_symmetric (L) - L46
apply prime_field_polynomial_equivalent_symmetric - L47
exact he - L48
rewrite ha_left at hsame
10Calculate and transport equalitiesL49–49
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L49
rewrite ha_left at hsame
11Use earlier factsL50–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L50
exact hsame
12Separate the logical casesL51–52
13Establish hzeroL53–60
14Separate the logical casesL61–62
Original exact command ledger · 64 lines
- 0001
intro p - 0002
intro qb - 0003
intro qc - 0004
intro Q - 0005
intro db - 0006
intro dc - 0007
intro D - 0008
intro pb - 0009
intro pc - 0010
intro P - 0011
intro ab - 0012
intro ac - 0013
intro L - 0014
intro a - 0015
intro ha - 0016
intro hc - 0017
intro he - 0018
intro hz - 0019
have hlength : ((((Q)=0 \/ (D)=0) /\ (((P)=0)))) \/ (((~((Q)=0)) /\ (((~((D)=0)) /\ (((Q)+(D)=S (P))))))) - 0020
cases hc - 0021
cases hc_right - 0022
cases hc_right_right - 0023
exact hc_right_right_left - 0024
cases ha - 0025
cases ha_right - 0026
cases ha_right_right - 0027
cases ha_right_right_witness - 0028
have hbound : exists pfc_gap_nonempty_bound. pfc_gap_nonempty_bound+(S a)=(P) - 0029
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (ab) - 0030
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (ac) - 0031
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (a) - 0032
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (pb) - 0033
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (pc) - 0034
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (P) - 0035
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (x) - 0036
apply prime_field_polynomial_nonzero_leading_equivalent_length_bound - 0037
exact ha_right_right_witness_left - 0038
exact ha_right_right_witness_right - 0039
have hsame : forall pfrep_power_nonempty_symmetric pfrep_left_nonempty_symmetric pfrep_right_nonempty_symmetric. ((exists pfrep_position_nonempty_symmetricfirst. ((pfrep_position_nonempty_symmetricfirst+S (pfrep_power_nonempty_symmetric)=(L)) /\ ((((exists ff_h_pfp_nonempty_symmetricfirstentry. ff_h_pfp_nonempty_symmetricfirstentry + S (pfrep_left_nonempty_symmetric) = S ((S (pfrep_position_nonempty_symmetricfirst)) * ac)) /\ exists ff_q_pfp_nonempty_symmetricfirstentry. ab = ff_q_pfp_nonempty_symmetricfirstentry * S ((S (pfrep_position_nonempty_symmetricfirst)) * ac) + (pfrep_left_nonempty_symmetric)))))) \/ (((exists pfrep_gap_nonempty_symmetricfirstoutside. pfrep_gap_nonempty_symmetricfirstoutside+(L)=(pfrep_power_nonempty_symmetric)) /\ (((pfrep_left_nonempty_symmetric)=0))))) -> ((exists pfrep_position_nonempty_symmetricsecond. ((pfrep_position_nonempty_symmetricsecond+S (pfrep_power_nonempty_symmetric)=(P)) /\ ((((exists ff_h_pfp_nonempty_symmetricsecondentry. ff_h_pfp_nonempty_symmetricsecondentry + S (pfrep_right_nonempty_symmetric) = S ((S (pfrep_position_nonempty_symmetricsecond)) * pc)) /\ exists ff_q_pfp_nonempty_symmetricsecondentry. pb = ff_q_pfp_nonempty_symmetricsecondentry * S ((S (pfrep_position_nonempty_symmetricsecond)) * pc) + (pfrep_right_nonempty_symmetric)))))) \/ (((exists pfrep_gap_nonempty_symmetricsecondoutside. pfrep_gap_nonempty_symmetricsecondoutside+(P)=(pfrep_power_nonempty_symmetric)) /\ (((pfrep_right_nonempty_symmetric)=0))))) -> pfrep_left_nonempty_symmetric=pfrep_right_nonempty_symmetric - 0040
specialize prime_field_polynomial_equivalent_symmetric (pb) - 0041
specialize prime_field_polynomial_equivalent_symmetric (pc) - 0042
specialize prime_field_polynomial_equivalent_symmetric (P) - 0043
specialize prime_field_polynomial_equivalent_symmetric (ab) - 0044
specialize prime_field_polynomial_equivalent_symmetric (ac) - 0045
specialize prime_field_polynomial_equivalent_symmetric (L) - 0046
apply prime_field_polynomial_equivalent_symmetric - 0047
exact he - 0048
rewrite ha_left at hsame - 0049
rewrite ha_left at hsame - 0050
exact hsame - 0051
cases hlength - 0052
cases hlength_left - 0053
have hzero : S a=0 - 0054
specialize le_zero (S a) - 0055
apply le_zero - 0056
rewrite <- hlength_left_right - 0057
exact hbound - 0058
specialize succ_ne_zero (a) - 0059
apply succ_ne_zero - 0060
exact hzero - 0061
cases hlength_right - 0062
cases hlength_right_right - 0063
apply hlength_right_left - 0064
exact hz