PA00CR · theorem

gauss_eisenstein_terminal_sums_mod_two

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

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

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 original first-admission records.

Statement with defined notation

∀ p. ∀ h. ∀ a. ∀ b. ∀ c. ∀ tb. ∀ tc. ∀ qb. ∀ qc. ∀ rb. ∀ rc. ∀ mb. ∀ mc. ∀ sb. ∀ sc. ∀ X. ∀ Q. ∀ M. ∀ E. p = 2 · h + 1 → Odd(a)Range(b,c,1,h) → (∀ x. ∀ y. Lt(x,h)BetaAt(tb,tc,x,y) → y = a · (1 + x)) → DivisionPrefix(p,tb,tc,qb,qc,rb,rc,h) → (∀ x. Lt(x,h) → ∃ y. ∃ z. ∃ n. BetaAt(b,c,x,y) ∧ (BetaAt(mb,mc,x,z) ∧ (BetaAt(sb,sc,x,n) ∧ (Lt(0,z) ∧ (Le(z,h) ∧ ((n = 0 ∨ n = 1) ∧ (n = 0 ∧ ModEq(p,a · y,z) ∨ n = 1 ∧ ModEq(p,a · y,2 · h · z)))))))) → Sum(b,c,h,X)Sum(qb,qc,h,Q)Sum(mb,mc,h,M)Sum(sb,sc,h,E)ModEq(2,X,Q + M + E)

Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.

Definitions used by this theorem

In the theorem statement

18 occurrences

In local proof propositions

6 occurrences

Exact expanded native-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)

Proof neighborhood

Direct theorem prerequisites

Direct theorem dependents

Definition-aware tactic body

Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.

Read the argument

Proof checkpoints

72 script commands · 8 reading checkpoints · 1 local claims

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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (2)
01Fix variables and assumptionsL1–10

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro p
  2. L2
    intro h
  3. L3
    intro a
  4. L4
    intro b
  5. L5
    intro c
  6. L6
    intro tb
  7. L7
    intro tc
  8. L8
    intro qb
  9. L9
    intro qc
  10. L10
    intro rb
02Fix variables and assumptionsL11–20

Work with arbitrary variables or the premises of the current implication.

  1. L11
    intro rc
  2. L12
    intro mb
  3. L13
    intro mc
  4. L14
    intro sb
  5. L15
    intro sc
  6. L16
    intro X
  7. L17
    intro Q
  8. L18
    intro M
  9. L19
    intro E
  10. L20
    intro hp
03Fix variables and assumptionsL21–29

Work with arbitrary variables or the premises of the current implication.

  1. L21
    intro ha
  2. L22
    intro hhalf
  3. L23
    intro hscaled
  4. L24
    intro hdivision
  5. L25
    intro hsigned
  6. L26
    intro hhalf_sum
  7. L27
    intro hquotient_sum
  8. L28
    intro hmagnitude_sum
  9. L29
    intro hsign_sum
04Establish hpointwiseL30–39

Establish this local claim before using it. It is not an additional assumption.

  1. L30
    have hpointwise : ∀ i. ∀ x. ∀ q. ∀ m. ∀ s. Lt(i,h) → BetaAt(b,c,i,x) → BetaAt(qb,qc,i,q) → BetaAt(mb,mc,i,m) → BetaAt(sb,sc,i,s) → ModEq(2,x,q + m + s)Definitions: Lt(i,h)BetaAt(b,c,i,x)BetaAt(qb,qc,i,q)BetaAt(mb,mc,i,m)BetaAt(sb,sc,i,s)ModEq(2,x,q + m + s)Original native command in the exact edition
  2. L31
    specialize gauss_eisenstein_prefix_pointwise_mod_two p
  3. L32
    specialize gauss_eisenstein_prefix_pointwise_mod_two h
  4. L33
    specialize gauss_eisenstein_prefix_pointwise_mod_two a
  5. L34
    specialize gauss_eisenstein_prefix_pointwise_mod_two b
  6. L35
    specialize gauss_eisenstein_prefix_pointwise_mod_two c
  7. L36
    specialize gauss_eisenstein_prefix_pointwise_mod_two tb
  8. L37
    specialize gauss_eisenstein_prefix_pointwise_mod_two tc
  9. L38
    specialize gauss_eisenstein_prefix_pointwise_mod_two qb
  10. L39
    specialize gauss_eisenstein_prefix_pointwise_mod_two qc
05Use earlier factsL40–49

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L40
    specialize gauss_eisenstein_prefix_pointwise_mod_two rb
  2. L41
    specialize gauss_eisenstein_prefix_pointwise_mod_two rc
  3. L42
    specialize gauss_eisenstein_prefix_pointwise_mod_two mb
  4. L43
    specialize gauss_eisenstein_prefix_pointwise_mod_two mc
  5. L44
    specialize gauss_eisenstein_prefix_pointwise_mod_two sb
  6. L45
    specialize gauss_eisenstein_prefix_pointwise_mod_two sc
  7. L46
    apply gauss_eisenstein_prefix_pointwise_mod_two
  8. L47
    exact hp
  9. L48
    exact ha
  10. L49
    exact hhalf
06Use earlier factsL50–59

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L50
    exact hscaled
  2. L51
    exact hdivision
  3. L52
    exact hsigned
  4. L53
    specialize beta_sum_pointwise_mod_three_add 2
  5. L54
    specialize beta_sum_pointwise_mod_three_add b
  6. L55
    specialize beta_sum_pointwise_mod_three_add c
  7. L56
    specialize beta_sum_pointwise_mod_three_add qb
  8. L57
    specialize beta_sum_pointwise_mod_three_add qc
  9. L58
    specialize beta_sum_pointwise_mod_three_add mb
  10. L59
    specialize beta_sum_pointwise_mod_three_add mc
07Use earlier factsL60–69

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L60
    specialize beta_sum_pointwise_mod_three_add sb
  2. L61
    specialize beta_sum_pointwise_mod_three_add sc
  3. L62
    specialize beta_sum_pointwise_mod_three_add h
  4. L63
    specialize beta_sum_pointwise_mod_three_add X
  5. L64
    specialize beta_sum_pointwise_mod_three_add Q
  6. L65
    specialize beta_sum_pointwise_mod_three_add M
  7. L66
    specialize beta_sum_pointwise_mod_three_add E
  8. L67
    apply beta_sum_pointwise_mod_three_add
  9. L68
    exact hhalf_sum
  10. L69
    exact hquotient_sum
08Use earlier factsL70–72

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L70
    exact hmagnitude_sum
  2. L71
    exact hsign_sum
  3. L72
    exact hpointwise

Library-wide reading audit

Original defined command ledger · 72 lines
  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 : ∀ i. ∀ x. ∀ q. ∀ m. ∀ s. Lt(i,h)BetaAt(b,c,i,x)BetaAt(qb,qc,i,q)BetaAt(mb,mc,i,m)BetaAt(sb,sc,i,s)ModEq(2,x,q + m + s)
    Exact native replay linehave 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