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 sb sc p k l m. ((~(p = 1) /\ forall frp_prime_left_cd_normalized_prime frp_prime_right_cd_normalized_prime. p = frp_prime_left_cd_normalized_prime * frp_prime_right_cd_normalized_prime -> frp_prime_left_cd_normalized_prime = 1 \/ frp_prime_right_cd_normalized_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) -> (exists fms_gap_le. fms_gap_le + (2) = (l)) -> (((exists fms_gap_member. fms_gap_member + S (0) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (0)) * e)) /\ exists fs_q_fms_member. d = fs_q_fms_member * S ((S (0)) * e) + (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)))) -> ~(m=p) -> exists h t r. (((exists fms_gap_member. fms_gap_member + S (h) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (h)) * e)) /\ exists fs_q_fms_member. d = fs_q_fms_member * S ((S (h)) * e) + (1))))) /\ ((((exists fms_gap_cd_boundary_source. fms_gap_cd_boundary_source + S (t) = (p)) /\ (((exists fs_h_fms_cd_boundary_source. fs_h_fms_cd_boundary_source + S (1) = S ((S (t)) * c)) /\ exists fs_q_fms_cd_boundary_source. b = fs_q_fms_cd_boundary_source * S ((S (t)) * c) + (1))))) /\ ((exists fms_gap_cd_boundary_target. fms_gap_cd_boundary_target + S (r) = (p)) /\ ((exists fms_u_cd_boundary_shift fms_v_cd_boundary_shift. (t+h) + (p) * fms_u_cd_boundary_shift = (r) + (p) * fms_v_cd_boundary_shift) /\ ~(((exists fs_h_cd_boundary_outside. fs_h_cd_boundary_outside + S (1) = S ((S (r)) * c)) /\ exists fs_q_cd_boundary_outside. b = fs_q_cd_boundary_outside * S ((S (r)) * c) + (1))))))Constructive proof overview
Generated structural guide
A normalized nontrivial second set and a non-full upper sumset construct an actual boundary suitable for strict Dyson descent.
The unchanged tactic script uses 6 declared prerequisites and contains 95 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
CD000D finite_bit_count_missing_zero CD0003 finite_bit_count_positive_member CD000E finite_bit_count_two_nonzero_member CD0035 prime_modular_set_translation_boundary_exists CD003F finite_modular_zero_sum_left_subset CD0023 finite_bit_zero_nonmemberDirect 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–19
03Establish houtL20–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite bit count missing zero.
- L20
have hout : exists z. (exists fms_gap_lt. fms_gap_lt + S (z) = (p)) /\ (((exists fs_h_cd_normalized_out. fs_h_cd_normalized_out + S (0) = S ((S (z)) * sc)) /\ exists fs_q_cd_normalized_out. sb = fs_q_cd_normalized_out * S ((S (z)) * sc) + (0))) - L21
specialize finite_bit_count_missing_zero sb - L22
specialize finite_bit_count_missing_zero sc - L23
specialize finite_bit_count_missing_zero p - L24
specialize finite_bit_count_missing_zero m - L25
apply finite_bit_count_missing_zero - L26
exact hS - L27
exact hm
04Separate the logical casesL28–29
05Establish haL30–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite bit count positive member.
- L30
have ha : exists a. ((exists fms_gap_member. fms_gap_member + S (a) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (a)) * c)) /\ exists fs_q_fms_member. b = fs_q_fms_member * S ((S (a)) * c) + (1)))) - L31
specialize finite_bit_count_positive_member b - L32
specialize finite_bit_count_positive_member c - L33
specialize finite_bit_count_positive_member p - L34
specialize finite_bit_count_positive_member k - L35
apply finite_bit_count_positive_member - L36
exact hA - L37
exact hk
06Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
cases ha
07Establish hhL39–46
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite bit count two nonzero member.
- L39
have hh : exists h. (((exists fms_gap_member. fms_gap_member + S (h) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (h)) * e)) /\ exists fs_q_fms_member. d = fs_q_fms_member * S ((S (h)) * e) + (1))))) /\ ~(h=0) - L40
specialize finite_bit_count_two_nonzero_member d - L41
specialize finite_bit_count_two_nonzero_member e - L42
specialize finite_bit_count_two_nonzero_member p - L43
specialize finite_bit_count_two_nonzero_member l - L44
apply finite_bit_count_two_nonzero_member - L45
exact hB - L46
exact hl
08Separate the logical casesL47–48
09Establish hsubL49–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular zero sum left subset.
- L49
have hsub : forall fms_i_subset. (exists fms_gap_subset. fms_gap_subset + S (fms_i_subset) = (p)) -> (((exists fs_h_fms_subset_left. fs_h_fms_subset_left + S (1) = S ((S (fms_i_subset)) * c)) /\ exists fs_q_fms_subset_left. b = fs_q_fms_subset_left * S ((S (fms_i_subset)) * c) + (1))) -> (((exists fs_h_fms_subset_right. fs_h_fms_subset_right + S (1) = S ((S (fms_i_subset)) * sc)) /\ exists fs_q_fms_subset_right. sb = fs_q_fms_subset_right * S ((S (fms_i_subset)) * sc) + (1))) - L50
specialize finite_modular_zero_sum_left_subset b - L51
specialize finite_modular_zero_sum_left_subset c - L52
specialize finite_modular_zero_sum_left_subset d - L53
specialize finite_modular_zero_sum_left_subset e - L54
specialize finite_modular_zero_sum_left_subset sb - L55
specialize finite_modular_zero_sum_left_subset sc - L56
specialize finite_modular_zero_sum_left_subset p - L57
apply finite_modular_zero_sum_left_subset - L58
exact hcover
10Use earlier factsL59–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
exact hzero
11Establish hnotAL60–69
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite bit zero nonmember.
- L60
have hnotA : ~(((exists fs_h_cd_normalized_notA. fs_h_cd_normalized_notA + S (1) = S ((S (x)) * c)) /\ exists fs_q_cd_normalized_notA. b = fs_q_cd_normalized_notA * S ((S (x)) * c) + (1))) - L61
intro hmember - L62
specialize finite_bit_zero_nonmember sb - L63
specialize finite_bit_zero_nonmember sc - L64
specialize finite_bit_zero_nonmember x - L65
apply finite_bit_zero_nonmember - L66
exact hout_witness_right - L67
specialize hsub x - L68
apply hsub - L69
exact hout_witness_left
12Use earlier factsL70–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L70
exact hmember
13Establish hboundaryL71–79
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime modular set translation boundary exists.
- L71
have hboundary : ∃ cd_source_boundary. ∃ cd_target_boundary. ModularTranslationBoundary(b,c,p,x2,cd_source_boundary,cd_target_boundary)Definitions: ModularTranslationBoundary - L72
specialize prime_modular_set_translation_boundary_exists b - L73
specialize prime_modular_set_translation_boundary_exists c - L74
specialize prime_modular_set_translation_boundary_exists p - L75
specialize prime_modular_set_translation_boundary_exists x2 - L76
specialize prime_modular_set_translation_boundary_exists x1 - L77
specialize prime_modular_set_translation_boundary_exists x - L78
apply prime_modular_set_translation_boundary_exists - L79
exact hp
14Separate the logical casesL80–80
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L80
cases hA
15Use earlier factsL81–85
16Separate the logical casesL86–86
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L86
cases hh_witness_left
17Use earlier factsL87–87
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L87
exact hh_witness_left_left
18Separate the logical casesL88–89
19Construct an explicit witnessL90–92
20Separate the logical casesL93–93
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L93
split
Original exact command ledger · 95 lines
- 0001
intro b - 0002
intro c - 0003
intro d - 0004
intro e - 0005
intro sb - 0006
intro sc - 0007
intro p - 0008
intro k - 0009
intro l - 0010
intro m - 0011
intro hp - 0012
intro hA - 0013
intro hB - 0014
intro hS - 0015
intro hk - 0016
intro hl - 0017
intro hzero - 0018
intro hcover - 0019
intro hm - 0020
have hout : exists z. (exists fms_gap_lt. fms_gap_lt + S (z) = (p)) /\ (((exists fs_h_cd_normalized_out. fs_h_cd_normalized_out + S (0) = S ((S (z)) * sc)) /\ exists fs_q_cd_normalized_out. sb = fs_q_cd_normalized_out * S ((S (z)) * sc) + (0))) - 0021
specialize finite_bit_count_missing_zero sb - 0022
specialize finite_bit_count_missing_zero sc - 0023
specialize finite_bit_count_missing_zero p - 0024
specialize finite_bit_count_missing_zero m - 0025
apply finite_bit_count_missing_zero - 0026
exact hS - 0027
exact hm - 0028
cases hout - 0029
cases hout_witness - 0030
have ha : exists a. ((exists fms_gap_member. fms_gap_member + S (a) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (a)) * c)) /\ exists fs_q_fms_member. b = fs_q_fms_member * S ((S (a)) * c) + (1)))) - 0031
specialize finite_bit_count_positive_member b - 0032
specialize finite_bit_count_positive_member c - 0033
specialize finite_bit_count_positive_member p - 0034
specialize finite_bit_count_positive_member k - 0035
apply finite_bit_count_positive_member - 0036
exact hA - 0037
exact hk - 0038
cases ha - 0039
have hh : exists h. (((exists fms_gap_member. fms_gap_member + S (h) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (h)) * e)) /\ exists fs_q_fms_member. d = fs_q_fms_member * S ((S (h)) * e) + (1))))) /\ ~(h=0) - 0040
specialize finite_bit_count_two_nonzero_member d - 0041
specialize finite_bit_count_two_nonzero_member e - 0042
specialize finite_bit_count_two_nonzero_member p - 0043
specialize finite_bit_count_two_nonzero_member l - 0044
apply finite_bit_count_two_nonzero_member - 0045
exact hB - 0046
exact hl - 0047
cases hh - 0048
cases hh_witness - 0049
have hsub : forall fms_i_subset. (exists fms_gap_subset. fms_gap_subset + S (fms_i_subset) = (p)) -> (((exists fs_h_fms_subset_left. fs_h_fms_subset_left + S (1) = S ((S (fms_i_subset)) * c)) /\ exists fs_q_fms_subset_left. b = fs_q_fms_subset_left * S ((S (fms_i_subset)) * c) + (1))) -> (((exists fs_h_fms_subset_right. fs_h_fms_subset_right + S (1) = S ((S (fms_i_subset)) * sc)) /\ exists fs_q_fms_subset_right. sb = fs_q_fms_subset_right * S ((S (fms_i_subset)) * sc) + (1))) - 0050
specialize finite_modular_zero_sum_left_subset b - 0051
specialize finite_modular_zero_sum_left_subset c - 0052
specialize finite_modular_zero_sum_left_subset d - 0053
specialize finite_modular_zero_sum_left_subset e - 0054
specialize finite_modular_zero_sum_left_subset sb - 0055
specialize finite_modular_zero_sum_left_subset sc - 0056
specialize finite_modular_zero_sum_left_subset p - 0057
apply finite_modular_zero_sum_left_subset - 0058
exact hcover - 0059
exact hzero - 0060
have hnotA : ~(((exists fs_h_cd_normalized_notA. fs_h_cd_normalized_notA + S (1) = S ((S (x)) * c)) /\ exists fs_q_cd_normalized_notA. b = fs_q_cd_normalized_notA * S ((S (x)) * c) + (1))) - 0061
intro hmember - 0062
specialize finite_bit_zero_nonmember sb - 0063
specialize finite_bit_zero_nonmember sc - 0064
specialize finite_bit_zero_nonmember x - 0065
apply finite_bit_zero_nonmember - 0066
exact hout_witness_right - 0067
specialize hsub x - 0068
apply hsub - 0069
exact hout_witness_left - 0070
exact hmember - 0071
have hboundary : exists cd_source_boundary cd_target_boundary. ((((exists fms_gap_cd_boundary_source. fms_gap_cd_boundary_source + S (cd_source_boundary) = (p)) /\ (((exists fs_h_fms_cd_boundary_source. fs_h_fms_cd_boundary_source + S (1) = S ((S (cd_source_boundary)) * c)) /\ exists fs_q_fms_cd_boundary_source. b = fs_q_fms_cd_boundary_source * S ((S (cd_source_boundary)) * c) + (1))))) /\ ((exists fms_gap_cd_boundary_target. fms_gap_cd_boundary_target + S (cd_target_boundary) = (p)) /\ ((exists fms_u_cd_boundary_shift fms_v_cd_boundary_shift. (cd_source_boundary+x2) + (p) * fms_u_cd_boundary_shift = (cd_target_boundary) + (p) * fms_v_cd_boundary_shift) /\ ~(((exists fs_h_cd_boundary_outside. fs_h_cd_boundary_outside + S (1) = S ((S (cd_target_boundary)) * c)) /\ exists fs_q_cd_boundary_outside. b = fs_q_cd_boundary_outside * S ((S (cd_target_boundary)) * c) + (1)))))) - 0072
specialize prime_modular_set_translation_boundary_exists b - 0073
specialize prime_modular_set_translation_boundary_exists c - 0074
specialize prime_modular_set_translation_boundary_exists p - 0075
specialize prime_modular_set_translation_boundary_exists x2 - 0076
specialize prime_modular_set_translation_boundary_exists x1 - 0077
specialize prime_modular_set_translation_boundary_exists x - 0078
apply prime_modular_set_translation_boundary_exists - 0079
exact hp - 0080
cases hA - 0081
exact hA_right - 0082
exact ha_witness - 0083
exact hout_witness_left - 0084
exact hnotA - 0085
exact hh_witness_right - 0086
cases hh_witness_left - 0087
exact hh_witness_left_left - 0088
cases hboundary - 0089
cases hboundary_witness - 0090
exists x2 - 0091
exists x3 - 0092
exists x4 - 0093
split - 0094
exact hh_witness_left - 0095
exact hboundary_witness_witness