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 d e a b. (~((p) = 1) /\ forall pvs_left_value_prime pvs_right_value_prime. (p) = pvs_left_value_prime * pvs_right_value_prime -> pvs_left_value_prime = 1 \/ pvs_right_value_prime = 1) -> ((((~(exists pvs_factor_value_togglefresh_input. (d) = (p) * pvs_factor_value_togglefresh_input)) /\ ((e)=(p)*(d)))) \/ (((((d)=(p)*(e)) /\ (~(exists pvs_factor_value_togglefresh_output. (e) = (p) * pvs_factor_value_togglefresh_output)))) \/ (((exists pvs_factor_value_togglesquare. (d) = ((p)*(p)) * pvs_factor_value_togglesquare) /\ ((e)=(d)))))) -> (((~((d) = 0)) /\ ((((exists mv_square_prime_value_sourcesquare. ((~((mv_square_prime_value_sourcesquare) = 1) /\ forall pvs_left_value_sourcesquareprime pvs_right_value_sourcesquareprime. (mv_square_prime_value_sourcesquare) = pvs_left_value_sourcesquareprime * pvs_right_value_sourcesquareprime -> pvs_left_value_sourcesquareprime = 1 \/ pvs_right_value_sourcesquareprime = 1) /\ (exists pvs_factor_value_sourcesquaredivisor. (d) = (mv_square_prime_value_sourcesquare * mv_square_prime_value_sourcesquare) * pvs_factor_value_sourcesquaredivisor))) /\ ((a) = 0))) \/ (((((~((d) = 0)) /\ (forall sfd_prime_value_sourcesquarefree. (~((sfd_prime_value_sourcesquarefree) = 1) /\ forall pvs_left_value_sourcesquarefreedomain pvs_right_value_sourcesquarefreedomain. (sfd_prime_value_sourcesquarefree) = pvs_left_value_sourcesquarefreedomain * pvs_right_value_sourcesquarefreedomain -> pvs_left_value_sourcesquarefreedomain = 1 \/ pvs_right_value_sourcesquarefreedomain = 1) -> (exists pvs_le_gap_value_sourcesquarefreebound. pvs_le_gap_value_sourcesquarefreebound + (sfd_prime_value_sourcesquarefree) = (d)) -> ~(exists pvs_factor_value_sourcesquarefreesquare. (d) = (sfd_prime_value_sourcesquarefree * sfd_prime_value_sourcesquarefree) * pvs_factor_value_sourcesquarefreesquare)))) /\ (exists mv_factor_code_value_sourcefactors mv_factor_scale_value_sourcefactors mv_factor_count_value_sourcefactors. (((~(d = 0) /\ ((exists ff_u_fsat_value_sourcefactorsfactorization_product ff_v_fsat_value_sourcefactorsfactorization_product. ((((exists ff_h_fsat_value_sourcefactorsfactorization_product_start. ff_h_fsat_value_sourcefactorsfactorization_product_start + S (1) = S ((S (0)) * ff_v_fsat_value_sourcefactorsfactorization_product)) /\ exists ff_q_fsat_value_sourcefactorsfactorization_product_start. ff_u_fsat_value_sourcefactorsfactorization_product = ff_q_fsat_value_sourcefactorsfactorization_product_start * S ((S (0)) * ff_v_fsat_value_sourcefactorsfactorization_product) + (1))) /\ ((((exists ff_h_fsat_value_sourcefactorsfactorization_product_terminal. ff_h_fsat_value_sourcefactorsfactorization_product_terminal + S (d) = S ((S (mv_factor_count_value_sourcefactors)) * ff_v_fsat_value_sourcefactorsfactorization_product)) /\ exists ff_q_fsat_value_sourcefactorsfactorization_product_terminal. ff_u_fsat_value_sourcefactorsfactorization_product = ff_q_fsat_value_sourcefactorsfactorization_product_terminal * S ((S (mv_factor_count_value_sourcefactors)) * ff_v_fsat_value_sourcefactorsfactorization_product) + (d))) /\ forall ff_i_fsat_value_sourcefactorsfactorization_product. (exists ff_lt_fsat_value_sourcefactorsfactorization_product_bound. ff_lt_fsat_value_sourcefactorsfactorization_product_bound + S ff_i_fsat_value_sourcefactorsfactorization_product = mv_factor_count_value_sourcefactors) -> exists ff_p_fsat_value_sourcefactorsfactorization_product ff_r_fsat_value_sourcefactorsfactorization_product ff_s_fsat_value_sourcefactorsfactorization_product. ((((exists ff_h_fsat_value_sourcefactorsfactorization_product_factor. ff_h_fsat_value_sourcefactorsfactorization_product_factor + S (ff_p_fsat_value_sourcefactorsfactorization_product) = S ((S (ff_i_fsat_value_sourcefactorsfactorization_product)) * mv_factor_scale_value_sourcefactors)) /\ exists ff_q_fsat_value_sourcefactorsfactorization_product_factor. mv_factor_code_value_sourcefactors = ff_q_fsat_value_sourcefactorsfactorization_product_factor * S ((S (ff_i_fsat_value_sourcefactorsfactorization_product)) * mv_factor_scale_value_sourcefactors) + (ff_p_fsat_value_sourcefactorsfactorization_product))) /\ ((((exists ff_h_fsat_value_sourcefactorsfactorization_product_partial. ff_h_fsat_value_sourcefactorsfactorization_product_partial + S (ff_r_fsat_value_sourcefactorsfactorization_product) = S ((S (ff_i_fsat_value_sourcefactorsfactorization_product)) * ff_v_fsat_value_sourcefactorsfactorization_product)) /\ exists ff_q_fsat_value_sourcefactorsfactorization_product_partial. ff_u_fsat_value_sourcefactorsfactorization_product = ff_q_fsat_value_sourcefactorsfactorization_product_partial * S ((S (ff_i_fsat_value_sourcefactorsfactorization_product)) * ff_v_fsat_value_sourcefactorsfactorization_product) + (ff_r_fsat_value_sourcefactorsfactorization_product))) /\ ((((exists ff_h_fsat_value_sourcefactorsfactorization_product_successor. ff_h_fsat_value_sourcefactorsfactorization_product_successor + S (ff_s_fsat_value_sourcefactorsfactorization_product) = S ((S (S ff_i_fsat_value_sourcefactorsfactorization_product)) * ff_v_fsat_value_sourcefactorsfactorization_product)) /\ exists ff_q_fsat_value_sourcefactorsfactorization_product_successor. ff_u_fsat_value_sourcefactorsfactorization_product = ff_q_fsat_value_sourcefactorsfactorization_product_successor * S ((S (S ff_i_fsat_value_sourcefactorsfactorization_product)) * ff_v_fsat_value_sourcefactorsfactorization_product) + (ff_s_fsat_value_sourcefactorsfactorization_product))) /\ ff_s_fsat_value_sourcefactorsfactorization_product = ff_r_fsat_value_sourcefactorsfactorization_product * ff_p_fsat_value_sourcefactorsfactorization_product)))))) /\ (forall ftsf_index_fsat_value_sourcefactorsfactorization_primes. (exists ftsf_gap_fsat_value_sourcefactorsfactorization_primes_bound. ftsf_gap_fsat_value_sourcefactorsfactorization_primes_bound + S ftsf_index_fsat_value_sourcefactorsfactorization_primes = (mv_factor_count_value_sourcefactors)) -> exists ftsf_factor_fsat_value_sourcefactorsfactorization_primes. ((((exists ff_h_ftsf_fsat_value_sourcefactorsfactorization_primes_entry. ff_h_ftsf_fsat_value_sourcefactorsfactorization_primes_entry + S (ftsf_factor_fsat_value_sourcefactorsfactorization_primes) = S ((S (ftsf_index_fsat_value_sourcefactorsfactorization_primes)) * mv_factor_scale_value_sourcefactors)) /\ exists ff_q_ftsf_fsat_value_sourcefactorsfactorization_primes_entry. mv_factor_code_value_sourcefactors = ff_q_ftsf_fsat_value_sourcefactorsfactorization_primes_entry * S ((S (ftsf_index_fsat_value_sourcefactorsfactorization_primes)) * mv_factor_scale_value_sourcefactors) + (ftsf_factor_fsat_value_sourcefactorsfactorization_primes))) /\ ((~(ftsf_factor_fsat_value_sourcefactorsfactorization_primes = 1) /\ forall frm_prime_left_ftsf_fsat_value_sourcefactorsfactorization_primes_prime frm_prime_right_ftsf_fsat_value_sourcefactorsfactorization_primes_prime. ftsf_factor_fsat_value_sourcefactorsfactorization_primes = frm_prime_left_ftsf_fsat_value_sourcefactorsfactorization_primes_prime * frm_prime_right_ftsf_fsat_value_sourcefactorsfactorization_primes_prime -> frm_prime_left_ftsf_fsat_value_sourcefactorsfactorization_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_value_sourcefactorsfactorization_primes_prime = 1))))))) /\ ((((exists mv_even_half_value_sourcefactorsparityeven. (mv_factor_count_value_sourcefactors) = 2 * mv_even_half_value_sourcefactorsparityeven) /\ ((a) = 2))) \/ (((exists mv_odd_half_value_sourcefactorsparityodd. (mv_factor_count_value_sourcefactors) = 2 * mv_odd_half_value_sourcefactorsparityodd + 1) /\ ((a) = 1))))))))))) -> (((~((e) = 0)) /\ ((((exists mv_square_prime_value_targetsquare. ((~((mv_square_prime_value_targetsquare) = 1) /\ forall pvs_left_value_targetsquareprime pvs_right_value_targetsquareprime. (mv_square_prime_value_targetsquare) = pvs_left_value_targetsquareprime * pvs_right_value_targetsquareprime -> pvs_left_value_targetsquareprime = 1 \/ pvs_right_value_targetsquareprime = 1) /\ (exists pvs_factor_value_targetsquaredivisor. (e) = (mv_square_prime_value_targetsquare * mv_square_prime_value_targetsquare) * pvs_factor_value_targetsquaredivisor))) /\ ((b) = 0))) \/ (((((~((e) = 0)) /\ (forall sfd_prime_value_targetsquarefree. (~((sfd_prime_value_targetsquarefree) = 1) /\ forall pvs_left_value_targetsquarefreedomain pvs_right_value_targetsquarefreedomain. (sfd_prime_value_targetsquarefree) = pvs_left_value_targetsquarefreedomain * pvs_right_value_targetsquarefreedomain -> pvs_left_value_targetsquarefreedomain = 1 \/ pvs_right_value_targetsquarefreedomain = 1) -> (exists pvs_le_gap_value_targetsquarefreebound. pvs_le_gap_value_targetsquarefreebound + (sfd_prime_value_targetsquarefree) = (e)) -> ~(exists pvs_factor_value_targetsquarefreesquare. (e) = (sfd_prime_value_targetsquarefree * sfd_prime_value_targetsquarefree) * pvs_factor_value_targetsquarefreesquare)))) /\ (exists mv_factor_code_value_targetfactors mv_factor_scale_value_targetfactors mv_factor_count_value_targetfactors. (((~(e = 0) /\ ((exists ff_u_fsat_value_targetfactorsfactorization_product ff_v_fsat_value_targetfactorsfactorization_product. ((((exists ff_h_fsat_value_targetfactorsfactorization_product_start. ff_h_fsat_value_targetfactorsfactorization_product_start + S (1) = S ((S (0)) * ff_v_fsat_value_targetfactorsfactorization_product)) /\ exists ff_q_fsat_value_targetfactorsfactorization_product_start. ff_u_fsat_value_targetfactorsfactorization_product = ff_q_fsat_value_targetfactorsfactorization_product_start * S ((S (0)) * ff_v_fsat_value_targetfactorsfactorization_product) + (1))) /\ ((((exists ff_h_fsat_value_targetfactorsfactorization_product_terminal. ff_h_fsat_value_targetfactorsfactorization_product_terminal + S (e) = S ((S (mv_factor_count_value_targetfactors)) * ff_v_fsat_value_targetfactorsfactorization_product)) /\ exists ff_q_fsat_value_targetfactorsfactorization_product_terminal. ff_u_fsat_value_targetfactorsfactorization_product = ff_q_fsat_value_targetfactorsfactorization_product_terminal * S ((S (mv_factor_count_value_targetfactors)) * ff_v_fsat_value_targetfactorsfactorization_product) + (e))) /\ forall ff_i_fsat_value_targetfactorsfactorization_product. (exists ff_lt_fsat_value_targetfactorsfactorization_product_bound. ff_lt_fsat_value_targetfactorsfactorization_product_bound + S ff_i_fsat_value_targetfactorsfactorization_product = mv_factor_count_value_targetfactors) -> exists ff_p_fsat_value_targetfactorsfactorization_product ff_r_fsat_value_targetfactorsfactorization_product ff_s_fsat_value_targetfactorsfactorization_product. ((((exists ff_h_fsat_value_targetfactorsfactorization_product_factor. ff_h_fsat_value_targetfactorsfactorization_product_factor + S (ff_p_fsat_value_targetfactorsfactorization_product) = S ((S (ff_i_fsat_value_targetfactorsfactorization_product)) * mv_factor_scale_value_targetfactors)) /\ exists ff_q_fsat_value_targetfactorsfactorization_product_factor. mv_factor_code_value_targetfactors = ff_q_fsat_value_targetfactorsfactorization_product_factor * S ((S (ff_i_fsat_value_targetfactorsfactorization_product)) * mv_factor_scale_value_targetfactors) + (ff_p_fsat_value_targetfactorsfactorization_product))) /\ ((((exists ff_h_fsat_value_targetfactorsfactorization_product_partial. ff_h_fsat_value_targetfactorsfactorization_product_partial + S (ff_r_fsat_value_targetfactorsfactorization_product) = S ((S (ff_i_fsat_value_targetfactorsfactorization_product)) * ff_v_fsat_value_targetfactorsfactorization_product)) /\ exists ff_q_fsat_value_targetfactorsfactorization_product_partial. ff_u_fsat_value_targetfactorsfactorization_product = ff_q_fsat_value_targetfactorsfactorization_product_partial * S ((S (ff_i_fsat_value_targetfactorsfactorization_product)) * ff_v_fsat_value_targetfactorsfactorization_product) + (ff_r_fsat_value_targetfactorsfactorization_product))) /\ ((((exists ff_h_fsat_value_targetfactorsfactorization_product_successor. ff_h_fsat_value_targetfactorsfactorization_product_successor + S (ff_s_fsat_value_targetfactorsfactorization_product) = S ((S (S ff_i_fsat_value_targetfactorsfactorization_product)) * ff_v_fsat_value_targetfactorsfactorization_product)) /\ exists ff_q_fsat_value_targetfactorsfactorization_product_successor. ff_u_fsat_value_targetfactorsfactorization_product = ff_q_fsat_value_targetfactorsfactorization_product_successor * S ((S (S ff_i_fsat_value_targetfactorsfactorization_product)) * ff_v_fsat_value_targetfactorsfactorization_product) + (ff_s_fsat_value_targetfactorsfactorization_product))) /\ ff_s_fsat_value_targetfactorsfactorization_product = ff_r_fsat_value_targetfactorsfactorization_product * ff_p_fsat_value_targetfactorsfactorization_product)))))) /\ (forall ftsf_index_fsat_value_targetfactorsfactorization_primes. (exists ftsf_gap_fsat_value_targetfactorsfactorization_primes_bound. ftsf_gap_fsat_value_targetfactorsfactorization_primes_bound + S ftsf_index_fsat_value_targetfactorsfactorization_primes = (mv_factor_count_value_targetfactors)) -> exists ftsf_factor_fsat_value_targetfactorsfactorization_primes. ((((exists ff_h_ftsf_fsat_value_targetfactorsfactorization_primes_entry. ff_h_ftsf_fsat_value_targetfactorsfactorization_primes_entry + S (ftsf_factor_fsat_value_targetfactorsfactorization_primes) = S ((S (ftsf_index_fsat_value_targetfactorsfactorization_primes)) * mv_factor_scale_value_targetfactors)) /\ exists ff_q_ftsf_fsat_value_targetfactorsfactorization_primes_entry. mv_factor_code_value_targetfactors = ff_q_ftsf_fsat_value_targetfactorsfactorization_primes_entry * S ((S (ftsf_index_fsat_value_targetfactorsfactorization_primes)) * mv_factor_scale_value_targetfactors) + (ftsf_factor_fsat_value_targetfactorsfactorization_primes))) /\ ((~(ftsf_factor_fsat_value_targetfactorsfactorization_primes = 1) /\ forall frm_prime_left_ftsf_fsat_value_targetfactorsfactorization_primes_prime frm_prime_right_ftsf_fsat_value_targetfactorsfactorization_primes_prime. ftsf_factor_fsat_value_targetfactorsfactorization_primes = frm_prime_left_ftsf_fsat_value_targetfactorsfactorization_primes_prime * frm_prime_right_ftsf_fsat_value_targetfactorsfactorization_primes_prime -> frm_prime_left_ftsf_fsat_value_targetfactorsfactorization_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_value_targetfactorsfactorization_primes_prime = 1))))))) /\ ((((exists mv_even_half_value_targetfactorsparityeven. (mv_factor_count_value_targetfactors) = 2 * mv_even_half_value_targetfactorsparityeven) /\ ((b) = 2))) \/ (((exists mv_odd_half_value_targetfactorsparityodd. (mv_factor_count_value_targetfactors) = 2 * mv_odd_half_value_targetfactorsparityodd + 1) /\ ((b) = 1))))))))))) -> (exists mps_positive_value_negation mps_negative_value_negation. (((((a) = 2 * (mps_positive_value_negation) /\ (mps_negative_value_negation) = 0) \/ exists ge_signed_half_value_negationsource. (((a) = 2 * ge_signed_half_value_negationsource + 1 /\ (mps_positive_value_negation) = 0) /\ (mps_negative_value_negation) = S ge_signed_half_value_negationsource))) /\ ((((b) = 2 * (mps_negative_value_negation) /\ (mps_positive_value_negation) = 0) \/ exists ge_signed_half_value_negationtarget. (((b) = 2 * ge_signed_half_value_negationtarget + 1 /\ (mps_negative_value_negation) = 0) /\ (mps_positive_value_negation) = S ge_signed_half_value_negationtarget)))))Constructive proof overview
Generated structural guide
Actual prime toggling negates independently defined Möbius values, including fixed nonsquarefree values, which are proved to be zero.
The unchanged tactic script uses 4 declared prerequisites and contains 80 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
mobius_fresh_prime_negates Alpha theorem; checked-use authorized signed_negate_symmetric Alpha theorem; checked-use authorized mobius_prime_square_value_zero Alpha theorem; checked-use authorized signed_negate_zero Alpha 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.
01Fix variables and assumptionsL1–9
02Separate the logical casesL10–11
03Calculate and transport equalitiesL12–19
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
04Use earlier factsL20–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
05Separate the logical casesL29–30
06Calculate and transport equalitiesL31–38
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
07Use earlier factsL39–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
specialize signed_negate_symmetric (b) - L40
specialize signed_negate_symmetric (a) - L41
apply signed_negate_symmetric - L42
specialize mobius_fresh_prime_negates (p) - L43
specialize mobius_fresh_prime_negates (e) - L44
specialize mobius_fresh_prime_negates (b) - L45
specialize mobius_fresh_prime_negates (a) - L46
apply mobius_fresh_prime_negates - L47
exact hp - L48
exact ht_right_left_right
08Use earlier factsL49–50
09Separate the logical casesL51–51
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L51
cases ht_right_right
10Establish hzeroaL52–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mobius prime square value zero.
11Establish hzerobL60–69
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mobius prime square value zero.
- L60
have hzerob : b=0 - L61
specialize mobius_prime_square_value_zero (d) - L62
specialize mobius_prime_square_value_zero (p) - L63
specialize mobius_prime_square_value_zero (b) - L64
apply mobius_prime_square_value_zero - L65
exact hp - L66
exact ht_right_right_left - L67
rewrite ht_right_right_right at hb - L68
rewrite ht_right_right_right at hb - L69
rewrite ht_right_right_right at hb
12Calculate and transport equalitiesL70–74
13Use earlier factsL75–75
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L75
exact hb
14Calculate and transport equalitiesL76–79
15Use earlier factsL80–80
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L80
apply signed_negate_zero
Original exact command ledger · 80 lines
- 0001
intro p - 0002
intro d - 0003
intro e - 0004
intro a - 0005
intro b - 0006
intro hp - 0007
intro ht - 0008
intro ha - 0009
intro hb - 0010
cases ht - 0011
cases ht_left - 0012
rewrite ht_left_right at hb - 0013
rewrite ht_left_right at hb - 0014
rewrite ht_left_right at hb - 0015
rewrite ht_left_right at hb - 0016
rewrite ht_left_right at hb - 0017
rewrite ht_left_right at hb - 0018
rewrite ht_left_right at hb - 0019
rewrite ht_left_right at hb - 0020
specialize mobius_fresh_prime_negates (p) - 0021
specialize mobius_fresh_prime_negates (d) - 0022
specialize mobius_fresh_prime_negates (a) - 0023
specialize mobius_fresh_prime_negates (b) - 0024
apply mobius_fresh_prime_negates - 0025
exact hp - 0026
exact ht_left_left - 0027
exact ha - 0028
exact hb - 0029
cases ht_right - 0030
cases ht_right_left - 0031
rewrite ht_right_left_left at ha - 0032
rewrite ht_right_left_left at ha - 0033
rewrite ht_right_left_left at ha - 0034
rewrite ht_right_left_left at ha - 0035
rewrite ht_right_left_left at ha - 0036
rewrite ht_right_left_left at ha - 0037
rewrite ht_right_left_left at ha - 0038
rewrite ht_right_left_left at ha - 0039
specialize signed_negate_symmetric (b) - 0040
specialize signed_negate_symmetric (a) - 0041
apply signed_negate_symmetric - 0042
specialize mobius_fresh_prime_negates (p) - 0043
specialize mobius_fresh_prime_negates (e) - 0044
specialize mobius_fresh_prime_negates (b) - 0045
specialize mobius_fresh_prime_negates (a) - 0046
apply mobius_fresh_prime_negates - 0047
exact hp - 0048
exact ht_right_left_right - 0049
exact hb - 0050
exact ha - 0051
cases ht_right_right - 0052
have hzeroa : a=0 - 0053
specialize mobius_prime_square_value_zero (d) - 0054
specialize mobius_prime_square_value_zero (p) - 0055
specialize mobius_prime_square_value_zero (a) - 0056
apply mobius_prime_square_value_zero - 0057
exact hp - 0058
exact ht_right_right_left - 0059
exact ha - 0060
have hzerob : b=0 - 0061
specialize mobius_prime_square_value_zero (d) - 0062
specialize mobius_prime_square_value_zero (p) - 0063
specialize mobius_prime_square_value_zero (b) - 0064
apply mobius_prime_square_value_zero - 0065
exact hp - 0066
exact ht_right_right_left - 0067
rewrite ht_right_right_right at hb - 0068
rewrite ht_right_right_right at hb - 0069
rewrite ht_right_right_right at hb - 0070
rewrite ht_right_right_right at hb - 0071
rewrite ht_right_right_right at hb - 0072
rewrite ht_right_right_right at hb - 0073
rewrite ht_right_right_right at hb - 0074
rewrite ht_right_right_right at hb - 0075
exact hb - 0076
rewrite hzeroa - 0077
rewrite hzeroa - 0078
rewrite hzerob - 0079
rewrite hzerob - 0080
apply signed_negate_zero