Exact expanded first-order arithmetic statement
forall n. ~(n = 0) -> exists z. (((~((n) = 0)) /\ ((((exists mv_square_prime_exists_valuesquare. ((~((mv_square_prime_exists_valuesquare) = 1) /\ forall pvs_left_exists_valuesquareprime pvs_right_exists_valuesquareprime. (mv_square_prime_exists_valuesquare) = pvs_left_exists_valuesquareprime * pvs_right_exists_valuesquareprime -> pvs_left_exists_valuesquareprime = 1 \/ pvs_right_exists_valuesquareprime = 1) /\ (exists pvs_factor_exists_valuesquaredivisor. (n) = (mv_square_prime_exists_valuesquare * mv_square_prime_exists_valuesquare) * pvs_factor_exists_valuesquaredivisor))) /\ ((z) = 0))) \/ (((((~((n) = 0)) /\ (forall sfd_prime_exists_valuesquarefree. (~((sfd_prime_exists_valuesquarefree) = 1) /\ forall pvs_left_exists_valuesquarefreedomain pvs_right_exists_valuesquarefreedomain. (sfd_prime_exists_valuesquarefree) = pvs_left_exists_valuesquarefreedomain * pvs_right_exists_valuesquarefreedomain -> pvs_left_exists_valuesquarefreedomain = 1 \/ pvs_right_exists_valuesquarefreedomain = 1) -> (exists pvs_le_gap_exists_valuesquarefreebound. pvs_le_gap_exists_valuesquarefreebound + (sfd_prime_exists_valuesquarefree) = (n)) -> ~(exists pvs_factor_exists_valuesquarefreesquare. (n) = (sfd_prime_exists_valuesquarefree * sfd_prime_exists_valuesquarefree) * pvs_factor_exists_valuesquarefreesquare)))) /\ (exists mv_factor_code_exists_valuefactors mv_factor_scale_exists_valuefactors mv_factor_count_exists_valuefactors. (((~(n = 0) /\ ((exists ff_u_fsat_exists_valuefactorsfactorization_product ff_v_fsat_exists_valuefactorsfactorization_product. ((((exists ff_h_fsat_exists_valuefactorsfactorization_product_start. ff_h_fsat_exists_valuefactorsfactorization_product_start + S (1) = S ((S (0)) * ff_v_fsat_exists_valuefactorsfactorization_product)) /\ exists ff_q_fsat_exists_valuefactorsfactorization_product_start. ff_u_fsat_exists_valuefactorsfactorization_product = ff_q_fsat_exists_valuefactorsfactorization_product_start * S ((S (0)) * ff_v_fsat_exists_valuefactorsfactorization_product) + (1))) /\ ((((exists ff_h_fsat_exists_valuefactorsfactorization_product_terminal. ff_h_fsat_exists_valuefactorsfactorization_product_terminal + S (n) = S ((S (mv_factor_count_exists_valuefactors)) * ff_v_fsat_exists_valuefactorsfactorization_product)) /\ exists ff_q_fsat_exists_valuefactorsfactorization_product_terminal. ff_u_fsat_exists_valuefactorsfactorization_product = ff_q_fsat_exists_valuefactorsfactorization_product_terminal * S ((S (mv_factor_count_exists_valuefactors)) * ff_v_fsat_exists_valuefactorsfactorization_product) + (n))) /\ forall ff_i_fsat_exists_valuefactorsfactorization_product. (exists ff_lt_fsat_exists_valuefactorsfactorization_product_bound. ff_lt_fsat_exists_valuefactorsfactorization_product_bound + S ff_i_fsat_exists_valuefactorsfactorization_product = mv_factor_count_exists_valuefactors) -> exists ff_p_fsat_exists_valuefactorsfactorization_product ff_r_fsat_exists_valuefactorsfactorization_product ff_s_fsat_exists_valuefactorsfactorization_product. ((((exists ff_h_fsat_exists_valuefactorsfactorization_product_factor. ff_h_fsat_exists_valuefactorsfactorization_product_factor + S (ff_p_fsat_exists_valuefactorsfactorization_product) = S ((S (ff_i_fsat_exists_valuefactorsfactorization_product)) * mv_factor_scale_exists_valuefactors)) /\ exists ff_q_fsat_exists_valuefactorsfactorization_product_factor. mv_factor_code_exists_valuefactors = ff_q_fsat_exists_valuefactorsfactorization_product_factor * S ((S (ff_i_fsat_exists_valuefactorsfactorization_product)) * mv_factor_scale_exists_valuefactors) + (ff_p_fsat_exists_valuefactorsfactorization_product))) /\ ((((exists ff_h_fsat_exists_valuefactorsfactorization_product_partial. ff_h_fsat_exists_valuefactorsfactorization_product_partial + S (ff_r_fsat_exists_valuefactorsfactorization_product) = S ((S (ff_i_fsat_exists_valuefactorsfactorization_product)) * ff_v_fsat_exists_valuefactorsfactorization_product)) /\ exists ff_q_fsat_exists_valuefactorsfactorization_product_partial. ff_u_fsat_exists_valuefactorsfactorization_product = ff_q_fsat_exists_valuefactorsfactorization_product_partial * S ((S (ff_i_fsat_exists_valuefactorsfactorization_product)) * ff_v_fsat_exists_valuefactorsfactorization_product) + (ff_r_fsat_exists_valuefactorsfactorization_product))) /\ ((((exists ff_h_fsat_exists_valuefactorsfactorization_product_successor. ff_h_fsat_exists_valuefactorsfactorization_product_successor + S (ff_s_fsat_exists_valuefactorsfactorization_product) = S ((S (S ff_i_fsat_exists_valuefactorsfactorization_product)) * ff_v_fsat_exists_valuefactorsfactorization_product)) /\ exists ff_q_fsat_exists_valuefactorsfactorization_product_successor. ff_u_fsat_exists_valuefactorsfactorization_product = ff_q_fsat_exists_valuefactorsfactorization_product_successor * S ((S (S ff_i_fsat_exists_valuefactorsfactorization_product)) * ff_v_fsat_exists_valuefactorsfactorization_product) + (ff_s_fsat_exists_valuefactorsfactorization_product))) /\ ff_s_fsat_exists_valuefactorsfactorization_product = ff_r_fsat_exists_valuefactorsfactorization_product * ff_p_fsat_exists_valuefactorsfactorization_product)))))) /\ (forall ftsf_index_fsat_exists_valuefactorsfactorization_primes. (exists ftsf_gap_fsat_exists_valuefactorsfactorization_primes_bound. ftsf_gap_fsat_exists_valuefactorsfactorization_primes_bound + S ftsf_index_fsat_exists_valuefactorsfactorization_primes = (mv_factor_count_exists_valuefactors)) -> exists ftsf_factor_fsat_exists_valuefactorsfactorization_primes. ((((exists ff_h_ftsf_fsat_exists_valuefactorsfactorization_primes_entry. ff_h_ftsf_fsat_exists_valuefactorsfactorization_primes_entry + S (ftsf_factor_fsat_exists_valuefactorsfactorization_primes) = S ((S (ftsf_index_fsat_exists_valuefactorsfactorization_primes)) * mv_factor_scale_exists_valuefactors)) /\ exists ff_q_ftsf_fsat_exists_valuefactorsfactorization_primes_entry. mv_factor_code_exists_valuefactors = ff_q_ftsf_fsat_exists_valuefactorsfactorization_primes_entry * S ((S (ftsf_index_fsat_exists_valuefactorsfactorization_primes)) * mv_factor_scale_exists_valuefactors) + (ftsf_factor_fsat_exists_valuefactorsfactorization_primes))) /\ ((~(ftsf_factor_fsat_exists_valuefactorsfactorization_primes = 1) /\ forall frm_prime_left_ftsf_fsat_exists_valuefactorsfactorization_primes_prime frm_prime_right_ftsf_fsat_exists_valuefactorsfactorization_primes_prime. ftsf_factor_fsat_exists_valuefactorsfactorization_primes = frm_prime_left_ftsf_fsat_exists_valuefactorsfactorization_primes_prime * frm_prime_right_ftsf_fsat_exists_valuefactorsfactorization_primes_prime -> frm_prime_left_ftsf_fsat_exists_valuefactorsfactorization_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_exists_valuefactorsfactorization_primes_prime = 1))))))) /\ ((((exists mv_even_half_exists_valuefactorsparityeven. (mv_factor_count_exists_valuefactors) = 2 * mv_even_half_exists_valuefactorsparityeven) /\ ((z) = 2))) \/ (((exists mv_odd_half_exists_valuefactorsparityodd. (mv_factor_count_exists_valuefactors) = 2 * mv_odd_half_exists_valuefactorsparityodd + 1) /\ ((z) = 1)))))))))))Constructive proof overview
Generated structural guide
Finite prime-square search, actual prime factorization and parity construct the independently defined Möbius value for every positive natural.
The unchanged tactic script uses 5 declared prerequisites and contains 37 exact native proof lines.
Public research checkpoint: original HA and independently compiled Lean verified; not Alpha-enrolled, no Alpha checked-use authority; not Stable
Proof neighborhood
Direct dependencies
squarefree_or_prime_square_divisor Alpha theorem; checked-use authorized foundation_prime_factor_list_exists Alpha theorem; checked-use authorized MV0001 alternating_signed_unit_exists MV0008 mobius_from_squarefree_factor_count MV0007 mobius_from_prime_squareDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. The literal dependency-closed bundle is checked by original HA and the independently compiled Lean verifier. Public delivery grants no Alpha checked-use authority 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–2
02Establish hcaseL3–6
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply squarefree or prime square divisor.
- L3
have hcase : Squarefree(n) ∨ HasPrimeSquareDivisor(n)Definitions: SquarefreeHasPrimeSquareDivisor - L4
specialize squarefree_or_prime_square_divisor (n) - L5
apply squarefree_or_prime_square_divisor - L6
exact hn
03Separate the logical casesL7–7
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L7
cases hcase
04Establish hfL8–11
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply foundation prime factor list exists.
- L8
have hf : ∃ l. ∃ b. ∃ c. PrimeFactorList(n,b,c,l)Definitions: PrimeFactorList - L9
specialize foundation_prime_factor_list_exists (n) - L10
apply foundation_prime_factor_list_exists - L11
exact hn
05Separate the logical casesL12–14
06Establish hsL15–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply alternating signed unit exists.
- L15
have hs : exists z. ((((exists mv_even_half_exists_signeven. (x) = 2 * mv_even_half_exists_signeven) /\ ((z) = 2))) \/ (((exists mv_odd_half_exists_signodd. (x) = 2 * mv_odd_half_exists_signodd + 1) /\ ((z) = 1)))) - L16
specialize alternating_signed_unit_exists (x) - L17
apply alternating_signed_unit_exists
07Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
cases hs
08Construct an explicit witnessL19–19
Supply the displayed value, then prove that it has the required property.
- L19
exists x3
09Use earlier factsL20–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L20
specialize mobius_from_squarefree_factor_count (n) - L21
specialize mobius_from_squarefree_factor_count (x1) - L22
specialize mobius_from_squarefree_factor_count (x2) - L23
specialize mobius_from_squarefree_factor_count (x) - L24
specialize mobius_from_squarefree_factor_count (x3) - L25
apply mobius_from_squarefree_factor_count - L26
exact hcase_left - L27
exact hf_witness_witness_witness - L28
exact hs_witness
10Separate the logical casesL29–30
11Construct an explicit witnessL31–31
Supply the displayed value, then prove that it has the required property.
- L31
exists 0
12Use earlier factsL32–37
Original exact command ledger · 37 lines
- 0001
intro n - 0002
intro hn - 0003
have hcase : (((~((n) = 0)) /\ (forall sfd_prime_exists_decision. (~((sfd_prime_exists_decision) = 1) /\ forall pvs_left_exists_decisiondomain pvs_right_exists_decisiondomain. (sfd_prime_exists_decision) = pvs_left_exists_decisiondomain * pvs_right_exists_decisiondomain -> pvs_left_exists_decisiondomain = 1 \/ pvs_right_exists_decisiondomain = 1) -> (exists pvs_le_gap_exists_decisionbound. pvs_le_gap_exists_decisionbound + (sfd_prime_exists_decision) = (n)) -> ~(exists pvs_factor_exists_decisionsquare. (n) = (sfd_prime_exists_decision * sfd_prime_exists_decision) * pvs_factor_exists_decisionsquare)))) \/ exists p. (~((p) = 1) /\ forall pvs_left_exists_prime pvs_right_exists_prime. (p) = pvs_left_exists_prime * pvs_right_exists_prime -> pvs_left_exists_prime = 1 \/ pvs_right_exists_prime = 1) /\ (exists pvs_factor_exists_square. (n) = (p * p) * pvs_factor_exists_square) - 0004
specialize squarefree_or_prime_square_divisor (n) - 0005
apply squarefree_or_prime_square_divisor - 0006
exact hn - 0007
cases hcase - 0008
have hf : exists l b c. ((~(n = 0) /\ ((exists ff_u_fsat_mv_exists_factors_product ff_v_fsat_mv_exists_factors_product. ((((exists ff_h_fsat_mv_exists_factors_product_start. ff_h_fsat_mv_exists_factors_product_start + S (1) = S ((S (0)) * ff_v_fsat_mv_exists_factors_product)) /\ exists ff_q_fsat_mv_exists_factors_product_start. ff_u_fsat_mv_exists_factors_product = ff_q_fsat_mv_exists_factors_product_start * S ((S (0)) * ff_v_fsat_mv_exists_factors_product) + (1))) /\ ((((exists ff_h_fsat_mv_exists_factors_product_terminal. ff_h_fsat_mv_exists_factors_product_terminal + S (n) = S ((S (l)) * ff_v_fsat_mv_exists_factors_product)) /\ exists ff_q_fsat_mv_exists_factors_product_terminal. ff_u_fsat_mv_exists_factors_product = ff_q_fsat_mv_exists_factors_product_terminal * S ((S (l)) * ff_v_fsat_mv_exists_factors_product) + (n))) /\ forall ff_i_fsat_mv_exists_factors_product. (exists ff_lt_fsat_mv_exists_factors_product_bound. ff_lt_fsat_mv_exists_factors_product_bound + S ff_i_fsat_mv_exists_factors_product = l) -> exists ff_p_fsat_mv_exists_factors_product ff_r_fsat_mv_exists_factors_product ff_s_fsat_mv_exists_factors_product. ((((exists ff_h_fsat_mv_exists_factors_product_factor. ff_h_fsat_mv_exists_factors_product_factor + S (ff_p_fsat_mv_exists_factors_product) = S ((S (ff_i_fsat_mv_exists_factors_product)) * c)) /\ exists ff_q_fsat_mv_exists_factors_product_factor. b = ff_q_fsat_mv_exists_factors_product_factor * S ((S (ff_i_fsat_mv_exists_factors_product)) * c) + (ff_p_fsat_mv_exists_factors_product))) /\ ((((exists ff_h_fsat_mv_exists_factors_product_partial. ff_h_fsat_mv_exists_factors_product_partial + S (ff_r_fsat_mv_exists_factors_product) = S ((S (ff_i_fsat_mv_exists_factors_product)) * ff_v_fsat_mv_exists_factors_product)) /\ exists ff_q_fsat_mv_exists_factors_product_partial. ff_u_fsat_mv_exists_factors_product = ff_q_fsat_mv_exists_factors_product_partial * S ((S (ff_i_fsat_mv_exists_factors_product)) * ff_v_fsat_mv_exists_factors_product) + (ff_r_fsat_mv_exists_factors_product))) /\ ((((exists ff_h_fsat_mv_exists_factors_product_successor. ff_h_fsat_mv_exists_factors_product_successor + S (ff_s_fsat_mv_exists_factors_product) = S ((S (S ff_i_fsat_mv_exists_factors_product)) * ff_v_fsat_mv_exists_factors_product)) /\ exists ff_q_fsat_mv_exists_factors_product_successor. ff_u_fsat_mv_exists_factors_product = ff_q_fsat_mv_exists_factors_product_successor * S ((S (S ff_i_fsat_mv_exists_factors_product)) * ff_v_fsat_mv_exists_factors_product) + (ff_s_fsat_mv_exists_factors_product))) /\ ff_s_fsat_mv_exists_factors_product = ff_r_fsat_mv_exists_factors_product * ff_p_fsat_mv_exists_factors_product)))))) /\ (forall ftsf_index_fsat_mv_exists_factors_primes. (exists ftsf_gap_fsat_mv_exists_factors_primes_bound. ftsf_gap_fsat_mv_exists_factors_primes_bound + S ftsf_index_fsat_mv_exists_factors_primes = (l)) -> exists ftsf_factor_fsat_mv_exists_factors_primes. ((((exists ff_h_ftsf_fsat_mv_exists_factors_primes_entry. ff_h_ftsf_fsat_mv_exists_factors_primes_entry + S (ftsf_factor_fsat_mv_exists_factors_primes) = S ((S (ftsf_index_fsat_mv_exists_factors_primes)) * c)) /\ exists ff_q_ftsf_fsat_mv_exists_factors_primes_entry. b = ff_q_ftsf_fsat_mv_exists_factors_primes_entry * S ((S (ftsf_index_fsat_mv_exists_factors_primes)) * c) + (ftsf_factor_fsat_mv_exists_factors_primes))) /\ ((~(ftsf_factor_fsat_mv_exists_factors_primes = 1) /\ forall frm_prime_left_ftsf_fsat_mv_exists_factors_primes_prime frm_prime_right_ftsf_fsat_mv_exists_factors_primes_prime. ftsf_factor_fsat_mv_exists_factors_primes = frm_prime_left_ftsf_fsat_mv_exists_factors_primes_prime * frm_prime_right_ftsf_fsat_mv_exists_factors_primes_prime -> frm_prime_left_ftsf_fsat_mv_exists_factors_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_mv_exists_factors_primes_prime = 1))))))) - 0009
specialize foundation_prime_factor_list_exists (n) - 0010
apply foundation_prime_factor_list_exists - 0011
exact hn - 0012
cases hf - 0013
cases hf_witness - 0014
cases hf_witness_witness - 0015
have hs : exists z. ((((exists mv_even_half_exists_signeven. (x) = 2 * mv_even_half_exists_signeven) /\ ((z) = 2))) \/ (((exists mv_odd_half_exists_signodd. (x) = 2 * mv_odd_half_exists_signodd + 1) /\ ((z) = 1)))) - 0016
specialize alternating_signed_unit_exists (x) - 0017
apply alternating_signed_unit_exists - 0018
cases hs - 0019
exists x3 - 0020
specialize mobius_from_squarefree_factor_count (n) - 0021
specialize mobius_from_squarefree_factor_count (x1) - 0022
specialize mobius_from_squarefree_factor_count (x2) - 0023
specialize mobius_from_squarefree_factor_count (x) - 0024
specialize mobius_from_squarefree_factor_count (x3) - 0025
apply mobius_from_squarefree_factor_count - 0026
exact hcase_left - 0027
exact hf_witness_witness_witness - 0028
exact hs_witness - 0029
cases hcase_right - 0030
cases hcase_right_witness - 0031
exists 0 - 0032
specialize mobius_from_prime_square (n) - 0033
specialize mobius_from_prime_square (x) - 0034
apply mobius_from_prime_square - 0035
exact hn - 0036
exact hcase_right_witness_left - 0037
exact hcase_right_witness_right