This checkpoint constructs prime-order fields (k=1), with genuine finite arithmetic tables, cardinality, and characteristic. Inversion is proved only for nonzero elements; the table's zero entry is a zero-to-zero convention. G091 for every prime power p^k, with an irreducible polynomial of degree k, remains open. No extension-field construction or G091 closure is claimed.
Exact theorem in conservative defined notation
∀ p. ∀ l. (∀ x. Lt(x,l) → ∃ y. FpMulGridValue(p,x,y)) → ∃ x. ∃ y. FpMulPrefix(p,x,y,l)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 74 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–2
02Induction on lL3–4
03Construct an explicit witnessL5–6
04Fix variables and assumptionsL7–8
05Separate the logical casesL9–9
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L9
exfalso
06Use earlier factsL10–15
07Fix variables and assumptionsL16–16
Work with arbitrary variables or the premises of the current implication.
- L16
intro htotal
08Establish hprevL17–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
09Separate the logical casesL27–28
10Establish hvL29–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply htotal.
- L29
have hv : ∃ v. FpMulGridValue(p,l,v)Definitions: FpMulGridValue(p,l,v)Original native command in the exact edition - L30
specialize htotal (l) - L31
apply htotal
11Construct an explicit witnessL32–32
Supply the displayed value, then prove that it has the required property.
- L32
exists 0
12Use earlier factsL33–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
apply zero_add
13Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
cases hv
14Establish hextL35–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.
- L35
have hext : ∃ b. ∃ c. BetaAt(b,c,l,x2) ∧ (∀ y. ∀ z. Lt(y,l) → BetaAt(x,x1,y,z) → BetaAt(b,c,y,z))Definitions: BetaAt(b,c,l,x2)Lt(y,l)BetaAt(x,x1,y,z)BetaAt(b,c,y,z)Original native command in the exact edition - L36
specialize beta_prefix_extend (l) - L37
specialize beta_prefix_extend (x) - L38
specialize beta_prefix_extend (x1) - L39
specialize beta_prefix_extend (x2) - L40
apply beta_prefix_extend
15Separate the logical casesL41–43
16Construct an explicit witnessL44–45
17Fix variables and assumptionsL46–47
18Establish hcasesL48–52
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
19Separate the logical casesL53–53
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L53
cases hcases
20Calculate and transport equalitiesL54–56
21Construct an explicit witnessL57–57
Supply the displayed value, then prove that it has the required property.
- L57
exists x2
22Separate the logical casesL58–58
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L58
split
23Use earlier factsL59–60
24Establish holdL61–64
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprev witness witness.
- L61
have hold : ∃ v. BetaAt(x,x1,i,v) ∧ FpMulGridValue(p,i,v)Definitions: BetaAt(x,x1,i,v)FpMulGridValue(p,i,v)Original native command in the exact edition - L62
specialize hprev_witness_witness (i) - L63
apply hprev_witness_witness - L64
exact hcases_right
25Separate the logical casesL65–66
26Construct an explicit witnessL67–67
Supply the displayed value, then prove that it has the required property.
- L67
exists x5
27Separate the logical casesL68–68
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L68
split
28Use earlier factsL69–74
Original defined command ledger · 74 lines
- 0001
intro p - 0002
intro l - 0003
induction l - 0004
intro htotal - 0005
exists 0 - 0006
exists 0 - 0007
intro i - 0008
intro hi - 0009
exfalso - 0010
specialize lt_not_le (i) - 0011
specialize lt_not_le (0) - 0012
apply lt_not_le - 0013
exact hi - 0014
specialize zero_le (i) - 0015
apply zero_le - 0016
intro htotal - 0017
have hprev : ∃ b. ∃ c. FpMulPrefix(p,b,c,l) - 0018
apply IH - 0019
intro i - 0020
intro hi - 0021
specialize htotal (i) - 0022
apply htotal - 0023
specialize le_succ (S i) - 0024
specialize le_succ (l) - 0025
apply le_succ - 0026
exact hi - 0027
cases hprev - 0028
cases hprev_witness - 0029
have hv : ∃ v. FpMulGridValue(p,l,v) - 0030
specialize htotal (l) - 0031
apply htotal - 0032
exists 0 - 0033
apply zero_add - 0034
cases hv - 0035
have hext : ∃ b. ∃ c. BetaAt(b,c,l,x2) ∧ (∀ y. ∀ z. Lt(y,l) → BetaAt(x,x1,y,z) → BetaAt(b,c,y,z)) - 0036
specialize beta_prefix_extend (l) - 0037
specialize beta_prefix_extend (x) - 0038
specialize beta_prefix_extend (x1) - 0039
specialize beta_prefix_extend (x2) - 0040
apply beta_prefix_extend - 0041
cases hext - 0042
cases hext_witness - 0043
cases hext_witness_witness - 0044
exists x3 - 0045
exists x4 - 0046
intro i - 0047
intro hi - 0048
have hcases : i = l ∨ Lt(i,l) - 0049
specialize finite_lt_succ_eq_or_lt (l) - 0050
specialize finite_lt_succ_eq_or_lt (i) - 0051
apply finite_lt_succ_eq_or_lt - 0052
exact hi - 0053
cases hcases - 0054
rewrite hcases_left - 0055
rewrite hcases_left - 0056
rewrite hcases_left - 0057
exists x2 - 0058
split - 0059
exact hext_witness_witness_left - 0060
exact hv_witness - 0061
have hold : ∃ v. BetaAt(x,x1,i,v) ∧ FpMulGridValue(p,i,v) - 0062
specialize hprev_witness_witness (i) - 0063
apply hprev_witness_witness - 0064
exact hcases_right - 0065
cases hold - 0066
cases hold_witness - 0067
exists x5 - 0068
split - 0069
specialize hext_witness_witness_right (i) - 0070
specialize hext_witness_witness_right (x5) - 0071
apply hext_witness_witness_right - 0072
exact hcases_right - 0073
exact hold_witness_left - 0074
exact hold_witness_right