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 l n p e h. ((~(p = 1) /\ forall frm_prime_left_ftsp_p frm_prime_right_ftsp_p. p = frm_prime_left_ftsp_p * frm_prime_right_ftsp_p -> frm_prime_left_ftsp_p = 1 \/ frm_prime_right_ftsp_p = 1)) -> (forall ftsf_index_ftsp_full. (exists ftsf_gap_ftsp_full_bound. ftsf_gap_ftsp_full_bound + S ftsf_index_ftsp_full = (S (S l))) -> exists ftsf_factor_ftsp_full. ((((exists ff_h_ftsf_ftsp_full_entry. ff_h_ftsf_ftsp_full_entry + S (ftsf_factor_ftsp_full) = S ((S (ftsf_index_ftsp_full)) * c)) /\ exists ff_q_ftsf_ftsp_full_entry. b = ff_q_ftsf_ftsp_full_entry * S ((S (ftsf_index_ftsp_full)) * c) + (ftsf_factor_ftsp_full))) /\ ((~(ftsf_factor_ftsp_full = 1) /\ forall frm_prime_left_ftsf_ftsp_full_prime frm_prime_right_ftsf_ftsp_full_prime. ftsf_factor_ftsp_full = frm_prime_left_ftsf_ftsp_full_prime * frm_prime_right_ftsf_ftsp_full_prime -> frm_prime_left_ftsf_ftsp_full_prime = 1 \/ frm_prime_right_ftsf_ftsp_full_prime = 1)))) -> (forall ftsp_index_full. (exists ftsp_bound_full. ftsp_bound_full + S (S ftsp_index_full) = (S (S l))) -> exists ftsp_left_full ftsp_right_full. ((((exists ff_h_ftsp_full_left. ff_h_ftsp_full_left + S (ftsp_left_full) = S ((S (ftsp_index_full)) * c)) /\ exists ff_q_ftsp_full_left. b = ff_q_ftsp_full_left * S ((S (ftsp_index_full)) * c) + (ftsp_left_full))) /\ ((((exists ff_h_ftsp_full_right. ff_h_ftsp_full_right + S (ftsp_right_full) = S ((S (S ftsp_index_full)) * c)) /\ exists ff_q_ftsp_full_right. b = ff_q_ftsp_full_right * S ((S (S ftsp_index_full)) * c) + (ftsp_right_full))) /\ (exists ftsp_order_full. ftsp_order_full + ftsp_left_full = ftsp_right_full)))) -> (exists ff_u_ftsp_full ff_v_ftsp_full. ((((exists ff_h_ftsp_full_start. ff_h_ftsp_full_start + S (1) = S ((S (0)) * ff_v_ftsp_full)) /\ exists ff_q_ftsp_full_start. ff_u_ftsp_full = ff_q_ftsp_full_start * S ((S (0)) * ff_v_ftsp_full) + (1))) /\ ((((exists ff_h_ftsp_full_terminal. ff_h_ftsp_full_terminal + S (n) = S ((S (S (S l))) * ff_v_ftsp_full)) /\ exists ff_q_ftsp_full_terminal. ff_u_ftsp_full = ff_q_ftsp_full_terminal * S ((S (S (S l))) * ff_v_ftsp_full) + (n))) /\ forall ff_i_ftsp_full. (exists ff_lt_ftsp_full_bound. ff_lt_ftsp_full_bound + S ff_i_ftsp_full = S (S l)) -> exists ff_p_ftsp_full ff_r_ftsp_full ff_s_ftsp_full. ((((exists ff_h_ftsp_full_factor. ff_h_ftsp_full_factor + S (ff_p_ftsp_full) = S ((S (ff_i_ftsp_full)) * c)) /\ exists ff_q_ftsp_full_factor. b = ff_q_ftsp_full_factor * S ((S (ff_i_ftsp_full)) * c) + (ff_p_ftsp_full))) /\ ((((exists ff_h_ftsp_full_partial. ff_h_ftsp_full_partial + S (ff_r_ftsp_full) = S ((S (ff_i_ftsp_full)) * ff_v_ftsp_full)) /\ exists ff_q_ftsp_full_partial. ff_u_ftsp_full = ff_q_ftsp_full_partial * S ((S (ff_i_ftsp_full)) * ff_v_ftsp_full) + (ff_r_ftsp_full))) /\ ((((exists ff_h_ftsp_full_successor. ff_h_ftsp_full_successor + S (ff_s_ftsp_full) = S ((S (S ff_i_ftsp_full)) * ff_v_ftsp_full)) /\ exists ff_q_ftsp_full_successor. ff_u_ftsp_full = ff_q_ftsp_full_successor * S ((S (S ff_i_ftsp_full)) * ff_v_ftsp_full) + (ff_s_ftsp_full))) /\ ff_s_ftsp_full = ff_r_ftsp_full * ff_p_ftsp_full)))))) -> (((exists ff_h_ftsp_terminal. ff_h_ftsp_terminal + S (p) = S ((S (S l)) * c)) /\ exists ff_q_ftsp_terminal. b = ff_q_ftsp_terminal * S ((S (S l)) * c) + (p))) -> ~(n = 0) -> (((exists bpv_gap_ftsp_source_exponent_bound. bpv_gap_ftsp_source_exponent_bound + e = n) /\ (exists bpv_result_ftsp_source_selected. ((exists ff_b_ftsp_source_selected_power ff_c_ftsp_source_selected_power. ((forall ff_i_ftsp_source_selected_power_repeat. (exists ff_lt_ftsp_source_selected_power_repeat_bound. ff_lt_ftsp_source_selected_power_repeat_bound + S ff_i_ftsp_source_selected_power_repeat = e) -> (((exists ff_h_ftsp_source_selected_power_repeat_decoded. ff_h_ftsp_source_selected_power_repeat_decoded + S (p) = S ((S (ff_i_ftsp_source_selected_power_repeat)) * ff_c_ftsp_source_selected_power)) /\ exists ff_q_ftsp_source_selected_power_repeat_decoded. ff_b_ftsp_source_selected_power = ff_q_ftsp_source_selected_power_repeat_decoded * S ((S (ff_i_ftsp_source_selected_power_repeat)) * ff_c_ftsp_source_selected_power) + (p)))) /\ (exists ff_u_ftsp_source_selected_power_product ff_v_ftsp_source_selected_power_product. ((((exists ff_h_ftsp_source_selected_power_product_start. ff_h_ftsp_source_selected_power_product_start + S (1) = S ((S (0)) * ff_v_ftsp_source_selected_power_product)) /\ exists ff_q_ftsp_source_selected_power_product_start. ff_u_ftsp_source_selected_power_product = ff_q_ftsp_source_selected_power_product_start * S ((S (0)) * ff_v_ftsp_source_selected_power_product) + (1))) /\ ((((exists ff_h_ftsp_source_selected_power_product_terminal. ff_h_ftsp_source_selected_power_product_terminal + S (bpv_result_ftsp_source_selected) = S ((S (e)) * ff_v_ftsp_source_selected_power_product)) /\ exists ff_q_ftsp_source_selected_power_product_terminal. ff_u_ftsp_source_selected_power_product = ff_q_ftsp_source_selected_power_product_terminal * S ((S (e)) * ff_v_ftsp_source_selected_power_product) + (bpv_result_ftsp_source_selected))) /\ forall ff_i_ftsp_source_selected_power_product. (exists ff_lt_ftsp_source_selected_power_product_bound. ff_lt_ftsp_source_selected_power_product_bound + S ff_i_ftsp_source_selected_power_product = e) -> exists ff_p_ftsp_source_selected_power_product ff_r_ftsp_source_selected_power_product ff_s_ftsp_source_selected_power_product. ((((exists ff_h_ftsp_source_selected_power_product_factor. ff_h_ftsp_source_selected_power_product_factor + S (ff_p_ftsp_source_selected_power_product) = S ((S (ff_i_ftsp_source_selected_power_product)) * ff_c_ftsp_source_selected_power)) /\ exists ff_q_ftsp_source_selected_power_product_factor. ff_b_ftsp_source_selected_power = ff_q_ftsp_source_selected_power_product_factor * S ((S (ff_i_ftsp_source_selected_power_product)) * ff_c_ftsp_source_selected_power) + (ff_p_ftsp_source_selected_power_product))) /\ ((((exists ff_h_ftsp_source_selected_power_product_partial. ff_h_ftsp_source_selected_power_product_partial + S (ff_r_ftsp_source_selected_power_product) = S ((S (ff_i_ftsp_source_selected_power_product)) * ff_v_ftsp_source_selected_power_product)) /\ exists ff_q_ftsp_source_selected_power_product_partial. ff_u_ftsp_source_selected_power_product = ff_q_ftsp_source_selected_power_product_partial * S ((S (ff_i_ftsp_source_selected_power_product)) * ff_v_ftsp_source_selected_power_product) + (ff_r_ftsp_source_selected_power_product))) /\ ((((exists ff_h_ftsp_source_selected_power_product_successor. ff_h_ftsp_source_selected_power_product_successor + S (ff_s_ftsp_source_selected_power_product) = S ((S (S ff_i_ftsp_source_selected_power_product)) * ff_v_ftsp_source_selected_power_product)) /\ exists ff_q_ftsp_source_selected_power_product_successor. ff_u_ftsp_source_selected_power_product = ff_q_ftsp_source_selected_power_product_successor * S ((S (S ff_i_ftsp_source_selected_power_product)) * ff_v_ftsp_source_selected_power_product) + (ff_s_ftsp_source_selected_power_product))) /\ ff_s_ftsp_source_selected_power_product = ff_r_ftsp_source_selected_power_product * ff_p_ftsp_source_selected_power_product)))))))) /\ (exists bpv_factor_ftsp_source_selected_divides. n = bpv_result_ftsp_source_selected * bpv_factor_ftsp_source_selected_divides)))) /\ forall bpv_candidate_ftsp_source. (exists bpv_gap_ftsp_source_candidate_bound. bpv_gap_ftsp_source_candidate_bound + bpv_candidate_ftsp_source = n) -> (exists bpv_result_ftsp_source_candidate. ((exists ff_b_ftsp_source_candidate_power ff_c_ftsp_source_candidate_power. ((forall ff_i_ftsp_source_candidate_power_repeat. (exists ff_lt_ftsp_source_candidate_power_repeat_bound. ff_lt_ftsp_source_candidate_power_repeat_bound + S ff_i_ftsp_source_candidate_power_repeat = bpv_candidate_ftsp_source) -> (((exists ff_h_ftsp_source_candidate_power_repeat_decoded. ff_h_ftsp_source_candidate_power_repeat_decoded + S (p) = S ((S (ff_i_ftsp_source_candidate_power_repeat)) * ff_c_ftsp_source_candidate_power)) /\ exists ff_q_ftsp_source_candidate_power_repeat_decoded. ff_b_ftsp_source_candidate_power = ff_q_ftsp_source_candidate_power_repeat_decoded * S ((S (ff_i_ftsp_source_candidate_power_repeat)) * ff_c_ftsp_source_candidate_power) + (p)))) /\ (exists ff_u_ftsp_source_candidate_power_product ff_v_ftsp_source_candidate_power_product. ((((exists ff_h_ftsp_source_candidate_power_product_start. ff_h_ftsp_source_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_ftsp_source_candidate_power_product)) /\ exists ff_q_ftsp_source_candidate_power_product_start. ff_u_ftsp_source_candidate_power_product = ff_q_ftsp_source_candidate_power_product_start * S ((S (0)) * ff_v_ftsp_source_candidate_power_product) + (1))) /\ ((((exists ff_h_ftsp_source_candidate_power_product_terminal. ff_h_ftsp_source_candidate_power_product_terminal + S (bpv_result_ftsp_source_candidate) = S ((S (bpv_candidate_ftsp_source)) * ff_v_ftsp_source_candidate_power_product)) /\ exists ff_q_ftsp_source_candidate_power_product_terminal. ff_u_ftsp_source_candidate_power_product = ff_q_ftsp_source_candidate_power_product_terminal * S ((S (bpv_candidate_ftsp_source)) * ff_v_ftsp_source_candidate_power_product) + (bpv_result_ftsp_source_candidate))) /\ forall ff_i_ftsp_source_candidate_power_product. (exists ff_lt_ftsp_source_candidate_power_product_bound. ff_lt_ftsp_source_candidate_power_product_bound + S ff_i_ftsp_source_candidate_power_product = bpv_candidate_ftsp_source) -> exists ff_p_ftsp_source_candidate_power_product ff_r_ftsp_source_candidate_power_product ff_s_ftsp_source_candidate_power_product. ((((exists ff_h_ftsp_source_candidate_power_product_factor. ff_h_ftsp_source_candidate_power_product_factor + S (ff_p_ftsp_source_candidate_power_product) = S ((S (ff_i_ftsp_source_candidate_power_product)) * ff_c_ftsp_source_candidate_power)) /\ exists ff_q_ftsp_source_candidate_power_product_factor. ff_b_ftsp_source_candidate_power = ff_q_ftsp_source_candidate_power_product_factor * S ((S (ff_i_ftsp_source_candidate_power_product)) * ff_c_ftsp_source_candidate_power) + (ff_p_ftsp_source_candidate_power_product))) /\ ((((exists ff_h_ftsp_source_candidate_power_product_partial. ff_h_ftsp_source_candidate_power_product_partial + S (ff_r_ftsp_source_candidate_power_product) = S ((S (ff_i_ftsp_source_candidate_power_product)) * ff_v_ftsp_source_candidate_power_product)) /\ exists ff_q_ftsp_source_candidate_power_product_partial. ff_u_ftsp_source_candidate_power_product = ff_q_ftsp_source_candidate_power_product_partial * S ((S (ff_i_ftsp_source_candidate_power_product)) * ff_v_ftsp_source_candidate_power_product) + (ff_r_ftsp_source_candidate_power_product))) /\ ((((exists ff_h_ftsp_source_candidate_power_product_successor. ff_h_ftsp_source_candidate_power_product_successor + S (ff_s_ftsp_source_candidate_power_product) = S ((S (S ff_i_ftsp_source_candidate_power_product)) * ff_v_ftsp_source_candidate_power_product)) /\ exists ff_q_ftsp_source_candidate_power_product_successor. ff_u_ftsp_source_candidate_power_product = ff_q_ftsp_source_candidate_power_product_successor * S ((S (S ff_i_ftsp_source_candidate_power_product)) * ff_v_ftsp_source_candidate_power_product) + (ff_s_ftsp_source_candidate_power_product))) /\ ff_s_ftsp_source_candidate_power_product = ff_r_ftsp_source_candidate_power_product * ff_p_ftsp_source_candidate_power_product)))))))) /\ (exists bpv_factor_ftsp_source_candidate_divides. n = bpv_result_ftsp_source_candidate * bpv_factor_ftsp_source_candidate_divides))) -> (exists bpv_gap_ftsp_source_maximal. bpv_gap_ftsp_source_maximal + bpv_candidate_ftsp_source = e)) -> e = h + h -> (((exists ff_h_ftsp_predecessor. ff_h_ftsp_predecessor + S (p) = S ((S (l)) * c)) /\ exists ff_q_ftsp_predecessor. b = ff_q_ftsp_predecessor * S ((S (l)) * c) + (p)))Constructive proof overview
Generated structural guide
In a sorted all-prime beta factorization, a terminal prime with positive even valuation has the identical immediately preceding factor.
The unchanged tactic script uses 9 declared prerequisites and contains 117 exact native proof lines.
dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged
Proof neighborhood
Direct dependencies
beta_product_succ_decompose Stable theorem; checked-use authorized beta_at_unique Stable theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized TS002Z even_positive_prime_valuation_has_square_divisor TS0030 prime_square_divisibility_forces_suffix_prime_divisor all_prime_succ_elim_prefix Stable theorem; checked-use authorized sorted_succ_elim_prefix Stable theorem; checked-use authorized sorted_succ_elim_last Stable theorem; checked-use authorized TS0031 beta_sorted_prime_prefix_divisor_equals_bounded_lastDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This dependency-curried candidate body does not grant checked theorem use or 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–15
03Establish hdecompositionL16–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product succ decompose.
04Separate the logical casesL23–26
05Establish hlast_equalL27–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
06Establish hfactorizationL36–41
07Establish hprime_dividesL42–42
Establish this local claim before using it. It is not an additional assumption.
- L42
have hprime_divides : exists ftcn_factor_ftsp_value. (n) = (p) * ftcn_factor_ftsp_value
08Construct an explicit witnessL43–43
Supply the displayed value, then prove that it has the required property.
- L43
exists x1
09Calculate and transport equalitiesL44–44
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L44
trans x1 * p
10Use earlier factsL45–46
11Establish hsquare_dividesL47–56
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply even positive prime valuation has square divisor.
- L47
have hsquare_divides : exists ftcn_factor_ftsp_square. (n) = (p * p) * ftcn_factor_ftsp_square - L48
specialize even_positive_prime_valuation_has_square_divisor p - L49
specialize even_positive_prime_valuation_has_square_divisor n - L50
specialize even_positive_prime_valuation_has_square_divisor e - L51
specialize even_positive_prime_valuation_has_square_divisor h - L52
apply even_positive_prime_valuation_has_square_divisor - L53
exact hprime - L54
exact hnonzero - L55
exact hvaluation - L56
exact hprime_divides
12Use earlier factsL57–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L57
exact heven
13Establish hprefix_dividesL58–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime square divisibility forces suffix prime divisor.
- L58
have hprefix_divides : exists ftcn_factor_ftsp_terminal_prefix_divides. (x1) = (p) * ftcn_factor_ftsp_terminal_prefix_divides - L59
specialize prime_square_divisibility_forces_suffix_prime_divisor p - L60
specialize prime_square_divisibility_forces_suffix_prime_divisor x1 - L61
specialize prime_square_divisibility_forces_suffix_prime_divisor n - L62
apply prime_square_divisibility_forces_suffix_prime_divisor - L63
exact hprime - L64
exact hfactorization - L65
exact hsquare_divides
14Establish hprefix_primeL66–71
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply all prime succ elim prefix.
15Establish hprefix_sortedL72–77
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply sorted succ elim prefix.
16Establish hlast_pairL78–83
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply sorted succ elim last.
- L78
have hlast_pair : exists u v. ((((exists ff_h_ftsp_sorted_left. ff_h_ftsp_sorted_left + S (u) = S ((S (l)) * c)) /\ exists ff_q_ftsp_sorted_left. b = ff_q_ftsp_sorted_left * S ((S (l)) * c) + (u))) /\ ((((exists ff_h_ftsp_sorted_right. ff_h_ftsp_sorted_right + S (v) = S ((S (S l)) * c)) /\ exists ff_q_ftsp_sorted_right. b = ff_q_ftsp_sorted_right * S ((S (S l)) * c) + (v))) /\ (exists k. k + u = v))) - L79
specialize sorted_succ_elim_last b - L80
specialize sorted_succ_elim_last c - L81
specialize sorted_succ_elim_last l - L82
apply sorted_succ_elim_last - L83
exact hsorted
17Separate the logical casesL84–87
18Establish hright_equalL88–96
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
19Establish hupperL97–99
20Establish hpredecessor_equalL100–109
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sorted prime prefix divisor equals bounded last.
- L100
have hpredecessor_equal : x2 = p - L101
specialize beta_sorted_prime_prefix_divisor_equals_bounded_last b - L102
specialize beta_sorted_prime_prefix_divisor_equals_bounded_last c - L103
specialize beta_sorted_prime_prefix_divisor_equals_bounded_last l - L104
specialize beta_sorted_prime_prefix_divisor_equals_bounded_last x1 - L105
specialize beta_sorted_prime_prefix_divisor_equals_bounded_last p - L106
specialize beta_sorted_prime_prefix_divisor_equals_bounded_last x2 - L107
apply beta_sorted_prime_prefix_divisor_equals_bounded_last - L108
exact hprime - L109
exact hprefix_prime
21Use earlier factsL110–114
22Calculate and transport equalitiesL115–116
23Use earlier factsL117–117
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L117
exact hlast_pair_witness_witness_left
Original exact command ledger · 117 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro n - 0005
intro p - 0006
intro e - 0007
intro h - 0008
intro hprime - 0009
intro hallprime - 0010
intro hsorted - 0011
intro hproduct - 0012
intro hterminal - 0013
intro hnonzero - 0014
intro hvaluation - 0015
intro heven - 0016
have hdecomposition : exists t r. ((((exists ff_h_ftsp_decomposition_entry. ff_h_ftsp_decomposition_entry + S (t) = S ((S (S l)) * c)) /\ exists ff_q_ftsp_decomposition_entry. b = ff_q_ftsp_decomposition_entry * S ((S (S l)) * c) + (t))) /\ ((exists ff_u_ftsp_decomposition ff_v_ftsp_decomposition. ((((exists ff_h_ftsp_decomposition_start. ff_h_ftsp_decomposition_start + S (1) = S ((S (0)) * ff_v_ftsp_decomposition)) /\ exists ff_q_ftsp_decomposition_start. ff_u_ftsp_decomposition = ff_q_ftsp_decomposition_start * S ((S (0)) * ff_v_ftsp_decomposition) + (1))) /\ ((((exists ff_h_ftsp_decomposition_terminal. ff_h_ftsp_decomposition_terminal + S (r) = S ((S (S l)) * ff_v_ftsp_decomposition)) /\ exists ff_q_ftsp_decomposition_terminal. ff_u_ftsp_decomposition = ff_q_ftsp_decomposition_terminal * S ((S (S l)) * ff_v_ftsp_decomposition) + (r))) /\ forall ff_i_ftsp_decomposition. (exists ff_lt_ftsp_decomposition_bound. ff_lt_ftsp_decomposition_bound + S ff_i_ftsp_decomposition = S l) -> exists ff_p_ftsp_decomposition ff_r_ftsp_decomposition ff_s_ftsp_decomposition. ((((exists ff_h_ftsp_decomposition_factor. ff_h_ftsp_decomposition_factor + S (ff_p_ftsp_decomposition) = S ((S (ff_i_ftsp_decomposition)) * c)) /\ exists ff_q_ftsp_decomposition_factor. b = ff_q_ftsp_decomposition_factor * S ((S (ff_i_ftsp_decomposition)) * c) + (ff_p_ftsp_decomposition))) /\ ((((exists ff_h_ftsp_decomposition_partial. ff_h_ftsp_decomposition_partial + S (ff_r_ftsp_decomposition) = S ((S (ff_i_ftsp_decomposition)) * ff_v_ftsp_decomposition)) /\ exists ff_q_ftsp_decomposition_partial. ff_u_ftsp_decomposition = ff_q_ftsp_decomposition_partial * S ((S (ff_i_ftsp_decomposition)) * ff_v_ftsp_decomposition) + (ff_r_ftsp_decomposition))) /\ ((((exists ff_h_ftsp_decomposition_successor. ff_h_ftsp_decomposition_successor + S (ff_s_ftsp_decomposition) = S ((S (S ff_i_ftsp_decomposition)) * ff_v_ftsp_decomposition)) /\ exists ff_q_ftsp_decomposition_successor. ff_u_ftsp_decomposition = ff_q_ftsp_decomposition_successor * S ((S (S ff_i_ftsp_decomposition)) * ff_v_ftsp_decomposition) + (ff_s_ftsp_decomposition))) /\ ff_s_ftsp_decomposition = ff_r_ftsp_decomposition * ff_p_ftsp_decomposition)))))) /\ n = r * t)) - 0017
specialize beta_product_succ_decompose b - 0018
specialize beta_product_succ_decompose c - 0019
specialize beta_product_succ_decompose (S l) - 0020
specialize beta_product_succ_decompose n - 0021
apply beta_product_succ_decompose - 0022
exact hproduct - 0023
cases hdecomposition - 0024
cases hdecomposition_witness - 0025
cases hdecomposition_witness_witness - 0026
cases hdecomposition_witness_witness_right - 0027
have hlast_equal : x = p - 0028
specialize beta_at_unique b - 0029
specialize beta_at_unique c - 0030
specialize beta_at_unique (S l) - 0031
specialize beta_at_unique x - 0032
specialize beta_at_unique p - 0033
apply beta_at_unique - 0034
exact hdecomposition_witness_witness_left - 0035
exact hterminal - 0036
have hfactorization : n = x1 * p - 0037
trans x1 * x - 0038
exact hdecomposition_witness_witness_right_right - 0039
congr - 0040
refl - 0041
exact hlast_equal - 0042
have hprime_divides : exists ftcn_factor_ftsp_value. (n) = (p) * ftcn_factor_ftsp_value - 0043
exists x1 - 0044
trans x1 * p - 0045
exact hfactorization - 0046
apply mul_comm - 0047
have hsquare_divides : exists ftcn_factor_ftsp_square. (n) = (p * p) * ftcn_factor_ftsp_square - 0048
specialize even_positive_prime_valuation_has_square_divisor p - 0049
specialize even_positive_prime_valuation_has_square_divisor n - 0050
specialize even_positive_prime_valuation_has_square_divisor e - 0051
specialize even_positive_prime_valuation_has_square_divisor h - 0052
apply even_positive_prime_valuation_has_square_divisor - 0053
exact hprime - 0054
exact hnonzero - 0055
exact hvaluation - 0056
exact hprime_divides - 0057
exact heven - 0058
have hprefix_divides : exists ftcn_factor_ftsp_terminal_prefix_divides. (x1) = (p) * ftcn_factor_ftsp_terminal_prefix_divides - 0059
specialize prime_square_divisibility_forces_suffix_prime_divisor p - 0060
specialize prime_square_divisibility_forces_suffix_prime_divisor x1 - 0061
specialize prime_square_divisibility_forces_suffix_prime_divisor n - 0062
apply prime_square_divisibility_forces_suffix_prime_divisor - 0063
exact hprime - 0064
exact hfactorization - 0065
exact hsquare_divides - 0066
have hprefix_prime : forall ftsf_index_ftsp_prefix. (exists ftsf_gap_ftsp_prefix_bound. ftsf_gap_ftsp_prefix_bound + S ftsf_index_ftsp_prefix = (S l)) -> exists ftsf_factor_ftsp_prefix. ((((exists ff_h_ftsf_ftsp_prefix_entry. ff_h_ftsf_ftsp_prefix_entry + S (ftsf_factor_ftsp_prefix) = S ((S (ftsf_index_ftsp_prefix)) * c)) /\ exists ff_q_ftsf_ftsp_prefix_entry. b = ff_q_ftsf_ftsp_prefix_entry * S ((S (ftsf_index_ftsp_prefix)) * c) + (ftsf_factor_ftsp_prefix))) /\ ((~(ftsf_factor_ftsp_prefix = 1) /\ forall frm_prime_left_ftsf_ftsp_prefix_prime frm_prime_right_ftsf_ftsp_prefix_prime. ftsf_factor_ftsp_prefix = frm_prime_left_ftsf_ftsp_prefix_prime * frm_prime_right_ftsf_ftsp_prefix_prime -> frm_prime_left_ftsf_ftsp_prefix_prime = 1 \/ frm_prime_right_ftsf_ftsp_prefix_prime = 1))) - 0067
specialize all_prime_succ_elim_prefix b - 0068
specialize all_prime_succ_elim_prefix c - 0069
specialize all_prime_succ_elim_prefix (S l) - 0070
apply all_prime_succ_elim_prefix - 0071
exact hallprime - 0072
have hprefix_sorted : forall ftsp_index_prefix. (exists ftsp_bound_prefix. ftsp_bound_prefix + S (S ftsp_index_prefix) = (S l)) -> exists ftsp_left_prefix ftsp_right_prefix. ((((exists ff_h_ftsp_prefix_left. ff_h_ftsp_prefix_left + S (ftsp_left_prefix) = S ((S (ftsp_index_prefix)) * c)) /\ exists ff_q_ftsp_prefix_left. b = ff_q_ftsp_prefix_left * S ((S (ftsp_index_prefix)) * c) + (ftsp_left_prefix))) /\ ((((exists ff_h_ftsp_prefix_right. ff_h_ftsp_prefix_right + S (ftsp_right_prefix) = S ((S (S ftsp_index_prefix)) * c)) /\ exists ff_q_ftsp_prefix_right. b = ff_q_ftsp_prefix_right * S ((S (S ftsp_index_prefix)) * c) + (ftsp_right_prefix))) /\ (exists ftsp_order_prefix. ftsp_order_prefix + ftsp_left_prefix = ftsp_right_prefix))) - 0073
specialize sorted_succ_elim_prefix b - 0074
specialize sorted_succ_elim_prefix c - 0075
specialize sorted_succ_elim_prefix (S l) - 0076
apply sorted_succ_elim_prefix - 0077
exact hsorted - 0078
have hlast_pair : exists u v. ((((exists ff_h_ftsp_sorted_left. ff_h_ftsp_sorted_left + S (u) = S ((S (l)) * c)) /\ exists ff_q_ftsp_sorted_left. b = ff_q_ftsp_sorted_left * S ((S (l)) * c) + (u))) /\ ((((exists ff_h_ftsp_sorted_right. ff_h_ftsp_sorted_right + S (v) = S ((S (S l)) * c)) /\ exists ff_q_ftsp_sorted_right. b = ff_q_ftsp_sorted_right * S ((S (S l)) * c) + (v))) /\ (exists k. k + u = v))) - 0079
specialize sorted_succ_elim_last b - 0080
specialize sorted_succ_elim_last c - 0081
specialize sorted_succ_elim_last l - 0082
apply sorted_succ_elim_last - 0083
exact hsorted - 0084
cases hlast_pair - 0085
cases hlast_pair_witness - 0086
cases hlast_pair_witness_witness - 0087
cases hlast_pair_witness_witness_right - 0088
have hright_equal : x3 = p - 0089
specialize beta_at_unique b - 0090
specialize beta_at_unique c - 0091
specialize beta_at_unique (S l) - 0092
specialize beta_at_unique x3 - 0093
specialize beta_at_unique p - 0094
apply beta_at_unique - 0095
exact hlast_pair_witness_witness_right_left - 0096
exact hterminal - 0097
have hupper : exists k. k + x2 = p - 0098
rewrite hright_equal at hlast_pair_witness_witness_right_right - 0099
exact hlast_pair_witness_witness_right_right - 0100
have hpredecessor_equal : x2 = p - 0101
specialize beta_sorted_prime_prefix_divisor_equals_bounded_last b - 0102
specialize beta_sorted_prime_prefix_divisor_equals_bounded_last c - 0103
specialize beta_sorted_prime_prefix_divisor_equals_bounded_last l - 0104
specialize beta_sorted_prime_prefix_divisor_equals_bounded_last x1 - 0105
specialize beta_sorted_prime_prefix_divisor_equals_bounded_last p - 0106
specialize beta_sorted_prime_prefix_divisor_equals_bounded_last x2 - 0107
apply beta_sorted_prime_prefix_divisor_equals_bounded_last - 0108
exact hprime - 0109
exact hprefix_prime - 0110
exact hprefix_sorted - 0111
exact hdecomposition_witness_witness_right_left - 0112
exact hlast_pair_witness_witness_left - 0113
exact hprefix_divides - 0114
exact hupper - 0115
rewrite hpredecessor_equal at hlast_pair_witness_witness_left - 0116
rewrite hpredecessor_equal at hlast_pair_witness_witness_left - 0117
exact hlast_pair_witness_witness_left