95 new Alpha admissions come from 96 source lemmas: tuple equality reflexivity reuses an already-admitted theorem and is not counted twice. All counts use actual finite beta-coded enumerations. G008 multiplicativity is proved; the general prime-power count and distinct-prime product formula are further goals. General prime-power fields (G091) remain open. Stable is unchanged.
Exact theorem in conservative defined notation
∀ k. ∀ n. ∀ c. ¬n = 0 → ∀ x. ∃ y. ∃ z. ∃ m. ∃ i. ∃ j. JordanTupleScan(k,n,c,x,y,z,m,i,j)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 135 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 (5)
01Fix variables and assumptionsL1–4
02Induction on tL5–5
Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.
- L5
induction t
03Construct an explicit witnessL6–10
04Use earlier factsL11–18
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L11
specialize jordan_tuple_scan_empty (k) - L12
specialize jordan_tuple_scan_empty (n) - L13
specialize jordan_tuple_scan_empty (c) - L14
specialize jordan_tuple_scan_empty (0) - L15
specialize jordan_tuple_scan_empty (0) - L16
specialize jordan_tuple_scan_empty (0) - L17
specialize jordan_tuple_scan_empty (0) - L18
apply jordan_tuple_scan_empty
05Separate the logical casesL19–23
06Establish hbL24–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix rank bounded prefix decidable.
- L24
have hb : BetaPrefixInto(t,c,k,n) ∨ ¬BetaPrefixInto(t,c,k,n)Definitions: BetaPrefixInto(t,c,k,n)Original native command in the exact edition - L25
specialize matrix_rank_bounded_prefix_decidable (t) - L26
specialize matrix_rank_bounded_prefix_decidable (c) - L27
specialize matrix_rank_bounded_prefix_decidable (k) - L28
specialize matrix_rank_bounded_prefix_decidable (n) - L29
apply matrix_rank_bounded_prefix_decidable
07Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
cases hb
08Establish hpL31–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply jordan primitive tuple decidable.
- L31
have hp : JordanPrimitiveTuple(n,t,c,k) ∨ ¬JordanPrimitiveTuple(n,t,c,k)Definitions: JordanPrimitiveTuple(n,t,c,k)Original native command in the exact edition - L32
specialize jordan_primitive_tuple_decidable (n) - L33
specialize jordan_primitive_tuple_decidable (t) - L34
specialize jordan_primitive_tuple_decidable (c) - L35
specialize jordan_primitive_tuple_decidable (k) - L36
apply jordan_primitive_tuple_decidable - L37
exact hn
09Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
cases hp
10Establish hlL39–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply jordan tuple listed decidable.
- L39
have hl : JordanTupleListed(t,c,k,x,x1,x2,x3,x4) ∨ ¬JordanTupleListed(t,c,k,x,x1,x2,x3,x4)Definitions: JordanTupleListed(t,c,k,x,x1,x2,x3,x4)Original native command in the exact edition - L40
specialize jordan_tuple_listed_decidable (t) - L41
specialize jordan_tuple_listed_decidable (c) - L42
specialize jordan_tuple_listed_decidable (k) - L43
specialize jordan_tuple_listed_decidable (x) - L44
specialize jordan_tuple_listed_decidable (x1) - L45
specialize jordan_tuple_listed_decidable (x2) - L46
specialize jordan_tuple_listed_decidable (x3) - L47
specialize jordan_tuple_listed_decidable (x4) - L48
apply jordan_tuple_listed_decidable
11Separate the logical casesL49–49
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L49
cases hl
12Construct an explicit witnessL50–54
13Use earlier factsL55–64
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L55
specialize jordan_tuple_scan_skip (k) - L56
specialize jordan_tuple_scan_skip (n) - L57
specialize jordan_tuple_scan_skip (c) - L58
specialize jordan_tuple_scan_skip (t) - L59
specialize jordan_tuple_scan_skip (x) - L60
specialize jordan_tuple_scan_skip (x1) - L61
specialize jordan_tuple_scan_skip (x2) - L62
specialize jordan_tuple_scan_skip (x3) - L63
specialize jordan_tuple_scan_skip (x4) - L64
apply jordan_tuple_scan_skip
14Use earlier factsL65–65
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L65
exact IH_witness_witness_witness_witness_witness
15Fix variables and assumptionsL66–67
16Use earlier factsL68–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L68
exact hl_left
17Establish hnewL69–78
Establish this local claim before using it. It is not an additional assumption.
- L69
have hnew : ∃ U. ∃ V. ∃ W. ∃ X. JordanTupleScan(k,n,c,S t,U,V,W,X,S x4)Definitions: JordanTupleScan(k,n,c,S t,U,V,W,X,S x4)Original native command in the exact edition - L70
specialize jordan_tuple_scan_append (k) - L71
specialize jordan_tuple_scan_append (n) - L72
specialize jordan_tuple_scan_append (c) - L73
specialize jordan_tuple_scan_append (t) - L74
specialize jordan_tuple_scan_append (x) - L75
specialize jordan_tuple_scan_append (x1) - L76
specialize jordan_tuple_scan_append (x2) - L77
specialize jordan_tuple_scan_append (x3) - L78
specialize jordan_tuple_scan_append (x4)
18Use earlier factsL79–83
19Separate the logical casesL84–87
20Construct an explicit witnessL88–92
21Use earlier factsL93–93
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L93
exact hnew_witness_witness_witness_witness
22Construct an explicit witnessL94–98
23Use earlier factsL99–108
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L99
specialize jordan_tuple_scan_skip (k) - L100
specialize jordan_tuple_scan_skip (n) - L101
specialize jordan_tuple_scan_skip (c) - L102
specialize jordan_tuple_scan_skip (t) - L103
specialize jordan_tuple_scan_skip (x) - L104
specialize jordan_tuple_scan_skip (x1) - L105
specialize jordan_tuple_scan_skip (x2) - L106
specialize jordan_tuple_scan_skip (x3) - L107
specialize jordan_tuple_scan_skip (x4) - L108
apply jordan_tuple_scan_skip
24Use earlier factsL109–109
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L109
exact IH_witness_witness_witness_witness_witness
25Fix variables and assumptionsL110–111
26Separate the logical casesL112–112
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L112
exfalso
27Use earlier factsL113–114
28Construct an explicit witnessL115–119
29Use earlier factsL120–129
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L120
specialize jordan_tuple_scan_skip (k) - L121
specialize jordan_tuple_scan_skip (n) - L122
specialize jordan_tuple_scan_skip (c) - L123
specialize jordan_tuple_scan_skip (t) - L124
specialize jordan_tuple_scan_skip (x) - L125
specialize jordan_tuple_scan_skip (x1) - L126
specialize jordan_tuple_scan_skip (x2) - L127
specialize jordan_tuple_scan_skip (x3) - L128
specialize jordan_tuple_scan_skip (x4) - L129
apply jordan_tuple_scan_skip
30Use earlier factsL130–130
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L130
exact IH_witness_witness_witness_witness_witness
31Fix variables and assumptionsL131–132
32Separate the logical casesL133–133
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L133
exfalso
Original defined command ledger · 135 lines
- 0001
intro k - 0002
intro n - 0003
intro c - 0004
intro hn - 0005
induction t - 0006
exists 0 - 0007
exists 0 - 0008
exists 0 - 0009
exists 0 - 0010
exists 0 - 0011
specialize jordan_tuple_scan_empty (k) - 0012
specialize jordan_tuple_scan_empty (n) - 0013
specialize jordan_tuple_scan_empty (c) - 0014
specialize jordan_tuple_scan_empty (0) - 0015
specialize jordan_tuple_scan_empty (0) - 0016
specialize jordan_tuple_scan_empty (0) - 0017
specialize jordan_tuple_scan_empty (0) - 0018
apply jordan_tuple_scan_empty - 0019
cases IH - 0020
cases IH_witness - 0021
cases IH_witness_witness - 0022
cases IH_witness_witness_witness - 0023
cases IH_witness_witness_witness_witness - 0024
have hb : BetaPrefixInto(t,c,k,n) ∨ ¬BetaPrefixInto(t,c,k,n) - 0025
specialize matrix_rank_bounded_prefix_decidable (t) - 0026
specialize matrix_rank_bounded_prefix_decidable (c) - 0027
specialize matrix_rank_bounded_prefix_decidable (k) - 0028
specialize matrix_rank_bounded_prefix_decidable (n) - 0029
apply matrix_rank_bounded_prefix_decidable - 0030
cases hb - 0031
have hp : JordanPrimitiveTuple(n,t,c,k) ∨ ¬JordanPrimitiveTuple(n,t,c,k) - 0032
specialize jordan_primitive_tuple_decidable (n) - 0033
specialize jordan_primitive_tuple_decidable (t) - 0034
specialize jordan_primitive_tuple_decidable (c) - 0035
specialize jordan_primitive_tuple_decidable (k) - 0036
apply jordan_primitive_tuple_decidable - 0037
exact hn - 0038
cases hp - 0039
have hl : JordanTupleListed(t,c,k,x,x1,x2,x3,x4) ∨ ¬JordanTupleListed(t,c,k,x,x1,x2,x3,x4) - 0040
specialize jordan_tuple_listed_decidable (t) - 0041
specialize jordan_tuple_listed_decidable (c) - 0042
specialize jordan_tuple_listed_decidable (k) - 0043
specialize jordan_tuple_listed_decidable (x) - 0044
specialize jordan_tuple_listed_decidable (x1) - 0045
specialize jordan_tuple_listed_decidable (x2) - 0046
specialize jordan_tuple_listed_decidable (x3) - 0047
specialize jordan_tuple_listed_decidable (x4) - 0048
apply jordan_tuple_listed_decidable - 0049
cases hl - 0050
exists x - 0051
exists x1 - 0052
exists x2 - 0053
exists x3 - 0054
exists x4 - 0055
specialize jordan_tuple_scan_skip (k) - 0056
specialize jordan_tuple_scan_skip (n) - 0057
specialize jordan_tuple_scan_skip (c) - 0058
specialize jordan_tuple_scan_skip (t) - 0059
specialize jordan_tuple_scan_skip (x) - 0060
specialize jordan_tuple_scan_skip (x1) - 0061
specialize jordan_tuple_scan_skip (x2) - 0062
specialize jordan_tuple_scan_skip (x3) - 0063
specialize jordan_tuple_scan_skip (x4) - 0064
apply jordan_tuple_scan_skip - 0065
exact IH_witness_witness_witness_witness_witness - 0066
intro hbound - 0067
intro hprimitive - 0068
exact hl_left - 0069
have hnew : ∃ U. ∃ V. ∃ W. ∃ X. JordanTupleScan(k,n,c,S t,U,V,W,X,S x4) - 0070
specialize jordan_tuple_scan_append (k) - 0071
specialize jordan_tuple_scan_append (n) - 0072
specialize jordan_tuple_scan_append (c) - 0073
specialize jordan_tuple_scan_append (t) - 0074
specialize jordan_tuple_scan_append (x) - 0075
specialize jordan_tuple_scan_append (x1) - 0076
specialize jordan_tuple_scan_append (x2) - 0077
specialize jordan_tuple_scan_append (x3) - 0078
specialize jordan_tuple_scan_append (x4) - 0079
apply jordan_tuple_scan_append - 0080
exact IH_witness_witness_witness_witness_witness - 0081
exact hb_left - 0082
exact hp_left - 0083
exact hl_right - 0084
cases hnew - 0085
cases hnew_witness - 0086
cases hnew_witness_witness - 0087
cases hnew_witness_witness_witness - 0088
exists x5 - 0089
exists x6 - 0090
exists x7 - 0091
exists x8 - 0092
exists S x4 - 0093
exact hnew_witness_witness_witness_witness - 0094
exists x - 0095
exists x1 - 0096
exists x2 - 0097
exists x3 - 0098
exists x4 - 0099
specialize jordan_tuple_scan_skip (k) - 0100
specialize jordan_tuple_scan_skip (n) - 0101
specialize jordan_tuple_scan_skip (c) - 0102
specialize jordan_tuple_scan_skip (t) - 0103
specialize jordan_tuple_scan_skip (x) - 0104
specialize jordan_tuple_scan_skip (x1) - 0105
specialize jordan_tuple_scan_skip (x2) - 0106
specialize jordan_tuple_scan_skip (x3) - 0107
specialize jordan_tuple_scan_skip (x4) - 0108
apply jordan_tuple_scan_skip - 0109
exact IH_witness_witness_witness_witness_witness - 0110
intro hbound - 0111
intro hprimitive - 0112
exfalso - 0113
apply hp_right - 0114
exact hprimitive - 0115
exists x - 0116
exists x1 - 0117
exists x2 - 0118
exists x3 - 0119
exists x4 - 0120
specialize jordan_tuple_scan_skip (k) - 0121
specialize jordan_tuple_scan_skip (n) - 0122
specialize jordan_tuple_scan_skip (c) - 0123
specialize jordan_tuple_scan_skip (t) - 0124
specialize jordan_tuple_scan_skip (x) - 0125
specialize jordan_tuple_scan_skip (x1) - 0126
specialize jordan_tuple_scan_skip (x2) - 0127
specialize jordan_tuple_scan_skip (x3) - 0128
specialize jordan_tuple_scan_skip (x4) - 0129
apply jordan_tuple_scan_skip - 0130
exact IH_witness_witness_witness_witness_witness - 0131
intro hbound - 0132
intro hprimitive - 0133
exfalso - 0134
apply hb_right - 0135
exact hbound