PA007R · theorem

gauss_signed_pointwise_mul_product_mod

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

The scaled canonical-source product is congruent to the product of signed magnitudes.

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. ∀ r. ∀ a. ∀ b. ∀ c. ∀ mb. ∀ mc. ∀ sb. ∀ sc. ∀ fb. ∀ fc. ∀ tb. ∀ tc. ∀ P. ∀ T. ∀ A. p = S r → r = 2 · 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)))))))) → (∀ x. ∀ y. Lt(x,h)BetaAt(sb,sc,x,y) → y = 0 ∧ BetaAt(fb,fc,x,1) ∨ y = 1 ∧ BetaAt(fb,fc,x,r)) → (∀ x. ∀ y. ∀ z. ∀ n. Lt(x,h)BetaAt(mb,mc,x,y)BetaAt(fb,fc,x,z)BetaAt(tb,tc,x,n) → n = y · z) → Product(b,c,h,P)Product(tb,tc,h,T)Pow(a,h,A)ModEq(p,A · P,T)

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

20 occurrences

In local proof propositions

4 occurrences

Exact expanded native-PA statement
forall p h r a b c mb mc sb sc fb fc tb tc P T A. p = S r -> r = 2 * h -> (forall gsp_index_pointwise_signed_prefix. (exists gsp_lt_gap_pointwise_signed_prefix_index_bound. gsp_lt_gap_pointwise_signed_prefix_index_bound + S gsp_index_pointwise_signed_prefix = h) -> (exists gsp_value_pointwise_signed_prefix_entry gsp_magnitude_pointwise_signed_prefix_entry gsp_sign_pointwise_signed_prefix_entry. (((exists ff_h_gsp_pointwise_signed_prefix_entry_source. ff_h_gsp_pointwise_signed_prefix_entry_source + S (gsp_value_pointwise_signed_prefix_entry) = S ((S (gsp_index_pointwise_signed_prefix)) * c)) /\ exists ff_q_gsp_pointwise_signed_prefix_entry_source. b = ff_q_gsp_pointwise_signed_prefix_entry_source * S ((S (gsp_index_pointwise_signed_prefix)) * c) + (gsp_value_pointwise_signed_prefix_entry))) /\ ((((exists ff_h_gsp_pointwise_signed_prefix_entry_magnitude. ff_h_gsp_pointwise_signed_prefix_entry_magnitude + S (gsp_magnitude_pointwise_signed_prefix_entry) = S ((S (gsp_index_pointwise_signed_prefix)) * mc)) /\ exists ff_q_gsp_pointwise_signed_prefix_entry_magnitude. mb = ff_q_gsp_pointwise_signed_prefix_entry_magnitude * S ((S (gsp_index_pointwise_signed_prefix)) * mc) + (gsp_magnitude_pointwise_signed_prefix_entry))) /\ ((((exists ff_h_gsp_pointwise_signed_prefix_entry_sign. ff_h_gsp_pointwise_signed_prefix_entry_sign + S (gsp_sign_pointwise_signed_prefix_entry) = S ((S (gsp_index_pointwise_signed_prefix)) * sc)) /\ exists ff_q_gsp_pointwise_signed_prefix_entry_sign. sb = ff_q_gsp_pointwise_signed_prefix_entry_sign * S ((S (gsp_index_pointwise_signed_prefix)) * sc) + (gsp_sign_pointwise_signed_prefix_entry))) /\ ((exists gsp_lt_gap_pointwise_signed_prefix_entry_positive. gsp_lt_gap_pointwise_signed_prefix_entry_positive + S 0 = gsp_magnitude_pointwise_signed_prefix_entry) /\ ((exists gsp_le_gap_pointwise_signed_prefix_entry_bounded. gsp_le_gap_pointwise_signed_prefix_entry_bounded + gsp_magnitude_pointwise_signed_prefix_entry = h) /\ ((gsp_sign_pointwise_signed_prefix_entry = 0 \/ gsp_sign_pointwise_signed_prefix_entry = 1) /\ (((gsp_sign_pointwise_signed_prefix_entry = 0 /\ (exists gsp_mod_left_pointwise_signed_prefix_entry_lower gsp_mod_right_pointwise_signed_prefix_entry_lower. (a * gsp_value_pointwise_signed_prefix_entry) + p * gsp_mod_left_pointwise_signed_prefix_entry_lower = (gsp_magnitude_pointwise_signed_prefix_entry) + p * gsp_mod_right_pointwise_signed_prefix_entry_lower)) \/ (gsp_sign_pointwise_signed_prefix_entry = 1 /\ (exists gsp_mod_left_pointwise_signed_prefix_entry_reflected gsp_mod_right_pointwise_signed_prefix_entry_reflected. (a * gsp_value_pointwise_signed_prefix_entry) + p * gsp_mod_left_pointwise_signed_prefix_entry_reflected = ((2 * h) * gsp_magnitude_pointwise_signed_prefix_entry) + p * gsp_mod_right_pointwise_signed_prefix_entry_reflected))))))))))) -> (forall gspf_index_pointwise_sign_factors gspf_bit_pointwise_sign_factors. (exists gsp_lt_gap_pointwise_sign_factors_bound. gsp_lt_gap_pointwise_sign_factors_bound + S gspf_index_pointwise_sign_factors = h) -> (((exists ff_h_gspf_pointwise_sign_factors_bit. ff_h_gspf_pointwise_sign_factors_bit + S (gspf_bit_pointwise_sign_factors) = S ((S (gspf_index_pointwise_sign_factors)) * sc)) /\ exists ff_q_gspf_pointwise_sign_factors_bit. sb = ff_q_gspf_pointwise_sign_factors_bit * S ((S (gspf_index_pointwise_sign_factors)) * sc) + (gspf_bit_pointwise_sign_factors))) -> (((gspf_bit_pointwise_sign_factors = 0) /\ (((exists gsp_beta_height_gspf_pointwise_sign_factors_one. gsp_beta_height_gspf_pointwise_sign_factors_one + S (1) = S ((S (gspf_index_pointwise_sign_factors)) * fc)) /\ exists gsp_beta_quotient_gspf_pointwise_sign_factors_one. fb = gsp_beta_quotient_gspf_pointwise_sign_factors_one * S ((S (gspf_index_pointwise_sign_factors)) * fc) + (1)))) \/ ((gspf_bit_pointwise_sign_factors = 1) /\ (((exists ff_h_gspf_pointwise_sign_factors_predecessor. ff_h_gspf_pointwise_sign_factors_predecessor + S (r) = S ((S (gspf_index_pointwise_sign_factors)) * fc)) /\ exists ff_q_gspf_pointwise_sign_factors_predecessor. fb = ff_q_gspf_pointwise_sign_factors_predecessor * S ((S (gspf_index_pointwise_sign_factors)) * fc) + (r)))))) -> (forall fpmp_index_pointwise_products fpmp_left_pointwise_products fpmp_right_pointwise_products fpmp_target_pointwise_products. (exists fpmp_gap_pointwise_products. fpmp_gap_pointwise_products + S fpmp_index_pointwise_products = h) -> (((exists ff_h_fpmp_pointwise_products_left. ff_h_fpmp_pointwise_products_left + S (fpmp_left_pointwise_products) = S ((S (fpmp_index_pointwise_products)) * mc)) /\ exists ff_q_fpmp_pointwise_products_left. mb = ff_q_fpmp_pointwise_products_left * S ((S (fpmp_index_pointwise_products)) * mc) + (fpmp_left_pointwise_products))) -> (((exists ff_h_fpmp_pointwise_products_right. ff_h_fpmp_pointwise_products_right + S (fpmp_right_pointwise_products) = S ((S (fpmp_index_pointwise_products)) * fc)) /\ exists ff_q_fpmp_pointwise_products_right. fb = ff_q_fpmp_pointwise_products_right * S ((S (fpmp_index_pointwise_products)) * fc) + (fpmp_right_pointwise_products))) -> (((exists ff_h_fpmp_pointwise_products_target. ff_h_fpmp_pointwise_products_target + S (fpmp_target_pointwise_products) = S ((S (fpmp_index_pointwise_products)) * tc)) /\ exists ff_q_fpmp_pointwise_products_target. tb = ff_q_fpmp_pointwise_products_target * S ((S (fpmp_index_pointwise_products)) * tc) + (fpmp_target_pointwise_products))) -> fpmp_target_pointwise_products = fpmp_left_pointwise_products * fpmp_right_pointwise_products) -> (exists ff_u_pointwise_product_source ff_v_pointwise_product_source. ((((exists ff_h_pointwise_product_source_start. ff_h_pointwise_product_source_start + S (1) = S ((S (0)) * ff_v_pointwise_product_source)) /\ exists ff_q_pointwise_product_source_start. ff_u_pointwise_product_source = ff_q_pointwise_product_source_start * S ((S (0)) * ff_v_pointwise_product_source) + (1))) /\ ((((exists ff_h_pointwise_product_source_terminal. ff_h_pointwise_product_source_terminal + S (P) = S ((S (h)) * ff_v_pointwise_product_source)) /\ exists ff_q_pointwise_product_source_terminal. ff_u_pointwise_product_source = ff_q_pointwise_product_source_terminal * S ((S (h)) * ff_v_pointwise_product_source) + (P))) /\ forall ff_i_pointwise_product_source. (exists ff_lt_pointwise_product_source_bound. ff_lt_pointwise_product_source_bound + S ff_i_pointwise_product_source = h) -> exists ff_p_pointwise_product_source ff_r_pointwise_product_source ff_s_pointwise_product_source. ((((exists ff_h_pointwise_product_source_factor. ff_h_pointwise_product_source_factor + S (ff_p_pointwise_product_source) = S ((S (ff_i_pointwise_product_source)) * c)) /\ exists ff_q_pointwise_product_source_factor. b = ff_q_pointwise_product_source_factor * S ((S (ff_i_pointwise_product_source)) * c) + (ff_p_pointwise_product_source))) /\ ((((exists ff_h_pointwise_product_source_partial. ff_h_pointwise_product_source_partial + S (ff_r_pointwise_product_source) = S ((S (ff_i_pointwise_product_source)) * ff_v_pointwise_product_source)) /\ exists ff_q_pointwise_product_source_partial. ff_u_pointwise_product_source = ff_q_pointwise_product_source_partial * S ((S (ff_i_pointwise_product_source)) * ff_v_pointwise_product_source) + (ff_r_pointwise_product_source))) /\ ((((exists ff_h_pointwise_product_source_successor. ff_h_pointwise_product_source_successor + S (ff_s_pointwise_product_source) = S ((S (S ff_i_pointwise_product_source)) * ff_v_pointwise_product_source)) /\ exists ff_q_pointwise_product_source_successor. ff_u_pointwise_product_source = ff_q_pointwise_product_source_successor * S ((S (S ff_i_pointwise_product_source)) * ff_v_pointwise_product_source) + (ff_s_pointwise_product_source))) /\ ff_s_pointwise_product_source = ff_r_pointwise_product_source * ff_p_pointwise_product_source)))))) -> (exists ff_u_pointwise_product_target ff_v_pointwise_product_target. ((((exists ff_h_pointwise_product_target_start. ff_h_pointwise_product_target_start + S (1) = S ((S (0)) * ff_v_pointwise_product_target)) /\ exists ff_q_pointwise_product_target_start. ff_u_pointwise_product_target = ff_q_pointwise_product_target_start * S ((S (0)) * ff_v_pointwise_product_target) + (1))) /\ ((((exists ff_h_pointwise_product_target_terminal. ff_h_pointwise_product_target_terminal + S (T) = S ((S (h)) * ff_v_pointwise_product_target)) /\ exists ff_q_pointwise_product_target_terminal. ff_u_pointwise_product_target = ff_q_pointwise_product_target_terminal * S ((S (h)) * ff_v_pointwise_product_target) + (T))) /\ forall ff_i_pointwise_product_target. (exists ff_lt_pointwise_product_target_bound. ff_lt_pointwise_product_target_bound + S ff_i_pointwise_product_target = h) -> exists ff_p_pointwise_product_target ff_r_pointwise_product_target ff_s_pointwise_product_target. ((((exists ff_h_pointwise_product_target_factor. ff_h_pointwise_product_target_factor + S (ff_p_pointwise_product_target) = S ((S (ff_i_pointwise_product_target)) * tc)) /\ exists ff_q_pointwise_product_target_factor. tb = ff_q_pointwise_product_target_factor * S ((S (ff_i_pointwise_product_target)) * tc) + (ff_p_pointwise_product_target))) /\ ((((exists ff_h_pointwise_product_target_partial. ff_h_pointwise_product_target_partial + S (ff_r_pointwise_product_target) = S ((S (ff_i_pointwise_product_target)) * ff_v_pointwise_product_target)) /\ exists ff_q_pointwise_product_target_partial. ff_u_pointwise_product_target = ff_q_pointwise_product_target_partial * S ((S (ff_i_pointwise_product_target)) * ff_v_pointwise_product_target) + (ff_r_pointwise_product_target))) /\ ((((exists ff_h_pointwise_product_target_successor. ff_h_pointwise_product_target_successor + S (ff_s_pointwise_product_target) = S ((S (S ff_i_pointwise_product_target)) * ff_v_pointwise_product_target)) /\ exists ff_q_pointwise_product_target_successor. ff_u_pointwise_product_target = ff_q_pointwise_product_target_successor * S ((S (S ff_i_pointwise_product_target)) * ff_v_pointwise_product_target) + (ff_s_pointwise_product_target))) /\ ff_s_pointwise_product_target = ff_r_pointwise_product_target * ff_p_pointwise_product_target)))))) -> (exists ff_b_pointwise_product_power ff_c_pointwise_product_power. ((forall ff_i_pointwise_product_power_repeat. (exists ff_lt_pointwise_product_power_repeat_bound. ff_lt_pointwise_product_power_repeat_bound + S ff_i_pointwise_product_power_repeat = h) -> (((exists ff_h_pointwise_product_power_repeat_decoded. ff_h_pointwise_product_power_repeat_decoded + S (a) = S ((S (ff_i_pointwise_product_power_repeat)) * ff_c_pointwise_product_power)) /\ exists ff_q_pointwise_product_power_repeat_decoded. ff_b_pointwise_product_power = ff_q_pointwise_product_power_repeat_decoded * S ((S (ff_i_pointwise_product_power_repeat)) * ff_c_pointwise_product_power) + (a)))) /\ (exists ff_u_pointwise_product_power_product ff_v_pointwise_product_power_product. ((((exists ff_h_pointwise_product_power_product_start. ff_h_pointwise_product_power_product_start + S (1) = S ((S (0)) * ff_v_pointwise_product_power_product)) /\ exists ff_q_pointwise_product_power_product_start. ff_u_pointwise_product_power_product = ff_q_pointwise_product_power_product_start * S ((S (0)) * ff_v_pointwise_product_power_product) + (1))) /\ ((((exists ff_h_pointwise_product_power_product_terminal. ff_h_pointwise_product_power_product_terminal + S (A) = S ((S (h)) * ff_v_pointwise_product_power_product)) /\ exists ff_q_pointwise_product_power_product_terminal. ff_u_pointwise_product_power_product = ff_q_pointwise_product_power_product_terminal * S ((S (h)) * ff_v_pointwise_product_power_product) + (A))) /\ forall ff_i_pointwise_product_power_product. (exists ff_lt_pointwise_product_power_product_bound. ff_lt_pointwise_product_power_product_bound + S ff_i_pointwise_product_power_product = h) -> exists ff_p_pointwise_product_power_product ff_r_pointwise_product_power_product ff_s_pointwise_product_power_product. ((((exists ff_h_pointwise_product_power_product_factor. ff_h_pointwise_product_power_product_factor + S (ff_p_pointwise_product_power_product) = S ((S (ff_i_pointwise_product_power_product)) * ff_c_pointwise_product_power)) /\ exists ff_q_pointwise_product_power_product_factor. ff_b_pointwise_product_power = ff_q_pointwise_product_power_product_factor * S ((S (ff_i_pointwise_product_power_product)) * ff_c_pointwise_product_power) + (ff_p_pointwise_product_power_product))) /\ ((((exists ff_h_pointwise_product_power_product_partial. ff_h_pointwise_product_power_product_partial + S (ff_r_pointwise_product_power_product) = S ((S (ff_i_pointwise_product_power_product)) * ff_v_pointwise_product_power_product)) /\ exists ff_q_pointwise_product_power_product_partial. ff_u_pointwise_product_power_product = ff_q_pointwise_product_power_product_partial * S ((S (ff_i_pointwise_product_power_product)) * ff_v_pointwise_product_power_product) + (ff_r_pointwise_product_power_product))) /\ ((((exists ff_h_pointwise_product_power_product_successor. ff_h_pointwise_product_power_product_successor + S (ff_s_pointwise_product_power_product) = S ((S (S ff_i_pointwise_product_power_product)) * ff_v_pointwise_product_power_product)) /\ exists ff_q_pointwise_product_power_product_successor. ff_u_pointwise_product_power_product = ff_q_pointwise_product_power_product_successor * S ((S (S ff_i_pointwise_product_power_product)) * ff_v_pointwise_product_power_product) + (ff_s_pointwise_product_power_product))) /\ ff_s_pointwise_product_power_product = ff_r_pointwise_product_power_product * ff_p_pointwise_product_power_product)))))))) -> (exists fsp_product_mod_left_pointwise_product_result fsp_product_mod_right_pointwise_product_result. (A * P) + p * fsp_product_mod_left_pointwise_product_result = T + p * fsp_product_mod_right_pointwise_product_result)

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

