PA00CR

gauss_eisenstein_terminal_sums_mod_two

Alpha v16 checked-use theorem · independently closed; not Stable

The pointwise Gauss--Eisenstein congruence aggregates to exact terminal Sums.

Exact expanded PA statement

forall p h a b c tb tc qb qc rb rc mb mc sb sc X Q M E. p = 2 * h + 1 -> (exists sdp_odd_ges_scale. a = 2 * sdp_odd_ges_scale + 1) -> (forall gsp_range_index_ges_half. (exists gsp_lt_gap_ges_half_range_bound. gsp_lt_gap_ges_half_range_bound + S gsp_range_index_ges_half = h) -> (((exists gsp_beta_height_ges_half_range_entry. gsp_beta_height_ges_half_range_entry + S (1 + gsp_range_index_ges_half) = S ((S (gsp_range_index_ges_half)) * c)) /\ exists gsp_beta_quotient_ges_half_range_entry. b = gsp_beta_quotient_ges_half_range_entry * S ((S (gsp_range_index_ges_half)) * c) + (1 + gsp_range_index_ges_half)))) -> (forall esd_index_ges_scaled esd_value_ges_scaled. (exists esd_gap_ges_scaled. esd_gap_ges_scaled + S esd_index_ges_scaled = h) -> (((exists ff_h_esd_ges_scaled_decoded. ff_h_esd_ges_scaled_decoded + S (esd_value_ges_scaled) = S ((S (esd_index_ges_scaled)) * tc)) /\ exists ff_q_esd_ges_scaled_decoded. tb = ff_q_esd_ges_scaled_decoded * S ((S (esd_index_ges_scaled)) * tc) + (esd_value_ges_scaled))) -> esd_value_ges_scaled = a * (1 + esd_index_ges_scaled)) -> (forall fdp_index_ges_division. (exists gsp_lt_gap_ges_division_index_bound. gsp_lt_gap_ges_division_index_bound + S fdp_index_ges_division = h) -> exists fdp_value_ges_division fdp_quotient_ges_division fdp_remainder_ges_division. (((exists ff_h_fdp_ges_division_source. ff_h_fdp_ges_division_source + S (fdp_value_ges_division) = S ((S (fdp_index_ges_division)) * tc)) /\ exists ff_q_fdp_ges_division_source. tb = ff_q_fdp_ges_division_source * S ((S (fdp_index_ges_division)) * tc) + (fdp_value_ges_division))) /\ ((((exists ff_h_fdp_ges_division_quotient_entry. ff_h_fdp_ges_division_quotient_entry + S (fdp_quotient_ges_division) = S ((S (fdp_index_ges_division)) * qc)) /\ exists ff_q_fdp_ges_division_quotient_entry. qb = ff_q_fdp_ges_division_quotient_entry * S ((S (fdp_index_ges_division)) * qc) + (fdp_quotient_ges_division))) /\ ((((exists ff_h_fdp_ges_division_remainder_entry. ff_h_fdp_ges_division_remainder_entry + S (fdp_remainder_ges_division) = S ((S (fdp_index_ges_division)) * rc)) /\ exists ff_q_fdp_ges_division_remainder_entry. rb = ff_q_fdp_ges_division_remainder_entry * S ((S (fdp_index_ges_division)) * rc) + (fdp_remainder_ges_division))) /\ (fdp_value_ges_division = p * fdp_quotient_ges_division + fdp_remainder_ges_division /\ (exists gsp_lt_gap_ges_division_remainder_bound. gsp_lt_gap_ges_division_remainder_bound + S fdp_remainder_ges_division = p))))) -> (forall gsp_index_ges_signed. (exists gsp_lt_gap_ges_signed_index_bound. gsp_lt_gap_ges_signed_index_bound + S gsp_index_ges_signed = h) -> (exists gsp_value_ges_signed_entry gsp_magnitude_ges_signed_entry gsp_sign_ges_signed_entry. (((exists ff_h_gsp_ges_signed_entry_source. ff_h_gsp_ges_signed_entry_source + S (gsp_value_ges_signed_entry) = S ((S (gsp_index_ges_signed)) * c)) /\ exists ff_q_gsp_ges_signed_entry_source. b = ff_q_gsp_ges_signed_entry_source * S ((S (gsp_index_ges_signed)) * c) + (gsp_value_ges_signed_entry))) /\ ((((exists ff_h_gsp_ges_signed_entry_magnitude. ff_h_gsp_ges_signed_entry_magnitude + S (gsp_magnitude_ges_signed_entry) = S ((S (gsp_index_ges_signed)) * mc)) /\ exists ff_q_gsp_ges_signed_entry_magnitude. mb = ff_q_gsp_ges_signed_entry_magnitude * S ((S (gsp_index_ges_signed)) * mc) + (gsp_magnitude_ges_signed_entry))) /\ ((((exists ff_h_gsp_ges_signed_entry_sign. ff_h_gsp_ges_signed_entry_sign + S (gsp_sign_ges_signed_entry) = S ((S (gsp_index_ges_signed)) * sc)) /\ exists ff_q_gsp_ges_signed_entry_sign. sb = ff_q_gsp_ges_signed_entry_sign * S ((S (gsp_index_ges_signed)) * sc) + (gsp_sign_ges_signed_entry))) /\ ((exists gsp_lt_gap_ges_signed_entry_positive. gsp_lt_gap_ges_signed_entry_positive + S 0 = gsp_magnitude_ges_signed_entry) /\ ((exists gsp_le_gap_ges_signed_entry_bounded. gsp_le_gap_ges_signed_entry_bounded + gsp_magnitude_ges_signed_entry = h) /\ ((gsp_sign_ges_signed_entry = 0 \/ gsp_sign_ges_signed_entry = 1) /\ (((gsp_sign_ges_signed_entry = 0 /\ (exists gsp_mod_left_ges_signed_entry_lower gsp_mod_right_ges_signed_entry_lower. (a * gsp_value_ges_signed_entry) + p * gsp_mod_left_ges_signed_entry_lower = (gsp_magnitude_ges_signed_entry) + p * gsp_mod_right_ges_signed_entry_lower)) \/ (gsp_sign_ges_signed_entry = 1 /\ (exists gsp_mod_left_ges_signed_entry_reflected gsp_mod_right_ges_signed_entry_reflected. (a * gsp_value_ges_signed_entry) + p * gsp_mod_left_ges_signed_entry_reflected = ((2 * h) * gsp_magnitude_ges_signed_entry) + p * gsp_mod_right_ges_signed_entry_reflected))))))))))) -> (exists ff_u_ges_half_sum ff_v_ges_half_sum. ((((exists ff_h_ges_half_sum_start. ff_h_ges_half_sum_start + S (0) = S ((S (0)) * ff_v_ges_half_sum)) /\ exists ff_q_ges_half_sum_start. ff_u_ges_half_sum = ff_q_ges_half_sum_start * S ((S (0)) * ff_v_ges_half_sum) + (0))) /\ ((((exists ff_h_ges_half_sum_terminal. ff_h_ges_half_sum_terminal + S (X) = S ((S (h)) * ff_v_ges_half_sum)) /\ exists ff_q_ges_half_sum_terminal. ff_u_ges_half_sum = ff_q_ges_half_sum_terminal * S ((S (h)) * ff_v_ges_half_sum) + (X))) /\ forall ff_i_ges_half_sum. (exists ff_lt_ges_half_sum_bound. ff_lt_ges_half_sum_bound + S ff_i_ges_half_sum = h) -> exists ff_a_ges_half_sum ff_r_ges_half_sum ff_s_ges_half_sum. ((((exists ff_h_ges_half_sum_summand. ff_h_ges_half_sum_summand + S (ff_a_ges_half_sum) = S ((S (ff_i_ges_half_sum)) * c)) /\ exists ff_q_ges_half_sum_summand. b = ff_q_ges_half_sum_summand * S ((S (ff_i_ges_half_sum)) * c) + (ff_a_ges_half_sum))) /\ ((((exists ff_h_ges_half_sum_partial. ff_h_ges_half_sum_partial + S (ff_r_ges_half_sum) = S ((S (ff_i_ges_half_sum)) * ff_v_ges_half_sum)) /\ exists ff_q_ges_half_sum_partial. ff_u_ges_half_sum = ff_q_ges_half_sum_partial * S ((S (ff_i_ges_half_sum)) * ff_v_ges_half_sum) + (ff_r_ges_half_sum))) /\ ((((exists ff_h_ges_half_sum_successor. ff_h_ges_half_sum_successor + S (ff_s_ges_half_sum) = S ((S (S ff_i_ges_half_sum)) * ff_v_ges_half_sum)) /\ exists ff_q_ges_half_sum_successor. ff_u_ges_half_sum = ff_q_ges_half_sum_successor * S ((S (S ff_i_ges_half_sum)) * ff_v_ges_half_sum) + (ff_s_ges_half_sum))) /\ ff_s_ges_half_sum = ff_r_ges_half_sum + ff_a_ges_half_sum)))))) -> (exists ff_u_ges_quotient_sum ff_v_ges_quotient_sum. ((((exists ff_h_ges_quotient_sum_start. ff_h_ges_quotient_sum_start + S (0) = S ((S (0)) * ff_v_ges_quotient_sum)) /\ exists ff_q_ges_quotient_sum_start. ff_u_ges_quotient_sum = ff_q_ges_quotient_sum_start * S ((S (0)) * ff_v_ges_quotient_sum) + (0))) /\ ((((exists ff_h_ges_quotient_sum_terminal. ff_h_ges_quotient_sum_terminal + S (Q) = S ((S (h)) * ff_v_ges_quotient_sum)) /\ exists ff_q_ges_quotient_sum_terminal. ff_u_ges_quotient_sum = ff_q_ges_quotient_sum_terminal * S ((S (h)) * ff_v_ges_quotient_sum) + (Q))) /\ forall ff_i_ges_quotient_sum. (exists ff_lt_ges_quotient_sum_bound. ff_lt_ges_quotient_sum_bound + S ff_i_ges_quotient_sum = h) -> exists ff_a_ges_quotient_sum ff_r_ges_quotient_sum ff_s_ges_quotient_sum. ((((exists ff_h_ges_quotient_sum_summand. ff_h_ges_quotient_sum_summand + S (ff_a_ges_quotient_sum) = S ((S (ff_i_ges_quotient_sum)) * qc)) /\ exists ff_q_ges_quotient_sum_summand. qb = ff_q_ges_quotient_sum_summand * S ((S (ff_i_ges_quotient_sum)) * qc) + (ff_a_ges_quotient_sum))) /\ ((((exists ff_h_ges_quotient_sum_partial. ff_h_ges_quotient_sum_partial + S (ff_r_ges_quotient_sum) = S ((S (ff_i_ges_quotient_sum)) * ff_v_ges_quotient_sum)) /\ exists ff_q_ges_quotient_sum_partial. ff_u_ges_quotient_sum = ff_q_ges_quotient_sum_partial * S ((S (ff_i_ges_quotient_sum)) * ff_v_ges_quotient_sum) + (ff_r_ges_quotient_sum))) /\ ((((exists ff_h_ges_quotient_sum_successor. ff_h_ges_quotient_sum_successor + S (ff_s_ges_quotient_sum) = S ((S (S ff_i_ges_quotient_sum)) * ff_v_ges_quotient_sum)) /\ exists ff_q_ges_quotient_sum_successor. ff_u_ges_quotient_sum = ff_q_ges_quotient_sum_successor * S ((S (S ff_i_ges_quotient_sum)) * ff_v_ges_quotient_sum) + (ff_s_ges_quotient_sum))) /\ ff_s_ges_quotient_sum = ff_r_ges_quotient_sum + ff_a_ges_quotient_sum)))))) -> (exists ff_u_ges_magnitude_sum ff_v_ges_magnitude_sum. ((((exists ff_h_ges_magnitude_sum_start. ff_h_ges_magnitude_sum_start + S (0) = S ((S (0)) * ff_v_ges_magnitude_sum)) /\ exists ff_q_ges_magnitude_sum_start. ff_u_ges_magnitude_sum = ff_q_ges_magnitude_sum_start * S ((S (0)) * ff_v_ges_magnitude_sum) + (0))) /\ ((((exists ff_h_ges_magnitude_sum_terminal. ff_h_ges_magnitude_sum_terminal + S (M) = S ((S (h)) * ff_v_ges_magnitude_sum)) /\ exists ff_q_ges_magnitude_sum_terminal. ff_u_ges_magnitude_sum = ff_q_ges_magnitude_sum_terminal * S ((S (h)) * ff_v_ges_magnitude_sum) + (M))) /\ forall ff_i_ges_magnitude_sum. (exists ff_lt_ges_magnitude_sum_bound. ff_lt_ges_magnitude_sum_bound + S ff_i_ges_magnitude_sum = h) -> exists ff_a_ges_magnitude_sum ff_r_ges_magnitude_sum ff_s_ges_magnitude_sum. ((((exists ff_h_ges_magnitude_sum_summand. ff_h_ges_magnitude_sum_summand + S (ff_a_ges_magnitude_sum) = S ((S (ff_i_ges_magnitude_sum)) * mc)) /\ exists ff_q_ges_magnitude_sum_summand. mb = ff_q_ges_magnitude_sum_summand * S ((S (ff_i_ges_magnitude_sum)) * mc) + (ff_a_ges_magnitude_sum))) /\ ((((exists ff_h_ges_magnitude_sum_partial. ff_h_ges_magnitude_sum_partial + S (ff_r_ges_magnitude_sum) = S ((S (ff_i_ges_magnitude_sum)) * ff_v_ges_magnitude_sum)) /\ exists ff_q_ges_magnitude_sum_partial. ff_u_ges_magnitude_sum = ff_q_ges_magnitude_sum_partial * S ((S (ff_i_ges_magnitude_sum)) * ff_v_ges_magnitude_sum) + (ff_r_ges_magnitude_sum))) /\ ((((exists ff_h_ges_magnitude_sum_successor. ff_h_ges_magnitude_sum_successor + S (ff_s_ges_magnitude_sum) = S ((S (S ff_i_ges_magnitude_sum)) * ff_v_ges_magnitude_sum)) /\ exists ff_q_ges_magnitude_sum_successor. ff_u_ges_magnitude_sum = ff_q_ges_magnitude_sum_successor * S ((S (S ff_i_ges_magnitude_sum)) * ff_v_ges_magnitude_sum) + (ff_s_ges_magnitude_sum))) /\ ff_s_ges_magnitude_sum = ff_r_ges_magnitude_sum + ff_a_ges_magnitude_sum)))))) -> (exists ff_u_ges_sign_sum ff_v_ges_sign_sum. ((((exists ff_h_ges_sign_sum_start. ff_h_ges_sign_sum_start + S (0) = S ((S (0)) * ff_v_ges_sign_sum)) /\ exists ff_q_ges_sign_sum_start. ff_u_ges_sign_sum = ff_q_ges_sign_sum_start * S ((S (0)) * ff_v_ges_sign_sum) + (0))) /\ ((((exists ff_h_ges_sign_sum_terminal. ff_h_ges_sign_sum_terminal + S (E) = S ((S (h)) * ff_v_ges_sign_sum)) /\ exists ff_q_ges_sign_sum_terminal. ff_u_ges_sign_sum = ff_q_ges_sign_sum_terminal * S ((S (h)) * ff_v_ges_sign_sum) + (E))) /\ forall ff_i_ges_sign_sum. (exists ff_lt_ges_sign_sum_bound. ff_lt_ges_sign_sum_bound + S ff_i_ges_sign_sum = h) -> exists ff_a_ges_sign_sum ff_r_ges_sign_sum ff_s_ges_sign_sum. ((((exists ff_h_ges_sign_sum_summand. ff_h_ges_sign_sum_summand + S (ff_a_ges_sign_sum) = S ((S (ff_i_ges_sign_sum)) * sc)) /\ exists ff_q_ges_sign_sum_summand. sb = ff_q_ges_sign_sum_summand * S ((S (ff_i_ges_sign_sum)) * sc) + (ff_a_ges_sign_sum))) /\ ((((exists ff_h_ges_sign_sum_partial. ff_h_ges_sign_sum_partial + S (ff_r_ges_sign_sum) = S ((S (ff_i_ges_sign_sum)) * ff_v_ges_sign_sum)) /\ exists ff_q_ges_sign_sum_partial. ff_u_ges_sign_sum = ff_q_ges_sign_sum_partial * S ((S (ff_i_ges_sign_sum)) * ff_v_ges_sign_sum) + (ff_r_ges_sign_sum))) /\ ((((exists ff_h_ges_sign_sum_successor. ff_h_ges_sign_sum_successor + S (ff_s_ges_sign_sum) = S ((S (S ff_i_ges_sign_sum)) * ff_v_ges_sign_sum)) /\ exists ff_q_ges_sign_sum_successor. ff_u_ges_sign_sum = ff_q_ges_sign_sum_successor * S ((S (S ff_i_ges_sign_sum)) * ff_v_ges_sign_sum) + (ff_s_ges_sign_sum))) /\ ff_s_ges_sign_sum = ff_r_ges_sign_sum + ff_a_ges_sign_sum)))))) -> (exists fspm_u_ges_terminal fspm_v_ges_terminal. (X) + 2 * fspm_u_ges_terminal = (Q + M + E) + 2 * fspm_v_ges_terminal)

