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 n a b. (((~((n) = 0)) /\ ((((exists mv_square_prime_functional_firstsquare. ((~((mv_square_prime_functional_firstsquare) = 1) /\ forall pvs_left_functional_firstsquareprime pvs_right_functional_firstsquareprime. (mv_square_prime_functional_firstsquare) = pvs_left_functional_firstsquareprime * pvs_right_functional_firstsquareprime -> pvs_left_functional_firstsquareprime = 1 \/ pvs_right_functional_firstsquareprime = 1) /\ (exists pvs_factor_functional_firstsquaredivisor. (n) = (mv_square_prime_functional_firstsquare * mv_square_prime_functional_firstsquare) * pvs_factor_functional_firstsquaredivisor))) /\ ((a) = 0))) \/ (((((~((n) = 0)) /\ (forall sfd_prime_functional_firstsquarefree. (~((sfd_prime_functional_firstsquarefree) = 1) /\ forall pvs_left_functional_firstsquarefreedomain pvs_right_functional_firstsquarefreedomain. (sfd_prime_functional_firstsquarefree) = pvs_left_functional_firstsquarefreedomain * pvs_right_functional_firstsquarefreedomain -> pvs_left_functional_firstsquarefreedomain = 1 \/ pvs_right_functional_firstsquarefreedomain = 1) -> (exists pvs_le_gap_functional_firstsquarefreebound. pvs_le_gap_functional_firstsquarefreebound + (sfd_prime_functional_firstsquarefree) = (n)) -> ~(exists pvs_factor_functional_firstsquarefreesquare. (n) = (sfd_prime_functional_firstsquarefree * sfd_prime_functional_firstsquarefree) * pvs_factor_functional_firstsquarefreesquare)))) /\ (exists mv_factor_code_functional_firstfactors mv_factor_scale_functional_firstfactors mv_factor_count_functional_firstfactors. (((~(n = 0) /\ ((exists ff_u_fsat_functional_firstfactorsfactorization_product ff_v_fsat_functional_firstfactorsfactorization_product. ((((exists ff_h_fsat_functional_firstfactorsfactorization_product_start. ff_h_fsat_functional_firstfactorsfactorization_product_start + S (1) = S ((S (0)) * ff_v_fsat_functional_firstfactorsfactorization_product)) /\ exists ff_q_fsat_functional_firstfactorsfactorization_product_start. ff_u_fsat_functional_firstfactorsfactorization_product = ff_q_fsat_functional_firstfactorsfactorization_product_start * S ((S (0)) * ff_v_fsat_functional_firstfactorsfactorization_product) + (1))) /\ ((((exists ff_h_fsat_functional_firstfactorsfactorization_product_terminal. ff_h_fsat_functional_firstfactorsfactorization_product_terminal + S (n) = S ((S (mv_factor_count_functional_firstfactors)) * ff_v_fsat_functional_firstfactorsfactorization_product)) /\ exists ff_q_fsat_functional_firstfactorsfactorization_product_terminal. ff_u_fsat_functional_firstfactorsfactorization_product = ff_q_fsat_functional_firstfactorsfactorization_product_terminal * S ((S (mv_factor_count_functional_firstfactors)) * ff_v_fsat_functional_firstfactorsfactorization_product) + (n))) /\ forall ff_i_fsat_functional_firstfactorsfactorization_product. (exists ff_lt_fsat_functional_firstfactorsfactorization_product_bound. ff_lt_fsat_functional_firstfactorsfactorization_product_bound + S ff_i_fsat_functional_firstfactorsfactorization_product = mv_factor_count_functional_firstfactors) -> exists ff_p_fsat_functional_firstfactorsfactorization_product ff_r_fsat_functional_firstfactorsfactorization_product ff_s_fsat_functional_firstfactorsfactorization_product. ((((exists ff_h_fsat_functional_firstfactorsfactorization_product_factor. ff_h_fsat_functional_firstfactorsfactorization_product_factor + S (ff_p_fsat_functional_firstfactorsfactorization_product) = S ((S (ff_i_fsat_functional_firstfactorsfactorization_product)) * mv_factor_scale_functional_firstfactors)) /\ exists ff_q_fsat_functional_firstfactorsfactorization_product_factor. mv_factor_code_functional_firstfactors = ff_q_fsat_functional_firstfactorsfactorization_product_factor * S ((S (ff_i_fsat_functional_firstfactorsfactorization_product)) * mv_factor_scale_functional_firstfactors) + (ff_p_fsat_functional_firstfactorsfactorization_product))) /\ ((((exists ff_h_fsat_functional_firstfactorsfactorization_product_partial. ff_h_fsat_functional_firstfactorsfactorization_product_partial + S (ff_r_fsat_functional_firstfactorsfactorization_product) = S ((S (ff_i_fsat_functional_firstfactorsfactorization_product)) * ff_v_fsat_functional_firstfactorsfactorization_product)) /\ exists ff_q_fsat_functional_firstfactorsfactorization_product_partial. ff_u_fsat_functional_firstfactorsfactorization_product = ff_q_fsat_functional_firstfactorsfactorization_product_partial * S ((S (ff_i_fsat_functional_firstfactorsfactorization_product)) * ff_v_fsat_functional_firstfactorsfactorization_product) + (ff_r_fsat_functional_firstfactorsfactorization_product))) /\ ((((exists ff_h_fsat_functional_firstfactorsfactorization_product_successor. ff_h_fsat_functional_firstfactorsfactorization_product_successor + S (ff_s_fsat_functional_firstfactorsfactorization_product) = S ((S (S ff_i_fsat_functional_firstfactorsfactorization_product)) * ff_v_fsat_functional_firstfactorsfactorization_product)) /\ exists ff_q_fsat_functional_firstfactorsfactorization_product_successor. ff_u_fsat_functional_firstfactorsfactorization_product = ff_q_fsat_functional_firstfactorsfactorization_product_successor * S ((S (S ff_i_fsat_functional_firstfactorsfactorization_product)) * ff_v_fsat_functional_firstfactorsfactorization_product) + (ff_s_fsat_functional_firstfactorsfactorization_product))) /\ ff_s_fsat_functional_firstfactorsfactorization_product = ff_r_fsat_functional_firstfactorsfactorization_product * ff_p_fsat_functional_firstfactorsfactorization_product)))))) /\ (forall ftsf_index_fsat_functional_firstfactorsfactorization_primes. (exists ftsf_gap_fsat_functional_firstfactorsfactorization_primes_bound. ftsf_gap_fsat_functional_firstfactorsfactorization_primes_bound + S ftsf_index_fsat_functional_firstfactorsfactorization_primes = (mv_factor_count_functional_firstfactors)) -> exists ftsf_factor_fsat_functional_firstfactorsfactorization_primes. ((((exists ff_h_ftsf_fsat_functional_firstfactorsfactorization_primes_entry. ff_h_ftsf_fsat_functional_firstfactorsfactorization_primes_entry + S (ftsf_factor_fsat_functional_firstfactorsfactorization_primes) = S ((S (ftsf_index_fsat_functional_firstfactorsfactorization_primes)) * mv_factor_scale_functional_firstfactors)) /\ exists ff_q_ftsf_fsat_functional_firstfactorsfactorization_primes_entry. mv_factor_code_functional_firstfactors = ff_q_ftsf_fsat_functional_firstfactorsfactorization_primes_entry * S ((S (ftsf_index_fsat_functional_firstfactorsfactorization_primes)) * mv_factor_scale_functional_firstfactors) + (ftsf_factor_fsat_functional_firstfactorsfactorization_primes))) /\ ((~(ftsf_factor_fsat_functional_firstfactorsfactorization_primes = 1) /\ forall frm_prime_left_ftsf_fsat_functional_firstfactorsfactorization_primes_prime frm_prime_right_ftsf_fsat_functional_firstfactorsfactorization_primes_prime. ftsf_factor_fsat_functional_firstfactorsfactorization_primes = frm_prime_left_ftsf_fsat_functional_firstfactorsfactorization_primes_prime * frm_prime_right_ftsf_fsat_functional_firstfactorsfactorization_primes_prime -> frm_prime_left_ftsf_fsat_functional_firstfactorsfactorization_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_functional_firstfactorsfactorization_primes_prime = 1))))))) /\ ((((exists mv_even_half_functional_firstfactorsparityeven. (mv_factor_count_functional_firstfactors) = 2 * mv_even_half_functional_firstfactorsparityeven) /\ ((a) = 2))) \/ (((exists mv_odd_half_functional_firstfactorsparityodd. (mv_factor_count_functional_firstfactors) = 2 * mv_odd_half_functional_firstfactorsparityodd + 1) /\ ((a) = 1))))))))))) -> (((~((n) = 0)) /\ ((((exists mv_square_prime_functional_secondsquare. ((~((mv_square_prime_functional_secondsquare) = 1) /\ forall pvs_left_functional_secondsquareprime pvs_right_functional_secondsquareprime. (mv_square_prime_functional_secondsquare) = pvs_left_functional_secondsquareprime * pvs_right_functional_secondsquareprime -> pvs_left_functional_secondsquareprime = 1 \/ pvs_right_functional_secondsquareprime = 1) /\ (exists pvs_factor_functional_secondsquaredivisor. (n) = (mv_square_prime_functional_secondsquare * mv_square_prime_functional_secondsquare) * pvs_factor_functional_secondsquaredivisor))) /\ ((b) = 0))) \/ (((((~((n) = 0)) /\ (forall sfd_prime_functional_secondsquarefree. (~((sfd_prime_functional_secondsquarefree) = 1) /\ forall pvs_left_functional_secondsquarefreedomain pvs_right_functional_secondsquarefreedomain. (sfd_prime_functional_secondsquarefree) = pvs_left_functional_secondsquarefreedomain * pvs_right_functional_secondsquarefreedomain -> pvs_left_functional_secondsquarefreedomain = 1 \/ pvs_right_functional_secondsquarefreedomain = 1) -> (exists pvs_le_gap_functional_secondsquarefreebound. pvs_le_gap_functional_secondsquarefreebound + (sfd_prime_functional_secondsquarefree) = (n)) -> ~(exists pvs_factor_functional_secondsquarefreesquare. (n) = (sfd_prime_functional_secondsquarefree * sfd_prime_functional_secondsquarefree) * pvs_factor_functional_secondsquarefreesquare)))) /\ (exists mv_factor_code_functional_secondfactors mv_factor_scale_functional_secondfactors mv_factor_count_functional_secondfactors. (((~(n = 0) /\ ((exists ff_u_fsat_functional_secondfactorsfactorization_product ff_v_fsat_functional_secondfactorsfactorization_product. ((((exists ff_h_fsat_functional_secondfactorsfactorization_product_start. ff_h_fsat_functional_secondfactorsfactorization_product_start + S (1) = S ((S (0)) * ff_v_fsat_functional_secondfactorsfactorization_product)) /\ exists ff_q_fsat_functional_secondfactorsfactorization_product_start. ff_u_fsat_functional_secondfactorsfactorization_product = ff_q_fsat_functional_secondfactorsfactorization_product_start * S ((S (0)) * ff_v_fsat_functional_secondfactorsfactorization_product) + (1))) /\ ((((exists ff_h_fsat_functional_secondfactorsfactorization_product_terminal. ff_h_fsat_functional_secondfactorsfactorization_product_terminal + S (n) = S ((S (mv_factor_count_functional_secondfactors)) * ff_v_fsat_functional_secondfactorsfactorization_product)) /\ exists ff_q_fsat_functional_secondfactorsfactorization_product_terminal. ff_u_fsat_functional_secondfactorsfactorization_product = ff_q_fsat_functional_secondfactorsfactorization_product_terminal * S ((S (mv_factor_count_functional_secondfactors)) * ff_v_fsat_functional_secondfactorsfactorization_product) + (n))) /\ forall ff_i_fsat_functional_secondfactorsfactorization_product. (exists ff_lt_fsat_functional_secondfactorsfactorization_product_bound. ff_lt_fsat_functional_secondfactorsfactorization_product_bound + S ff_i_fsat_functional_secondfactorsfactorization_product = mv_factor_count_functional_secondfactors) -> exists ff_p_fsat_functional_secondfactorsfactorization_product ff_r_fsat_functional_secondfactorsfactorization_product ff_s_fsat_functional_secondfactorsfactorization_product. ((((exists ff_h_fsat_functional_secondfactorsfactorization_product_factor. ff_h_fsat_functional_secondfactorsfactorization_product_factor + S (ff_p_fsat_functional_secondfactorsfactorization_product) = S ((S (ff_i_fsat_functional_secondfactorsfactorization_product)) * mv_factor_scale_functional_secondfactors)) /\ exists ff_q_fsat_functional_secondfactorsfactorization_product_factor. mv_factor_code_functional_secondfactors = ff_q_fsat_functional_secondfactorsfactorization_product_factor * S ((S (ff_i_fsat_functional_secondfactorsfactorization_product)) * mv_factor_scale_functional_secondfactors) + (ff_p_fsat_functional_secondfactorsfactorization_product))) /\ ((((exists ff_h_fsat_functional_secondfactorsfactorization_product_partial. ff_h_fsat_functional_secondfactorsfactorization_product_partial + S (ff_r_fsat_functional_secondfactorsfactorization_product) = S ((S (ff_i_fsat_functional_secondfactorsfactorization_product)) * ff_v_fsat_functional_secondfactorsfactorization_product)) /\ exists ff_q_fsat_functional_secondfactorsfactorization_product_partial. ff_u_fsat_functional_secondfactorsfactorization_product = ff_q_fsat_functional_secondfactorsfactorization_product_partial * S ((S (ff_i_fsat_functional_secondfactorsfactorization_product)) * ff_v_fsat_functional_secondfactorsfactorization_product) + (ff_r_fsat_functional_secondfactorsfactorization_product))) /\ ((((exists ff_h_fsat_functional_secondfactorsfactorization_product_successor. ff_h_fsat_functional_secondfactorsfactorization_product_successor + S (ff_s_fsat_functional_secondfactorsfactorization_product) = S ((S (S ff_i_fsat_functional_secondfactorsfactorization_product)) * ff_v_fsat_functional_secondfactorsfactorization_product)) /\ exists ff_q_fsat_functional_secondfactorsfactorization_product_successor. ff_u_fsat_functional_secondfactorsfactorization_product = ff_q_fsat_functional_secondfactorsfactorization_product_successor * S ((S (S ff_i_fsat_functional_secondfactorsfactorization_product)) * ff_v_fsat_functional_secondfactorsfactorization_product) + (ff_s_fsat_functional_secondfactorsfactorization_product))) /\ ff_s_fsat_functional_secondfactorsfactorization_product = ff_r_fsat_functional_secondfactorsfactorization_product * ff_p_fsat_functional_secondfactorsfactorization_product)))))) /\ (forall ftsf_index_fsat_functional_secondfactorsfactorization_primes. (exists ftsf_gap_fsat_functional_secondfactorsfactorization_primes_bound. ftsf_gap_fsat_functional_secondfactorsfactorization_primes_bound + S ftsf_index_fsat_functional_secondfactorsfactorization_primes = (mv_factor_count_functional_secondfactors)) -> exists ftsf_factor_fsat_functional_secondfactorsfactorization_primes. ((((exists ff_h_ftsf_fsat_functional_secondfactorsfactorization_primes_entry. ff_h_ftsf_fsat_functional_secondfactorsfactorization_primes_entry + S (ftsf_factor_fsat_functional_secondfactorsfactorization_primes) = S ((S (ftsf_index_fsat_functional_secondfactorsfactorization_primes)) * mv_factor_scale_functional_secondfactors)) /\ exists ff_q_ftsf_fsat_functional_secondfactorsfactorization_primes_entry. mv_factor_code_functional_secondfactors = ff_q_ftsf_fsat_functional_secondfactorsfactorization_primes_entry * S ((S (ftsf_index_fsat_functional_secondfactorsfactorization_primes)) * mv_factor_scale_functional_secondfactors) + (ftsf_factor_fsat_functional_secondfactorsfactorization_primes))) /\ ((~(ftsf_factor_fsat_functional_secondfactorsfactorization_primes = 1) /\ forall frm_prime_left_ftsf_fsat_functional_secondfactorsfactorization_primes_prime frm_prime_right_ftsf_fsat_functional_secondfactorsfactorization_primes_prime. ftsf_factor_fsat_functional_secondfactorsfactorization_primes = frm_prime_left_ftsf_fsat_functional_secondfactorsfactorization_primes_prime * frm_prime_right_ftsf_fsat_functional_secondfactorsfactorization_primes_prime -> frm_prime_left_ftsf_fsat_functional_secondfactorsfactorization_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_functional_secondfactorsfactorization_primes_prime = 1))))))) /\ ((((exists mv_even_half_functional_secondfactorsparityeven. (mv_factor_count_functional_secondfactors) = 2 * mv_even_half_functional_secondfactorsparityeven) /\ ((b) = 2))) \/ (((exists mv_odd_half_functional_secondfactorsparityodd. (mv_factor_count_functional_secondfactors) = 2 * mv_odd_half_functional_secondfactorsparityodd + 1) /\ ((b) = 1))))))))))) -> a = bConstructive proof overview
Generated structural guide
Möbius values have literally unique canonical signed codes; square-divisor and squarefree branches are disjoint by proof.
The unchanged tactic script uses 3 declared prerequisites and contains 46 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
squarefree_excludes_prime_square Alpha theorem; checked-use authorized MV000A mobius_squarefree_evaluation MV0002 alternating_signed_unit_functionalDirect 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 (2)
01Fix variables and assumptionsL1–5
02Separate the logical casesL6–11
03Calculate and transport equalitiesL12–12
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L12
trans 0
04Use earlier factsL13–13
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L13
exact ha_right_left_right
05Calculate and transport equalitiesL14–14
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L14
symm
06Use earlier factsL15–15
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L15
exact hb_right_left_right
07Separate the logical casesL16–19
08Use earlier factsL20–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
09Separate the logical casesL26–30
10Establish hsL31–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mobius squarefree evaluation.
- L31
have hs : (((exists mv_even_half_functional_other_signeven. (x2) = 2 * mv_even_half_functional_other_signeven) /\ ((b) = 2))) \/ (((exists mv_odd_half_functional_other_signodd. (x2) = 2 * mv_odd_half_functional_other_signodd + 1) /\ ((b) = 1))) - L32
specialize mobius_squarefree_evaluation (n) - L33
specialize mobius_squarefree_evaluation (x) - L34
specialize mobius_squarefree_evaluation (x1) - L35
specialize mobius_squarefree_evaluation (x2) - L36
specialize mobius_squarefree_evaluation (b) - L37
apply mobius_squarefree_evaluation - L38
exact ha_right_right_left - L39
exact ha_right_right_right_witness_witness_witness_left - L40
exact hb
11Use earlier factsL41–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 46 lines
- 0001
intro n - 0002
intro a - 0003
intro b - 0004
intro ha - 0005
intro hb - 0006
cases ha - 0007
cases ha_right - 0008
cases ha_right_left - 0009
cases hb - 0010
cases hb_right - 0011
cases hb_right_left - 0012
trans 0 - 0013
exact ha_right_left_right - 0014
symm - 0015
exact hb_right_left_right - 0016
cases hb_right_right - 0017
cases ha_right_left_left - 0018
cases ha_right_left_left_witness - 0019
exfalso - 0020
specialize squarefree_excludes_prime_square (n) - 0021
specialize squarefree_excludes_prime_square (x) - 0022
apply squarefree_excludes_prime_square - 0023
exact hb_right_right_left - 0024
exact ha_right_left_left_witness_left - 0025
exact ha_right_left_left_witness_right - 0026
cases ha_right_right - 0027
cases ha_right_right_right - 0028
cases ha_right_right_right_witness - 0029
cases ha_right_right_right_witness_witness - 0030
cases ha_right_right_right_witness_witness_witness - 0031
have hs : (((exists mv_even_half_functional_other_signeven. (x2) = 2 * mv_even_half_functional_other_signeven) /\ ((b) = 2))) \/ (((exists mv_odd_half_functional_other_signodd. (x2) = 2 * mv_odd_half_functional_other_signodd + 1) /\ ((b) = 1))) - 0032
specialize mobius_squarefree_evaluation (n) - 0033
specialize mobius_squarefree_evaluation (x) - 0034
specialize mobius_squarefree_evaluation (x1) - 0035
specialize mobius_squarefree_evaluation (x2) - 0036
specialize mobius_squarefree_evaluation (b) - 0037
apply mobius_squarefree_evaluation - 0038
exact ha_right_right_left - 0039
exact ha_right_right_right_witness_witness_witness_left - 0040
exact hb - 0041
specialize alternating_signed_unit_functional (x2) - 0042
specialize alternating_signed_unit_functional (a) - 0043
specialize alternating_signed_unit_functional (b) - 0044
apply alternating_signed_unit_functional - 0045
exact ha_right_right_right_witness_witness_witness_right - 0046
exact hs