61 script commands · 7 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 r
  4. L4
    intro a
  5. L5
    intro b
  6. L6
    intro c
  7. L7
    intro mb
  8. L8
    intro mc
  9. L9
    intro sb
  10. L10
    intro sc
02Fix variables and assumptionsL11–20

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

  1. L11
    intro fb
  2. L12
    intro fc
  3. L13
    intro tb
  4. L14
    intro tc
  5. L15
    intro P
  6. L16
    intro T
  7. L17
    intro A
  8. L18
    intro hp
  9. L19
    intro hr
  10. L20
    intro hsigned
03Fix variables and assumptionsL21–25

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

  1. L21
    intro hfactor
  2. L22
    intro hmul
  3. L23
    intro hP
  4. L24
    intro hT
  5. L25
    intro hA
04Establish hscaleL26–35

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

  1. L26
    have hscale : ∀ fsp_index_pointwise_scale_result. ∀ fsp_source_pointwise_scale_result. ∀ fsp_target_pointwise_scale_result. Lt(fsp_index_pointwise_scale_result,h) → BetaAt(b,c,fsp_index_pointwise_scale_result,fsp_source_pointwise_scale_result) → BetaAt(tb,tc,fsp_index_pointwise_scale_result,fsp_target_pointwise_scale_result) → ModEq(p,a · fsp_source_pointwise_scale_result,fsp_target_pointwise_scale_result)Definitions: Lt(fsp_index_pointwise_scale_result,h)BetaAt(b,c,fsp_index_pointwise_scale_result,fsp_source_pointwise_scale_result)BetaAt(tb,tc,fsp_index_pointwise_scale_result,fsp_target_pointwise_scale_result)ModEq(p,a · fsp_source_pointwise_scale_result,fsp_target_pointwise_scale_result)Original native command in the exact edition
  2. L27
    specialize gauss_signed_pointwise_mul_scale_mod p
  3. L28
    specialize gauss_signed_pointwise_mul_scale_mod h
  4. L29
    specialize gauss_signed_pointwise_mul_scale_mod r
  5. L30
    specialize gauss_signed_pointwise_mul_scale_mod a
  6. L31
    specialize gauss_signed_pointwise_mul_scale_mod b
  7. L32
    specialize gauss_signed_pointwise_mul_scale_mod c
  8. L33
    specialize gauss_signed_pointwise_mul_scale_mod mb
  9. L34
    specialize gauss_signed_pointwise_mul_scale_mod mc
  10. L35
    specialize gauss_signed_pointwise_mul_scale_mod sb
