Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Exact expanded first-order arithmetic statement
forall p ab ac L d. (~((p) = 1) /\ forall pfa_factor_left_normalization_exists_prime pfa_factor_right_normalization_exists_prime. (p) = pfa_factor_left_normalization_exists_prime * pfa_factor_right_normalization_exists_prime -> pfa_factor_left_normalization_exists_prime = 1 \/ pfa_factor_right_normalization_exists_prime = 1) -> ((((L)=S (d)) /\ (((forall fom_index_pfp_normalization_exists_inputcoefficients. (exists fom_gap_pfp_normalization_exists_inputcoefficients_index_bound. fom_gap_pfp_normalization_exists_inputcoefficients_index_bound + S (fom_index_pfp_normalization_exists_inputcoefficients) = L) -> exists fom_value_pfp_normalization_exists_inputcoefficients. ((((exists fom_beta_height_pfp_normalization_exists_inputcoefficients_entry. fom_beta_height_pfp_normalization_exists_inputcoefficients_entry + S (fom_value_pfp_normalization_exists_inputcoefficients) = S ((S (fom_index_pfp_normalization_exists_inputcoefficients)) * ac)) /\ exists fom_beta_quotient_pfp_normalization_exists_inputcoefficients_entry. ab = fom_beta_quotient_pfp_normalization_exists_inputcoefficients_entry * S ((S (fom_index_pfp_normalization_exists_inputcoefficients)) * ac) + (fom_value_pfp_normalization_exists_inputcoefficients))) /\ (exists fom_gap_pfp_normalization_exists_inputcoefficients_value_bound. fom_gap_pfp_normalization_exists_inputcoefficients_value_bound + S (fom_value_pfp_normalization_exists_inputcoefficients) = p))) /\ ((exists pfd_leading_normalization_exists_input. ((((exists ff_h_pfp_normalization_exists_inputentry. ff_h_pfp_normalization_exists_inputentry + S (pfd_leading_normalization_exists_input) = S ((S (0)) * ac)) /\ exists ff_q_pfp_normalization_exists_inputentry. ab = ff_q_pfp_normalization_exists_inputentry * S ((S (0)) * ac) + (pfd_leading_normalization_exists_input))) /\ ((~(pfd_leading_normalization_exists_input=0)))))))))) -> exists k bb bc. (((~((L) = 0)) /\ (((exists pfm_leading_normalization_exists_result. ((((exists ff_h_pfp_normalization_exists_resultsource. ff_h_pfp_normalization_exists_resultsource + S (pfm_leading_normalization_exists_result) = S ((S (0)) * ac)) /\ exists ff_q_pfp_normalization_exists_resultsource. ab = ff_q_pfp_normalization_exists_resultsource * S ((S (0)) * ac) + (pfm_leading_normalization_exists_result))) /\ ((((~((pfm_leading_normalization_exists_result) = 0)) /\ ((((exists pfa_gap_normalization_exists_resultinversemultiplicationleft. pfa_gap_normalization_exists_resultinversemultiplicationleft + S (pfm_leading_normalization_exists_result) = (p)) /\ (((exists pfa_gap_normalization_exists_resultinversemultiplicationright. pfa_gap_normalization_exists_resultinversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_normalization_exists_resultinversemultiplicationresultbound. pfa_gap_normalization_exists_resultinversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_normalization_exists_resultinversemultiplicationresultcongruence pfa_offset_right_normalization_exists_resultinversemultiplicationresultcongruence. ((pfm_leading_normalization_exists_result) * (k)) + (p) * pfa_offset_left_normalization_exists_resultinversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_normalization_exists_resultinversemultiplicationresultcongruence))))))))))))))) /\ ((((exists pfa_gap_normalization_exists_resultscalescalar. pfa_gap_normalization_exists_resultscalescalar + S (k) = (p)) /\ ((forall pfp_index_normalization_exists_resultscale. (exists pfa_gap_normalization_exists_resultscaleindex. pfa_gap_normalization_exists_resultscaleindex + S (pfp_index_normalization_exists_resultscale) = (L)) -> exists pfp_source_normalization_exists_resultscale pfp_value_normalization_exists_resultscale. ((((exists ff_h_pfp_normalization_exists_resultscalesource. ff_h_pfp_normalization_exists_resultscalesource + S (pfp_source_normalization_exists_resultscale) = S ((S (pfp_index_normalization_exists_resultscale)) * ac)) /\ exists ff_q_pfp_normalization_exists_resultscalesource. ab = ff_q_pfp_normalization_exists_resultscalesource * S ((S (pfp_index_normalization_exists_resultscale)) * ac) + (pfp_source_normalization_exists_resultscale))) /\ (((((exists ff_h_pfp_normalization_exists_resultscaletarget. ff_h_pfp_normalization_exists_resultscaletarget + S (pfp_value_normalization_exists_resultscale) = S ((S (pfp_index_normalization_exists_resultscale)) * bc)) /\ exists ff_q_pfp_normalization_exists_resultscaletarget. bb = ff_q_pfp_normalization_exists_resultscaletarget * S ((S (pfp_index_normalization_exists_resultscale)) * bc) + (pfp_value_normalization_exists_resultscale))) /\ ((((exists pfa_gap_normalization_exists_resultscaleoperationleft. pfa_gap_normalization_exists_resultscaleoperationleft + S (k) = (p)) /\ (((exists pfa_gap_normalization_exists_resultscaleoperationright. pfa_gap_normalization_exists_resultscaleoperationright + S (pfp_source_normalization_exists_resultscale) = (p)) /\ ((((exists pfa_gap_normalization_exists_resultscaleoperationresultbound. pfa_gap_normalization_exists_resultscaleoperationresultbound + S (pfp_value_normalization_exists_resultscale) = (p)) /\ ((exists pfa_offset_left_normalization_exists_resultscaleoperationresultcongruence pfa_offset_right_normalization_exists_resultscaleoperationresultcongruence. ((k) * (pfp_source_normalization_exists_resultscale)) + (p) * pfa_offset_left_normalization_exists_resultscaleoperationresultcongruence = (pfp_value_normalization_exists_resultscale) + (p) * pfa_offset_right_normalization_exists_resultscaleoperationresultcongruence))))))))))))))))))))))Constructive proof overview
Generated structural guide
Construct an actual inverse and actual scaled beta prefix from a canonical nonzero-leading representation over any prime, including two.
The unchanged tactic script uses 5 declared prerequisites and contains 70 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
matrix_rank_bounded_prefix_value Alpha theorem; checked-use authorized prime_field_inverse_exists Alpha theorem; checked-use authorized prime_field_polynomial_scale_exists Alpha theorem; checked-use authorized prime_nonzero Stable theorem; checked-use authorized succ_ne_zero Stable 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.
01Fix variables and assumptionsL1–7
02Separate the logical casesL8–11
03Establish haL12–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix rank bounded prefix value.
- L12
have ha : exists pfa_gap_normalization_exists_bound. pfa_gap_normalization_exists_bound + S (x) = (p) - L13
specialize matrix_rank_bounded_prefix_value (ab) - L14
specialize matrix_rank_bounded_prefix_value (ac) - L15
specialize matrix_rank_bounded_prefix_value (L) - L16
specialize matrix_rank_bounded_prefix_value (p) - L17
specialize matrix_rank_bounded_prefix_value (0) - L18
specialize matrix_rank_bounded_prefix_value (x) - L19
apply matrix_rank_bounded_prefix_value - L20
exact hd_right_left - L21
rewrite hd_left
04Construct an explicit witnessL22–22
Supply the displayed value, then prove that it has the required property.
- L22
exists d
05Calculate and transport equalitiesL23–23
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L23
simp
06Use earlier factsL24–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
exact hd_right_right_witness_left
07Establish hiL25–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field inverse exists.
08Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
cases hi
09Establish hcL33–34
10Separate the logical casesL35–37
11Establish hsL38–47
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial scale exists.
- L38
have hs : ∃ bb. ∃ bc. FpPolyScale(p,x1,ab,ac,bb,bc,L)Definitions: FpPolyScale - L39
specialize prime_field_polynomial_scale_exists (p) - L40
specialize prime_field_polynomial_scale_exists (x1) - L41
specialize prime_field_polynomial_scale_exists (ab) - L42
specialize prime_field_polynomial_scale_exists (ac) - L43
specialize prime_field_polynomial_scale_exists (L) - L44
apply prime_field_polynomial_scale_exists - L45
intro hz - L46
specialize prime_nonzero (p) - L47
apply prime_nonzero
12Use earlier factsL48–51
13Separate the logical casesL52–53
14Construct an explicit witnessL54–56
15Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
split
16Fix variables and assumptionsL58–58
Work with arbitrary variables or the premises of the current implication.
- L58
intro hz
17Use earlier factsL59–60
18Calculate and transport equalitiesL61–62
19Use earlier factsL63–64
20Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
split
21Construct an explicit witnessL66–66
Supply the displayed value, then prove that it has the required property.
- L66
exists x
22Separate the logical casesL67–67
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L67
split
Original exact command ledger · 70 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro L - 0005
intro d - 0006
intro hp - 0007
intro hd - 0008
cases hd - 0009
cases hd_right - 0010
cases hd_right_right - 0011
cases hd_right_right_witness - 0012
have ha : exists pfa_gap_normalization_exists_bound. pfa_gap_normalization_exists_bound + S (x) = (p) - 0013
specialize matrix_rank_bounded_prefix_value (ab) - 0014
specialize matrix_rank_bounded_prefix_value (ac) - 0015
specialize matrix_rank_bounded_prefix_value (L) - 0016
specialize matrix_rank_bounded_prefix_value (p) - 0017
specialize matrix_rank_bounded_prefix_value (0) - 0018
specialize matrix_rank_bounded_prefix_value (x) - 0019
apply matrix_rank_bounded_prefix_value - 0020
exact hd_right_left - 0021
rewrite hd_left - 0022
exists d - 0023
simp - 0024
exact hd_right_right_witness_left - 0025
have hi : exists k. (((~((x) = 0)) /\ ((((exists pfa_gap_normalization_exists_inversemultiplicationleft. pfa_gap_normalization_exists_inversemultiplicationleft + S (x) = (p)) /\ (((exists pfa_gap_normalization_exists_inversemultiplicationright. pfa_gap_normalization_exists_inversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_normalization_exists_inversemultiplicationresultbound. pfa_gap_normalization_exists_inversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_normalization_exists_inversemultiplicationresultcongruence pfa_offset_right_normalization_exists_inversemultiplicationresultcongruence. ((x) * (k)) + (p) * pfa_offset_left_normalization_exists_inversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_normalization_exists_inversemultiplicationresultcongruence)))))))))))) - 0026
specialize prime_field_inverse_exists (p) - 0027
specialize prime_field_inverse_exists (x) - 0028
apply prime_field_inverse_exists - 0029
exact hp - 0030
exact ha - 0031
exact hd_right_right_witness_right - 0032
cases hi - 0033
have hc : ((~((x) = 0)) /\ ((((exists pfa_gap_normalization_exists_inverse_copymultiplicationleft. pfa_gap_normalization_exists_inverse_copymultiplicationleft + S (x) = (p)) /\ (((exists pfa_gap_normalization_exists_inverse_copymultiplicationright. pfa_gap_normalization_exists_inverse_copymultiplicationright + S (x1) = (p)) /\ ((((exists pfa_gap_normalization_exists_inverse_copymultiplicationresultbound. pfa_gap_normalization_exists_inverse_copymultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_normalization_exists_inverse_copymultiplicationresultcongruence pfa_offset_right_normalization_exists_inverse_copymultiplicationresultcongruence. ((x) * (x1)) + (p) * pfa_offset_left_normalization_exists_inverse_copymultiplicationresultcongruence = (1) + (p) * pfa_offset_right_normalization_exists_inverse_copymultiplicationresultcongruence))))))))))) - 0034
exact hi_witness - 0035
cases hc - 0036
cases hc_right - 0037
cases hc_right_right - 0038
have hs : exists bb bc. (((exists pfa_gap_normalization_exists_scalescalar. pfa_gap_normalization_exists_scalescalar + S (x1) = (p)) /\ ((forall pfp_index_normalization_exists_scale. (exists pfa_gap_normalization_exists_scaleindex. pfa_gap_normalization_exists_scaleindex + S (pfp_index_normalization_exists_scale) = (L)) -> exists pfp_source_normalization_exists_scale pfp_value_normalization_exists_scale. ((((exists ff_h_pfp_normalization_exists_scalesource. ff_h_pfp_normalization_exists_scalesource + S (pfp_source_normalization_exists_scale) = S ((S (pfp_index_normalization_exists_scale)) * ac)) /\ exists ff_q_pfp_normalization_exists_scalesource. ab = ff_q_pfp_normalization_exists_scalesource * S ((S (pfp_index_normalization_exists_scale)) * ac) + (pfp_source_normalization_exists_scale))) /\ (((((exists ff_h_pfp_normalization_exists_scaletarget. ff_h_pfp_normalization_exists_scaletarget + S (pfp_value_normalization_exists_scale) = S ((S (pfp_index_normalization_exists_scale)) * bc)) /\ exists ff_q_pfp_normalization_exists_scaletarget. bb = ff_q_pfp_normalization_exists_scaletarget * S ((S (pfp_index_normalization_exists_scale)) * bc) + (pfp_value_normalization_exists_scale))) /\ ((((exists pfa_gap_normalization_exists_scaleoperationleft. pfa_gap_normalization_exists_scaleoperationleft + S (x1) = (p)) /\ (((exists pfa_gap_normalization_exists_scaleoperationright. pfa_gap_normalization_exists_scaleoperationright + S (pfp_source_normalization_exists_scale) = (p)) /\ ((((exists pfa_gap_normalization_exists_scaleoperationresultbound. pfa_gap_normalization_exists_scaleoperationresultbound + S (pfp_value_normalization_exists_scale) = (p)) /\ ((exists pfa_offset_left_normalization_exists_scaleoperationresultcongruence pfa_offset_right_normalization_exists_scaleoperationresultcongruence. ((x1) * (pfp_source_normalization_exists_scale)) + (p) * pfa_offset_left_normalization_exists_scaleoperationresultcongruence = (pfp_value_normalization_exists_scale) + (p) * pfa_offset_right_normalization_exists_scaleoperationresultcongruence))))))))))))))))) - 0039
specialize prime_field_polynomial_scale_exists (p) - 0040
specialize prime_field_polynomial_scale_exists (x1) - 0041
specialize prime_field_polynomial_scale_exists (ab) - 0042
specialize prime_field_polynomial_scale_exists (ac) - 0043
specialize prime_field_polynomial_scale_exists (L) - 0044
apply prime_field_polynomial_scale_exists - 0045
intro hz - 0046
specialize prime_nonzero (p) - 0047
apply prime_nonzero - 0048
exact hp - 0049
exact hz - 0050
exact hc_right_right_left - 0051
exact hd_right_left - 0052
cases hs - 0053
cases hs_witness - 0054
exists x1 - 0055
exists x2 - 0056
exists x3 - 0057
split - 0058
intro hz - 0059
specialize succ_ne_zero (d) - 0060
apply succ_ne_zero - 0061
trans L - 0062
symm - 0063
exact hd_left - 0064
exact hz - 0065
split - 0066
exists x - 0067
split - 0068
exact hd_right_right_witness_left - 0069
exact hi_witness - 0070
exact hs_witness_witness