Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Length is representation length, not polynomial degree. Leading zeros and the empty zero polynomial are allowed; the canonical argument guard x<p also applies to the empty case. Evaluation is defined by actual field-operation steps, not an assumed residue invariant. Polynomial division, gcd, irreducibles and general prime-power extension fields remain open; this does not close G091.
Exact theorem in conservative defined notation
∀ p. ∀ k. ∀ ab. ∀ ac. ∀ bb. ∀ bc. ∀ AB. ∀ AC. ∀ BB. ∀ BC. ∀ l. BetaPrefixEqual(ab,ac,AB,AC,l) → BetaPrefixEqual(bb,bc,BB,BC,l) → FpPolyScale(p,k,ab,ac,bb,bc,l) → FpPolyScale(p,k,AB,AC,BB,BC,l)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 42 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.
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–14
03Separate the logical casesL15–16
04Use earlier factsL17–17
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L17
exact h_left
05Fix variables and assumptionsL18–19
06Establish hvL20–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply h right.
- L20
have hv : ∃ a. ∃ r. BetaAt(ab,ac,i,a) ∧ (BetaAt(bb,bc,i,r) ∧ FpMul(p,k,a,r))Definitions: BetaAt(ab,ac,i,a)BetaAt(bb,bc,i,r)FpMul(p,k,a,r)Original native command in the exact edition - L21
specialize h_right (i) - L22
apply h_right - L23
exact hi
07Separate the logical casesL24–27
08Construct an explicit witnessL28–29
09Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
split
10Use earlier factsL31–35
11Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
split
Original defined command ledger · 42 lines
- 0001
intro p - 0002
intro k - 0003
intro ab - 0004
intro ac - 0005
intro bb - 0006
intro bc - 0007
intro AB - 0008
intro AC - 0009
intro BB - 0010
intro BC - 0011
intro l - 0012
intro ha - 0013
intro hb - 0014
intro h - 0015
cases h - 0016
split - 0017
exact h_left - 0018
intro i - 0019
intro hi - 0020
have hv : ∃ a. ∃ r. BetaAt(ab,ac,i,a) ∧ (BetaAt(bb,bc,i,r) ∧ FpMul(p,k,a,r)) - 0021
specialize h_right (i) - 0022
apply h_right - 0023
exact hi - 0024
cases hv - 0025
cases hv_witness - 0026
cases hv_witness_witness - 0027
cases hv_witness_witness_right - 0028
exists x - 0029
exists x1 - 0030
split - 0031
specialize ha (i) - 0032
specialize ha (x) - 0033
apply ha - 0034
exact hi - 0035
exact hv_witness_witness_left - 0036
split - 0037
specialize hb (i) - 0038
specialize hb (x1) - 0039
apply hb - 0040
exact hi - 0041
exact hv_witness_witness_right_left - 0042
exact hv_witness_witness_right_right