05Use earlier factsL36–45

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

  1. L36
    specialize gauss_signed_pointwise_mul_scale_mod sc
  2. L37
    specialize gauss_signed_pointwise_mul_scale_mod fb
  3. L38
    specialize gauss_signed_pointwise_mul_scale_mod fc
  4. L39
    specialize gauss_signed_pointwise_mul_scale_mod tb
  5. L40
    specialize gauss_signed_pointwise_mul_scale_mod tc
  6. L41
    apply gauss_signed_pointwise_mul_scale_mod
  7. L42
    exact hp
  8. L43
    exact hr
  9. L44
    exact hsigned
  10. L45
    exact hfactor
06Use earlier factsL46–55

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

  1. L46
    exact hmul
  2. L47
    specialize beta_product_pointwise_scale_mod p
  3. L48
    specialize beta_product_pointwise_scale_mod a
  4. L49
    specialize beta_product_pointwise_scale_mod b
  5. L50
    specialize beta_product_pointwise_scale_mod c
  6. L51
    specialize beta_product_pointwise_scale_mod tb
  7. L52
    specialize beta_product_pointwise_scale_mod tc
  8. L53
    specialize beta_product_pointwise_scale_mod h
  9. L54
    specialize beta_product_pointwise_scale_mod P
  10. L55
    specialize beta_product_pointwise_scale_mod T
