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
∀ q. ∀ k. ∀ n. ∀ A. ∀ B. ∀ C. ∀ D. ∀ u. ∀ E. ∀ F. ∀ G. ∀ H. ∀ v. JordanTupleEnumeration(k,n,A,B,C,D,u) → JordanTupleEnumeration(k,n,E,F,G,H,v) → Le(q,u) → ∃ x. ∃ y. ∀ z. Lt(z,q) → ∃ m. BetaAt(x,y,z,m) ∧ (Lt(m,v) ∧ (∀ i. ∀ j. ∀ w. ∀ x0. BetaAt(A,B,z,i) ∧ BetaAt(C,D,z,j) → BetaAt(E,F,m,w) ∧ BetaAt(G,H,m,x0) → IntegerVectorZero(i,j,w,x0,k)))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 109 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 (3)
01Induction on qL1–10
02Fix variables and assumptionsL11–16
03Construct an explicit witnessL17–18
04Use earlier factsL19–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
specialize jordan_enumeration_index_map_empty (k) - L20
specialize jordan_enumeration_index_map_empty (A) - L21
specialize jordan_enumeration_index_map_empty (B) - L22
specialize jordan_enumeration_index_map_empty (C) - L23
specialize jordan_enumeration_index_map_empty (D) - L24
specialize jordan_enumeration_index_map_empty (E) - L25
specialize jordan_enumeration_index_map_empty (F) - L26
specialize jordan_enumeration_index_map_empty (G) - L27
specialize jordan_enumeration_index_map_empty (H) - L28
specialize jordan_enumeration_index_map_empty (0)
05Use earlier factsL29–31
06Fix variables and assumptionsL32–41
07Fix variables and assumptionsL42–46
08Establish hpL47–56
Establish this local claim before using it. It is not an additional assumption.
- L47
have hp : ∃ Z. ∃ W. ∀ jt_index_induction_prefix. Lt(jt_index_induction_prefix,q) → ∃ x. BetaAt(Z,W,jt_index_induction_prefix,x) ∧ (Lt(x,v) ∧ (∀ y. ∀ z. ∀ n. ∀ m. BetaAt(A,B,jt_index_induction_prefix,y) ∧ BetaAt(C,D,jt_index_induction_prefix,z) → BetaAt(E,F,x,n) ∧ BetaAt(G,H,x,m) → IntegerVectorZero(y,z,n,m,k)))Definitions: Lt(jt_index_induction_prefix,q)BetaAt(Z,W,jt_index_induction_prefix,x)Lt(x,v)BetaAt(A,B,jt_index_induction_prefix,y)BetaAt(C,D,jt_index_induction_prefix,z)BetaAt(E,F,x,n)BetaAt(G,H,x,m)IntegerVectorZero(y,z,n,m,k)Original native command in the exact edition - L48
specialize IH (k) - L49
specialize IH (n) - L50
specialize IH (A) - L51
specialize IH (B) - L52
specialize IH (C) - L53
specialize IH (D) - L54
specialize IH (u) - L55
specialize IH (E) - L56
specialize IH (F)
09Use earlier factsL57–66
10Use earlier factsL67–69
11Separate the logical casesL70–71
12Establish hmL72–81
Establish this local claim before using it. It is not an additional assumption.
- L72
have hm : ∃ j. Lt(j,v) ∧ (∀ x. ∀ y. ∀ z. ∀ n. BetaAt(A,B,q,x) ∧ BetaAt(C,D,q,y) → BetaAt(E,F,j,z) ∧ BetaAt(G,H,j,n) → IntegerVectorZero(x,y,z,n,k))Definitions: Lt(j,v)BetaAt(A,B,q,x)BetaAt(C,D,q,y)BetaAt(E,F,j,z)BetaAt(G,H,j,n)IntegerVectorZero(x,y,z,n,k)Original native command in the exact edition - L73
specialize jordan_enumeration_position_match_exists (k) - L74
specialize jordan_enumeration_position_match_exists (n) - L75
specialize jordan_enumeration_position_match_exists (A) - L76
specialize jordan_enumeration_position_match_exists (B) - L77
specialize jordan_enumeration_position_match_exists (C) - L78
specialize jordan_enumeration_position_match_exists (D) - L79
specialize jordan_enumeration_position_match_exists (u) - L80
specialize jordan_enumeration_position_match_exists (E) - L81
specialize jordan_enumeration_position_match_exists (F)
13Use earlier factsL82–89
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
specialize jordan_enumeration_position_match_exists (G) - L83
specialize jordan_enumeration_position_match_exists (H) - L84
specialize jordan_enumeration_position_match_exists (v) - L85
specialize jordan_enumeration_position_match_exists (q) - L86
apply jordan_enumeration_position_match_exists - L87
exact hl - L88
exact hr - L89
exact hq
14Separate the logical casesL90–91
15Use earlier factsL92–101
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L92
specialize jordan_enumeration_index_map_append (k) - L93
specialize jordan_enumeration_index_map_append (A) - L94
specialize jordan_enumeration_index_map_append (B) - L95
specialize jordan_enumeration_index_map_append (C) - L96
specialize jordan_enumeration_index_map_append (D) - L97
specialize jordan_enumeration_index_map_append (E) - L98
specialize jordan_enumeration_index_map_append (F) - L99
specialize jordan_enumeration_index_map_append (G) - L100
specialize jordan_enumeration_index_map_append (H) - L101
specialize jordan_enumeration_index_map_append (x)
16Use earlier factsL102–109
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L102
specialize jordan_enumeration_index_map_append (x1) - L103
specialize jordan_enumeration_index_map_append (q) - L104
specialize jordan_enumeration_index_map_append (v) - L105
specialize jordan_enumeration_index_map_append (x2) - L106
apply jordan_enumeration_index_map_append - L107
exact hp_witness_witness - L108
exact hm_witness_left - L109
exact hm_witness_right
Original defined command ledger · 109 lines
- 0001
induction q - 0002
intro k - 0003
intro n - 0004
intro A - 0005
intro B - 0006
intro C - 0007
intro D - 0008
intro u - 0009
intro E - 0010
intro F - 0011
intro G - 0012
intro H - 0013
intro v - 0014
intro hl - 0015
intro hr - 0016
intro hq - 0017
exists 0 - 0018
exists 0 - 0019
specialize jordan_enumeration_index_map_empty (k) - 0020
specialize jordan_enumeration_index_map_empty (A) - 0021
specialize jordan_enumeration_index_map_empty (B) - 0022
specialize jordan_enumeration_index_map_empty (C) - 0023
specialize jordan_enumeration_index_map_empty (D) - 0024
specialize jordan_enumeration_index_map_empty (E) - 0025
specialize jordan_enumeration_index_map_empty (F) - 0026
specialize jordan_enumeration_index_map_empty (G) - 0027
specialize jordan_enumeration_index_map_empty (H) - 0028
specialize jordan_enumeration_index_map_empty (0) - 0029
specialize jordan_enumeration_index_map_empty (0) - 0030
specialize jordan_enumeration_index_map_empty (v) - 0031
apply jordan_enumeration_index_map_empty - 0032
intro k - 0033
intro n - 0034
intro A - 0035
intro B - 0036
intro C - 0037
intro D - 0038
intro u - 0039
intro E - 0040
intro F - 0041
intro G - 0042
intro H - 0043
intro v - 0044
intro hl - 0045
intro hr - 0046
intro hq - 0047
have hp : ∃ Z. ∃ W. ∀ jt_index_induction_prefix. Lt(jt_index_induction_prefix,q) → ∃ x. BetaAt(Z,W,jt_index_induction_prefix,x) ∧ (Lt(x,v) ∧ (∀ y. ∀ z. ∀ n. ∀ m. BetaAt(A,B,jt_index_induction_prefix,y) ∧ BetaAt(C,D,jt_index_induction_prefix,z) → BetaAt(E,F,x,n) ∧ BetaAt(G,H,x,m) → IntegerVectorZero(y,z,n,m,k))) - 0048
specialize IH (k) - 0049
specialize IH (n) - 0050
specialize IH (A) - 0051
specialize IH (B) - 0052
specialize IH (C) - 0053
specialize IH (D) - 0054
specialize IH (u) - 0055
specialize IH (E) - 0056
specialize IH (F) - 0057
specialize IH (G) - 0058
specialize IH (H) - 0059
specialize IH (v) - 0060
apply IH - 0061
exact hl - 0062
exact hr - 0063
specialize le_trans (q) - 0064
specialize le_trans (S q) - 0065
specialize le_trans (u) - 0066
apply le_trans - 0067
specialize le_succ_self (q) - 0068
apply le_succ_self - 0069
exact hq - 0070
cases hp - 0071
cases hp_witness - 0072
have hm : ∃ j. Lt(j,v) ∧ (∀ x. ∀ y. ∀ z. ∀ n. BetaAt(A,B,q,x) ∧ BetaAt(C,D,q,y) → BetaAt(E,F,j,z) ∧ BetaAt(G,H,j,n) → IntegerVectorZero(x,y,z,n,k)) - 0073
specialize jordan_enumeration_position_match_exists (k) - 0074
specialize jordan_enumeration_position_match_exists (n) - 0075
specialize jordan_enumeration_position_match_exists (A) - 0076
specialize jordan_enumeration_position_match_exists (B) - 0077
specialize jordan_enumeration_position_match_exists (C) - 0078
specialize jordan_enumeration_position_match_exists (D) - 0079
specialize jordan_enumeration_position_match_exists (u) - 0080
specialize jordan_enumeration_position_match_exists (E) - 0081
specialize jordan_enumeration_position_match_exists (F) - 0082
specialize jordan_enumeration_position_match_exists (G) - 0083
specialize jordan_enumeration_position_match_exists (H) - 0084
specialize jordan_enumeration_position_match_exists (v) - 0085
specialize jordan_enumeration_position_match_exists (q) - 0086
apply jordan_enumeration_position_match_exists - 0087
exact hl - 0088
exact hr - 0089
exact hq - 0090
cases hm - 0091
cases hm_witness - 0092
specialize jordan_enumeration_index_map_append (k) - 0093
specialize jordan_enumeration_index_map_append (A) - 0094
specialize jordan_enumeration_index_map_append (B) - 0095
specialize jordan_enumeration_index_map_append (C) - 0096
specialize jordan_enumeration_index_map_append (D) - 0097
specialize jordan_enumeration_index_map_append (E) - 0098
specialize jordan_enumeration_index_map_append (F) - 0099
specialize jordan_enumeration_index_map_append (G) - 0100
specialize jordan_enumeration_index_map_append (H) - 0101
specialize jordan_enumeration_index_map_append (x) - 0102
specialize jordan_enumeration_index_map_append (x1) - 0103
specialize jordan_enumeration_index_map_append (q) - 0104
specialize jordan_enumeration_index_map_append (v) - 0105
specialize jordan_enumeration_index_map_append (x2) - 0106
apply jordan_enumeration_index_map_append - 0107
exact hp_witness_witness - 0108
exact hm_witness_left - 0109
exact hm_witness_right