Structural proof guide

Generated structural guide

The pointwise Gauss--Eisenstein congruence aggregates to exact terminal Sums.

Use the direct prerequisites gauss_eisenstein_prefix_pointwise_mod_two, beta_sum_pointwise_mod_three_add as previously established PA formulas.

The proof proceeds by intermediate claims (1).

Referenced ingredients

Proof neighborhood

Direct dependencies

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v16 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.

  1. 0001intro p
  2. 0002intro h
  3. 0003intro a
  4. 0004intro b
  5. 0005intro c
  6. 0006intro tb
  7. 0007intro tc
  8. 0008intro qb
  9. 0009intro qc
  10. 0010intro rb
  11. 0011intro rc
  12. 0012intro mb
  13. 0013intro mc
  14. 0014intro sb
  15. 0015intro sc
  16. 0016intro X
  17. 0017intro Q
  18. 0018intro M
  19. 0019intro E
  20. 0020intro hp
  21. 0021intro ha
  22. 0022intro hhalf
  23. 0023intro hscaled
  24. 0024intro hdivision
  25. 0025intro hsigned
  26. 0026intro hhalf_sum
  27. 0027intro hquotient_sum
  28. 0028intro hmagnitude_sum
  29. 0029intro hsign_sum
  30. 0030have hpointwise : forall i x q m s. (exists g. g + S i = h) -> (((exists ff_h_ges_point_source. ff_h_ges_point_source + S (x) = S ((S (i)) * c)) /\ exists ff_q_ges_point_source. b = ff_q_ges_point_source * S ((S (i)) * c) + (x))) -> (((exists ff_h_ges_point_quotient. ff_h_ges_point_quotient + S (q) = S ((S (i)) * qc)) /\ exists ff_q_ges_point_quotient. qb = ff_q_ges_point_quotient * S ((S (i)) * qc) + (q))) -> (((exists ff_h_ges_point_magnitude. ff_h_ges_point_magnitude + S (m) = S ((S (i)) * mc)) /\ exists ff_q_ges_point_magnitude. mb = ff_q_ges_point_magnitude * S ((S (i)) * mc) + (m))) -> (((exists ff_h_ges_point_sign. ff_h_ges_point_sign + S (s) = S ((S (i)) * sc)) /\ exists ff_q_ges_point_sign. sb = ff_q_ges_point_sign * S ((S (i)) * sc) + (s))) -> (exists fspm_u_ges_point_mod fspm_v_ges_point_mod. (x) + 2 * fspm_u_ges_point_mod = (q + m + s) + 2 * fspm_v_ges_point_mod)
  31. 0031specialize gauss_eisenstein_prefix_pointwise_mod_two p
  32. 0032specialize gauss_eisenstein_prefix_pointwise_mod_two h
  33. 0033specialize gauss_eisenstein_prefix_pointwise_mod_two a
  34. 0034specialize gauss_eisenstein_prefix_pointwise_mod_two b
  35. 0035specialize gauss_eisenstein_prefix_pointwise_mod_two c
  36. 0036specialize gauss_eisenstein_prefix_pointwise_mod_two tb
  37. 0037specialize gauss_eisenstein_prefix_pointwise_mod_two tc
  38. 0038specialize gauss_eisenstein_prefix_pointwise_mod_two qb
  39. 0039specialize gauss_eisenstein_prefix_pointwise_mod_two qc
  40. 0040specialize gauss_eisenstein_prefix_pointwise_mod_two rb
  41. 0041specialize gauss_eisenstein_prefix_pointwise_mod_two rc
  42. 0042specialize gauss_eisenstein_prefix_pointwise_mod_two mb
  43. 0043specialize gauss_eisenstein_prefix_pointwise_mod_two mc
  44. 0044specialize gauss_eisenstein_prefix_pointwise_mod_two sb
  45. 0045specialize gauss_eisenstein_prefix_pointwise_mod_two sc
  46. 0046apply gauss_eisenstein_prefix_pointwise_mod_two
  47. 0047exact hp
  48. 0048exact ha
  49. 0049exact hhalf
  50. 0050exact hscaled
  51. 0051exact hdivision
  52. 0052exact hsigned
  53. 0053specialize beta_sum_pointwise_mod_three_add 2
  54. 0054specialize beta_sum_pointwise_mod_three_add b
  55. 0055specialize beta_sum_pointwise_mod_three_add c
  56. 0056specialize beta_sum_pointwise_mod_three_add qb
  57. 0057specialize beta_sum_pointwise_mod_three_add qc
  58. 0058specialize beta_sum_pointwise_mod_three_add mb
  59. 0059specialize beta_sum_pointwise_mod_three_add mc
  60. 0060specialize beta_sum_pointwise_mod_three_add sb
  61. 0061specialize beta_sum_pointwise_mod_three_add sc
  62. 0062specialize beta_sum_pointwise_mod_three_add h
  63. 0063specialize beta_sum_pointwise_mod_three_add X
  64. 0064specialize beta_sum_pointwise_mod_three_add Q
  65. 0065specialize beta_sum_pointwise_mod_three_add M
  66. 0066specialize beta_sum_pointwise_mod_three_add E
  67. 0067apply beta_sum_pointwise_mod_three_add
  68. 0068exact hhalf_sum
  69. 0069exact hquotient_sum
  70. 0070exact hmagnitude_sum
  71. 0071exact hsign_sum
  72. 0072exact hpointwise