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 expanded first-order arithmetic statement
forall p n a b. (~((p) = 1) /\ forall pvs_left_step_prime pvs_right_step_prime. (p) = pvs_left_step_prime * pvs_right_step_prime -> pvs_left_step_prime = 1 \/ pvs_right_step_prime = 1) -> ~(exists pvs_factor_step_fresh. (n) = (p) * pvs_factor_step_fresh) -> (((~((n) = 0)) /\ ((((exists mv_square_prime_step_sourcesquare. ((~((mv_square_prime_step_sourcesquare) = 1) /\ forall pvs_left_step_sourcesquareprime pvs_right_step_sourcesquareprime. (mv_square_prime_step_sourcesquare) = pvs_left_step_sourcesquareprime * pvs_right_step_sourcesquareprime -> pvs_left_step_sourcesquareprime = 1 \/ pvs_right_step_sourcesquareprime = 1) /\ (exists pvs_factor_step_sourcesquaredivisor. (n) = (mv_square_prime_step_sourcesquare * mv_square_prime_step_sourcesquare) * pvs_factor_step_sourcesquaredivisor))) /\ ((a) = 0))) \/ (((((~((n) = 0)) /\ (forall sfd_prime_step_sourcesquarefree. (~((sfd_prime_step_sourcesquarefree) = 1) /\ forall pvs_left_step_sourcesquarefreedomain pvs_right_step_sourcesquarefreedomain. (sfd_prime_step_sourcesquarefree) = pvs_left_step_sourcesquarefreedomain * pvs_right_step_sourcesquarefreedomain -> pvs_left_step_sourcesquarefreedomain = 1 \/ pvs_right_step_sourcesquarefreedomain = 1) -> (exists pvs_le_gap_step_sourcesquarefreebound. pvs_le_gap_step_sourcesquarefreebound + (sfd_prime_step_sourcesquarefree) = (n)) -> ~(exists pvs_factor_step_sourcesquarefreesquare. (n) = (sfd_prime_step_sourcesquarefree * sfd_prime_step_sourcesquarefree) * pvs_factor_step_sourcesquarefreesquare)))) /\ (exists mv_factor_code_step_sourcefactors mv_factor_scale_step_sourcefactors mv_factor_count_step_sourcefactors. (((~(n = 0) /\ ((exists ff_u_fsat_step_sourcefactorsfactorization_product ff_v_fsat_step_sourcefactorsfactorization_product. ((((exists ff_h_fsat_step_sourcefactorsfactorization_product_start. ff_h_fsat_step_sourcefactorsfactorization_product_start + S (1) = S ((S (0)) * ff_v_fsat_step_sourcefactorsfactorization_product)) /\ exists ff_q_fsat_step_sourcefactorsfactorization_product_start. ff_u_fsat_step_sourcefactorsfactorization_product = ff_q_fsat_step_sourcefactorsfactorization_product_start * S ((S (0)) * ff_v_fsat_step_sourcefactorsfactorization_product) + (1))) /\ ((((exists ff_h_fsat_step_sourcefactorsfactorization_product_terminal. ff_h_fsat_step_sourcefactorsfactorization_product_terminal + S (n) = S ((S (mv_factor_count_step_sourcefactors)) * ff_v_fsat_step_sourcefactorsfactorization_product)) /\ exists ff_q_fsat_step_sourcefactorsfactorization_product_terminal. ff_u_fsat_step_sourcefactorsfactorization_product = ff_q_fsat_step_sourcefactorsfactorization_product_terminal * S ((S (mv_factor_count_step_sourcefactors)) * ff_v_fsat_step_sourcefactorsfactorization_product) + (n))) /\ forall ff_i_fsat_step_sourcefactorsfactorization_product. (exists ff_lt_fsat_step_sourcefactorsfactorization_product_bound. ff_lt_fsat_step_sourcefactorsfactorization_product_bound + S ff_i_fsat_step_sourcefactorsfactorization_product = mv_factor_count_step_sourcefactors) -> exists ff_p_fsat_step_sourcefactorsfactorization_product ff_r_fsat_step_sourcefactorsfactorization_product ff_s_fsat_step_sourcefactorsfactorization_product. ((((exists ff_h_fsat_step_sourcefactorsfactorization_product_factor. ff_h_fsat_step_sourcefactorsfactorization_product_factor + S (ff_p_fsat_step_sourcefactorsfactorization_product) = S ((S (ff_i_fsat_step_sourcefactorsfactorization_product)) * mv_factor_scale_step_sourcefactors)) /\ exists ff_q_fsat_step_sourcefactorsfactorization_product_factor. mv_factor_code_step_sourcefactors = ff_q_fsat_step_sourcefactorsfactorization_product_factor * S ((S (ff_i_fsat_step_sourcefactorsfactorization_product)) * mv_factor_scale_step_sourcefactors) + (ff_p_fsat_step_sourcefactorsfactorization_product))) /\ ((((exists ff_h_fsat_step_sourcefactorsfactorization_product_partial. ff_h_fsat_step_sourcefactorsfactorization_product_partial + S (ff_r_fsat_step_sourcefactorsfactorization_product) = S ((S (ff_i_fsat_step_sourcefactorsfactorization_product)) * ff_v_fsat_step_sourcefactorsfactorization_product)) /\ exists ff_q_fsat_step_sourcefactorsfactorization_product_partial. ff_u_fsat_step_sourcefactorsfactorization_product = ff_q_fsat_step_sourcefactorsfactorization_product_partial * S ((S (ff_i_fsat_step_sourcefactorsfactorization_product)) * ff_v_fsat_step_sourcefactorsfactorization_product) + (ff_r_fsat_step_sourcefactorsfactorization_product))) /\ ((((exists ff_h_fsat_step_sourcefactorsfactorization_product_successor. ff_h_fsat_step_sourcefactorsfactorization_product_successor + S (ff_s_fsat_step_sourcefactorsfactorization_product) = S ((S (S ff_i_fsat_step_sourcefactorsfactorization_product)) * ff_v_fsat_step_sourcefactorsfactorization_product)) /\ exists ff_q_fsat_step_sourcefactorsfactorization_product_successor. ff_u_fsat_step_sourcefactorsfactorization_product = ff_q_fsat_step_sourcefactorsfactorization_product_successor * S ((S (S ff_i_fsat_step_sourcefactorsfactorization_product)) * ff_v_fsat_step_sourcefactorsfactorization_product) + (ff_s_fsat_step_sourcefactorsfactorization_product))) /\ ff_s_fsat_step_sourcefactorsfactorization_product = ff_r_fsat_step_sourcefactorsfactorization_product * ff_p_fsat_step_sourcefactorsfactorization_product)))))) /\ (forall ftsf_index_fsat_step_sourcefactorsfactorization_primes. (exists ftsf_gap_fsat_step_sourcefactorsfactorization_primes_bound. ftsf_gap_fsat_step_sourcefactorsfactorization_primes_bound + S ftsf_index_fsat_step_sourcefactorsfactorization_primes = (mv_factor_count_step_sourcefactors)) -> exists ftsf_factor_fsat_step_sourcefactorsfactorization_primes. ((((exists ff_h_ftsf_fsat_step_sourcefactorsfactorization_primes_entry. ff_h_ftsf_fsat_step_sourcefactorsfactorization_primes_entry + S (ftsf_factor_fsat_step_sourcefactorsfactorization_primes) = S ((S (ftsf_index_fsat_step_sourcefactorsfactorization_primes)) * mv_factor_scale_step_sourcefactors)) /\ exists ff_q_ftsf_fsat_step_sourcefactorsfactorization_primes_entry. mv_factor_code_step_sourcefactors = ff_q_ftsf_fsat_step_sourcefactorsfactorization_primes_entry * S ((S (ftsf_index_fsat_step_sourcefactorsfactorization_primes)) * mv_factor_scale_step_sourcefactors) + (ftsf_factor_fsat_step_sourcefactorsfactorization_primes))) /\ ((~(ftsf_factor_fsat_step_sourcefactorsfactorization_primes = 1) /\ forall frm_prime_left_ftsf_fsat_step_sourcefactorsfactorization_primes_prime frm_prime_right_ftsf_fsat_step_sourcefactorsfactorization_primes_prime. ftsf_factor_fsat_step_sourcefactorsfactorization_primes = frm_prime_left_ftsf_fsat_step_sourcefactorsfactorization_primes_prime * frm_prime_right_ftsf_fsat_step_sourcefactorsfactorization_primes_prime -> frm_prime_left_ftsf_fsat_step_sourcefactorsfactorization_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_step_sourcefactorsfactorization_primes_prime = 1))))))) /\ ((((exists mv_even_half_step_sourcefactorsparityeven. (mv_factor_count_step_sourcefactors) = 2 * mv_even_half_step_sourcefactorsparityeven) /\ ((a) = 2))) \/ (((exists mv_odd_half_step_sourcefactorsparityodd. (mv_factor_count_step_sourcefactors) = 2 * mv_odd_half_step_sourcefactorsparityodd + 1) /\ ((a) = 1))))))))))) -> (((~((p * n) = 0)) /\ ((((exists mv_square_prime_step_targetsquare. ((~((mv_square_prime_step_targetsquare) = 1) /\ forall pvs_left_step_targetsquareprime pvs_right_step_targetsquareprime. (mv_square_prime_step_targetsquare) = pvs_left_step_targetsquareprime * pvs_right_step_targetsquareprime -> pvs_left_step_targetsquareprime = 1 \/ pvs_right_step_targetsquareprime = 1) /\ (exists pvs_factor_step_targetsquaredivisor. (p * n) = (mv_square_prime_step_targetsquare * mv_square_prime_step_targetsquare) * pvs_factor_step_targetsquaredivisor))) /\ ((b) = 0))) \/ (((((~((p * n) = 0)) /\ (forall sfd_prime_step_targetsquarefree. (~((sfd_prime_step_targetsquarefree) = 1) /\ forall pvs_left_step_targetsquarefreedomain pvs_right_step_targetsquarefreedomain. (sfd_prime_step_targetsquarefree) = pvs_left_step_targetsquarefreedomain * pvs_right_step_targetsquarefreedomain -> pvs_left_step_targetsquarefreedomain = 1 \/ pvs_right_step_targetsquarefreedomain = 1) -> (exists pvs_le_gap_step_targetsquarefreebound. pvs_le_gap_step_targetsquarefreebound + (sfd_prime_step_targetsquarefree) = (p * n)) -> ~(exists pvs_factor_step_targetsquarefreesquare. (p * n) = (sfd_prime_step_targetsquarefree * sfd_prime_step_targetsquarefree) * pvs_factor_step_targetsquarefreesquare)))) /\ (exists mv_factor_code_step_targetfactors mv_factor_scale_step_targetfactors mv_factor_count_step_targetfactors. (((~(p * n = 0) /\ ((exists ff_u_fsat_step_targetfactorsfactorization_product ff_v_fsat_step_targetfactorsfactorization_product. ((((exists ff_h_fsat_step_targetfactorsfactorization_product_start. ff_h_fsat_step_targetfactorsfactorization_product_start + S (1) = S ((S (0)) * ff_v_fsat_step_targetfactorsfactorization_product)) /\ exists ff_q_fsat_step_targetfactorsfactorization_product_start. ff_u_fsat_step_targetfactorsfactorization_product = ff_q_fsat_step_targetfactorsfactorization_product_start * S ((S (0)) * ff_v_fsat_step_targetfactorsfactorization_product) + (1))) /\ ((((exists ff_h_fsat_step_targetfactorsfactorization_product_terminal. ff_h_fsat_step_targetfactorsfactorization_product_terminal + S (p * n) = S ((S (mv_factor_count_step_targetfactors)) * ff_v_fsat_step_targetfactorsfactorization_product)) /\ exists ff_q_fsat_step_targetfactorsfactorization_product_terminal. ff_u_fsat_step_targetfactorsfactorization_product = ff_q_fsat_step_targetfactorsfactorization_product_terminal * S ((S (mv_factor_count_step_targetfactors)) * ff_v_fsat_step_targetfactorsfactorization_product) + (p * n))) /\ forall ff_i_fsat_step_targetfactorsfactorization_product. (exists ff_lt_fsat_step_targetfactorsfactorization_product_bound. ff_lt_fsat_step_targetfactorsfactorization_product_bound + S ff_i_fsat_step_targetfactorsfactorization_product = mv_factor_count_step_targetfactors) -> exists ff_p_fsat_step_targetfactorsfactorization_product ff_r_fsat_step_targetfactorsfactorization_product ff_s_fsat_step_targetfactorsfactorization_product. ((((exists ff_h_fsat_step_targetfactorsfactorization_product_factor. ff_h_fsat_step_targetfactorsfactorization_product_factor + S (ff_p_fsat_step_targetfactorsfactorization_product) = S ((S (ff_i_fsat_step_targetfactorsfactorization_product)) * mv_factor_scale_step_targetfactors)) /\ exists ff_q_fsat_step_targetfactorsfactorization_product_factor. mv_factor_code_step_targetfactors = ff_q_fsat_step_targetfactorsfactorization_product_factor * S ((S (ff_i_fsat_step_targetfactorsfactorization_product)) * mv_factor_scale_step_targetfactors) + (ff_p_fsat_step_targetfactorsfactorization_product))) /\ ((((exists ff_h_fsat_step_targetfactorsfactorization_product_partial. ff_h_fsat_step_targetfactorsfactorization_product_partial + S (ff_r_fsat_step_targetfactorsfactorization_product) = S ((S (ff_i_fsat_step_targetfactorsfactorization_product)) * ff_v_fsat_step_targetfactorsfactorization_product)) /\ exists ff_q_fsat_step_targetfactorsfactorization_product_partial. ff_u_fsat_step_targetfactorsfactorization_product = ff_q_fsat_step_targetfactorsfactorization_product_partial * S ((S (ff_i_fsat_step_targetfactorsfactorization_product)) * ff_v_fsat_step_targetfactorsfactorization_product) + (ff_r_fsat_step_targetfactorsfactorization_product))) /\ ((((exists ff_h_fsat_step_targetfactorsfactorization_product_successor. ff_h_fsat_step_targetfactorsfactorization_product_successor + S (ff_s_fsat_step_targetfactorsfactorization_product) = S ((S (S ff_i_fsat_step_targetfactorsfactorization_product)) * ff_v_fsat_step_targetfactorsfactorization_product)) /\ exists ff_q_fsat_step_targetfactorsfactorization_product_successor. ff_u_fsat_step_targetfactorsfactorization_product = ff_q_fsat_step_targetfactorsfactorization_product_successor * S ((S (S ff_i_fsat_step_targetfactorsfactorization_product)) * ff_v_fsat_step_targetfactorsfactorization_product) + (ff_s_fsat_step_targetfactorsfactorization_product))) /\ ff_s_fsat_step_targetfactorsfactorization_product = ff_r_fsat_step_targetfactorsfactorization_product * ff_p_fsat_step_targetfactorsfactorization_product)))))) /\ (forall ftsf_index_fsat_step_targetfactorsfactorization_primes. (exists ftsf_gap_fsat_step_targetfactorsfactorization_primes_bound. ftsf_gap_fsat_step_targetfactorsfactorization_primes_bound + S ftsf_index_fsat_step_targetfactorsfactorization_primes = (mv_factor_count_step_targetfactors)) -> exists ftsf_factor_fsat_step_targetfactorsfactorization_primes. ((((exists ff_h_ftsf_fsat_step_targetfactorsfactorization_primes_entry. ff_h_ftsf_fsat_step_targetfactorsfactorization_primes_entry + S (ftsf_factor_fsat_step_targetfactorsfactorization_primes) = S ((S (ftsf_index_fsat_step_targetfactorsfactorization_primes)) * mv_factor_scale_step_targetfactors)) /\ exists ff_q_ftsf_fsat_step_targetfactorsfactorization_primes_entry. mv_factor_code_step_targetfactors = ff_q_ftsf_fsat_step_targetfactorsfactorization_primes_entry * S ((S (ftsf_index_fsat_step_targetfactorsfactorization_primes)) * mv_factor_scale_step_targetfactors) + (ftsf_factor_fsat_step_targetfactorsfactorization_primes))) /\ ((~(ftsf_factor_fsat_step_targetfactorsfactorization_primes = 1) /\ forall frm_prime_left_ftsf_fsat_step_targetfactorsfactorization_primes_prime frm_prime_right_ftsf_fsat_step_targetfactorsfactorization_primes_prime. ftsf_factor_fsat_step_targetfactorsfactorization_primes = frm_prime_left_ftsf_fsat_step_targetfactorsfactorization_primes_prime * frm_prime_right_ftsf_fsat_step_targetfactorsfactorization_primes_prime -> frm_prime_left_ftsf_fsat_step_targetfactorsfactorization_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_step_targetfactorsfactorization_primes_prime = 1))))))) /\ ((((exists mv_even_half_step_targetfactorsparityeven. (mv_factor_count_step_targetfactors) = 2 * mv_even_half_step_targetfactorsparityeven) /\ ((b) = 2))) \/ (((exists mv_odd_half_step_targetfactorsparityodd. (mv_factor_count_step_targetfactors) = 2 * mv_odd_half_step_targetfactorsparityodd + 1) /\ ((b) = 1))))))))))) -> (exists mps_positive_step_result mps_negative_step_result. (((((a) = 2 * (mps_positive_step_result) /\ (mps_negative_step_result) = 0) \/ exists ge_signed_half_step_resultsource. (((a) = 2 * ge_signed_half_step_resultsource + 1 /\ (mps_positive_step_result) = 0) /\ (mps_negative_step_result) = S ge_signed_half_step_resultsource))) /\ ((((b) = 2 * (mps_negative_step_result) /\ (mps_positive_step_result) = 0) \/ exists ge_signed_half_step_resulttarget. (((b) = 2 * ge_signed_half_step_resulttarget + 1 /\ (mps_negative_step_result) = 0) /\ (mps_positive_step_result) = S ge_signed_half_step_resulttarget)))))Constructive proof overview
Generated structural guide
For an actual prime not dividing n, adjoining that prime negates the genuine Möbius value, including all nonsquarefree zero cases.
The unchanged tactic script uses 8 declared prerequisites and contains 74 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
MV0014 mobius_prime_square_value_zero multiple_mul_left Stable theorem; checked-use authorized signed_negate_zero Alpha theorem; checked-use authorized MV0011 mobius_prime_factor_list_append MV0010 mobius_squarefree_fresh_prime_product MV000A mobius_squarefree_evaluation MV0013 alternating_signed_unit_successor_negates mul_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 (5)
01Fix variables and assumptionsL1–8
02Separate the logical casesL9–13
03Establish heqL14–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mobius prime square value zero.
- L14
have heq : b = 0 - L15
specialize mobius_prime_square_value_zero (p * n) - L16
specialize mobius_prime_square_value_zero (x) - L17
specialize mobius_prime_square_value_zero (b) - L18
apply mobius_prime_square_value_zero - L19
exact ha_right_left_left_witness_left - L20
specialize multiple_mul_left (x * x) - L21
specialize multiple_mul_left (n) - L22
specialize multiple_mul_left (p) - L23
apply multiple_mul_left
04Use earlier factsL24–25
05Calculate and transport equalitiesL26–29
06Use earlier factsL30–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L30
apply signed_negate_zero
07Separate the logical casesL31–35
08Establish hlistL36–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mobius prime factor list append.
- L36
have hlist : ∃ d. ∃ e. PrimeFactorList(n · p,d,e,S x2)Definitions: PrimeFactorList - L37
specialize mobius_prime_factor_list_append (n) - L38
specialize mobius_prime_factor_list_append (x) - L39
specialize mobius_prime_factor_list_append (x1) - L40
specialize mobius_prime_factor_list_append (x2) - L41
specialize mobius_prime_factor_list_append (p) - L42
apply mobius_prime_factor_list_append - L43
exact ha_right_right_right_witness_witness_witness_left - L44
exact hp
09Separate the logical casesL45–46
10Establish hsfL47–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mobius squarefree fresh prime product.
11Establish hsignL54–61
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mobius squarefree evaluation.
- L54
have hsign : (((exists mv_even_half_step_product_signeven. (S x2) = 2 * mv_even_half_step_product_signeven) /\ ((b) = 2))) \/ (((exists mv_odd_half_step_product_signodd. (S x2) = 2 * mv_odd_half_step_product_signodd + 1) /\ ((b) = 1))) - L55
specialize mobius_squarefree_evaluation (p * n) - L56
specialize mobius_squarefree_evaluation (x3) - L57
specialize mobius_squarefree_evaluation (x4) - L58
specialize mobius_squarefree_evaluation (S x2) - L59
specialize mobius_squarefree_evaluation (b) - L60
apply mobius_squarefree_evaluation - L61
exact hsf
12Establish heqL62–71
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul comm.
- L62
have heq : n * p = p * n - L63
apply mul_comm - L64
rewrite heq at hlist_witness_witness - L65
rewrite heq at hlist_witness_witness - L66
rewrite heq at hlist_witness_witness - L67
exact hlist_witness_witness - L68
exact hb - L69
specialize alternating_signed_unit_successor_negates (x2) - L70
specialize alternating_signed_unit_successor_negates (a) - L71
specialize alternating_signed_unit_successor_negates (b)
Original exact command ledger · 74 lines
- 0001
intro p - 0002
intro n - 0003
intro a - 0004
intro b - 0005
intro hp - 0006
intro hfresh - 0007
intro ha - 0008
intro hb - 0009
cases ha - 0010
cases ha_right - 0011
cases ha_right_left - 0012
cases ha_right_left_left - 0013
cases ha_right_left_left_witness - 0014
have heq : b = 0 - 0015
specialize mobius_prime_square_value_zero (p * n) - 0016
specialize mobius_prime_square_value_zero (x) - 0017
specialize mobius_prime_square_value_zero (b) - 0018
apply mobius_prime_square_value_zero - 0019
exact ha_right_left_left_witness_left - 0020
specialize multiple_mul_left (x * x) - 0021
specialize multiple_mul_left (n) - 0022
specialize multiple_mul_left (p) - 0023
apply multiple_mul_left - 0024
exact ha_right_left_left_witness_right - 0025
exact hb - 0026
rewrite ha_right_left_right - 0027
rewrite ha_right_left_right - 0028
rewrite heq - 0029
rewrite heq - 0030
apply signed_negate_zero - 0031
cases ha_right_right - 0032
cases ha_right_right_right - 0033
cases ha_right_right_right_witness - 0034
cases ha_right_right_right_witness_witness - 0035
cases ha_right_right_right_witness_witness_witness - 0036
have hlist : exists d e. ((~(n * p = 0) /\ ((exists ff_u_fsat_mps_step_appended_product ff_v_fsat_mps_step_appended_product. ((((exists ff_h_fsat_mps_step_appended_product_start. ff_h_fsat_mps_step_appended_product_start + S (1) = S ((S (0)) * ff_v_fsat_mps_step_appended_product)) /\ exists ff_q_fsat_mps_step_appended_product_start. ff_u_fsat_mps_step_appended_product = ff_q_fsat_mps_step_appended_product_start * S ((S (0)) * ff_v_fsat_mps_step_appended_product) + (1))) /\ ((((exists ff_h_fsat_mps_step_appended_product_terminal. ff_h_fsat_mps_step_appended_product_terminal + S (n * p) = S ((S (S x2)) * ff_v_fsat_mps_step_appended_product)) /\ exists ff_q_fsat_mps_step_appended_product_terminal. ff_u_fsat_mps_step_appended_product = ff_q_fsat_mps_step_appended_product_terminal * S ((S (S x2)) * ff_v_fsat_mps_step_appended_product) + (n * p))) /\ forall ff_i_fsat_mps_step_appended_product. (exists ff_lt_fsat_mps_step_appended_product_bound. ff_lt_fsat_mps_step_appended_product_bound + S ff_i_fsat_mps_step_appended_product = S x2) -> exists ff_p_fsat_mps_step_appended_product ff_r_fsat_mps_step_appended_product ff_s_fsat_mps_step_appended_product. ((((exists ff_h_fsat_mps_step_appended_product_factor. ff_h_fsat_mps_step_appended_product_factor + S (ff_p_fsat_mps_step_appended_product) = S ((S (ff_i_fsat_mps_step_appended_product)) * e)) /\ exists ff_q_fsat_mps_step_appended_product_factor. d = ff_q_fsat_mps_step_appended_product_factor * S ((S (ff_i_fsat_mps_step_appended_product)) * e) + (ff_p_fsat_mps_step_appended_product))) /\ ((((exists ff_h_fsat_mps_step_appended_product_partial. ff_h_fsat_mps_step_appended_product_partial + S (ff_r_fsat_mps_step_appended_product) = S ((S (ff_i_fsat_mps_step_appended_product)) * ff_v_fsat_mps_step_appended_product)) /\ exists ff_q_fsat_mps_step_appended_product_partial. ff_u_fsat_mps_step_appended_product = ff_q_fsat_mps_step_appended_product_partial * S ((S (ff_i_fsat_mps_step_appended_product)) * ff_v_fsat_mps_step_appended_product) + (ff_r_fsat_mps_step_appended_product))) /\ ((((exists ff_h_fsat_mps_step_appended_product_successor. ff_h_fsat_mps_step_appended_product_successor + S (ff_s_fsat_mps_step_appended_product) = S ((S (S ff_i_fsat_mps_step_appended_product)) * ff_v_fsat_mps_step_appended_product)) /\ exists ff_q_fsat_mps_step_appended_product_successor. ff_u_fsat_mps_step_appended_product = ff_q_fsat_mps_step_appended_product_successor * S ((S (S ff_i_fsat_mps_step_appended_product)) * ff_v_fsat_mps_step_appended_product) + (ff_s_fsat_mps_step_appended_product))) /\ ff_s_fsat_mps_step_appended_product = ff_r_fsat_mps_step_appended_product * ff_p_fsat_mps_step_appended_product)))))) /\ (forall ftsf_index_fsat_mps_step_appended_primes. (exists ftsf_gap_fsat_mps_step_appended_primes_bound. ftsf_gap_fsat_mps_step_appended_primes_bound + S ftsf_index_fsat_mps_step_appended_primes = (S x2)) -> exists ftsf_factor_fsat_mps_step_appended_primes. ((((exists ff_h_ftsf_fsat_mps_step_appended_primes_entry. ff_h_ftsf_fsat_mps_step_appended_primes_entry + S (ftsf_factor_fsat_mps_step_appended_primes) = S ((S (ftsf_index_fsat_mps_step_appended_primes)) * e)) /\ exists ff_q_ftsf_fsat_mps_step_appended_primes_entry. d = ff_q_ftsf_fsat_mps_step_appended_primes_entry * S ((S (ftsf_index_fsat_mps_step_appended_primes)) * e) + (ftsf_factor_fsat_mps_step_appended_primes))) /\ ((~(ftsf_factor_fsat_mps_step_appended_primes = 1) /\ forall frm_prime_left_ftsf_fsat_mps_step_appended_primes_prime frm_prime_right_ftsf_fsat_mps_step_appended_primes_prime. ftsf_factor_fsat_mps_step_appended_primes = frm_prime_left_ftsf_fsat_mps_step_appended_primes_prime * frm_prime_right_ftsf_fsat_mps_step_appended_primes_prime -> frm_prime_left_ftsf_fsat_mps_step_appended_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_mps_step_appended_primes_prime = 1))))))) - 0037
specialize mobius_prime_factor_list_append (n) - 0038
specialize mobius_prime_factor_list_append (x) - 0039
specialize mobius_prime_factor_list_append (x1) - 0040
specialize mobius_prime_factor_list_append (x2) - 0041
specialize mobius_prime_factor_list_append (p) - 0042
apply mobius_prime_factor_list_append - 0043
exact ha_right_right_right_witness_witness_witness_left - 0044
exact hp - 0045
cases hlist - 0046
cases hlist_witness - 0047
have hsf : ((~((p * n) = 0)) /\ (forall sfd_prime_step_product_sf. (~((sfd_prime_step_product_sf) = 1) /\ forall pvs_left_step_product_sfdomain pvs_right_step_product_sfdomain. (sfd_prime_step_product_sf) = pvs_left_step_product_sfdomain * pvs_right_step_product_sfdomain -> pvs_left_step_product_sfdomain = 1 \/ pvs_right_step_product_sfdomain = 1) -> (exists pvs_le_gap_step_product_sfbound. pvs_le_gap_step_product_sfbound + (sfd_prime_step_product_sf) = (p * n)) -> ~(exists pvs_factor_step_product_sfsquare. (p * n) = (sfd_prime_step_product_sf * sfd_prime_step_product_sf) * pvs_factor_step_product_sfsquare))) - 0048
specialize mobius_squarefree_fresh_prime_product (p) - 0049
specialize mobius_squarefree_fresh_prime_product (n) - 0050
apply mobius_squarefree_fresh_prime_product - 0051
exact hp - 0052
exact ha_right_right_left - 0053
exact hfresh - 0054
have hsign : (((exists mv_even_half_step_product_signeven. (S x2) = 2 * mv_even_half_step_product_signeven) /\ ((b) = 2))) \/ (((exists mv_odd_half_step_product_signodd. (S x2) = 2 * mv_odd_half_step_product_signodd + 1) /\ ((b) = 1))) - 0055
specialize mobius_squarefree_evaluation (p * n) - 0056
specialize mobius_squarefree_evaluation (x3) - 0057
specialize mobius_squarefree_evaluation (x4) - 0058
specialize mobius_squarefree_evaluation (S x2) - 0059
specialize mobius_squarefree_evaluation (b) - 0060
apply mobius_squarefree_evaluation - 0061
exact hsf - 0062
have heq : n * p = p * n - 0063
apply mul_comm - 0064
rewrite heq at hlist_witness_witness - 0065
rewrite heq at hlist_witness_witness - 0066
rewrite heq at hlist_witness_witness - 0067
exact hlist_witness_witness - 0068
exact hb - 0069
specialize alternating_signed_unit_successor_negates (x2) - 0070
specialize alternating_signed_unit_successor_negates (a) - 0071
specialize alternating_signed_unit_successor_negates (b) - 0072
apply alternating_signed_unit_successor_negates - 0073
exact ha_right_right_right_witness_witness_witness_right - 0074
exact hsign