07Use earlier factsL56–61

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

  1. L56
    specialize beta_product_pointwise_scale_mod A
  2. L57
    apply beta_product_pointwise_scale_mod
  3. L58
    exact hscale
  4. L59
    exact hP
  5. L60
    exact hT
  6. L61
    exact hA

Library-wide reading audit

Original defined command ledger · 61 lines
  1. 0001intro p
  2. 0002intro h
  3. 0003intro r
  4. 0004intro a
  5. 0005intro b
  6. 0006intro c
  7. 0007intro mb
  8. 0008intro mc
  9. 0009intro sb
  10. 0010intro sc
  11. 0011intro fb
  12. 0012intro fc
  13. 0013intro tb
  14. 0014intro tc
  15. 0015intro P
  16. 0016intro T
  17. 0017intro A
  18. 0018intro hp
  19. 0019intro hr
  20. 0020intro hsigned
  21. 0021intro hfactor
  22. 0022intro hmul
  23. 0023intro hP
  24. 0024intro hT
  25. 0025intro hA
  26. 0026have hscale : ∀ fsp_index_pointwise_scale_result. ∀ fsp_source_pointwise_scale_result. ∀ fsp_target_pointwise_scale_result. Lt(fsp_index_pointwise_scale_result,h)BetaAt(b,c,fsp_index_pointwise_scale_result,fsp_source_pointwise_scale_result)BetaAt(tb,tc,fsp_index_pointwise_scale_result,fsp_target_pointwise_scale_result)ModEq(p,a · fsp_source_pointwise_scale_result,fsp_target_pointwise_scale_result)
    Exact native replay linehave hscale : forall fsp_index_pointwise_scale_result fsp_source_pointwise_scale_result fsp_target_pointwise_scale_result. (exists fsp_gap_pointwise_scale_result. fsp_gap_pointwise_scale_result + S fsp_index_pointwise_scale_result = h) -> (((exists fsp_source_height_pointwise_scale_result. fsp_source_height_pointwise_scale_result + S (fsp_source_pointwise_scale_result) = S ((S (fsp_index_pointwise_scale_result)) * c)) /\ exists fsp_source_quotient_pointwise_scale_result. b = fsp_source_quotient_pointwise_scale_result * S ((S (fsp_index_pointwise_scale_result)) * c) + (fsp_source_pointwise_scale_result))) -> (((exists fsp_target_height_pointwise_scale_result. fsp_target_height_pointwise_scale_result + S (fsp_target_pointwise_scale_result) = S ((S (fsp_index_pointwise_scale_result)) * tc)) /\ exists fsp_target_quotient_pointwise_scale_result. tb = fsp_target_quotient_pointwise_scale_result * S ((S (fsp_index_pointwise_scale_result)) * tc) + (fsp_target_pointwise_scale_result))) -> (exists fsp_mod_left_pointwise_scale_result fsp_mod_right_pointwise_scale_result. a * fsp_source_pointwise_scale_result + p * fsp_mod_left_pointwise_scale_result = fsp_target_pointwise_scale_result + p * fsp_mod_right_pointwise_scale_result)
  27. 0027specialize gauss_signed_pointwise_mul_scale_mod p
  28. 0028specialize gauss_signed_pointwise_mul_scale_mod h
  29. 0029specialize gauss_signed_pointwise_mul_scale_mod r
  30. 0030specialize gauss_signed_pointwise_mul_scale_mod a
  31. 0031specialize gauss_signed_pointwise_mul_scale_mod b
  32. 0032specialize gauss_signed_pointwise_mul_scale_mod c
  33. 0033specialize gauss_signed_pointwise_mul_scale_mod mb
  34. 0034specialize gauss_signed_pointwise_mul_scale_mod mc
  35. 0035specialize gauss_signed_pointwise_mul_scale_mod sb
  36. 0036specialize gauss_signed_pointwise_mul_scale_mod sc
  37. 0037specialize gauss_signed_pointwise_mul_scale_mod fb
  38. 0038specialize gauss_signed_pointwise_mul_scale_mod fc
  39. 0039specialize gauss_signed_pointwise_mul_scale_mod tb
  40. 0040specialize gauss_signed_pointwise_mul_scale_mod tc
  41. 0041apply gauss_signed_pointwise_mul_scale_mod
  42. 0042exact hp
  43. 0043exact hr
  44. 0044exact hsigned
  45. 0045exact hfactor
  46. 0046exact hmul
  47. 0047specialize beta_product_pointwise_scale_mod p
  48. 0048specialize beta_product_pointwise_scale_mod a
  49. 0049specialize beta_product_pointwise_scale_mod b
  50. 0050specialize beta_product_pointwise_scale_mod c
  51. 0051specialize beta_product_pointwise_scale_mod tb
  52. 0052specialize beta_product_pointwise_scale_mod tc
  53. 0053specialize beta_product_pointwise_scale_mod h
  54. 0054specialize beta_product_pointwise_scale_mod P
  55. 0055specialize beta_product_pointwise_scale_mod T
  56. 0056specialize beta_product_pointwise_scale_mod A
  57. 0057apply beta_product_pointwise_scale_mod
  58. 0058exact hscale
  59. 0059exact hP
  60. 0060exact hT
  61. 0061exact hA