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 b c z d p t i. ~(p=0) -> (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))))))) -> (exists fms_gap_lt. fms_gap_lt + S (i) = (p)) -> ((((((exists fs_h_fms_pull_member. fs_h_fms_pull_member + S (1) = S ((S (i)) * d)) /\ exists fs_q_fms_pull_member. z = fs_q_fms_pull_member * S ((S (i)) * d) + (1))) -> (exists j. (((exists fms_gap_member. fms_gap_member + S (j) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (j)) * c)) /\ exists fs_q_fms_member. b = fs_q_fms_member * S ((S (j)) * c) + (1))))) /\ (exists fms_u_mod fms_v_mod. (i+t) + (p) * fms_u_mod = (j) + (p) * fms_v_mod))) /\ ((exists j. (((exists fms_gap_member. fms_gap_member + S (j) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (j)) * c)) /\ exists fs_q_fms_member. b = fs_q_fms_member * S ((S (j)) * c) + (1))))) /\ (exists fms_u_mod fms_v_mod. (i+t) + (p) * fms_u_mod = (j) + (p) * fms_v_mod)) -> (((exists fs_h_fms_pull_member. fs_h_fms_pull_member + S (1) = S ((S (i)) * d)) /\ exists fs_q_fms_pull_member. z = fs_q_fms_pull_member * S ((S (i)) * d) + (1))))))Constructive proof overview
Generated structural guide
Exact pullback membership constructs and reflects an actual canonical source member.
The unchanged tactic script uses 1 declared prerequisite and contains 48 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · 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–10
02Separate the logical casesL11–11
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L11
split
03Fix variables and assumptionsL12–12
Work with arbitrary variables or the premises of the current implication.
- L12
intro ht
04Establish hjL13–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular residue exists.
05Separate the logical casesL18–19
06Establish heL20–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hpull.
- L20
have he : (((((exists fs_h_fms_pull_t. fs_h_fms_pull_t + S (1) = S ((S (i)) * d)) /\ exists fs_q_fms_pull_t. z = fs_q_fms_pull_t * S ((S (i)) * d) + (1))) -> (((exists fs_h_fms_pull_s. fs_h_fms_pull_s + S (1) = S ((S (x)) * c)) /\ exists fs_q_fms_pull_s. b = fs_q_fms_pull_s * S ((S (x)) * c) + (1)))) /\ ((((exists fs_h_fms_pull_s. fs_h_fms_pull_s + S (1) = S ((S (x)) * c)) /\ exists fs_q_fms_pull_s. b = fs_q_fms_pull_s * S ((S (x)) * c) + (1))) -> (((exists fs_h_fms_pull_t. fs_h_fms_pull_t + S (1) = S ((S (i)) * d)) /\ exists fs_q_fms_pull_t. z = fs_q_fms_pull_t * S ((S (i)) * d) + (1))))) - L21
specialize hpull i - L22
specialize hpull x - L23
apply hpull - L24
exact hi - L25
exact hj_witness_left - L26
exact hj_witness_right
07Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases he
08Construct an explicit witnessL28–28
Supply the displayed value, then prove that it has the required property.
- L28
exists x
09Separate the logical casesL29–30
10Use earlier factsL31–34
11Fix variables and assumptionsL35–35
Work with arbitrary variables or the premises of the current implication.
- L35
intro hw
12Separate the logical casesL36–38
13Establish heL39–45
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hpull.
14Separate the logical casesL46–46
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L46
cases he
Original exact command ledger · 48 lines
- 0001
intro b - 0002
intro c - 0003
intro z - 0004
intro d - 0005
intro p - 0006
intro t - 0007
intro i - 0008
intro hp - 0009
intro hpull - 0010
intro hi - 0011
split - 0012
intro ht - 0013
have hj : exists j. (exists fms_gap_lt. fms_gap_lt + S (j) = (p)) /\ (exists fms_u_mod fms_v_mod. (i+t) + (p) * fms_u_mod = (j) + (p) * fms_v_mod) - 0014
specialize finite_modular_residue_exists p - 0015
specialize finite_modular_residue_exists i+t - 0016
apply finite_modular_residue_exists - 0017
exact hp - 0018
cases hj - 0019
cases hj_witness - 0020
have he : (((((exists fs_h_fms_pull_t. fs_h_fms_pull_t + S (1) = S ((S (i)) * d)) /\ exists fs_q_fms_pull_t. z = fs_q_fms_pull_t * S ((S (i)) * d) + (1))) -> (((exists fs_h_fms_pull_s. fs_h_fms_pull_s + S (1) = S ((S (x)) * c)) /\ exists fs_q_fms_pull_s. b = fs_q_fms_pull_s * S ((S (x)) * c) + (1)))) /\ ((((exists fs_h_fms_pull_s. fs_h_fms_pull_s + S (1) = S ((S (x)) * c)) /\ exists fs_q_fms_pull_s. b = fs_q_fms_pull_s * S ((S (x)) * c) + (1))) -> (((exists fs_h_fms_pull_t. fs_h_fms_pull_t + S (1) = S ((S (i)) * d)) /\ exists fs_q_fms_pull_t. z = fs_q_fms_pull_t * S ((S (i)) * d) + (1))))) - 0021
specialize hpull i - 0022
specialize hpull x - 0023
apply hpull - 0024
exact hi - 0025
exact hj_witness_left - 0026
exact hj_witness_right - 0027
cases he - 0028
exists x - 0029
split - 0030
split - 0031
exact hj_witness_left - 0032
apply he_left - 0033
exact ht - 0034
exact hj_witness_right - 0035
intro hw - 0036
cases hw - 0037
cases hw_witness - 0038
cases hw_witness_left - 0039
have he : (((((exists fs_h_fms_pull_back_t. fs_h_fms_pull_back_t + S (1) = S ((S (i)) * d)) /\ exists fs_q_fms_pull_back_t. z = fs_q_fms_pull_back_t * S ((S (i)) * d) + (1))) -> (((exists fs_h_fms_pull_back_s. fs_h_fms_pull_back_s + S (1) = S ((S (x)) * c)) /\ exists fs_q_fms_pull_back_s. b = fs_q_fms_pull_back_s * S ((S (x)) * c) + (1)))) /\ ((((exists fs_h_fms_pull_back_s. fs_h_fms_pull_back_s + S (1) = S ((S (x)) * c)) /\ exists fs_q_fms_pull_back_s. b = fs_q_fms_pull_back_s * S ((S (x)) * c) + (1))) -> (((exists fs_h_fms_pull_back_t. fs_h_fms_pull_back_t + S (1) = S ((S (i)) * d)) /\ exists fs_q_fms_pull_back_t. z = fs_q_fms_pull_back_t * S ((S (i)) * d) + (1))))) - 0040
specialize hpull i - 0041
specialize hpull x - 0042
apply hpull - 0043
exact hi - 0044
exact hw_witness_left_left - 0045
exact hw_witness_right - 0046
cases he - 0047
apply he_right - 0048
exact hw_witness_left_right