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 original first-admission records.
Exact expanded first-order arithmetic statement
forall p t r s. (forall fms_i_indices. (exists fms_gap_indices. fms_gap_indices + S (fms_i_indices) = (p)) -> exists fms_j_indices. (((exists fs_h_fms_indices_entry. fs_h_fms_indices_entry + S (fms_j_indices) = S ((S (fms_i_indices)) * s)) /\ exists fs_q_fms_indices_entry. r = fs_q_fms_indices_entry * S ((S (fms_i_indices)) * s) + (fms_j_indices))) /\ ((exists fms_gap_indices_bound. fms_gap_indices_bound + S (fms_j_indices) = (p)) /\ (exists fms_u_indices fms_v_indices. (fms_i_indices+t) + (p) * fms_u_indices = (fms_j_indices) + (p) * fms_v_indices))) -> (forall fp_i_fms_translation_bounded. (exists fp_gap_fms_translation_bounded_index. fp_gap_fms_translation_bounded_index + S fp_i_fms_translation_bounded = p) -> exists fp_value_fms_translation_bounded. ((((exists ff_h_fms_translation_bounded_entry. ff_h_fms_translation_bounded_entry + S (fp_value_fms_translation_bounded) = S ((S (fp_i_fms_translation_bounded)) * s)) /\ exists ff_q_fms_translation_bounded_entry. r = ff_q_fms_translation_bounded_entry * S ((S (fp_i_fms_translation_bounded)) * s) + (fp_value_fms_translation_bounded))) /\ (exists fp_gap_fms_translation_bounded_value. fp_gap_fms_translation_bounded_value + S fp_value_fms_translation_bounded = p))) /\ (forall fp_i_fms_translation_injective fp_j_fms_translation_injective fp_value_fms_translation_injective. (exists fp_gap_fms_translation_injective_i. fp_gap_fms_translation_injective_i + S fp_i_fms_translation_injective = p) -> (exists fp_gap_fms_translation_injective_j. fp_gap_fms_translation_injective_j + S fp_j_fms_translation_injective = p) -> (((exists ff_h_fms_translation_injective_left. ff_h_fms_translation_injective_left + S (fp_value_fms_translation_injective) = S ((S (fp_i_fms_translation_injective)) * s)) /\ exists ff_q_fms_translation_injective_left. r = ff_q_fms_translation_injective_left * S ((S (fp_i_fms_translation_injective)) * s) + (fp_value_fms_translation_injective))) -> (((exists ff_h_fms_translation_injective_right. ff_h_fms_translation_injective_right + S (fp_value_fms_translation_injective) = S ((S (fp_j_fms_translation_injective)) * s)) /\ exists ff_q_fms_translation_injective_right. r = ff_q_fms_translation_injective_right * S ((S (fp_j_fms_translation_injective)) * s) + (fp_value_fms_translation_injective))) -> fp_i_fms_translation_injective = fp_j_fms_translation_injective)Constructive proof overview
Generated structural guide
Canonical modular translation is a genuinely beta-coded bounded injection and hence a finite permutation.
The unchanged tactic script uses 5 declared prerequisites and contains 74 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
CD001E finite_modular_translation_index_entry mod_eq_bounded_unique Stable theorem; checked-use authorized mod_eq_trans Stable theorem; checked-use authorized mod_eq_symm Stable theorem; checked-use authorized mod_eq_add_cancel_right Alpha theorem; checked-use authorizedDirect 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–5
02Separate the logical casesL6–6
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L6
split
03Fix variables and assumptionsL7–8
04Establish hvL9–12
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hindices.
- L9
have hv : exists v. (((exists fs_h_fms_permutation_index. fs_h_fms_permutation_index + S (v) = S ((S (i)) * s)) /\ exists fs_q_fms_permutation_index. r = fs_q_fms_permutation_index * S ((S (i)) * s) + (v))) /\ ((exists fms_gap_lt. fms_gap_lt + S (v) = (p)) /\ (exists fms_u_mod fms_v_mod. (i+t) + (p) * fms_u_mod = (v) + (p) * fms_v_mod)) - L10
specialize hindices i - L11
apply hindices - L12
exact hi
05Separate the logical casesL13–15
06Construct an explicit witnessL16–16
Supply the displayed value, then prove that it has the required property.
- L16
exists x
07Separate the logical casesL17–17
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L17
split
08Use earlier factsL18–19
09Fix variables and assumptionsL20–26
10Establish hleftL27–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular translation index entry.
- L27
have hleft : (exists fms_gap_lt. fms_gap_lt + S (v) = (p)) /\ (exists fms_u_mod fms_v_mod. (i+t) + (p) * fms_u_mod = (v) + (p) * fms_v_mod) - L28
specialize finite_modular_translation_index_entry p - L29
specialize finite_modular_translation_index_entry t - L30
specialize finite_modular_translation_index_entry r - L31
specialize finite_modular_translation_index_entry s - L32
specialize finite_modular_translation_index_entry p - L33
specialize finite_modular_translation_index_entry i - L34
specialize finite_modular_translation_index_entry v - L35
apply finite_modular_translation_index_entry - L36
exact hindices
11Use earlier factsL37–38
12Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
cases hleft
13Establish hrightL40–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular translation index entry.
- L40
have hright : (exists fms_gap_lt. fms_gap_lt + S (v) = (p)) /\ (exists fms_u_mod fms_v_mod. (j+t) + (p) * fms_u_mod = (v) + (p) * fms_v_mod) - L41
specialize finite_modular_translation_index_entry p - L42
specialize finite_modular_translation_index_entry t - L43
specialize finite_modular_translation_index_entry r - L44
specialize finite_modular_translation_index_entry s - L45
specialize finite_modular_translation_index_entry p - L46
specialize finite_modular_translation_index_entry j - L47
specialize finite_modular_translation_index_entry v - L48
apply finite_modular_translation_index_entry - L49
exact hindices
14Use earlier factsL50–51
15Separate the logical casesL52–52
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L52
cases hright
16Use earlier factsL53–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L53
specialize mod_eq_bounded_unique p - L54
specialize mod_eq_bounded_unique i - L55
specialize mod_eq_bounded_unique j - L56
apply mod_eq_bounded_unique - L57
exact hi - L58
exact hj - L59
specialize mod_eq_add_cancel_right p - L60
specialize mod_eq_add_cancel_right i - L61
specialize mod_eq_add_cancel_right j - L62
specialize mod_eq_add_cancel_right t
17Use earlier factsL63–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 74 lines
- 0001
intro p - 0002
intro t - 0003
intro r - 0004
intro s - 0005
intro hindices - 0006
split - 0007
intro i - 0008
intro hi - 0009
have hv : exists v. (((exists fs_h_fms_permutation_index. fs_h_fms_permutation_index + S (v) = S ((S (i)) * s)) /\ exists fs_q_fms_permutation_index. r = fs_q_fms_permutation_index * S ((S (i)) * s) + (v))) /\ ((exists fms_gap_lt. fms_gap_lt + S (v) = (p)) /\ (exists fms_u_mod fms_v_mod. (i+t) + (p) * fms_u_mod = (v) + (p) * fms_v_mod)) - 0010
specialize hindices i - 0011
apply hindices - 0012
exact hi - 0013
cases hv - 0014
cases hv_witness - 0015
cases hv_witness_right - 0016
exists x - 0017
split - 0018
exact hv_witness_left - 0019
exact hv_witness_right_left - 0020
intro i - 0021
intro j - 0022
intro v - 0023
intro hi - 0024
intro hj - 0025
intro hiv - 0026
intro hjv - 0027
have hleft : (exists fms_gap_lt. fms_gap_lt + S (v) = (p)) /\ (exists fms_u_mod fms_v_mod. (i+t) + (p) * fms_u_mod = (v) + (p) * fms_v_mod) - 0028
specialize finite_modular_translation_index_entry p - 0029
specialize finite_modular_translation_index_entry t - 0030
specialize finite_modular_translation_index_entry r - 0031
specialize finite_modular_translation_index_entry s - 0032
specialize finite_modular_translation_index_entry p - 0033
specialize finite_modular_translation_index_entry i - 0034
specialize finite_modular_translation_index_entry v - 0035
apply finite_modular_translation_index_entry - 0036
exact hindices - 0037
exact hi - 0038
exact hiv - 0039
cases hleft - 0040
have hright : (exists fms_gap_lt. fms_gap_lt + S (v) = (p)) /\ (exists fms_u_mod fms_v_mod. (j+t) + (p) * fms_u_mod = (v) + (p) * fms_v_mod) - 0041
specialize finite_modular_translation_index_entry p - 0042
specialize finite_modular_translation_index_entry t - 0043
specialize finite_modular_translation_index_entry r - 0044
specialize finite_modular_translation_index_entry s - 0045
specialize finite_modular_translation_index_entry p - 0046
specialize finite_modular_translation_index_entry j - 0047
specialize finite_modular_translation_index_entry v - 0048
apply finite_modular_translation_index_entry - 0049
exact hindices - 0050
exact hj - 0051
exact hjv - 0052
cases hright - 0053
specialize mod_eq_bounded_unique p - 0054
specialize mod_eq_bounded_unique i - 0055
specialize mod_eq_bounded_unique j - 0056
apply mod_eq_bounded_unique - 0057
exact hi - 0058
exact hj - 0059
specialize mod_eq_add_cancel_right p - 0060
specialize mod_eq_add_cancel_right i - 0061
specialize mod_eq_add_cancel_right j - 0062
specialize mod_eq_add_cancel_right t - 0063
apply mod_eq_add_cancel_right - 0064
specialize mod_eq_trans p - 0065
specialize mod_eq_trans i+t - 0066
specialize mod_eq_trans v - 0067
specialize mod_eq_trans j+t - 0068
apply mod_eq_trans - 0069
exact hleft_right - 0070
specialize mod_eq_symm p - 0071
specialize mod_eq_symm j+t - 0072
specialize mod_eq_symm v - 0073
apply mod_eq_symm - 0074
exact hright_right