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 L. (~((p) = 1) /\ forall pfa_factor_left_left_constant_exists_prime pfa_factor_right_left_constant_exists_prime. (p) = pfa_factor_left_left_constant_exists_prime * pfa_factor_right_left_constant_exists_prime -> pfa_factor_left_left_constant_exists_prime = 1 \/ pfa_factor_right_left_constant_exists_prime = 1) -> (exists pfa_gap_left_constant_exists_scalar. pfa_gap_left_constant_exists_scalar + S (k) = (p)) -> (forall fom_index_pfp_left_constant_exists_input. (exists fom_gap_pfp_left_constant_exists_input_index_bound. fom_gap_pfp_left_constant_exists_input_index_bound + S (fom_index_pfp_left_constant_exists_input) = L) -> exists fom_value_pfp_left_constant_exists_input. ((((exists fom_beta_height_pfp_left_constant_exists_input_entry. fom_beta_height_pfp_left_constant_exists_input_entry + S (fom_value_pfp_left_constant_exists_input) = S ((S (fom_index_pfp_left_constant_exists_input)) * ac)) /\ exists fom_beta_quotient_pfp_left_constant_exists_input_entry. ab = fom_beta_quotient_pfp_left_constant_exists_input_entry * S ((S (fom_index_pfp_left_constant_exists_input)) * ac) + (fom_value_pfp_left_constant_exists_input))) /\ (exists fom_gap_pfp_left_constant_exists_input_value_bound. fom_gap_pfp_left_constant_exists_input_value_bound + S (fom_value_pfp_left_constant_exists_input) = p))) -> (exists kb kc hb hc. ((forall fom_index_pfp_left_constant_exists_result_K. (exists fom_gap_pfp_left_constant_exists_result_K_index_bound. fom_gap_pfp_left_constant_exists_result_K_index_bound + S (fom_index_pfp_left_constant_exists_result_K) = 1) -> exists fom_value_pfp_left_constant_exists_result_K. ((((exists fom_beta_height_pfp_left_constant_exists_result_K_entry. fom_beta_height_pfp_left_constant_exists_result_K_entry + S (fom_value_pfp_left_constant_exists_result_K) = S ((S (fom_index_pfp_left_constant_exists_result_K)) * kc)) /\ exists fom_beta_quotient_pfp_left_constant_exists_result_K_entry. kb = fom_beta_quotient_pfp_left_constant_exists_result_K_entry * S ((S (fom_index_pfp_left_constant_exists_result_K)) * kc) + (fom_value_pfp_left_constant_exists_result_K))) /\ (exists fom_gap_pfp_left_constant_exists_result_K_value_bound. fom_gap_pfp_left_constant_exists_result_K_value_bound + S (fom_value_pfp_left_constant_exists_result_K) = p))) /\ (((((exists ff_h_pfp_left_constant_exists_result_head. ff_h_pfp_left_constant_exists_result_head + S (k) = S ((S (0)) * kc)) /\ exists ff_q_pfp_left_constant_exists_result_head. kb = ff_q_pfp_left_constant_exists_result_head * S ((S (0)) * kc) + (k))) /\ (((((exists pfa_gap_left_constant_exists_result_scalescalar. pfa_gap_left_constant_exists_result_scalescalar + S (k) = (p)) /\ ((forall pfp_index_left_constant_exists_result_scale. (exists pfa_gap_left_constant_exists_result_scaleindex. pfa_gap_left_constant_exists_result_scaleindex + S (pfp_index_left_constant_exists_result_scale) = (L)) -> exists pfp_source_left_constant_exists_result_scale pfp_value_left_constant_exists_result_scale. ((((exists ff_h_pfp_left_constant_exists_result_scalesource. ff_h_pfp_left_constant_exists_result_scalesource + S (pfp_source_left_constant_exists_result_scale) = S ((S (pfp_index_left_constant_exists_result_scale)) * ac)) /\ exists ff_q_pfp_left_constant_exists_result_scalesource. ab = ff_q_pfp_left_constant_exists_result_scalesource * S ((S (pfp_index_left_constant_exists_result_scale)) * ac) + (pfp_source_left_constant_exists_result_scale))) /\ (((((exists ff_h_pfp_left_constant_exists_result_scaletarget. ff_h_pfp_left_constant_exists_result_scaletarget + S (pfp_value_left_constant_exists_result_scale) = S ((S (pfp_index_left_constant_exists_result_scale)) * hc)) /\ exists ff_q_pfp_left_constant_exists_result_scaletarget. hb = ff_q_pfp_left_constant_exists_result_scaletarget * S ((S (pfp_index_left_constant_exists_result_scale)) * hc) + (pfp_value_left_constant_exists_result_scale))) /\ ((((exists pfa_gap_left_constant_exists_result_scaleoperationleft. pfa_gap_left_constant_exists_result_scaleoperationleft + S (k) = (p)) /\ (((exists pfa_gap_left_constant_exists_result_scaleoperationright. pfa_gap_left_constant_exists_result_scaleoperationright + S (pfp_source_left_constant_exists_result_scale) = (p)) /\ ((((exists pfa_gap_left_constant_exists_result_scaleoperationresultbound. pfa_gap_left_constant_exists_result_scaleoperationresultbound + S (pfp_value_left_constant_exists_result_scale) = (p)) /\ ((exists pfa_offset_left_left_constant_exists_result_scaleoperationresultcongruence pfa_offset_right_left_constant_exists_result_scaleoperationresultcongruence. ((k) * (pfp_source_left_constant_exists_result_scale)) + (p) * pfa_offset_left_left_constant_exists_result_scaleoperationresultcongruence = (pfp_value_left_constant_exists_result_scale) + (p) * pfa_offset_right_left_constant_exists_result_scaleoperationresultcongruence))))))))))))))))) /\ ((((forall fom_index_pfp_left_constant_exists_result_productleft. (exists fom_gap_pfp_left_constant_exists_result_productleft_index_bound. fom_gap_pfp_left_constant_exists_result_productleft_index_bound + S (fom_index_pfp_left_constant_exists_result_productleft) = 1) -> exists fom_value_pfp_left_constant_exists_result_productleft. ((((exists fom_beta_height_pfp_left_constant_exists_result_productleft_entry. fom_beta_height_pfp_left_constant_exists_result_productleft_entry + S (fom_value_pfp_left_constant_exists_result_productleft) = S ((S (fom_index_pfp_left_constant_exists_result_productleft)) * kc)) /\ exists fom_beta_quotient_pfp_left_constant_exists_result_productleft_entry. kb = fom_beta_quotient_pfp_left_constant_exists_result_productleft_entry * S ((S (fom_index_pfp_left_constant_exists_result_productleft)) * kc) + (fom_value_pfp_left_constant_exists_result_productleft))) /\ (exists fom_gap_pfp_left_constant_exists_result_productleft_value_bound. fom_gap_pfp_left_constant_exists_result_productleft_value_bound + S (fom_value_pfp_left_constant_exists_result_productleft) = p))) /\ (((forall fom_index_pfp_left_constant_exists_result_productright. (exists fom_gap_pfp_left_constant_exists_result_productright_index_bound. fom_gap_pfp_left_constant_exists_result_productright_index_bound + S (fom_index_pfp_left_constant_exists_result_productright) = L) -> exists fom_value_pfp_left_constant_exists_result_productright. ((((exists fom_beta_height_pfp_left_constant_exists_result_productright_entry. fom_beta_height_pfp_left_constant_exists_result_productright_entry + S (fom_value_pfp_left_constant_exists_result_productright) = S ((S (fom_index_pfp_left_constant_exists_result_productright)) * ac)) /\ exists fom_beta_quotient_pfp_left_constant_exists_result_productright_entry. ab = fom_beta_quotient_pfp_left_constant_exists_result_productright_entry * S ((S (fom_index_pfp_left_constant_exists_result_productright)) * ac) + (fom_value_pfp_left_constant_exists_result_productright))) /\ (exists fom_gap_pfp_left_constant_exists_result_productright_value_bound. fom_gap_pfp_left_constant_exists_result_productright_value_bound + S (fom_value_pfp_left_constant_exists_result_productright) = p))) /\ (((((((1)=0 \/ (L)=0) /\ (((L)=0)))) \/ (((~((1)=0)) /\ (((~((L)=0)) /\ (((1)+(L)=S (L)))))))) /\ ((forall pfc_index_left_constant_exists_result_productcoefficients. (exists pfa_gap_left_constant_exists_result_productcoefficientsbound. pfa_gap_left_constant_exists_result_productcoefficientsbound + S (pfc_index_left_constant_exists_result_productcoefficients) = (L)) -> exists pfc_value_left_constant_exists_result_productcoefficients. ((((exists ff_h_pfp_left_constant_exists_result_productcoefficientsentry. ff_h_pfp_left_constant_exists_result_productcoefficientsentry + S (pfc_value_left_constant_exists_result_productcoefficients) = S ((S (pfc_index_left_constant_exists_result_productcoefficients)) * hc)) /\ exists ff_q_pfp_left_constant_exists_result_productcoefficientsentry. hb = ff_q_pfp_left_constant_exists_result_productcoefficientsentry * S ((S (pfc_index_left_constant_exists_result_productcoefficients)) * hc) + (pfc_value_left_constant_exists_result_productcoefficients))) /\ ((exists pfc_terms_code_left_constant_exists_result_productcoefficientscoefficient pfc_terms_scale_left_constant_exists_result_productcoefficientscoefficient pfc_natural_sum_left_constant_exists_result_productcoefficientscoefficient. ((forall pfc_index_left_constant_exists_result_productcoefficientscoefficientdiagonal. (exists pfa_gap_left_constant_exists_result_productcoefficientscoefficientdiagonalbound. pfa_gap_left_constant_exists_result_productcoefficientscoefficientdiagonalbound + S (pfc_index_left_constant_exists_result_productcoefficientscoefficientdiagonal) = (S (pfc_index_left_constant_exists_result_productcoefficients))) -> exists pfc_value_left_constant_exists_result_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_left_constant_exists_result_productcoefficientscoefficientdiagonalentry. ff_h_pfp_left_constant_exists_result_productcoefficientscoefficientdiagonalentry + S (pfc_value_left_constant_exists_result_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_left_constant_exists_result_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_left_constant_exists_result_productcoefficientscoefficient)) /\ exists ff_q_pfp_left_constant_exists_result_productcoefficientscoefficientdiagonalentry. pfc_terms_code_left_constant_exists_result_productcoefficientscoefficient = ff_q_pfp_left_constant_exists_result_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_left_constant_exists_result_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_left_constant_exists_result_productcoefficientscoefficient) + (pfc_value_left_constant_exists_result_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_left_constant_exists_result_productcoefficientscoefficientdiagonalterm pfc_left_left_constant_exists_result_productcoefficientscoefficientdiagonalterm pfc_right_left_constant_exists_result_productcoefficientscoefficientdiagonalterm. (((pfc_index_left_constant_exists_result_productcoefficientscoefficientdiagonal)+pfc_complement_left_constant_exists_result_productcoefficientscoefficientdiagonalterm=(pfc_index_left_constant_exists_result_productcoefficients)) /\ ((((((exists pfa_gap_left_constant_exists_result_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_left_constant_exists_result_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_left_constant_exists_result_productcoefficientscoefficientdiagonal) = (1)) /\ ((((exists ff_h_pfp_left_constant_exists_result_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_left_constant_exists_result_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_left_constant_exists_result_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_left_constant_exists_result_productcoefficientscoefficientdiagonal)) * kc)) /\ exists ff_q_pfp_left_constant_exists_result_productcoefficientscoefficientdiagonaltermleftentry. kb = ff_q_pfp_left_constant_exists_result_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_left_constant_exists_result_productcoefficientscoefficientdiagonal)) * kc) + (pfc_left_left_constant_exists_result_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_left_constant_exists_result_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_left_constant_exists_result_productcoefficientscoefficientdiagonaltermleftoutside+(1)=(pfc_index_left_constant_exists_result_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_left_constant_exists_result_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_left_constant_exists_result_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_left_constant_exists_result_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_left_constant_exists_result_productcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_left_constant_exists_result_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_left_constant_exists_result_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_left_constant_exists_result_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_left_constant_exists_result_productcoefficientscoefficientdiagonalterm)) * ac)) /\ exists ff_q_pfp_left_constant_exists_result_productcoefficientscoefficientdiagonaltermrightentry. ab = ff_q_pfp_left_constant_exists_result_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_left_constant_exists_result_productcoefficientscoefficientdiagonalterm)) * ac) + (pfc_right_left_constant_exists_result_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_left_constant_exists_result_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_left_constant_exists_result_productcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_left_constant_exists_result_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_left_constant_exists_result_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_left_constant_exists_result_productcoefficientscoefficientdiagonal)=pfc_left_left_constant_exists_result_productcoefficientscoefficientdiagonalterm*pfc_right_left_constant_exists_result_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_left_constant_exists_result_productcoefficientscoefficientsum fs_v_pfc_left_constant_exists_result_productcoefficientscoefficientsum. ((((exists fs_h_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_start. fs_h_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_left_constant_exists_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_start. fs_u_pfc_left_constant_exists_result_productcoefficientscoefficientsum = fs_q_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_left_constant_exists_result_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_left_constant_exists_result_productcoefficientscoefficient) = S ((S (S (pfc_index_left_constant_exists_result_productcoefficients))) * fs_v_pfc_left_constant_exists_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_left_constant_exists_result_productcoefficientscoefficientsum = fs_q_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_left_constant_exists_result_productcoefficients))) * fs_v_pfc_left_constant_exists_result_productcoefficientscoefficientsum) + (pfc_natural_sum_left_constant_exists_result_productcoefficientscoefficient))) /\ forall fs_i_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps = S (pfc_index_left_constant_exists_result_productcoefficients)) -> exists fs_a_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps fs_r_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps fs_s_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_left_constant_exists_result_productcoefficientscoefficient)) /\ exists fs_q_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_left_constant_exists_result_productcoefficientscoefficient = fs_q_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_left_constant_exists_result_productcoefficientscoefficient) + (fs_a_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_left_constant_exists_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_left_constant_exists_result_productcoefficientscoefficientsum = fs_q_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_left_constant_exists_result_productcoefficientscoefficientsum) + (fs_r_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_left_constant_exists_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_left_constant_exists_result_productcoefficientscoefficientsum = fs_q_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_left_constant_exists_result_productcoefficientscoefficientsum) + (fs_s_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps = fs_r_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps + fs_a_pfc_left_constant_exists_result_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_left_constant_exists_result_productcoefficientscoefficientresiduebound. pfa_gap_left_constant_exists_result_productcoefficientscoefficientresiduebound + S (pfc_value_left_constant_exists_result_productcoefficients) = (p)) /\ ((exists pfa_offset_left_left_constant_exists_result_productcoefficientscoefficientresiduecongruence pfa_offset_right_left_constant_exists_result_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_left_constant_exists_result_productcoefficientscoefficient) + (p) * pfa_offset_left_left_constant_exists_result_productcoefficientscoefficientresiduecongruence = (pfc_value_left_constant_exists_result_productcoefficients) + (p) * pfa_offset_right_left_constant_exists_result_productcoefficientscoefficientresiduecongruence))))))))))))))))))))))))))Constructive proof overview
Generated structural guide
Construct the canonical singleton and actual scalar output, then prove their genuine left-factor product using those same output codes. Empty source prefixes still require a canonical scalar and singleton; no beta-code uniqueness or gcd endpoint is claimed.
The unchanged tactic script uses 5 declared prerequisites and contains 62 exact native proof lines.
Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
prime_field_polynomial_repeat_exists Alpha theorem; checked-use authorized prime_field_polynomial_scale_exists Alpha theorem; checked-use authorized prime_nonzero Alpha theorem; checked-use authorized zero_add Alpha theorem; checked-use authorized PG0051 prime_field_polynomial_scale_to_left_constant_productDirect 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–8
02Establish hKL9–14
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial repeat exists.
- L9
have hK : ∃ kb. ∃ kc. BetaPrefixInto(kb,kc,1,p) ∧ Repeat(kb,kc,k,1)Definitions: BetaPrefixIntoRepeat - L10
specialize prime_field_polynomial_repeat_exists (p) - L11
specialize prime_field_polynomial_repeat_exists (k) - L12
specialize prime_field_polynomial_repeat_exists (1) - L13
apply prime_field_polynomial_repeat_exists - L14
exact hk
03Separate the logical casesL15–17
04Establish hsL18–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial scale exists.
- L18
have hs : ∃ hb. ∃ hc. FpPolyScale(p,k,ab,ac,hb,hc,L)Definitions: FpPolyScale - L19
specialize prime_field_polynomial_scale_exists (p) - L20
specialize prime_field_polynomial_scale_exists (k) - L21
specialize prime_field_polynomial_scale_exists (ab) - L22
specialize prime_field_polynomial_scale_exists (ac) - L23
specialize prime_field_polynomial_scale_exists (L) - L24
apply prime_field_polynomial_scale_exists - L25
intro hz - L26
specialize prime_nonzero (p) - L27
apply prime_nonzero
05Use earlier factsL28–31
06Separate the logical casesL32–33
07Establish hentryL34–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hK witness witness right.
- L34
have hentry : ((exists ff_h_pfp_left_constant_exists_head. ff_h_pfp_left_constant_exists_head + S (k) = S ((S (0)) * x1)) /\ exists ff_q_pfp_left_constant_exists_head. x = ff_q_pfp_left_constant_exists_head * S ((S (0)) * x1) + (k)) - L35
specialize hK_witness_witness_right (0) - L36
apply hK_witness_witness_right
08Construct an explicit witnessL37–37
Supply the displayed value, then prove that it has the required property.
- L37
exists 0
09Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
apply zero_add
10Construct an explicit witnessL39–42
11Separate the logical casesL43–43
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L43
split
12Use earlier factsL44–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L44
exact hK_witness_witness_left
13Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
split
14Use earlier factsL46–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
exact hentry
15Separate the logical casesL47–47
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L47
split
16Use earlier factsL48–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L48
exact hs_witness_witness - L49
specialize prime_field_polynomial_scale_to_left_constant_product (p) - L50
specialize prime_field_polynomial_scale_to_left_constant_product (k) - L51
specialize prime_field_polynomial_scale_to_left_constant_product (x) - L52
specialize prime_field_polynomial_scale_to_left_constant_product (x1) - L53
specialize prime_field_polynomial_scale_to_left_constant_product (ab) - L54
specialize prime_field_polynomial_scale_to_left_constant_product (ac) - L55
specialize prime_field_polynomial_scale_to_left_constant_product (x2) - L56
specialize prime_field_polynomial_scale_to_left_constant_product (x3) - L57
specialize prime_field_polynomial_scale_to_left_constant_product (L)
Original exact command ledger · 62 lines
- 0001
intro p - 0002
intro k - 0003
intro ab - 0004
intro ac - 0005
intro L - 0006
intro hp - 0007
intro hk - 0008
intro ha - 0009
have hK : exists kb kc. ((forall fom_index_pfp_left_constant_exists_K. (exists fom_gap_pfp_left_constant_exists_K_index_bound. fom_gap_pfp_left_constant_exists_K_index_bound + S (fom_index_pfp_left_constant_exists_K) = 1) -> exists fom_value_pfp_left_constant_exists_K. ((((exists fom_beta_height_pfp_left_constant_exists_K_entry. fom_beta_height_pfp_left_constant_exists_K_entry + S (fom_value_pfp_left_constant_exists_K) = S ((S (fom_index_pfp_left_constant_exists_K)) * kc)) /\ exists fom_beta_quotient_pfp_left_constant_exists_K_entry. kb = fom_beta_quotient_pfp_left_constant_exists_K_entry * S ((S (fom_index_pfp_left_constant_exists_K)) * kc) + (fom_value_pfp_left_constant_exists_K))) /\ (exists fom_gap_pfp_left_constant_exists_K_value_bound. fom_gap_pfp_left_constant_exists_K_value_bound + S (fom_value_pfp_left_constant_exists_K) = p))) /\ ((forall pfp_repeat_index_left_constant_exists_repeat. (exists pfa_gap_left_constant_exists_repeatindex. pfa_gap_left_constant_exists_repeatindex + S (pfp_repeat_index_left_constant_exists_repeat) = (1)) -> (((exists ff_h_pfp_left_constant_exists_repeatentry. ff_h_pfp_left_constant_exists_repeatentry + S (k) = S ((S (pfp_repeat_index_left_constant_exists_repeat)) * kc)) /\ exists ff_q_pfp_left_constant_exists_repeatentry. kb = ff_q_pfp_left_constant_exists_repeatentry * S ((S (pfp_repeat_index_left_constant_exists_repeat)) * kc) + (k)))))) - 0010
specialize prime_field_polynomial_repeat_exists (p) - 0011
specialize prime_field_polynomial_repeat_exists (k) - 0012
specialize prime_field_polynomial_repeat_exists (1) - 0013
apply prime_field_polynomial_repeat_exists - 0014
exact hk - 0015
cases hK - 0016
cases hK_witness - 0017
cases hK_witness_witness - 0018
have hs : exists hb hc. ((exists pfa_gap_left_constant_exists_scalescalar. pfa_gap_left_constant_exists_scalescalar + S (k) = (p)) /\ ((forall pfp_index_left_constant_exists_scale. (exists pfa_gap_left_constant_exists_scaleindex. pfa_gap_left_constant_exists_scaleindex + S (pfp_index_left_constant_exists_scale) = (L)) -> exists pfp_source_left_constant_exists_scale pfp_value_left_constant_exists_scale. ((((exists ff_h_pfp_left_constant_exists_scalesource. ff_h_pfp_left_constant_exists_scalesource + S (pfp_source_left_constant_exists_scale) = S ((S (pfp_index_left_constant_exists_scale)) * ac)) /\ exists ff_q_pfp_left_constant_exists_scalesource. ab = ff_q_pfp_left_constant_exists_scalesource * S ((S (pfp_index_left_constant_exists_scale)) * ac) + (pfp_source_left_constant_exists_scale))) /\ (((((exists ff_h_pfp_left_constant_exists_scaletarget. ff_h_pfp_left_constant_exists_scaletarget + S (pfp_value_left_constant_exists_scale) = S ((S (pfp_index_left_constant_exists_scale)) * hc)) /\ exists ff_q_pfp_left_constant_exists_scaletarget. hb = ff_q_pfp_left_constant_exists_scaletarget * S ((S (pfp_index_left_constant_exists_scale)) * hc) + (pfp_value_left_constant_exists_scale))) /\ ((((exists pfa_gap_left_constant_exists_scaleoperationleft. pfa_gap_left_constant_exists_scaleoperationleft + S (k) = (p)) /\ (((exists pfa_gap_left_constant_exists_scaleoperationright. pfa_gap_left_constant_exists_scaleoperationright + S (pfp_source_left_constant_exists_scale) = (p)) /\ ((((exists pfa_gap_left_constant_exists_scaleoperationresultbound. pfa_gap_left_constant_exists_scaleoperationresultbound + S (pfp_value_left_constant_exists_scale) = (p)) /\ ((exists pfa_offset_left_left_constant_exists_scaleoperationresultcongruence pfa_offset_right_left_constant_exists_scaleoperationresultcongruence. ((k) * (pfp_source_left_constant_exists_scale)) + (p) * pfa_offset_left_left_constant_exists_scaleoperationresultcongruence = (pfp_value_left_constant_exists_scale) + (p) * pfa_offset_right_left_constant_exists_scaleoperationresultcongruence)))))))))))))))) - 0019
specialize prime_field_polynomial_scale_exists (p) - 0020
specialize prime_field_polynomial_scale_exists (k) - 0021
specialize prime_field_polynomial_scale_exists (ab) - 0022
specialize prime_field_polynomial_scale_exists (ac) - 0023
specialize prime_field_polynomial_scale_exists (L) - 0024
apply prime_field_polynomial_scale_exists - 0025
intro hz - 0026
specialize prime_nonzero (p) - 0027
apply prime_nonzero - 0028
exact hp - 0029
exact hz - 0030
exact hk - 0031
exact ha - 0032
cases hs - 0033
cases hs_witness - 0034
have hentry : ((exists ff_h_pfp_left_constant_exists_head. ff_h_pfp_left_constant_exists_head + S (k) = S ((S (0)) * x1)) /\ exists ff_q_pfp_left_constant_exists_head. x = ff_q_pfp_left_constant_exists_head * S ((S (0)) * x1) + (k)) - 0035
specialize hK_witness_witness_right (0) - 0036
apply hK_witness_witness_right - 0037
exists 0 - 0038
apply zero_add - 0039
exists x - 0040
exists x1 - 0041
exists x2 - 0042
exists x3 - 0043
split - 0044
exact hK_witness_witness_left - 0045
split - 0046
exact hentry - 0047
split - 0048
exact hs_witness_witness - 0049
specialize prime_field_polynomial_scale_to_left_constant_product (p) - 0050
specialize prime_field_polynomial_scale_to_left_constant_product (k) - 0051
specialize prime_field_polynomial_scale_to_left_constant_product (x) - 0052
specialize prime_field_polynomial_scale_to_left_constant_product (x1) - 0053
specialize prime_field_polynomial_scale_to_left_constant_product (ab) - 0054
specialize prime_field_polynomial_scale_to_left_constant_product (ac) - 0055
specialize prime_field_polynomial_scale_to_left_constant_product (x2) - 0056
specialize prime_field_polynomial_scale_to_left_constant_product (x3) - 0057
specialize prime_field_polynomial_scale_to_left_constant_product (L) - 0058
apply prime_field_polynomial_scale_to_left_constant_product - 0059
exact hp - 0060
exact hK_witness_witness_left - 0061
exact hentry - 0062
exact hs_witness_witness