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 bb bc M e. ((((L)=S (d)) /\ (((forall fom_index_pfp_degree_leftcoefficients. (exists fom_gap_pfp_degree_leftcoefficients_index_bound. fom_gap_pfp_degree_leftcoefficients_index_bound + S (fom_index_pfp_degree_leftcoefficients) = L) -> exists fom_value_pfp_degree_leftcoefficients. ((((exists fom_beta_height_pfp_degree_leftcoefficients_entry. fom_beta_height_pfp_degree_leftcoefficients_entry + S (fom_value_pfp_degree_leftcoefficients) = S ((S (fom_index_pfp_degree_leftcoefficients)) * ac)) /\ exists fom_beta_quotient_pfp_degree_leftcoefficients_entry. ab = fom_beta_quotient_pfp_degree_leftcoefficients_entry * S ((S (fom_index_pfp_degree_leftcoefficients)) * ac) + (fom_value_pfp_degree_leftcoefficients))) /\ (exists fom_gap_pfp_degree_leftcoefficients_value_bound. fom_gap_pfp_degree_leftcoefficients_value_bound + S (fom_value_pfp_degree_leftcoefficients) = p))) /\ ((exists pfd_leading_degree_left. ((((exists ff_h_pfp_degree_leftentry. ff_h_pfp_degree_leftentry + S (pfd_leading_degree_left) = S ((S (0)) * ac)) /\ exists ff_q_pfp_degree_leftentry. ab = ff_q_pfp_degree_leftentry * S ((S (0)) * ac) + (pfd_leading_degree_left))) /\ ((~(pfd_leading_degree_left=0)))))))))) -> ((((M)=S (e)) /\ (((forall fom_index_pfp_degree_rightcoefficients. (exists fom_gap_pfp_degree_rightcoefficients_index_bound. fom_gap_pfp_degree_rightcoefficients_index_bound + S (fom_index_pfp_degree_rightcoefficients) = M) -> exists fom_value_pfp_degree_rightcoefficients. ((((exists fom_beta_height_pfp_degree_rightcoefficients_entry. fom_beta_height_pfp_degree_rightcoefficients_entry + S (fom_value_pfp_degree_rightcoefficients) = S ((S (fom_index_pfp_degree_rightcoefficients)) * bc)) /\ exists fom_beta_quotient_pfp_degree_rightcoefficients_entry. bb = fom_beta_quotient_pfp_degree_rightcoefficients_entry * S ((S (fom_index_pfp_degree_rightcoefficients)) * bc) + (fom_value_pfp_degree_rightcoefficients))) /\ (exists fom_gap_pfp_degree_rightcoefficients_value_bound. fom_gap_pfp_degree_rightcoefficients_value_bound + S (fom_value_pfp_degree_rightcoefficients) = p))) /\ ((exists pfd_leading_degree_right. ((((exists ff_h_pfp_degree_rightentry. ff_h_pfp_degree_rightentry + S (pfd_leading_degree_right) = S ((S (0)) * bc)) /\ exists ff_q_pfp_degree_rightentry. bb = ff_q_pfp_degree_rightentry * S ((S (0)) * bc) + (pfd_leading_degree_right))) /\ ((~(pfd_leading_degree_right=0)))))))))) -> (forall pfrep_power_degree_equivalent pfrep_left_degree_equivalent pfrep_right_degree_equivalent. ((exists pfrep_position_degree_equivalentfirst. ((pfrep_position_degree_equivalentfirst+S (pfrep_power_degree_equivalent)=(L)) /\ ((((exists ff_h_pfp_degree_equivalentfirstentry. ff_h_pfp_degree_equivalentfirstentry + S (pfrep_left_degree_equivalent) = S ((S (pfrep_position_degree_equivalentfirst)) * ac)) /\ exists ff_q_pfp_degree_equivalentfirstentry. ab = ff_q_pfp_degree_equivalentfirstentry * S ((S (pfrep_position_degree_equivalentfirst)) * ac) + (pfrep_left_degree_equivalent)))))) \/ (((exists pfrep_gap_degree_equivalentfirstoutside. pfrep_gap_degree_equivalentfirstoutside+(L)=(pfrep_power_degree_equivalent)) /\ (((pfrep_left_degree_equivalent)=0))))) -> ((exists pfrep_position_degree_equivalentsecond. ((pfrep_position_degree_equivalentsecond+S (pfrep_power_degree_equivalent)=(M)) /\ ((((exists ff_h_pfp_degree_equivalentsecondentry. ff_h_pfp_degree_equivalentsecondentry + S (pfrep_right_degree_equivalent) = S ((S (pfrep_position_degree_equivalentsecond)) * bc)) /\ exists ff_q_pfp_degree_equivalentsecondentry. bb = ff_q_pfp_degree_equivalentsecondentry * S ((S (pfrep_position_degree_equivalentsecond)) * bc) + (pfrep_right_degree_equivalent)))))) \/ (((exists pfrep_gap_degree_equivalentsecondoutside. pfrep_gap_degree_equivalentsecondoutside+(M)=(pfrep_power_degree_equivalent)) /\ (((pfrep_right_degree_equivalent)=0))))) -> pfrep_left_degree_equivalent=pfrep_right_degree_equivalent) -> (d=e)Constructive proof overview
Generated structural guide
Formal equivalence preserves genuine represented degree across independently encoded and independently length-annotated nonzero-leading prefixes.
The unchanged tactic script uses 4 declared prerequisites and contains 65 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 le_antisymm Alpha theorem; checked-use authorized prime_field_polynomial_equivalent_symmetric Alpha theorem; checked-use authorized succ_injective Alpha theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Separate the logical casesL13–16
04Establish hsameL17–17
Establish this local claim before using it. It is not an additional assumption.
- L17
have hsame : PolynomialEquivalent(ab,ac,S d,bb,bc,S e)Definitions: PolynomialEquivalent
05Establish hcopyL18–24
06Separate the logical casesL25–28
07Establish hlengthL29–38
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le antisymm.
- L29
have hlength : S d=S e - L30
specialize le_antisymm (S d) - L31
specialize le_antisymm (S e) - L32
apply le_antisymm - L33
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (ab) - L34
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (ac) - L35
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (d) - L36
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (bb) - L37
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (bc) - L38
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (S e)
08Use earlier factsL39–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (x) - L40
apply prime_field_polynomial_nonzero_leading_equivalent_length_bound - L41
exact ha_right_right_witness_left - L42
exact ha_right_right_witness_right - L43
exact hsame - L44
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (bb) - L45
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (bc) - L46
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (e) - L47
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (ab) - L48
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (ac)
09Use earlier factsL49–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (S d) - L50
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (x1) - L51
apply prime_field_polynomial_nonzero_leading_equivalent_length_bound - L52
exact hb_right_right_witness_left - L53
exact hb_right_right_witness_right - L54
specialize prime_field_polynomial_equivalent_symmetric (ab) - L55
specialize prime_field_polynomial_equivalent_symmetric (ac) - L56
specialize prime_field_polynomial_equivalent_symmetric (S d) - L57
specialize prime_field_polynomial_equivalent_symmetric (bb) - L58
specialize prime_field_polynomial_equivalent_symmetric (bc)
10Use earlier factsL59–65
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 65 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro L - 0005
intro d - 0006
intro bb - 0007
intro bc - 0008
intro M - 0009
intro e - 0010
intro ha - 0011
intro hb - 0012
intro he - 0013
cases ha - 0014
cases ha_right - 0015
cases hb - 0016
cases hb_right - 0017
have hsame : forall pfrep_power_degree_lengths pfrep_left_degree_lengths pfrep_right_degree_lengths. ((exists pfrep_position_degree_lengthsfirst. ((pfrep_position_degree_lengthsfirst+S (pfrep_power_degree_lengths)=(S d)) /\ ((((exists ff_h_pfp_degree_lengthsfirstentry. ff_h_pfp_degree_lengthsfirstentry + S (pfrep_left_degree_lengths) = S ((S (pfrep_position_degree_lengthsfirst)) * ac)) /\ exists ff_q_pfp_degree_lengthsfirstentry. ab = ff_q_pfp_degree_lengthsfirstentry * S ((S (pfrep_position_degree_lengthsfirst)) * ac) + (pfrep_left_degree_lengths)))))) \/ (((exists pfrep_gap_degree_lengthsfirstoutside. pfrep_gap_degree_lengthsfirstoutside+(S d)=(pfrep_power_degree_lengths)) /\ (((pfrep_left_degree_lengths)=0))))) -> ((exists pfrep_position_degree_lengthssecond. ((pfrep_position_degree_lengthssecond+S (pfrep_power_degree_lengths)=(S e)) /\ ((((exists ff_h_pfp_degree_lengthssecondentry. ff_h_pfp_degree_lengthssecondentry + S (pfrep_right_degree_lengths) = S ((S (pfrep_position_degree_lengthssecond)) * bc)) /\ exists ff_q_pfp_degree_lengthssecondentry. bb = ff_q_pfp_degree_lengthssecondentry * S ((S (pfrep_position_degree_lengthssecond)) * bc) + (pfrep_right_degree_lengths)))))) \/ (((exists pfrep_gap_degree_lengthssecondoutside. pfrep_gap_degree_lengthssecondoutside+(S e)=(pfrep_power_degree_lengths)) /\ (((pfrep_right_degree_lengths)=0))))) -> pfrep_left_degree_lengths=pfrep_right_degree_lengths - 0018
have hcopy : forall pfrep_power_degree_equivalent pfrep_left_degree_equivalent pfrep_right_degree_equivalent. ((exists pfrep_position_degree_equivalentfirst. ((pfrep_position_degree_equivalentfirst+S (pfrep_power_degree_equivalent)=(L)) /\ ((((exists ff_h_pfp_degree_equivalentfirstentry. ff_h_pfp_degree_equivalentfirstentry + S (pfrep_left_degree_equivalent) = S ((S (pfrep_position_degree_equivalentfirst)) * ac)) /\ exists ff_q_pfp_degree_equivalentfirstentry. ab = ff_q_pfp_degree_equivalentfirstentry * S ((S (pfrep_position_degree_equivalentfirst)) * ac) + (pfrep_left_degree_equivalent)))))) \/ (((exists pfrep_gap_degree_equivalentfirstoutside. pfrep_gap_degree_equivalentfirstoutside+(L)=(pfrep_power_degree_equivalent)) /\ (((pfrep_left_degree_equivalent)=0))))) -> ((exists pfrep_position_degree_equivalentsecond. ((pfrep_position_degree_equivalentsecond+S (pfrep_power_degree_equivalent)=(M)) /\ ((((exists ff_h_pfp_degree_equivalentsecondentry. ff_h_pfp_degree_equivalentsecondentry + S (pfrep_right_degree_equivalent) = S ((S (pfrep_position_degree_equivalentsecond)) * bc)) /\ exists ff_q_pfp_degree_equivalentsecondentry. bb = ff_q_pfp_degree_equivalentsecondentry * S ((S (pfrep_position_degree_equivalentsecond)) * bc) + (pfrep_right_degree_equivalent)))))) \/ (((exists pfrep_gap_degree_equivalentsecondoutside. pfrep_gap_degree_equivalentsecondoutside+(M)=(pfrep_power_degree_equivalent)) /\ (((pfrep_right_degree_equivalent)=0))))) -> pfrep_left_degree_equivalent=pfrep_right_degree_equivalent - 0019
exact he - 0020
rewrite ha_left at hcopy - 0021
rewrite ha_left at hcopy - 0022
rewrite hb_left at hcopy - 0023
rewrite hb_left at hcopy - 0024
exact hcopy - 0025
cases ha_right_right - 0026
cases ha_right_right_witness - 0027
cases hb_right_right - 0028
cases hb_right_right_witness - 0029
have hlength : S d=S e - 0030
specialize le_antisymm (S d) - 0031
specialize le_antisymm (S e) - 0032
apply le_antisymm - 0033
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (ab) - 0034
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (ac) - 0035
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (d) - 0036
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (bb) - 0037
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (bc) - 0038
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (S e) - 0039
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (x) - 0040
apply prime_field_polynomial_nonzero_leading_equivalent_length_bound - 0041
exact ha_right_right_witness_left - 0042
exact ha_right_right_witness_right - 0043
exact hsame - 0044
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (bb) - 0045
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (bc) - 0046
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (e) - 0047
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (ab) - 0048
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (ac) - 0049
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (S d) - 0050
specialize prime_field_polynomial_nonzero_leading_equivalent_length_bound (x1) - 0051
apply prime_field_polynomial_nonzero_leading_equivalent_length_bound - 0052
exact hb_right_right_witness_left - 0053
exact hb_right_right_witness_right - 0054
specialize prime_field_polynomial_equivalent_symmetric (ab) - 0055
specialize prime_field_polynomial_equivalent_symmetric (ac) - 0056
specialize prime_field_polynomial_equivalent_symmetric (S d) - 0057
specialize prime_field_polynomial_equivalent_symmetric (bb) - 0058
specialize prime_field_polynomial_equivalent_symmetric (bc) - 0059
specialize prime_field_polynomial_equivalent_symmetric (S e) - 0060
apply prime_field_polynomial_equivalent_symmetric - 0061
exact hsame - 0062
specialize succ_injective (d) - 0063
specialize succ_injective (e) - 0064
apply succ_injective - 0065
exact hlength