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 d e ab ac bb bc sb sc p t v. ~(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)) * ac)) /\ exists fs_q_fms_pullback_target. ab = fs_q_fms_pullback_target * S ((S (fms_i_pullback)) * ac) + (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)) * ac)) /\ exists fs_q_fms_pullback_target. ab = fs_q_fms_pullback_target * S ((S (fms_i_pullback)) * ac) + (1))))))) -> (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)) * bc)) /\ exists fs_q_fms_pullback_target. bb = fs_q_fms_pullback_target * S ((S (fms_i_pullback)) * bc) + (1))) -> (((exists fs_h_fms_pullback_source. fs_h_fms_pullback_source + S (1) = S ((S (fms_j_pullback)) * e)) /\ exists fs_q_fms_pullback_source. d = fs_q_fms_pullback_source * S ((S (fms_j_pullback)) * e) + (1)))) /\ ((((exists fs_h_fms_pullback_source. fs_h_fms_pullback_source + S (1) = S ((S (fms_j_pullback)) * e)) /\ exists fs_q_fms_pullback_source. d = fs_q_fms_pullback_source * S ((S (fms_j_pullback)) * e) + (1))) -> (((exists fs_h_fms_pullback_target. fs_h_fms_pullback_target + S (1) = S ((S (fms_i_pullback)) * bc)) /\ exists fs_q_fms_pullback_target. bb = fs_q_fms_pullback_target * S ((S (fms_i_pullback)) * bc) + (1))))))) -> (forall fms_i_cover fms_j_cover fms_s_cover. (exists fms_gap_cover_i. fms_gap_cover_i + S (fms_i_cover) = (p)) -> (exists fms_gap_cover_j. fms_gap_cover_j + S (fms_j_cover) = (p)) -> (exists fms_gap_cover_s. fms_gap_cover_s + S (fms_s_cover) = (p)) -> (((exists fs_h_fms_cover_left. fs_h_fms_cover_left + S (1) = S ((S (fms_i_cover)) * c)) /\ exists fs_q_fms_cover_left. b = fs_q_fms_cover_left * S ((S (fms_i_cover)) * c) + (1))) -> (((exists fs_h_fms_cover_right. fs_h_fms_cover_right + S (1) = S ((S (fms_j_cover)) * e)) /\ exists fs_q_fms_cover_right. d = fs_q_fms_cover_right * S ((S (fms_j_cover)) * e) + (1))) -> (exists fms_u_cover fms_v_cover. (fms_i_cover + fms_j_cover) + (p) * fms_u_cover = (fms_s_cover) + (p) * fms_v_cover) -> (((exists fs_h_fms_cover_result. fs_h_fms_cover_result + S (1) = S ((S (fms_s_cover)) * sc)) /\ exists fs_q_fms_cover_result. sb = fs_q_fms_cover_result * S ((S (fms_s_cover)) * sc) + (1)))) -> (forall fms_i_cover fms_j_cover fms_s_cover. (exists fms_gap_cover_i. fms_gap_cover_i + S (fms_i_cover) = (p)) -> (exists fms_gap_cover_j. fms_gap_cover_j + S (fms_j_cover) = (p)) -> (exists fms_gap_cover_s. fms_gap_cover_s + S (fms_s_cover) = (p)) -> (((exists fs_h_fms_cover_left. fs_h_fms_cover_left + S (1) = S ((S (fms_i_cover)) * ac)) /\ exists fs_q_fms_cover_left. ab = fs_q_fms_cover_left * S ((S (fms_i_cover)) * ac) + (1))) -> (((exists fs_h_fms_cover_right. fs_h_fms_cover_right + S (1) = S ((S (fms_j_cover)) * bc)) /\ exists fs_q_fms_cover_right. bb = fs_q_fms_cover_right * S ((S (fms_j_cover)) * bc) + (1))) -> (exists fms_u_cover fms_v_cover. (fms_i_cover + fms_j_cover) + (p) * fms_u_cover = (fms_s_cover) + (p) * fms_v_cover) -> (((exists fs_h_fms_cover_result. fs_h_fms_cover_result + S (1) = S ((S (fms_s_cover)) * sc)) /\ exists fs_q_fms_cover_result. sb = fs_q_fms_cover_result * S ((S (fms_s_cover)) * sc) + (1))))Constructive proof overview
Generated structural guide
Opposite actual translations of the input sets preserve every coded upper bound for their sumset.
The unchanged tactic script uses 4 declared prerequisites and contains 91 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
CD0028 finite_modular_pushforward_membership_witness CD0027 finite_modular_pullback_membership_witness CD0029 finite_modular_shifted_sum_congruence mod_eq_trans 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 (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–27
04Establish hAiffL28–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular pushforward membership witness.
- L28
have hAiff : (BetaAt(ab,ac,a,1) → ∃ x. ModularSetMember(b,c,p,x) ∧ ModEq(p,x + t,a)) ∧ ((∃ x. ModularSetMember(b,c,p,x) ∧ ModEq(p,x + t,a)) → BetaAt(ab,ac,a,1))Definitions: ModularSetMemberModEqBetaAt - L29
specialize finite_modular_pushforward_membership_witness b - L30
specialize finite_modular_pushforward_membership_witness c - L31
specialize finite_modular_pushforward_membership_witness ab - L32
specialize finite_modular_pushforward_membership_witness ac - L33
specialize finite_modular_pushforward_membership_witness p - L34
specialize finite_modular_pushforward_membership_witness t - L35
specialize finite_modular_pushforward_membership_witness v - L36
specialize finite_modular_pushforward_membership_witness a - L37
apply finite_modular_pushforward_membership_witness
05Use earlier factsL38–41
06Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
cases hAiff
07Establish hBiffL43–52
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular pullback membership witness.
- L43
have hBiff : (BetaAt(bb,bc,z,1) → ∃ x. ModularSetMember(d,e,p,x) ∧ ModEq(p,z + t,x)) ∧ ((∃ x. ModularSetMember(d,e,p,x) ∧ ModEq(p,z + t,x)) → BetaAt(bb,bc,z,1))Definitions: ModularSetMemberModEqBetaAt - L44
specialize finite_modular_pullback_membership_witness d - L45
specialize finite_modular_pullback_membership_witness e - L46
specialize finite_modular_pullback_membership_witness bb - L47
specialize finite_modular_pullback_membership_witness bc - L48
specialize finite_modular_pullback_membership_witness p - L49
specialize finite_modular_pullback_membership_witness t - L50
specialize finite_modular_pullback_membership_witness z - L51
apply finite_modular_pullback_membership_witness - L52
exact hp
08Use earlier factsL53–54
09Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
cases hBiff
10Establish hAsourceL56–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hAiff left.
- L56
have hAsource : 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 = (a) + (p) * fms_v_mod) - L57
apply hAiff_left - L58
exact hA
11Separate the logical casesL59–61
12Establish hBsourceL62–64
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hBiff left.
- L62
have hBsource : 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)) * e)) /\ exists fs_q_fms_member. d = fs_q_fms_member * S ((S (j)) * e) + (1))))) /\ (exists fms_u_mod fms_v_mod. (z+t) + (p) * fms_u_mod = (j) + (p) * fms_v_mod) - L63
apply hBiff_left - L64
exact hB
13Separate the logical casesL65–67
14Use earlier factsL68–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
15Use earlier factsL78–87
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L78
specialize mod_eq_trans x+x1 - L79
specialize mod_eq_trans a+z - L80
specialize mod_eq_trans w - L81
apply mod_eq_trans - L82
specialize finite_modular_shifted_sum_congruence p - L83
specialize finite_modular_shifted_sum_congruence x - L84
specialize finite_modular_shifted_sum_congruence x1 - L85
specialize finite_modular_shifted_sum_congruence a - L86
specialize finite_modular_shifted_sum_congruence z - L87
specialize finite_modular_shifted_sum_congruence t
Original exact command ledger · 91 lines
- 0001
intro b - 0002
intro c - 0003
intro d - 0004
intro e - 0005
intro ab - 0006
intro ac - 0007
intro bb - 0008
intro bc - 0009
intro sb - 0010
intro sc - 0011
intro p - 0012
intro t - 0013
intro v - 0014
intro hp - 0015
intro htv - 0016
intro hApull - 0017
intro hBpull - 0018
intro hcover - 0019
intro a - 0020
intro z - 0021
intro w - 0022
intro ha - 0023
intro hz - 0024
intro hw - 0025
intro hA - 0026
intro hB - 0027
intro hmod - 0028
have hAiff : (((((exists fs_h_cd_norm_A. fs_h_cd_norm_A + S (1) = S ((S (a)) * ac)) /\ exists fs_q_cd_norm_A. ab = fs_q_cd_norm_A * S ((S (a)) * ac) + (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 = (a) + (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 = (a) + (p) * fms_v_mod)) -> (((exists fs_h_cd_norm_A. fs_h_cd_norm_A + S (1) = S ((S (a)) * ac)) /\ exists fs_q_cd_norm_A. ab = fs_q_cd_norm_A * S ((S (a)) * ac) + (1))))) - 0029
specialize finite_modular_pushforward_membership_witness b - 0030
specialize finite_modular_pushforward_membership_witness c - 0031
specialize finite_modular_pushforward_membership_witness ab - 0032
specialize finite_modular_pushforward_membership_witness ac - 0033
specialize finite_modular_pushforward_membership_witness p - 0034
specialize finite_modular_pushforward_membership_witness t - 0035
specialize finite_modular_pushforward_membership_witness v - 0036
specialize finite_modular_pushforward_membership_witness a - 0037
apply finite_modular_pushforward_membership_witness - 0038
exact hp - 0039
exact htv - 0040
exact hApull - 0041
exact ha - 0042
cases hAiff - 0043
have hBiff : (((((exists fs_h_cd_norm_B. fs_h_cd_norm_B + S (1) = S ((S (z)) * bc)) /\ exists fs_q_cd_norm_B. bb = fs_q_cd_norm_B * S ((S (z)) * bc) + (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)) * e)) /\ exists fs_q_fms_member. d = fs_q_fms_member * S ((S (j)) * e) + (1))))) /\ (exists fms_u_mod fms_v_mod. (z+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)) * e)) /\ exists fs_q_fms_member. d = fs_q_fms_member * S ((S (j)) * e) + (1))))) /\ (exists fms_u_mod fms_v_mod. (z+t) + (p) * fms_u_mod = (j) + (p) * fms_v_mod)) -> (((exists fs_h_cd_norm_B. fs_h_cd_norm_B + S (1) = S ((S (z)) * bc)) /\ exists fs_q_cd_norm_B. bb = fs_q_cd_norm_B * S ((S (z)) * bc) + (1))))) - 0044
specialize finite_modular_pullback_membership_witness d - 0045
specialize finite_modular_pullback_membership_witness e - 0046
specialize finite_modular_pullback_membership_witness bb - 0047
specialize finite_modular_pullback_membership_witness bc - 0048
specialize finite_modular_pullback_membership_witness p - 0049
specialize finite_modular_pullback_membership_witness t - 0050
specialize finite_modular_pullback_membership_witness z - 0051
apply finite_modular_pullback_membership_witness - 0052
exact hp - 0053
exact hBpull - 0054
exact hz - 0055
cases hBiff - 0056
have hAsource : 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 = (a) + (p) * fms_v_mod) - 0057
apply hAiff_left - 0058
exact hA - 0059
cases hAsource - 0060
cases hAsource_witness - 0061
cases hAsource_witness_left - 0062
have hBsource : 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)) * e)) /\ exists fs_q_fms_member. d = fs_q_fms_member * S ((S (j)) * e) + (1))))) /\ (exists fms_u_mod fms_v_mod. (z+t) + (p) * fms_u_mod = (j) + (p) * fms_v_mod) - 0063
apply hBiff_left - 0064
exact hB - 0065
cases hBsource - 0066
cases hBsource_witness - 0067
cases hBsource_witness_left - 0068
specialize hcover x - 0069
specialize hcover x1 - 0070
specialize hcover w - 0071
apply hcover - 0072
exact hAsource_witness_left_left - 0073
exact hBsource_witness_left_left - 0074
exact hw - 0075
exact hAsource_witness_left_right - 0076
exact hBsource_witness_left_right - 0077
specialize mod_eq_trans p - 0078
specialize mod_eq_trans x+x1 - 0079
specialize mod_eq_trans a+z - 0080
specialize mod_eq_trans w - 0081
apply mod_eq_trans - 0082
specialize finite_modular_shifted_sum_congruence p - 0083
specialize finite_modular_shifted_sum_congruence x - 0084
specialize finite_modular_shifted_sum_congruence x1 - 0085
specialize finite_modular_shifted_sum_congruence a - 0086
specialize finite_modular_shifted_sum_congruence z - 0087
specialize finite_modular_shifted_sum_congruence t - 0088
apply finite_modular_shifted_sum_congruence - 0089
exact hAsource_witness_right - 0090
exact hBsource_witness_right - 0091
exact hmod