Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Exact expanded first-order arithmetic statement
forall p b c. (forall pff_enumeration_index_bijection_source. (exists pfa_gap_bijection_sourcebound. pfa_gap_bijection_sourcebound + S (pff_enumeration_index_bijection_source) = (p)) -> (((exists ff_h_pft_bijection_sourceentry. ff_h_pft_bijection_sourceentry + S (pff_enumeration_index_bijection_source) = S ((S (pff_enumeration_index_bijection_source)) * c)) /\ exists ff_q_pft_bijection_sourceentry. b = ff_q_pft_bijection_sourceentry * S ((S (pff_enumeration_index_bijection_source)) * c) + (pff_enumeration_index_bijection_source)))) -> (((forall pff_enumeration_index_bijection_resultenumeration. (exists pfa_gap_bijection_resultenumerationbound. pfa_gap_bijection_resultenumerationbound + S (pff_enumeration_index_bijection_resultenumeration) = (p)) -> (((exists ff_h_pft_bijection_resultenumerationentry. ff_h_pft_bijection_resultenumerationentry + S (pff_enumeration_index_bijection_resultenumeration) = S ((S (pff_enumeration_index_bijection_resultenumeration)) * c)) /\ exists ff_q_pft_bijection_resultenumerationentry. b = ff_q_pft_bijection_resultenumerationentry * S ((S (pff_enumeration_index_bijection_resultenumeration)) * c) + (pff_enumeration_index_bijection_resultenumeration)))) /\ (((forall pff_cardinality_i_bijection_result pff_cardinality_a_bijection_result. (exists pfa_gap_bijection_resultbounded_index. pfa_gap_bijection_resultbounded_index + S (pff_cardinality_i_bijection_result) = (p)) -> (((exists ff_h_pft_bijection_resultbounded_entry. ff_h_pft_bijection_resultbounded_entry + S (pff_cardinality_a_bijection_result) = S ((S (pff_cardinality_i_bijection_result)) * c)) /\ exists ff_q_pft_bijection_resultbounded_entry. b = ff_q_pft_bijection_resultbounded_entry * S ((S (pff_cardinality_i_bijection_result)) * c) + (pff_cardinality_a_bijection_result))) -> (exists pfa_gap_bijection_resultbounded_value. pfa_gap_bijection_resultbounded_value + S (pff_cardinality_a_bijection_result) = (p))) /\ (((forall pff_cardinality_i_bijection_result pff_cardinality_j_bijection_result pff_cardinality_a_bijection_result. (exists pfa_gap_bijection_resultinjective_i. pfa_gap_bijection_resultinjective_i + S (pff_cardinality_i_bijection_result) = (p)) -> (exists pfa_gap_bijection_resultinjective_j. pfa_gap_bijection_resultinjective_j + S (pff_cardinality_j_bijection_result) = (p)) -> (((exists ff_h_pft_bijection_resultinjective_first. ff_h_pft_bijection_resultinjective_first + S (pff_cardinality_a_bijection_result) = S ((S (pff_cardinality_i_bijection_result)) * c)) /\ exists ff_q_pft_bijection_resultinjective_first. b = ff_q_pft_bijection_resultinjective_first * S ((S (pff_cardinality_i_bijection_result)) * c) + (pff_cardinality_a_bijection_result))) -> (((exists ff_h_pft_bijection_resultinjective_second. ff_h_pft_bijection_resultinjective_second + S (pff_cardinality_a_bijection_result) = S ((S (pff_cardinality_j_bijection_result)) * c)) /\ exists ff_q_pft_bijection_resultinjective_second. b = ff_q_pft_bijection_resultinjective_second * S ((S (pff_cardinality_j_bijection_result)) * c) + (pff_cardinality_a_bijection_result))) -> pff_cardinality_i_bijection_result = pff_cardinality_j_bijection_result) /\ ((forall pff_cardinality_a_bijection_result. (exists pfa_gap_bijection_resultsurjective_value. pfa_gap_bijection_resultsurjective_value + S (pff_cardinality_a_bijection_result) = (p)) -> exists pff_cardinality_i_bijection_result. (exists pfa_gap_bijection_resultsurjective_index. pfa_gap_bijection_resultsurjective_index + S (pff_cardinality_i_bijection_result) = (p)) /\ (((exists ff_h_pft_bijection_resultsurjective_entry. ff_h_pft_bijection_resultsurjective_entry + S (pff_cardinality_a_bijection_result) = S ((S (pff_cardinality_i_bijection_result)) * c)) /\ exists ff_q_pft_bijection_resultsurjective_entry. b = ff_q_pft_bijection_resultsurjective_entry * S ((S (pff_cardinality_i_bijection_result)) * c) + (pff_cardinality_a_bijection_result)))))))))))Constructive proof overview
Generated structural guide
The actual p-entry enumeration is bounded, injective and onto every canonical field representative.
The unchanged tactic script uses 1 declared prerequisite and contains 63 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
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 (1)
01Fix variables and assumptionsL1–4
02Separate the logical casesL5–5
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L5
split
03Use earlier factsL6–6
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L6
exact henum
04Separate the logical casesL7–7
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L7
split
05Fix variables and assumptionsL8–11
06Establish heqL12–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field enumeration value.
- L12
have heq : a = i - L13
specialize prime_field_enumeration_value (p) - L14
specialize prime_field_enumeration_value (b) - L15
specialize prime_field_enumeration_value (c) - L16
specialize prime_field_enumeration_value (i) - L17
specialize prime_field_enumeration_value (a) - L18
apply prime_field_enumeration_value - L19
exact henum - L20
exact hi - L21
exact hat
07Calculate and transport equalitiesL22–22
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L22
rewrite heq
08Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
exact hi
09Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
split
10Fix variables and assumptionsL25–31
11Establish hleftL32–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field enumeration value.
- L32
have hleft : a = i - L33
specialize prime_field_enumeration_value (p) - L34
specialize prime_field_enumeration_value (b) - L35
specialize prime_field_enumeration_value (c) - L36
specialize prime_field_enumeration_value (i) - L37
specialize prime_field_enumeration_value (a) - L38
apply prime_field_enumeration_value - L39
exact henum - L40
exact hi - L41
exact hfirst
12Establish hrightL42–51
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field enumeration value.
- L42
have hright : a = j - L43
specialize prime_field_enumeration_value (p) - L44
specialize prime_field_enumeration_value (b) - L45
specialize prime_field_enumeration_value (c) - L46
specialize prime_field_enumeration_value (j) - L47
specialize prime_field_enumeration_value (a) - L48
apply prime_field_enumeration_value - L49
exact henum - L50
exact hj - L51
exact hsecond
13Calculate and transport equalitiesL52–53
14Use earlier factsL54–55
15Fix variables and assumptionsL56–57
16Construct an explicit witnessL58–58
Supply the displayed value, then prove that it has the required property.
- L58
exists a
17Separate the logical casesL59–59
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L59
split
Original exact command ledger · 63 lines
- 0001
intro p - 0002
intro b - 0003
intro c - 0004
intro henum - 0005
split - 0006
exact henum - 0007
split - 0008
intro i - 0009
intro a - 0010
intro hi - 0011
intro hat - 0012
have heq : a = i - 0013
specialize prime_field_enumeration_value (p) - 0014
specialize prime_field_enumeration_value (b) - 0015
specialize prime_field_enumeration_value (c) - 0016
specialize prime_field_enumeration_value (i) - 0017
specialize prime_field_enumeration_value (a) - 0018
apply prime_field_enumeration_value - 0019
exact henum - 0020
exact hi - 0021
exact hat - 0022
rewrite heq - 0023
exact hi - 0024
split - 0025
intro i - 0026
intro j - 0027
intro a - 0028
intro hi - 0029
intro hj - 0030
intro hfirst - 0031
intro hsecond - 0032
have hleft : a = i - 0033
specialize prime_field_enumeration_value (p) - 0034
specialize prime_field_enumeration_value (b) - 0035
specialize prime_field_enumeration_value (c) - 0036
specialize prime_field_enumeration_value (i) - 0037
specialize prime_field_enumeration_value (a) - 0038
apply prime_field_enumeration_value - 0039
exact henum - 0040
exact hi - 0041
exact hfirst - 0042
have hright : a = j - 0043
specialize prime_field_enumeration_value (p) - 0044
specialize prime_field_enumeration_value (b) - 0045
specialize prime_field_enumeration_value (c) - 0046
specialize prime_field_enumeration_value (j) - 0047
specialize prime_field_enumeration_value (a) - 0048
apply prime_field_enumeration_value - 0049
exact henum - 0050
exact hj - 0051
exact hsecond - 0052
trans a - 0053
symm - 0054
exact hleft - 0055
exact hright - 0056
intro a - 0057
intro ha - 0058
exists a - 0059
split - 0060
exact ha - 0061
specialize henum (a) - 0062
apply henum - 0063
exact ha