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 b c d e sb sc k l m. ((~(p = 1) /\ forall frp_prime_left_cd_full_prime frp_prime_right_cd_full_prime. p = frp_prime_left_cd_full_prime * frp_prime_right_cd_full_prime -> frp_prime_left_cd_full_prime = 1 \/ frp_prime_right_cd_full_prime = 1)) -> (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((k)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((k)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (c))) /\ exists ff_q_fms_count_summand. (b) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (c)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (c))) /\ exists ff_q_fms_count_decoded. (b) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (c)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) -> (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((l)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((l)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (e))) /\ exists ff_q_fms_count_summand. (d) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (e)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (e))) /\ exists ff_q_fms_count_decoded. (d) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (e)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) -> (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((m)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((m)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (sc))) /\ exists ff_q_fms_count_summand. (sb) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (sc)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (sc))) /\ exists ff_q_fms_count_decoded. (sb) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (sc)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) -> ~(k=0) -> ~(l=0) -> (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)))) -> (((exists fms_gap_cd_bound_full. fms_gap_cd_bound_full + (p) = (m)) \/ (exists fms_gap_cd_bound_sum. fms_gap_cd_bound_sum + (k+l) = (S (m)))))Constructive proof overview
Generated structural guide
Full Cauchy--Davenport for arbitrary nonempty prime-field characteristic sets, against every actual coded upper sumset.
The unchanged tactic script uses 7 declared prerequisites and contains 108 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
prime_nonzero Stable theorem; checked-use authorized CD0003 finite_bit_count_positive_member CD0025 finite_modular_additive_complement CD0022 finite_modular_set_pullback_exists CD0043 prime_cauchy_davenport_normalized_cover_bound CD0044 finite_modular_pullback_zero_member CD0045 finite_modular_opposite_translates_sum_coverDirect 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 (6)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–17
03Establish hpzeroL18–23
04Establish hmemberL24–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite bit count positive member.
- L24
have hmember : exists t. ((exists fms_gap_member. fms_gap_member + S (t) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (t)) * e)) /\ exists fs_q_fms_member. d = fs_q_fms_member * S ((S (t)) * e) + (1)))) - L25
specialize finite_bit_count_positive_member d - L26
specialize finite_bit_count_positive_member e - L27
specialize finite_bit_count_positive_member p - L28
specialize finite_bit_count_positive_member l - L29
apply finite_bit_count_positive_member - L30
exact hB - L31
exact hl
05Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
cases hmember
06Establish hcompL33–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular additive complement.
07Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
cases hmember_witness
08Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact hmember_witness_left
09Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
cases hcomp
10Establish hAnormL40–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular set pullback exists.
- L40
have hAnorm : ∃ ab. ∃ ac. BitCount(ab,ac,p,k) ∧ ModularSetPullback(b,c,ab,ac,p,x1)Definitions: ModularSetPullbackBitCount - L41
specialize finite_modular_set_pullback_exists b - L42
specialize finite_modular_set_pullback_exists c - L43
specialize finite_modular_set_pullback_exists p - L44
specialize finite_modular_set_pullback_exists k - L45
specialize finite_modular_set_pullback_exists x1 - L46
apply finite_modular_set_pullback_exists - L47
exact hpzero - L48
exact hA
11Separate the logical casesL49–51
12Establish hBnormL52–60
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular set pullback exists.
- L52
have hBnorm : ∃ bb. ∃ bc. BitCount(bb,bc,p,l) ∧ ModularSetPullback(d,e,bb,bc,p,x)Definitions: ModularSetPullbackBitCount - L53
specialize finite_modular_set_pullback_exists d - L54
specialize finite_modular_set_pullback_exists e - L55
specialize finite_modular_set_pullback_exists p - L56
specialize finite_modular_set_pullback_exists l - L57
specialize finite_modular_set_pullback_exists x - L58
apply finite_modular_set_pullback_exists - L59
exact hpzero - L60
exact hB
13Separate the logical casesL61–63
14Use earlier factsL64–73
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L64
specialize prime_cauchy_davenport_normalized_cover_bound p - L65
specialize prime_cauchy_davenport_normalized_cover_bound x2 - L66
specialize prime_cauchy_davenport_normalized_cover_bound x3 - L67
specialize prime_cauchy_davenport_normalized_cover_bound x4 - L68
specialize prime_cauchy_davenport_normalized_cover_bound x5 - L69
specialize prime_cauchy_davenport_normalized_cover_bound sb - L70
specialize prime_cauchy_davenport_normalized_cover_bound sc - L71
specialize prime_cauchy_davenport_normalized_cover_bound k - L72
specialize prime_cauchy_davenport_normalized_cover_bound l - L73
specialize prime_cauchy_davenport_normalized_cover_bound m
15Use earlier factsL74–83
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L74
apply prime_cauchy_davenport_normalized_cover_bound - L75
exact hprime - L76
exact hAnorm_witness_witness_left - L77
exact hBnorm_witness_witness_left - L78
exact hS - L79
exact hk - L80
specialize finite_modular_pullback_zero_member d - L81
specialize finite_modular_pullback_zero_member e - L82
specialize finite_modular_pullback_zero_member x4 - L83
specialize finite_modular_pullback_zero_member x5
16Use earlier factsL84–93
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L84
specialize finite_modular_pullback_zero_member p - L85
specialize finite_modular_pullback_zero_member x - L86
apply finite_modular_pullback_zero_member - L87
exact hpzero - L88
exact hBnorm_witness_witness_right - L89
exact hmember_witness - L90
specialize finite_modular_opposite_translates_sum_cover b - L91
specialize finite_modular_opposite_translates_sum_cover c - L92
specialize finite_modular_opposite_translates_sum_cover d - L93
specialize finite_modular_opposite_translates_sum_cover e
17Use earlier factsL94–103
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L94
specialize finite_modular_opposite_translates_sum_cover x2 - L95
specialize finite_modular_opposite_translates_sum_cover x3 - L96
specialize finite_modular_opposite_translates_sum_cover x4 - L97
specialize finite_modular_opposite_translates_sum_cover x5 - L98
specialize finite_modular_opposite_translates_sum_cover sb - L99
specialize finite_modular_opposite_translates_sum_cover sc - L100
specialize finite_modular_opposite_translates_sum_cover p - L101
specialize finite_modular_opposite_translates_sum_cover x - L102
specialize finite_modular_opposite_translates_sum_cover x1 - L103
apply finite_modular_opposite_translates_sum_cover
Original exact command ledger · 108 lines
- 0001
intro p - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro e - 0006
intro sb - 0007
intro sc - 0008
intro k - 0009
intro l - 0010
intro m - 0011
intro hprime - 0012
intro hA - 0013
intro hB - 0014
intro hS - 0015
intro hk - 0016
intro hl - 0017
intro hcover - 0018
have hpzero : ~(p=0) - 0019
intro he - 0020
specialize prime_nonzero p - 0021
apply prime_nonzero - 0022
exact hprime - 0023
exact he - 0024
have hmember : exists t. ((exists fms_gap_member. fms_gap_member + S (t) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (t)) * e)) /\ exists fs_q_fms_member. d = fs_q_fms_member * S ((S (t)) * e) + (1)))) - 0025
specialize finite_bit_count_positive_member d - 0026
specialize finite_bit_count_positive_member e - 0027
specialize finite_bit_count_positive_member p - 0028
specialize finite_bit_count_positive_member l - 0029
apply finite_bit_count_positive_member - 0030
exact hB - 0031
exact hl - 0032
cases hmember - 0033
have hcomp : exists v. x+v=p - 0034
specialize finite_modular_additive_complement p - 0035
specialize finite_modular_additive_complement x - 0036
apply finite_modular_additive_complement - 0037
cases hmember_witness - 0038
exact hmember_witness_left - 0039
cases hcomp - 0040
have hAnorm : exists ab ac. (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((k)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((k)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (ac))) /\ exists ff_q_fms_count_summand. (ab) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (ac)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (ac))) /\ exists ff_q_fms_count_decoded. (ab) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (ac)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 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 + x1) + (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))))))) - 0041
specialize finite_modular_set_pullback_exists b - 0042
specialize finite_modular_set_pullback_exists c - 0043
specialize finite_modular_set_pullback_exists p - 0044
specialize finite_modular_set_pullback_exists k - 0045
specialize finite_modular_set_pullback_exists x1 - 0046
apply finite_modular_set_pullback_exists - 0047
exact hpzero - 0048
exact hA - 0049
cases hAnorm - 0050
cases hAnorm_witness - 0051
cases hAnorm_witness_witness - 0052
have hBnorm : exists bb bc. (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((l)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((l)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (bc))) /\ exists ff_q_fms_count_summand. (bb) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (bc)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (bc))) /\ exists ff_q_fms_count_decoded. (bb) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (bc)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 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 + x) + (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))))))) - 0053
specialize finite_modular_set_pullback_exists d - 0054
specialize finite_modular_set_pullback_exists e - 0055
specialize finite_modular_set_pullback_exists p - 0056
specialize finite_modular_set_pullback_exists l - 0057
specialize finite_modular_set_pullback_exists x - 0058
apply finite_modular_set_pullback_exists - 0059
exact hpzero - 0060
exact hB - 0061
cases hBnorm - 0062
cases hBnorm_witness - 0063
cases hBnorm_witness_witness - 0064
specialize prime_cauchy_davenport_normalized_cover_bound p - 0065
specialize prime_cauchy_davenport_normalized_cover_bound x2 - 0066
specialize prime_cauchy_davenport_normalized_cover_bound x3 - 0067
specialize prime_cauchy_davenport_normalized_cover_bound x4 - 0068
specialize prime_cauchy_davenport_normalized_cover_bound x5 - 0069
specialize prime_cauchy_davenport_normalized_cover_bound sb - 0070
specialize prime_cauchy_davenport_normalized_cover_bound sc - 0071
specialize prime_cauchy_davenport_normalized_cover_bound k - 0072
specialize prime_cauchy_davenport_normalized_cover_bound l - 0073
specialize prime_cauchy_davenport_normalized_cover_bound m - 0074
apply prime_cauchy_davenport_normalized_cover_bound - 0075
exact hprime - 0076
exact hAnorm_witness_witness_left - 0077
exact hBnorm_witness_witness_left - 0078
exact hS - 0079
exact hk - 0080
specialize finite_modular_pullback_zero_member d - 0081
specialize finite_modular_pullback_zero_member e - 0082
specialize finite_modular_pullback_zero_member x4 - 0083
specialize finite_modular_pullback_zero_member x5 - 0084
specialize finite_modular_pullback_zero_member p - 0085
specialize finite_modular_pullback_zero_member x - 0086
apply finite_modular_pullback_zero_member - 0087
exact hpzero - 0088
exact hBnorm_witness_witness_right - 0089
exact hmember_witness - 0090
specialize finite_modular_opposite_translates_sum_cover b - 0091
specialize finite_modular_opposite_translates_sum_cover c - 0092
specialize finite_modular_opposite_translates_sum_cover d - 0093
specialize finite_modular_opposite_translates_sum_cover e - 0094
specialize finite_modular_opposite_translates_sum_cover x2 - 0095
specialize finite_modular_opposite_translates_sum_cover x3 - 0096
specialize finite_modular_opposite_translates_sum_cover x4 - 0097
specialize finite_modular_opposite_translates_sum_cover x5 - 0098
specialize finite_modular_opposite_translates_sum_cover sb - 0099
specialize finite_modular_opposite_translates_sum_cover sc - 0100
specialize finite_modular_opposite_translates_sum_cover p - 0101
specialize finite_modular_opposite_translates_sum_cover x - 0102
specialize finite_modular_opposite_translates_sum_cover x1 - 0103
apply finite_modular_opposite_translates_sum_cover - 0104
exact hpzero - 0105
exact hcomp_witness - 0106
exact hAnorm_witness_witness_right - 0107
exact hBnorm_witness_witness_right - 0108
exact hcover