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 v i. ~(p=0) -> t+v=p -> (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 + v) + (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_push_member. fs_h_fms_push_member + S (1) = S ((S (i)) * d)) /\ exists fs_q_fms_push_member. z = fs_q_fms_push_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. (j+t) + (p) * fms_u_mod = (i) + (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. (j+t) + (p) * fms_u_mod = (i) + (p) * fms_v_mod)) -> (((exists fs_h_fms_push_member. fs_h_fms_push_member + S (1) = S ((S (i)) * d)) /\ exists fs_q_fms_push_member. z = fs_q_fms_push_member * S ((S (i)) * d) + (1))))))Constructive proof overview
Generated structural guide
A coded inverse pullback is exactly the forward translate, with actual source-member witnesses.
The unchanged tactic script uses 3 declared prerequisites and contains 62 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
CD0027 finite_modular_pullback_membership_witness CD0026 finite_modular_inverse_shift add_comm 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.
Named ingredients (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Establish heL13–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular pullback membership witness.
- L13
have he : (BetaAt(z,d,i,1) → ∃ x. ModularSetMember(b,c,p,x) ∧ ModEq(p,i + v,x)) ∧ ((∃ x. ModularSetMember(b,c,p,x) ∧ ModEq(p,i + v,x)) → BetaAt(z,d,i,1))Definitions: ModularSetMemberModEqBetaAt - L14
specialize finite_modular_pullback_membership_witness b - L15
specialize finite_modular_pullback_membership_witness c - L16
specialize finite_modular_pullback_membership_witness z - L17
specialize finite_modular_pullback_membership_witness d - L18
specialize finite_modular_pullback_membership_witness p - L19
specialize finite_modular_pullback_membership_witness v - L20
specialize finite_modular_pullback_membership_witness i - L21
apply finite_modular_pullback_membership_witness - L22
exact hp
04Use earlier factsL23–24
05Separate the logical casesL25–26
06Fix variables and assumptionsL27–27
Work with arbitrary variables or the premises of the current implication.
- L27
intro ht
07Establish hwL28–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply he left.
- L28
have hw : 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+v) + (p) * fms_u_mod = (j) + (p) * fms_v_mod) - L29
apply he_left - L30
exact ht
08Separate the logical casesL31–32
09Construct an explicit witnessL33–33
Supply the displayed value, then prove that it has the required property.
- L33
exists x
10Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
split
11Use earlier factsL35–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
12Calculate and transport equalitiesL42–42
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L42
trans t+v
13Use earlier factsL43–47
14Fix variables and assumptionsL48–48
Work with arbitrary variables or the premises of the current implication.
- L48
intro hw
15Separate the logical casesL49–50
16Use earlier factsL51–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
apply he_right
17Construct an explicit witnessL52–52
Supply the displayed value, then prove that it has the required property.
- L52
exists x
18Separate the logical casesL53–53
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L53
split
19Use earlier factsL54–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L54
exact hw_witness_left - L55
specialize finite_modular_inverse_shift p - L56
specialize finite_modular_inverse_shift t - L57
specialize finite_modular_inverse_shift v - L58
specialize finite_modular_inverse_shift x - L59
specialize finite_modular_inverse_shift i - L60
apply finite_modular_inverse_shift - L61
exact htv - L62
exact hw_witness_right
Original exact command ledger · 62 lines
- 0001
intro b - 0002
intro c - 0003
intro z - 0004
intro d - 0005
intro p - 0006
intro t - 0007
intro v - 0008
intro i - 0009
intro hp - 0010
intro htv - 0011
intro hpull - 0012
intro hi - 0013
have he : (((((exists fs_h_fms_push_t. fs_h_fms_push_t + S (1) = S ((S (i)) * d)) /\ exists fs_q_fms_push_t. z = fs_q_fms_push_t * 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+v) + (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+v) + (p) * fms_u_mod = (j) + (p) * fms_v_mod)) -> (((exists fs_h_fms_push_t. fs_h_fms_push_t + S (1) = S ((S (i)) * d)) /\ exists fs_q_fms_push_t. z = fs_q_fms_push_t * S ((S (i)) * d) + (1))))) - 0014
specialize finite_modular_pullback_membership_witness b - 0015
specialize finite_modular_pullback_membership_witness c - 0016
specialize finite_modular_pullback_membership_witness z - 0017
specialize finite_modular_pullback_membership_witness d - 0018
specialize finite_modular_pullback_membership_witness p - 0019
specialize finite_modular_pullback_membership_witness v - 0020
specialize finite_modular_pullback_membership_witness i - 0021
apply finite_modular_pullback_membership_witness - 0022
exact hp - 0023
exact hpull - 0024
exact hi - 0025
cases he - 0026
split - 0027
intro ht - 0028
have hw : 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+v) + (p) * fms_u_mod = (j) + (p) * fms_v_mod) - 0029
apply he_left - 0030
exact ht - 0031
cases hw - 0032
cases hw_witness - 0033
exists x - 0034
split - 0035
exact hw_witness_left - 0036
specialize finite_modular_inverse_shift p - 0037
specialize finite_modular_inverse_shift v - 0038
specialize finite_modular_inverse_shift t - 0039
specialize finite_modular_inverse_shift i - 0040
specialize finite_modular_inverse_shift x - 0041
apply finite_modular_inverse_shift - 0042
trans t+v - 0043
specialize add_comm v - 0044
specialize add_comm t - 0045
apply add_comm - 0046
exact htv - 0047
exact hw_witness_right - 0048
intro hw - 0049
cases hw - 0050
cases hw_witness - 0051
apply he_right - 0052
exists x - 0053
split - 0054
exact hw_witness_left - 0055
specialize finite_modular_inverse_shift p - 0056
specialize finite_modular_inverse_shift t - 0057
specialize finite_modular_inverse_shift v - 0058
specialize finite_modular_inverse_shift x - 0059
specialize finite_modular_inverse_shift i - 0060
apply finite_modular_inverse_shift - 0061
exact htv - 0062
exact hw_witness_right