Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
All products and sums use actual beta-coded coefficients; equality is formal coefficient equivalence, not equality of evaluations or raw codes. The zero gcd is included. Uniqueness is up to formal equivalence, not unique Bézout coefficients. This proves the polynomial gcd component, not G091 irreducible-polynomial existence or arbitrary prime-power-field construction.
Exact theorem in conservative defined notation
∀ p. ∀ ab. ∀ ac. ∀ L. Prime(p) → BetaPrefixInto(ab,ac,L,p) → ∃ x. ∃ y. ∃ z. FpPolynomialZeroOrMonic(p,x,y,z) ∧ (FpPolynomialRightDivides(p,ab,ac,L,x,y,z) ∧ FpPolynomialRightDivides(p,x,y,z,ab,ac,L))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 177 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.
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 (4)
01Fix variables and assumptionsL1–6
02Establish hp0L7–12
03Establish htrimL13–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial trim exists.
- L13
have htrim : ∃ t. ∃ tb. ∃ tc. ∃ M. FpPolynomialTrim(p,ab,ac,L,t,tb,tc,M)Definitions: FpPolynomialTrim(p,ab,ac,L,t,tb,tc,M)Original native command in the exact edition - L14
specialize prime_field_polynomial_trim_exists (p) - L15
specialize prime_field_polynomial_trim_exists (ab) - L16
specialize prime_field_polynomial_trim_exists (ac) - L17
specialize prime_field_polynomial_trim_exists (L) - L18
apply prime_field_polynomial_trim_exists - L19
exact hA
04Separate the logical casesL20–23
05Establish hTL24–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial trim output coefficients.
- L24
have hT : BetaPrefixInto(x1,x2,x3,p)Definitions: BetaPrefixInto(x1,x2,x3,p)Original native command in the exact edition - L25
specialize prime_field_polynomial_trim_output_coefficients (p) - L26
specialize prime_field_polynomial_trim_output_coefficients (ab) - L27
specialize prime_field_polynomial_trim_output_coefficients (ac) - L28
specialize prime_field_polynomial_trim_output_coefficients (L) - L29
specialize prime_field_polynomial_trim_output_coefficients (x) - L30
specialize prime_field_polynomial_trim_output_coefficients (x1) - L31
specialize prime_field_polynomial_trim_output_coefficients (x2) - L32
specialize prime_field_polynomial_trim_output_coefficients (x3) - L33
apply prime_field_polynomial_trim_output_coefficients
06Use earlier factsL34–34
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
exact htrim_witness_witness_witness_witness
07Establish hTAL35–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial equivalent symmetric.
- L35
have hTA : PolynomialEquivalent(x1,x2,x3,ab,ac,L)Definitions: PolynomialEquivalent(x1,x2,x3,ab,ac,L)Original native command in the exact edition - L36
specialize prime_field_polynomial_equivalent_symmetric (ab) - L37
specialize prime_field_polynomial_equivalent_symmetric (ac) - L38
specialize prime_field_polynomial_equivalent_symmetric (L) - L39
specialize prime_field_polynomial_equivalent_symmetric (x1) - L40
specialize prime_field_polynomial_equivalent_symmetric (x2) - L41
specialize prime_field_polynomial_equivalent_symmetric (x3) - L42
apply prime_field_polynomial_equivalent_symmetric - L43
specialize prime_field_polynomial_trim_equivalent (p) - L44
specialize prime_field_polynomial_trim_equivalent (ab)
08Use earlier factsL45–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L45
specialize prime_field_polynomial_trim_equivalent (ac) - L46
specialize prime_field_polynomial_trim_equivalent (L) - L47
specialize prime_field_polynomial_trim_equivalent (x) - L48
specialize prime_field_polynomial_trim_equivalent (x1) - L49
specialize prime_field_polynomial_trim_equivalent (x2) - L50
specialize prime_field_polynomial_trim_equivalent (x3) - L51
apply prime_field_polynomial_trim_equivalent - L52
exact htrim_witness_witness_witness_witness
09Establish hcaseL53–56
10Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
cases hcase
11Calculate and transport equalitiesL58–60
12Construct an explicit witnessL61–63
13Separate the logical casesL64–65
14Calculate and transport equalitiesL66–66
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L66
refl
15Separate the logical casesL67–67
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L67
split
16Use earlier factsL68–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L68
specialize prime_field_polynomial_right_divides_empty (p) - L69
specialize prime_field_polynomial_right_divides_empty (ab) - L70
specialize prime_field_polynomial_right_divides_empty (ac) - L71
specialize prime_field_polynomial_right_divides_empty (L) - L72
specialize prime_field_polynomial_right_divides_empty (x1) - L73
specialize prime_field_polynomial_right_divides_empty (x2) - L74
apply prime_field_polynomial_right_divides_empty - L75
exact hA - L76
specialize prime_field_polynomial_right_divides_equivalent_target (p) - L77
specialize prime_field_polynomial_right_divides_equivalent_target (x1)
17Use earlier factsL78–87
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L78
specialize prime_field_polynomial_right_divides_equivalent_target (x2) - L79
specialize prime_field_polynomial_right_divides_equivalent_target (0) - L80
specialize prime_field_polynomial_right_divides_equivalent_target (x1) - L81
specialize prime_field_polynomial_right_divides_equivalent_target (x2) - L82
specialize prime_field_polynomial_right_divides_equivalent_target (0) - L83
specialize prime_field_polynomial_right_divides_equivalent_target (ab) - L84
specialize prime_field_polynomial_right_divides_equivalent_target (ac) - L85
specialize prime_field_polynomial_right_divides_equivalent_target (L) - L86
apply prime_field_polynomial_right_divides_equivalent_target - L87
exact hA
18Use earlier factsL88–96
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L88
specialize prime_field_polynomial_right_divides_empty (p) - L89
specialize prime_field_polynomial_right_divides_empty (x1) - L90
specialize prime_field_polynomial_right_divides_empty (x2) - L91
specialize prime_field_polynomial_right_divides_empty (0) - L92
specialize prime_field_polynomial_right_divides_empty (x1) - L93
specialize prime_field_polynomial_right_divides_empty (x2) - L94
apply prime_field_polynomial_right_divides_empty - L95
exact hT - L96
exact hTA
19Establish hdegreeL97–106
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial trim nonempty degree exists.
- L97
have hdegree : ∃ d. FpRepresentedDegree(p,x1,x2,x3,d)Definitions: FpRepresentedDegree(p,x1,x2,x3,d)Original native command in the exact edition - L98
specialize prime_field_polynomial_trim_nonempty_degree_exists (p) - L99
specialize prime_field_polynomial_trim_nonempty_degree_exists (ab) - L100
specialize prime_field_polynomial_trim_nonempty_degree_exists (ac) - L101
specialize prime_field_polynomial_trim_nonempty_degree_exists (L) - L102
specialize prime_field_polynomial_trim_nonempty_degree_exists (x) - L103
specialize prime_field_polynomial_trim_nonempty_degree_exists (x1) - L104
specialize prime_field_polynomial_trim_nonempty_degree_exists (x2) - L105
specialize prime_field_polynomial_trim_nonempty_degree_exists (x3) - L106
apply prime_field_polynomial_trim_nonempty_degree_exists
20Use earlier factsL107–108
21Separate the logical casesL109–109
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L109
cases hdegree
22Establish hnormalizationL110–118
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial monic normalization exists.
- L110
have hnormalization : ∃ k. ∃ hb. ∃ hc. FpMonicNormalization(p,k,x1,x2,hb,hc,x3)Definitions: FpMonicNormalization(p,k,x1,x2,hb,hc,x3)Original native command in the exact edition - L111
specialize prime_field_polynomial_monic_normalization_exists (p) - L112
specialize prime_field_polynomial_monic_normalization_exists (x1) - L113
specialize prime_field_polynomial_monic_normalization_exists (x2) - L114
specialize prime_field_polynomial_monic_normalization_exists (x3) - L115
specialize prime_field_polynomial_monic_normalization_exists (x4) - L116
apply prime_field_polynomial_monic_normalization_exists - L117
exact hp - L118
exact hdegree_witness
23Separate the logical casesL119–121
24Establish hassociatesL122–131
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial monic normalization right associates.
- L122
have hassociates : FpPolynomialRightDivides(p,x1,x2,x3,x6,x7,x3) ∧ FpPolynomialRightDivides(p,x6,x7,x3,x1,x2,x3)Definitions: FpPolynomialRightDivides(p,x1,x2,x3,x6,x7,x3)FpPolynomialRightDivides(p,x6,x7,x3,x1,x2,x3)Original native command in the exact edition - L123
specialize prime_field_polynomial_monic_normalization_right_associates (p) - L124
specialize prime_field_polynomial_monic_normalization_right_associates (x5) - L125
specialize prime_field_polynomial_monic_normalization_right_associates (x1) - L126
specialize prime_field_polynomial_monic_normalization_right_associates (x2) - L127
specialize prime_field_polynomial_monic_normalization_right_associates (x6) - L128
specialize prime_field_polynomial_monic_normalization_right_associates (x7) - L129
specialize prime_field_polynomial_monic_normalization_right_associates (x3) - L130
apply prime_field_polynomial_monic_normalization_right_associates - L131
exact hp
25Use earlier factsL132–132
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L132
exact hnormalization_witness_witness_witness
26Separate the logical casesL133–133
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L133
cases hassociates
27Construct an explicit witnessL134–136
28Separate the logical casesL137–138
29Use earlier factsL139–147
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L139
specialize prime_field_polynomial_monic_normalization_monic (p) - L140
specialize prime_field_polynomial_monic_normalization_monic (x5) - L141
specialize prime_field_polynomial_monic_normalization_monic (x1) - L142
specialize prime_field_polynomial_monic_normalization_monic (x2) - L143
specialize prime_field_polynomial_monic_normalization_monic (x6) - L144
specialize prime_field_polynomial_monic_normalization_monic (x7) - L145
specialize prime_field_polynomial_monic_normalization_monic (x3) - L146
apply prime_field_polynomial_monic_normalization_monic - L147
exact hnormalization_witness_witness_witness
30Separate the logical casesL148–148
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L148
split
31Use earlier factsL149–158
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L149
specialize prime_field_polynomial_right_divides_equivalent_divisor (p) - L150
specialize prime_field_polynomial_right_divides_equivalent_divisor (x1) - L151
specialize prime_field_polynomial_right_divides_equivalent_divisor (x2) - L152
specialize prime_field_polynomial_right_divides_equivalent_divisor (x3) - L153
specialize prime_field_polynomial_right_divides_equivalent_divisor (x6) - L154
specialize prime_field_polynomial_right_divides_equivalent_divisor (x7) - L155
specialize prime_field_polynomial_right_divides_equivalent_divisor (x3) - L156
specialize prime_field_polynomial_right_divides_equivalent_divisor (ab) - L157
specialize prime_field_polynomial_right_divides_equivalent_divisor (ac) - L158
specialize prime_field_polynomial_right_divides_equivalent_divisor (L)
32Use earlier factsL159–168
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L159
apply prime_field_polynomial_right_divides_equivalent_divisor - L160
exact hp0 - L161
exact hA - L162
exact hTA - L163
exact hassociates_left - L164
specialize prime_field_polynomial_right_divides_equivalent_target (p) - L165
specialize prime_field_polynomial_right_divides_equivalent_target (x6) - L166
specialize prime_field_polynomial_right_divides_equivalent_target (x7) - L167
specialize prime_field_polynomial_right_divides_equivalent_target (x3) - L168
specialize prime_field_polynomial_right_divides_equivalent_target (x1)
33Use earlier factsL169–177
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L169
specialize prime_field_polynomial_right_divides_equivalent_target (x2) - L170
specialize prime_field_polynomial_right_divides_equivalent_target (x3) - L171
specialize prime_field_polynomial_right_divides_equivalent_target (ab) - L172
specialize prime_field_polynomial_right_divides_equivalent_target (ac) - L173
specialize prime_field_polynomial_right_divides_equivalent_target (L) - L174
apply prime_field_polynomial_right_divides_equivalent_target - L175
exact hA - L176
exact hassociates_right - L177
exact hTA
Original defined command ledger · 177 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro L - 0005
intro hp - 0006
intro hA - 0007
have hp0 : ~(p=0) - 0008
intro hpzero - 0009
specialize prime_nonzero (p) - 0010
apply prime_nonzero - 0011
exact hp - 0012
exact hpzero - 0013
have htrim : ∃ t. ∃ tb. ∃ tc. ∃ M. FpPolynomialTrim(p,ab,ac,L,t,tb,tc,M) - 0014
specialize prime_field_polynomial_trim_exists (p) - 0015
specialize prime_field_polynomial_trim_exists (ab) - 0016
specialize prime_field_polynomial_trim_exists (ac) - 0017
specialize prime_field_polynomial_trim_exists (L) - 0018
apply prime_field_polynomial_trim_exists - 0019
exact hA - 0020
cases htrim - 0021
cases htrim_witness - 0022
cases htrim_witness_witness - 0023
cases htrim_witness_witness_witness - 0024
have hT : BetaPrefixInto(x1,x2,x3,p) - 0025
specialize prime_field_polynomial_trim_output_coefficients (p) - 0026
specialize prime_field_polynomial_trim_output_coefficients (ab) - 0027
specialize prime_field_polynomial_trim_output_coefficients (ac) - 0028
specialize prime_field_polynomial_trim_output_coefficients (L) - 0029
specialize prime_field_polynomial_trim_output_coefficients (x) - 0030
specialize prime_field_polynomial_trim_output_coefficients (x1) - 0031
specialize prime_field_polynomial_trim_output_coefficients (x2) - 0032
specialize prime_field_polynomial_trim_output_coefficients (x3) - 0033
apply prime_field_polynomial_trim_output_coefficients - 0034
exact htrim_witness_witness_witness_witness - 0035
have hTA : PolynomialEquivalent(x1,x2,x3,ab,ac,L) - 0036
specialize prime_field_polynomial_equivalent_symmetric (ab) - 0037
specialize prime_field_polynomial_equivalent_symmetric (ac) - 0038
specialize prime_field_polynomial_equivalent_symmetric (L) - 0039
specialize prime_field_polynomial_equivalent_symmetric (x1) - 0040
specialize prime_field_polynomial_equivalent_symmetric (x2) - 0041
specialize prime_field_polynomial_equivalent_symmetric (x3) - 0042
apply prime_field_polynomial_equivalent_symmetric - 0043
specialize prime_field_polynomial_trim_equivalent (p) - 0044
specialize prime_field_polynomial_trim_equivalent (ab) - 0045
specialize prime_field_polynomial_trim_equivalent (ac) - 0046
specialize prime_field_polynomial_trim_equivalent (L) - 0047
specialize prime_field_polynomial_trim_equivalent (x) - 0048
specialize prime_field_polynomial_trim_equivalent (x1) - 0049
specialize prime_field_polynomial_trim_equivalent (x2) - 0050
specialize prime_field_polynomial_trim_equivalent (x3) - 0051
apply prime_field_polynomial_trim_equivalent - 0052
exact htrim_witness_witness_witness_witness - 0053
have hcase : x3=0 \/ ~(x3=0) - 0054
specialize eq_decidable (x3) - 0055
specialize eq_decidable (0) - 0056
apply eq_decidable - 0057
cases hcase - 0058
rewrite hcase_left at hT - 0059
rewrite hcase_left at hTA - 0060
rewrite hcase_left at hTA - 0061
exists x1 - 0062
exists x2 - 0063
exists 0 - 0064
split - 0065
left - 0066
refl - 0067
split - 0068
specialize prime_field_polynomial_right_divides_empty (p) - 0069
specialize prime_field_polynomial_right_divides_empty (ab) - 0070
specialize prime_field_polynomial_right_divides_empty (ac) - 0071
specialize prime_field_polynomial_right_divides_empty (L) - 0072
specialize prime_field_polynomial_right_divides_empty (x1) - 0073
specialize prime_field_polynomial_right_divides_empty (x2) - 0074
apply prime_field_polynomial_right_divides_empty - 0075
exact hA - 0076
specialize prime_field_polynomial_right_divides_equivalent_target (p) - 0077
specialize prime_field_polynomial_right_divides_equivalent_target (x1) - 0078
specialize prime_field_polynomial_right_divides_equivalent_target (x2) - 0079
specialize prime_field_polynomial_right_divides_equivalent_target (0) - 0080
specialize prime_field_polynomial_right_divides_equivalent_target (x1) - 0081
specialize prime_field_polynomial_right_divides_equivalent_target (x2) - 0082
specialize prime_field_polynomial_right_divides_equivalent_target (0) - 0083
specialize prime_field_polynomial_right_divides_equivalent_target (ab) - 0084
specialize prime_field_polynomial_right_divides_equivalent_target (ac) - 0085
specialize prime_field_polynomial_right_divides_equivalent_target (L) - 0086
apply prime_field_polynomial_right_divides_equivalent_target - 0087
exact hA - 0088
specialize prime_field_polynomial_right_divides_empty (p) - 0089
specialize prime_field_polynomial_right_divides_empty (x1) - 0090
specialize prime_field_polynomial_right_divides_empty (x2) - 0091
specialize prime_field_polynomial_right_divides_empty (0) - 0092
specialize prime_field_polynomial_right_divides_empty (x1) - 0093
specialize prime_field_polynomial_right_divides_empty (x2) - 0094
apply prime_field_polynomial_right_divides_empty - 0095
exact hT - 0096
exact hTA - 0097
have hdegree : ∃ d. FpRepresentedDegree(p,x1,x2,x3,d) - 0098
specialize prime_field_polynomial_trim_nonempty_degree_exists (p) - 0099
specialize prime_field_polynomial_trim_nonempty_degree_exists (ab) - 0100
specialize prime_field_polynomial_trim_nonempty_degree_exists (ac) - 0101
specialize prime_field_polynomial_trim_nonempty_degree_exists (L) - 0102
specialize prime_field_polynomial_trim_nonempty_degree_exists (x) - 0103
specialize prime_field_polynomial_trim_nonempty_degree_exists (x1) - 0104
specialize prime_field_polynomial_trim_nonempty_degree_exists (x2) - 0105
specialize prime_field_polynomial_trim_nonempty_degree_exists (x3) - 0106
apply prime_field_polynomial_trim_nonempty_degree_exists - 0107
exact htrim_witness_witness_witness_witness - 0108
exact hcase_right - 0109
cases hdegree - 0110
have hnormalization : ∃ k. ∃ hb. ∃ hc. FpMonicNormalization(p,k,x1,x2,hb,hc,x3) - 0111
specialize prime_field_polynomial_monic_normalization_exists (p) - 0112
specialize prime_field_polynomial_monic_normalization_exists (x1) - 0113
specialize prime_field_polynomial_monic_normalization_exists (x2) - 0114
specialize prime_field_polynomial_monic_normalization_exists (x3) - 0115
specialize prime_field_polynomial_monic_normalization_exists (x4) - 0116
apply prime_field_polynomial_monic_normalization_exists - 0117
exact hp - 0118
exact hdegree_witness - 0119
cases hnormalization - 0120
cases hnormalization_witness - 0121
cases hnormalization_witness_witness - 0122
have hassociates : FpPolynomialRightDivides(p,x1,x2,x3,x6,x7,x3) ∧ FpPolynomialRightDivides(p,x6,x7,x3,x1,x2,x3) - 0123
specialize prime_field_polynomial_monic_normalization_right_associates (p) - 0124
specialize prime_field_polynomial_monic_normalization_right_associates (x5) - 0125
specialize prime_field_polynomial_monic_normalization_right_associates (x1) - 0126
specialize prime_field_polynomial_monic_normalization_right_associates (x2) - 0127
specialize prime_field_polynomial_monic_normalization_right_associates (x6) - 0128
specialize prime_field_polynomial_monic_normalization_right_associates (x7) - 0129
specialize prime_field_polynomial_monic_normalization_right_associates (x3) - 0130
apply prime_field_polynomial_monic_normalization_right_associates - 0131
exact hp - 0132
exact hnormalization_witness_witness_witness - 0133
cases hassociates - 0134
exists x6 - 0135
exists x7 - 0136
exists x3 - 0137
split - 0138
right - 0139
specialize prime_field_polynomial_monic_normalization_monic (p) - 0140
specialize prime_field_polynomial_monic_normalization_monic (x5) - 0141
specialize prime_field_polynomial_monic_normalization_monic (x1) - 0142
specialize prime_field_polynomial_monic_normalization_monic (x2) - 0143
specialize prime_field_polynomial_monic_normalization_monic (x6) - 0144
specialize prime_field_polynomial_monic_normalization_monic (x7) - 0145
specialize prime_field_polynomial_monic_normalization_monic (x3) - 0146
apply prime_field_polynomial_monic_normalization_monic - 0147
exact hnormalization_witness_witness_witness - 0148
split - 0149
specialize prime_field_polynomial_right_divides_equivalent_divisor (p) - 0150
specialize prime_field_polynomial_right_divides_equivalent_divisor (x1) - 0151
specialize prime_field_polynomial_right_divides_equivalent_divisor (x2) - 0152
specialize prime_field_polynomial_right_divides_equivalent_divisor (x3) - 0153
specialize prime_field_polynomial_right_divides_equivalent_divisor (x6) - 0154
specialize prime_field_polynomial_right_divides_equivalent_divisor (x7) - 0155
specialize prime_field_polynomial_right_divides_equivalent_divisor (x3) - 0156
specialize prime_field_polynomial_right_divides_equivalent_divisor (ab) - 0157
specialize prime_field_polynomial_right_divides_equivalent_divisor (ac) - 0158
specialize prime_field_polynomial_right_divides_equivalent_divisor (L) - 0159
apply prime_field_polynomial_right_divides_equivalent_divisor - 0160
exact hp0 - 0161
exact hA - 0162
exact hTA - 0163
exact hassociates_left - 0164
specialize prime_field_polynomial_right_divides_equivalent_target (p) - 0165
specialize prime_field_polynomial_right_divides_equivalent_target (x6) - 0166
specialize prime_field_polynomial_right_divides_equivalent_target (x7) - 0167
specialize prime_field_polynomial_right_divides_equivalent_target (x3) - 0168
specialize prime_field_polynomial_right_divides_equivalent_target (x1) - 0169
specialize prime_field_polynomial_right_divides_equivalent_target (x2) - 0170
specialize prime_field_polynomial_right_divides_equivalent_target (x3) - 0171
specialize prime_field_polynomial_right_divides_equivalent_target (ab) - 0172
specialize prime_field_polynomial_right_divides_equivalent_target (ac) - 0173
specialize prime_field_polynomial_right_divides_equivalent_target (L) - 0174
apply prime_field_polynomial_right_divides_equivalent_target - 0175
exact hA - 0176
exact hassociates_right - 0177
exact hTA