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 b c z d. (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 fms_i_compose fms_j_compose fms_v_compose. (exists fms_gap_compose. fms_gap_compose + S (fms_i_compose) = (p)) -> (((exists fs_h_fms_compose_index. fs_h_fms_compose_index + S (fms_j_compose) = S ((S (fms_i_compose)) * s)) /\ exists fs_q_fms_compose_index. r = fs_q_fms_compose_index * S ((S (fms_i_compose)) * s) + (fms_j_compose))) -> (((exists fs_h_fms_compose_source. fs_h_fms_compose_source + S (fms_v_compose) = S ((S (fms_j_compose)) * c)) /\ exists fs_q_fms_compose_source. b = fs_q_fms_compose_source * S ((S (fms_j_compose)) * c) + (fms_v_compose))) -> (((exists fs_h_fms_compose_target. fs_h_fms_compose_target + S (fms_v_compose) = S ((S (fms_i_compose)) * d)) /\ exists fs_q_fms_compose_target. z = fs_q_fms_compose_target * S ((S (fms_i_compose)) * d) + (fms_v_compose)))) -> (forall fms_i_pullback fms_j_pullback. (exists fms_gap_pullback_i. fms_gap_pullback_i + S (fms_i_pullback) = (p)) -> (exists fms_gap_pullback_j. fms_gap_pullback_j + S (fms_j_pullback) = (p)) -> (exists fms_u_pullback fms_v_pullback. (fms_i_pullback + t) + (p) * fms_u_pullback = (fms_j_pullback) + (p) * fms_v_pullback) -> ((((((exists fs_h_fms_pullback_target. fs_h_fms_pullback_target + S (1) = S ((S (fms_i_pullback)) * d)) /\ exists fs_q_fms_pullback_target. z = fs_q_fms_pullback_target * S ((S (fms_i_pullback)) * d) + (1))) -> (((exists fs_h_fms_pullback_source. fs_h_fms_pullback_source + S (1) = S ((S (fms_j_pullback)) * c)) /\ exists fs_q_fms_pullback_source. b = fs_q_fms_pullback_source * S ((S (fms_j_pullback)) * c) + (1)))) /\ ((((exists fs_h_fms_pullback_source. fs_h_fms_pullback_source + S (1) = S ((S (fms_j_pullback)) * c)) /\ exists fs_q_fms_pullback_source. b = fs_q_fms_pullback_source * S ((S (fms_j_pullback)) * c) + (1))) -> (((exists fs_h_fms_pullback_target. fs_h_fms_pullback_target + S (1) = S ((S (fms_i_pullback)) * d)) /\ exists fs_q_fms_pullback_target. z = fs_q_fms_pullback_target * S ((S (fms_i_pullback)) * d) + (1)))))))Constructive proof overview
Generated structural guide
The constructed value-level composition has exact two-way modular-set pullback membership.
The unchanged tactic script uses 5 declared prerequisites and contains 78 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
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 beta_at_exists Stable theorem; checked-use authorized beta_at_unique Stable 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.
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–15
03Establish hkL16–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hindices.
- L16
have hk : exists k. (((exists fs_h_fms_pullback_index. fs_h_fms_pullback_index + S (k) = S ((S (i)) * s)) /\ exists fs_q_fms_pullback_index. r = fs_q_fms_pullback_index * S ((S (i)) * s) + (k))) /\ ((exists fms_gap_lt. fms_gap_lt + S (k) = (p)) /\ (exists fms_u_mod fms_v_mod. (i+t) + (p) * fms_u_mod = (k) + (p) * fms_v_mod)) - L17
specialize hindices i - L18
apply hindices - L19
exact hi
04Separate the logical casesL20–22
05Establish heL23–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq bounded unique.
06Use earlier factsL33–40
07Calculate and transport equalitiesL41–42
08Separate the logical casesL43–43
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L43
split
09Fix variables and assumptionsL44–44
Work with arbitrary variables or the premises of the current implication.
- L44
intro ht
10Establish haL45–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L45
have ha : exists a. ((exists fs_h_fms_pullback_source. fs_h_fms_pullback_source + S (a) = S ((S (j)) * c)) /\ exists fs_q_fms_pullback_source. b = fs_q_fms_pullback_source * S ((S (j)) * c) + (a)) - L46
specialize beta_at_exists b - L47
specialize beta_at_exists c - L48
specialize beta_at_exists j - L49
apply beta_at_exists
11Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
cases ha
12Establish hvL51–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hcompose.
- L51
have hv : ((exists fs_h_fms_pullback_target. fs_h_fms_pullback_target + S (x1) = S ((S (i)) * d)) /\ exists fs_q_fms_pullback_target. z = fs_q_fms_pullback_target * S ((S (i)) * d) + (x1)) - L52
specialize hcompose i - L53
specialize hcompose j - L54
specialize hcompose x1 - L55
apply hcompose - L56
exact hi - L57
exact hk_witness_left - L58
exact ha_witness
13Establish honeL59–68
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
14Calculate and transport equalitiesL69–69
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L69
rewrite hone at ha_witness
15Use earlier factsL70–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L70
exact ha_witness
16Fix variables and assumptionsL71–71
Work with arbitrary variables or the premises of the current implication.
- L71
intro hs
Original exact command ledger · 78 lines
- 0001
intro p - 0002
intro t - 0003
intro r - 0004
intro s - 0005
intro b - 0006
intro c - 0007
intro z - 0008
intro d - 0009
intro hindices - 0010
intro hcompose - 0011
intro i - 0012
intro j - 0013
intro hi - 0014
intro hj - 0015
intro hmod - 0016
have hk : exists k. (((exists fs_h_fms_pullback_index. fs_h_fms_pullback_index + S (k) = S ((S (i)) * s)) /\ exists fs_q_fms_pullback_index. r = fs_q_fms_pullback_index * S ((S (i)) * s) + (k))) /\ ((exists fms_gap_lt. fms_gap_lt + S (k) = (p)) /\ (exists fms_u_mod fms_v_mod. (i+t) + (p) * fms_u_mod = (k) + (p) * fms_v_mod)) - 0017
specialize hindices i - 0018
apply hindices - 0019
exact hi - 0020
cases hk - 0021
cases hk_witness - 0022
cases hk_witness_right - 0023
have he : x=j - 0024
specialize mod_eq_bounded_unique p - 0025
specialize mod_eq_bounded_unique x - 0026
specialize mod_eq_bounded_unique j - 0027
apply mod_eq_bounded_unique - 0028
exact hk_witness_right_left - 0029
exact hj - 0030
specialize mod_eq_trans p - 0031
specialize mod_eq_trans x - 0032
specialize mod_eq_trans i+t - 0033
specialize mod_eq_trans j - 0034
apply mod_eq_trans - 0035
specialize mod_eq_symm p - 0036
specialize mod_eq_symm i+t - 0037
specialize mod_eq_symm x - 0038
apply mod_eq_symm - 0039
exact hk_witness_right_right - 0040
exact hmod - 0041
rewrite he at hk_witness_left - 0042
rewrite he at hk_witness_left - 0043
split - 0044
intro ht - 0045
have ha : exists a. ((exists fs_h_fms_pullback_source. fs_h_fms_pullback_source + S (a) = S ((S (j)) * c)) /\ exists fs_q_fms_pullback_source. b = fs_q_fms_pullback_source * S ((S (j)) * c) + (a)) - 0046
specialize beta_at_exists b - 0047
specialize beta_at_exists c - 0048
specialize beta_at_exists j - 0049
apply beta_at_exists - 0050
cases ha - 0051
have hv : ((exists fs_h_fms_pullback_target. fs_h_fms_pullback_target + S (x1) = S ((S (i)) * d)) /\ exists fs_q_fms_pullback_target. z = fs_q_fms_pullback_target * S ((S (i)) * d) + (x1)) - 0052
specialize hcompose i - 0053
specialize hcompose j - 0054
specialize hcompose x1 - 0055
apply hcompose - 0056
exact hi - 0057
exact hk_witness_left - 0058
exact ha_witness - 0059
have hone : x1=1 - 0060
specialize beta_at_unique z - 0061
specialize beta_at_unique d - 0062
specialize beta_at_unique i - 0063
specialize beta_at_unique x1 - 0064
specialize beta_at_unique 1 - 0065
apply beta_at_unique - 0066
exact hv - 0067
exact ht - 0068
rewrite hone at ha_witness - 0069
rewrite hone at ha_witness - 0070
exact ha_witness - 0071
intro hs - 0072
specialize hcompose i - 0073
specialize hcompose j - 0074
specialize hcompose 1 - 0075
apply hcompose - 0076
exact hi - 0077
exact hk_witness_left - 0078
exact hs