Prime-Field Polynomial GCD and Bézout — exact evidence

119 new Alpha v34 admissions; current4223/Stable432. Complete 493-node bundle checked by original HA and independent compiled Lean. Only the 14 listed roots claim separate ordinary-certificate checks.

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.

All products and sums use actual beta-coded coefficients; equality is formal coefficient equivalence, not equality of evaluations or raw codes. The zero gcd is included. Uniqueness is up to formal equivalence, not unique Bézout coefficients. This proves the polynomial gcd component, not G091 irreducible-polynomial existence or arbitrary prime-power-field construction.

Actual same-live report · Exact first admissions

zero_add · unchanged support, not a new admission
forall n. 0 + n = n
  1. induction n
  2. simp
  3. simp [IH]
add_succ_left · unchanged support, not a new admission
forall n m. S n + m = S (n + m)
  1. intro n
  2. induction m
  3. simp
  4. simp [IH]
add_comm · unchanged support, not a new admission
forall n m. n + m = m + n
  1. intro n
  2. induction m
  3. simp [zero_add]
  4. simp [add_succ_left, IH]
add_assoc · unchanged support, not a new admission
forall n m k. (n + m) + k = n + (m + k)
  1. intro n
  2. intro m
  3. induction k
  4. simp
  5. simp [IH]
mul_zero_left · unchanged support, not a new admission
forall n. 0 * n = 0
  1. induction n
  2. simp
  3. simp [IH]
mul_succ_left · unchanged support, not a new admission
forall n m. S n * m = n * m + m
  1. intro n
  2. induction m
  3. simp
  4. specialize add_comm n
  5. specialize add_comm m
  6. simp [IH, add_comm, add_assoc]
mul_comm · unchanged support, not a new admission
forall n m. n * m = m * n
  1. intro n
  2. induction m
  3. simp [mul_zero_left]
  4. simp [IH, mul_succ_left]
mul_add · unchanged support, not a new admission
forall n m k. n * (m + k) = n * m + n * k
  1. intro n
  2. intro m
  3. induction k
  4. simp
  5. simp [IH, add_assoc]
mul_assoc · unchanged support, not a new admission
forall n m k. (n * m) * k = n * (m * k)
  1. intro n
  2. intro m
  3. induction k
  4. simp
  5. simp [IH, mul_add]
one_mul · unchanged support, not a new admission
forall n. 1 * n = n
  1. induction n
  2. simp
  3. simp [IH]
mul_one · unchanged support, not a new admission
forall n. n * 1 = n
  1. intro n
  2. simp [zero_add]
add_mul · unchanged support, not a new admission
forall n m k. (n + m) * k = n * k + m * k
  1. intro n
  2. intro m
  3. intro k
  4. simp [mul_comm, mul_add]
succ_ne_zero · unchanged support, not a new admission
forall n. ~(S n = 0)
  1. apply PA1
succ_injective · unchanged support, not a new admission
forall n m. S n = S m -> n = m
  1. apply PA2
le_refl · unchanged support, not a new admission
forall n. n <= n
  1. intro n
  2. exists 0
  3. simp [zero_add]
le_trans · unchanged support, not a new admission
forall n m k. n <= m -> m <= k -> n <= k
  1. intro n
  2. intro m
  3. intro k
  4. intro h_nm
  5. intro h_mk
  6. cases h_nm
  7. cases h_mk
  8. exists x1 + x
  9. simp [add_assoc, h_nm_witness, h_mk_witness]
no_succ_add_fixed · unchanged support, not a new admission
forall p n. S p + n = n -> false
  1. intro p
  2. induction n
  3. intro h
  4. apply PA1
  5. rewrite PA3 at h
  6. exact h
  7. intro h
  8. apply IH
  9. apply PA2
  10. rewrite PA4 at h
  11. exact h
drop_add_prefix_from_fixed · unchanged support, not a new admission
forall a b n. (b + a) + n = n -> a + n = n
  1. intro a
  2. induction b
  3. intro n
  4. intro h
  5. specialize zero_add a
  6. rewrite zero_add at h
  7. exact h
  8. intro n
  9. intro h
  10. exfalso
  11. specialize no_succ_add_fixed (b + a)
  12. specialize no_succ_add_fixed n
  13. apply no_succ_add_fixed
  14. specialize add_succ_left b
  15. specialize add_succ_left a
  16. rewrite add_succ_left at h
  17. exact h
antisymm_from_witnesses · unchanged support, not a new admission
forall a b n m. a + n = m -> b + m = n -> n = m
  1. intro a
  2. intro b
  3. intro n
  4. intro m
  5. intro h_anm
  6. intro h_bmn
  7. symm
  8. rewrite <- h_anm
  9. specialize drop_add_prefix_from_fixed a
  10. specialize drop_add_prefix_from_fixed b
  11. specialize drop_add_prefix_from_fixed n
  12. apply drop_add_prefix_from_fixed
  13. specialize add_assoc b
  14. specialize add_assoc a
  15. specialize add_assoc n
  16. rewrite add_assoc
  17. rewrite h_anm
  18. rewrite h_bmn
  19. refl
le_antisymm · unchanged support, not a new admission
forall n m. n <= m -> m <= n -> n = m
  1. intro n
  2. intro m
  3. intro h_nm
  4. intro h_mn
  5. cases h_nm
  6. cases h_mn
  7. apply antisymm_from_witnesses
  8. exact h_nm_witness
  9. exact h_mn_witness
le_total · unchanged support, not a new admission
forall n m. n <= m \/ m <= n
  1. induction n
  2. intro m
  3. left
  4. exists m
  5. simp
  6. induction m
  7. right
  8. exists (S n)
  9. simp
  10. specialize IH m
  11. cases IH
  12. cases IH_left
  13. left
  14. exists x
  15. rewrite PA4
  16. congr
  17. exact IH_left_witness
  18. cases IH_right
  19. right
  20. exists x
  21. rewrite PA4
  22. congr
  23. exact IH_right_witness
add_eq_zero_right · unchanged support, not a new admission
forall a b. a + b = 0 -> b = 0
  1. intro a
  2. induction b
  3. intro h
  4. refl
  5. intro h
  6. exfalso
  7. apply PA1
  8. rewrite PA4 at h
  9. exact h
mul_eq_zero · unchanged support, not a new admission
forall n m. n * m = 0 -> n = 0 \/ m = 0
  1. intro n
  2. induction m
  3. intro h
  4. right
  5. refl
  6. intro h
  7. left
  8. specialize add_eq_zero_right (n * m)
  9. specialize add_eq_zero_right n
  10. apply add_eq_zero_right
  11. rewrite PA6 at h
  12. exact h
zero_or_succ · unchanged support, not a new admission
forall n. n = 0 \/ exists k. n = S k
  1. induction n
  2. left
  3. refl
  4. right
  5. exists n
  6. refl
nonzero_is_succ · unchanged support, not a new admission
forall n. ~(n = 0) -> exists k. n = S k
  1. induction n
  2. intro h
  3. exfalso
  4. apply h
  5. refl
  6. intro h
  7. exists n
  8. refl
add_congr · unchanged support, not a new admission
forall a b c d. a = b -> c = d -> a + c = b + d
  1. intro a
  2. intro b
  3. intro c
  4. intro d
  5. intro hab
  6. intro hcd
  7. congr
  8. exact hab
  9. exact hcd
add_right_cancel · unchanged support, not a new admission
forall a b c. a + c = b + c -> a = b
  1. intro a
  2. intro b
  3. induction c
  4. intro h
  5. rewrite PA3 at h
  6. rewrite PA3 at h
  7. exact h
  8. intro h
  9. apply IH
  10. apply PA2
  11. rewrite PA4 at h
  12. rewrite PA4 at h
  13. exact h
add_left_cancel · unchanged support, not a new admission
forall a b c. a + b = a + c -> b = c
  1. intro a
  2. intro b
  3. intro c
  4. intro h
  5. specialize add_right_cancel b
  6. specialize add_right_cancel c
  7. specialize add_right_cancel a
  8. apply add_right_cancel
  9. trans a + b
  10. apply add_comm
  11. trans a + c
  12. exact h
  13. apply add_comm
zero_le · unchanged support, not a new admission
forall n. 0 <= n
  1. intro n
  2. exists n
  3. rewrite PA3
  4. refl
le_succ_self · unchanged support, not a new admission
forall n. n <= S n
  1. intro n
  2. exists 1
  3. simp [add_succ_left, zero_add]
le_zero · unchanged support, not a new admission
forall n. n <= 0 -> n = 0
  1. intro n
  2. intro h
  3. cases h
  4. apply add_eq_zero_right
  5. exact h_witness
one_le_of_ne_zero · unchanged support, not a new admission
forall n. ~(n = 0) -> 1 <= n
  1. induction n
  2. intro h
  3. exfalso
  4. apply h
  5. refl
  6. intro h
  7. exists n
  8. simp
le_add_left · unchanged support, not a new admission
forall a b. exists k. k + a = b + a
  1. intro a
  2. intro b
  3. exists b
  4. refl
le_add_right · unchanged support, not a new admission
forall a b. exists k. k + a = a + b
  1. intro a
  2. intro b
  3. exists b
  4. apply add_comm
add_le_add_right · unchanged support, not a new admission
forall a b c. (exists k. k + a = b) -> exists r. r + (a + c) = b + c
  1. intro a
  2. intro b
  3. intro c
  4. intro h
  5. cases h
  6. exists x
  7. trans (x + a) + c
  8. symm
  9. apply add_assoc
  10. congr
  11. exact h_witness
  12. refl
add_le_add_left · unchanged support, not a new admission
forall a b c. (exists k. k + a = b) -> exists r. r + (c + a) = c + b
  1. intro a
  2. intro b
  3. intro c
  4. intro h
  5. cases h
  6. exists x
  7. trans (x + c) + a
  8. symm
  9. apply add_assoc
  10. trans (c + x) + a
  11. congr
  12. apply add_comm
  13. refl
  14. trans c + (x + a)
  15. apply add_assoc
  16. congr
  17. refl
  18. exact h_witness
succ_le_succ · unchanged support, not a new admission
forall a b. (exists k. k + a = b) -> exists r. r + S a = S b
  1. intro a
  2. intro b
  3. intro h
  4. cases h
  5. exists x
  6. rewrite PA4
  7. congr
  8. exact h_witness
le_of_succ_le_succ · unchanged support, not a new admission
forall a b. (exists k. k + S a = S b) -> exists r. r + a = b
  1. intro a
  2. intro b
  3. intro h
  4. cases h
  5. exists x
  6. apply PA2
  7. trans x + S a
  8. symm
  9. apply PA4
  10. exact h_witness
le_succ · unchanged support, not a new admission
forall a b. (exists k. k + a = b) -> exists r. r + a = S b
  1. intro a
  2. intro b
  3. intro h
  4. cases h
  5. exists S x
  6. trans S (x + a)
  7. apply add_succ_left
  8. congr
  9. exact h_witness
lt_to_le · unchanged support, not a new admission
forall a b. (exists k. k + S a = b) -> exists r. r + a = b
  1. intro a
  2. intro b
  3. intro h
  4. cases h
  5. exists S x
  6. trans x + S a
  7. trans S (x + a)
  8. apply add_succ_left
  9. symm
  10. apply PA4
  11. exact h_witness
add_le_cancel_right · unchanged support, not a new admission
forall a b c. (exists k. k + (a + c) = b + c) -> exists r. r + a = b
  1. intro a
  2. intro b
  3. intro c
  4. intro h
  5. cases h
  6. exists x
  7. specialize add_right_cancel (x + a)
  8. specialize add_right_cancel b
  9. specialize add_right_cancel c
  10. apply add_right_cancel
  11. trans x + (a + c)
  12. apply add_assoc
  13. exact h_witness
lt_irrefl_expanded · unchanged support, not a new admission
forall n. ~(exists k. k + S n = n)
  1. intro n
  2. intro h
  3. cases h
  4. specialize no_succ_add_fixed x
  5. specialize no_succ_add_fixed n
  6. apply no_succ_add_fixed
  7. trans x + S n
  8. trans S (x + n)
  9. apply add_succ_left
  10. symm
  11. apply PA4
  12. exact h_witness
le_eq_or_lt · unchanged support, not a new admission
forall a b. (exists k. k + a = b) -> a = b \/ exists k. k + S a = b
  1. intro a
  2. intro b
  3. intro h
  4. cases h
  5. specialize zero_or_succ x
  6. cases zero_or_succ
  7. left
  8. rewrite zero_or_succ_left at h_witness
  9. specialize zero_add a
  10. rewrite zero_add at h_witness
  11. exact h_witness
  12. cases zero_or_succ_right
  13. right
  14. exists x1
  15. trans S x1 + a
  16. trans S (x1 + a)
  17. apply PA4
  18. symm
  19. apply add_succ_left
  20. rewrite <- zero_or_succ_right_witness
  21. exact h_witness
lt_of_lt_of_le · unchanged support, not a new admission
forall a b c. (exists k. k + S a = b) -> (exists k. k + b = c) -> exists k. k + S a = c
  1. intro a
  2. intro b
  3. intro c
  4. intro hab
  5. intro hbc
  6. specialize le_trans (S a)
  7. specialize le_trans b
  8. specialize le_trans c
  9. apply le_trans
  10. exact hab
  11. exact hbc
le_or_lt · unchanged support, not a new admission
forall a b. (exists k. k + a = b) \/ exists k. k + S b = a
  1. induction a
  2. intro b
  3. left
  4. exists b
  5. apply PA3
  6. induction b
  7. right
  8. exists a
  9. trans S (a + 0)
  10. apply PA4
  11. congr
  12. apply PA3
  13. specialize IH b
  14. cases IH
  15. left
  16. cases IH_left
  17. exists x
  18. rewrite PA4
  19. congr
  20. exact IH_left_witness
  21. right
  22. cases IH_right
  23. exists x
  24. rewrite PA4
  25. congr
  26. exact IH_right_witness
lt_trichotomy · unchanged support, not a new admission
forall a b. a = b \/ ((exists k. k + S a = b) \/ exists k. k + S b = a)
  1. induction a
  2. induction b
  3. left
  4. refl
  5. right
  6. left
  7. exists b
  8. trans S (b + 0)
  9. apply PA4
  10. congr
  11. apply PA3
  12. induction b
  13. right
  14. right
  15. exists a
  16. trans S (a + 0)
  17. apply PA4
  18. congr
  19. apply PA3
  20. specialize IH b
  21. cases IH
  22. left
  23. congr
  24. exact IH_left
  25. cases IH_right
  26. right
  27. left
  28. cases IH_right_left
  29. exists x
  30. rewrite PA4
  31. congr
  32. exact IH_right_left_witness
  33. right
  34. right
  35. cases IH_right_right
  36. exists x
  37. rewrite PA4
  38. congr
  39. exact IH_right_right_witness
lt_not_le · unchanged support, not a new admission
forall a b. (exists k. k + S a = b) -> ~ (exists k. k + b = a)
  1. have hbad : forall z u v. ~(z = u + (v + S z))
  2. intro z
  3. induction z
  4. intro u
  5. intro v
  6. intro hz
  7. apply PA1
  8. symm
  9. rewrite PA4 at hz
  10. rewrite PA4 at hz
  11. exact hz
  12. intro u
  13. intro v
  14. intro hz
  15. specialize IH u
  16. specialize IH v
  17. apply IH
  18. apply PA2
  19. rewrite PA4 at hz
  20. rewrite PA4 at hz
  21. exact hz
  22. intro a
  23. intro b
  24. intro hab
  25. intro hba
  26. cases hab
  27. cases hba
  28. specialize hbad a
  29. specialize hbad x1
  30. specialize hbad x
  31. apply hbad
  32. symm
  33. rewrite <- hab_witness at hba_witness
  34. exact hba_witness
lt_not_eq_add_middle · unchanged support, not a new admission
forall r m a b. (exists k. k + S r = m) -> ~(r = (a + m) + b)
  1. have hbad : forall z a w b. ~(z = (a + (w + S z)) + b)
  2. intro z
  3. induction z
  4. intro a
  5. intro w
  6. intro b
  7. intro hz
  8. apply PA1
  9. symm
  10. rewrite PA4 at hz
  11. rewrite PA4 at hz
  12. specialize add_succ_left (a + (w + 0))
  13. specialize add_succ_left b
  14. rewrite add_succ_left at hz
  15. exact hz
  16. intro a
  17. intro w
  18. intro b
  19. intro hz
  20. specialize IH a
  21. specialize IH w
  22. specialize IH b
  23. apply IH
  24. apply PA2
  25. rewrite PA4 at hz
  26. rewrite PA4 at hz
  27. specialize add_succ_left (a + (w + S z))
  28. specialize add_succ_left b
  29. rewrite add_succ_left at hz
  30. exact hz
  31. intro r
  32. intro m
  33. intro a
  34. intro b
  35. intro hr
  36. intro heq
  37. cases hr
  38. specialize hbad r
  39. specialize hbad a
  40. specialize hbad x
  41. specialize hbad b
  42. apply hbad
  43. rewrite <- hr_witness at heq
  44. exact heq
mul_le_mul_right · unchanged support, not a new admission
forall a b c. (exists k. k + a = b) -> exists r. r + a * c = b * c
  1. intro a
  2. intro b
  3. intro c
  4. intro h
  5. cases h
  6. exists x * c
  7. trans (x + a) * c
  8. symm
  9. apply add_mul
  10. congr
  11. exact h_witness
  12. refl
division_remainder_succ · unchanged support, not a new admission
forall d n. exists q r. n = S d * q + r /\ S r <= S d
  1. intro d
  2. induction n
  3. exists 0
  4. exists 0
  5. split
  6. simp
  7. exists d
  8. simp
  9. cases IH
  10. cases IH_witness
  11. cases IH_witness_witness
  12. cases IH_witness_witness_right
  13. specialize zero_or_succ x2
  14. cases zero_or_succ
  15. rewrite zero_or_succ_left at IH_witness_witness_right_witness
  16. specialize zero_add S x1
  17. rewrite zero_add at IH_witness_witness_right_witness
  18. have hrd : x1 = d
  19. apply PA2
  20. exact IH_witness_witness_right_witness
  21. exists S x
  22. exists 0
  23. split
  24. rewrite IH_witness_witness_left
  25. rewrite hrd
  26. simp
  27. exists d
  28. simp
  29. cases zero_or_succ_right
  30. exists x
  31. exists S x1
  32. split
  33. rewrite IH_witness_witness_left
  34. simp
  35. exists x3
  36. rewrite <- IH_witness_witness_right_witness
  37. rewrite zero_or_succ_right_witness
  38. simp [add_succ_left]
division_remainder_exists · unchanged support, not a new admission
forall m n. ~(m = 0) -> exists q r. n = m * q + r /\ S r <= m
  1. intro m
  2. intro n
  3. intro hm
  4. specialize zero_or_succ m
  5. cases zero_or_succ
  6. exfalso
  7. apply hm
  8. exact zero_or_succ_left
  9. cases zero_or_succ_right
  10. specialize division_remainder_succ x
  11. specialize division_remainder_succ n
  12. rewrite zero_or_succ_right_witness
  13. rewrite zero_or_succ_right_witness
  14. exact division_remainder_succ
positive_quotient_gap_impossible · unchanged support, not a new admission
forall m q q2 r s k. (exists z. z + S r = m) -> S k + q = q2 -> ~(m * q + r = m * q2 + s)
  1. intro m
  2. intro q
  3. intro q2
  4. intro r
  5. intro s
  6. intro k
  7. intro hr
  8. intro hgap
  9. intro heq
  10. specialize lt_not_eq_add_middle r
  11. specialize lt_not_eq_add_middle m
  12. specialize lt_not_eq_add_middle (m * k)
  13. specialize lt_not_eq_add_middle s
  14. apply lt_not_eq_add_middle
  15. exact hr
  16. specialize add_left_cancel (m * q)
  17. specialize add_left_cancel r
  18. specialize add_left_cancel ((m * k + m) + s)
  19. apply add_left_cancel
  20. trans m * q2 + s
  21. exact heq
  22. rewrite <- hgap
  23. specialize add_comm S k
  24. specialize add_comm q
  25. rewrite add_comm
  26. specialize mul_add m
  27. specialize mul_add q
  28. specialize mul_add S k
  29. rewrite mul_add
  30. rewrite PA6
  31. specialize add_assoc (m * q)
  32. specialize add_assoc (m * k + m)
  33. specialize add_assoc s
  34. apply add_assoc
division_remainder_unique · unchanged support, not a new admission
forall m n q r q2 r2. n = m * q + r -> (exists k. k + S r = m) -> n = m * q2 + r2 -> (exists k. k + S r2 = m) -> q = q2 /\ r = r2
  1. intro m
  2. intro n
  3. intro q
  4. intro r
  5. intro q2
  6. intro r2
  7. intro h1
  8. intro hr
  9. intro h2
  10. intro hr2
  11. have hsum : m * q + r = m * q2 + r2
  12. trans n
  13. symm
  14. exact h1
  15. exact h2
  16. specialize le_total q
  17. specialize le_total q2
  18. cases le_total
  19. cases le_total_left
  20. specialize zero_or_succ x
  21. cases zero_or_succ
  22. rewrite zero_or_succ_left at le_total_left_witness
  23. specialize zero_add q
  24. rewrite zero_add at le_total_left_witness
  25. split
  26. exact le_total_left_witness
  27. specialize add_left_cancel (m * q)
  28. specialize add_left_cancel r
  29. specialize add_left_cancel r2
  30. apply add_left_cancel
  31. rewrite <- le_total_left_witness at hsum
  32. exact hsum
  33. cases zero_or_succ_right
  34. exfalso
  35. specialize positive_quotient_gap_impossible m
  36. specialize positive_quotient_gap_impossible q
  37. specialize positive_quotient_gap_impossible q2
  38. specialize positive_quotient_gap_impossible r
  39. specialize positive_quotient_gap_impossible r2
  40. specialize positive_quotient_gap_impossible x1
  41. apply positive_quotient_gap_impossible
  42. exact hr
  43. rewrite zero_or_succ_right_witness at le_total_left_witness
  44. exact le_total_left_witness
  45. exact hsum
  46. cases le_total_right
  47. specialize zero_or_succ x
  48. cases zero_or_succ
  49. rewrite zero_or_succ_left at le_total_right_witness
  50. specialize zero_add q2
  51. rewrite zero_add at le_total_right_witness
  52. split
  53. symm
  54. exact le_total_right_witness
  55. specialize add_left_cancel (m * q)
  56. specialize add_left_cancel r
  57. specialize add_left_cancel r2
  58. apply add_left_cancel
  59. rewrite le_total_right_witness at hsum
  60. exact hsum
  61. cases zero_or_succ_right
  62. exfalso
  63. specialize positive_quotient_gap_impossible m
  64. specialize positive_quotient_gap_impossible q2
  65. specialize positive_quotient_gap_impossible q
  66. specialize positive_quotient_gap_impossible r2
  67. specialize positive_quotient_gap_impossible r
  68. specialize positive_quotient_gap_impossible x1
  69. apply positive_quotient_gap_impossible
  70. exact hr2
  71. rewrite zero_or_succ_right_witness at le_total_right_witness
  72. exact le_total_right_witness
  73. symm
  74. exact hsum
add_eq_zero_left · unchanged support, not a new admission
forall a b. a + b = 0 -> a = 0
  1. intro a
  2. intro b
  3. intro h
  4. specialize add_eq_zero_right b
  5. specialize add_eq_zero_right a
  6. apply add_eq_zero_right
  7. trans a + b
  8. apply add_comm
  9. exact h
mul_eq_one_components · unchanged support, not a new admission
forall a b. a * b = 1 -> a = 1 /\ b = 1
  1. intro a
  2. induction a
  3. intro b
  4. intro h
  5. specialize mul_zero_left b
  6. rewrite mul_zero_left at h
  7. exfalso
  8. apply PA1
  9. symm
  10. exact h
  11. intro b
  12. induction b
  13. intro h
  14. rewrite PA5 at h
  15. exfalso
  16. apply PA1
  17. symm
  18. exact h
  19. intro h
  20. rewrite PA6 at h
  21. rewrite PA4 at h
  22. have hz : S a * b + a = 0
  23. apply PA2
  24. exact h
  25. specialize add_eq_zero_right (S a * b)
  26. specialize add_eq_zero_right a
  27. have ha0 : a = 0
  28. apply add_eq_zero_right
  29. exact hz
  30. split
  31. congr
  32. exact ha0
  33. rewrite ha0 at hz
  34. rewrite ha0 at hz
  35. rewrite PA3 at hz
  36. specialize one_mul b
  37. rewrite one_mul at hz
  38. congr
  39. exact hz
mul_ne_zero · unchanged support, not a new admission
forall a b. ~(a = 0) -> ~(b = 0) -> ~(a * b = 0)
  1. intro a
  2. intro b
  3. intro ha
  4. intro hb
  5. intro hab
  6. specialize mul_eq_zero a
  7. specialize mul_eq_zero b
  8. have hz : a = 0 \/ b = 0
  9. apply mul_eq_zero
  10. exact hab
  11. cases hz
  12. apply ha
  13. exact hz_left
  14. apply hb
  15. exact hz_right
multiple_zero · unchanged support, not a new admission
forall a. exists q. 0 = a * q
  1. intro a
  2. exists 0
  3. rewrite PA5
  4. refl
multiple_refl · unchanged support, not a new admission
forall a. exists q. a = a * q
  1. intro a
  2. exists 1
  3. symm
  4. apply mul_one
multiple_mul_right · unchanged support, not a new admission
forall a n m. (exists q. n = a * q) -> exists s. n * m = a * s
  1. intro a
  2. intro n
  3. intro m
  4. intro hn
  5. cases hn
  6. exists x * m
  7. rewrite hn_witness
  8. apply mul_assoc
multiple_trans · unchanged support, not a new admission
forall a b n. (exists q. n = a * q) -> (exists r. a = b * r) -> exists s. n = b * s
  1. intro a
  2. intro b
  3. intro n
  4. intro hn
  5. intro hab
  6. cases hn
  7. cases hab
  8. exists x1 * x
  9. rewrite hn_witness
  10. rewrite hab_witness
  11. apply mul_assoc
divisor_le_nonzero · unchanged support, not a new admission
forall d n. ~(n = 0) -> (exists q. n = d * q) -> exists k. k + d = n
  1. intro d
  2. intro n
  3. intro hn
  4. intro hd
  5. cases hd
  6. have hq : ~(x = 0)
  7. intro hx
  8. apply hn
  9. trans d * x
  10. exact hd_witness
  11. rewrite hx
  12. apply PA5
  13. specialize one_le_of_ne_zero x
  14. have h1q : exists k. k + 1 = x
  15. apply one_le_of_ne_zero
  16. exact hq
  17. cases h1q
  18. have hs : S x1 = x
  19. trans x1 + 1
  20. simp
  21. exact h1q_witness
  22. exists d * x1
  23. trans d * S x1
  24. symm
  25. apply PA6
  26. trans d * x
  27. congr
  28. refl
  29. exact hs
  30. symm
  31. exact hd_witness
divisor_one · unchanged support, not a new admission
forall d. (exists y. 1 = d * y) -> d = 1
  1. intro d
  2. intro h
  3. cases h
  4. specialize mul_eq_one_components d
  5. specialize mul_eq_one_components x
  6. have parts : d = 1 /\ x = 1
  7. apply mul_eq_one_components
  8. symm
  9. exact h_witness
  10. cases parts
  11. exact parts_left
factor_difference · unchanged support, not a new admission
forall c u v r. c * u = c * v + r -> exists w. r = c * w
  1. intro c
  2. induction u
  3. intro v
  4. intro r
  5. intro h
  6. rewrite PA5 at h
  7. have hr : r = 0
  8. apply add_eq_zero_right
  9. symm
  10. exact h
  11. exists 0
  12. rewrite hr
  13. rewrite PA5
  14. refl
  15. intro v
  16. induction v
  17. intro r
  18. intro h
  19. exists S u
  20. rewrite PA5 at h
  21. specialize zero_add r
  22. rewrite zero_add at h
  23. symm
  24. exact h
  25. intro r
  26. intro h
  27. have hred : c * u = c * v + r
  28. specialize add_right_cancel (c * u)
  29. specialize add_right_cancel (c * v + r)
  30. specialize add_right_cancel c
  31. apply add_right_cancel
  32. rewrite PA6 at h
  33. rewrite PA6 at h
  34. trans (c * v + c) + r
  35. exact h
  36. trans c * v + (c + r)
  37. apply add_assoc
  38. trans c * v + (r + c)
  39. congr
  40. refl
  41. apply add_comm
  42. symm
  43. apply add_assoc
  44. specialize IH v
  45. specialize IH r
  46. apply IH
  47. exact hred
divides_remainder · unchanged support, not a new admission
forall c a b q r. (exists u. a = c * u) -> (exists v. b = c * v) -> a = b * q + r -> exists w. r = c * w
  1. intro c
  2. intro a
  3. intro b
  4. intro q
  5. intro r
  6. intro ha
  7. intro hb
  8. intro h
  9. cases ha
  10. cases hb
  11. specialize factor_difference c
  12. specialize factor_difference x
  13. specialize factor_difference (x1 * q)
  14. specialize factor_difference r
  15. apply factor_difference
  16. trans a
  17. symm
  18. exact ha_witness
  19. trans b * q + r
  20. exact h
  21. congr
  22. rewrite hb_witness
  23. apply mul_assoc
  24. refl
divides_linear_step · unchanged support, not a new admission
forall c b q r. (exists u. b = c * u) -> (exists v. r = c * v) -> exists w. b * q + r = c * w
  1. intro c
  2. intro b
  3. intro q
  4. intro r
  5. intro hb
  6. intro hr
  7. cases hb
  8. cases hr
  9. exists x * q + x1
  10. rewrite hb_witness
  11. rewrite hr_witness
  12. trans c * (x * q) + c * x1
  13. congr
  14. apply mul_assoc
  15. refl
  16. symm
  17. apply mul_add
is_gcd_zero_right · unchanged support, not a new admission
forall a. (((exists x. a = a * x) /\ (exists y. 0 = a * y)) /\ forall c. (exists u. a = c * u) -> (exists v. 0 = c * v) -> exists w. a = c * w)
  1. intro a
  2. split
  3. split
  4. specialize multiple_refl a
  5. exact multiple_refl
  6. specialize multiple_zero a
  7. exact multiple_zero
  8. intro c
  9. intro ha
  10. intro hz
  11. exact ha
is_gcd_euclid_forward · unchanged support, not a new admission
forall d a b q r. a = b * q + r -> (((exists x. b = d * x) /\ (exists y. r = d * y)) /\ forall c. (exists u. b = c * u) -> (exists v. r = c * v) -> exists w. d = c * w) -> (((exists x. a = d * x) /\ (exists y. b = d * y)) /\ forall c. (exists u. a = c * u) -> (exists v. b = c * v) -> exists w. d = c * w)
  1. intro d
  2. intro a
  3. intro b
  4. intro q
  5. intro r
  6. intro hstep
  7. intro hg
  8. cases hg
  9. cases hg_left
  10. split
  11. split
  12. rewrite hstep
  13. specialize divides_linear_step d
  14. specialize divides_linear_step b
  15. specialize divides_linear_step q
  16. specialize divides_linear_step r
  17. apply divides_linear_step
  18. exact hg_left_left
  19. exact hg_left_right
  20. exact hg_left_left
  21. intro c
  22. intro hca
  23. intro hcb
  24. specialize hg_right c
  25. apply hg_right
  26. exact hcb
  27. specialize divides_remainder c
  28. specialize divides_remainder a
  29. specialize divides_remainder b
  30. specialize divides_remainder q
  31. specialize divides_remainder r
  32. apply divides_remainder
  33. exact hca
  34. exact hcb
  35. exact hstep
gcd_exists_up_to · unchanged support, not a new admission
forall B b. (exists t. t + b = B) -> forall a. exists d. (((exists x. a = d * x) /\ (exists y. b = d * y)) /\ forall c. (exists u. a = c * u) -> (exists v. b = c * v) -> exists w. d = c * w)
  1. intro B
  2. induction B
  3. intro b
  4. intro hb
  5. intro a
  6. have hb0 : b = 0
  7. apply le_zero
  8. exact hb
  9. exists a
  10. split
  11. split
  12. specialize multiple_refl a
  13. exact multiple_refl
  14. exists 0
  15. trans 0
  16. exact hb0
  17. symm
  18. apply PA5
  19. intro c
  20. intro hca
  21. intro hcb
  22. exact hca
  23. intro b
  24. intro hb
  25. intro a
  26. specialize le_eq_or_lt b
  27. specialize le_eq_or_lt (S B)
  28. have hsplit : b = S B \/ exists k. k + S b = S B
  29. apply le_eq_or_lt
  30. exact hb
  31. cases hsplit
  32. have hb0 : ~(b = 0)
  33. intro hzero
  34. apply PA1
  35. trans b
  36. symm
  37. exact hsplit_left
  38. exact hzero
  39. have hdiv : exists q r. a = b * q + r /\ exists k. k + S r = b
  40. apply division_remainder_exists
  41. exact hb0
  42. cases hdiv
  43. cases hdiv_witness
  44. cases hdiv_witness_witness
  45. have hrB : exists k. k + x1 = B
  46. apply le_of_succ_le_succ
  47. rewrite hsplit_left at hdiv_witness_witness_right
  48. exact hdiv_witness_witness_right
  49. have hsmall : exists d. (((exists u. b = d * u) /\ (exists v. x1 = d * v)) /\ forall c. (exists s. b = c * s) -> (exists t. x1 = c * t) -> exists w. d = c * w)
  50. specialize IH x1
  51. have hall : forall z. exists d. (((exists u. z = d * u) /\ (exists v. x1 = d * v)) /\ forall c. (exists s. z = c * s) -> (exists t. x1 = c * t) -> exists w. d = c * w)
  52. apply IH
  53. exact hrB
  54. specialize hall b
  55. exact hall
  56. cases hsmall
  57. exists x2
  58. specialize is_gcd_euclid_forward x2
  59. specialize is_gcd_euclid_forward a
  60. specialize is_gcd_euclid_forward b
  61. specialize is_gcd_euclid_forward x
  62. specialize is_gcd_euclid_forward x1
  63. apply is_gcd_euclid_forward
  64. exact hdiv_witness_witness_left
  65. exact hsmall_witness
  66. have hbB : exists k. k + b = B
  67. apply le_of_succ_le_succ
  68. exact hsplit_right
  69. specialize IH b
  70. have hall : forall z. exists d. (((exists u. z = d * u) /\ (exists v. b = d * v)) /\ forall c. (exists s. z = c * s) -> (exists t. b = c * t) -> exists w. d = c * w)
  71. apply IH
  72. exact hbB
  73. specialize hall a
  74. exact hall
gcd_exists_relational · unchanged support, not a new admission
forall a b. exists d. (((exists x. a = d * x) /\ (exists y. b = d * y)) /\ forall c. (exists u. a = c * u) -> (exists v. b = c * v) -> exists w. d = c * w)
  1. intro a
  2. intro b
  3. specialize gcd_exists_up_to b
  4. specialize gcd_exists_up_to b
  5. have hbb : exists t. t + b = b
  6. apply le_refl
  7. have hall : forall z. exists d. (((exists x. z = d * x) /\ (exists y. b = d * y)) /\ forall c. (exists u. z = c * u) -> (exists v. b = c * v) -> exists w. d = c * w)
  8. apply gcd_exists_up_to
  9. exact hbb
  10. specialize hall a
  11. exact hall
coprime_one_left · unchanged support, not a new admission
forall a d. (exists x. 1 = d * x) -> (exists y. a = d * y) -> d = 1
  1. intro a
  2. intro d
  3. intro h1
  4. intro ha
  5. specialize divisor_one d
  6. apply divisor_one
  7. exact h1
is_gcd_one_to_coprime · unchanged support, not a new admission
forall a b. (((exists x. a = 1 * x) /\ (exists y. b = 1 * y)) /\ forall d. (exists u. a = d * u) -> (exists v. b = d * v) -> exists w. 1 = d * w) -> forall c. (exists u. a = c * u) -> (exists v. b = c * v) -> c = 1
  1. intro a
  2. intro b
  3. intro hg
  4. intro c
  5. intro ha
  6. intro hb
  7. cases hg
  8. specialize hg_right c
  9. have hd : exists w. 1 = c * w
  10. apply hg_right
  11. exact ha
  12. exact hb
  13. specialize divisor_one c
  14. apply divisor_one
  15. exact hd
add_permute_outer · unchanged support, not a new admission
forall a b c d. (a + b) + (c + d) = (c + b) + (a + d)
  1. intro a
  2. intro b
  3. intro c
  4. intro d
  5. trans a + (b + (c + d))
  6. apply add_assoc
  7. trans a + ((b + c) + d)
  8. congr
  9. refl
  10. symm
  11. apply add_assoc
  12. trans a + ((c + b) + d)
  13. congr
  14. refl
  15. congr
  16. apply add_comm
  17. refl
  18. trans (a + (c + b)) + d
  19. symm
  20. apply add_assoc
  21. trans ((c + b) + a) + d
  22. congr
  23. apply add_comm
  24. refl
  25. apply add_assoc
balanced_bezout_euclid_step · unchanged support, not a new admission
forall a b q r d xp yp xn yn. a = b * q + r -> b * xp + r * yp = d + (b * xn + r * yn) -> a * yp + b * (xp + q * yn) = d + (a * yn + b * (xn + q * yp))
  1. intro a
  2. intro b
  3. intro q
  4. intro r
  5. intro d
  6. intro xp
  7. intro yp
  8. intro xn
  9. intro yn
  10. intro hab
  11. intro hbez
  12. rewrite hab
  13. trans ((b * q) * yp + r * yp) + b * (xp + q * yn)
  14. congr
  15. apply add_mul
  16. refl
  17. trans ((b * q) * yp + r * yp) + (b * xp + b * (q * yn))
  18. congr
  19. refl
  20. apply mul_add
  21. trans ((b * q) * yp + r * yp) + (b * xp + (b * q) * yn)
  22. congr
  23. refl
  24. congr
  25. refl
  26. symm
  27. apply mul_assoc
  28. trans (b * xp + r * yp) + ((b * q) * yp + (b * q) * yn)
  29. apply add_permute_outer
  30. trans (b * xp + r * yp) + ((b * q) * yn + (b * q) * yp)
  31. congr
  32. refl
  33. apply add_comm
  34. trans (d + (b * xn + r * yn)) + ((b * q) * yn + (b * q) * yp)
  35. congr
  36. exact hbez
  37. refl
  38. trans d + ((b * xn + r * yn) + ((b * q) * yn + (b * q) * yp))
  39. apply add_assoc
  40. trans d + (((b * q) * yn + r * yn) + (b * xn + (b * q) * yp))
  41. congr
  42. refl
  43. apply add_permute_outer
  44. trans d + ((b * q + r) * yn + (b * xn + (b * q) * yp))
  45. congr
  46. refl
  47. congr
  48. symm
  49. apply add_mul
  50. refl
  51. trans d + ((b * q + r) * yn + (b * xn + b * (q * yp)))
  52. congr
  53. refl
  54. congr
  55. refl
  56. congr
  57. refl
  58. apply mul_assoc
  59. congr
  60. refl
  61. congr
  62. congr
  63. symm
  64. exact hab
  65. refl
  66. symm
  67. apply mul_add
gcd_balanced_bezout_exists_up_to · unchanged support, not a new admission
forall B b. (exists t. t + b = B) -> forall a. exists d. ((((exists x. a = d * x) /\ (exists y. b = d * y)) /\ forall c. (exists u. a = c * u) -> (exists v. b = c * v) -> exists w. d = c * w) /\ exists xp yp xn yn. a * xp + b * yp = d + (a * xn + b * yn))
  1. intro B
  2. induction B
  3. intro b
  4. intro hb
  5. intro a
  6. have hb0 : b = 0
  7. apply le_zero
  8. exact hb
  9. exists a
  10. split
  11. rewrite hb0
  12. rewrite hb0
  13. specialize is_gcd_zero_right a
  14. exact is_gcd_zero_right
  15. exists 1
  16. exists 0
  17. exists 0
  18. exists 0
  19. rewrite hb0
  20. simp [zero_add]
  21. intro b
  22. intro hb
  23. intro a
  24. specialize le_eq_or_lt b
  25. specialize le_eq_or_lt (S B)
  26. have hsplit : b = S B \/ exists k. k + S b = S B
  27. apply le_eq_or_lt
  28. exact hb
  29. cases hsplit
  30. have hb0 : ~(b = 0)
  31. intro hzero
  32. apply PA1
  33. trans b
  34. symm
  35. exact hsplit_left
  36. exact hzero
  37. have hdiv : exists q r. a = b * q + r /\ exists k. k + S r = b
  38. apply division_remainder_exists
  39. exact hb0
  40. cases hdiv
  41. cases hdiv_witness
  42. cases hdiv_witness_witness
  43. have hrB : exists k. k + x1 = B
  44. apply le_of_succ_le_succ
  45. rewrite hsplit_left at hdiv_witness_witness_right
  46. exact hdiv_witness_witness_right
  47. have hsmall : exists d. ((((exists u. b = d * u) /\ (exists v. x1 = d * v)) /\ forall c. (exists s. b = c * s) -> (exists t. x1 = c * t) -> exists w. d = c * w) /\ exists xp yp xn yn. b * xp + x1 * yp = d + (b * xn + x1 * yn))
  48. specialize IH x1
  49. have hall : forall z. exists d. ((((exists u. z = d * u) /\ (exists v. x1 = d * v)) /\ forall c. (exists s. z = c * s) -> (exists t. x1 = c * t) -> exists w. d = c * w) /\ exists xp yp xn yn. z * xp + x1 * yp = d + (z * xn + x1 * yn))
  50. apply IH
  51. exact hrB
  52. specialize hall b
  53. exact hall
  54. cases hsmall
  55. cases hsmall_witness
  56. cases hsmall_witness_right
  57. cases hsmall_witness_right_witness
  58. cases hsmall_witness_right_witness_witness
  59. cases hsmall_witness_right_witness_witness_witness
  60. exists x2
  61. split
  62. apply is_gcd_euclid_forward
  63. exact hdiv_witness_witness_left
  64. exact hsmall_witness_left
  65. exists x4
  66. exists x3 + x * x6
  67. exists x6
  68. exists x5 + x * x4
  69. apply balanced_bezout_euclid_step
  70. exact hdiv_witness_witness_left
  71. exact hsmall_witness_right_witness_witness_witness_witness
  72. have hbB : exists k. k + b = B
  73. apply le_of_succ_le_succ
  74. exact hsplit_right
  75. specialize IH b
  76. have hall : forall z. exists d. ((((exists u. z = d * u) /\ (exists v. b = d * v)) /\ forall c. (exists s. z = c * s) -> (exists t. b = c * t) -> exists w. d = c * w) /\ exists xp yp xn yn. z * xp + b * yp = d + (z * xn + b * yn))
  77. apply IH
  78. exact hbB
  79. specialize hall a
  80. exact hall
gcd_balanced_bezout_exists · unchanged support, not a new admission
forall a b. exists d. ((((exists x. a = d * x) /\ (exists y. b = d * y)) /\ forall c. (exists u. a = c * u) -> (exists v. b = c * v) -> exists w. d = c * w) /\ exists xp yp xn yn. a * xp + b * yp = d + (a * xn + b * yn))
  1. intro a
  2. intro b
  3. specialize gcd_balanced_bezout_exists_up_to b
  4. specialize gcd_balanced_bezout_exists_up_to b
  5. have hbb : exists t. t + b = b
  6. apply le_refl
  7. have hall : forall z. exists d. ((((exists x. z = d * x) /\ (exists y. b = d * y)) /\ forall c. (exists u. z = c * u) -> (exists v. b = c * v) -> exists w. d = c * w) /\ exists xp yp xn yn. z * xp + b * yp = d + (z * xn + b * yn))
  8. apply gcd_balanced_bezout_exists_up_to
  9. exact hbb
  10. specialize hall a
  11. exact hall
balanced_combination_scale_right · unchanged support, not a new admission
forall a b d xp yp xn yn z. a * xp + b * yp = d + (a * xn + b * yn) -> a * (xp * z) + (b * z) * yp = d * z + (a * (xn * z) + (b * z) * yn)
  1. intro a
  2. intro b
  3. intro d
  4. intro xp
  5. intro yp
  6. intro xn
  7. intro yn
  8. intro z
  9. intro h
  10. trans (a * xp) * z + (b * z) * yp
  11. congr
  12. symm
  13. apply mul_assoc
  14. refl
  15. trans (a * xp) * z + (b * yp) * z
  16. congr
  17. refl
  18. trans b * (z * yp)
  19. apply mul_assoc
  20. trans b * (yp * z)
  21. congr
  22. refl
  23. apply mul_comm
  24. symm
  25. apply mul_assoc
  26. trans (a * xp + b * yp) * z
  27. symm
  28. apply add_mul
  29. trans (d + (a * xn + b * yn)) * z
  30. congr
  31. exact h
  32. refl
  33. trans d * z + (a * xn + b * yn) * z
  34. apply add_mul
  35. trans d * z + ((a * xn) * z + (b * yn) * z)
  36. congr
  37. refl
  38. apply add_mul
  39. trans d * z + (a * (xn * z) + (b * yn) * z)
  40. congr
  41. refl
  42. congr
  43. apply mul_assoc
  44. refl
  45. congr
  46. refl
  47. congr
  48. refl
  49. trans b * (yn * z)
  50. apply mul_assoc
  51. trans b * (z * yn)
  52. congr
  53. refl
  54. apply mul_comm
  55. symm
  56. apply mul_assoc
common_divisor_divides_balanced_result · unchanged support, not a new admission
forall c a b d xp yp xn yn. (exists u. a = c * u) -> (exists v. b = c * v) -> a * xp + b * yp = d + (a * xn + b * yn) -> exists w. d = c * w
  1. intro c
  2. intro a
  3. intro b
  4. intro d
  5. intro xp
  6. intro yp
  7. intro xn
  8. intro yn
  9. intro ha
  10. intro hb
  11. intro h
  12. cases ha
  13. cases hb
  14. specialize factor_difference c
  15. specialize factor_difference (x * xp + x1 * yp)
  16. specialize factor_difference (x * xn + x1 * yn)
  17. specialize factor_difference d
  18. apply factor_difference
  19. trans c * (x * xp) + c * (x1 * yp)
  20. apply mul_add
  21. trans (c * x) * xp + (c * x1) * yp
  22. congr
  23. symm
  24. apply mul_assoc
  25. symm
  26. apply mul_assoc
  27. trans a * xp + b * yp
  28. rewrite ha_witness
  29. rewrite hb_witness
  30. refl
  31. trans d + (a * xn + b * yn)
  32. exact h
  33. trans (a * xn + b * yn) + d
  34. apply add_comm
  35. trans ((c * x) * xn + (c * x1) * yn) + d
  36. rewrite ha_witness
  37. rewrite hb_witness
  38. refl
  39. trans (c * (x * xn) + c * (x1 * yn)) + d
  40. congr
  41. congr
  42. apply mul_assoc
  43. apply mul_assoc
  44. refl
  45. congr
  46. symm
  47. apply mul_add
  48. refl
coprime_balanced_bezout · unchanged support, not a new admission
forall a b. (forall d. (exists x. a = d * x) -> (exists y. b = d * y) -> d = 1) -> exists xp yp xn yn. a * xp + b * yp = 1 + (a * xn + b * yn)
  1. intro a
  2. intro b
  3. intro hcop
  4. have hgb : exists d. ((((exists x. a = d * x) /\ (exists y. b = d * y)) /\ forall c. (exists u. a = c * u) -> (exists v. b = c * v) -> exists w. d = c * w) /\ exists xp yp xn yn. a * xp + b * yp = d + (a * xn + b * yn))
  5. apply gcd_balanced_bezout_exists
  6. cases hgb
  7. cases hgb_witness
  8. cases hgb_witness_left
  9. cases hgb_witness_left_left
  10. have hd : x = 1
  11. specialize hcop x
  12. apply hcop
  13. exact hgb_witness_left_left_left
  14. exact hgb_witness_left_left_right
  15. cases hgb_witness_right
  16. cases hgb_witness_right_witness
  17. cases hgb_witness_right_witness_witness
  18. cases hgb_witness_right_witness_witness_witness
  19. exists x1
  20. exists x2
  21. exists x3
  22. exists x4
  23. rewrite hd at hgb_witness_right_witness_witness_witness_witness
  24. exact hgb_witness_right_witness_witness_witness_witness
gauss_coprime_cancel · unchanged support, not a new admission
forall a b z. (forall d. (exists x. a = d * x) -> (exists y. b = d * y) -> d = 1) -> (exists q. b * z = a * q) -> exists w. z = a * w
  1. intro a
  2. intro b
  3. intro z
  4. intro hcop
  5. intro hdiv
  6. have hbez : exists xp yp xn yn. a * xp + b * yp = 1 + (a * xn + b * yn)
  7. apply coprime_balanced_bezout
  8. exact hcop
  9. cases hbez
  10. cases hbez_witness
  11. cases hbez_witness_witness
  12. cases hbez_witness_witness_witness
  13. have hscaled : a * (x * z) + (b * z) * x1 = 1 * z + (a * (x2 * z) + (b * z) * x3)
  14. apply balanced_combination_scale_right
  15. exact hbez_witness_witness_witness_witness
  16. specialize one_mul z
  17. rewrite one_mul at hscaled
  18. specialize common_divisor_divides_balanced_result a
  19. specialize common_divisor_divides_balanced_result a
  20. specialize common_divisor_divides_balanced_result (b * z)
  21. specialize common_divisor_divides_balanced_result z
  22. specialize common_divisor_divides_balanced_result (x * z)
  23. specialize common_divisor_divides_balanced_result x1
  24. specialize common_divisor_divides_balanced_result (x2 * z)
  25. specialize common_divisor_divides_balanced_result x3
  26. apply common_divisor_divides_balanced_result
  27. specialize multiple_refl a
  28. exact multiple_refl
  29. exact hdiv
  30. exact hscaled
eq_decidable · unchanged support, not a new admission
forall a b. a = b \/ ~(a = b)
  1. intro a
  2. induction a
  3. intro b
  4. induction b
  5. left
  6. refl
  7. right
  8. intro h
  9. apply PA1
  10. symm
  11. exact h
  12. intro b
  13. induction b
  14. right
  15. intro h
  16. apply PA1
  17. exact h
  18. specialize IH b
  19. cases IH
  20. left
  21. congr
  22. exact IH_left
  23. right
  24. intro h
  25. apply IH_right
  26. apply PA2
  27. exact h
prime_nonzero · unchanged support, not a new admission
forall p. (~(p = 1) /\ forall a b. p = a * b -> a = 1 \/ b = 1) -> ~(p = 0)
  1. intro p
  2. intro hp
  3. intro hp0
  4. cases hp
  5. specialize hp_right 0
  6. specialize hp_right 0
  7. have hunit : 0 = 1 \/ 0 = 1
  8. apply hp_right
  9. rewrite hp0
  10. symm
  11. apply mul_zero_left
  12. cases hunit
  13. specialize succ_ne_zero 0
  14. apply succ_ne_zero
  15. symm
  16. exact hunit_left
  17. specialize succ_ne_zero 0
  18. apply succ_ne_zero
  19. symm
  20. exact hunit_right
prime_divisor_eq_one_or_self · unchanged support, not a new admission
forall p g. (~(p = 1) /\ forall c d. p = c * d -> c = 1 \/ d = 1) -> (exists x. p = g * x) -> g = 1 \/ p = g
  1. intro p
  2. intro g
  3. intro hp
  4. intro hdiv
  5. cases hp
  6. cases hdiv
  7. specialize hp_right g
  8. specialize hp_right x
  9. have hfactor : g = 1 \/ x = 1
  10. apply hp_right
  11. exact hdiv_witness
  12. cases hfactor
  13. left
  14. exact hfactor_left
  15. right
  16. trans g * x
  17. exact hdiv_witness
  18. rewrite hfactor_right
  19. apply mul_one
mod_eq_refl · unchanged support, not a new admission
forall m a. exists u v. a + m * u = a + m * v
  1. intro m
  2. intro a
  3. exists 0
  4. exists 0
  5. refl
mod_eq_symm · unchanged support, not a new admission
forall m a b. (exists u v. a + m * u = b + m * v) -> exists r s. b + m * r = a + m * s
  1. intro m
  2. intro a
  3. intro b
  4. intro h
  5. cases h
  6. cases h_witness
  7. exists x1
  8. exists x
  9. symm
  10. exact h_witness_witness
mod_eq_trans · unchanged support, not a new admission
forall m a b c. (exists u v. a + m * u = b + m * v) -> (exists r s. b + m * r = c + m * s) -> exists x y. a + m * x = c + m * y
  1. intro m
  2. intro a
  3. intro b
  4. intro c
  5. intro hab
  6. intro hbc
  7. cases hab
  8. cases hab_witness
  9. cases hbc
  10. cases hbc_witness
  11. exists x + x2
  12. exists x3 + x1
  13. trans a + (m * x + m * x2)
  14. congr
  15. refl
  16. apply mul_add
  17. trans (a + m * x) + m * x2
  18. symm
  19. apply add_assoc
  20. trans (b + m * x1) + m * x2
  21. congr
  22. exact hab_witness_witness
  23. refl
  24. trans b + (m * x1 + m * x2)
  25. apply add_assoc
  26. trans b + (m * x2 + m * x1)
  27. congr
  28. refl
  29. apply add_comm
  30. trans (b + m * x2) + m * x1
  31. symm
  32. apply add_assoc
  33. trans (c + m * x3) + m * x1
  34. congr
  35. exact hbc_witness_witness
  36. refl
  37. trans c + (m * x3 + m * x1)
  38. apply add_assoc
  39. congr
  40. refl
  41. symm
  42. apply mul_add
mod_eq_add · unchanged support, not a new admission
forall m a b c d. (exists u v. a + m * u = b + m * v) -> (exists r s. c + m * r = d + m * s) -> exists x y. (a + c) + m * x = (b + d) + m * y
  1. intro m
  2. intro a
  3. intro b
  4. intro c
  5. intro d
  6. intro hab
  7. intro hcd
  8. cases hab
  9. cases hab_witness
  10. cases hcd
  11. cases hcd_witness
  12. exists x2 + x
  13. exists x3 + x1
  14. trans (a + c) + (m * x2 + m * x)
  15. congr
  16. refl
  17. apply mul_add
  18. trans (m * x2 + c) + (a + m * x)
  19. apply add_permute_outer
  20. trans (c + m * x2) + (a + m * x)
  21. congr
  22. apply add_comm
  23. refl
  24. trans (a + m * x) + (c + m * x2)
  25. apply add_comm
  26. trans (b + m * x1) + (d + m * x3)
  27. congr
  28. exact hab_witness_witness
  29. exact hcd_witness_witness
  30. trans (d + m * x3) + (b + m * x1)
  31. apply add_comm
  32. trans (m * x3 + d) + (b + m * x1)
  33. congr
  34. apply add_comm
  35. refl
  36. trans (b + d) + (m * x3 + m * x1)
  37. symm
  38. apply add_permute_outer
  39. congr
  40. refl
  41. symm
  42. apply mul_add
mod_eq_mul_right · unchanged support, not a new admission
forall m a b c. (exists u v. a + m * u = b + m * v) -> exists r s. (a * c) + m * r = (b * c) + m * s
  1. intro m
  2. intro a
  3. intro b
  4. intro c
  5. intro h
  6. cases h
  7. cases h_witness
  8. exists x * c
  9. exists x1 * c
  10. trans a * c + (m * x) * c
  11. congr
  12. refl
  13. symm
  14. apply mul_assoc
  15. trans (a + m * x) * c
  16. symm
  17. apply add_mul
  18. trans (b + m * x1) * c
  19. congr
  20. exact h_witness_witness
  21. refl
  22. trans b * c + (m * x1) * c
  23. apply add_mul
  24. congr
  25. refl
  26. apply mul_assoc
mod_eq_mul_left · unchanged support, not a new admission
forall m a b c. (exists u v. a + m * u = b + m * v) -> exists r s. (c * a) + m * r = (c * b) + m * s
  1. intro m
  2. intro a
  3. intro b
  4. intro c
  5. intro h
  6. specialize mod_eq_mul_right m
  7. specialize mod_eq_mul_right a
  8. specialize mod_eq_mul_right b
  9. specialize mod_eq_mul_right c
  10. have hr : exists r s. (a * c) + m * r = (b * c) + m * s
  11. apply mod_eq_mul_right
  12. exact h
  13. cases hr
  14. cases hr_witness
  15. exists x
  16. exists x1
  17. trans a * c + m * x
  18. congr
  19. apply mul_comm
  20. refl
  21. trans b * c + m * x1
  22. exact hr_witness_witness
  23. congr
  24. apply mul_comm
  25. refl
mod_eq_mul · unchanged support, not a new admission
forall m a b c d. (exists u v. a + m * u = b + m * v) -> (exists r s. c + m * r = d + m * s) -> exists x y. (a * c) + m * x = (b * d) + m * y
  1. intro m
  2. intro a
  3. intro b
  4. intro c
  5. intro d
  6. intro hab
  7. intro hcd
  8. have hacbc : exists r s. (a * c) + m * r = (b * c) + m * s
  9. specialize mod_eq_mul_right m
  10. specialize mod_eq_mul_right a
  11. specialize mod_eq_mul_right b
  12. specialize mod_eq_mul_right c
  13. apply mod_eq_mul_right
  14. exact hab
  15. have hbcbd : exists r s. (b * c) + m * r = (b * d) + m * s
  16. specialize mod_eq_mul_left m
  17. specialize mod_eq_mul_left c
  18. specialize mod_eq_mul_left d
  19. specialize mod_eq_mul_left b
  20. apply mod_eq_mul_left
  21. exact hcd
  22. specialize mod_eq_trans m
  23. specialize mod_eq_trans (a * c)
  24. specialize mod_eq_trans (b * c)
  25. specialize mod_eq_trans (b * d)
  26. apply mod_eq_trans
  27. exact hacbc
  28. exact hbcbd
remainder_decomposition_to_mod_eq · unchanged support, not a new admission
forall m b q x. b = q * m + x -> exists u v. b + m * u = x + m * v
  1. intro m
  2. intro b
  3. intro q
  4. intro x
  5. intro h
  6. exists 0
  7. exists q
  8. rewrite PA5
  9. rewrite PA3
  10. trans q * m + x
  11. exact h
  12. trans x + q * m
  13. apply add_comm
  14. congr
  15. refl
  16. apply mul_comm
mod_eq_bounded_unique · unchanged support, not a new admission
forall m a b. (exists ha. ha + S a = m) -> (exists hb. hb + S b = m) -> (exists u v. a + m * u = b + m * v) -> a = b
  1. intro m
  2. intro a
  3. intro b
  4. intro ha
  5. intro hb
  6. intro hab
  7. cases hab
  8. cases hab_witness
  9. have hda : a + m * x = m * x + a
  10. apply add_comm
  11. have hdb : a + m * x = m * x1 + b
  12. trans b + m * x1
  13. exact hab_witness_witness
  14. apply add_comm
  15. specialize division_remainder_unique m
  16. specialize division_remainder_unique (a + m * x)
  17. specialize division_remainder_unique x
  18. specialize division_remainder_unique a
  19. specialize division_remainder_unique x1
  20. specialize division_remainder_unique b
  21. have huniq : x = x1 /\ a = b
  22. apply division_remainder_unique
  23. exact hda
  24. exact ha
  25. exact hdb
  26. exact hb
  27. cases huniq
  28. exact huniq_right
mod_eq_to_remainder_decomposition · unchanged support, not a new admission
forall m b x. ~(m = 0) -> (exists h. h + S x = m) -> (exists u v. b + m * u = x + m * v) -> exists q. b = q * m + x
  1. intro m
  2. intro b
  3. intro x
  4. intro hm
  5. intro hx
  6. intro hbx
  7. have hdiv : exists q r. b = m * q + r /\ exists h. h + S r = m
  8. specialize division_remainder_exists m
  9. specialize division_remainder_exists b
  10. apply division_remainder_exists
  11. exact hm
  12. cases hdiv
  13. cases hdiv_witness
  14. cases hdiv_witness_witness
  15. have hremb : exists u v. x2 + m * u = b + m * v
  16. exists x1
  17. exists 0
  18. trans m * x1 + x2
  19. apply add_comm
  20. trans b
  21. symm
  22. exact hdiv_witness_witness_left
  23. symm
  24. rewrite PA5
  25. apply PA3
  26. have hremx : exists u v. x2 + m * u = x + m * v
  27. specialize mod_eq_trans m
  28. specialize mod_eq_trans x2
  29. specialize mod_eq_trans b
  30. specialize mod_eq_trans x
  31. apply mod_eq_trans
  32. exact hremb
  33. exact hbx
  34. have hrx : x2 = x
  35. specialize mod_eq_bounded_unique m
  36. specialize mod_eq_bounded_unique x2
  37. specialize mod_eq_bounded_unique x
  38. apply mod_eq_bounded_unique
  39. exact hdiv_witness_witness_right
  40. exact hx
  41. exact hremx
  42. exists x1
  43. trans m * x1 + x2
  44. exact hdiv_witness_witness_left
  45. trans x1 * m + x2
  46. congr
  47. apply mul_comm
  48. refl
  49. congr
  50. refl
  51. exact hrx
beta_modulus_nonzero · unchanged support, not a new admission
forall c i. ~(S ((S i) * c) = 0)
  1. intro c
  2. intro i
  3. specialize succ_ne_zero ((S i) * c)
  4. exact succ_ne_zero
beta_at_self_of_bound · unchanged support, not a new admission
forall c i x. (exists h. h + S x = S ((S i) * c)) -> ((exists h. h + S x = S ((S i) * c)) /\ exists q. x = q * S ((S i) * c) + x)
  1. intro c
  2. intro i
  3. intro x
  4. intro hx
  5. split
  6. exact hx
  7. exists 0
  8. specialize mul_zero_left (S ((S i) * c))
  9. rewrite mul_zero_left
  10. specialize zero_add x
  11. rewrite zero_add
  12. refl
beta_at_exists · unchanged support, not a new admission
forall b c i. exists x. ((exists h. h + S x = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + x)
  1. intro b
  2. intro c
  3. intro i
  4. have hm0 : ~(S ((S i) * c) = 0)
  5. specialize beta_modulus_nonzero c
  6. specialize beta_modulus_nonzero i
  7. exact beta_modulus_nonzero
  8. specialize division_remainder_exists (S ((S i) * c))
  9. specialize division_remainder_exists b
  10. have hdiv : exists q r. b = S ((S i) * c) * q + r /\ exists h. h + S r = S ((S i) * c)
  11. apply division_remainder_exists
  12. exact hm0
  13. cases hdiv
  14. cases hdiv_witness
  15. cases hdiv_witness_witness
  16. exists x1
  17. split
  18. exact hdiv_witness_witness_right
  19. exists x
  20. trans S ((S i) * c) * x + x1
  21. exact hdiv_witness_witness_left
  22. congr
  23. apply mul_comm
  24. refl
beta_at_unique · unchanged support, not a new admission
forall b c i x y. ((exists h. h + S x = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + x) -> ((exists h. h + S y = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + y) -> x = y
  1. intro b
  2. intro c
  3. intro i
  4. intro x
  5. intro y
  6. intro hx
  7. intro hy
  8. cases hx
  9. cases hy
  10. cases hx_right
  11. cases hy_right
  12. have hdx : b = S ((S i) * c) * x1 + x
  13. trans x1 * S ((S i) * c) + x
  14. exact hx_right_witness
  15. congr
  16. apply mul_comm
  17. refl
  18. have hdy : b = S ((S i) * c) * x2 + y
  19. trans x2 * S ((S i) * c) + y
  20. exact hy_right_witness
  21. congr
  22. apply mul_comm
  23. refl
  24. specialize division_remainder_unique (S ((S i) * c))
  25. specialize division_remainder_unique b
  26. specialize division_remainder_unique x1
  27. specialize division_remainder_unique x
  28. specialize division_remainder_unique x2
  29. specialize division_remainder_unique y
  30. have huniq : x1 = x2 /\ x = y
  31. apply division_remainder_unique
  32. exact hdx
  33. exact hx_left
  34. exact hdy
  35. exact hy_left
  36. cases huniq
  37. exact huniq_right
beta_at_of_mod_eq_bound · unchanged support, not a new admission
forall b c i x. (exists h. h + S x = S ((S i) * c)) -> (exists u v. b + S ((S i) * c) * u = x + S ((S i) * c) * v) -> ((exists h. h + S x = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + x)
  1. intro b
  2. intro c
  3. intro i
  4. intro x
  5. intro hx
  6. intro hmod
  7. split
  8. exact hx
  9. specialize mod_eq_to_remainder_decomposition (S ((S i) * c))
  10. specialize mod_eq_to_remainder_decomposition b
  11. specialize mod_eq_to_remainder_decomposition x
  12. apply mod_eq_to_remainder_decomposition
  13. specialize beta_modulus_nonzero c
  14. specialize beta_modulus_nonzero i
  15. exact beta_modulus_nonzero
  16. exact hx
  17. exact hmod
dvd_to_mod_zero · unchanged support, not a new admission
forall m a. (exists k. a = m * k) -> exists u v. a + m * u = 0 + m * v
  1. intro m
  2. intro a
  3. intro h
  4. cases h
  5. exists 0
  6. exists x
  7. rewrite h_witness
  8. simp [zero_add]
bezout_mod_left · unchanged support, not a new admission
forall m n xp yp xn yn. m * xp + n * yp = 1 + (m * xn + n * yn) -> exists u v. n * yp + m * u = (1 + n * yn) + m * v
  1. intro m
  2. intro n
  3. intro xp
  4. intro yp
  5. intro xn
  6. intro yn
  7. intro h
  8. exists xp
  9. exists xn
  10. trans m * xp + n * yp
  11. apply add_comm
  12. trans 1 + (m * xn + n * yn)
  13. exact h
  14. trans 1 + (n * yn + m * xn)
  15. congr
  16. refl
  17. apply add_comm
  18. symm
  19. apply add_assoc
bezout_mod_right · unchanged support, not a new admission
forall m n xp yp xn yn. m * xp + n * yp = 1 + (m * xn + n * yn) -> exists u v. m * xp + n * u = (1 + m * xn) + n * v
  1. intro m
  2. intro n
  3. intro xp
  4. intro yp
  5. intro xn
  6. intro yn
  7. intro h
  8. exists yp
  9. exists yn
  10. trans 1 + (m * xn + n * yn)
  11. exact h
  12. symm
  13. apply add_assoc
mod_eq_predecessor_cancel · unchanged support, not a new admission
forall k a z. exists u v. ((a + z) + k * z) + S k * u = a + S k * v
  1. intro k
  2. intro a
  3. intro z
  4. exists 0
  5. exists z
  6. rewrite PA5
  7. rewrite PA3
  8. specialize mul_succ_left k
  9. specialize mul_succ_left z
  10. rewrite mul_succ_left
  11. trans a + (z + k * z)
  12. apply add_assoc
  13. congr
  14. refl
  15. apply add_comm
binary_crt · unchanged support, not a new admission
forall m n a b. ~(m = 0) -> ~(n = 0) -> (forall d. (exists u. m = d * u) -> (exists v. n = d * v) -> d = 1) -> exists x. (exists u v. x + m * u = a + m * v) /\ (exists r s. x + n * r = b + n * s)
  1. intro m
  2. intro n
  3. intro a
  4. intro b
  5. intro hm
  6. intro hn
  7. intro hcop
  8. have hms : exists k. m = S k
  9. specialize nonzero_is_succ m
  10. apply nonzero_is_succ
  11. exact hm
  12. have hns : exists k. n = S k
  13. specialize nonzero_is_succ n
  14. apply nonzero_is_succ
  15. exact hn
  16. have hbez : exists xp yp xn yn. m * xp + n * yp = 1 + (m * xn + n * yn)
  17. specialize coprime_balanced_bezout m
  18. specialize coprime_balanced_bezout n
  19. apply coprime_balanced_bezout
  20. exact hcop
  21. cases hms
  22. cases hns
  23. cases hbez
  24. cases hbez_witness
  25. cases hbez_witness_witness
  26. cases hbez_witness_witness_witness
  27. have hbl : exists u v. n * x3 + m * u = (1 + n * x5) + m * v
  28. specialize bezout_mod_left m
  29. specialize bezout_mod_left n
  30. specialize bezout_mod_left x2
  31. specialize bezout_mod_left x3
  32. specialize bezout_mod_left x4
  33. specialize bezout_mod_left x5
  34. apply bezout_mod_left
  35. exact hbez_witness_witness_witness_witness
  36. have hbr : exists u v. m * x2 + n * u = (1 + m * x4) + n * v
  37. specialize bezout_mod_right m
  38. specialize bezout_mod_right n
  39. specialize bezout_mod_right x2
  40. specialize bezout_mod_right x3
  41. specialize bezout_mod_right x4
  42. specialize bezout_mod_right x5
  43. apply bezout_mod_right
  44. exact hbez_witness_witness_witness_witness
  45. have hal0 : exists u v. (a * (n * x3)) + m * u = (a * (1 + n * x5)) + m * v
  46. specialize mod_eq_mul_left m
  47. specialize mod_eq_mul_left (n * x3)
  48. specialize mod_eq_mul_left (1 + n * x5)
  49. specialize mod_eq_mul_left a
  50. apply mod_eq_mul_left
  51. exact hbl
  52. have hal : exists u v. (a * (n * x3)) + m * u = (a + a * (n * x5)) + m * v
  53. have haexpand : a * (1 + n * x5) = a + a * (n * x5)
  54. trans a * 1 + a * (n * x5)
  55. apply mul_add
  56. congr
  57. apply mul_one
  58. refl
  59. rewrite <- haexpand
  60. exact hal0
  61. have hbm : exists u v. (b * (m * x2)) + m * u = 0 + m * v
  62. apply dvd_to_mod_zero
  63. exists b * x2
  64. trans (b * m) * x2
  65. symm
  66. apply mul_assoc
  67. trans (m * b) * x2
  68. congr
  69. apply mul_comm
  70. refl
  71. apply mul_assoc
  72. have hym : exists u v. ((a * (n * x3)) + (b * (m * x2))) + m * u = ((a + a * (n * x5)) + 0) + m * v
  73. specialize mod_eq_add m
  74. specialize mod_eq_add (a * (n * x3))
  75. specialize mod_eq_add (a + a * (n * x5))
  76. specialize mod_eq_add (b * (m * x2))
  77. specialize mod_eq_add 0
  78. apply mod_eq_add
  79. exact hal
  80. exact hbm
  81. have hym_norm : exists u v. ((a * (n * x3)) + (b * (m * x2))) + m * u = (a + a * (n * x5)) + m * v
  82. have hym_zero : (a + a * (n * x5)) + 0 = a + a * (n * x5)
  83. rewrite PA3
  84. refl
  85. rewrite <- hym_zero
  86. exact hym
  87. have hkm : exists u v. (x * (a * (n * x5))) + m * u = (x * (a * (n * x5))) + m * v
  88. specialize mod_eq_refl m
  89. specialize mod_eq_refl (x * (a * (n * x5)))
  90. apply mod_eq_refl
  91. have hymk : exists u v. (((a * (n * x3)) + (b * (m * x2))) + (x * (a * (n * x5)))) + m * u = ((a + a * (n * x5)) + (x * (a * (n * x5)))) + m * v
  92. specialize mod_eq_add m
  93. specialize mod_eq_add ((a * (n * x3)) + (b * (m * x2)))
  94. specialize mod_eq_add (a + a * (n * x5))
  95. specialize mod_eq_add (x * (a * (n * x5)))
  96. specialize mod_eq_add (x * (a * (n * x5)))
  97. apply mod_eq_add
  98. exact hym_norm
  99. exact hkm
  100. have hcancelm : exists u v. ((a + a * (n * x5)) + x * (a * (n * x5))) + S x * u = a + S x * v
  101. specialize mod_eq_predecessor_cancel x
  102. specialize mod_eq_predecessor_cancel a
  103. specialize mod_eq_predecessor_cancel (a * (n * x5))
  104. apply mod_eq_predecessor_cancel
  105. rewrite <- hms_witness at hcancelm
  106. rewrite <- hms_witness at hcancelm
  107. have hbasem : exists u v. (((a * (n * x3)) + (b * (m * x2))) + (x * (a * (n * x5)))) + m * u = a + m * v
  108. specialize mod_eq_trans m
  109. specialize mod_eq_trans (((a * (n * x3)) + (b * (m * x2))) + (x * (a * (n * x5))))
  110. specialize mod_eq_trans ((a + a * (n * x5)) + (x * (a * (n * x5))))
  111. specialize mod_eq_trans a
  112. apply mod_eq_trans
  113. exact hymk
  114. exact hcancelm
  115. have hknznm : exists u v. (x1 * (b * (m * x4))) + m * u = 0 + m * v
  116. apply dvd_to_mod_zero
  117. exists x1 * (b * x4)
  118. trans x1 * ((b * m) * x4)
  119. congr
  120. refl
  121. symm
  122. apply mul_assoc
  123. trans x1 * ((m * b) * x4)
  124. congr
  125. refl
  126. congr
  127. apply mul_comm
  128. refl
  129. trans x1 * (m * (b * x4))
  130. congr
  131. refl
  132. apply mul_assoc
  133. trans (x1 * m) * (b * x4)
  134. symm
  135. apply mul_assoc
  136. trans (m * x1) * (b * x4)
  137. congr
  138. apply mul_comm
  139. refl
  140. apply mul_assoc
  141. have hfinalm0 : exists u v. ((((a * (n * x3)) + (b * (m * x2))) + (x * (a * (n * x5)))) + (x1 * (b * (m * x4)))) + m * u = (a + 0) + m * v
  142. specialize mod_eq_add m
  143. specialize mod_eq_add (((a * (n * x3)) + (b * (m * x2))) + (x * (a * (n * x5))))
  144. specialize mod_eq_add a
  145. specialize mod_eq_add (x1 * (b * (m * x4)))
  146. specialize mod_eq_add 0
  147. apply mod_eq_add
  148. exact hbasem
  149. exact hknznm
  150. have hazerom : exists u v. (a + 0) + m * u = a + m * v
  151. exists 0
  152. exists 0
  153. simp
  154. have hfinalm : exists u v. ((((a * (n * x3)) + (b * (m * x2))) + (x * (a * (n * x5)))) + (x1 * (b * (m * x4)))) + m * u = a + m * v
  155. specialize mod_eq_trans m
  156. specialize mod_eq_trans ((((a * (n * x3)) + (b * (m * x2))) + (x * (a * (n * x5)))) + (x1 * (b * (m * x4))))
  157. specialize mod_eq_trans (a + 0)
  158. specialize mod_eq_trans a
  159. apply mod_eq_trans
  160. exact hfinalm0
  161. exact hazerom
  162. have hbn0 : exists u v. (b * (m * x2)) + n * u = (b * (1 + m * x4)) + n * v
  163. specialize mod_eq_mul_left n
  164. specialize mod_eq_mul_left (m * x2)
  165. specialize mod_eq_mul_left (1 + m * x4)
  166. specialize mod_eq_mul_left b
  167. apply mod_eq_mul_left
  168. exact hbr
  169. have hbn : exists u v. (b * (m * x2)) + n * u = (b + b * (m * x4)) + n * v
  170. have hbexpand : b * (1 + m * x4) = b + b * (m * x4)
  171. trans b * 1 + b * (m * x4)
  172. apply mul_add
  173. congr
  174. apply mul_one
  175. refl
  176. rewrite <- hbexpand
  177. exact hbn0
  178. have han : exists u v. (a * (n * x3)) + n * u = 0 + n * v
  179. apply dvd_to_mod_zero
  180. exists a * x3
  181. trans (a * n) * x3
  182. symm
  183. apply mul_assoc
  184. trans (n * a) * x3
  185. congr
  186. apply mul_comm
  187. refl
  188. apply mul_assoc
  189. have hyn0 : exists u v. ((a * (n * x3)) + (b * (m * x2))) + n * u = (0 + (b + b * (m * x4))) + n * v
  190. specialize mod_eq_add n
  191. specialize mod_eq_add (a * (n * x3))
  192. specialize mod_eq_add 0
  193. specialize mod_eq_add (b * (m * x2))
  194. specialize mod_eq_add (b + b * (m * x4))
  195. apply mod_eq_add
  196. exact han
  197. exact hbn
  198. have hyn_norm : exists u v. ((a * (n * x3)) + (b * (m * x2))) + n * u = (b + b * (m * x4)) + n * v
  199. have hyn_zero : 0 + (b + b * (m * x4)) = b + b * (m * x4)
  200. specialize zero_add (b + b * (m * x4))
  201. exact zero_add
  202. rewrite <- hyn_zero
  203. exact hyn0
  204. have hkmz : exists u v. (x * (a * (n * x5))) + n * u = 0 + n * v
  205. apply dvd_to_mod_zero
  206. exists x * (a * x5)
  207. trans x * ((a * n) * x5)
  208. congr
  209. refl
  210. symm
  211. apply mul_assoc
  212. trans x * ((n * a) * x5)
  213. congr
  214. refl
  215. congr
  216. apply mul_comm
  217. refl
  218. trans x * (n * (a * x5))
  219. congr
  220. refl
  221. apply mul_assoc
  222. trans (x * n) * (a * x5)
  223. symm
  224. apply mul_assoc
  225. trans (n * x) * (a * x5)
  226. congr
  227. apply mul_comm
  228. refl
  229. apply mul_assoc
  230. have hyn1 : exists u v. (((a * (n * x3)) + (b * (m * x2))) + (x * (a * (n * x5)))) + n * u = ((b + b * (m * x4)) + 0) + n * v
  231. specialize mod_eq_add n
  232. specialize mod_eq_add ((a * (n * x3)) + (b * (m * x2)))
  233. specialize mod_eq_add (b + b * (m * x4))
  234. specialize mod_eq_add (x * (a * (n * x5)))
  235. specialize mod_eq_add 0
  236. apply mod_eq_add
  237. exact hyn_norm
  238. exact hkmz
  239. have hyn1_norm : exists u v. (((a * (n * x3)) + (b * (m * x2))) + (x * (a * (n * x5)))) + n * u = (b + b * (m * x4)) + n * v
  240. have hyn1_zero : (b + b * (m * x4)) + 0 = b + b * (m * x4)
  241. rewrite PA3
  242. refl
  243. rewrite <- hyn1_zero
  244. exact hyn1
  245. have hkn : exists u v. (x1 * (b * (m * x4))) + n * u = (x1 * (b * (m * x4))) + n * v
  246. specialize mod_eq_refl n
  247. specialize mod_eq_refl (x1 * (b * (m * x4)))
  248. apply mod_eq_refl
  249. have hynk : exists u v. ((((a * (n * x3)) + (b * (m * x2))) + (x * (a * (n * x5)))) + (x1 * (b * (m * x4)))) + n * u = ((b + b * (m * x4)) + (x1 * (b * (m * x4)))) + n * v
  250. specialize mod_eq_add n
  251. specialize mod_eq_add (((a * (n * x3)) + (b * (m * x2))) + (x * (a * (n * x5))))
  252. specialize mod_eq_add (b + b * (m * x4))
  253. specialize mod_eq_add (x1 * (b * (m * x4)))
  254. specialize mod_eq_add (x1 * (b * (m * x4)))
  255. apply mod_eq_add
  256. exact hyn1_norm
  257. exact hkn
  258. have hcanceln : exists u v. ((b + b * (m * x4)) + x1 * (b * (m * x4))) + S x1 * u = b + S x1 * v
  259. specialize mod_eq_predecessor_cancel x1
  260. specialize mod_eq_predecessor_cancel b
  261. specialize mod_eq_predecessor_cancel (b * (m * x4))
  262. apply mod_eq_predecessor_cancel
  263. rewrite <- hns_witness at hcanceln
  264. rewrite <- hns_witness at hcanceln
  265. have hfinaln : exists u v. ((((a * (n * x3)) + (b * (m * x2))) + (x * (a * (n * x5)))) + (x1 * (b * (m * x4)))) + n * u = b + n * v
  266. specialize mod_eq_trans n
  267. specialize mod_eq_trans ((((a * (n * x3)) + (b * (m * x2))) + (x * (a * (n * x5)))) + (x1 * (b * (m * x4))))
  268. specialize mod_eq_trans ((b + b * (m * x4)) + (x1 * (b * (m * x4))))
  269. specialize mod_eq_trans b
  270. apply mod_eq_trans
  271. exact hynk
  272. exact hcanceln
  273. exists (((a * (n * x3)) + (b * (m * x2))) + (x * (a * (n * x5)))) + (x1 * (b * (m * x4)))
  274. split
  275. exact hfinalm
  276. exact hfinaln
beta_modulus_coprime_base · unchanged support, not a new admission
forall c k d. (exists u. S (k * c) = d * u) -> (exists v. c = d * v) -> d = 1
  1. intro c
  2. intro k
  3. intro d
  4. intro hm
  5. intro hc
  6. have hstep : S (k * c) = c * k + 1
  7. simp [mul_comm]
  8. have h1 : exists w. 1 = d * w
  9. specialize divides_remainder d
  10. specialize divides_remainder (S (k * c))
  11. specialize divides_remainder c
  12. specialize divides_remainder k
  13. specialize divides_remainder 1
  14. apply divides_remainder
  15. exact hm
  16. exact hc
  17. exact hstep
  18. specialize divisor_one d
  19. apply divisor_one
  20. exact h1
common_divisor_beta_moduli_divides_gap_times_c · unchanged support, not a new admission
forall c i j gap d. j = i + gap -> (exists u. S ((S i) * c) = d * u) -> (exists v. S ((S j) * c) = d * v) -> exists w. gap * c = d * w
  1. intro c
  2. intro i
  3. intro j
  4. intro gap
  5. intro d
  6. intro hij
  7. intro hmi
  8. intro hmj
  9. have hstep : S ((S j) * c) = S ((S i) * c) * 1 + gap * c
  10. rewrite hij
  11. specialize add_succ_left i
  12. specialize add_succ_left gap
  13. rewrite <- add_succ_left
  14. simp [add_mul, zero_add]
  15. symm
  16. specialize add_succ_left_before (S i * c)
  17. specialize add_succ_left_before (gap * c)
  18. exact add_succ_left_before
  19. specialize divides_remainder d
  20. specialize divides_remainder (S ((S j) * c))
  21. specialize divides_remainder (S ((S i) * c))
  22. specialize divides_remainder 1
  23. specialize divides_remainder (gap * c)
  24. apply divides_remainder
  25. exact hmj
  26. exact hmi
  27. exact hstep
beta_moduli_coprime_of_gap_dvd · unchanged support, not a new admission
forall c i j gap. j = i + gap -> (exists k. c = gap * k) -> forall d. (exists u. S ((S i) * c) = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1
  1. intro c
  2. intro i
  3. intro j
  4. intro gap
  5. intro hij
  6. intro hgapc
  7. intro d
  8. intro hmi
  9. intro hmj
  10. have hcopdc : forall e. (exists u. d = e * u) -> (exists v. c = e * v) -> e = 1
  11. intro e
  12. intro hed
  13. intro hec
  14. have hmei : exists u. S ((S i) * c) = e * u
  15. specialize multiple_trans d
  16. specialize multiple_trans e
  17. specialize multiple_trans (S ((S i) * c))
  18. apply multiple_trans
  19. exact hmi
  20. exact hed
  21. specialize beta_modulus_coprime_base c
  22. specialize beta_modulus_coprime_base (S i)
  23. specialize beta_modulus_coprime_base e
  24. apply beta_modulus_coprime_base
  25. exact hmei
  26. exact hec
  27. have hgapprod : exists w. gap * c = d * w
  28. specialize common_divisor_beta_moduli_divides_gap_times_c c
  29. specialize common_divisor_beta_moduli_divides_gap_times_c i
  30. specialize common_divisor_beta_moduli_divides_gap_times_c j
  31. specialize common_divisor_beta_moduli_divides_gap_times_c gap
  32. specialize common_divisor_beta_moduli_divides_gap_times_c d
  33. apply common_divisor_beta_moduli_divides_gap_times_c
  34. exact hij
  35. exact hmi
  36. exact hmj
  37. cases hgapprod
  38. have hdivgap : exists w. gap = d * w
  39. specialize gauss_coprime_cancel d
  40. specialize gauss_coprime_cancel c
  41. specialize gauss_coprime_cancel gap
  42. apply gauss_coprime_cancel
  43. exact hcopdc
  44. exists x
  45. trans gap * c
  46. apply mul_comm
  47. exact hgapprod_witness
  48. have hdc : exists w. c = d * w
  49. specialize multiple_trans gap
  50. specialize multiple_trans d
  51. specialize multiple_trans c
  52. apply multiple_trans
  53. exact hgapc
  54. exact hdivgap
  55. specialize hcopdc d
  56. apply hcopdc
  57. specialize multiple_refl d
  58. exact multiple_refl
  59. exact hdc
bounded_common_multiple_step · unchanged support, not a new admission
forall B c. ~(c = 0) -> (forall t. (exists h. S t + S h = S B) -> exists k. c = S t * k) -> exists c2. (~(c2 = 0) /\ forall t. (exists h. S t + S h = S (S B)) -> exists k. c2 = S t * k)
  1. intro B
  2. intro c
  3. intro hc
  4. intro hall
  5. exists c * S B
  6. split
  7. have hSB : ~(S B = 0)
  8. specialize succ_ne_zero B
  9. exact succ_ne_zero
  10. have hprod : ~(c * S B = 0)
  11. intro hzero
  12. have hz : c = 0 \/ S B = 0
  13. specialize mul_eq_zero c
  14. specialize mul_eq_zero (S B)
  15. apply mul_eq_zero
  16. exact hzero
  17. cases hz
  18. apply hc
  19. exact hz_left
  20. apply hSB
  21. exact hz_right
  22. exact hprod
  23. intro t
  24. intro ht
  25. cases ht
  26. specialize zero_or_succ x
  27. cases zero_or_succ
  28. rewrite zero_or_succ_left at ht_witness
  29. have hteq : S t = S B
  30. rewrite PA4 at ht_witness
  31. rewrite PA3 at ht_witness
  32. apply PA2
  33. exact ht_witness
  34. exists c
  35. rewrite hteq
  36. apply mul_comm
  37. cases zero_or_succ_right
  38. have hprev : exists h. S t + S h = S B
  39. exists x1
  40. rewrite zero_or_succ_right_witness at ht_witness
  41. rewrite PA4 at ht_witness
  42. apply PA2
  43. exact ht_witness
  44. have hdivc : exists k. c = S t * k
  45. specialize hall t
  46. apply hall
  47. exact hprev
  48. specialize multiple_mul_right (S t)
  49. specialize multiple_mul_right c
  50. specialize multiple_mul_right (S B)
  51. apply multiple_mul_right
  52. exact hdivc
bounded_common_multiple_exists · unchanged support, not a new admission
forall B. exists c. (~(c = 0) /\ forall t. (exists h. S t + S h = S B) -> exists k. c = S t * k)
  1. intro B
  2. induction B
  3. exists 1
  4. split
  5. specialize succ_ne_zero 0
  6. exact succ_ne_zero
  7. intro t
  8. intro ht
  9. cases ht
  10. exfalso
  11. have hz : S t + x = 0
  12. rewrite PA4 at ht_witness
  13. apply PA2
  14. exact ht_witness
  15. have hst0 : S t = 0
  16. specialize add_eq_zero_left (S t)
  17. specialize add_eq_zero_left x
  18. apply add_eq_zero_left
  19. exact hz
  20. specialize succ_ne_zero t
  21. apply succ_ne_zero
  22. exact hst0
  23. cases IH
  24. cases IH_witness
  25. specialize bounded_common_multiple_step B
  26. specialize bounded_common_multiple_step x
  27. apply bounded_common_multiple_step
  28. exact IH_witness_left
  29. exact IH_witness_right
beta_moduli_coprime_of_lt_bounded_common_multiple · unchanged support, not a new admission
forall B c i j. (forall t. (exists h. S t + S h = S B) -> exists k. c = S t * k) -> (exists g. g + S i = j) -> (exists h. h + j = B) -> forall d. (exists u. S ((S i) * c) = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1
  1. intro B
  2. intro c
  3. intro i
  4. intro j
  5. intro hcm
  6. intro hlt
  7. intro hjB
  8. intro d
  9. intro hdi
  10. intro hdj
  11. cases hlt
  12. have hij : j = i + S x
  13. symm
  14. trans x + S i
  15. simp [add_comm]
  16. exact hlt_witness
  17. have hgaple : exists r. r + S x = B
  18. specialize le_trans (S x)
  19. specialize le_trans j
  20. specialize le_trans B
  21. apply le_trans
  22. exists i
  23. symm
  24. exact hij
  25. exact hjB
  26. cases hgaple
  27. have hgapbound : exists h. S x + S h = S B
  28. exists x1
  29. rewrite PA4
  30. congr
  31. trans x1 + S x
  32. apply add_comm
  33. exact hgaple_witness
  34. have hgapdvd : exists k. c = S x * k
  35. specialize hcm x
  36. apply hcm
  37. exact hgapbound
  38. have hcop : forall e. (exists u. S ((S i) * c) = e * u) -> (exists v. S ((S j) * c) = e * v) -> e = 1
  39. specialize beta_moduli_coprime_of_gap_dvd c
  40. specialize beta_moduli_coprime_of_gap_dvd i
  41. specialize beta_moduli_coprime_of_gap_dvd j
  42. specialize beta_moduli_coprime_of_gap_dvd (S x)
  43. apply beta_moduli_coprime_of_gap_dvd
  44. exact hij
  45. exact hgapdvd
  46. specialize hcop d
  47. apply hcop
  48. exact hdi
  49. exact hdj
beta_moduli_pairwise_coprime_bounded · unchanged support, not a new admission
forall B c. (forall t. (exists h. S t + S h = S B) -> exists k. c = S t * k) -> forall i j. ~(i = j) -> (exists hi. hi + i = B) -> (exists hj. hj + j = B) -> forall d. (exists u. S ((S i) * c) = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1
  1. intro B
  2. intro c
  3. intro hcm
  4. intro i
  5. intro j
  6. intro hne
  7. intro hiB
  8. intro hjB
  9. intro d
  10. intro hdi
  11. intro hdj
  12. specialize lt_trichotomy i
  13. specialize lt_trichotomy j
  14. cases lt_trichotomy
  15. exfalso
  16. apply hne
  17. exact lt_trichotomy_left
  18. cases lt_trichotomy_right
  19. have hcopij : forall e. (exists u. S ((S i) * c) = e * u) -> (exists v. S ((S j) * c) = e * v) -> e = 1
  20. specialize beta_moduli_coprime_of_lt_bounded_common_multiple B
  21. specialize beta_moduli_coprime_of_lt_bounded_common_multiple c
  22. specialize beta_moduli_coprime_of_lt_bounded_common_multiple i
  23. specialize beta_moduli_coprime_of_lt_bounded_common_multiple j
  24. apply beta_moduli_coprime_of_lt_bounded_common_multiple
  25. exact hcm
  26. exact lt_trichotomy_right_left
  27. exact hjB
  28. specialize hcopij d
  29. apply hcopij
  30. exact hdi
  31. exact hdj
  32. have hcopji : forall e. (exists u. S ((S j) * c) = e * u) -> (exists v. S ((S i) * c) = e * v) -> e = 1
  33. specialize beta_moduli_coprime_of_lt_bounded_common_multiple B
  34. specialize beta_moduli_coprime_of_lt_bounded_common_multiple c
  35. specialize beta_moduli_coprime_of_lt_bounded_common_multiple j
  36. specialize beta_moduli_coprime_of_lt_bounded_common_multiple i
  37. apply beta_moduli_coprime_of_lt_bounded_common_multiple
  38. exact hcm
  39. exact lt_trichotomy_right_right
  40. exact hiB
  41. specialize hcopji d
  42. apply hcopji
  43. exact hdj
  44. exact hdi
coprime_mul_left · unchanged support, not a new admission
forall a b n. (forall d. (exists x. a = d * x) -> (exists y. n = d * y) -> d = 1) -> (forall d. (exists x. b = d * x) -> (exists y. n = d * y) -> d = 1) -> forall d. (exists x. a * b = d * x) -> (exists y. n = d * y) -> d = 1
  1. intro a
  2. intro b
  3. intro n
  4. intro han
  5. intro hbn
  6. intro d
  7. intro hab
  8. intro hdn
  9. have hda : forall e. (exists u. d = e * u) -> (exists v. a = e * v) -> e = 1
  10. intro e
  11. intro hed
  12. intro hea
  13. have hen : exists q. n = e * q
  14. specialize multiple_trans d
  15. specialize multiple_trans e
  16. specialize multiple_trans n
  17. apply multiple_trans
  18. exact hdn
  19. exact hed
  20. specialize han e
  21. apply han
  22. exact hea
  23. exact hen
  24. have hdb : exists w. b = d * w
  25. specialize gauss_coprime_cancel d
  26. specialize gauss_coprime_cancel a
  27. specialize gauss_coprime_cancel b
  28. apply gauss_coprime_cancel
  29. exact hda
  30. exact hab
  31. specialize hbn d
  32. apply hbn
  33. exact hdb
  34. exact hdn
mod_eq_of_mod_eq_multiple · unchanged support, not a new admission
forall m P x a. (exists k. P = m * k) -> (exists u v. x + P * u = a + P * v) -> exists r s. x + m * r = a + m * s
  1. intro m
  2. intro P
  3. intro x
  4. intro a
  5. intro hdiv
  6. intro hmod
  7. cases hdiv
  8. cases hmod
  9. cases hmod_witness
  10. rewrite hdiv_witness at hmod_witness_witness
  11. rewrite hdiv_witness at hmod_witness_witness
  12. exists x1 * x2
  13. exists x1 * x3
  14. trans x + (m * x1) * x2
  15. congr
  16. refl
  17. symm
  18. apply mul_assoc
  19. trans a + (m * x1) * x3
  20. exact hmod_witness_witness
  21. congr
  22. refl
  23. apply mul_assoc
binary_crt_fold_step · unchanged support, not a new admission
forall P n x b. ~(P = 0) -> ~(n = 0) -> (forall d. (exists u. P = d * u) -> (exists v. n = d * v) -> d = 1) -> exists z. ((forall m a. (exists k. P = m * k) -> (exists u v. x + m * u = a + m * v) -> exists r s. z + m * r = a + m * s) /\ exists q r. z + n * q = b + n * r)
  1. intro P
  2. intro n
  3. intro x
  4. intro b
  5. intro hP
  6. intro hn
  7. intro hcop
  8. have hcrt : exists z. (exists u v. z + P * u = x + P * v) /\ (exists q r. z + n * q = b + n * r)
  9. specialize binary_crt P
  10. specialize binary_crt n
  11. specialize binary_crt x
  12. specialize binary_crt b
  13. apply binary_crt
  14. exact hP
  15. exact hn
  16. exact hcop
  17. cases hcrt
  18. cases hcrt_witness
  19. exists x1
  20. split
  21. intro m
  22. intro a
  23. intro hmP
  24. intro hxa
  25. have hzx : exists u v. x1 + m * u = x + m * v
  26. specialize mod_eq_of_mod_eq_multiple m
  27. specialize mod_eq_of_mod_eq_multiple P
  28. specialize mod_eq_of_mod_eq_multiple x1
  29. specialize mod_eq_of_mod_eq_multiple x
  30. apply mod_eq_of_mod_eq_multiple
  31. exact hmP
  32. exact hcrt_witness_left
  33. specialize mod_eq_trans m
  34. specialize mod_eq_trans x1
  35. specialize mod_eq_trans x
  36. specialize mod_eq_trans a
  37. apply mod_eq_trans
  38. exact hzx
  39. exact hxa
  40. exact hcrt_witness_right
right_factor_divides_product · unchanged support, not a new admission
forall a b. exists k. a * b = b * k
  1. intro a
  2. intro b
  3. exists a
  4. apply mul_comm
beta_value_le_code · unchanged support, not a new admission
forall b c i x. ((exists h. h + S x = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + x) -> exists h. h + x = b
  1. intro b
  2. intro c
  3. intro i
  4. intro x
  5. intro hat
  6. cases hat
  7. cases hat_right
  8. exists x1 * S ((S i) * c)
  9. symm
  10. exact hat_right_witness
base_le_beta_modulus · unchanged support, not a new admission
forall c i. exists h. h + c = S ((S i) * c)
  1. intro c
  2. intro i
  3. have hproduct : exists h. h + c = S i * c
  4. specialize mul_succ_left i
  5. specialize mul_succ_left c
  6. rewrite mul_succ_left
  7. specialize le_add_left c
  8. specialize le_add_left (i * c)
  9. exact le_add_left
  10. specialize le_succ c
  11. specialize le_succ (S i * c)
  12. apply le_succ
  13. exact hproduct
le_scaled_nonzero · unchanged support, not a new admission
forall C B. ~(C = 0) -> exists h. h + B = C * B
  1. intro C
  2. intro B
  3. intro hC
  4. have h1C : exists h. h + 1 = C
  5. specialize one_le_of_ne_zero C
  6. apply one_le_of_ne_zero
  7. exact hC
  8. have hscaled : exists h. h + 1 * B = C * B
  9. specialize mul_le_mul_right 1
  10. specialize mul_le_mul_right C
  11. specialize mul_le_mul_right B
  12. apply mul_le_mul_right
  13. exact h1C
  14. specialize one_mul B
  15. rewrite one_mul at hscaled
  16. exact hscaled
scaled_bounded_common_multiple · unchanged support, not a new admission
forall N C B. (forall t. (exists h. S t + S h = S N) -> exists q. C = S t * q) -> forall t. (exists h. S t + S h = S N) -> exists q. C * B = S t * q
  1. intro N
  2. intro C
  3. intro B
  4. intro hcm
  5. intro t
  6. intro ht
  7. have htC : exists q. C = S t * q
  8. specialize hcm t
  9. apply hcm
  10. exact ht
  11. specialize multiple_mul_right (S t)
  12. specialize multiple_mul_right C
  13. specialize multiple_mul_right B
  14. apply multiple_mul_right
  15. exact htC
beta_value_lt_scaled_base · unchanged support, not a new admission
forall b c i x C s j. ((exists h. h + S x = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + x) -> ~(C = 0) -> exists h. h + S x = S ((S j) * (C * S (b + s)))
  1. intro b
  2. intro c
  3. intro i
  4. intro x
  5. intro C
  6. intro s
  7. intro j
  8. intro hat
  9. intro hC
  10. have hxb : exists h. h + x = b
  11. specialize beta_value_le_code b
  12. specialize beta_value_le_code c
  13. specialize beta_value_le_code i
  14. specialize beta_value_le_code x
  15. apply beta_value_le_code
  16. exact hat
  17. have hbs : exists h. h + b = b + s
  18. specialize le_add_right b
  19. specialize le_add_right s
  20. exact le_add_right
  21. have hxs : exists h. h + x = b + s
  22. specialize le_trans x
  23. specialize le_trans b
  24. specialize le_trans (b + s)
  25. apply le_trans
  26. exact hxb
  27. exact hbs
  28. have hsx : exists h. h + S x = S (b + s)
  29. specialize succ_le_succ x
  30. specialize succ_le_succ (b + s)
  31. apply succ_le_succ
  32. exact hxs
  33. have hscale : exists h. h + S (b + s) = C * S (b + s)
  34. specialize le_scaled_nonzero C
  35. specialize le_scaled_nonzero (S (b + s))
  36. apply le_scaled_nonzero
  37. exact hC
  38. have hxbase : exists h. h + S x = C * S (b + s)
  39. specialize le_trans (S x)
  40. specialize le_trans (S (b + s))
  41. specialize le_trans (C * S (b + s))
  42. apply le_trans
  43. exact hsx
  44. exact hscale
  45. have hmod : exists h. h + C * S (b + s) = S ((S j) * (C * S (b + s)))
  46. specialize base_le_beta_modulus (C * S (b + s))
  47. specialize base_le_beta_modulus j
  48. exact base_le_beta_modulus
  49. specialize le_trans (S x)
  50. specialize le_trans (C * S (b + s))
  51. specialize le_trans (S ((S j) * (C * S (b + s))))
  52. apply le_trans
  53. exact hxbase
  54. exact hmod
new_value_lt_scaled_base · unchanged support, not a new admission
forall b s C j. ~(C = 0) -> exists h. h + S s = S ((S j) * (C * S (b + s)))
  1. intro b
  2. intro s
  3. intro C
  4. intro j
  5. intro hC
  6. have hsb : exists h. h + s = b + s
  7. specialize le_add_left s
  8. specialize le_add_left b
  9. exact le_add_left
  10. have hss : exists h. h + S s = S (b + s)
  11. specialize succ_le_succ s
  12. specialize succ_le_succ (b + s)
  13. apply succ_le_succ
  14. exact hsb
  15. have hscale : exists h. h + S (b + s) = C * S (b + s)
  16. specialize le_scaled_nonzero C
  17. specialize le_scaled_nonzero (S (b + s))
  18. apply le_scaled_nonzero
  19. exact hC
  20. have hsbase : exists h. h + S s = C * S (b + s)
  21. specialize le_trans (S s)
  22. specialize le_trans (S (b + s))
  23. specialize le_trans (C * S (b + s))
  24. apply le_trans
  25. exact hss
  26. exact hscale
  27. have hmod : exists h. h + C * S (b + s) = S ((S j) * (C * S (b + s)))
  28. specialize base_le_beta_modulus (C * S (b + s))
  29. specialize base_le_beta_modulus j
  30. exact base_le_beta_modulus
  31. specialize le_trans (S s)
  32. specialize le_trans (C * S (b + s))
  33. specialize le_trans (S ((S j) * (C * S (b + s))))
  34. apply le_trans
  35. exact hsbase
  36. exact hmod
beta_exclusive_accumulated_product_step · unchanged support, not a new admission
forall N c k P. (forall t. (exists h. S t + S h = S N) -> exists q. c = S t * q) -> (exists h. h + S k = N) -> ~(P = 0) -> (forall i. (exists h. h + S i = k) -> exists q. P = S ((S i) * c) * q) -> (forall j. (exists g. g + k = j) -> (exists h. h + j = N) -> forall d. (exists u. P = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1) -> (~(P * S ((S k) * c) = 0) /\ ((forall i. (exists h. h + S i = S k) -> exists q. P * S ((S k) * c) = S ((S i) * c) * q) /\ forall j. (exists g. g + S k = j) -> (exists h. h + j = N) -> forall d. (exists u. P * S ((S k) * c) = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1))
  1. intro N
  2. intro c
  3. intro k
  4. intro P
  5. intro hcm
  6. intro hkN
  7. intro hP
  8. intro hdiv
  9. intro hfuture
  10. have hnew : ~(S ((S k) * c) = 0)
  11. specialize beta_modulus_nonzero c
  12. specialize beta_modulus_nonzero k
  13. exact beta_modulus_nonzero
  14. split
  15. specialize mul_ne_zero P
  16. specialize mul_ne_zero (S ((S k) * c))
  17. intro hzero
  18. apply mul_ne_zero
  19. exact hP
  20. exact hnew
  21. exact hzero
  22. split
  23. intro i
  24. intro hi
  25. have hik : exists r. r + i = k
  26. specialize le_of_succ_le_succ i
  27. specialize le_of_succ_le_succ k
  28. apply le_of_succ_le_succ
  29. exact hi
  30. have hsplit : i = k \/ exists r. r + S i = k
  31. specialize le_eq_or_lt i
  32. specialize le_eq_or_lt k
  33. apply le_eq_or_lt
  34. exact hik
  35. cases hsplit
  36. rewrite hsplit_left
  37. specialize right_factor_divides_product P
  38. specialize right_factor_divides_product (S ((S k) * c))
  39. exact right_factor_divides_product
  40. have hiP : exists q. P = S ((S i) * c) * q
  41. specialize hdiv i
  42. apply hdiv
  43. exact hsplit_right
  44. specialize multiple_mul_right (S ((S i) * c))
  45. specialize multiple_mul_right P
  46. specialize multiple_mul_right (S ((S k) * c))
  47. apply multiple_mul_right
  48. exact hiP
  49. intro j
  50. intro hSkj
  51. intro hjN
  52. have hkj : exists r. r + k = j
  53. have hkSk : exists r. r + k = S k
  54. specialize le_succ_self k
  55. exact le_succ_self
  56. specialize le_trans k
  57. specialize le_trans (S k)
  58. specialize le_trans j
  59. apply le_trans
  60. exact hkSk
  61. exact hSkj
  62. have hPj : forall d. (exists u. P = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1
  63. specialize hfuture j
  64. apply hfuture
  65. exact hkj
  66. exact hjN
  67. have hneq : ~(k = j)
  68. intro heq
  69. rewrite <- heq at hSkj
  70. specialize lt_irrefl_expanded k
  71. apply lt_irrefl_expanded
  72. exact hSkj
  73. have hkbound : exists r. r + k = N
  74. specialize lt_to_le k
  75. specialize lt_to_le N
  76. apply lt_to_le
  77. exact hkN
  78. have hpairs : forall i j. ~(i = j) -> (exists hi. hi + i = N) -> (exists hj. hj + j = N) -> forall d. (exists u. S ((S i) * c) = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1
  79. specialize beta_moduli_pairwise_coprime_bounded N
  80. specialize beta_moduli_pairwise_coprime_bounded c
  81. apply beta_moduli_pairwise_coprime_bounded
  82. exact hcm
  83. have hnewj : forall d. (exists u. S ((S k) * c) = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1
  84. specialize hpairs k
  85. specialize hpairs j
  86. apply hpairs
  87. exact hneq
  88. exact hkbound
  89. exact hjN
  90. specialize coprime_mul_left P
  91. specialize coprime_mul_left (S ((S k) * c))
  92. specialize coprime_mul_left (S ((S j) * c))
  93. apply coprime_mul_left
  94. exact hPj
  95. exact hnewj
beta_exclusive_recode_congruence_step · unchanged support, not a new admission
forall N c b e k P z. (exists h. h + S k = N) -> ~(P = 0) -> (forall i. (exists h. h + S i = k) -> exists q. P = S ((S i) * c) * q) -> (forall i a. (exists h. h + S i = k) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> exists u v. z + S ((S i) * c) * u = a + S ((S i) * c) * v) -> (forall j. (exists g. g + k = j) -> (exists h. h + j = N) -> forall d. (exists u. P = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1) -> exists z2. forall i a. (exists h. h + S i = S k) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> exists u v. z2 + S ((S i) * c) * u = a + S ((S i) * c) * v
  1. intro N
  2. intro c
  3. intro b
  4. intro e
  5. intro k
  6. intro P
  7. intro z
  8. intro hkN
  9. intro hP
  10. intro hdiv
  11. intro hcong
  12. intro hfuture
  13. have hnew : ~(S ((S k) * c) = 0)
  14. specialize beta_modulus_nonzero c
  15. specialize beta_modulus_nonzero k
  16. exact beta_modulus_nonzero
  17. have hkbound : exists h. h + k = N
  18. specialize lt_to_le k
  19. specialize lt_to_le N
  20. apply lt_to_le
  21. exact hkN
  22. have hcop : forall d. (exists u. P = d * u) -> (exists v. S ((S k) * c) = d * v) -> d = 1
  23. specialize hfuture k
  24. apply hfuture
  25. specialize le_refl k
  26. exact le_refl
  27. exact hkbound
  28. have hvalue : exists a. ((exists h. h + S a = S ((S k) * e)) /\ exists q. b = q * S ((S k) * e) + a)
  29. specialize beta_at_exists b
  30. specialize beta_at_exists e
  31. specialize beta_at_exists k
  32. exact beta_at_exists
  33. cases hvalue
  34. have hfold : exists z2. ((forall m a. (exists q. P = m * q) -> (exists u v. z + m * u = a + m * v) -> exists r s. z2 + m * r = a + m * s) /\ exists q r. z2 + S ((S k) * c) * q = x + S ((S k) * c) * r)
  35. specialize binary_crt_fold_step P
  36. specialize binary_crt_fold_step (S ((S k) * c))
  37. specialize binary_crt_fold_step z
  38. specialize binary_crt_fold_step x
  39. apply binary_crt_fold_step
  40. exact hP
  41. exact hnew
  42. exact hcop
  43. cases hfold
  44. cases hfold_witness
  45. exists x1
  46. intro i
  47. intro a
  48. intro hi
  49. intro hati
  50. have hik : exists r. r + i = k
  51. specialize le_of_succ_le_succ i
  52. specialize le_of_succ_le_succ k
  53. apply le_of_succ_le_succ
  54. exact hi
  55. have hsplit : i = k \/ exists r. r + S i = k
  56. specialize le_eq_or_lt i
  57. specialize le_eq_or_lt k
  58. apply le_eq_or_lt
  59. exact hik
  60. cases hsplit
  61. have hati_new : ((exists h. h + S a = S ((S k) * e)) /\ exists q. b = q * S ((S k) * e) + a)
  62. rewrite <- hsplit_left
  63. rewrite <- hsplit_left
  64. exact hati
  65. have haeq : a = x
  66. specialize beta_at_unique b
  67. specialize beta_at_unique e
  68. specialize beta_at_unique k
  69. specialize beta_at_unique a
  70. specialize beta_at_unique x
  71. apply beta_at_unique
  72. exact hati_new
  73. exact hvalue_witness
  74. rewrite hsplit_left
  75. rewrite hsplit_left
  76. rewrite haeq
  77. exact hfold_witness_right
  78. have hmiP : exists q. P = S ((S i) * c) * q
  79. specialize hdiv i
  80. apply hdiv
  81. exact hsplit_right
  82. have hzold : exists u v. z + S ((S i) * c) * u = a + S ((S i) * c) * v
  83. specialize hcong i
  84. specialize hcong a
  85. apply hcong
  86. exact hsplit_right
  87. exact hati
  88. specialize hfold_witness_left (S ((S i) * c))
  89. specialize hfold_witness_left a
  90. apply hfold_witness_left
  91. exact hmiP
  92. exact hzold
beta_exclusive_recode_invariant_step · unchanged support, not a new admission
forall N c b e k P z. (forall t. (exists h. S t + S h = S N) -> exists q. c = S t * q) -> (exists h. h + S k = N) -> ~(P = 0) -> (forall i. (exists h. h + S i = k) -> exists q. P = S ((S i) * c) * q) -> (forall i a. (exists h. h + S i = k) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> exists u v. z + S ((S i) * c) * u = a + S ((S i) * c) * v) -> (forall j. (exists g. g + k = j) -> (exists h. h + j = N) -> forall d. (exists u. P = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1) -> exists z2. (~(P * S ((S k) * c) = 0) /\ ((forall i. (exists h. h + S i = S k) -> exists q. P * S ((S k) * c) = S ((S i) * c) * q) /\ ((forall i a. (exists h. h + S i = S k) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> exists u v. z2 + S ((S i) * c) * u = a + S ((S i) * c) * v) /\ forall j. (exists g. g + S k = j) -> (exists h. h + j = N) -> forall d. (exists u. P * S ((S k) * c) = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1)))
  1. intro N
  2. intro c
  3. intro b
  4. intro e
  5. intro k
  6. intro P
  7. intro z
  8. intro hcm
  9. intro hkN
  10. intro hP
  11. intro hdiv
  12. intro hcong
  13. intro hfuture
  14. have hproduct : (~(P * S ((S k) * c) = 0) /\ ((forall i. (exists h. h + S i = S k) -> exists q. P * S ((S k) * c) = S ((S i) * c) * q) /\ forall j. (exists g. g + S k = j) -> (exists h. h + j = N) -> forall d. (exists u. P * S ((S k) * c) = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1))
  15. specialize beta_exclusive_accumulated_product_step N
  16. specialize beta_exclusive_accumulated_product_step c
  17. specialize beta_exclusive_accumulated_product_step k
  18. specialize beta_exclusive_accumulated_product_step P
  19. apply beta_exclusive_accumulated_product_step
  20. exact hcm
  21. exact hkN
  22. exact hP
  23. exact hdiv
  24. exact hfuture
  25. have hcodes : exists z2. forall i a. (exists h. h + S i = S k) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> exists u v. z2 + S ((S i) * c) * u = a + S ((S i) * c) * v
  26. specialize beta_exclusive_recode_congruence_step N
  27. specialize beta_exclusive_recode_congruence_step c
  28. specialize beta_exclusive_recode_congruence_step b
  29. specialize beta_exclusive_recode_congruence_step e
  30. specialize beta_exclusive_recode_congruence_step k
  31. specialize beta_exclusive_recode_congruence_step P
  32. specialize beta_exclusive_recode_congruence_step z
  33. apply beta_exclusive_recode_congruence_step
  34. exact hkN
  35. exact hP
  36. exact hdiv
  37. exact hcong
  38. exact hfuture
  39. cases hcodes
  40. cases hproduct
  41. cases hproduct_right
  42. exists x
  43. split
  44. exact hproduct_left
  45. split
  46. exact hproduct_right_left
  47. split
  48. exact hcodes_witness
  49. exact hproduct_right_right
bounded_beta_exclusive_recode_invariant · unchanged support, not a new admission
forall N c b e. (forall t. (exists h. S t + S h = S N) -> exists q. c = S t * q) -> forall k. (exists h. h + k = N) -> exists P z. (~(P = 0) /\ ((forall i. (exists h. h + S i = k) -> exists q. P = S ((S i) * c) * q) /\ ((forall i a. (exists h. h + S i = k) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> exists u v. z + S ((S i) * c) * u = a + S ((S i) * c) * v) /\ forall j. (exists g. g + k = j) -> (exists h. h + j = N) -> forall d. (exists u. P = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1)))
  1. intro N
  2. intro c
  3. intro b
  4. intro e
  5. intro hcm
  6. induction k
  7. intro hkN
  8. exists 1
  9. exists 0
  10. split
  11. specialize succ_ne_zero 0
  12. exact succ_ne_zero
  13. split
  14. intro i
  15. intro hi
  16. exfalso
  17. cases hi
  18. have hsi0 : S i = 0
  19. specialize add_eq_zero_right x
  20. specialize add_eq_zero_right (S i)
  21. apply add_eq_zero_right
  22. exact hi_witness
  23. specialize succ_ne_zero i
  24. apply succ_ne_zero
  25. exact hsi0
  26. split
  27. intro i
  28. intro a
  29. intro hi
  30. intro hati
  31. exfalso
  32. cases hi
  33. have hsi0 : S i = 0
  34. specialize add_eq_zero_right x
  35. specialize add_eq_zero_right (S i)
  36. apply add_eq_zero_right
  37. exact hi_witness
  38. specialize succ_ne_zero i
  39. apply succ_ne_zero
  40. exact hsi0
  41. intro j
  42. intro h0j
  43. intro hjN
  44. intro d
  45. intro h1
  46. intro hm
  47. specialize coprime_one_left (S ((S j) * c))
  48. specialize coprime_one_left d
  49. apply coprime_one_left
  50. exact h1
  51. exact hm
  52. intro hkN
  53. have hkprev : exists h. h + k = N
  54. have hkstep : exists h. h + k = S k
  55. specialize le_succ_self k
  56. exact le_succ_self
  57. specialize le_trans k
  58. specialize le_trans (S k)
  59. specialize le_trans N
  60. apply le_trans
  61. exact hkstep
  62. exact hkN
  63. have hprev : exists P z. (~(P = 0) /\ ((forall i. (exists h. h + S i = k) -> exists q. P = S ((S i) * c) * q) /\ ((forall i a. (exists h. h + S i = k) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> exists u v. z + S ((S i) * c) * u = a + S ((S i) * c) * v) /\ forall j. (exists g. g + k = j) -> (exists h. h + j = N) -> forall d. (exists u. P = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1)))
  64. apply IH
  65. exact hkprev
  66. cases hprev
  67. cases hprev_witness
  68. cases hprev_witness_witness
  69. cases hprev_witness_witness_right
  70. cases hprev_witness_witness_right_right
  71. have hnext : exists z2. (~(x * S ((S k) * c) = 0) /\ ((forall i. (exists h. h + S i = S k) -> exists q. x * S ((S k) * c) = S ((S i) * c) * q) /\ ((forall i a. (exists h. h + S i = S k) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> exists u v. z2 + S ((S i) * c) * u = a + S ((S i) * c) * v) /\ forall j. (exists g. g + S k = j) -> (exists h. h + j = N) -> forall d. (exists u. x * S ((S k) * c) = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1)))
  72. specialize beta_exclusive_recode_invariant_step N
  73. specialize beta_exclusive_recode_invariant_step c
  74. specialize beta_exclusive_recode_invariant_step b
  75. specialize beta_exclusive_recode_invariant_step e
  76. specialize beta_exclusive_recode_invariant_step k
  77. specialize beta_exclusive_recode_invariant_step x
  78. specialize beta_exclusive_recode_invariant_step x1
  79. apply beta_exclusive_recode_invariant_step
  80. exact hcm
  81. exact hkN
  82. exact hprev_witness_witness_left
  83. exact hprev_witness_witness_right_left
  84. exact hprev_witness_witness_right_right_left
  85. exact hprev_witness_witness_right_right_right
  86. cases hnext
  87. exists x * S ((S k) * c)
  88. exists x2
  89. exact hnext_witness
beta_prefix_extend · unchanged support, not a new admission
forall k b e s. exists z c. (((exists h. h + S s = S ((S k) * c)) /\ exists q. z = q * S ((S k) * c) + s) /\ forall i a. (exists h. h + S i = k) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> ((exists h. h + S a = S ((S i) * c)) /\ exists q. z = q * S ((S i) * c) + a))
  1. intro k
  2. intro b
  3. intro e
  4. intro s
  5. have hC : exists C. (~(C = 0) /\ forall t. (exists h. S t + S h = S k) -> exists q. C = S t * q)
  6. specialize bounded_common_multiple_exists k
  7. exact bounded_common_multiple_exists
  8. cases hC
  9. cases hC_witness
  10. have hcm2 : forall t. (exists h. S t + S h = S k) -> exists q. x * S (b + s) = S t * q
  11. specialize scaled_bounded_common_multiple k
  12. specialize scaled_bounded_common_multiple x
  13. specialize scaled_bounded_common_multiple (S (b + s))
  14. apply scaled_bounded_common_multiple
  15. exact hC_witness_right
  16. have hall : forall n. (exists h. h + n = k) -> exists P z. (~(P = 0) /\ ((forall i. (exists h. h + S i = n) -> exists q. P = S ((S i) * (x * S (b + s))) * q) /\ ((forall i a. (exists h. h + S i = n) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> exists u v. z + S ((S i) * (x * S (b + s))) * u = a + S ((S i) * (x * S (b + s))) * v) /\ forall j. (exists g. g + n = j) -> (exists h. h + j = k) -> forall d. (exists u. P = d * u) -> (exists v. S ((S j) * (x * S (b + s))) = d * v) -> d = 1)))
  17. specialize bounded_beta_exclusive_recode_invariant k
  18. specialize bounded_beta_exclusive_recode_invariant (x * S (b + s))
  19. specialize bounded_beta_exclusive_recode_invariant b
  20. specialize bounded_beta_exclusive_recode_invariant e
  21. apply bounded_beta_exclusive_recode_invariant
  22. exact hcm2
  23. have hinv : exists P z. (~(P = 0) /\ ((forall i. (exists h. h + S i = k) -> exists q. P = S ((S i) * (x * S (b + s))) * q) /\ ((forall i a. (exists h. h + S i = k) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> exists u v. z + S ((S i) * (x * S (b + s))) * u = a + S ((S i) * (x * S (b + s))) * v) /\ forall j. (exists g. g + k = j) -> (exists h. h + j = k) -> forall d. (exists u. P = d * u) -> (exists v. S ((S j) * (x * S (b + s))) = d * v) -> d = 1)))
  24. specialize hall k
  25. apply hall
  26. specialize le_refl k
  27. exact le_refl
  28. cases hinv
  29. cases hinv_witness
  30. cases hinv_witness_witness
  31. cases hinv_witness_witness_right
  32. cases hinv_witness_witness_right_right
  33. have hcop : forall d. (exists u. x1 = d * u) -> (exists v. S ((S k) * (x * S (b + s))) = d * v) -> d = 1
  34. specialize hinv_witness_witness_right_right_right k
  35. apply hinv_witness_witness_right_right_right
  36. specialize le_refl k
  37. exact le_refl
  38. specialize le_refl k
  39. exact le_refl
  40. have hnew0 : ~(S ((S k) * (x * S (b + s))) = 0)
  41. specialize beta_modulus_nonzero (x * S (b + s))
  42. specialize beta_modulus_nonzero k
  43. exact beta_modulus_nonzero
  44. have hfold : exists z2. ((forall m a. (exists q. x1 = m * q) -> (exists u v. x2 + m * u = a + m * v) -> exists r t. z2 + m * r = a + m * t) /\ exists q r. z2 + S ((S k) * (x * S (b + s))) * q = s + S ((S k) * (x * S (b + s))) * r)
  45. specialize binary_crt_fold_step x1
  46. specialize binary_crt_fold_step (S ((S k) * (x * S (b + s))))
  47. specialize binary_crt_fold_step x2
  48. specialize binary_crt_fold_step s
  49. apply binary_crt_fold_step
  50. exact hinv_witness_witness_left
  51. exact hnew0
  52. exact hcop
  53. cases hfold
  54. cases hfold_witness
  55. exists x3
  56. exists x * S (b + s)
  57. split
  58. specialize beta_at_of_mod_eq_bound x3
  59. specialize beta_at_of_mod_eq_bound (x * S (b + s))
  60. specialize beta_at_of_mod_eq_bound k
  61. specialize beta_at_of_mod_eq_bound s
  62. apply beta_at_of_mod_eq_bound
  63. specialize new_value_lt_scaled_base b
  64. specialize new_value_lt_scaled_base s
  65. specialize new_value_lt_scaled_base x
  66. specialize new_value_lt_scaled_base k
  67. apply new_value_lt_scaled_base
  68. exact hC_witness_left
  69. exact hfold_witness_right
  70. intro i
  71. intro a
  72. intro hi
  73. intro hati
  74. have hmi : exists q. x1 = S ((S i) * (x * S (b + s))) * q
  75. specialize hinv_witness_witness_right_left i
  76. apply hinv_witness_witness_right_left
  77. exact hi
  78. have hzold : exists u v. x2 + S ((S i) * (x * S (b + s))) * u = a + S ((S i) * (x * S (b + s))) * v
  79. specialize hinv_witness_witness_right_right_left i
  80. specialize hinv_witness_witness_right_right_left a
  81. apply hinv_witness_witness_right_right_left
  82. exact hi
  83. exact hati
  84. have hznew : exists u v. x3 + S ((S i) * (x * S (b + s))) * u = a + S ((S i) * (x * S (b + s))) * v
  85. specialize hfold_witness_left (S ((S i) * (x * S (b + s))))
  86. specialize hfold_witness_left a
  87. apply hfold_witness_left
  88. exact hmi
  89. exact hzold
  90. specialize beta_at_of_mod_eq_bound x3
  91. specialize beta_at_of_mod_eq_bound (x * S (b + s))
  92. specialize beta_at_of_mod_eq_bound i
  93. specialize beta_at_of_mod_eq_bound a
  94. apply beta_at_of_mod_eq_bound
  95. specialize beta_value_lt_scaled_base b
  96. specialize beta_value_lt_scaled_base e
  97. specialize beta_value_lt_scaled_base i
  98. specialize beta_value_lt_scaled_base a
  99. specialize beta_value_lt_scaled_base x
  100. specialize beta_value_lt_scaled_base s
  101. specialize beta_value_lt_scaled_base i
  102. apply beta_value_lt_scaled_base
  103. exact hati
  104. exact hC_witness_left
  105. exact hznew
beta_repeat_empty · unchanged support, not a new admission
forall b c a l. l = 0 -> (forall ff_i_empty. (exists ff_lt_empty_bound. ff_lt_empty_bound + S ff_i_empty = l) -> (((exists ff_h_empty_decoded. ff_h_empty_decoded + S (a) = S ((S (ff_i_empty)) * c)) /\ exists ff_q_empty_decoded. b = ff_q_empty_decoded * S ((S (ff_i_empty)) * c) + (a))))
  1. intro b
  2. intro c
  3. intro a
  4. intro l
  5. intro hl
  6. intro i
  7. intro hi
  8. rewrite hl at hi
  9. exfalso
  10. cases hi
  11. have hsi : S i = 0
  12. specialize add_eq_zero_right x
  13. specialize add_eq_zero_right (S i)
  14. apply add_eq_zero_right
  15. exact hi_witness
  16. specialize succ_ne_zero i
  17. apply succ_ne_zero
  18. exact hsi
beta_repeat_succ_extend · unchanged support, not a new admission
forall b c a l sl. sl = S l -> (forall ff_i_before. (exists ff_lt_before_bound. ff_lt_before_bound + S ff_i_before = l) -> (((exists ff_h_before_decoded. ff_h_before_decoded + S (a) = S ((S (ff_i_before)) * c)) /\ exists ff_q_before_decoded. b = ff_q_before_decoded * S ((S (ff_i_before)) * c) + (a)))) -> exists z d. (forall ff_i_after. (exists ff_lt_after_bound. ff_lt_after_bound + S ff_i_after = sl) -> (((exists ff_h_after_decoded. ff_h_after_decoded + S (a) = S ((S (ff_i_after)) * d)) /\ exists ff_q_after_decoded. z = ff_q_after_decoded * S ((S (ff_i_after)) * d) + (a))))
  1. intro b
  2. intro c
  3. intro a
  4. intro l
  5. intro sl
  6. intro hsl
  7. intro hrepeat
  8. specialize beta_prefix_extend l
  9. specialize beta_prefix_extend b
  10. specialize beta_prefix_extend c
  11. specialize beta_prefix_extend a
  12. cases beta_prefix_extend
  13. cases beta_prefix_extend_witness
  14. cases beta_prefix_extend_witness_witness
  15. exists x
  16. exists x1
  17. intro i
  18. intro hi
  19. rewrite hsl at hi
  20. have hil : exists h. h + i = l
  21. specialize le_of_succ_le_succ i
  22. specialize le_of_succ_le_succ l
  23. apply le_of_succ_le_succ
  24. exact hi
  25. have hsplit : i = l \/ exists h. h + S i = l
  26. specialize le_eq_or_lt i
  27. specialize le_eq_or_lt l
  28. apply le_eq_or_lt
  29. exact hil
  30. cases hsplit
  31. rewrite hsplit_left
  32. rewrite hsplit_left
  33. exact beta_prefix_extend_witness_witness_left
  34. specialize beta_prefix_extend_witness_witness_right i
  35. specialize beta_prefix_extend_witness_witness_right a
  36. apply beta_prefix_extend_witness_witness_right
  37. exact hsplit_right
  38. specialize hrepeat i
  39. apply hrepeat
  40. exact hsplit_right
beta_repeat_exists · unchanged support, not a new admission
forall a l. exists b c. (forall ff_i_r. (exists ff_lt_r_bound. ff_lt_r_bound + S ff_i_r = l) -> (((exists ff_h_r_decoded. ff_h_r_decoded + S (a) = S ((S (ff_i_r)) * c)) /\ exists ff_q_r_decoded. b = ff_q_r_decoded * S ((S (ff_i_r)) * c) + (a))))
  1. intro a
  2. induction l
  3. exists 0
  4. exists 0
  5. specialize beta_repeat_empty 0
  6. specialize beta_repeat_empty 0
  7. specialize beta_repeat_empty a
  8. specialize beta_repeat_empty 0
  9. apply beta_repeat_empty
  10. refl
  11. cases IH
  12. cases IH_witness
  13. specialize beta_repeat_succ_extend x
  14. specialize beta_repeat_succ_extend x1
  15. specialize beta_repeat_succ_extend a
  16. specialize beta_repeat_succ_extend l
  17. specialize beta_repeat_succ_extend (S l)
  18. apply beta_repeat_succ_extend
  19. refl
  20. exact IH_witness_witness
beta_repeat_entry_eq · unchanged support, not a new admission
forall b c a l i x. (forall ff_i_entry. (exists ff_lt_entry_bound. ff_lt_entry_bound + S ff_i_entry = l) -> (((exists ff_h_entry_decoded. ff_h_entry_decoded + S (a) = S ((S (ff_i_entry)) * c)) /\ exists ff_q_entry_decoded. b = ff_q_entry_decoded * S ((S (ff_i_entry)) * c) + (a)))) -> (exists h. h + S i = l) -> (((exists ff_h_entry_x. ff_h_entry_x + S (x) = S ((S (i)) * c)) /\ exists ff_q_entry_x. b = ff_q_entry_x * S ((S (i)) * c) + (x))) -> x = a
  1. intro b
  2. intro c
  3. intro a
  4. intro l
  5. intro i
  6. intro x
  7. intro hrepeat
  8. intro hi
  9. intro hx
  10. have ha : ((exists h. h + S a = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + a)
  11. specialize hrepeat i
  12. apply hrepeat
  13. exact hi
  14. specialize beta_at_unique b
  15. specialize beta_at_unique c
  16. specialize beta_at_unique i
  17. specialize beta_at_unique x
  18. specialize beta_at_unique a
  19. apply beta_at_unique
  20. exact hx
  21. exact ha
beta_prefix_sum_trace_exists · unchanged support, not a new admission
forall b c l. exists fs_u_trace fs_v_trace. ((((exists fs_h_trace_start. fs_h_trace_start + S (0) = S ((S (0)) * fs_v_trace)) /\ exists fs_q_trace_start. fs_u_trace = fs_q_trace_start * S ((S (0)) * fs_v_trace) + (0))) /\ forall fs_i_trace_steps. (exists fs_lt_trace_steps_bound. fs_lt_trace_steps_bound + S fs_i_trace_steps = l) -> exists fs_a_trace_steps fs_r_trace_steps fs_s_trace_steps. ((((exists fs_h_trace_steps_summand. fs_h_trace_steps_summand + S (fs_a_trace_steps) = S ((S (fs_i_trace_steps)) * c)) /\ exists fs_q_trace_steps_summand. b = fs_q_trace_steps_summand * S ((S (fs_i_trace_steps)) * c) + (fs_a_trace_steps))) /\ ((((exists fs_h_trace_steps_partial. fs_h_trace_steps_partial + S (fs_r_trace_steps) = S ((S (fs_i_trace_steps)) * fs_v_trace)) /\ exists fs_q_trace_steps_partial. fs_u_trace = fs_q_trace_steps_partial * S ((S (fs_i_trace_steps)) * fs_v_trace) + (fs_r_trace_steps))) /\ ((((exists fs_h_trace_steps_successor. fs_h_trace_steps_successor + S (fs_s_trace_steps) = S ((S (S fs_i_trace_steps)) * fs_v_trace)) /\ exists fs_q_trace_steps_successor. fs_u_trace = fs_q_trace_steps_successor * S ((S (S fs_i_trace_steps)) * fs_v_trace) + (fs_s_trace_steps))) /\ fs_s_trace_steps = fs_r_trace_steps + fs_a_trace_steps))))
  1. intro b
  2. intro c
  3. induction l
  4. exists 0
  5. exists 1
  6. split
  7. specialize beta_at_self_of_bound 1
  8. specialize beta_at_self_of_bound 0
  9. specialize beta_at_self_of_bound 0
  10. apply beta_at_self_of_bound
  11. specialize one_mul 1
  12. rewrite one_mul
  13. specialize succ_le_succ 0
  14. specialize succ_le_succ (S 0)
  15. apply succ_le_succ
  16. specialize zero_le (S 0)
  17. exact zero_le
  18. intro i
  19. intro hi
  20. exfalso
  21. cases hi
  22. have hsi0 : S i = 0
  23. specialize add_eq_zero_right x
  24. specialize add_eq_zero_right (S i)
  25. apply add_eq_zero_right
  26. exact hi_witness
  27. specialize succ_ne_zero i
  28. apply succ_ne_zero
  29. exact hsi0
  30. have htrace : exists fs_u_induction fs_v_induction. ((((exists fs_h_induction_start. fs_h_induction_start + S (0) = S ((S (0)) * fs_v_induction)) /\ exists fs_q_induction_start. fs_u_induction = fs_q_induction_start * S ((S (0)) * fs_v_induction) + (0))) /\ forall fs_i_induction_steps. (exists fs_lt_induction_steps_bound. fs_lt_induction_steps_bound + S fs_i_induction_steps = l) -> exists fs_a_induction_steps fs_r_induction_steps fs_s_induction_steps. ((((exists fs_h_induction_steps_summand. fs_h_induction_steps_summand + S (fs_a_induction_steps) = S ((S (fs_i_induction_steps)) * c)) /\ exists fs_q_induction_steps_summand. b = fs_q_induction_steps_summand * S ((S (fs_i_induction_steps)) * c) + (fs_a_induction_steps))) /\ ((((exists fs_h_induction_steps_partial. fs_h_induction_steps_partial + S (fs_r_induction_steps) = S ((S (fs_i_induction_steps)) * fs_v_induction)) /\ exists fs_q_induction_steps_partial. fs_u_induction = fs_q_induction_steps_partial * S ((S (fs_i_induction_steps)) * fs_v_induction) + (fs_r_induction_steps))) /\ ((((exists fs_h_induction_steps_successor. fs_h_induction_steps_successor + S (fs_s_induction_steps) = S ((S (S fs_i_induction_steps)) * fs_v_induction)) /\ exists fs_q_induction_steps_successor. fs_u_induction = fs_q_induction_steps_successor * S ((S (S fs_i_induction_steps)) * fs_v_induction) + (fs_s_induction_steps))) /\ fs_s_induction_steps = fs_r_induction_steps + fs_a_induction_steps))))
  31. apply IH
  32. cases htrace
  33. cases htrace_witness
  34. cases htrace_witness_witness
  35. have hfactor : exists p. ((exists fs_h_trace_factor. fs_h_trace_factor + S (p) = S ((S (l)) * c)) /\ exists fs_q_trace_factor. b = fs_q_trace_factor * S ((S (l)) * c) + (p))
  36. specialize beta_at_exists b
  37. specialize beta_at_exists c
  38. specialize beta_at_exists l
  39. exact beta_at_exists
  40. cases hfactor
  41. have hlast : exists r. ((exists fs_h_trace_last. fs_h_trace_last + S (r) = S ((S (l)) * x1)) /\ exists fs_q_trace_last. x = fs_q_trace_last * S ((S (l)) * x1) + (r))
  42. specialize beta_at_exists x
  43. specialize beta_at_exists x1
  44. specialize beta_at_exists l
  45. exact beta_at_exists
  46. cases hlast
  47. have hext : exists z v. ((((exists fs_h_trace_extension. fs_h_trace_extension + S (x3 + x2) = S ((S (S l)) * v)) /\ exists fs_q_trace_extension. z = fs_q_trace_extension * S ((S (S l)) * v) + (x3 + x2))) /\ forall i a. (exists h. h + S i = S l) -> (((exists fs_h_trace_old. fs_h_trace_old + S (a) = S ((S (i)) * x1)) /\ exists fs_q_trace_old. x = fs_q_trace_old * S ((S (i)) * x1) + (a))) -> (((exists fs_h_trace_new. fs_h_trace_new + S (a) = S ((S (i)) * v)) /\ exists fs_q_trace_new. z = fs_q_trace_new * S ((S (i)) * v) + (a))))
  48. specialize beta_prefix_extend (S l)
  49. specialize beta_prefix_extend x
  50. specialize beta_prefix_extend x1
  51. specialize beta_prefix_extend (x3 + x2)
  52. exact beta_prefix_extend
  53. cases hext
  54. cases hext_witness
  55. cases hext_witness_witness
  56. exists x4
  57. exists x5
  58. split
  59. specialize hext_witness_witness_right 0
  60. specialize hext_witness_witness_right 0
  61. apply hext_witness_witness_right
  62. have h0 : exists h. h + S 0 = S l
  63. have hzero : exists h. h + 0 = l
  64. specialize zero_le l
  65. exact zero_le
  66. specialize succ_le_succ 0
  67. specialize succ_le_succ l
  68. apply succ_le_succ
  69. exact hzero
  70. exact h0
  71. exact htrace_witness_witness_left
  72. intro i
  73. intro hi
  74. have hil : exists h. h + i = l
  75. specialize le_of_succ_le_succ i
  76. specialize le_of_succ_le_succ l
  77. apply le_of_succ_le_succ
  78. exact hi
  79. have hsplit : i = l \/ exists h. h + S i = l
  80. specialize le_eq_or_lt i
  81. specialize le_eq_or_lt l
  82. apply le_eq_or_lt
  83. exact hil
  84. cases hsplit
  85. exists x2
  86. exists x3
  87. exists x3 + x2
  88. split
  89. rewrite hsplit_left
  90. rewrite hsplit_left
  91. exact hfactor_witness
  92. split
  93. rewrite hsplit_left
  94. rewrite hsplit_left
  95. specialize hext_witness_witness_right l
  96. specialize hext_witness_witness_right x3
  97. apply hext_witness_witness_right
  98. specialize le_refl (S l)
  99. exact le_refl
  100. exact hlast_witness
  101. split
  102. rewrite hsplit_left
  103. rewrite hsplit_left
  104. exact hext_witness_witness_left
  105. refl
  106. have hold : exists p r s. ((((exists fs_h_trace_hold_factor. fs_h_trace_hold_factor + S (p) = S ((S (i)) * c)) /\ exists fs_q_trace_hold_factor. b = fs_q_trace_hold_factor * S ((S (i)) * c) + (p))) /\ ((((exists fs_h_trace_hold_partial. fs_h_trace_hold_partial + S (r) = S ((S (i)) * x1)) /\ exists fs_q_trace_hold_partial. x = fs_q_trace_hold_partial * S ((S (i)) * x1) + (r))) /\ ((((exists fs_h_trace_hold_successor. fs_h_trace_hold_successor + S (s) = S ((S (S i)) * x1)) /\ exists fs_q_trace_hold_successor. x = fs_q_trace_hold_successor * S ((S (S i)) * x1) + (s))) /\ s = r + p)))
  107. specialize htrace_witness_witness_right i
  108. apply htrace_witness_witness_right
  109. exact hsplit_right
  110. cases hold
  111. cases hold_witness
  112. cases hold_witness_witness
  113. cases hold_witness_witness_witness
  114. cases hold_witness_witness_witness_right
  115. cases hold_witness_witness_witness_right_right
  116. exists x6
  117. exists x7
  118. exists x8
  119. split
  120. exact hold_witness_witness_witness_left
  121. split
  122. specialize hext_witness_witness_right i
  123. specialize hext_witness_witness_right x7
  124. apply hext_witness_witness_right
  125. exact hi
  126. exact hold_witness_witness_witness_right_left
  127. split
  128. specialize hext_witness_witness_right (S i)
  129. specialize hext_witness_witness_right x8
  130. apply hext_witness_witness_right
  131. specialize succ_le_succ (S i)
  132. specialize succ_le_succ l
  133. apply succ_le_succ
  134. exact hsplit_right
  135. exact hold_witness_witness_witness_right_right_left
  136. exact hold_witness_witness_witness_right_right_right
beta_sum_exists · unchanged support, not a new admission
forall b c l. exists n. (exists ff_u_x ff_v_x. ((((exists ff_h_x_start. ff_h_x_start + S (0) = S ((S (0)) * ff_v_x)) /\ exists ff_q_x_start. ff_u_x = ff_q_x_start * S ((S (0)) * ff_v_x) + (0))) /\ ((((exists ff_h_x_terminal. ff_h_x_terminal + S (n) = S ((S (l)) * ff_v_x)) /\ exists ff_q_x_terminal. ff_u_x = ff_q_x_terminal * S ((S (l)) * ff_v_x) + (n))) /\ forall ff_i_x. (exists ff_lt_x_bound. ff_lt_x_bound + S ff_i_x = l) -> exists ff_a_x ff_r_x ff_s_x. ((((exists ff_h_x_summand. ff_h_x_summand + S (ff_a_x) = S ((S (ff_i_x)) * c)) /\ exists ff_q_x_summand. b = ff_q_x_summand * S ((S (ff_i_x)) * c) + (ff_a_x))) /\ ((((exists ff_h_x_partial. ff_h_x_partial + S (ff_r_x) = S ((S (ff_i_x)) * ff_v_x)) /\ exists ff_q_x_partial. ff_u_x = ff_q_x_partial * S ((S (ff_i_x)) * ff_v_x) + (ff_r_x))) /\ ((((exists ff_h_x_successor. ff_h_x_successor + S (ff_s_x) = S ((S (S ff_i_x)) * ff_v_x)) /\ exists ff_q_x_successor. ff_u_x = ff_q_x_successor * S ((S (S ff_i_x)) * ff_v_x) + (ff_s_x))) /\ ff_s_x = ff_r_x + ff_a_x))))))
  1. intro b
  2. intro c
  3. intro l
  4. have htrace : exists fs_u_exists_trace fs_v_exists_trace. ((((exists fs_h_exists_trace_start. fs_h_exists_trace_start + S (0) = S ((S (0)) * fs_v_exists_trace)) /\ exists fs_q_exists_trace_start. fs_u_exists_trace = fs_q_exists_trace_start * S ((S (0)) * fs_v_exists_trace) + (0))) /\ forall fs_i_exists_trace_steps. (exists fs_lt_exists_trace_steps_bound. fs_lt_exists_trace_steps_bound + S fs_i_exists_trace_steps = l) -> exists fs_a_exists_trace_steps fs_r_exists_trace_steps fs_s_exists_trace_steps. ((((exists fs_h_exists_trace_steps_summand. fs_h_exists_trace_steps_summand + S (fs_a_exists_trace_steps) = S ((S (fs_i_exists_trace_steps)) * c)) /\ exists fs_q_exists_trace_steps_summand. b = fs_q_exists_trace_steps_summand * S ((S (fs_i_exists_trace_steps)) * c) + (fs_a_exists_trace_steps))) /\ ((((exists fs_h_exists_trace_steps_partial. fs_h_exists_trace_steps_partial + S (fs_r_exists_trace_steps) = S ((S (fs_i_exists_trace_steps)) * fs_v_exists_trace)) /\ exists fs_q_exists_trace_steps_partial. fs_u_exists_trace = fs_q_exists_trace_steps_partial * S ((S (fs_i_exists_trace_steps)) * fs_v_exists_trace) + (fs_r_exists_trace_steps))) /\ ((((exists fs_h_exists_trace_steps_successor. fs_h_exists_trace_steps_successor + S (fs_s_exists_trace_steps) = S ((S (S fs_i_exists_trace_steps)) * fs_v_exists_trace)) /\ exists fs_q_exists_trace_steps_successor. fs_u_exists_trace = fs_q_exists_trace_steps_successor * S ((S (S fs_i_exists_trace_steps)) * fs_v_exists_trace) + (fs_s_exists_trace_steps))) /\ fs_s_exists_trace_steps = fs_r_exists_trace_steps + fs_a_exists_trace_steps))))
  5. specialize beta_prefix_sum_trace_exists b
  6. specialize beta_prefix_sum_trace_exists c
  7. specialize beta_prefix_sum_trace_exists l
  8. exact beta_prefix_sum_trace_exists
  9. cases htrace
  10. cases htrace_witness
  11. cases htrace_witness_witness
  12. have hterminal : exists n. ((exists fs_h_sum_terminal. fs_h_sum_terminal + S (n) = S ((S (l)) * x1)) /\ exists fs_q_sum_terminal. x = fs_q_sum_terminal * S ((S (l)) * x1) + (n))
  13. specialize beta_at_exists x
  14. specialize beta_at_exists x1
  15. specialize beta_at_exists l
  16. exact beta_at_exists
  17. cases hterminal
  18. exists x2
  19. exists x
  20. exists x1
  21. split
  22. exact htrace_witness_witness_left
  23. split
  24. exact hterminal_witness
  25. exact htrace_witness_witness_right
beta_sum_trace_functional · unchanged support, not a new admission
forall b c l n u v m w d. (((((exists fs_h_functional_left_start. fs_h_functional_left_start + S (0) = S ((S (0)) * v)) /\ exists fs_q_functional_left_start. u = fs_q_functional_left_start * S ((S (0)) * v) + (0))) /\ ((((exists fs_h_functional_left_terminal. fs_h_functional_left_terminal + S (n) = S ((S (l)) * v)) /\ exists fs_q_functional_left_terminal. u = fs_q_functional_left_terminal * S ((S (l)) * v) + (n))) /\ forall fs_i_functional_left_steps. (exists fs_lt_functional_left_steps_bound. fs_lt_functional_left_steps_bound + S fs_i_functional_left_steps = l) -> exists fs_a_functional_left_steps fs_r_functional_left_steps fs_s_functional_left_steps. ((((exists fs_h_functional_left_steps_summand. fs_h_functional_left_steps_summand + S (fs_a_functional_left_steps) = S ((S (fs_i_functional_left_steps)) * c)) /\ exists fs_q_functional_left_steps_summand. b = fs_q_functional_left_steps_summand * S ((S (fs_i_functional_left_steps)) * c) + (fs_a_functional_left_steps))) /\ ((((exists fs_h_functional_left_steps_partial. fs_h_functional_left_steps_partial + S (fs_r_functional_left_steps) = S ((S (fs_i_functional_left_steps)) * v)) /\ exists fs_q_functional_left_steps_partial. u = fs_q_functional_left_steps_partial * S ((S (fs_i_functional_left_steps)) * v) + (fs_r_functional_left_steps))) /\ ((((exists fs_h_functional_left_steps_successor. fs_h_functional_left_steps_successor + S (fs_s_functional_left_steps) = S ((S (S fs_i_functional_left_steps)) * v)) /\ exists fs_q_functional_left_steps_successor. u = fs_q_functional_left_steps_successor * S ((S (S fs_i_functional_left_steps)) * v) + (fs_s_functional_left_steps))) /\ fs_s_functional_left_steps = fs_r_functional_left_steps + fs_a_functional_left_steps)))))) -> (((((exists fs_h_functional_right_start. fs_h_functional_right_start + S (0) = S ((S (0)) * d)) /\ exists fs_q_functional_right_start. w = fs_q_functional_right_start * S ((S (0)) * d) + (0))) /\ ((((exists fs_h_functional_right_terminal. fs_h_functional_right_terminal + S (m) = S ((S (l)) * d)) /\ exists fs_q_functional_right_terminal. w = fs_q_functional_right_terminal * S ((S (l)) * d) + (m))) /\ forall fs_i_functional_right_steps. (exists fs_lt_functional_right_steps_bound. fs_lt_functional_right_steps_bound + S fs_i_functional_right_steps = l) -> exists fs_a_functional_right_steps fs_r_functional_right_steps fs_s_functional_right_steps. ((((exists fs_h_functional_right_steps_summand. fs_h_functional_right_steps_summand + S (fs_a_functional_right_steps) = S ((S (fs_i_functional_right_steps)) * c)) /\ exists fs_q_functional_right_steps_summand. b = fs_q_functional_right_steps_summand * S ((S (fs_i_functional_right_steps)) * c) + (fs_a_functional_right_steps))) /\ ((((exists fs_h_functional_right_steps_partial. fs_h_functional_right_steps_partial + S (fs_r_functional_right_steps) = S ((S (fs_i_functional_right_steps)) * d)) /\ exists fs_q_functional_right_steps_partial. w = fs_q_functional_right_steps_partial * S ((S (fs_i_functional_right_steps)) * d) + (fs_r_functional_right_steps))) /\ ((((exists fs_h_functional_right_steps_successor. fs_h_functional_right_steps_successor + S (fs_s_functional_right_steps) = S ((S (S fs_i_functional_right_steps)) * d)) /\ exists fs_q_functional_right_steps_successor. w = fs_q_functional_right_steps_successor * S ((S (S fs_i_functional_right_steps)) * d) + (fs_s_functional_right_steps))) /\ fs_s_functional_right_steps = fs_r_functional_right_steps + fs_a_functional_right_steps)))))) -> n = m
  1. intro b
  2. intro c
  3. induction l
  4. intro n
  5. intro u
  6. intro v
  7. intro m
  8. intro w
  9. intro d
  10. intro h1
  11. intro h2
  12. cases h1
  13. cases h1_right
  14. cases h2
  15. cases h2_right
  16. have hn : n = 0
  17. specialize beta_at_unique u
  18. specialize beta_at_unique v
  19. specialize beta_at_unique 0
  20. specialize beta_at_unique n
  21. specialize beta_at_unique 0
  22. apply beta_at_unique
  23. exact h1_right_left
  24. exact h1_left
  25. have hm : m = 0
  26. specialize beta_at_unique w
  27. specialize beta_at_unique d
  28. specialize beta_at_unique 0
  29. specialize beta_at_unique m
  30. specialize beta_at_unique 0
  31. apply beta_at_unique
  32. exact h2_right_left
  33. exact h2_left
  34. trans 0
  35. exact hn
  36. symm
  37. exact hm
  38. intro n
  39. intro u
  40. intro v
  41. intro m
  42. intro w
  43. intro d
  44. intro h1
  45. intro h2
  46. cases h1
  47. cases h1_right
  48. cases h2
  49. cases h2_right
  50. have hstep1 : exists a r s. ((((exists fs_h_functional_step1_factor. fs_h_functional_step1_factor + S (a) = S ((S (l)) * c)) /\ exists fs_q_functional_step1_factor. b = fs_q_functional_step1_factor * S ((S (l)) * c) + (a))) /\ ((((exists fs_h_functional_step1_partial. fs_h_functional_step1_partial + S (r) = S ((S (l)) * v)) /\ exists fs_q_functional_step1_partial. u = fs_q_functional_step1_partial * S ((S (l)) * v) + (r))) /\ ((((exists fs_h_functional_step1_successor. fs_h_functional_step1_successor + S (s) = S ((S (S l)) * v)) /\ exists fs_q_functional_step1_successor. u = fs_q_functional_step1_successor * S ((S (S l)) * v) + (s))) /\ s = r + a)))
  51. specialize h1_right_right l
  52. apply h1_right_right
  53. specialize le_refl (S l)
  54. exact le_refl
  55. cases hstep1
  56. cases hstep1_witness
  57. cases hstep1_witness_witness
  58. cases hstep1_witness_witness_witness
  59. cases hstep1_witness_witness_witness_right
  60. cases hstep1_witness_witness_witness_right_right
  61. have hstep2 : exists a r s. ((((exists fs_h_functional_step2_factor. fs_h_functional_step2_factor + S (a) = S ((S (l)) * c)) /\ exists fs_q_functional_step2_factor. b = fs_q_functional_step2_factor * S ((S (l)) * c) + (a))) /\ ((((exists fs_h_functional_step2_partial. fs_h_functional_step2_partial + S (r) = S ((S (l)) * d)) /\ exists fs_q_functional_step2_partial. w = fs_q_functional_step2_partial * S ((S (l)) * d) + (r))) /\ ((((exists fs_h_functional_step2_successor. fs_h_functional_step2_successor + S (s) = S ((S (S l)) * d)) /\ exists fs_q_functional_step2_successor. w = fs_q_functional_step2_successor * S ((S (S l)) * d) + (s))) /\ s = r + a)))
  62. specialize h2_right_right l
  63. apply h2_right_right
  64. specialize le_refl (S l)
  65. exact le_refl
  66. cases hstep2
  67. cases hstep2_witness
  68. cases hstep2_witness_witness
  69. cases hstep2_witness_witness_witness
  70. cases hstep2_witness_witness_witness_right
  71. cases hstep2_witness_witness_witness_right_right
  72. have hn : n = x2
  73. specialize beta_at_unique u
  74. specialize beta_at_unique v
  75. specialize beta_at_unique (S l)
  76. specialize beta_at_unique n
  77. specialize beta_at_unique x2
  78. apply beta_at_unique
  79. exact h1_right_left
  80. exact hstep1_witness_witness_witness_right_right_left
  81. have hm : m = x5
  82. specialize beta_at_unique w
  83. specialize beta_at_unique d
  84. specialize beta_at_unique (S l)
  85. specialize beta_at_unique m
  86. specialize beta_at_unique x5
  87. apply beta_at_unique
  88. exact h2_right_left
  89. exact hstep2_witness_witness_witness_right_right_left
  90. have ha : x = x3
  91. specialize beta_at_unique b
  92. specialize beta_at_unique c
  93. specialize beta_at_unique l
  94. specialize beta_at_unique x
  95. specialize beta_at_unique x3
  96. apply beta_at_unique
  97. exact hstep1_witness_witness_witness_left
  98. exact hstep2_witness_witness_witness_left
  99. have hsum1 : ((((exists fs_h_functional_prefix1_start. fs_h_functional_prefix1_start + S (0) = S ((S (0)) * v)) /\ exists fs_q_functional_prefix1_start. u = fs_q_functional_prefix1_start * S ((S (0)) * v) + (0))) /\ ((((exists fs_h_functional_prefix1_terminal. fs_h_functional_prefix1_terminal + S (x1) = S ((S (l)) * v)) /\ exists fs_q_functional_prefix1_terminal. u = fs_q_functional_prefix1_terminal * S ((S (l)) * v) + (x1))) /\ forall fs_i_functional_prefix1_steps. (exists fs_lt_functional_prefix1_steps_bound. fs_lt_functional_prefix1_steps_bound + S fs_i_functional_prefix1_steps = l) -> exists fs_a_functional_prefix1_steps fs_r_functional_prefix1_steps fs_s_functional_prefix1_steps. ((((exists fs_h_functional_prefix1_steps_summand. fs_h_functional_prefix1_steps_summand + S (fs_a_functional_prefix1_steps) = S ((S (fs_i_functional_prefix1_steps)) * c)) /\ exists fs_q_functional_prefix1_steps_summand. b = fs_q_functional_prefix1_steps_summand * S ((S (fs_i_functional_prefix1_steps)) * c) + (fs_a_functional_prefix1_steps))) /\ ((((exists fs_h_functional_prefix1_steps_partial. fs_h_functional_prefix1_steps_partial + S (fs_r_functional_prefix1_steps) = S ((S (fs_i_functional_prefix1_steps)) * v)) /\ exists fs_q_functional_prefix1_steps_partial. u = fs_q_functional_prefix1_steps_partial * S ((S (fs_i_functional_prefix1_steps)) * v) + (fs_r_functional_prefix1_steps))) /\ ((((exists fs_h_functional_prefix1_steps_successor. fs_h_functional_prefix1_steps_successor + S (fs_s_functional_prefix1_steps) = S ((S (S fs_i_functional_prefix1_steps)) * v)) /\ exists fs_q_functional_prefix1_steps_successor. u = fs_q_functional_prefix1_steps_successor * S ((S (S fs_i_functional_prefix1_steps)) * v) + (fs_s_functional_prefix1_steps))) /\ fs_s_functional_prefix1_steps = fs_r_functional_prefix1_steps + fs_a_functional_prefix1_steps)))))
  100. split
  101. exact h1_left
  102. split
  103. exact hstep1_witness_witness_witness_right_left
  104. intro i
  105. intro hi
  106. specialize h1_right_right i
  107. apply h1_right_right
  108. specialize le_succ (S i)
  109. specialize le_succ l
  110. apply le_succ
  111. exact hi
  112. have hsum2 : ((((exists fs_h_functional_prefix2_start. fs_h_functional_prefix2_start + S (0) = S ((S (0)) * d)) /\ exists fs_q_functional_prefix2_start. w = fs_q_functional_prefix2_start * S ((S (0)) * d) + (0))) /\ ((((exists fs_h_functional_prefix2_terminal. fs_h_functional_prefix2_terminal + S (x4) = S ((S (l)) * d)) /\ exists fs_q_functional_prefix2_terminal. w = fs_q_functional_prefix2_terminal * S ((S (l)) * d) + (x4))) /\ forall fs_i_functional_prefix2_steps. (exists fs_lt_functional_prefix2_steps_bound. fs_lt_functional_prefix2_steps_bound + S fs_i_functional_prefix2_steps = l) -> exists fs_a_functional_prefix2_steps fs_r_functional_prefix2_steps fs_s_functional_prefix2_steps. ((((exists fs_h_functional_prefix2_steps_summand. fs_h_functional_prefix2_steps_summand + S (fs_a_functional_prefix2_steps) = S ((S (fs_i_functional_prefix2_steps)) * c)) /\ exists fs_q_functional_prefix2_steps_summand. b = fs_q_functional_prefix2_steps_summand * S ((S (fs_i_functional_prefix2_steps)) * c) + (fs_a_functional_prefix2_steps))) /\ ((((exists fs_h_functional_prefix2_steps_partial. fs_h_functional_prefix2_steps_partial + S (fs_r_functional_prefix2_steps) = S ((S (fs_i_functional_prefix2_steps)) * d)) /\ exists fs_q_functional_prefix2_steps_partial. w = fs_q_functional_prefix2_steps_partial * S ((S (fs_i_functional_prefix2_steps)) * d) + (fs_r_functional_prefix2_steps))) /\ ((((exists fs_h_functional_prefix2_steps_successor. fs_h_functional_prefix2_steps_successor + S (fs_s_functional_prefix2_steps) = S ((S (S fs_i_functional_prefix2_steps)) * d)) /\ exists fs_q_functional_prefix2_steps_successor. w = fs_q_functional_prefix2_steps_successor * S ((S (S fs_i_functional_prefix2_steps)) * d) + (fs_s_functional_prefix2_steps))) /\ fs_s_functional_prefix2_steps = fs_r_functional_prefix2_steps + fs_a_functional_prefix2_steps)))))
  113. split
  114. exact h2_left
  115. split
  116. exact hstep2_witness_witness_witness_right_left
  117. intro i
  118. intro hi
  119. specialize h2_right_right i
  120. apply h2_right_right
  121. specialize le_succ (S i)
  122. specialize le_succ l
  123. apply le_succ
  124. exact hi
  125. have hprev : x1 = x4
  126. specialize IH x1
  127. specialize IH u
  128. specialize IH v
  129. specialize IH x4
  130. specialize IH w
  131. specialize IH d
  132. apply IH
  133. exact hsum1
  134. exact hsum2
  135. have hadd : x1 + x = x4 + x3
  136. specialize add_congr x1
  137. specialize add_congr x4
  138. specialize add_congr x
  139. specialize add_congr x3
  140. apply add_congr
  141. exact hprev
  142. exact ha
  143. trans x2
  144. exact hn
  145. trans x1 + x
  146. exact hstep1_witness_witness_witness_right_right_right
  147. trans x4 + x3
  148. exact hadd
  149. trans x5
  150. symm
  151. exact hstep2_witness_witness_witness_right_right_right
  152. symm
  153. exact hm
beta_sum_functional · unchanged support, not a new admission
forall b c l n m. (exists ff_u_l ff_v_l. ((((exists ff_h_l_start. ff_h_l_start + S (0) = S ((S (0)) * ff_v_l)) /\ exists ff_q_l_start. ff_u_l = ff_q_l_start * S ((S (0)) * ff_v_l) + (0))) /\ ((((exists ff_h_l_terminal. ff_h_l_terminal + S (n) = S ((S (l)) * ff_v_l)) /\ exists ff_q_l_terminal. ff_u_l = ff_q_l_terminal * S ((S (l)) * ff_v_l) + (n))) /\ forall ff_i_l. (exists ff_lt_l_bound. ff_lt_l_bound + S ff_i_l = l) -> exists ff_a_l ff_r_l ff_s_l. ((((exists ff_h_l_summand. ff_h_l_summand + S (ff_a_l) = S ((S (ff_i_l)) * c)) /\ exists ff_q_l_summand. b = ff_q_l_summand * S ((S (ff_i_l)) * c) + (ff_a_l))) /\ ((((exists ff_h_l_partial. ff_h_l_partial + S (ff_r_l) = S ((S (ff_i_l)) * ff_v_l)) /\ exists ff_q_l_partial. ff_u_l = ff_q_l_partial * S ((S (ff_i_l)) * ff_v_l) + (ff_r_l))) /\ ((((exists ff_h_l_successor. ff_h_l_successor + S (ff_s_l) = S ((S (S ff_i_l)) * ff_v_l)) /\ exists ff_q_l_successor. ff_u_l = ff_q_l_successor * S ((S (S ff_i_l)) * ff_v_l) + (ff_s_l))) /\ ff_s_l = ff_r_l + ff_a_l)))))) -> (exists ff_u_r ff_v_r. ((((exists ff_h_r_start. ff_h_r_start + S (0) = S ((S (0)) * ff_v_r)) /\ exists ff_q_r_start. ff_u_r = ff_q_r_start * S ((S (0)) * ff_v_r) + (0))) /\ ((((exists ff_h_r_terminal. ff_h_r_terminal + S (m) = S ((S (l)) * ff_v_r)) /\ exists ff_q_r_terminal. ff_u_r = ff_q_r_terminal * S ((S (l)) * ff_v_r) + (m))) /\ forall ff_i_r. (exists ff_lt_r_bound. ff_lt_r_bound + S ff_i_r = l) -> exists ff_a_r ff_r_r ff_s_r. ((((exists ff_h_r_summand. ff_h_r_summand + S (ff_a_r) = S ((S (ff_i_r)) * c)) /\ exists ff_q_r_summand. b = ff_q_r_summand * S ((S (ff_i_r)) * c) + (ff_a_r))) /\ ((((exists ff_h_r_partial. ff_h_r_partial + S (ff_r_r) = S ((S (ff_i_r)) * ff_v_r)) /\ exists ff_q_r_partial. ff_u_r = ff_q_r_partial * S ((S (ff_i_r)) * ff_v_r) + (ff_r_r))) /\ ((((exists ff_h_r_successor. ff_h_r_successor + S (ff_s_r) = S ((S (S ff_i_r)) * ff_v_r)) /\ exists ff_q_r_successor. ff_u_r = ff_q_r_successor * S ((S (S ff_i_r)) * ff_v_r) + (ff_s_r))) /\ ff_s_r = ff_r_r + ff_a_r)))))) -> n = m
  1. intro b
  2. intro c
  3. intro l
  4. intro n
  5. intro m
  6. intro hn
  7. intro hm
  8. cases hn
  9. cases hn_witness
  10. cases hm
  11. cases hm_witness
  12. specialize beta_sum_trace_functional b
  13. specialize beta_sum_trace_functional c
  14. specialize beta_sum_trace_functional l
  15. specialize beta_sum_trace_functional n
  16. specialize beta_sum_trace_functional x
  17. specialize beta_sum_trace_functional x1
  18. specialize beta_sum_trace_functional m
  19. specialize beta_sum_trace_functional x2
  20. specialize beta_sum_trace_functional x3
  21. apply beta_sum_trace_functional
  22. exact hn_witness_witness
  23. exact hm_witness_witness
beta_sum_zero · unchanged support, not a new admission
forall b c n. (exists fs_u_zero fs_v_zero. ((((exists fs_h_zero_body_start. fs_h_zero_body_start + S (0) = S ((S (0)) * fs_v_zero)) /\ exists fs_q_zero_body_start. fs_u_zero = fs_q_zero_body_start * S ((S (0)) * fs_v_zero) + (0))) /\ ((((exists fs_h_zero_body_terminal. fs_h_zero_body_terminal + S (n) = S ((S (0)) * fs_v_zero)) /\ exists fs_q_zero_body_terminal. fs_u_zero = fs_q_zero_body_terminal * S ((S (0)) * fs_v_zero) + (n))) /\ forall fs_i_zero_body_steps. (exists fs_lt_zero_body_steps_bound. fs_lt_zero_body_steps_bound + S fs_i_zero_body_steps = 0) -> exists fs_a_zero_body_steps fs_r_zero_body_steps fs_s_zero_body_steps. ((((exists fs_h_zero_body_steps_summand. fs_h_zero_body_steps_summand + S (fs_a_zero_body_steps) = S ((S (fs_i_zero_body_steps)) * c)) /\ exists fs_q_zero_body_steps_summand. b = fs_q_zero_body_steps_summand * S ((S (fs_i_zero_body_steps)) * c) + (fs_a_zero_body_steps))) /\ ((((exists fs_h_zero_body_steps_partial. fs_h_zero_body_steps_partial + S (fs_r_zero_body_steps) = S ((S (fs_i_zero_body_steps)) * fs_v_zero)) /\ exists fs_q_zero_body_steps_partial. fs_u_zero = fs_q_zero_body_steps_partial * S ((S (fs_i_zero_body_steps)) * fs_v_zero) + (fs_r_zero_body_steps))) /\ ((((exists fs_h_zero_body_steps_successor. fs_h_zero_body_steps_successor + S (fs_s_zero_body_steps) = S ((S (S fs_i_zero_body_steps)) * fs_v_zero)) /\ exists fs_q_zero_body_steps_successor. fs_u_zero = fs_q_zero_body_steps_successor * S ((S (S fs_i_zero_body_steps)) * fs_v_zero) + (fs_s_zero_body_steps))) /\ fs_s_zero_body_steps = fs_r_zero_body_steps + fs_a_zero_body_steps)))))) -> n = 0
  1. intro b
  2. intro c
  3. intro n
  4. intro hsum
  5. cases hsum
  6. cases hsum_witness
  7. cases hsum_witness_witness
  8. cases hsum_witness_witness_right
  9. specialize beta_at_unique x
  10. specialize beta_at_unique x1
  11. specialize beta_at_unique 0
  12. specialize beta_at_unique n
  13. specialize beta_at_unique 0
  14. apply beta_at_unique
  15. exact hsum_witness_witness_right_left
  16. exact hsum_witness_witness_left
beta_sum_succ_decompose · unchanged support, not a new admission
forall b c l n. (exists fs_u_succ fs_v_succ. ((((exists fs_h_succ_body_start. fs_h_succ_body_start + S (0) = S ((S (0)) * fs_v_succ)) /\ exists fs_q_succ_body_start. fs_u_succ = fs_q_succ_body_start * S ((S (0)) * fs_v_succ) + (0))) /\ ((((exists fs_h_succ_body_terminal. fs_h_succ_body_terminal + S (n) = S ((S (S l)) * fs_v_succ)) /\ exists fs_q_succ_body_terminal. fs_u_succ = fs_q_succ_body_terminal * S ((S (S l)) * fs_v_succ) + (n))) /\ forall fs_i_succ_body_steps. (exists fs_lt_succ_body_steps_bound. fs_lt_succ_body_steps_bound + S fs_i_succ_body_steps = S l) -> exists fs_a_succ_body_steps fs_r_succ_body_steps fs_s_succ_body_steps. ((((exists fs_h_succ_body_steps_summand. fs_h_succ_body_steps_summand + S (fs_a_succ_body_steps) = S ((S (fs_i_succ_body_steps)) * c)) /\ exists fs_q_succ_body_steps_summand. b = fs_q_succ_body_steps_summand * S ((S (fs_i_succ_body_steps)) * c) + (fs_a_succ_body_steps))) /\ ((((exists fs_h_succ_body_steps_partial. fs_h_succ_body_steps_partial + S (fs_r_succ_body_steps) = S ((S (fs_i_succ_body_steps)) * fs_v_succ)) /\ exists fs_q_succ_body_steps_partial. fs_u_succ = fs_q_succ_body_steps_partial * S ((S (fs_i_succ_body_steps)) * fs_v_succ) + (fs_r_succ_body_steps))) /\ ((((exists fs_h_succ_body_steps_successor. fs_h_succ_body_steps_successor + S (fs_s_succ_body_steps) = S ((S (S fs_i_succ_body_steps)) * fs_v_succ)) /\ exists fs_q_succ_body_steps_successor. fs_u_succ = fs_q_succ_body_steps_successor * S ((S (S fs_i_succ_body_steps)) * fs_v_succ) + (fs_s_succ_body_steps))) /\ fs_s_succ_body_steps = fs_r_succ_body_steps + fs_a_succ_body_steps)))))) -> exists a r. (((exists fs_h_succ_factor. fs_h_succ_factor + S (a) = S ((S (l)) * c)) /\ exists fs_q_succ_factor. b = fs_q_succ_factor * S ((S (l)) * c) + (a))) /\ ((exists ff_u_prefix ff_v_prefix. ((((exists ff_h_prefix_start. ff_h_prefix_start + S (0) = S ((S (0)) * ff_v_prefix)) /\ exists ff_q_prefix_start. ff_u_prefix = ff_q_prefix_start * S ((S (0)) * ff_v_prefix) + (0))) /\ ((((exists ff_h_prefix_terminal. ff_h_prefix_terminal + S (r) = S ((S (l)) * ff_v_prefix)) /\ exists ff_q_prefix_terminal. ff_u_prefix = ff_q_prefix_terminal * S ((S (l)) * ff_v_prefix) + (r))) /\ forall ff_i_prefix. (exists ff_lt_prefix_bound. ff_lt_prefix_bound + S ff_i_prefix = l) -> exists ff_a_prefix ff_r_prefix ff_s_prefix. ((((exists ff_h_prefix_summand. ff_h_prefix_summand + S (ff_a_prefix) = S ((S (ff_i_prefix)) * c)) /\ exists ff_q_prefix_summand. b = ff_q_prefix_summand * S ((S (ff_i_prefix)) * c) + (ff_a_prefix))) /\ ((((exists ff_h_prefix_partial. ff_h_prefix_partial + S (ff_r_prefix) = S ((S (ff_i_prefix)) * ff_v_prefix)) /\ exists ff_q_prefix_partial. ff_u_prefix = ff_q_prefix_partial * S ((S (ff_i_prefix)) * ff_v_prefix) + (ff_r_prefix))) /\ ((((exists ff_h_prefix_successor. ff_h_prefix_successor + S (ff_s_prefix) = S ((S (S ff_i_prefix)) * ff_v_prefix)) /\ exists ff_q_prefix_successor. ff_u_prefix = ff_q_prefix_successor * S ((S (S ff_i_prefix)) * ff_v_prefix) + (ff_s_prefix))) /\ ff_s_prefix = ff_r_prefix + ff_a_prefix)))))) /\ n = r + a)
  1. intro b
  2. intro c
  3. intro l
  4. intro n
  5. intro hsum
  6. cases hsum
  7. cases hsum_witness
  8. cases hsum_witness_witness
  9. cases hsum_witness_witness_right
  10. have hstep : exists a r s. ((((exists fs_h_decomp_factor. fs_h_decomp_factor + S (a) = S ((S (l)) * c)) /\ exists fs_q_decomp_factor. b = fs_q_decomp_factor * S ((S (l)) * c) + (a))) /\ ((((exists fs_h_decomp_partial. fs_h_decomp_partial + S (r) = S ((S (l)) * x1)) /\ exists fs_q_decomp_partial. x = fs_q_decomp_partial * S ((S (l)) * x1) + (r))) /\ ((((exists fs_h_decomp_successor. fs_h_decomp_successor + S (s) = S ((S (S l)) * x1)) /\ exists fs_q_decomp_successor. x = fs_q_decomp_successor * S ((S (S l)) * x1) + (s))) /\ s = r + a)))
  11. specialize hsum_witness_witness_right_right l
  12. apply hsum_witness_witness_right_right
  13. specialize le_refl (S l)
  14. exact le_refl
  15. cases hstep
  16. cases hstep_witness
  17. cases hstep_witness_witness
  18. cases hstep_witness_witness_witness
  19. cases hstep_witness_witness_witness_right
  20. cases hstep_witness_witness_witness_right_right
  21. have hn : n = x4
  22. specialize beta_at_unique x
  23. specialize beta_at_unique x1
  24. specialize beta_at_unique (S l)
  25. specialize beta_at_unique n
  26. specialize beta_at_unique x4
  27. apply beta_at_unique
  28. exact hsum_witness_witness_right_left
  29. exact hstep_witness_witness_witness_right_right_left
  30. exists x2
  31. exists x3
  32. split
  33. exact hstep_witness_witness_witness_left
  34. split
  35. exists x
  36. exists x1
  37. split
  38. exact hsum_witness_witness_left
  39. split
  40. exact hstep_witness_witness_witness_right_left
  41. intro i
  42. intro hi
  43. specialize hsum_witness_witness_right_right i
  44. apply hsum_witness_witness_right_right
  45. specialize le_succ (S i)
  46. specialize le_succ l
  47. apply le_succ
  48. exact hi
  49. trans x4
  50. exact hn
  51. exact hstep_witness_witness_witness_right_right_right
prime_coprime_or_divides · unchanged support, not a new admission
forall p a. (~(p = 1) /\ forall c e. p = c * e -> c = 1 \/ e = 1) -> (forall d. (exists x. p = d * x) -> (exists y. a = d * y) -> d = 1) \/ exists k. a = p * k
  1. intro p
  2. intro a
  3. intro hp
  4. have hg : exists g. (((exists x. p = g * x) /\ (exists y. a = g * y)) /\ forall c. (exists u. p = c * u) -> (exists v. a = c * v) -> exists w. g = c * w)
  5. apply gcd_exists_relational
  6. cases hg
  7. have hgfull : (((exists u. p = x * u) /\ (exists v. a = x * v)) /\ forall c. (exists s. p = c * s) -> (exists t. a = c * t) -> exists w. x = c * w)
  8. exact hg_witness
  9. cases hg_witness
  10. cases hg_witness_left
  11. have hfactor : x = 1 \/ p = x
  12. specialize prime_divisor_eq_one_or_self p
  13. specialize prime_divisor_eq_one_or_self x
  14. apply prime_divisor_eq_one_or_self
  15. exact hp
  16. exact hg_witness_left_left
  17. cases hfactor
  18. left
  19. apply is_gcd_one_to_coprime
  20. have hg1 : (((exists u. p = 1 * u) /\ (exists v. a = 1 * v)) /\ forall c. (exists s. p = c * s) -> (exists t. a = c * t) -> exists w. 1 = c * w)
  21. rewrite <- hfactor_left
  22. rewrite <- hfactor_left
  23. rewrite <- hfactor_left
  24. exact hgfull
  25. exact hg1
  26. right
  27. cases hg_witness_left_right
  28. exists x1
  29. rewrite hfactor_right
  30. exact hg_witness_left_right_witness
prime_not_divides_coprime · unchanged support, not a new admission
forall p a. (~(p = 1) /\ forall c e. p = c * e -> c = 1 \/ e = 1) -> ~(exists k. a = p * k) -> forall d. (exists x. p = d * x) -> (exists y. a = d * y) -> d = 1
  1. intro p
  2. intro a
  3. intro hp
  4. intro hnot
  5. specialize prime_coprime_or_divides p
  6. specialize prime_coprime_or_divides a
  7. have hsplit : (forall d. (exists x. p = d * x) -> (exists y. a = d * y) -> d = 1) \/ exists k. a = p * k
  8. apply prime_coprime_or_divides
  9. exact hp
  10. cases hsplit
  11. exact hsplit_left
  12. exfalso
  13. apply hnot
  14. exact hsplit_right
coprime_balanced_mod_inverse · unchanged support, not a new admission
forall a m. (forall d. (exists x. a = d * x) -> (exists y. m = d * y) -> d = 1) -> exists xp xn u v. a * xp + m * u = (1 + a * xn) + m * v
  1. intro a
  2. intro m
  3. intro hcop
  4. have hbez : exists xp yp xn yn. a * xp + m * yp = 1 + (a * xn + m * yn)
  5. specialize coprime_balanced_bezout a
  6. specialize coprime_balanced_bezout m
  7. apply coprime_balanced_bezout
  8. exact hcop
  9. cases hbez
  10. cases hbez_witness
  11. cases hbez_witness_witness
  12. cases hbez_witness_witness_witness
  13. exists x
  14. exists x2
  15. exists x1
  16. exists x3
  17. trans 1 + (a * x2 + m * x3)
  18. exact hbez_witness_witness_witness_witness
  19. symm
  20. apply add_assoc
coprime_mod_inverse · unchanged support, not a new admission
forall a m. ~(m = 0) -> (forall d. (exists x. a = d * x) -> (exists y. m = d * y) -> d = 1) -> exists z u v. a * z + m * u = 1 + m * v
  1. intro a
  2. intro m
  3. intro hm
  4. intro hcop
  5. have hms : exists k. m = S k
  6. specialize nonzero_is_succ m
  7. apply nonzero_is_succ
  8. exact hm
  9. have hbal : exists xp xn u v. a * xp + m * u = (1 + a * xn) + m * v
  10. specialize coprime_balanced_mod_inverse a
  11. specialize coprime_balanced_mod_inverse m
  12. apply coprime_balanced_mod_inverse
  13. exact hcop
  14. cases hms
  15. cases hbal
  16. cases hbal_witness
  17. cases hbal_witness_witness
  18. cases hbal_witness_witness_witness
  19. have hself : exists u v. (x * (a * x2)) + m * u = (x * (a * x2)) + m * v
  20. specialize mod_eq_refl m
  21. specialize mod_eq_refl (x * (a * x2))
  22. apply mod_eq_refl
  23. have hadd : exists u v. ((a * x1) + x * (a * x2)) + m * u = ((1 + a * x2) + x * (a * x2)) + m * v
  24. specialize mod_eq_add m
  25. specialize mod_eq_add (a * x1)
  26. specialize mod_eq_add (1 + a * x2)
  27. specialize mod_eq_add (x * (a * x2))
  28. specialize mod_eq_add (x * (a * x2))
  29. apply mod_eq_add
  30. exists x3
  31. exists x4
  32. exact hbal_witness_witness_witness_witness
  33. exact hself
  34. have hcancel : exists u v. ((1 + a * x2) + x * (a * x2)) + m * u = 1 + m * v
  35. specialize mod_eq_predecessor_cancel x
  36. specialize mod_eq_predecessor_cancel 1
  37. specialize mod_eq_predecessor_cancel (a * x2)
  38. have hkcancel : exists u v. ((1 + a * x2) + x * (a * x2)) + S x * u = 1 + S x * v
  39. apply mod_eq_predecessor_cancel
  40. rewrite <- hms_witness at hkcancel
  41. rewrite <- hms_witness at hkcancel
  42. exact hkcancel
  43. have hfinal : exists u v. ((a * x1) + x * (a * x2)) + m * u = 1 + m * v
  44. specialize mod_eq_trans m
  45. specialize mod_eq_trans ((a * x1) + x * (a * x2))
  46. specialize mod_eq_trans ((1 + a * x2) + x * (a * x2))
  47. specialize mod_eq_trans 1
  48. apply mod_eq_trans
  49. exact hadd
  50. exact hcancel
  51. have hnorm : a * (x1 + x * x2) = (a * x1) + x * (a * x2)
  52. trans a * x1 + a * (x * x2)
  53. apply mul_add
  54. congr
  55. refl
  56. trans (a * x) * x2
  57. symm
  58. apply mul_assoc
  59. trans (x * a) * x2
  60. congr
  61. apply mul_comm
  62. refl
  63. apply mul_assoc
  64. exists x1 + x * x2
  65. rewrite hnorm
  66. exact hfinal
mod_eq_cancel_coprime · unchanged support, not a new admission
forall m a x y. ~(m = 0) -> (forall d. (exists x. a = d * x) -> (exists y. m = d * y) -> d = 1) -> (exists u v. (a * x) + m * u = (a * y) + m * v) -> exists r s. x + m * r = y + m * s
  1. intro m
  2. intro a
  3. intro x
  4. intro y
  5. intro hm
  6. intro hcop
  7. intro hxy
  8. have hinv : exists z u v. a * z + m * u = 1 + m * v
  9. specialize coprime_mod_inverse a
  10. specialize coprime_mod_inverse m
  11. apply coprime_mod_inverse
  12. exact hm
  13. exact hcop
  14. cases hinv
  15. cases hinv_witness
  16. cases hinv_witness_witness
  17. have hzx : exists u v. (x * (a * x1)) + m * u = (x * 1) + m * v
  18. specialize mod_eq_mul_left m
  19. specialize mod_eq_mul_left (a * x1)
  20. specialize mod_eq_mul_left 1
  21. specialize mod_eq_mul_left x
  22. apply mod_eq_mul_left
  23. exists x2
  24. exists x3
  25. exact hinv_witness_witness_witness
  26. have hnormx : x * (a * x1) = (a * x) * x1
  27. trans (x * a) * x1
  28. symm
  29. apply mul_assoc
  30. trans (a * x) * x1
  31. congr
  32. apply mul_comm
  33. refl
  34. refl
  35. have honex : x * 1 = x
  36. apply mul_one
  37. have hxprod : exists u v. ((a * x) * x1) + m * u = x + m * v
  38. cases hzx
  39. cases hzx_witness
  40. exists x4
  41. exists x5
  42. trans (x * (a * x1)) + m * x4
  43. congr
  44. symm
  45. exact hnormx
  46. refl
  47. trans (x * 1) + m * x5
  48. exact hzx_witness_witness
  49. congr
  50. exact honex
  51. refl
  52. have hxhprod : exists u v. x + m * u = ((a * x) * x1) + m * v
  53. specialize mod_eq_symm m
  54. specialize mod_eq_symm ((a * x) * x1)
  55. specialize mod_eq_symm x
  56. apply mod_eq_symm
  57. exact hxprod
  58. have hscaled : exists u v. ((a * x) * x1) + m * u = ((a * y) * x1) + m * v
  59. specialize mod_eq_mul_right m
  60. specialize mod_eq_mul_right (a * x)
  61. specialize mod_eq_mul_right (a * y)
  62. specialize mod_eq_mul_right x1
  63. apply mod_eq_mul_right
  64. exact hxy
  65. have hzy : exists u v. (y * (a * x1)) + m * u = (y * 1) + m * v
  66. specialize mod_eq_mul_left m
  67. specialize mod_eq_mul_left (a * x1)
  68. specialize mod_eq_mul_left 1
  69. specialize mod_eq_mul_left y
  70. apply mod_eq_mul_left
  71. exists x2
  72. exists x3
  73. exact hinv_witness_witness_witness
  74. have hnormy : y * (a * x1) = (a * y) * x1
  75. trans (y * a) * x1
  76. symm
  77. apply mul_assoc
  78. trans (a * y) * x1
  79. congr
  80. apply mul_comm
  81. refl
  82. refl
  83. have honey : y * 1 = y
  84. apply mul_one
  85. have hyprod : exists u v. ((a * y) * x1) + m * u = y + m * v
  86. cases hzy
  87. cases hzy_witness
  88. exists x4
  89. exists x5
  90. trans (y * (a * x1)) + m * x4
  91. congr
  92. symm
  93. exact hnormy
  94. refl
  95. trans (y * 1) + m * x5
  96. exact hzy_witness_witness
  97. congr
  98. exact honey
  99. refl
  100. have hmid : exists u v. x + m * u = ((a * y) * x1) + m * v
  101. specialize mod_eq_trans m
  102. specialize mod_eq_trans x
  103. specialize mod_eq_trans ((a * x) * x1)
  104. specialize mod_eq_trans ((a * y) * x1)
  105. apply mod_eq_trans
  106. exact hxhprod
  107. exact hscaled
  108. specialize mod_eq_trans m
  109. specialize mod_eq_trans x
  110. specialize mod_eq_trans ((a * y) * x1)
  111. specialize mod_eq_trans y
  112. apply mod_eq_trans
  113. exact hmid
  114. exact hyprod
prime_mod_inverse · unchanged support, not a new admission
forall p a. (~(p = 1) /\ forall c e. p = c * e -> c = 1 \/ e = 1) -> ~(exists k. a = p * k) -> exists z u v. a * z + p * u = 1 + p * v
  1. intro p
  2. intro a
  3. intro hp
  4. intro hnot
  5. have hp0 : ~(p = 0)
  6. intro hpzero
  7. specialize prime_nonzero p
  8. apply prime_nonzero
  9. exact hp
  10. exact hpzero
  11. have hcop : forall d. (exists x. a = d * x) -> (exists y. p = d * y) -> d = 1
  12. have hpacop : forall d. (exists x. p = d * x) -> (exists y. a = d * y) -> d = 1
  13. specialize prime_not_divides_coprime p
  14. specialize prime_not_divides_coprime a
  15. apply prime_not_divides_coprime
  16. exact hp
  17. exact hnot
  18. intro d
  19. intro hda
  20. intro hdp
  21. specialize hpacop d
  22. apply hpacop
  23. exact hdp
  24. exact hda
  25. specialize coprime_mod_inverse a
  26. specialize coprime_mod_inverse p
  27. apply coprime_mod_inverse
  28. exact hp0
  29. exact hcop
finite_lt_succ_eq_or_lt · unchanged support, not a new admission
forall n x. (exists h. h + S x = S n) -> x = n \/ exists h. h + S x = n
  1. intro n
  2. intro x
  3. intro hlt
  4. have hle : exists h. h + x = n
  5. specialize le_of_succ_le_succ x
  6. specialize le_of_succ_le_succ n
  7. apply le_of_succ_le_succ
  8. exact hlt
  9. specialize le_eq_or_lt x
  10. specialize le_eq_or_lt n
  11. apply le_eq_or_lt
  12. exact hle
prime_is_succ_succ · unchanged support, not a new admission
forall p. ((~(p = 1) /\ forall qrbu_factor_left_prime_p qrbu_factor_right_prime_p. p = qrbu_factor_left_prime_p * qrbu_factor_right_prime_p -> qrbu_factor_left_prime_p = 1 \/ qrbu_factor_right_prime_p = 1)) -> exists k. p = S (S k)
  1. intro p
  2. intro hp
  3. have hp0 : ~(p = 0)
  4. intro hpzero
  5. specialize prime_nonzero p
  6. apply prime_nonzero
  7. exact hp
  8. exact hpzero
  9. have hps : exists k. p = S k
  10. specialize nonzero_is_succ p
  11. apply nonzero_is_succ
  12. exact hp0
  13. cases hps
  14. have hx0 : ~(x = 0)
  15. intro hx0
  16. cases hp
  17. apply hp_left
  18. rewrite hps_witness
  19. rewrite hx0
  20. refl
  21. have hxs : exists k. x = S k
  22. specialize nonzero_is_succ x
  23. apply nonzero_is_succ
  24. exact hx0
  25. cases hxs
  26. exists x1
  27. rewrite hps_witness
  28. rewrite hxs_witness
  29. refl
prime_bounded_nonzero_mod_inverse · unchanged support, not a new admission
forall p a. ((~(p = 1) /\ forall qrbu_factor_left_prime_p qrbu_factor_right_prime_p. p = qrbu_factor_left_prime_p * qrbu_factor_right_prime_p -> qrbu_factor_left_prime_p = 1 \/ qrbu_factor_right_prime_p = 1)) -> ~(a = 0) -> (exists qrbu_gap_a_lt_p. qrbu_gap_a_lt_p + S a = p) -> (exists qrbu_inverse_bounded_inverse. (~(qrbu_inverse_bounded_inverse = 0) /\ ((exists qrbu_gap_bounded_inverse_bound. qrbu_gap_bounded_inverse_bound + S qrbu_inverse_bounded_inverse = p) /\ (exists qrbu_mod_left_bounded_inverse_mod qrbu_mod_right_bounded_inverse_mod. a * qrbu_inverse_bounded_inverse + p * qrbu_mod_left_bounded_inverse_mod = 1 + p * qrbu_mod_right_bounded_inverse_mod))))
  1. intro p
  2. intro a
  3. intro hp
  4. intro ha0
  5. intro hap
  6. have hp0 : ~(p = 0)
  7. intro hpzero
  8. specialize prime_nonzero p
  9. apply prime_nonzero
  10. exact hp
  11. exact hpzero
  12. have hnotdiv : ~(exists k. a = p * k)
  13. intro hdiv
  14. have hpa : exists t. t + p = a
  15. specialize divisor_le_nonzero p
  16. specialize divisor_le_nonzero a
  17. apply divisor_le_nonzero
  18. exact ha0
  19. exact hdiv
  20. specialize lt_not_le a
  21. specialize lt_not_le p
  22. apply lt_not_le
  23. exact hap
  24. exact hpa
  25. have hinv : exists z u v. a * z + p * u = 1 + p * v
  26. specialize prime_mod_inverse p
  27. specialize prime_mod_inverse a
  28. apply prime_mod_inverse
  29. exact hp
  30. exact hnotdiv
  31. cases hinv
  32. cases hinv_witness
  33. cases hinv_witness_witness
  34. have hdivz : exists q r. x = p * q + r /\ exists h. h + S r = p
  35. specialize division_remainder_exists p
  36. specialize division_remainder_exists x
  37. apply division_remainder_exists
  38. exact hp0
  39. cases hdivz
  40. cases hdivz_witness
  41. cases hdivz_witness_witness
  42. have hzdecomp : x = x3 * p + x4
  43. trans p * x3 + x4
  44. exact hdivz_witness_witness_left
  45. congr
  46. apply mul_comm
  47. refl
  48. have hzr : exists u v. x + p * u = x4 + p * v
  49. specialize remainder_decomposition_to_mod_eq p
  50. specialize remainder_decomposition_to_mod_eq x
  51. specialize remainder_decomposition_to_mod_eq x3
  52. specialize remainder_decomposition_to_mod_eq x4
  53. apply remainder_decomposition_to_mod_eq
  54. exact hzdecomp
  55. have hscaled : exists u v. (a * x) + p * u = (a * x4) + p * v
  56. specialize mod_eq_mul_left p
  57. specialize mod_eq_mul_left x
  58. specialize mod_eq_mul_left x4
  59. specialize mod_eq_mul_left a
  60. apply mod_eq_mul_left
  61. exact hzr
  62. have hrz : exists u v. (a * x4) + p * u = (a * x) + p * v
  63. specialize mod_eq_symm p
  64. specialize mod_eq_symm (a * x)
  65. specialize mod_eq_symm (a * x4)
  66. apply mod_eq_symm
  67. exact hscaled
  68. have hfinal : exists u v. (a * x4) + p * u = 1 + p * v
  69. specialize mod_eq_trans p
  70. specialize mod_eq_trans (a * x4)
  71. specialize mod_eq_trans (a * x)
  72. specialize mod_eq_trans 1
  73. apply mod_eq_trans
  74. exact hrz
  75. exists x1
  76. exists x2
  77. exact hinv_witness_witness_witness
  78. have hp2 : exists k. p = S (S k)
  79. specialize prime_is_succ_succ p
  80. apply prime_is_succ_succ
  81. exact hp
  82. cases hp2
  83. have h0bound : exists h. h + S 0 = p
  84. exists S x5
  85. rewrite hp2_witness
  86. simp
  87. have h1bound : exists h. h + S 1 = p
  88. exists x5
  89. rewrite hp2_witness
  90. simp
  91. have hr0 : ~(x4 = 0)
  92. intro hrzero
  93. have hzeroone : exists u v. 0 + p * u = 1 + p * v
  94. cases hfinal
  95. cases hfinal_witness
  96. exists x6
  97. exists x7
  98. trans (a * x4) + p * x6
  99. congr
  100. symm
  101. trans a * 0
  102. congr
  103. refl
  104. exact hrzero
  105. apply PA5
  106. refl
  107. exact hfinal_witness_witness
  108. have hzeroeqone : 0 = 1
  109. specialize mod_eq_bounded_unique p
  110. specialize mod_eq_bounded_unique 0
  111. specialize mod_eq_bounded_unique 1
  112. apply mod_eq_bounded_unique
  113. exact h0bound
  114. exact h1bound
  115. exact hzeroone
  116. specialize succ_ne_zero 0
  117. apply succ_ne_zero
  118. symm
  119. exact hzeroeqone
  120. exists x4
  121. split
  122. exact hr0
  123. split
  124. exact hdivz_witness_witness_right
  125. exact hfinal
mod_inverse_implies_coprime · unchanged support, not a new admission
forall a m z. (exists hmi_left_offset_converse_assumption hmi_right_offset_converse_assumption. a * z + m * hmi_left_offset_converse_assumption = 1 + m * hmi_right_offset_converse_assumption) -> (forall hmi_divisor_converse_result. (exists hmi_left_factor_converse_result. a = hmi_divisor_converse_result * hmi_left_factor_converse_result) -> (exists hmi_right_factor_converse_result. m = hmi_divisor_converse_result * hmi_right_factor_converse_result) -> hmi_divisor_converse_result = 1)
  1. intro a
  2. intro m
  3. intro z
  4. intro hinv
  5. intro d
  6. intro hda
  7. intro hdm
  8. cases hinv
  9. cases hinv_witness
  10. have hbez : a * z + m * x = 1 + (a * 0 + m * x1)
  11. trans 1 + m * x1
  12. exact hinv_witness_witness
  13. congr
  14. refl
  15. symm
  16. trans 0 + m * x1
  17. congr
  18. apply PA5
  19. refl
  20. apply zero_add
  21. have hdivone : exists w. 1 = d * w
  22. specialize common_divisor_divides_balanced_result d
  23. specialize common_divisor_divides_balanced_result a
  24. specialize common_divisor_divides_balanced_result m
  25. specialize common_divisor_divides_balanced_result 1
  26. specialize common_divisor_divides_balanced_result z
  27. specialize common_divisor_divides_balanced_result x
  28. specialize common_divisor_divides_balanced_result 0
  29. specialize common_divisor_divides_balanced_result x1
  30. apply common_divisor_divides_balanced_result
  31. exact hda
  32. exact hdm
  33. exact hbez
  34. specialize divisor_one d
  35. apply divisor_one
  36. exact hdivone
beta_pointwise_mul_prefix_extend · unchanged support, not a new admission
forall mb mc sb sc tb tc l m s. (forall fpmp_index_recode_before fpmp_left_recode_before fpmp_right_recode_before fpmp_target_recode_before. (exists fpmp_gap_recode_before. fpmp_gap_recode_before + S fpmp_index_recode_before = l) -> (((exists ff_h_fpmp_recode_before_left. ff_h_fpmp_recode_before_left + S (fpmp_left_recode_before) = S ((S (fpmp_index_recode_before)) * mc)) /\ exists ff_q_fpmp_recode_before_left. mb = ff_q_fpmp_recode_before_left * S ((S (fpmp_index_recode_before)) * mc) + (fpmp_left_recode_before))) -> (((exists ff_h_fpmp_recode_before_right. ff_h_fpmp_recode_before_right + S (fpmp_right_recode_before) = S ((S (fpmp_index_recode_before)) * sc)) /\ exists ff_q_fpmp_recode_before_right. sb = ff_q_fpmp_recode_before_right * S ((S (fpmp_index_recode_before)) * sc) + (fpmp_right_recode_before))) -> (((exists ff_h_fpmp_recode_before_target. ff_h_fpmp_recode_before_target + S (fpmp_target_recode_before) = S ((S (fpmp_index_recode_before)) * tc)) /\ exists ff_q_fpmp_recode_before_target. tb = ff_q_fpmp_recode_before_target * S ((S (fpmp_index_recode_before)) * tc) + (fpmp_target_recode_before))) -> fpmp_target_recode_before = fpmp_left_recode_before * fpmp_right_recode_before) -> (((exists ff_h_recode_left_last. ff_h_recode_left_last + S (m) = S ((S (l)) * mc)) /\ exists ff_q_recode_left_last. mb = ff_q_recode_left_last * S ((S (l)) * mc) + (m))) -> (((exists ff_h_recode_right_last. ff_h_recode_right_last + S (s) = S ((S (l)) * sc)) /\ exists ff_q_recode_right_last. sb = ff_q_recode_right_last * S ((S (l)) * sc) + (s))) -> exists z d. (forall fpmp_index_recode_after fpmp_left_recode_after fpmp_right_recode_after fpmp_target_recode_after. (exists fpmp_gap_recode_after. fpmp_gap_recode_after + S fpmp_index_recode_after = S l) -> (((exists ff_h_fpmp_recode_after_left. ff_h_fpmp_recode_after_left + S (fpmp_left_recode_after) = S ((S (fpmp_index_recode_after)) * mc)) /\ exists ff_q_fpmp_recode_after_left. mb = ff_q_fpmp_recode_after_left * S ((S (fpmp_index_recode_after)) * mc) + (fpmp_left_recode_after))) -> (((exists ff_h_fpmp_recode_after_right. ff_h_fpmp_recode_after_right + S (fpmp_right_recode_after) = S ((S (fpmp_index_recode_after)) * sc)) /\ exists ff_q_fpmp_recode_after_right. sb = ff_q_fpmp_recode_after_right * S ((S (fpmp_index_recode_after)) * sc) + (fpmp_right_recode_after))) -> (((exists ff_h_fpmp_recode_after_target. ff_h_fpmp_recode_after_target + S (fpmp_target_recode_after) = S ((S (fpmp_index_recode_after)) * d)) /\ exists ff_q_fpmp_recode_after_target. z = ff_q_fpmp_recode_after_target * S ((S (fpmp_index_recode_after)) * d) + (fpmp_target_recode_after))) -> fpmp_target_recode_after = fpmp_left_recode_after * fpmp_right_recode_after)
  1. intro mb
  2. intro mc
  3. intro sb
  4. intro sc
  5. intro tb
  6. intro tc
  7. intro l
  8. intro m
  9. intro s
  10. intro haligned
  11. intro hm_last
  12. intro hs_last
  13. specialize beta_prefix_extend l
  14. specialize beta_prefix_extend tb
  15. specialize beta_prefix_extend tc
  16. specialize beta_prefix_extend (m * s)
  17. cases beta_prefix_extend
  18. cases beta_prefix_extend_witness
  19. cases beta_prefix_extend_witness_witness
  20. exists x
  21. exists x1
  22. intro i
  23. intro a
  24. intro b
  25. intro t
  26. intro hi
  27. intro ha
  28. intro hb
  29. intro ht
  30. have hsplit : i = l \/ exists gap. gap + S i = l
  31. specialize finite_lt_succ_eq_or_lt l
  32. specialize finite_lt_succ_eq_or_lt i
  33. apply finite_lt_succ_eq_or_lt
  34. exact hi
  35. cases hsplit
  36. rewrite hsplit_left at ha
  37. rewrite hsplit_left at ha
  38. rewrite hsplit_left at hb
  39. rewrite hsplit_left at hb
  40. rewrite hsplit_left at ht
  41. rewrite hsplit_left at ht
  42. have hma : m = a
  43. specialize beta_at_unique mb
  44. specialize beta_at_unique mc
  45. specialize beta_at_unique l
  46. specialize beta_at_unique m
  47. specialize beta_at_unique a
  48. apply beta_at_unique
  49. exact hm_last
  50. exact ha
  51. have hsb : s = b
  52. specialize beta_at_unique sb
  53. specialize beta_at_unique sc
  54. specialize beta_at_unique l
  55. specialize beta_at_unique s
  56. specialize beta_at_unique b
  57. apply beta_at_unique
  58. exact hs_last
  59. exact hb
  60. have happended : ((exists fpmr_height_recode_appended_product. fpmr_height_recode_appended_product + S (m * s) = S ((S (l)) * x1)) /\ exists fpmr_quotient_recode_appended_product. x = fpmr_quotient_recode_appended_product * S ((S (l)) * x1) + (m * s))
  61. exact beta_prefix_extend_witness_witness_left
  62. have ht_product : t = m * s
  63. specialize beta_at_unique x
  64. specialize beta_at_unique x1
  65. specialize beta_at_unique l
  66. specialize beta_at_unique t
  67. specialize beta_at_unique (m * s)
  68. apply beta_at_unique
  69. exact ht
  70. exact happended
  71. trans m * s
  72. exact ht_product
  73. congr
  74. exact hma
  75. exact hsb
  76. have hold_exists : exists u. (((exists ff_h_recode_old_target_exists. ff_h_recode_old_target_exists + S (u) = S ((S (i)) * tc)) /\ exists ff_q_recode_old_target_exists. tb = ff_q_recode_old_target_exists * S ((S (i)) * tc) + (u)))
  77. specialize beta_at_exists tb
  78. specialize beta_at_exists tc
  79. specialize beta_at_exists i
  80. exact beta_at_exists
  81. cases hold_exists
  82. have hnew_old : ((exists ff_h_recode_new_old_target_entry. ff_h_recode_new_old_target_entry + S (x2) = S ((S (i)) * x1)) /\ exists ff_q_recode_new_old_target_entry. x = ff_q_recode_new_old_target_entry * S ((S (i)) * x1) + (x2))
  83. specialize beta_prefix_extend_witness_witness_right i
  84. specialize beta_prefix_extend_witness_witness_right x2
  85. apply beta_prefix_extend_witness_witness_right
  86. exact hsplit_right
  87. exact hold_exists_witness
  88. have htx : t = x2
  89. specialize beta_at_unique x
  90. specialize beta_at_unique x1
  91. specialize beta_at_unique i
  92. specialize beta_at_unique t
  93. specialize beta_at_unique x2
  94. apply beta_at_unique
  95. exact ht
  96. exact hnew_old
  97. have hold_product : x2 = a * b
  98. specialize haligned i
  99. specialize haligned a
  100. specialize haligned b
  101. specialize haligned x2
  102. apply haligned
  103. exact hsplit_right
  104. exact ha
  105. exact hb
  106. exact hold_exists_witness
  107. trans x2
  108. exact htx
  109. exact hold_product
beta_pointwise_mul_prefix_exists · unchanged support, not a new admission
forall mb mc sb sc l. exists tb tc. (forall fpmp_index_recode_exists_result fpmp_left_recode_exists_result fpmp_right_recode_exists_result fpmp_target_recode_exists_result. (exists fpmp_gap_recode_exists_result. fpmp_gap_recode_exists_result + S fpmp_index_recode_exists_result = l) -> (((exists ff_h_fpmp_recode_exists_result_left. ff_h_fpmp_recode_exists_result_left + S (fpmp_left_recode_exists_result) = S ((S (fpmp_index_recode_exists_result)) * mc)) /\ exists ff_q_fpmp_recode_exists_result_left. mb = ff_q_fpmp_recode_exists_result_left * S ((S (fpmp_index_recode_exists_result)) * mc) + (fpmp_left_recode_exists_result))) -> (((exists ff_h_fpmp_recode_exists_result_right. ff_h_fpmp_recode_exists_result_right + S (fpmp_right_recode_exists_result) = S ((S (fpmp_index_recode_exists_result)) * sc)) /\ exists ff_q_fpmp_recode_exists_result_right. sb = ff_q_fpmp_recode_exists_result_right * S ((S (fpmp_index_recode_exists_result)) * sc) + (fpmp_right_recode_exists_result))) -> (((exists ff_h_fpmp_recode_exists_result_target. ff_h_fpmp_recode_exists_result_target + S (fpmp_target_recode_exists_result) = S ((S (fpmp_index_recode_exists_result)) * tc)) /\ exists ff_q_fpmp_recode_exists_result_target. tb = ff_q_fpmp_recode_exists_result_target * S ((S (fpmp_index_recode_exists_result)) * tc) + (fpmp_target_recode_exists_result))) -> fpmp_target_recode_exists_result = fpmp_left_recode_exists_result * fpmp_right_recode_exists_result)
  1. intro mb
  2. intro mc
  3. intro sb
  4. intro sc
  5. induction l
  6. exists 0
  7. exists 0
  8. intro i
  9. intro a
  10. intro b
  11. intro t
  12. intro hi
  13. intro ha
  14. intro hb
  15. intro ht
  16. exfalso
  17. cases hi
  18. have hsi : S i = 0
  19. specialize add_eq_zero_right x
  20. specialize add_eq_zero_right (S i)
  21. apply add_eq_zero_right
  22. exact hi_witness
  23. specialize succ_ne_zero i
  24. apply succ_ne_zero
  25. exact hsi
  26. have hprevious : exists tb tc. (forall fpmp_index_recode_exists_previous fpmp_left_recode_exists_previous fpmp_right_recode_exists_previous fpmp_target_recode_exists_previous. (exists fpmp_gap_recode_exists_previous. fpmp_gap_recode_exists_previous + S fpmp_index_recode_exists_previous = l) -> (((exists ff_h_fpmp_recode_exists_previous_left. ff_h_fpmp_recode_exists_previous_left + S (fpmp_left_recode_exists_previous) = S ((S (fpmp_index_recode_exists_previous)) * mc)) /\ exists ff_q_fpmp_recode_exists_previous_left. mb = ff_q_fpmp_recode_exists_previous_left * S ((S (fpmp_index_recode_exists_previous)) * mc) + (fpmp_left_recode_exists_previous))) -> (((exists ff_h_fpmp_recode_exists_previous_right. ff_h_fpmp_recode_exists_previous_right + S (fpmp_right_recode_exists_previous) = S ((S (fpmp_index_recode_exists_previous)) * sc)) /\ exists ff_q_fpmp_recode_exists_previous_right. sb = ff_q_fpmp_recode_exists_previous_right * S ((S (fpmp_index_recode_exists_previous)) * sc) + (fpmp_right_recode_exists_previous))) -> (((exists ff_h_fpmp_recode_exists_previous_target. ff_h_fpmp_recode_exists_previous_target + S (fpmp_target_recode_exists_previous) = S ((S (fpmp_index_recode_exists_previous)) * tc)) /\ exists ff_q_fpmp_recode_exists_previous_target. tb = ff_q_fpmp_recode_exists_previous_target * S ((S (fpmp_index_recode_exists_previous)) * tc) + (fpmp_target_recode_exists_previous))) -> fpmp_target_recode_exists_previous = fpmp_left_recode_exists_previous * fpmp_right_recode_exists_previous)
  27. exact IH
  28. cases hprevious
  29. cases hprevious_witness
  30. have hleft : exists m. (((exists ff_h_recode_exists_left_last. ff_h_recode_exists_left_last + S (m) = S ((S (l)) * mc)) /\ exists ff_q_recode_exists_left_last. mb = ff_q_recode_exists_left_last * S ((S (l)) * mc) + (m)))
  31. specialize beta_at_exists mb
  32. specialize beta_at_exists mc
  33. specialize beta_at_exists l
  34. exact beta_at_exists
  35. cases hleft
  36. have hright : exists s. (((exists ff_h_recode_exists_right_last. ff_h_recode_exists_right_last + S (s) = S ((S (l)) * sc)) /\ exists ff_q_recode_exists_right_last. sb = ff_q_recode_exists_right_last * S ((S (l)) * sc) + (s)))
  37. specialize beta_at_exists sb
  38. specialize beta_at_exists sc
  39. specialize beta_at_exists l
  40. exact beta_at_exists
  41. cases hright
  42. specialize beta_pointwise_mul_prefix_extend mb
  43. specialize beta_pointwise_mul_prefix_extend mc
  44. specialize beta_pointwise_mul_prefix_extend sb
  45. specialize beta_pointwise_mul_prefix_extend sc
  46. specialize beta_pointwise_mul_prefix_extend x
  47. specialize beta_pointwise_mul_prefix_extend x1
  48. specialize beta_pointwise_mul_prefix_extend l
  49. specialize beta_pointwise_mul_prefix_extend x2
  50. specialize beta_pointwise_mul_prefix_extend x3
  51. apply beta_pointwise_mul_prefix_extend
  52. exact hprevious_witness_witness
  53. exact hleft_witness
  54. exact hright_witness
beta_division_prefix_extend · unchanged support, not a new admission
forall p b c qb qc rb rc l. (forall fdp_index_before. (exists gsp_lt_gap_before_index_bound. gsp_lt_gap_before_index_bound + S fdp_index_before = l) -> exists fdp_value_before fdp_quotient_before fdp_remainder_before. (((exists ff_h_fdp_before_source. ff_h_fdp_before_source + S (fdp_value_before) = S ((S (fdp_index_before)) * c)) /\ exists ff_q_fdp_before_source. b = ff_q_fdp_before_source * S ((S (fdp_index_before)) * c) + (fdp_value_before))) /\ ((((exists ff_h_fdp_before_quotient_entry. ff_h_fdp_before_quotient_entry + S (fdp_quotient_before) = S ((S (fdp_index_before)) * qc)) /\ exists ff_q_fdp_before_quotient_entry. qb = ff_q_fdp_before_quotient_entry * S ((S (fdp_index_before)) * qc) + (fdp_quotient_before))) /\ ((((exists ff_h_fdp_before_remainder_entry. ff_h_fdp_before_remainder_entry + S (fdp_remainder_before) = S ((S (fdp_index_before)) * rc)) /\ exists ff_q_fdp_before_remainder_entry. rb = ff_q_fdp_before_remainder_entry * S ((S (fdp_index_before)) * rc) + (fdp_remainder_before))) /\ (fdp_value_before = p * fdp_quotient_before + fdp_remainder_before /\ (exists gsp_lt_gap_before_remainder_bound. gsp_lt_gap_before_remainder_bound + S fdp_remainder_before = p))))) -> (exists x q r. (((exists ff_h_fdp_choice_source. ff_h_fdp_choice_source + S (x) = S ((S (l)) * c)) /\ exists ff_q_fdp_choice_source. b = ff_q_fdp_choice_source * S ((S (l)) * c) + (x))) /\ (x = p * q + r /\ (exists gsp_lt_gap_fdp_choice_remainder_bound. gsp_lt_gap_fdp_choice_remainder_bound + S r = p))) -> exists z d u v. (forall fdp_index_after. (exists gsp_lt_gap_after_index_bound. gsp_lt_gap_after_index_bound + S fdp_index_after = S l) -> exists fdp_value_after fdp_quotient_after fdp_remainder_after. (((exists ff_h_fdp_after_source. ff_h_fdp_after_source + S (fdp_value_after) = S ((S (fdp_index_after)) * c)) /\ exists ff_q_fdp_after_source. b = ff_q_fdp_after_source * S ((S (fdp_index_after)) * c) + (fdp_value_after))) /\ ((((exists ff_h_fdp_after_quotient_entry. ff_h_fdp_after_quotient_entry + S (fdp_quotient_after) = S ((S (fdp_index_after)) * d)) /\ exists ff_q_fdp_after_quotient_entry. z = ff_q_fdp_after_quotient_entry * S ((S (fdp_index_after)) * d) + (fdp_quotient_after))) /\ ((((exists ff_h_fdp_after_remainder_entry. ff_h_fdp_after_remainder_entry + S (fdp_remainder_after) = S ((S (fdp_index_after)) * v)) /\ exists ff_q_fdp_after_remainder_entry. u = ff_q_fdp_after_remainder_entry * S ((S (fdp_index_after)) * v) + (fdp_remainder_after))) /\ (fdp_value_after = p * fdp_quotient_after + fdp_remainder_after /\ (exists gsp_lt_gap_after_remainder_bound. gsp_lt_gap_after_remainder_bound + S fdp_remainder_after = p)))))
  1. intro p
  2. intro b
  3. intro c
  4. intro qb
  5. intro qc
  6. intro rb
  7. intro rc
  8. intro l
  9. intro hprefix
  10. intro hchoice
  11. cases hchoice
  12. cases hchoice_witness
  13. cases hchoice_witness_witness
  14. cases hchoice_witness_witness_witness
  15. cases hchoice_witness_witness_witness_right
  16. have hqextend : exists z d. (((exists ff_h_fdp_quotient_extension_last. ff_h_fdp_quotient_extension_last + S (x1) = S ((S (l)) * d)) /\ exists ff_q_fdp_quotient_extension_last. z = ff_q_fdp_quotient_extension_last * S ((S (l)) * d) + (x1))) /\ forall i q0. (exists gsp_lt_gap_fdp_quotient_extension_old_bound. gsp_lt_gap_fdp_quotient_extension_old_bound + S i = l) -> (((exists ff_h_fdp_quotient_extension_old_source. ff_h_fdp_quotient_extension_old_source + S (q0) = S ((S (i)) * qc)) /\ exists ff_q_fdp_quotient_extension_old_source. qb = ff_q_fdp_quotient_extension_old_source * S ((S (i)) * qc) + (q0))) -> (((exists ff_h_fdp_quotient_extension_old_target_symbolic. ff_h_fdp_quotient_extension_old_target_symbolic + S (q0) = S ((S (i)) * d)) /\ exists ff_q_fdp_quotient_extension_old_target_symbolic. z = ff_q_fdp_quotient_extension_old_target_symbolic * S ((S (i)) * d) + (q0)))
  17. specialize beta_prefix_extend l
  18. specialize beta_prefix_extend qb
  19. specialize beta_prefix_extend qc
  20. specialize beta_prefix_extend x1
  21. exact beta_prefix_extend
  22. cases hqextend
  23. cases hqextend_witness
  24. cases hqextend_witness_witness
  25. have hrextend : exists u v. (((exists ff_h_fdp_remainder_extension_last. ff_h_fdp_remainder_extension_last + S (x2) = S ((S (l)) * v)) /\ exists ff_q_fdp_remainder_extension_last. u = ff_q_fdp_remainder_extension_last * S ((S (l)) * v) + (x2))) /\ forall i r0. (exists gsp_lt_gap_fdp_remainder_extension_old_bound. gsp_lt_gap_fdp_remainder_extension_old_bound + S i = l) -> (((exists ff_h_fdp_remainder_extension_old_source. ff_h_fdp_remainder_extension_old_source + S (r0) = S ((S (i)) * rc)) /\ exists ff_q_fdp_remainder_extension_old_source. rb = ff_q_fdp_remainder_extension_old_source * S ((S (i)) * rc) + (r0))) -> (((exists ff_h_fdp_remainder_extension_old_target. ff_h_fdp_remainder_extension_old_target + S (r0) = S ((S (i)) * v)) /\ exists ff_q_fdp_remainder_extension_old_target. u = ff_q_fdp_remainder_extension_old_target * S ((S (i)) * v) + (r0)))
  26. specialize beta_prefix_extend l
  27. specialize beta_prefix_extend rb
  28. specialize beta_prefix_extend rc
  29. specialize beta_prefix_extend x2
  30. exact beta_prefix_extend
  31. cases hrextend
  32. cases hrextend_witness
  33. cases hrextend_witness_witness
  34. exists x3
  35. exists x4
  36. exists x5
  37. exists x6
  38. intro i
  39. intro hi
  40. have hsplit : i = l \/ exists gap. gap + S i = l
  41. specialize finite_lt_succ_eq_or_lt l
  42. specialize finite_lt_succ_eq_or_lt i
  43. apply finite_lt_succ_eq_or_lt
  44. exact hi
  45. cases hsplit
  46. exists x
  47. exists x1
  48. exists x2
  49. split
  50. rewrite hsplit_left
  51. rewrite hsplit_left
  52. exact hchoice_witness_witness_witness_left
  53. split
  54. rewrite hsplit_left
  55. rewrite hsplit_left
  56. exact hqextend_witness_witness_left
  57. split
  58. rewrite hsplit_left
  59. rewrite hsplit_left
  60. exact hrextend_witness_witness_left
  61. split
  62. exact hchoice_witness_witness_witness_right_left
  63. exact hchoice_witness_witness_witness_right_right
  64. have hold : exists x q r. (((exists ff_h_fdp_previous_source. ff_h_fdp_previous_source + S (x) = S ((S (i)) * c)) /\ exists ff_q_fdp_previous_source. b = ff_q_fdp_previous_source * S ((S (i)) * c) + (x))) /\ ((((exists ff_h_fdp_previous_quotient. ff_h_fdp_previous_quotient + S (q) = S ((S (i)) * qc)) /\ exists ff_q_fdp_previous_quotient. qb = ff_q_fdp_previous_quotient * S ((S (i)) * qc) + (q))) /\ ((((exists ff_h_fdp_previous_remainder. ff_h_fdp_previous_remainder + S (r) = S ((S (i)) * rc)) /\ exists ff_q_fdp_previous_remainder. rb = ff_q_fdp_previous_remainder * S ((S (i)) * rc) + (r))) /\ (x = p * q + r /\ (exists gsp_lt_gap_fdp_previous_remainder_bound. gsp_lt_gap_fdp_previous_remainder_bound + S r = p))))
  65. specialize hprefix i
  66. apply hprefix
  67. exact hsplit_right
  68. cases hold
  69. cases hold_witness
  70. cases hold_witness_witness
  71. cases hold_witness_witness_witness
  72. cases hold_witness_witness_witness_right
  73. cases hold_witness_witness_witness_right_right
  74. cases hold_witness_witness_witness_right_right_right
  75. exists x7
  76. exists x8
  77. exists x9
  78. split
  79. exact hold_witness_witness_witness_left
  80. split
  81. specialize hqextend_witness_witness_right i
  82. specialize hqextend_witness_witness_right x8
  83. apply hqextend_witness_witness_right
  84. exact hsplit_right
  85. exact hold_witness_witness_witness_right_left
  86. split
  87. specialize hrextend_witness_witness_right i
  88. specialize hrextend_witness_witness_right x9
  89. apply hrextend_witness_witness_right
  90. exact hsplit_right
  91. exact hold_witness_witness_witness_right_right_left
  92. split
  93. exact hold_witness_witness_witness_right_right_right_left
  94. exact hold_witness_witness_witness_right_right_right_right
beta_division_prefix_exists · unchanged support, not a new admission
forall p b c l. ~(p = 0) -> exists qb qc rb rc. (forall fdp_index_exists_result. (exists gsp_lt_gap_exists_result_index_bound. gsp_lt_gap_exists_result_index_bound + S fdp_index_exists_result = l) -> exists fdp_value_exists_result fdp_quotient_exists_result fdp_remainder_exists_result. (((exists ff_h_fdp_exists_result_source. ff_h_fdp_exists_result_source + S (fdp_value_exists_result) = S ((S (fdp_index_exists_result)) * c)) /\ exists ff_q_fdp_exists_result_source. b = ff_q_fdp_exists_result_source * S ((S (fdp_index_exists_result)) * c) + (fdp_value_exists_result))) /\ ((((exists ff_h_fdp_exists_result_quotient_entry. ff_h_fdp_exists_result_quotient_entry + S (fdp_quotient_exists_result) = S ((S (fdp_index_exists_result)) * qc)) /\ exists ff_q_fdp_exists_result_quotient_entry. qb = ff_q_fdp_exists_result_quotient_entry * S ((S (fdp_index_exists_result)) * qc) + (fdp_quotient_exists_result))) /\ ((((exists ff_h_fdp_exists_result_remainder_entry. ff_h_fdp_exists_result_remainder_entry + S (fdp_remainder_exists_result) = S ((S (fdp_index_exists_result)) * rc)) /\ exists ff_q_fdp_exists_result_remainder_entry. rb = ff_q_fdp_exists_result_remainder_entry * S ((S (fdp_index_exists_result)) * rc) + (fdp_remainder_exists_result))) /\ (fdp_value_exists_result = p * fdp_quotient_exists_result + fdp_remainder_exists_result /\ (exists gsp_lt_gap_exists_result_remainder_bound. gsp_lt_gap_exists_result_remainder_bound + S fdp_remainder_exists_result = p)))))
  1. intro p
  2. intro b
  3. intro c
  4. induction l
  5. intro hp0
  6. exists 0
  7. exists 0
  8. exists 0
  9. exists 0
  10. intro i
  11. intro hi
  12. exfalso
  13. cases hi
  14. have hsi : S i = 0
  15. specialize add_eq_zero_right x
  16. specialize add_eq_zero_right (S i)
  17. apply add_eq_zero_right
  18. exact hi_witness
  19. specialize succ_ne_zero i
  20. apply succ_ne_zero
  21. exact hsi
  22. intro hp0
  23. have hprevious : exists qb qc rb rc. (forall fdp_index_exists_previous. (exists gsp_lt_gap_exists_previous_index_bound. gsp_lt_gap_exists_previous_index_bound + S fdp_index_exists_previous = l) -> exists fdp_value_exists_previous fdp_quotient_exists_previous fdp_remainder_exists_previous. (((exists ff_h_fdp_exists_previous_source. ff_h_fdp_exists_previous_source + S (fdp_value_exists_previous) = S ((S (fdp_index_exists_previous)) * c)) /\ exists ff_q_fdp_exists_previous_source. b = ff_q_fdp_exists_previous_source * S ((S (fdp_index_exists_previous)) * c) + (fdp_value_exists_previous))) /\ ((((exists ff_h_fdp_exists_previous_quotient_entry. ff_h_fdp_exists_previous_quotient_entry + S (fdp_quotient_exists_previous) = S ((S (fdp_index_exists_previous)) * qc)) /\ exists ff_q_fdp_exists_previous_quotient_entry. qb = ff_q_fdp_exists_previous_quotient_entry * S ((S (fdp_index_exists_previous)) * qc) + (fdp_quotient_exists_previous))) /\ ((((exists ff_h_fdp_exists_previous_remainder_entry. ff_h_fdp_exists_previous_remainder_entry + S (fdp_remainder_exists_previous) = S ((S (fdp_index_exists_previous)) * rc)) /\ exists ff_q_fdp_exists_previous_remainder_entry. rb = ff_q_fdp_exists_previous_remainder_entry * S ((S (fdp_index_exists_previous)) * rc) + (fdp_remainder_exists_previous))) /\ (fdp_value_exists_previous = p * fdp_quotient_exists_previous + fdp_remainder_exists_previous /\ (exists gsp_lt_gap_exists_previous_remainder_bound. gsp_lt_gap_exists_previous_remainder_bound + S fdp_remainder_exists_previous = p)))))
  24. apply IH
  25. exact hp0
  26. cases hprevious
  27. cases hprevious_witness
  28. cases hprevious_witness_witness
  29. cases hprevious_witness_witness_witness
  30. have hdecoded : exists x. (((exists ff_h_fdp_exists_last_source. ff_h_fdp_exists_last_source + S (x) = S ((S (l)) * c)) /\ exists ff_q_fdp_exists_last_source. b = ff_q_fdp_exists_last_source * S ((S (l)) * c) + (x)))
  31. specialize beta_at_exists b
  32. specialize beta_at_exists c
  33. specialize beta_at_exists l
  34. exact beta_at_exists
  35. cases hdecoded
  36. have hdivision : exists q r. x4 = p * q + r /\ (exists gsp_lt_gap_fdp_exists_last_remainder_bound. gsp_lt_gap_fdp_exists_last_remainder_bound + S r = p)
  37. specialize division_remainder_exists p
  38. specialize division_remainder_exists x4
  39. apply division_remainder_exists
  40. exact hp0
  41. cases hdivision
  42. cases hdivision_witness
  43. have hchoice : exists x q r. (((exists ff_h_fdp_choice_source. ff_h_fdp_choice_source + S (x) = S ((S (l)) * c)) /\ exists ff_q_fdp_choice_source. b = ff_q_fdp_choice_source * S ((S (l)) * c) + (x))) /\ (x = p * q + r /\ (exists gsp_lt_gap_fdp_choice_remainder_bound. gsp_lt_gap_fdp_choice_remainder_bound + S r = p))
  44. exists x4
  45. exists x5
  46. exists x6
  47. split
  48. exact hdecoded_witness
  49. exact hdivision_witness_witness
  50. have hnext : exists qb qc rb rc. (forall fdp_index_exists_next. (exists gsp_lt_gap_exists_next_index_bound. gsp_lt_gap_exists_next_index_bound + S fdp_index_exists_next = S l) -> exists fdp_value_exists_next fdp_quotient_exists_next fdp_remainder_exists_next. (((exists ff_h_fdp_exists_next_source. ff_h_fdp_exists_next_source + S (fdp_value_exists_next) = S ((S (fdp_index_exists_next)) * c)) /\ exists ff_q_fdp_exists_next_source. b = ff_q_fdp_exists_next_source * S ((S (fdp_index_exists_next)) * c) + (fdp_value_exists_next))) /\ ((((exists ff_h_fdp_exists_next_quotient_entry. ff_h_fdp_exists_next_quotient_entry + S (fdp_quotient_exists_next) = S ((S (fdp_index_exists_next)) * qc)) /\ exists ff_q_fdp_exists_next_quotient_entry. qb = ff_q_fdp_exists_next_quotient_entry * S ((S (fdp_index_exists_next)) * qc) + (fdp_quotient_exists_next))) /\ ((((exists ff_h_fdp_exists_next_remainder_entry. ff_h_fdp_exists_next_remainder_entry + S (fdp_remainder_exists_next) = S ((S (fdp_index_exists_next)) * rc)) /\ exists ff_q_fdp_exists_next_remainder_entry. rb = ff_q_fdp_exists_next_remainder_entry * S ((S (fdp_index_exists_next)) * rc) + (fdp_remainder_exists_next))) /\ (fdp_value_exists_next = p * fdp_quotient_exists_next + fdp_remainder_exists_next /\ (exists gsp_lt_gap_exists_next_remainder_bound. gsp_lt_gap_exists_next_remainder_bound + S fdp_remainder_exists_next = p)))))
  51. specialize beta_division_prefix_extend p
  52. specialize beta_division_prefix_extend b
  53. specialize beta_division_prefix_extend c
  54. specialize beta_division_prefix_extend x
  55. specialize beta_division_prefix_extend x1
  56. specialize beta_division_prefix_extend x2
  57. specialize beta_division_prefix_extend x3
  58. specialize beta_division_prefix_extend l
  59. apply beta_division_prefix_extend
  60. exact hprevious_witness_witness_witness_witness
  61. exact hchoice
  62. exact hnext
beta_sum_transport_prefix · unchanged support, not a new admission
forall b c z e l n. (exists ff_u_transport_source ff_v_transport_source. ((((exists ff_h_transport_source_start. ff_h_transport_source_start + S (0) = S ((S (0)) * ff_v_transport_source)) /\ exists ff_q_transport_source_start. ff_u_transport_source = ff_q_transport_source_start * S ((S (0)) * ff_v_transport_source) + (0))) /\ ((((exists ff_h_transport_source_terminal. ff_h_transport_source_terminal + S (n) = S ((S (l)) * ff_v_transport_source)) /\ exists ff_q_transport_source_terminal. ff_u_transport_source = ff_q_transport_source_terminal * S ((S (l)) * ff_v_transport_source) + (n))) /\ forall ff_i_transport_source. (exists ff_lt_transport_source_bound. ff_lt_transport_source_bound + S ff_i_transport_source = l) -> exists ff_a_transport_source ff_r_transport_source ff_s_transport_source. ((((exists ff_h_transport_source_summand. ff_h_transport_source_summand + S (ff_a_transport_source) = S ((S (ff_i_transport_source)) * c)) /\ exists ff_q_transport_source_summand. b = ff_q_transport_source_summand * S ((S (ff_i_transport_source)) * c) + (ff_a_transport_source))) /\ ((((exists ff_h_transport_source_partial. ff_h_transport_source_partial + S (ff_r_transport_source) = S ((S (ff_i_transport_source)) * ff_v_transport_source)) /\ exists ff_q_transport_source_partial. ff_u_transport_source = ff_q_transport_source_partial * S ((S (ff_i_transport_source)) * ff_v_transport_source) + (ff_r_transport_source))) /\ ((((exists ff_h_transport_source_successor. ff_h_transport_source_successor + S (ff_s_transport_source) = S ((S (S ff_i_transport_source)) * ff_v_transport_source)) /\ exists ff_q_transport_source_successor. ff_u_transport_source = ff_q_transport_source_successor * S ((S (S ff_i_transport_source)) * ff_v_transport_source) + (ff_s_transport_source))) /\ ff_s_transport_source = ff_r_transport_source + ff_a_transport_source)))))) -> (forall i a. (exists h. h + S i = l) -> (((exists ff_h_transport_source_entry. ff_h_transport_source_entry + S (a) = S ((S (i)) * c)) /\ exists ff_q_transport_source_entry. b = ff_q_transport_source_entry * S ((S (i)) * c) + (a))) -> (((exists ff_h_transport_target_entry. ff_h_transport_target_entry + S (a) = S ((S (i)) * e)) /\ exists ff_q_transport_target_entry. z = ff_q_transport_target_entry * S ((S (i)) * e) + (a)))) -> (exists ff_u_transport_target ff_v_transport_target. ((((exists ff_h_transport_target_start. ff_h_transport_target_start + S (0) = S ((S (0)) * ff_v_transport_target)) /\ exists ff_q_transport_target_start. ff_u_transport_target = ff_q_transport_target_start * S ((S (0)) * ff_v_transport_target) + (0))) /\ ((((exists ff_h_transport_target_terminal. ff_h_transport_target_terminal + S (n) = S ((S (l)) * ff_v_transport_target)) /\ exists ff_q_transport_target_terminal. ff_u_transport_target = ff_q_transport_target_terminal * S ((S (l)) * ff_v_transport_target) + (n))) /\ forall ff_i_transport_target. (exists ff_lt_transport_target_bound. ff_lt_transport_target_bound + S ff_i_transport_target = l) -> exists ff_a_transport_target ff_r_transport_target ff_s_transport_target. ((((exists ff_h_transport_target_summand. ff_h_transport_target_summand + S (ff_a_transport_target) = S ((S (ff_i_transport_target)) * e)) /\ exists ff_q_transport_target_summand. z = ff_q_transport_target_summand * S ((S (ff_i_transport_target)) * e) + (ff_a_transport_target))) /\ ((((exists ff_h_transport_target_partial. ff_h_transport_target_partial + S (ff_r_transport_target) = S ((S (ff_i_transport_target)) * ff_v_transport_target)) /\ exists ff_q_transport_target_partial. ff_u_transport_target = ff_q_transport_target_partial * S ((S (ff_i_transport_target)) * ff_v_transport_target) + (ff_r_transport_target))) /\ ((((exists ff_h_transport_target_successor. ff_h_transport_target_successor + S (ff_s_transport_target) = S ((S (S ff_i_transport_target)) * ff_v_transport_target)) /\ exists ff_q_transport_target_successor. ff_u_transport_target = ff_q_transport_target_successor * S ((S (S ff_i_transport_target)) * ff_v_transport_target) + (ff_s_transport_target))) /\ ff_s_transport_target = ff_r_transport_target + ff_a_transport_target))))))
  1. intro b
  2. intro c
  3. intro z
  4. intro e
  5. intro l
  6. intro n
  7. intro hsum
  8. intro hpres
  9. cases hsum
  10. cases hsum_witness
  11. cases hsum_witness_witness
  12. cases hsum_witness_witness_right
  13. exists x
  14. exists x1
  15. split
  16. exact hsum_witness_witness_left
  17. split
  18. exact hsum_witness_witness_right_left
  19. intro i
  20. intro hi
  21. have hstep : exists a r s. ((((exists ff_h_transport_step_source. ff_h_transport_step_source + S (a) = S ((S (i)) * c)) /\ exists ff_q_transport_step_source. b = ff_q_transport_step_source * S ((S (i)) * c) + (a))) /\ ((((exists ff_h_transport_step_partial. ff_h_transport_step_partial + S (r) = S ((S (i)) * x1)) /\ exists ff_q_transport_step_partial. x = ff_q_transport_step_partial * S ((S (i)) * x1) + (r))) /\ ((((exists ff_h_transport_step_successor. ff_h_transport_step_successor + S (s) = S ((S (S i)) * x1)) /\ exists ff_q_transport_step_successor. x = ff_q_transport_step_successor * S ((S (S i)) * x1) + (s))) /\ s = r + a)))
  22. specialize hsum_witness_witness_right_right i
  23. apply hsum_witness_witness_right_right
  24. exact hi
  25. cases hstep
  26. cases hstep_witness
  27. cases hstep_witness_witness
  28. cases hstep_witness_witness_witness
  29. cases hstep_witness_witness_witness_right
  30. cases hstep_witness_witness_witness_right_right
  31. exists x2
  32. exists x3
  33. exists x4
  34. split
  35. specialize hpres i
  36. specialize hpres x2
  37. apply hpres
  38. exact hi
  39. exact hstep_witness_witness_witness_left
  40. split
  41. exact hstep_witness_witness_witness_right_left
  42. split
  43. exact hstep_witness_witness_witness_right_right_left
  44. exact hstep_witness_witness_witness_right_right_right
mod_eq_add_cancel_left · unchanged support, not a new admission
forall d a b c. (exists fspm_u_cancel_input fspm_v_cancel_input. (a + b) + d * fspm_u_cancel_input = (a + c) + d * fspm_v_cancel_input) -> (exists fspm_u_cancel_result fspm_v_cancel_result. (b) + d * fspm_u_cancel_result = (c) + d * fspm_v_cancel_result)
  1. intro d
  2. intro a
  3. intro b
  4. intro c
  5. intro hmod
  6. cases hmod
  7. cases hmod_witness
  8. exists x
  9. exists x1
  10. specialize add_left_cancel a
  11. specialize add_left_cancel (b + d * x)
  12. specialize add_left_cancel (c + d * x1)
  13. apply add_left_cancel
  14. trans (a + b) + d * x
  15. symm
  16. apply add_assoc
  17. trans (a + c) + d * x1
  18. exact hmod_witness_witness
  19. apply add_assoc
beta_repeat_sum_exact · unchanged support, not a new admission
forall b c a l n. (forall ff_i_repeatsum_repeat. (exists ff_lt_repeatsum_repeat_bound. ff_lt_repeatsum_repeat_bound + S ff_i_repeatsum_repeat = l) -> (((exists ff_h_repeatsum_repeat_decoded. ff_h_repeatsum_repeat_decoded + S (a) = S ((S (ff_i_repeatsum_repeat)) * c)) /\ exists ff_q_repeatsum_repeat_decoded. b = ff_q_repeatsum_repeat_decoded * S ((S (ff_i_repeatsum_repeat)) * c) + (a)))) -> (exists ff_u_repeatsum_sum ff_v_repeatsum_sum. ((((exists ff_h_repeatsum_sum_start. ff_h_repeatsum_sum_start + S (0) = S ((S (0)) * ff_v_repeatsum_sum)) /\ exists ff_q_repeatsum_sum_start. ff_u_repeatsum_sum = ff_q_repeatsum_sum_start * S ((S (0)) * ff_v_repeatsum_sum) + (0))) /\ ((((exists ff_h_repeatsum_sum_terminal. ff_h_repeatsum_sum_terminal + S (n) = S ((S (l)) * ff_v_repeatsum_sum)) /\ exists ff_q_repeatsum_sum_terminal. ff_u_repeatsum_sum = ff_q_repeatsum_sum_terminal * S ((S (l)) * ff_v_repeatsum_sum) + (n))) /\ forall ff_i_repeatsum_sum. (exists ff_lt_repeatsum_sum_bound. ff_lt_repeatsum_sum_bound + S ff_i_repeatsum_sum = l) -> exists ff_a_repeatsum_sum ff_r_repeatsum_sum ff_s_repeatsum_sum. ((((exists ff_h_repeatsum_sum_summand. ff_h_repeatsum_sum_summand + S (ff_a_repeatsum_sum) = S ((S (ff_i_repeatsum_sum)) * c)) /\ exists ff_q_repeatsum_sum_summand. b = ff_q_repeatsum_sum_summand * S ((S (ff_i_repeatsum_sum)) * c) + (ff_a_repeatsum_sum))) /\ ((((exists ff_h_repeatsum_sum_partial. ff_h_repeatsum_sum_partial + S (ff_r_repeatsum_sum) = S ((S (ff_i_repeatsum_sum)) * ff_v_repeatsum_sum)) /\ exists ff_q_repeatsum_sum_partial. ff_u_repeatsum_sum = ff_q_repeatsum_sum_partial * S ((S (ff_i_repeatsum_sum)) * ff_v_repeatsum_sum) + (ff_r_repeatsum_sum))) /\ ((((exists ff_h_repeatsum_sum_successor. ff_h_repeatsum_sum_successor + S (ff_s_repeatsum_sum) = S ((S (S ff_i_repeatsum_sum)) * ff_v_repeatsum_sum)) /\ exists ff_q_repeatsum_sum_successor. ff_u_repeatsum_sum = ff_q_repeatsum_sum_successor * S ((S (S ff_i_repeatsum_sum)) * ff_v_repeatsum_sum) + (ff_s_repeatsum_sum))) /\ ff_s_repeatsum_sum = ff_r_repeatsum_sum + ff_a_repeatsum_sum)))))) -> n = l * a
  1. intro b
  2. intro c
  3. intro a
  4. induction l
  5. intro n
  6. intro hrepeat
  7. intro hsum
  8. have hn : n = 0
  9. specialize beta_sum_zero b
  10. specialize beta_sum_zero c
  11. specialize beta_sum_zero n
  12. apply beta_sum_zero
  13. exact hsum
  14. rewrite hn
  15. symm
  16. specialize mul_zero_left a
  17. exact mul_zero_left
  18. intro n
  19. intro hrepeat
  20. intro hsum
  21. have hdecomp : exists a r. (((exists ff_h_repeatsum_decomp_entry. ff_h_repeatsum_decomp_entry + S (a) = S ((S (l)) * c)) /\ exists ff_q_repeatsum_decomp_entry. b = ff_q_repeatsum_decomp_entry * S ((S (l)) * c) + (a))) /\ ((exists ff_u_repeatsum_decomp_prefix ff_v_repeatsum_decomp_prefix. ((((exists ff_h_repeatsum_decomp_prefix_start. ff_h_repeatsum_decomp_prefix_start + S (0) = S ((S (0)) * ff_v_repeatsum_decomp_prefix)) /\ exists ff_q_repeatsum_decomp_prefix_start. ff_u_repeatsum_decomp_prefix = ff_q_repeatsum_decomp_prefix_start * S ((S (0)) * ff_v_repeatsum_decomp_prefix) + (0))) /\ ((((exists ff_h_repeatsum_decomp_prefix_terminal. ff_h_repeatsum_decomp_prefix_terminal + S (r) = S ((S (l)) * ff_v_repeatsum_decomp_prefix)) /\ exists ff_q_repeatsum_decomp_prefix_terminal. ff_u_repeatsum_decomp_prefix = ff_q_repeatsum_decomp_prefix_terminal * S ((S (l)) * ff_v_repeatsum_decomp_prefix) + (r))) /\ forall ff_i_repeatsum_decomp_prefix. (exists ff_lt_repeatsum_decomp_prefix_bound. ff_lt_repeatsum_decomp_prefix_bound + S ff_i_repeatsum_decomp_prefix = l) -> exists ff_a_repeatsum_decomp_prefix ff_r_repeatsum_decomp_prefix ff_s_repeatsum_decomp_prefix. ((((exists ff_h_repeatsum_decomp_prefix_summand. ff_h_repeatsum_decomp_prefix_summand + S (ff_a_repeatsum_decomp_prefix) = S ((S (ff_i_repeatsum_decomp_prefix)) * c)) /\ exists ff_q_repeatsum_decomp_prefix_summand. b = ff_q_repeatsum_decomp_prefix_summand * S ((S (ff_i_repeatsum_decomp_prefix)) * c) + (ff_a_repeatsum_decomp_prefix))) /\ ((((exists ff_h_repeatsum_decomp_prefix_partial. ff_h_repeatsum_decomp_prefix_partial + S (ff_r_repeatsum_decomp_prefix) = S ((S (ff_i_repeatsum_decomp_prefix)) * ff_v_repeatsum_decomp_prefix)) /\ exists ff_q_repeatsum_decomp_prefix_partial. ff_u_repeatsum_decomp_prefix = ff_q_repeatsum_decomp_prefix_partial * S ((S (ff_i_repeatsum_decomp_prefix)) * ff_v_repeatsum_decomp_prefix) + (ff_r_repeatsum_decomp_prefix))) /\ ((((exists ff_h_repeatsum_decomp_prefix_successor. ff_h_repeatsum_decomp_prefix_successor + S (ff_s_repeatsum_decomp_prefix) = S ((S (S ff_i_repeatsum_decomp_prefix)) * ff_v_repeatsum_decomp_prefix)) /\ exists ff_q_repeatsum_decomp_prefix_successor. ff_u_repeatsum_decomp_prefix = ff_q_repeatsum_decomp_prefix_successor * S ((S (S ff_i_repeatsum_decomp_prefix)) * ff_v_repeatsum_decomp_prefix) + (ff_s_repeatsum_decomp_prefix))) /\ ff_s_repeatsum_decomp_prefix = ff_r_repeatsum_decomp_prefix + ff_a_repeatsum_decomp_prefix)))))) /\ n = r + a)
  22. specialize beta_sum_succ_decompose b
  23. specialize beta_sum_succ_decompose c
  24. specialize beta_sum_succ_decompose l
  25. specialize beta_sum_succ_decompose n
  26. apply beta_sum_succ_decompose
  27. exact hsum
  28. cases hdecomp
  29. cases hdecomp_witness
  30. cases hdecomp_witness_witness
  31. cases hdecomp_witness_witness_right
  32. have hprefix_repeat : forall ff_i_repeatsum_prefix_repeat. (exists ff_lt_repeatsum_prefix_repeat_bound. ff_lt_repeatsum_prefix_repeat_bound + S ff_i_repeatsum_prefix_repeat = l) -> (((exists ff_h_repeatsum_prefix_repeat_decoded. ff_h_repeatsum_prefix_repeat_decoded + S (a) = S ((S (ff_i_repeatsum_prefix_repeat)) * c)) /\ exists ff_q_repeatsum_prefix_repeat_decoded. b = ff_q_repeatsum_prefix_repeat_decoded * S ((S (ff_i_repeatsum_prefix_repeat)) * c) + (a)))
  33. intro i
  34. intro hi
  35. specialize hrepeat i
  36. apply hrepeat
  37. specialize le_succ (S i)
  38. specialize le_succ l
  39. apply le_succ
  40. exact hi
  41. have hprefix : x1 = l * a
  42. specialize IH x1
  43. apply IH
  44. exact hprefix_repeat
  45. exact hdecomp_witness_witness_right_left
  46. have hlast : x = a
  47. specialize beta_repeat_entry_eq b
  48. specialize beta_repeat_entry_eq c
  49. specialize beta_repeat_entry_eq a
  50. specialize beta_repeat_entry_eq (S l)
  51. specialize beta_repeat_entry_eq l
  52. specialize beta_repeat_entry_eq x
  53. apply beta_repeat_entry_eq
  54. exact hrepeat
  55. specialize le_refl (S l)
  56. exact le_refl
  57. exact hdecomp_witness_witness_left
  58. rewrite hdecomp_witness_witness_right_right
  59. rewrite hprefix
  60. rewrite hlast
  61. specialize mul_succ_left l
  62. specialize mul_succ_left a
  63. symm
  64. exact mul_succ_left
prime_two_le · unchanged support, not a new admission
forall p. ((~(p = 1) /\ forall frm_prime_left_bpvl_prime frm_prime_right_bpvl_prime. p = frm_prime_left_bpvl_prime * frm_prime_right_bpvl_prime -> frm_prime_left_bpvl_prime = 1 \/ frm_prime_right_bpvl_prime = 1)) -> (exists bpvl_gap_prime_two. bpvl_gap_prime_two + (2) = (p))
  1. intro p
  2. intro hp
  3. have hshape : exists k. p = S (S k)
  4. specialize prime_is_succ_succ p
  5. apply prime_is_succ_succ
  6. exact hp
  7. cases hshape
  8. exists x
  9. trans S (S x)
  10. rewrite PA4
  11. rewrite PA4
  12. rewrite PA3
  13. refl
  14. symm
  15. exact hshape_witness
beta_affine_matrix_slice_extend · unchanged support, not a new admission
forall b c s d u v l a. (forall ff_index_mcp_extend_before ff_source_mcp_extend_before ff_target_mcp_extend_before. (exists mcp_gap_extend_before_bound. mcp_gap_extend_before_bound + S (ff_index_mcp_extend_before) = (l)) -> (((exists fs_h_mcp_extend_before_source. fs_h_mcp_extend_before_source + S (ff_source_mcp_extend_before) = S ((S ((s) + (d) * ff_index_mcp_extend_before)) * c)) /\ exists fs_q_mcp_extend_before_source. b = fs_q_mcp_extend_before_source * S ((S ((s) + (d) * ff_index_mcp_extend_before)) * c) + (ff_source_mcp_extend_before))) -> (((exists fs_h_mcp_extend_before_target. fs_h_mcp_extend_before_target + S (ff_target_mcp_extend_before) = S ((S (ff_index_mcp_extend_before)) * v)) /\ exists fs_q_mcp_extend_before_target. u = fs_q_mcp_extend_before_target * S ((S (ff_index_mcp_extend_before)) * v) + (ff_target_mcp_extend_before))) -> ff_target_mcp_extend_before = ff_source_mcp_extend_before) -> (((exists fs_h_mcp_extend_source_last. fs_h_mcp_extend_source_last + S (a) = S ((S (s + d * l)) * c)) /\ exists fs_q_mcp_extend_source_last. b = fs_q_mcp_extend_source_last * S ((S (s + d * l)) * c) + (a))) -> exists z e. (forall ff_index_mcp_extend_after ff_source_mcp_extend_after ff_target_mcp_extend_after. (exists mcp_gap_extend_after_bound. mcp_gap_extend_after_bound + S (ff_index_mcp_extend_after) = (S l)) -> (((exists fs_h_mcp_extend_after_source. fs_h_mcp_extend_after_source + S (ff_source_mcp_extend_after) = S ((S ((s) + (d) * ff_index_mcp_extend_after)) * c)) /\ exists fs_q_mcp_extend_after_source. b = fs_q_mcp_extend_after_source * S ((S ((s) + (d) * ff_index_mcp_extend_after)) * c) + (ff_source_mcp_extend_after))) -> (((exists fs_h_mcp_extend_after_target. fs_h_mcp_extend_after_target + S (ff_target_mcp_extend_after) = S ((S (ff_index_mcp_extend_after)) * e)) /\ exists fs_q_mcp_extend_after_target. z = fs_q_mcp_extend_after_target * S ((S (ff_index_mcp_extend_after)) * e) + (ff_target_mcp_extend_after))) -> ff_target_mcp_extend_after = ff_source_mcp_extend_after)
  1. intro b
  2. intro c
  3. intro s
  4. intro d
  5. intro u
  6. intro v
  7. intro l
  8. intro a
  9. intro hprevious
  10. intro hlast
  11. specialize beta_prefix_extend l
  12. specialize beta_prefix_extend u
  13. specialize beta_prefix_extend v
  14. specialize beta_prefix_extend a
  15. cases beta_prefix_extend
  16. cases beta_prefix_extend_witness
  17. cases beta_prefix_extend_witness_witness
  18. exists x
  19. exists x1
  20. intro i
  21. intro source
  22. intro target
  23. intro hi
  24. intro hsource
  25. intro htarget
  26. have hsplit : i = l \/ exists gap. gap + S i = l
  27. specialize finite_lt_succ_eq_or_lt l
  28. specialize finite_lt_succ_eq_or_lt i
  29. apply finite_lt_succ_eq_or_lt
  30. exact hi
  31. cases hsplit
  32. rewrite hsplit_left at hsource
  33. rewrite hsplit_left at hsource
  34. rewrite hsplit_left at htarget
  35. rewrite hsplit_left at htarget
  36. have hsource_value : a = source
  37. specialize beta_at_unique b
  38. specialize beta_at_unique c
  39. specialize beta_at_unique (s + d * l)
  40. specialize beta_at_unique a
  41. specialize beta_at_unique source
  42. apply beta_at_unique
  43. exact hlast
  44. exact hsource
  45. have htarget_value : target = a
  46. specialize beta_at_unique x
  47. specialize beta_at_unique x1
  48. specialize beta_at_unique l
  49. specialize beta_at_unique target
  50. specialize beta_at_unique a
  51. apply beta_at_unique
  52. exact htarget
  53. exact beta_prefix_extend_witness_witness_left
  54. trans a
  55. exact htarget_value
  56. exact hsource_value
  57. have hold : exists z. (((exists fs_h_mcp_extend_old. fs_h_mcp_extend_old + S (z) = S ((S (i)) * v)) /\ exists fs_q_mcp_extend_old. u = fs_q_mcp_extend_old * S ((S (i)) * v) + (z)))
  58. specialize beta_at_exists u
  59. specialize beta_at_exists v
  60. specialize beta_at_exists i
  61. exact beta_at_exists
  62. cases hold
  63. have hpreserved : ((exists fs_h_mcp_extend_preserved. fs_h_mcp_extend_preserved + S (x2) = S ((S (i)) * x1)) /\ exists fs_q_mcp_extend_preserved. x = fs_q_mcp_extend_preserved * S ((S (i)) * x1) + (x2))
  64. specialize beta_prefix_extend_witness_witness_right i
  65. specialize beta_prefix_extend_witness_witness_right x2
  66. apply beta_prefix_extend_witness_witness_right
  67. exact hsplit_right
  68. exact hold_witness
  69. have htarget_old : target = x2
  70. specialize beta_at_unique x
  71. specialize beta_at_unique x1
  72. specialize beta_at_unique i
  73. specialize beta_at_unique target
  74. specialize beta_at_unique x2
  75. apply beta_at_unique
  76. exact htarget
  77. exact hpreserved
  78. have hold_source : x2 = source
  79. specialize hprevious i
  80. specialize hprevious source
  81. specialize hprevious x2
  82. apply hprevious
  83. exact hsplit_right
  84. exact hsource
  85. exact hold_witness
  86. trans x2
  87. exact htarget_old
  88. exact hold_source
beta_affine_matrix_slice_exists · unchanged support, not a new admission
forall b c s d l. exists u v. (forall ff_index_mcp_exists_result ff_source_mcp_exists_result ff_target_mcp_exists_result. (exists mcp_gap_exists_result_bound. mcp_gap_exists_result_bound + S (ff_index_mcp_exists_result) = (l)) -> (((exists fs_h_mcp_exists_result_source. fs_h_mcp_exists_result_source + S (ff_source_mcp_exists_result) = S ((S ((s) + (d) * ff_index_mcp_exists_result)) * c)) /\ exists fs_q_mcp_exists_result_source. b = fs_q_mcp_exists_result_source * S ((S ((s) + (d) * ff_index_mcp_exists_result)) * c) + (ff_source_mcp_exists_result))) -> (((exists fs_h_mcp_exists_result_target. fs_h_mcp_exists_result_target + S (ff_target_mcp_exists_result) = S ((S (ff_index_mcp_exists_result)) * v)) /\ exists fs_q_mcp_exists_result_target. u = fs_q_mcp_exists_result_target * S ((S (ff_index_mcp_exists_result)) * v) + (ff_target_mcp_exists_result))) -> ff_target_mcp_exists_result = ff_source_mcp_exists_result)
  1. intro b
  2. intro c
  3. intro s
  4. intro d
  5. induction l
  6. exists 0
  7. exists 0
  8. intro i
  9. intro source
  10. intro target
  11. intro hi
  12. intro hsource
  13. intro htarget
  14. exfalso
  15. cases hi
  16. have hzero : S i = 0
  17. specialize add_eq_zero_right x
  18. specialize add_eq_zero_right (S i)
  19. apply add_eq_zero_right
  20. exact hi_witness
  21. specialize succ_ne_zero i
  22. apply succ_ne_zero
  23. exact hzero
  24. have hprevious : exists u v. (forall ff_index_mcp_exists_previous ff_source_mcp_exists_previous ff_target_mcp_exists_previous. (exists mcp_gap_exists_previous_bound. mcp_gap_exists_previous_bound + S (ff_index_mcp_exists_previous) = (l)) -> (((exists fs_h_mcp_exists_previous_source. fs_h_mcp_exists_previous_source + S (ff_source_mcp_exists_previous) = S ((S ((s) + (d) * ff_index_mcp_exists_previous)) * c)) /\ exists fs_q_mcp_exists_previous_source. b = fs_q_mcp_exists_previous_source * S ((S ((s) + (d) * ff_index_mcp_exists_previous)) * c) + (ff_source_mcp_exists_previous))) -> (((exists fs_h_mcp_exists_previous_target. fs_h_mcp_exists_previous_target + S (ff_target_mcp_exists_previous) = S ((S (ff_index_mcp_exists_previous)) * v)) /\ exists fs_q_mcp_exists_previous_target. u = fs_q_mcp_exists_previous_target * S ((S (ff_index_mcp_exists_previous)) * v) + (ff_target_mcp_exists_previous))) -> ff_target_mcp_exists_previous = ff_source_mcp_exists_previous)
  25. exact IH
  26. cases hprevious
  27. cases hprevious_witness
  28. have hsource : exists a. (((exists fs_h_mcp_exists_last. fs_h_mcp_exists_last + S (a) = S ((S (s + d * l)) * c)) /\ exists fs_q_mcp_exists_last. b = fs_q_mcp_exists_last * S ((S (s + d * l)) * c) + (a)))
  29. specialize beta_at_exists b
  30. specialize beta_at_exists c
  31. specialize beta_at_exists (s + d * l)
  32. exact beta_at_exists
  33. cases hsource
  34. specialize beta_affine_matrix_slice_extend b
  35. specialize beta_affine_matrix_slice_extend c
  36. specialize beta_affine_matrix_slice_extend s
  37. specialize beta_affine_matrix_slice_extend d
  38. specialize beta_affine_matrix_slice_extend x
  39. specialize beta_affine_matrix_slice_extend x1
  40. specialize beta_affine_matrix_slice_extend l
  41. specialize beta_affine_matrix_slice_extend x2
  42. apply beta_affine_matrix_slice_extend
  43. exact hprevious_witness_witness
  44. exact hsource_witness
beta_pointwise_add_prefix_extend · unchanged support, not a new admission
forall mb mc sb sc tb tc l a b. (forall ff_index_mcp_add_add_before ff_left_mcp_add_add_before ff_right_mcp_add_add_before ff_target_mcp_add_add_before. (exists mcp_gap_add_before_bound. mcp_gap_add_before_bound + S (ff_index_mcp_add_add_before) = (l)) -> (((exists fs_h_mcp_add_before_left. fs_h_mcp_add_before_left + S (ff_left_mcp_add_add_before) = S ((S (ff_index_mcp_add_add_before)) * mc)) /\ exists fs_q_mcp_add_before_left. mb = fs_q_mcp_add_before_left * S ((S (ff_index_mcp_add_add_before)) * mc) + (ff_left_mcp_add_add_before))) -> (((exists fs_h_mcp_add_before_right. fs_h_mcp_add_before_right + S (ff_right_mcp_add_add_before) = S ((S (ff_index_mcp_add_add_before)) * sc)) /\ exists fs_q_mcp_add_before_right. sb = fs_q_mcp_add_before_right * S ((S (ff_index_mcp_add_add_before)) * sc) + (ff_right_mcp_add_add_before))) -> (((exists fs_h_mcp_add_before_target. fs_h_mcp_add_before_target + S (ff_target_mcp_add_add_before) = S ((S (ff_index_mcp_add_add_before)) * tc)) /\ exists fs_q_mcp_add_before_target. tb = fs_q_mcp_add_before_target * S ((S (ff_index_mcp_add_add_before)) * tc) + (ff_target_mcp_add_add_before))) -> ff_target_mcp_add_add_before = ff_left_mcp_add_add_before + ff_right_mcp_add_add_before) -> (((exists fs_h_mcp_add_last_left. fs_h_mcp_add_last_left + S (a) = S ((S (l)) * mc)) /\ exists fs_q_mcp_add_last_left. mb = fs_q_mcp_add_last_left * S ((S (l)) * mc) + (a))) -> (((exists fs_h_mcp_add_last_right. fs_h_mcp_add_last_right + S (b) = S ((S (l)) * sc)) /\ exists fs_q_mcp_add_last_right. sb = fs_q_mcp_add_last_right * S ((S (l)) * sc) + (b))) -> exists z d. (forall ff_index_mcp_add_add_after ff_left_mcp_add_add_after ff_right_mcp_add_add_after ff_target_mcp_add_add_after. (exists mcp_gap_add_after_bound. mcp_gap_add_after_bound + S (ff_index_mcp_add_add_after) = (S l)) -> (((exists fs_h_mcp_add_after_left. fs_h_mcp_add_after_left + S (ff_left_mcp_add_add_after) = S ((S (ff_index_mcp_add_add_after)) * mc)) /\ exists fs_q_mcp_add_after_left. mb = fs_q_mcp_add_after_left * S ((S (ff_index_mcp_add_add_after)) * mc) + (ff_left_mcp_add_add_after))) -> (((exists fs_h_mcp_add_after_right. fs_h_mcp_add_after_right + S (ff_right_mcp_add_add_after) = S ((S (ff_index_mcp_add_add_after)) * sc)) /\ exists fs_q_mcp_add_after_right. sb = fs_q_mcp_add_after_right * S ((S (ff_index_mcp_add_add_after)) * sc) + (ff_right_mcp_add_add_after))) -> (((exists fs_h_mcp_add_after_target. fs_h_mcp_add_after_target + S (ff_target_mcp_add_add_after) = S ((S (ff_index_mcp_add_add_after)) * d)) /\ exists fs_q_mcp_add_after_target. z = fs_q_mcp_add_after_target * S ((S (ff_index_mcp_add_add_after)) * d) + (ff_target_mcp_add_add_after))) -> ff_target_mcp_add_add_after = ff_left_mcp_add_add_after + ff_right_mcp_add_add_after)
  1. intro mb
  2. intro mc
  3. intro sb
  4. intro sc
  5. intro tb
  6. intro tc
  7. intro l
  8. intro a
  9. intro b
  10. intro hprevious
  11. intro hleft
  12. intro hright
  13. specialize beta_prefix_extend l
  14. specialize beta_prefix_extend tb
  15. specialize beta_prefix_extend tc
  16. specialize beta_prefix_extend (a + b)
  17. cases beta_prefix_extend
  18. cases beta_prefix_extend_witness
  19. cases beta_prefix_extend_witness_witness
  20. exists x
  21. exists x1
  22. intro i
  23. intro m
  24. intro n
  25. intro target
  26. intro hi
  27. intro hm
  28. intro hn
  29. intro ht
  30. have hsplit : i = l \/ exists gap. gap + S i = l
  31. specialize finite_lt_succ_eq_or_lt l
  32. specialize finite_lt_succ_eq_or_lt i
  33. apply finite_lt_succ_eq_or_lt
  34. exact hi
  35. cases hsplit
  36. rewrite hsplit_left at hm
  37. rewrite hsplit_left at hm
  38. rewrite hsplit_left at hn
  39. rewrite hsplit_left at hn
  40. rewrite hsplit_left at ht
  41. rewrite hsplit_left at ht
  42. have hfirst : a = m
  43. specialize beta_at_unique mb
  44. specialize beta_at_unique mc
  45. specialize beta_at_unique l
  46. specialize beta_at_unique a
  47. specialize beta_at_unique m
  48. apply beta_at_unique
  49. exact hleft
  50. exact hm
  51. have hsecond : b = n
  52. specialize beta_at_unique sb
  53. specialize beta_at_unique sc
  54. specialize beta_at_unique l
  55. specialize beta_at_unique b
  56. specialize beta_at_unique n
  57. apply beta_at_unique
  58. exact hright
  59. exact hn
  60. have htotal : target = a + b
  61. specialize beta_at_unique x
  62. specialize beta_at_unique x1
  63. specialize beta_at_unique l
  64. specialize beta_at_unique target
  65. specialize beta_at_unique (a + b)
  66. apply beta_at_unique
  67. exact ht
  68. exact beta_prefix_extend_witness_witness_left
  69. trans a + b
  70. exact htotal
  71. congr
  72. exact hfirst
  73. exact hsecond
  74. have hold : exists q. (((exists fs_h_mcp_add_old_exists. fs_h_mcp_add_old_exists + S (q) = S ((S (i)) * tc)) /\ exists fs_q_mcp_add_old_exists. tb = fs_q_mcp_add_old_exists * S ((S (i)) * tc) + (q)))
  75. specialize beta_at_exists tb
  76. specialize beta_at_exists tc
  77. specialize beta_at_exists i
  78. exact beta_at_exists
  79. cases hold
  80. have hnew_old : ((exists fs_h_mcp_add_new_old. fs_h_mcp_add_new_old + S (x2) = S ((S (i)) * x1)) /\ exists fs_q_mcp_add_new_old. x = fs_q_mcp_add_new_old * S ((S (i)) * x1) + (x2))
  81. specialize beta_prefix_extend_witness_witness_right i
  82. specialize beta_prefix_extend_witness_witness_right x2
  83. apply beta_prefix_extend_witness_witness_right
  84. exact hsplit_right
  85. exact hold_witness
  86. have htarget_old : target = x2
  87. specialize beta_at_unique x
  88. specialize beta_at_unique x1
  89. specialize beta_at_unique i
  90. specialize beta_at_unique target
  91. specialize beta_at_unique x2
  92. apply beta_at_unique
  93. exact ht
  94. exact hnew_old
  95. have hold_sum : x2 = m + n
  96. specialize hprevious i
  97. specialize hprevious m
  98. specialize hprevious n
  99. specialize hprevious x2
  100. apply hprevious
  101. exact hsplit_right
  102. exact hm
  103. exact hn
  104. exact hold_witness
  105. trans x2
  106. exact htarget_old
  107. exact hold_sum
beta_pointwise_add_prefix_exists · unchanged support, not a new admission
forall mb mc sb sc l. exists tb tc. (forall ff_index_mcp_add_add_exists ff_left_mcp_add_add_exists ff_right_mcp_add_add_exists ff_target_mcp_add_add_exists. (exists mcp_gap_add_exists_bound. mcp_gap_add_exists_bound + S (ff_index_mcp_add_add_exists) = (l)) -> (((exists fs_h_mcp_add_exists_left. fs_h_mcp_add_exists_left + S (ff_left_mcp_add_add_exists) = S ((S (ff_index_mcp_add_add_exists)) * mc)) /\ exists fs_q_mcp_add_exists_left. mb = fs_q_mcp_add_exists_left * S ((S (ff_index_mcp_add_add_exists)) * mc) + (ff_left_mcp_add_add_exists))) -> (((exists fs_h_mcp_add_exists_right. fs_h_mcp_add_exists_right + S (ff_right_mcp_add_add_exists) = S ((S (ff_index_mcp_add_add_exists)) * sc)) /\ exists fs_q_mcp_add_exists_right. sb = fs_q_mcp_add_exists_right * S ((S (ff_index_mcp_add_add_exists)) * sc) + (ff_right_mcp_add_add_exists))) -> (((exists fs_h_mcp_add_exists_target. fs_h_mcp_add_exists_target + S (ff_target_mcp_add_add_exists) = S ((S (ff_index_mcp_add_add_exists)) * tc)) /\ exists fs_q_mcp_add_exists_target. tb = fs_q_mcp_add_exists_target * S ((S (ff_index_mcp_add_add_exists)) * tc) + (ff_target_mcp_add_add_exists))) -> ff_target_mcp_add_add_exists = ff_left_mcp_add_add_exists + ff_right_mcp_add_add_exists)
  1. intro mb
  2. intro mc
  3. intro sb
  4. intro sc
  5. induction l
  6. exists 0
  7. exists 0
  8. intro i
  9. intro a
  10. intro b
  11. intro target
  12. intro hi
  13. intro ha
  14. intro hb
  15. intro ht
  16. exfalso
  17. cases hi
  18. have hzero : S i = 0
  19. specialize add_eq_zero_right x
  20. specialize add_eq_zero_right (S i)
  21. apply add_eq_zero_right
  22. exact hi_witness
  23. specialize succ_ne_zero i
  24. apply succ_ne_zero
  25. exact hzero
  26. have hprevious : exists tb tc. (forall ff_index_mcp_add_add_previous ff_left_mcp_add_add_previous ff_right_mcp_add_add_previous ff_target_mcp_add_add_previous. (exists mcp_gap_add_previous_bound. mcp_gap_add_previous_bound + S (ff_index_mcp_add_add_previous) = (l)) -> (((exists fs_h_mcp_add_previous_left. fs_h_mcp_add_previous_left + S (ff_left_mcp_add_add_previous) = S ((S (ff_index_mcp_add_add_previous)) * mc)) /\ exists fs_q_mcp_add_previous_left. mb = fs_q_mcp_add_previous_left * S ((S (ff_index_mcp_add_add_previous)) * mc) + (ff_left_mcp_add_add_previous))) -> (((exists fs_h_mcp_add_previous_right. fs_h_mcp_add_previous_right + S (ff_right_mcp_add_add_previous) = S ((S (ff_index_mcp_add_add_previous)) * sc)) /\ exists fs_q_mcp_add_previous_right. sb = fs_q_mcp_add_previous_right * S ((S (ff_index_mcp_add_add_previous)) * sc) + (ff_right_mcp_add_add_previous))) -> (((exists fs_h_mcp_add_previous_target. fs_h_mcp_add_previous_target + S (ff_target_mcp_add_add_previous) = S ((S (ff_index_mcp_add_add_previous)) * tc)) /\ exists fs_q_mcp_add_previous_target. tb = fs_q_mcp_add_previous_target * S ((S (ff_index_mcp_add_add_previous)) * tc) + (ff_target_mcp_add_add_previous))) -> ff_target_mcp_add_add_previous = ff_left_mcp_add_add_previous + ff_right_mcp_add_add_previous)
  27. exact IH
  28. cases hprevious
  29. cases hprevious_witness
  30. have hleft : exists a. (((exists fs_h_mcp_add_exists_left. fs_h_mcp_add_exists_left + S (a) = S ((S (l)) * mc)) /\ exists fs_q_mcp_add_exists_left. mb = fs_q_mcp_add_exists_left * S ((S (l)) * mc) + (a)))
  31. specialize beta_at_exists mb
  32. specialize beta_at_exists mc
  33. specialize beta_at_exists l
  34. exact beta_at_exists
  35. cases hleft
  36. have hright : exists b. (((exists fs_h_mcp_add_exists_right. fs_h_mcp_add_exists_right + S (b) = S ((S (l)) * sc)) /\ exists fs_q_mcp_add_exists_right. sb = fs_q_mcp_add_exists_right * S ((S (l)) * sc) + (b)))
  37. specialize beta_at_exists sb
  38. specialize beta_at_exists sc
  39. specialize beta_at_exists l
  40. exact beta_at_exists
  41. cases hright
  42. specialize beta_pointwise_add_prefix_extend mb
  43. specialize beta_pointwise_add_prefix_extend mc
  44. specialize beta_pointwise_add_prefix_extend sb
  45. specialize beta_pointwise_add_prefix_extend sc
  46. specialize beta_pointwise_add_prefix_extend x
  47. specialize beta_pointwise_add_prefix_extend x1
  48. specialize beta_pointwise_add_prefix_extend l
  49. specialize beta_pointwise_add_prefix_extend x2
  50. specialize beta_pointwise_add_prefix_extend x3
  51. apply beta_pointwise_add_prefix_extend
  52. exact hprevious_witness_witness
  53. exact hleft_witness
  54. exact hright_witness
binary_canonical_residue_functional · unchanged support, not a new admission
forall m n r s. (((exists ff_gap_binary_value. ff_gap_binary_value + S (r) = m) /\ (exists ff_left_binary_value_congruence ff_right_binary_value_congruence. (n) + m * ff_left_binary_value_congruence = (r) + m * ff_right_binary_value_congruence))) -> (((exists ff_gap_binary_other. ff_gap_binary_other + S (s) = m) /\ (exists ff_left_binary_other_congruence ff_right_binary_other_congruence. (n) + m * ff_left_binary_other_congruence = (s) + m * ff_right_binary_other_congruence))) -> r = s
  1. intro m
  2. intro n
  3. intro r
  4. intro s
  5. intro hr
  6. intro hs
  7. cases hr
  8. cases hs
  9. have hreverse : exists ff_left_binary_functional_reverse ff_right_binary_functional_reverse. (r) + m * ff_left_binary_functional_reverse = (n) + m * ff_right_binary_functional_reverse
  10. specialize mod_eq_symm m
  11. specialize mod_eq_symm n
  12. specialize mod_eq_symm r
  13. apply mod_eq_symm
  14. exact hr_right
  15. have hrelated : exists ff_left_binary_functional_related ff_right_binary_functional_related. (r) + m * ff_left_binary_functional_related = (s) + m * ff_right_binary_functional_related
  16. specialize mod_eq_trans m
  17. specialize mod_eq_trans r
  18. specialize mod_eq_trans n
  19. specialize mod_eq_trans s
  20. apply mod_eq_trans
  21. exact hreverse
  22. exact hs_right
  23. specialize mod_eq_bounded_unique m
  24. specialize mod_eq_bounded_unique r
  25. specialize mod_eq_bounded_unique s
  26. apply mod_eq_bounded_unique
  27. exact hr_left
  28. exact hs_left
  29. exact hrelated
matrix_recursive_lt_add_left · unchanged support, not a new admission
forall a b c. (exists mdr_gap_add_source. mdr_gap_add_source + S (a) = (b)) -> (exists mdr_gap_add_result. mdr_gap_add_result + S (c + a) = (c + b))
  1. intro a
  2. intro b
  3. intro c
  4. intro hab
  5. have heq : c + S a = S (c + a)
  6. apply PA4
  7. have hsum : exists mdr_gap_add_middle. mdr_gap_add_middle + (c + S a) = (c + b)
  8. specialize add_le_add_left (S a)
  9. specialize add_le_add_left (b)
  10. specialize add_le_add_left (c)
  11. apply add_le_add_left
  12. exact hab
  13. rewrite heq at hsum
  14. exact hsum
matrix_rank_bounded_prefix_value · unchanged support, not a new admission
forall b c l B i a. (forall fom_index_mrf_value_source. (exists fom_gap_mrf_value_source_index_bound. fom_gap_mrf_value_source_index_bound + S (fom_index_mrf_value_source) = l) -> exists fom_value_mrf_value_source. ((((exists fom_beta_height_mrf_value_source_entry. fom_beta_height_mrf_value_source_entry + S (fom_value_mrf_value_source) = S ((S (fom_index_mrf_value_source)) * c)) /\ exists fom_beta_quotient_mrf_value_source_entry. b = fom_beta_quotient_mrf_value_source_entry * S ((S (fom_index_mrf_value_source)) * c) + (fom_value_mrf_value_source))) /\ (exists fom_gap_mrf_value_source_value_bound. fom_gap_mrf_value_source_value_bound + S (fom_value_mrf_value_source) = B))) -> (exists mdr_gap_value_index. mdr_gap_value_index + S (i) = (l)) -> (((exists ff_h_mdr_value_entry. ff_h_mdr_value_entry + S (a) = S ((S (i)) * c)) /\ exists ff_q_mdr_value_entry. b = ff_q_mdr_value_entry * S ((S (i)) * c) + (a))) -> (exists mdr_gap_value_bound. mdr_gap_value_bound + S (a) = (B))
  1. intro b
  2. intro c
  3. intro l
  4. intro B
  5. intro i
  6. intro a
  7. intro hbounded
  8. intro hi
  9. intro ha
  10. have hentry : exists v. ((((exists ff_h_mdr_bounded_entry. ff_h_mdr_bounded_entry + S (v) = S ((S (i)) * c)) /\ exists ff_q_mdr_bounded_entry. b = ff_q_mdr_bounded_entry * S ((S (i)) * c) + (v))) /\ (exists mdr_gap_bounded_value. mdr_gap_bounded_value + S (v) = (B)))
  11. specialize hbounded (i)
  12. apply hbounded
  13. exact hi
  14. cases hentry
  15. cases hentry_witness
  16. have heq : a = x
  17. specialize beta_at_unique (b)
  18. specialize beta_at_unique (c)
  19. specialize beta_at_unique (i)
  20. specialize beta_at_unique (a)
  21. specialize beta_at_unique (x)
  22. apply beta_at_unique
  23. exact ha
  24. exact hentry_witness_left
  25. rewrite heq
  26. exact hentry_witness_right
matrix_rank_no_index_below_zero · unchanged support, not a new admission
forall i. ~(exists mdr_gap_no_index. mdr_gap_no_index + S (i) = (0))
  1. intro i
  2. intro hi
  3. have hzero : S i = 0
  4. specialize le_zero (S i)
  5. apply le_zero
  6. exact hi
  7. specialize succ_ne_zero (i)
  8. apply succ_ne_zero
  9. exact hzero
matrix_rank_prefix_equality_symmetric · unchanged support, not a new admission
forall b c u v l. (forall mdr_i_symmetric_source mdr_a_symmetric_source. (exists mdr_gap_symmetric_sourceb. mdr_gap_symmetric_sourceb + S (mdr_i_symmetric_source) = (l)) -> (((exists ff_h_mdr_symmetric_sourceo. ff_h_mdr_symmetric_sourceo + S (mdr_a_symmetric_source) = S ((S (mdr_i_symmetric_source)) * c)) /\ exists ff_q_mdr_symmetric_sourceo. b = ff_q_mdr_symmetric_sourceo * S ((S (mdr_i_symmetric_source)) * c) + (mdr_a_symmetric_source))) -> (((exists ff_h_mdr_symmetric_sourcen. ff_h_mdr_symmetric_sourcen + S (mdr_a_symmetric_source) = S ((S (mdr_i_symmetric_source)) * v)) /\ exists ff_q_mdr_symmetric_sourcen. u = ff_q_mdr_symmetric_sourcen * S ((S (mdr_i_symmetric_source)) * v) + (mdr_a_symmetric_source)))) -> (forall mdr_i_symmetric_result mdr_a_symmetric_result. (exists mdr_gap_symmetric_resultb. mdr_gap_symmetric_resultb + S (mdr_i_symmetric_result) = (l)) -> (((exists ff_h_mdr_symmetric_resulto. ff_h_mdr_symmetric_resulto + S (mdr_a_symmetric_result) = S ((S (mdr_i_symmetric_result)) * v)) /\ exists ff_q_mdr_symmetric_resulto. u = ff_q_mdr_symmetric_resulto * S ((S (mdr_i_symmetric_result)) * v) + (mdr_a_symmetric_result))) -> (((exists ff_h_mdr_symmetric_resultn. ff_h_mdr_symmetric_resultn + S (mdr_a_symmetric_result) = S ((S (mdr_i_symmetric_result)) * c)) /\ exists ff_q_mdr_symmetric_resultn. b = ff_q_mdr_symmetric_resultn * S ((S (mdr_i_symmetric_result)) * c) + (mdr_a_symmetric_result))))
  1. intro b
  2. intro c
  3. intro u
  4. intro v
  5. intro l
  6. intro hprefix
  7. intro i
  8. intro a
  9. intro hi
  10. intro ha
  11. have hvalue : exists z. ((exists ff_h_mdr_reverse_value. ff_h_mdr_reverse_value + S (z) = S ((S (i)) * c)) /\ exists ff_q_mdr_reverse_value. b = ff_q_mdr_reverse_value * S ((S (i)) * c) + (z))
  12. specialize beta_at_exists (b)
  13. specialize beta_at_exists (c)
  14. specialize beta_at_exists (i)
  15. apply beta_at_exists
  16. cases hvalue
  17. have heq : a = x
  18. specialize beta_at_unique (u)
  19. specialize beta_at_unique (v)
  20. specialize beta_at_unique (i)
  21. specialize beta_at_unique (a)
  22. specialize beta_at_unique (x)
  23. apply beta_at_unique
  24. exact ha
  25. specialize hprefix (i)
  26. specialize hprefix (x)
  27. apply hprefix
  28. exact hi
  29. exact hvalue_witness
  30. rewrite heq
  31. rewrite heq
  32. exact hvalue_witness
matrix_rank_bounded_prefix_transport · unchanged support, not a new admission
forall b c u v l B. (forall mdr_i_bounded_transport mdr_a_bounded_transport. (exists mdr_gap_bounded_transportb. mdr_gap_bounded_transportb + S (mdr_i_bounded_transport) = (l)) -> (((exists ff_h_mdr_bounded_transporto. ff_h_mdr_bounded_transporto + S (mdr_a_bounded_transport) = S ((S (mdr_i_bounded_transport)) * c)) /\ exists ff_q_mdr_bounded_transporto. b = ff_q_mdr_bounded_transporto * S ((S (mdr_i_bounded_transport)) * c) + (mdr_a_bounded_transport))) -> (((exists ff_h_mdr_bounded_transportn. ff_h_mdr_bounded_transportn + S (mdr_a_bounded_transport) = S ((S (mdr_i_bounded_transport)) * v)) /\ exists ff_q_mdr_bounded_transportn. u = ff_q_mdr_bounded_transportn * S ((S (mdr_i_bounded_transport)) * v) + (mdr_a_bounded_transport)))) -> (forall fom_index_mrf_bounded_source. (exists fom_gap_mrf_bounded_source_index_bound. fom_gap_mrf_bounded_source_index_bound + S (fom_index_mrf_bounded_source) = l) -> exists fom_value_mrf_bounded_source. ((((exists fom_beta_height_mrf_bounded_source_entry. fom_beta_height_mrf_bounded_source_entry + S (fom_value_mrf_bounded_source) = S ((S (fom_index_mrf_bounded_source)) * c)) /\ exists fom_beta_quotient_mrf_bounded_source_entry. b = fom_beta_quotient_mrf_bounded_source_entry * S ((S (fom_index_mrf_bounded_source)) * c) + (fom_value_mrf_bounded_source))) /\ (exists fom_gap_mrf_bounded_source_value_bound. fom_gap_mrf_bounded_source_value_bound + S (fom_value_mrf_bounded_source) = B))) -> (forall fom_index_mrf_bounded_target. (exists fom_gap_mrf_bounded_target_index_bound. fom_gap_mrf_bounded_target_index_bound + S (fom_index_mrf_bounded_target) = l) -> exists fom_value_mrf_bounded_target. ((((exists fom_beta_height_mrf_bounded_target_entry. fom_beta_height_mrf_bounded_target_entry + S (fom_value_mrf_bounded_target) = S ((S (fom_index_mrf_bounded_target)) * v)) /\ exists fom_beta_quotient_mrf_bounded_target_entry. u = fom_beta_quotient_mrf_bounded_target_entry * S ((S (fom_index_mrf_bounded_target)) * v) + (fom_value_mrf_bounded_target))) /\ (exists fom_gap_mrf_bounded_target_value_bound. fom_gap_mrf_bounded_target_value_bound + S (fom_value_mrf_bounded_target) = B)))
  1. intro b
  2. intro c
  3. intro u
  4. intro v
  5. intro l
  6. intro B
  7. intro hprefix
  8. intro hbounded
  9. intro i
  10. intro hi
  11. have hentry : exists a. ((((exists ff_h_mdr_transport_source_entry. ff_h_mdr_transport_source_entry + S (a) = S ((S (i)) * c)) /\ exists ff_q_mdr_transport_source_entry. b = ff_q_mdr_transport_source_entry * S ((S (i)) * c) + (a))) /\ (exists mdr_gap_transport_source_bound. mdr_gap_transport_source_bound + S (a) = (B)))
  12. specialize hbounded (i)
  13. apply hbounded
  14. exact hi
  15. cases hentry
  16. cases hentry_witness
  17. exists x
  18. split
  19. specialize hprefix (i)
  20. specialize hprefix (x)
  21. apply hprefix
  22. exact hi
  23. exact hentry_witness_left
  24. exact hentry_witness_right
matrix_rank_bounded_prefix_empty · unchanged support, not a new admission
forall b c B. (forall fom_index_mrf_empty_bounded. (exists fom_gap_mrf_empty_bounded_index_bound. fom_gap_mrf_empty_bounded_index_bound + S (fom_index_mrf_empty_bounded) = 0) -> exists fom_value_mrf_empty_bounded. ((((exists fom_beta_height_mrf_empty_bounded_entry. fom_beta_height_mrf_empty_bounded_entry + S (fom_value_mrf_empty_bounded) = S ((S (fom_index_mrf_empty_bounded)) * c)) /\ exists fom_beta_quotient_mrf_empty_bounded_entry. b = fom_beta_quotient_mrf_empty_bounded_entry * S ((S (fom_index_mrf_empty_bounded)) * c) + (fom_value_mrf_empty_bounded))) /\ (exists fom_gap_mrf_empty_bounded_value_bound. fom_gap_mrf_empty_bounded_value_bound + S (fom_value_mrf_empty_bounded) = B)))
  1. intro b
  2. intro c
  3. intro B
  4. intro i
  5. intro hi
  6. exfalso
  7. specialize matrix_rank_no_index_below_zero (i)
  8. apply matrix_rank_no_index_below_zero
  9. exact hi
matrix_rank_bounded_prefix_drop_last · unchanged support, not a new admission
forall b c l B. (forall fom_index_mrf_drop_source. (exists fom_gap_mrf_drop_source_index_bound. fom_gap_mrf_drop_source_index_bound + S (fom_index_mrf_drop_source) = S l) -> exists fom_value_mrf_drop_source. ((((exists fom_beta_height_mrf_drop_source_entry. fom_beta_height_mrf_drop_source_entry + S (fom_value_mrf_drop_source) = S ((S (fom_index_mrf_drop_source)) * c)) /\ exists fom_beta_quotient_mrf_drop_source_entry. b = fom_beta_quotient_mrf_drop_source_entry * S ((S (fom_index_mrf_drop_source)) * c) + (fom_value_mrf_drop_source))) /\ (exists fom_gap_mrf_drop_source_value_bound. fom_gap_mrf_drop_source_value_bound + S (fom_value_mrf_drop_source) = B))) -> (forall fom_index_mrf_drop_result. (exists fom_gap_mrf_drop_result_index_bound. fom_gap_mrf_drop_result_index_bound + S (fom_index_mrf_drop_result) = l) -> exists fom_value_mrf_drop_result. ((((exists fom_beta_height_mrf_drop_result_entry. fom_beta_height_mrf_drop_result_entry + S (fom_value_mrf_drop_result) = S ((S (fom_index_mrf_drop_result)) * c)) /\ exists fom_beta_quotient_mrf_drop_result_entry. b = fom_beta_quotient_mrf_drop_result_entry * S ((S (fom_index_mrf_drop_result)) * c) + (fom_value_mrf_drop_result))) /\ (exists fom_gap_mrf_drop_result_value_bound. fom_gap_mrf_drop_result_value_bound + S (fom_value_mrf_drop_result) = B)))
  1. intro b
  2. intro c
  3. intro l
  4. intro B
  5. intro hbounded
  6. intro i
  7. intro hi
  8. specialize hbounded (i)
  9. apply hbounded
  10. specialize le_succ (S i)
  11. specialize le_succ (l)
  12. apply le_succ
  13. exact hi
matrix_rank_bounded_prefix_extend · unchanged support, not a new admission
forall b c l B a. (forall fom_index_mrf_extend_source. (exists fom_gap_mrf_extend_source_index_bound. fom_gap_mrf_extend_source_index_bound + S (fom_index_mrf_extend_source) = l) -> exists fom_value_mrf_extend_source. ((((exists fom_beta_height_mrf_extend_source_entry. fom_beta_height_mrf_extend_source_entry + S (fom_value_mrf_extend_source) = S ((S (fom_index_mrf_extend_source)) * c)) /\ exists fom_beta_quotient_mrf_extend_source_entry. b = fom_beta_quotient_mrf_extend_source_entry * S ((S (fom_index_mrf_extend_source)) * c) + (fom_value_mrf_extend_source))) /\ (exists fom_gap_mrf_extend_source_value_bound. fom_gap_mrf_extend_source_value_bound + S (fom_value_mrf_extend_source) = B))) -> (((exists ff_h_mdr_extend_entry. ff_h_mdr_extend_entry + S (a) = S ((S (l)) * c)) /\ exists ff_q_mdr_extend_entry. b = ff_q_mdr_extend_entry * S ((S (l)) * c) + (a))) -> (exists mdr_gap_extend_bound. mdr_gap_extend_bound + S (a) = (B)) -> (forall fom_index_mrf_extend_result. (exists fom_gap_mrf_extend_result_index_bound. fom_gap_mrf_extend_result_index_bound + S (fom_index_mrf_extend_result) = S l) -> exists fom_value_mrf_extend_result. ((((exists fom_beta_height_mrf_extend_result_entry. fom_beta_height_mrf_extend_result_entry + S (fom_value_mrf_extend_result) = S ((S (fom_index_mrf_extend_result)) * c)) /\ exists fom_beta_quotient_mrf_extend_result_entry. b = fom_beta_quotient_mrf_extend_result_entry * S ((S (fom_index_mrf_extend_result)) * c) + (fom_value_mrf_extend_result))) /\ (exists fom_gap_mrf_extend_result_value_bound. fom_gap_mrf_extend_result_value_bound + S (fom_value_mrf_extend_result) = B)))
  1. intro b
  2. intro c
  3. intro l
  4. intro B
  5. intro a
  6. intro hbounded
  7. intro ha
  8. intro habound
  9. intro i
  10. intro hi
  11. have hcase : i = l \/ (exists mdr_gap_extend_index. mdr_gap_extend_index + S (i) = (l))
  12. specialize finite_lt_succ_eq_or_lt (l)
  13. specialize finite_lt_succ_eq_or_lt (i)
  14. apply finite_lt_succ_eq_or_lt
  15. exact hi
  16. cases hcase
  17. exists a
  18. split
  19. rewrite hcase_left
  20. rewrite hcase_left
  21. exact ha
  22. exact habound
  23. specialize hbounded (i)
  24. apply hbounded
  25. exact hcase_right
hensel_canonical_residue_exists · unchanged support, not a new admission
forall m a. ~(m = 0) -> exists r. ((exists hpl_gap_bound. hpl_gap_bound + S (r) = (m)) /\ (exists hgcrt_mod_left_hpl_mod hgcrt_mod_right_hpl_mod. a + m * hgcrt_mod_left_hpl_mod = r + m * hgcrt_mod_right_hpl_mod))
  1. intro m
  2. intro a
  3. intro hm
  4. have hdiv : exists q r. a = m * q + r /\ S r <= m
  5. specialize division_remainder_exists m
  6. specialize division_remainder_exists a
  7. apply division_remainder_exists
  8. exact hm
  9. cases hdiv
  10. cases hdiv_witness
  11. cases hdiv_witness_witness
  12. exists x1
  13. split
  14. exact hdiv_witness_witness_right
  15. exists 0
  16. exists x
  17. trans a
  18. simp
  19. trans m * x + x1
  20. exact hdiv_witness_witness_left
  21. apply add_comm
signed_integer_floor_exists · unchanged support, not a new admission
forall xp xn m. ~(m = 0) -> exists qp qn r. (((xp) + (m) * (qn) = ((xn) + (m) * (qp)) + (r) /\ exists sif_gap_pair_total. sif_gap_pair_total + S (r) = (m)))
  1. intro xp
  2. intro xn
  3. intro m
  4. intro hm
  5. have hpred : exists h. m = S h
  6. specialize nonzero_is_succ m
  7. apply nonzero_is_succ
  8. exact hm
  9. cases hpred
  10. have hdiv : exists q r. xp + x * xn = m * q + r /\ (exists k. k + S r = m)
  11. specialize division_remainder_exists m
  12. specialize division_remainder_exists (xp + x * xn)
  13. apply division_remainder_exists
  14. exact hm
  15. cases hdiv
  16. cases hdiv_witness
  17. cases hdiv_witness_witness
  18. exists x1
  19. exists xn
  20. exists x2
  21. split
  22. trans (xp + x * xn) + xn
  23. rewrite hpred_witness
  24. simp [mul_succ_left, add_assoc]
  25. trans (m * x1 + x2) + xn
  26. congr
  27. exact hdiv_witness_witness_left
  28. refl
  29. simp [add_assoc, add_comm]
  30. exact hdiv_witness_witness_right
prime_field_zero_below_prime · unchanged support, not a new admission
forall p. (~((p) = 1) /\ forall pfa_factor_left_zero_domain pfa_factor_right_zero_domain. (p) = pfa_factor_left_zero_domain * pfa_factor_right_zero_domain -> pfa_factor_left_zero_domain = 1 \/ pfa_factor_right_zero_domain = 1) -> (exists pfa_gap_zero_bound. pfa_gap_zero_bound + S (0) = (p))
  1. intro p
  2. intro hp
  3. specialize one_le_of_ne_zero (p)
  4. apply one_le_of_ne_zero
  5. intro hz
  6. specialize prime_nonzero (p)
  7. apply prime_nonzero
  8. exact hp
  9. exact hz
polynomial_zero_extended_entry_exists · unchanged support, not a new admission
forall b c L i. exists a. ((((exists pfa_gap_pad_existsinside. pfa_gap_pad_existsinside + S (i) = (L)) /\ ((((exists ff_h_pfp_pad_existsentry. ff_h_pfp_pad_existsentry + S (a) = S ((S (i)) * c)) /\ exists ff_q_pfp_pad_existsentry. b = ff_q_pfp_pad_existsentry * S ((S (i)) * c) + (a)))))) \/ (((exists pfc_gap_pad_existsoutside. pfc_gap_pad_existsoutside+(L)=(i)) /\ (((a)=0)))))
  1. intro b
  2. intro c
  3. intro L
  4. intro i
  5. have ho : (exists pfc_gap_pad_order_out. pfc_gap_pad_order_out+(L)=(i)) \/ (exists pfa_gap_pad_order_in. pfa_gap_pad_order_in + S (i) = (L))
  6. specialize le_or_lt (L)
  7. specialize le_or_lt (i)
  8. apply le_or_lt
  9. cases ho
  10. exists 0
  11. right
  12. split
  13. exact ho_left
  14. refl
  15. have ha : exists a. (((exists ff_h_pfp_pad_chosen. ff_h_pfp_pad_chosen + S (a) = S ((S (i)) * c)) /\ exists ff_q_pfp_pad_chosen. b = ff_q_pfp_pad_chosen * S ((S (i)) * c) + (a)))
  16. specialize beta_at_exists (b)
  17. specialize beta_at_exists (c)
  18. specialize beta_at_exists (i)
  19. apply beta_at_exists
  20. cases ha
  21. exists x
  22. left
  23. split
  24. exact ho_right
  25. exact ha_witness
polynomial_zero_extended_entry_functional · unchanged support, not a new admission
forall b c L i a d. ((((exists pfa_gap_pad_firstinside. pfa_gap_pad_firstinside + S (i) = (L)) /\ ((((exists ff_h_pfp_pad_firstentry. ff_h_pfp_pad_firstentry + S (a) = S ((S (i)) * c)) /\ exists ff_q_pfp_pad_firstentry. b = ff_q_pfp_pad_firstentry * S ((S (i)) * c) + (a)))))) \/ (((exists pfc_gap_pad_firstoutside. pfc_gap_pad_firstoutside+(L)=(i)) /\ (((a)=0))))) -> ((((exists pfa_gap_pad_secondinside. pfa_gap_pad_secondinside + S (i) = (L)) /\ ((((exists ff_h_pfp_pad_secondentry. ff_h_pfp_pad_secondentry + S (d) = S ((S (i)) * c)) /\ exists ff_q_pfp_pad_secondentry. b = ff_q_pfp_pad_secondentry * S ((S (i)) * c) + (d)))))) \/ (((exists pfc_gap_pad_secondoutside. pfc_gap_pad_secondoutside+(L)=(i)) /\ (((d)=0))))) -> a=d
  1. intro b
  2. intro c
  3. intro L
  4. intro i
  5. intro a
  6. intro d
  7. intro ha
  8. intro hd
  9. cases ha
  10. cases ha_left
  11. cases hd
  12. cases hd_left
  13. specialize beta_at_unique (b)
  14. specialize beta_at_unique (c)
  15. specialize beta_at_unique (i)
  16. specialize beta_at_unique (a)
  17. specialize beta_at_unique (d)
  18. apply beta_at_unique
  19. exact ha_left_right
  20. exact hd_left_right
  21. cases hd_right
  22. exfalso
  23. specialize lt_not_le (i)
  24. specialize lt_not_le (L)
  25. apply lt_not_le
  26. exact ha_left_left
  27. exact hd_right_left
  28. cases ha_right
  29. cases hd
  30. cases hd_left
  31. exfalso
  32. specialize lt_not_le (i)
  33. specialize lt_not_le (L)
  34. apply lt_not_le
  35. exact hd_left_left
  36. exact ha_right_left
  37. cases hd_right
  38. trans 0
  39. exact ha_right_right
  40. symm
  41. exact hd_right_right
prime_field_convolution_prefix_entry · unchanged support, not a new admission
forall p ab ac L bb bc M db dc N i a. (forall pfc_index_entry_source. (exists pfa_gap_entry_sourcebound. pfa_gap_entry_sourcebound + S (pfc_index_entry_source) = (N)) -> exists pfc_value_entry_source. ((((exists ff_h_pfp_entry_sourceentry. ff_h_pfp_entry_sourceentry + S (pfc_value_entry_source) = S ((S (pfc_index_entry_source)) * dc)) /\ exists ff_q_pfp_entry_sourceentry. db = ff_q_pfp_entry_sourceentry * S ((S (pfc_index_entry_source)) * dc) + (pfc_value_entry_source))) /\ ((exists pfc_terms_code_entry_sourcecoefficient pfc_terms_scale_entry_sourcecoefficient pfc_natural_sum_entry_sourcecoefficient. ((forall pfc_index_entry_sourcecoefficientdiagonal. (exists pfa_gap_entry_sourcecoefficientdiagonalbound. pfa_gap_entry_sourcecoefficientdiagonalbound + S (pfc_index_entry_sourcecoefficientdiagonal) = (S (pfc_index_entry_source))) -> exists pfc_value_entry_sourcecoefficientdiagonal. ((((exists ff_h_pfp_entry_sourcecoefficientdiagonalentry. ff_h_pfp_entry_sourcecoefficientdiagonalentry + S (pfc_value_entry_sourcecoefficientdiagonal) = S ((S (pfc_index_entry_sourcecoefficientdiagonal)) * pfc_terms_scale_entry_sourcecoefficient)) /\ exists ff_q_pfp_entry_sourcecoefficientdiagonalentry. pfc_terms_code_entry_sourcecoefficient = ff_q_pfp_entry_sourcecoefficientdiagonalentry * S ((S (pfc_index_entry_sourcecoefficientdiagonal)) * pfc_terms_scale_entry_sourcecoefficient) + (pfc_value_entry_sourcecoefficientdiagonal))) /\ ((exists pfc_complement_entry_sourcecoefficientdiagonalterm pfc_left_entry_sourcecoefficientdiagonalterm pfc_right_entry_sourcecoefficientdiagonalterm. (((pfc_index_entry_sourcecoefficientdiagonal)+pfc_complement_entry_sourcecoefficientdiagonalterm=(pfc_index_entry_source)) /\ ((((((exists pfa_gap_entry_sourcecoefficientdiagonaltermleftinside. pfa_gap_entry_sourcecoefficientdiagonaltermleftinside + S (pfc_index_entry_sourcecoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_entry_sourcecoefficientdiagonaltermleftentry. ff_h_pfp_entry_sourcecoefficientdiagonaltermleftentry + S (pfc_left_entry_sourcecoefficientdiagonalterm) = S ((S (pfc_index_entry_sourcecoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_entry_sourcecoefficientdiagonaltermleftentry. ab = ff_q_pfp_entry_sourcecoefficientdiagonaltermleftentry * S ((S (pfc_index_entry_sourcecoefficientdiagonal)) * ac) + (pfc_left_entry_sourcecoefficientdiagonalterm)))))) \/ (((exists pfc_gap_entry_sourcecoefficientdiagonaltermleftoutside. pfc_gap_entry_sourcecoefficientdiagonaltermleftoutside+(L)=(pfc_index_entry_sourcecoefficientdiagonal)) /\ (((pfc_left_entry_sourcecoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_entry_sourcecoefficientdiagonaltermrightinside. pfa_gap_entry_sourcecoefficientdiagonaltermrightinside + S (pfc_complement_entry_sourcecoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_entry_sourcecoefficientdiagonaltermrightentry. ff_h_pfp_entry_sourcecoefficientdiagonaltermrightentry + S (pfc_right_entry_sourcecoefficientdiagonalterm) = S ((S (pfc_complement_entry_sourcecoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_entry_sourcecoefficientdiagonaltermrightentry. bb = ff_q_pfp_entry_sourcecoefficientdiagonaltermrightentry * S ((S (pfc_complement_entry_sourcecoefficientdiagonalterm)) * bc) + (pfc_right_entry_sourcecoefficientdiagonalterm)))))) \/ (((exists pfc_gap_entry_sourcecoefficientdiagonaltermrightoutside. pfc_gap_entry_sourcecoefficientdiagonaltermrightoutside+(M)=(pfc_complement_entry_sourcecoefficientdiagonalterm)) /\ (((pfc_right_entry_sourcecoefficientdiagonalterm)=0))))) /\ (((pfc_value_entry_sourcecoefficientdiagonal)=pfc_left_entry_sourcecoefficientdiagonalterm*pfc_right_entry_sourcecoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_entry_sourcecoefficientsum fs_v_pfc_entry_sourcecoefficientsum. ((((exists fs_h_pfc_entry_sourcecoefficientsum_body_start. fs_h_pfc_entry_sourcecoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_entry_sourcecoefficientsum)) /\ exists fs_q_pfc_entry_sourcecoefficientsum_body_start. fs_u_pfc_entry_sourcecoefficientsum = fs_q_pfc_entry_sourcecoefficientsum_body_start * S ((S (0)) * fs_v_pfc_entry_sourcecoefficientsum) + (0))) /\ ((((exists fs_h_pfc_entry_sourcecoefficientsum_body_terminal. fs_h_pfc_entry_sourcecoefficientsum_body_terminal + S (pfc_natural_sum_entry_sourcecoefficient) = S ((S (S (pfc_index_entry_source))) * fs_v_pfc_entry_sourcecoefficientsum)) /\ exists fs_q_pfc_entry_sourcecoefficientsum_body_terminal. fs_u_pfc_entry_sourcecoefficientsum = fs_q_pfc_entry_sourcecoefficientsum_body_terminal * S ((S (S (pfc_index_entry_source))) * fs_v_pfc_entry_sourcecoefficientsum) + (pfc_natural_sum_entry_sourcecoefficient))) /\ forall fs_i_pfc_entry_sourcecoefficientsum_body_steps. (exists fs_lt_pfc_entry_sourcecoefficientsum_body_steps_bound. fs_lt_pfc_entry_sourcecoefficientsum_body_steps_bound + S fs_i_pfc_entry_sourcecoefficientsum_body_steps = S (pfc_index_entry_source)) -> exists fs_a_pfc_entry_sourcecoefficientsum_body_steps fs_r_pfc_entry_sourcecoefficientsum_body_steps fs_s_pfc_entry_sourcecoefficientsum_body_steps. ((((exists fs_h_pfc_entry_sourcecoefficientsum_body_steps_summand. fs_h_pfc_entry_sourcecoefficientsum_body_steps_summand + S (fs_a_pfc_entry_sourcecoefficientsum_body_steps) = S ((S (fs_i_pfc_entry_sourcecoefficientsum_body_steps)) * pfc_terms_scale_entry_sourcecoefficient)) /\ exists fs_q_pfc_entry_sourcecoefficientsum_body_steps_summand. pfc_terms_code_entry_sourcecoefficient = fs_q_pfc_entry_sourcecoefficientsum_body_steps_summand * S ((S (fs_i_pfc_entry_sourcecoefficientsum_body_steps)) * pfc_terms_scale_entry_sourcecoefficient) + (fs_a_pfc_entry_sourcecoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_entry_sourcecoefficientsum_body_steps_partial. fs_h_pfc_entry_sourcecoefficientsum_body_steps_partial + S (fs_r_pfc_entry_sourcecoefficientsum_body_steps) = S ((S (fs_i_pfc_entry_sourcecoefficientsum_body_steps)) * fs_v_pfc_entry_sourcecoefficientsum)) /\ exists fs_q_pfc_entry_sourcecoefficientsum_body_steps_partial. fs_u_pfc_entry_sourcecoefficientsum = fs_q_pfc_entry_sourcecoefficientsum_body_steps_partial * S ((S (fs_i_pfc_entry_sourcecoefficientsum_body_steps)) * fs_v_pfc_entry_sourcecoefficientsum) + (fs_r_pfc_entry_sourcecoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_entry_sourcecoefficientsum_body_steps_successor. fs_h_pfc_entry_sourcecoefficientsum_body_steps_successor + S (fs_s_pfc_entry_sourcecoefficientsum_body_steps) = S ((S (S fs_i_pfc_entry_sourcecoefficientsum_body_steps)) * fs_v_pfc_entry_sourcecoefficientsum)) /\ exists fs_q_pfc_entry_sourcecoefficientsum_body_steps_successor. fs_u_pfc_entry_sourcecoefficientsum = fs_q_pfc_entry_sourcecoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_entry_sourcecoefficientsum_body_steps)) * fs_v_pfc_entry_sourcecoefficientsum) + (fs_s_pfc_entry_sourcecoefficientsum_body_steps))) /\ fs_s_pfc_entry_sourcecoefficientsum_body_steps = fs_r_pfc_entry_sourcecoefficientsum_body_steps + fs_a_pfc_entry_sourcecoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_entry_sourcecoefficientresiduebound. pfa_gap_entry_sourcecoefficientresiduebound + S (pfc_value_entry_source) = (p)) /\ ((exists pfa_offset_left_entry_sourcecoefficientresiduecongruence pfa_offset_right_entry_sourcecoefficientresiduecongruence. (pfc_natural_sum_entry_sourcecoefficient) + (p) * pfa_offset_left_entry_sourcecoefficientresiduecongruence = (pfc_value_entry_source) + (p) * pfa_offset_right_entry_sourcecoefficientresiduecongruence)))))))))))) -> (exists pfa_gap_entry_index. pfa_gap_entry_index + S (i) = (N)) -> (((exists ff_h_pfp_entry_given. ff_h_pfp_entry_given + S (a) = S ((S (i)) * dc)) /\ exists ff_q_pfp_entry_given. db = ff_q_pfp_entry_given * S ((S (i)) * dc) + (a))) -> (exists pfc_terms_code_entry_result pfc_terms_scale_entry_result pfc_natural_sum_entry_result. ((forall pfc_index_entry_resultdiagonal. (exists pfa_gap_entry_resultdiagonalbound. pfa_gap_entry_resultdiagonalbound + S (pfc_index_entry_resultdiagonal) = (S (i))) -> exists pfc_value_entry_resultdiagonal. ((((exists ff_h_pfp_entry_resultdiagonalentry. ff_h_pfp_entry_resultdiagonalentry + S (pfc_value_entry_resultdiagonal) = S ((S (pfc_index_entry_resultdiagonal)) * pfc_terms_scale_entry_result)) /\ exists ff_q_pfp_entry_resultdiagonalentry. pfc_terms_code_entry_result = ff_q_pfp_entry_resultdiagonalentry * S ((S (pfc_index_entry_resultdiagonal)) * pfc_terms_scale_entry_result) + (pfc_value_entry_resultdiagonal))) /\ ((exists pfc_complement_entry_resultdiagonalterm pfc_left_entry_resultdiagonalterm pfc_right_entry_resultdiagonalterm. (((pfc_index_entry_resultdiagonal)+pfc_complement_entry_resultdiagonalterm=(i)) /\ ((((((exists pfa_gap_entry_resultdiagonaltermleftinside. pfa_gap_entry_resultdiagonaltermleftinside + S (pfc_index_entry_resultdiagonal) = (L)) /\ ((((exists ff_h_pfp_entry_resultdiagonaltermleftentry. ff_h_pfp_entry_resultdiagonaltermleftentry + S (pfc_left_entry_resultdiagonalterm) = S ((S (pfc_index_entry_resultdiagonal)) * ac)) /\ exists ff_q_pfp_entry_resultdiagonaltermleftentry. ab = ff_q_pfp_entry_resultdiagonaltermleftentry * S ((S (pfc_index_entry_resultdiagonal)) * ac) + (pfc_left_entry_resultdiagonalterm)))))) \/ (((exists pfc_gap_entry_resultdiagonaltermleftoutside. pfc_gap_entry_resultdiagonaltermleftoutside+(L)=(pfc_index_entry_resultdiagonal)) /\ (((pfc_left_entry_resultdiagonalterm)=0))))) /\ ((((((exists pfa_gap_entry_resultdiagonaltermrightinside. pfa_gap_entry_resultdiagonaltermrightinside + S (pfc_complement_entry_resultdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_entry_resultdiagonaltermrightentry. ff_h_pfp_entry_resultdiagonaltermrightentry + S (pfc_right_entry_resultdiagonalterm) = S ((S (pfc_complement_entry_resultdiagonalterm)) * bc)) /\ exists ff_q_pfp_entry_resultdiagonaltermrightentry. bb = ff_q_pfp_entry_resultdiagonaltermrightentry * S ((S (pfc_complement_entry_resultdiagonalterm)) * bc) + (pfc_right_entry_resultdiagonalterm)))))) \/ (((exists pfc_gap_entry_resultdiagonaltermrightoutside. pfc_gap_entry_resultdiagonaltermrightoutside+(M)=(pfc_complement_entry_resultdiagonalterm)) /\ (((pfc_right_entry_resultdiagonalterm)=0))))) /\ (((pfc_value_entry_resultdiagonal)=pfc_left_entry_resultdiagonalterm*pfc_right_entry_resultdiagonalterm))))))))))) /\ (((exists fs_u_pfc_entry_resultsum fs_v_pfc_entry_resultsum. ((((exists fs_h_pfc_entry_resultsum_body_start. fs_h_pfc_entry_resultsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_entry_resultsum)) /\ exists fs_q_pfc_entry_resultsum_body_start. fs_u_pfc_entry_resultsum = fs_q_pfc_entry_resultsum_body_start * S ((S (0)) * fs_v_pfc_entry_resultsum) + (0))) /\ ((((exists fs_h_pfc_entry_resultsum_body_terminal. fs_h_pfc_entry_resultsum_body_terminal + S (pfc_natural_sum_entry_result) = S ((S (S (i))) * fs_v_pfc_entry_resultsum)) /\ exists fs_q_pfc_entry_resultsum_body_terminal. fs_u_pfc_entry_resultsum = fs_q_pfc_entry_resultsum_body_terminal * S ((S (S (i))) * fs_v_pfc_entry_resultsum) + (pfc_natural_sum_entry_result))) /\ forall fs_i_pfc_entry_resultsum_body_steps. (exists fs_lt_pfc_entry_resultsum_body_steps_bound. fs_lt_pfc_entry_resultsum_body_steps_bound + S fs_i_pfc_entry_resultsum_body_steps = S (i)) -> exists fs_a_pfc_entry_resultsum_body_steps fs_r_pfc_entry_resultsum_body_steps fs_s_pfc_entry_resultsum_body_steps. ((((exists fs_h_pfc_entry_resultsum_body_steps_summand. fs_h_pfc_entry_resultsum_body_steps_summand + S (fs_a_pfc_entry_resultsum_body_steps) = S ((S (fs_i_pfc_entry_resultsum_body_steps)) * pfc_terms_scale_entry_result)) /\ exists fs_q_pfc_entry_resultsum_body_steps_summand. pfc_terms_code_entry_result = fs_q_pfc_entry_resultsum_body_steps_summand * S ((S (fs_i_pfc_entry_resultsum_body_steps)) * pfc_terms_scale_entry_result) + (fs_a_pfc_entry_resultsum_body_steps))) /\ ((((exists fs_h_pfc_entry_resultsum_body_steps_partial. fs_h_pfc_entry_resultsum_body_steps_partial + S (fs_r_pfc_entry_resultsum_body_steps) = S ((S (fs_i_pfc_entry_resultsum_body_steps)) * fs_v_pfc_entry_resultsum)) /\ exists fs_q_pfc_entry_resultsum_body_steps_partial. fs_u_pfc_entry_resultsum = fs_q_pfc_entry_resultsum_body_steps_partial * S ((S (fs_i_pfc_entry_resultsum_body_steps)) * fs_v_pfc_entry_resultsum) + (fs_r_pfc_entry_resultsum_body_steps))) /\ ((((exists fs_h_pfc_entry_resultsum_body_steps_successor. fs_h_pfc_entry_resultsum_body_steps_successor + S (fs_s_pfc_entry_resultsum_body_steps) = S ((S (S fs_i_pfc_entry_resultsum_body_steps)) * fs_v_pfc_entry_resultsum)) /\ exists fs_q_pfc_entry_resultsum_body_steps_successor. fs_u_pfc_entry_resultsum = fs_q_pfc_entry_resultsum_body_steps_successor * S ((S (S fs_i_pfc_entry_resultsum_body_steps)) * fs_v_pfc_entry_resultsum) + (fs_s_pfc_entry_resultsum_body_steps))) /\ fs_s_pfc_entry_resultsum_body_steps = fs_r_pfc_entry_resultsum_body_steps + fs_a_pfc_entry_resultsum_body_steps)))))) /\ ((((exists pfa_gap_entry_resultresiduebound. pfa_gap_entry_resultresiduebound + S (a) = (p)) /\ ((exists pfa_offset_left_entry_resultresiduecongruence pfa_offset_right_entry_resultresiduecongruence. (pfc_natural_sum_entry_result) + (p) * pfa_offset_left_entry_resultresiduecongruence = (a) + (p) * pfa_offset_right_entry_resultresiduecongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro db
  9. intro dc
  10. intro N
  11. intro i
  12. intro a
  13. intro h
  14. intro hi
  15. intro ha
  16. have hv : exists t. ((((exists ff_h_pfp_entry_chosen. ff_h_pfp_entry_chosen + S (t) = S ((S (i)) * dc)) /\ exists ff_q_pfp_entry_chosen. db = ff_q_pfp_entry_chosen * S ((S (i)) * dc) + (t))) /\ ((exists pfc_terms_code_entry_chosen_value pfc_terms_scale_entry_chosen_value pfc_natural_sum_entry_chosen_value. ((forall pfc_index_entry_chosen_valuediagonal. (exists pfa_gap_entry_chosen_valuediagonalbound. pfa_gap_entry_chosen_valuediagonalbound + S (pfc_index_entry_chosen_valuediagonal) = (S (i))) -> exists pfc_value_entry_chosen_valuediagonal. ((((exists ff_h_pfp_entry_chosen_valuediagonalentry. ff_h_pfp_entry_chosen_valuediagonalentry + S (pfc_value_entry_chosen_valuediagonal) = S ((S (pfc_index_entry_chosen_valuediagonal)) * pfc_terms_scale_entry_chosen_value)) /\ exists ff_q_pfp_entry_chosen_valuediagonalentry. pfc_terms_code_entry_chosen_value = ff_q_pfp_entry_chosen_valuediagonalentry * S ((S (pfc_index_entry_chosen_valuediagonal)) * pfc_terms_scale_entry_chosen_value) + (pfc_value_entry_chosen_valuediagonal))) /\ ((exists pfc_complement_entry_chosen_valuediagonalterm pfc_left_entry_chosen_valuediagonalterm pfc_right_entry_chosen_valuediagonalterm. (((pfc_index_entry_chosen_valuediagonal)+pfc_complement_entry_chosen_valuediagonalterm=(i)) /\ ((((((exists pfa_gap_entry_chosen_valuediagonaltermleftinside. pfa_gap_entry_chosen_valuediagonaltermleftinside + S (pfc_index_entry_chosen_valuediagonal) = (L)) /\ ((((exists ff_h_pfp_entry_chosen_valuediagonaltermleftentry. ff_h_pfp_entry_chosen_valuediagonaltermleftentry + S (pfc_left_entry_chosen_valuediagonalterm) = S ((S (pfc_index_entry_chosen_valuediagonal)) * ac)) /\ exists ff_q_pfp_entry_chosen_valuediagonaltermleftentry. ab = ff_q_pfp_entry_chosen_valuediagonaltermleftentry * S ((S (pfc_index_entry_chosen_valuediagonal)) * ac) + (pfc_left_entry_chosen_valuediagonalterm)))))) \/ (((exists pfc_gap_entry_chosen_valuediagonaltermleftoutside. pfc_gap_entry_chosen_valuediagonaltermleftoutside+(L)=(pfc_index_entry_chosen_valuediagonal)) /\ (((pfc_left_entry_chosen_valuediagonalterm)=0))))) /\ ((((((exists pfa_gap_entry_chosen_valuediagonaltermrightinside. pfa_gap_entry_chosen_valuediagonaltermrightinside + S (pfc_complement_entry_chosen_valuediagonalterm) = (M)) /\ ((((exists ff_h_pfp_entry_chosen_valuediagonaltermrightentry. ff_h_pfp_entry_chosen_valuediagonaltermrightentry + S (pfc_right_entry_chosen_valuediagonalterm) = S ((S (pfc_complement_entry_chosen_valuediagonalterm)) * bc)) /\ exists ff_q_pfp_entry_chosen_valuediagonaltermrightentry. bb = ff_q_pfp_entry_chosen_valuediagonaltermrightentry * S ((S (pfc_complement_entry_chosen_valuediagonalterm)) * bc) + (pfc_right_entry_chosen_valuediagonalterm)))))) \/ (((exists pfc_gap_entry_chosen_valuediagonaltermrightoutside. pfc_gap_entry_chosen_valuediagonaltermrightoutside+(M)=(pfc_complement_entry_chosen_valuediagonalterm)) /\ (((pfc_right_entry_chosen_valuediagonalterm)=0))))) /\ (((pfc_value_entry_chosen_valuediagonal)=pfc_left_entry_chosen_valuediagonalterm*pfc_right_entry_chosen_valuediagonalterm))))))))))) /\ (((exists fs_u_pfc_entry_chosen_valuesum fs_v_pfc_entry_chosen_valuesum. ((((exists fs_h_pfc_entry_chosen_valuesum_body_start. fs_h_pfc_entry_chosen_valuesum_body_start + S (0) = S ((S (0)) * fs_v_pfc_entry_chosen_valuesum)) /\ exists fs_q_pfc_entry_chosen_valuesum_body_start. fs_u_pfc_entry_chosen_valuesum = fs_q_pfc_entry_chosen_valuesum_body_start * S ((S (0)) * fs_v_pfc_entry_chosen_valuesum) + (0))) /\ ((((exists fs_h_pfc_entry_chosen_valuesum_body_terminal. fs_h_pfc_entry_chosen_valuesum_body_terminal + S (pfc_natural_sum_entry_chosen_value) = S ((S (S (i))) * fs_v_pfc_entry_chosen_valuesum)) /\ exists fs_q_pfc_entry_chosen_valuesum_body_terminal. fs_u_pfc_entry_chosen_valuesum = fs_q_pfc_entry_chosen_valuesum_body_terminal * S ((S (S (i))) * fs_v_pfc_entry_chosen_valuesum) + (pfc_natural_sum_entry_chosen_value))) /\ forall fs_i_pfc_entry_chosen_valuesum_body_steps. (exists fs_lt_pfc_entry_chosen_valuesum_body_steps_bound. fs_lt_pfc_entry_chosen_valuesum_body_steps_bound + S fs_i_pfc_entry_chosen_valuesum_body_steps = S (i)) -> exists fs_a_pfc_entry_chosen_valuesum_body_steps fs_r_pfc_entry_chosen_valuesum_body_steps fs_s_pfc_entry_chosen_valuesum_body_steps. ((((exists fs_h_pfc_entry_chosen_valuesum_body_steps_summand. fs_h_pfc_entry_chosen_valuesum_body_steps_summand + S (fs_a_pfc_entry_chosen_valuesum_body_steps) = S ((S (fs_i_pfc_entry_chosen_valuesum_body_steps)) * pfc_terms_scale_entry_chosen_value)) /\ exists fs_q_pfc_entry_chosen_valuesum_body_steps_summand. pfc_terms_code_entry_chosen_value = fs_q_pfc_entry_chosen_valuesum_body_steps_summand * S ((S (fs_i_pfc_entry_chosen_valuesum_body_steps)) * pfc_terms_scale_entry_chosen_value) + (fs_a_pfc_entry_chosen_valuesum_body_steps))) /\ ((((exists fs_h_pfc_entry_chosen_valuesum_body_steps_partial. fs_h_pfc_entry_chosen_valuesum_body_steps_partial + S (fs_r_pfc_entry_chosen_valuesum_body_steps) = S ((S (fs_i_pfc_entry_chosen_valuesum_body_steps)) * fs_v_pfc_entry_chosen_valuesum)) /\ exists fs_q_pfc_entry_chosen_valuesum_body_steps_partial. fs_u_pfc_entry_chosen_valuesum = fs_q_pfc_entry_chosen_valuesum_body_steps_partial * S ((S (fs_i_pfc_entry_chosen_valuesum_body_steps)) * fs_v_pfc_entry_chosen_valuesum) + (fs_r_pfc_entry_chosen_valuesum_body_steps))) /\ ((((exists fs_h_pfc_entry_chosen_valuesum_body_steps_successor. fs_h_pfc_entry_chosen_valuesum_body_steps_successor + S (fs_s_pfc_entry_chosen_valuesum_body_steps) = S ((S (S fs_i_pfc_entry_chosen_valuesum_body_steps)) * fs_v_pfc_entry_chosen_valuesum)) /\ exists fs_q_pfc_entry_chosen_valuesum_body_steps_successor. fs_u_pfc_entry_chosen_valuesum = fs_q_pfc_entry_chosen_valuesum_body_steps_successor * S ((S (S fs_i_pfc_entry_chosen_valuesum_body_steps)) * fs_v_pfc_entry_chosen_valuesum) + (fs_s_pfc_entry_chosen_valuesum_body_steps))) /\ fs_s_pfc_entry_chosen_valuesum_body_steps = fs_r_pfc_entry_chosen_valuesum_body_steps + fs_a_pfc_entry_chosen_valuesum_body_steps)))))) /\ ((((exists pfa_gap_entry_chosen_valueresiduebound. pfa_gap_entry_chosen_valueresiduebound + S (t) = (p)) /\ ((exists pfa_offset_left_entry_chosen_valueresiduecongruence pfa_offset_right_entry_chosen_valueresiduecongruence. (pfc_natural_sum_entry_chosen_value) + (p) * pfa_offset_left_entry_chosen_valueresiduecongruence = (t) + (p) * pfa_offset_right_entry_chosen_valueresiduecongruence)))))))))))
  17. specialize h (i)
  18. apply h
  19. exact hi
  20. cases hv
  21. cases hv_witness
  22. have heq : x=a
  23. specialize beta_at_unique (db)
  24. specialize beta_at_unique (dc)
  25. specialize beta_at_unique (i)
  26. specialize beta_at_unique (x)
  27. specialize beta_at_unique (a)
  28. apply beta_at_unique
  29. exact hv_witness_left
  30. exact ha
  31. rewrite heq at hv_witness_right
  32. rewrite heq at hv_witness_right
  33. exact hv_witness_right
polynomial_diagonal_term_functional · unchanged support, not a new admission
forall ab ac L bb bc M i j t s. (exists pfc_complement_term_unique_first pfc_left_term_unique_first pfc_right_term_unique_first. (((j)+pfc_complement_term_unique_first=(i)) /\ ((((((exists pfa_gap_term_unique_firstleftinside. pfa_gap_term_unique_firstleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_unique_firstleftentry. ff_h_pfp_term_unique_firstleftentry + S (pfc_left_term_unique_first) = S ((S (j)) * ac)) /\ exists ff_q_pfp_term_unique_firstleftentry. ab = ff_q_pfp_term_unique_firstleftentry * S ((S (j)) * ac) + (pfc_left_term_unique_first)))))) \/ (((exists pfc_gap_term_unique_firstleftoutside. pfc_gap_term_unique_firstleftoutside+(L)=(j)) /\ (((pfc_left_term_unique_first)=0))))) /\ ((((((exists pfa_gap_term_unique_firstrightinside. pfa_gap_term_unique_firstrightinside + S (pfc_complement_term_unique_first) = (M)) /\ ((((exists ff_h_pfp_term_unique_firstrightentry. ff_h_pfp_term_unique_firstrightentry + S (pfc_right_term_unique_first) = S ((S (pfc_complement_term_unique_first)) * bc)) /\ exists ff_q_pfp_term_unique_firstrightentry. bb = ff_q_pfp_term_unique_firstrightentry * S ((S (pfc_complement_term_unique_first)) * bc) + (pfc_right_term_unique_first)))))) \/ (((exists pfc_gap_term_unique_firstrightoutside. pfc_gap_term_unique_firstrightoutside+(M)=(pfc_complement_term_unique_first)) /\ (((pfc_right_term_unique_first)=0))))) /\ (((t)=pfc_left_term_unique_first*pfc_right_term_unique_first)))))))) -> (exists pfc_complement_term_unique_second pfc_left_term_unique_second pfc_right_term_unique_second. (((j)+pfc_complement_term_unique_second=(i)) /\ ((((((exists pfa_gap_term_unique_secondleftinside. pfa_gap_term_unique_secondleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_unique_secondleftentry. ff_h_pfp_term_unique_secondleftentry + S (pfc_left_term_unique_second) = S ((S (j)) * ac)) /\ exists ff_q_pfp_term_unique_secondleftentry. ab = ff_q_pfp_term_unique_secondleftentry * S ((S (j)) * ac) + (pfc_left_term_unique_second)))))) \/ (((exists pfc_gap_term_unique_secondleftoutside. pfc_gap_term_unique_secondleftoutside+(L)=(j)) /\ (((pfc_left_term_unique_second)=0))))) /\ ((((((exists pfa_gap_term_unique_secondrightinside. pfa_gap_term_unique_secondrightinside + S (pfc_complement_term_unique_second) = (M)) /\ ((((exists ff_h_pfp_term_unique_secondrightentry. ff_h_pfp_term_unique_secondrightentry + S (pfc_right_term_unique_second) = S ((S (pfc_complement_term_unique_second)) * bc)) /\ exists ff_q_pfp_term_unique_secondrightentry. bb = ff_q_pfp_term_unique_secondrightentry * S ((S (pfc_complement_term_unique_second)) * bc) + (pfc_right_term_unique_second)))))) \/ (((exists pfc_gap_term_unique_secondrightoutside. pfc_gap_term_unique_secondrightoutside+(M)=(pfc_complement_term_unique_second)) /\ (((pfc_right_term_unique_second)=0))))) /\ (((s)=pfc_left_term_unique_second*pfc_right_term_unique_second)))))))) -> t=s
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro i
  8. intro j
  9. intro t
  10. intro s
  11. intro ht
  12. intro hs
  13. cases ht
  14. cases ht_witness
  15. cases ht_witness_witness
  16. cases ht_witness_witness_witness
  17. cases ht_witness_witness_witness_right
  18. cases ht_witness_witness_witness_right_right
  19. cases hs
  20. cases hs_witness
  21. cases hs_witness_witness
  22. cases hs_witness_witness_witness
  23. cases hs_witness_witness_witness_right
  24. cases hs_witness_witness_witness_right_right
  25. have hk : x=x3
  26. specialize add_left_cancel (j)
  27. specialize add_left_cancel (x)
  28. specialize add_left_cancel (x3)
  29. apply add_left_cancel
  30. trans i
  31. exact ht_witness_witness_witness_left
  32. symm
  33. exact hs_witness_witness_witness_left
  34. rewrite hk at ht_witness_witness_witness_right_right_left
  35. rewrite hk at ht_witness_witness_witness_right_right_left
  36. rewrite hk at ht_witness_witness_witness_right_right_left
  37. rewrite hk at ht_witness_witness_witness_right_right_left
  38. have ha : x1=x4
  39. specialize polynomial_zero_extended_entry_functional (ab)
  40. specialize polynomial_zero_extended_entry_functional (ac)
  41. specialize polynomial_zero_extended_entry_functional (L)
  42. specialize polynomial_zero_extended_entry_functional (j)
  43. specialize polynomial_zero_extended_entry_functional (x1)
  44. specialize polynomial_zero_extended_entry_functional (x4)
  45. apply polynomial_zero_extended_entry_functional
  46. exact ht_witness_witness_witness_right_left
  47. exact hs_witness_witness_witness_right_left
  48. have hb : x2=x5
  49. specialize polynomial_zero_extended_entry_functional (bb)
  50. specialize polynomial_zero_extended_entry_functional (bc)
  51. specialize polynomial_zero_extended_entry_functional (M)
  52. specialize polynomial_zero_extended_entry_functional (x3)
  53. specialize polynomial_zero_extended_entry_functional (x2)
  54. specialize polynomial_zero_extended_entry_functional (x5)
  55. apply polynomial_zero_extended_entry_functional
  56. exact ht_witness_witness_witness_right_right_left
  57. exact hs_witness_witness_witness_right_right_left
  58. trans x1*x2
  59. exact ht_witness_witness_witness_right_right_right
  60. trans x4*x5
  61. congr
  62. exact ha
  63. exact hb
  64. symm
  65. exact hs_witness_witness_witness_right_right_right
polynomial_diagonal_prefix_entry · unchanged support, not a new admission
forall ab ac L bb bc M I db dc N i a. (forall pfc_index_entry_source. (exists pfa_gap_entry_sourcebound. pfa_gap_entry_sourcebound + S (pfc_index_entry_source) = (N)) -> exists pfc_value_entry_source. ((((exists ff_h_pfp_entry_sourceentry. ff_h_pfp_entry_sourceentry + S (pfc_value_entry_source) = S ((S (pfc_index_entry_source)) * dc)) /\ exists ff_q_pfp_entry_sourceentry. db = ff_q_pfp_entry_sourceentry * S ((S (pfc_index_entry_source)) * dc) + (pfc_value_entry_source))) /\ ((exists pfc_complement_entry_sourceterm pfc_left_entry_sourceterm pfc_right_entry_sourceterm. (((pfc_index_entry_source)+pfc_complement_entry_sourceterm=(I)) /\ ((((((exists pfa_gap_entry_sourcetermleftinside. pfa_gap_entry_sourcetermleftinside + S (pfc_index_entry_source) = (L)) /\ ((((exists ff_h_pfp_entry_sourcetermleftentry. ff_h_pfp_entry_sourcetermleftentry + S (pfc_left_entry_sourceterm) = S ((S (pfc_index_entry_source)) * ac)) /\ exists ff_q_pfp_entry_sourcetermleftentry. ab = ff_q_pfp_entry_sourcetermleftentry * S ((S (pfc_index_entry_source)) * ac) + (pfc_left_entry_sourceterm)))))) \/ (((exists pfc_gap_entry_sourcetermleftoutside. pfc_gap_entry_sourcetermleftoutside+(L)=(pfc_index_entry_source)) /\ (((pfc_left_entry_sourceterm)=0))))) /\ ((((((exists pfa_gap_entry_sourcetermrightinside. pfa_gap_entry_sourcetermrightinside + S (pfc_complement_entry_sourceterm) = (M)) /\ ((((exists ff_h_pfp_entry_sourcetermrightentry. ff_h_pfp_entry_sourcetermrightentry + S (pfc_right_entry_sourceterm) = S ((S (pfc_complement_entry_sourceterm)) * bc)) /\ exists ff_q_pfp_entry_sourcetermrightentry. bb = ff_q_pfp_entry_sourcetermrightentry * S ((S (pfc_complement_entry_sourceterm)) * bc) + (pfc_right_entry_sourceterm)))))) \/ (((exists pfc_gap_entry_sourcetermrightoutside. pfc_gap_entry_sourcetermrightoutside+(M)=(pfc_complement_entry_sourceterm)) /\ (((pfc_right_entry_sourceterm)=0))))) /\ (((pfc_value_entry_source)=pfc_left_entry_sourceterm*pfc_right_entry_sourceterm))))))))))) -> (exists pfa_gap_entry_index. pfa_gap_entry_index + S (i) = (N)) -> (((exists ff_h_pfp_entry_given. ff_h_pfp_entry_given + S (a) = S ((S (i)) * dc)) /\ exists ff_q_pfp_entry_given. db = ff_q_pfp_entry_given * S ((S (i)) * dc) + (a))) -> (exists pfc_complement_entry_result pfc_left_entry_result pfc_right_entry_result. (((i)+pfc_complement_entry_result=(I)) /\ ((((((exists pfa_gap_entry_resultleftinside. pfa_gap_entry_resultleftinside + S (i) = (L)) /\ ((((exists ff_h_pfp_entry_resultleftentry. ff_h_pfp_entry_resultleftentry + S (pfc_left_entry_result) = S ((S (i)) * ac)) /\ exists ff_q_pfp_entry_resultleftentry. ab = ff_q_pfp_entry_resultleftentry * S ((S (i)) * ac) + (pfc_left_entry_result)))))) \/ (((exists pfc_gap_entry_resultleftoutside. pfc_gap_entry_resultleftoutside+(L)=(i)) /\ (((pfc_left_entry_result)=0))))) /\ ((((((exists pfa_gap_entry_resultrightinside. pfa_gap_entry_resultrightinside + S (pfc_complement_entry_result) = (M)) /\ ((((exists ff_h_pfp_entry_resultrightentry. ff_h_pfp_entry_resultrightentry + S (pfc_right_entry_result) = S ((S (pfc_complement_entry_result)) * bc)) /\ exists ff_q_pfp_entry_resultrightentry. bb = ff_q_pfp_entry_resultrightentry * S ((S (pfc_complement_entry_result)) * bc) + (pfc_right_entry_result)))))) \/ (((exists pfc_gap_entry_resultrightoutside. pfc_gap_entry_resultrightoutside+(M)=(pfc_complement_entry_result)) /\ (((pfc_right_entry_result)=0))))) /\ (((a)=pfc_left_entry_result*pfc_right_entry_result))))))))
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro I
  8. intro db
  9. intro dc
  10. intro N
  11. intro i
  12. intro a
  13. intro h
  14. intro hi
  15. intro ha
  16. have hv : exists t. ((((exists ff_h_pfp_entry_chosen. ff_h_pfp_entry_chosen + S (t) = S ((S (i)) * dc)) /\ exists ff_q_pfp_entry_chosen. db = ff_q_pfp_entry_chosen * S ((S (i)) * dc) + (t))) /\ ((exists pfc_complement_entry_chosen_value pfc_left_entry_chosen_value pfc_right_entry_chosen_value. (((i)+pfc_complement_entry_chosen_value=(I)) /\ ((((((exists pfa_gap_entry_chosen_valueleftinside. pfa_gap_entry_chosen_valueleftinside + S (i) = (L)) /\ ((((exists ff_h_pfp_entry_chosen_valueleftentry. ff_h_pfp_entry_chosen_valueleftentry + S (pfc_left_entry_chosen_value) = S ((S (i)) * ac)) /\ exists ff_q_pfp_entry_chosen_valueleftentry. ab = ff_q_pfp_entry_chosen_valueleftentry * S ((S (i)) * ac) + (pfc_left_entry_chosen_value)))))) \/ (((exists pfc_gap_entry_chosen_valueleftoutside. pfc_gap_entry_chosen_valueleftoutside+(L)=(i)) /\ (((pfc_left_entry_chosen_value)=0))))) /\ ((((((exists pfa_gap_entry_chosen_valuerightinside. pfa_gap_entry_chosen_valuerightinside + S (pfc_complement_entry_chosen_value) = (M)) /\ ((((exists ff_h_pfp_entry_chosen_valuerightentry. ff_h_pfp_entry_chosen_valuerightentry + S (pfc_right_entry_chosen_value) = S ((S (pfc_complement_entry_chosen_value)) * bc)) /\ exists ff_q_pfp_entry_chosen_valuerightentry. bb = ff_q_pfp_entry_chosen_valuerightentry * S ((S (pfc_complement_entry_chosen_value)) * bc) + (pfc_right_entry_chosen_value)))))) \/ (((exists pfc_gap_entry_chosen_valuerightoutside. pfc_gap_entry_chosen_valuerightoutside+(M)=(pfc_complement_entry_chosen_value)) /\ (((pfc_right_entry_chosen_value)=0))))) /\ (((t)=pfc_left_entry_chosen_value*pfc_right_entry_chosen_value))))))))))
  17. specialize h (i)
  18. apply h
  19. exact hi
  20. cases hv
  21. cases hv_witness
  22. have heq : x=a
  23. specialize beta_at_unique (db)
  24. specialize beta_at_unique (dc)
  25. specialize beta_at_unique (i)
  26. specialize beta_at_unique (x)
  27. specialize beta_at_unique (a)
  28. apply beta_at_unique
  29. exact hv_witness_left
  30. exact ha
  31. rewrite heq at hv_witness_right
  32. exact hv_witness_right
polynomial_diagonal_prefix_functional · unchanged support, not a new admission
forall ab ac L bb bc M I db dc eb ec N. (forall pfc_index_prefix_unique_first. (exists pfa_gap_prefix_unique_firstbound. pfa_gap_prefix_unique_firstbound + S (pfc_index_prefix_unique_first) = (N)) -> exists pfc_value_prefix_unique_first. ((((exists ff_h_pfp_prefix_unique_firstentry. ff_h_pfp_prefix_unique_firstentry + S (pfc_value_prefix_unique_first) = S ((S (pfc_index_prefix_unique_first)) * dc)) /\ exists ff_q_pfp_prefix_unique_firstentry. db = ff_q_pfp_prefix_unique_firstentry * S ((S (pfc_index_prefix_unique_first)) * dc) + (pfc_value_prefix_unique_first))) /\ ((exists pfc_complement_prefix_unique_firstterm pfc_left_prefix_unique_firstterm pfc_right_prefix_unique_firstterm. (((pfc_index_prefix_unique_first)+pfc_complement_prefix_unique_firstterm=(I)) /\ ((((((exists pfa_gap_prefix_unique_firsttermleftinside. pfa_gap_prefix_unique_firsttermleftinside + S (pfc_index_prefix_unique_first) = (L)) /\ ((((exists ff_h_pfp_prefix_unique_firsttermleftentry. ff_h_pfp_prefix_unique_firsttermleftentry + S (pfc_left_prefix_unique_firstterm) = S ((S (pfc_index_prefix_unique_first)) * ac)) /\ exists ff_q_pfp_prefix_unique_firsttermleftentry. ab = ff_q_pfp_prefix_unique_firsttermleftentry * S ((S (pfc_index_prefix_unique_first)) * ac) + (pfc_left_prefix_unique_firstterm)))))) \/ (((exists pfc_gap_prefix_unique_firsttermleftoutside. pfc_gap_prefix_unique_firsttermleftoutside+(L)=(pfc_index_prefix_unique_first)) /\ (((pfc_left_prefix_unique_firstterm)=0))))) /\ ((((((exists pfa_gap_prefix_unique_firsttermrightinside. pfa_gap_prefix_unique_firsttermrightinside + S (pfc_complement_prefix_unique_firstterm) = (M)) /\ ((((exists ff_h_pfp_prefix_unique_firsttermrightentry. ff_h_pfp_prefix_unique_firsttermrightentry + S (pfc_right_prefix_unique_firstterm) = S ((S (pfc_complement_prefix_unique_firstterm)) * bc)) /\ exists ff_q_pfp_prefix_unique_firsttermrightentry. bb = ff_q_pfp_prefix_unique_firsttermrightentry * S ((S (pfc_complement_prefix_unique_firstterm)) * bc) + (pfc_right_prefix_unique_firstterm)))))) \/ (((exists pfc_gap_prefix_unique_firsttermrightoutside. pfc_gap_prefix_unique_firsttermrightoutside+(M)=(pfc_complement_prefix_unique_firstterm)) /\ (((pfc_right_prefix_unique_firstterm)=0))))) /\ (((pfc_value_prefix_unique_first)=pfc_left_prefix_unique_firstterm*pfc_right_prefix_unique_firstterm))))))))))) -> (forall pfc_index_prefix_unique_second. (exists pfa_gap_prefix_unique_secondbound. pfa_gap_prefix_unique_secondbound + S (pfc_index_prefix_unique_second) = (N)) -> exists pfc_value_prefix_unique_second. ((((exists ff_h_pfp_prefix_unique_secondentry. ff_h_pfp_prefix_unique_secondentry + S (pfc_value_prefix_unique_second) = S ((S (pfc_index_prefix_unique_second)) * ec)) /\ exists ff_q_pfp_prefix_unique_secondentry. eb = ff_q_pfp_prefix_unique_secondentry * S ((S (pfc_index_prefix_unique_second)) * ec) + (pfc_value_prefix_unique_second))) /\ ((exists pfc_complement_prefix_unique_secondterm pfc_left_prefix_unique_secondterm pfc_right_prefix_unique_secondterm. (((pfc_index_prefix_unique_second)+pfc_complement_prefix_unique_secondterm=(I)) /\ ((((((exists pfa_gap_prefix_unique_secondtermleftinside. pfa_gap_prefix_unique_secondtermleftinside + S (pfc_index_prefix_unique_second) = (L)) /\ ((((exists ff_h_pfp_prefix_unique_secondtermleftentry. ff_h_pfp_prefix_unique_secondtermleftentry + S (pfc_left_prefix_unique_secondterm) = S ((S (pfc_index_prefix_unique_second)) * ac)) /\ exists ff_q_pfp_prefix_unique_secondtermleftentry. ab = ff_q_pfp_prefix_unique_secondtermleftentry * S ((S (pfc_index_prefix_unique_second)) * ac) + (pfc_left_prefix_unique_secondterm)))))) \/ (((exists pfc_gap_prefix_unique_secondtermleftoutside. pfc_gap_prefix_unique_secondtermleftoutside+(L)=(pfc_index_prefix_unique_second)) /\ (((pfc_left_prefix_unique_secondterm)=0))))) /\ ((((((exists pfa_gap_prefix_unique_secondtermrightinside. pfa_gap_prefix_unique_secondtermrightinside + S (pfc_complement_prefix_unique_secondterm) = (M)) /\ ((((exists ff_h_pfp_prefix_unique_secondtermrightentry. ff_h_pfp_prefix_unique_secondtermrightentry + S (pfc_right_prefix_unique_secondterm) = S ((S (pfc_complement_prefix_unique_secondterm)) * bc)) /\ exists ff_q_pfp_prefix_unique_secondtermrightentry. bb = ff_q_pfp_prefix_unique_secondtermrightentry * S ((S (pfc_complement_prefix_unique_secondterm)) * bc) + (pfc_right_prefix_unique_secondterm)))))) \/ (((exists pfc_gap_prefix_unique_secondtermrightoutside. pfc_gap_prefix_unique_secondtermrightoutside+(M)=(pfc_complement_prefix_unique_secondterm)) /\ (((pfc_right_prefix_unique_secondterm)=0))))) /\ (((pfc_value_prefix_unique_second)=pfc_left_prefix_unique_secondterm*pfc_right_prefix_unique_secondterm))))))))))) -> (forall mdr_i_pfp_prefix_unique_result mdr_a_pfp_prefix_unique_result. (exists mdr_gap_pfp_prefix_unique_resultb. mdr_gap_pfp_prefix_unique_resultb + S (mdr_i_pfp_prefix_unique_result) = (N)) -> (((exists ff_h_mdr_pfp_prefix_unique_resulto. ff_h_mdr_pfp_prefix_unique_resulto + S (mdr_a_pfp_prefix_unique_result) = S ((S (mdr_i_pfp_prefix_unique_result)) * dc)) /\ exists ff_q_mdr_pfp_prefix_unique_resulto. db = ff_q_mdr_pfp_prefix_unique_resulto * S ((S (mdr_i_pfp_prefix_unique_result)) * dc) + (mdr_a_pfp_prefix_unique_result))) -> (((exists ff_h_mdr_pfp_prefix_unique_resultn. ff_h_mdr_pfp_prefix_unique_resultn + S (mdr_a_pfp_prefix_unique_result) = S ((S (mdr_i_pfp_prefix_unique_result)) * ec)) /\ exists ff_q_mdr_pfp_prefix_unique_resultn. eb = ff_q_mdr_pfp_prefix_unique_resultn * S ((S (mdr_i_pfp_prefix_unique_result)) * ec) + (mdr_a_pfp_prefix_unique_result))))
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro I
  8. intro db
  9. intro dc
  10. intro eb
  11. intro ec
  12. intro N
  13. intro hd
  14. intro he
  15. intro i
  16. intro a
  17. intro hi
  18. intro ha
  19. have hb : exists b. (((exists ff_h_pfp_prefix_unique_other. ff_h_pfp_prefix_unique_other + S (b) = S ((S (i)) * ec)) /\ exists ff_q_pfp_prefix_unique_other. eb = ff_q_pfp_prefix_unique_other * S ((S (i)) * ec) + (b)))
  20. specialize beta_at_exists (eb)
  21. specialize beta_at_exists (ec)
  22. specialize beta_at_exists (i)
  23. apply beta_at_exists
  24. cases hb
  25. have heq : a=x
  26. specialize polynomial_diagonal_term_functional (ab)
  27. specialize polynomial_diagonal_term_functional (ac)
  28. specialize polynomial_diagonal_term_functional (L)
  29. specialize polynomial_diagonal_term_functional (bb)
  30. specialize polynomial_diagonal_term_functional (bc)
  31. specialize polynomial_diagonal_term_functional (M)
  32. specialize polynomial_diagonal_term_functional (I)
  33. specialize polynomial_diagonal_term_functional (i)
  34. specialize polynomial_diagonal_term_functional (a)
  35. specialize polynomial_diagonal_term_functional (x)
  36. apply polynomial_diagonal_term_functional
  37. specialize polynomial_diagonal_prefix_entry (ab)
  38. specialize polynomial_diagonal_prefix_entry (ac)
  39. specialize polynomial_diagonal_prefix_entry (L)
  40. specialize polynomial_diagonal_prefix_entry (bb)
  41. specialize polynomial_diagonal_prefix_entry (bc)
  42. specialize polynomial_diagonal_prefix_entry (M)
  43. specialize polynomial_diagonal_prefix_entry (I)
  44. specialize polynomial_diagonal_prefix_entry (db)
  45. specialize polynomial_diagonal_prefix_entry (dc)
  46. specialize polynomial_diagonal_prefix_entry (N)
  47. specialize polynomial_diagonal_prefix_entry (i)
  48. specialize polynomial_diagonal_prefix_entry (a)
  49. apply polynomial_diagonal_prefix_entry
  50. exact hd
  51. exact hi
  52. exact ha
  53. specialize polynomial_diagonal_prefix_entry (ab)
  54. specialize polynomial_diagonal_prefix_entry (ac)
  55. specialize polynomial_diagonal_prefix_entry (L)
  56. specialize polynomial_diagonal_prefix_entry (bb)
  57. specialize polynomial_diagonal_prefix_entry (bc)
  58. specialize polynomial_diagonal_prefix_entry (M)
  59. specialize polynomial_diagonal_prefix_entry (I)
  60. specialize polynomial_diagonal_prefix_entry (eb)
  61. specialize polynomial_diagonal_prefix_entry (ec)
  62. specialize polynomial_diagonal_prefix_entry (N)
  63. specialize polynomial_diagonal_prefix_entry (i)
  64. specialize polynomial_diagonal_prefix_entry (x)
  65. apply polynomial_diagonal_prefix_entry
  66. exact he
  67. exact hi
  68. exact hb_witness
  69. rewrite heq
  70. rewrite heq
  71. exact hb_witness
prime_field_convolution_coefficient_functional · unchanged support, not a new admission
forall p ab ac L bb bc M i r s. (exists pfc_terms_code_coefficient_first pfc_terms_scale_coefficient_first pfc_natural_sum_coefficient_first. ((forall pfc_index_coefficient_firstdiagonal. (exists pfa_gap_coefficient_firstdiagonalbound. pfa_gap_coefficient_firstdiagonalbound + S (pfc_index_coefficient_firstdiagonal) = (S (i))) -> exists pfc_value_coefficient_firstdiagonal. ((((exists ff_h_pfp_coefficient_firstdiagonalentry. ff_h_pfp_coefficient_firstdiagonalentry + S (pfc_value_coefficient_firstdiagonal) = S ((S (pfc_index_coefficient_firstdiagonal)) * pfc_terms_scale_coefficient_first)) /\ exists ff_q_pfp_coefficient_firstdiagonalentry. pfc_terms_code_coefficient_first = ff_q_pfp_coefficient_firstdiagonalentry * S ((S (pfc_index_coefficient_firstdiagonal)) * pfc_terms_scale_coefficient_first) + (pfc_value_coefficient_firstdiagonal))) /\ ((exists pfc_complement_coefficient_firstdiagonalterm pfc_left_coefficient_firstdiagonalterm pfc_right_coefficient_firstdiagonalterm. (((pfc_index_coefficient_firstdiagonal)+pfc_complement_coefficient_firstdiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_firstdiagonaltermleftinside. pfa_gap_coefficient_firstdiagonaltermleftinside + S (pfc_index_coefficient_firstdiagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_firstdiagonaltermleftentry. ff_h_pfp_coefficient_firstdiagonaltermleftentry + S (pfc_left_coefficient_firstdiagonalterm) = S ((S (pfc_index_coefficient_firstdiagonal)) * ac)) /\ exists ff_q_pfp_coefficient_firstdiagonaltermleftentry. ab = ff_q_pfp_coefficient_firstdiagonaltermleftentry * S ((S (pfc_index_coefficient_firstdiagonal)) * ac) + (pfc_left_coefficient_firstdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_firstdiagonaltermleftoutside. pfc_gap_coefficient_firstdiagonaltermleftoutside+(L)=(pfc_index_coefficient_firstdiagonal)) /\ (((pfc_left_coefficient_firstdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_firstdiagonaltermrightinside. pfa_gap_coefficient_firstdiagonaltermrightinside + S (pfc_complement_coefficient_firstdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_firstdiagonaltermrightentry. ff_h_pfp_coefficient_firstdiagonaltermrightentry + S (pfc_right_coefficient_firstdiagonalterm) = S ((S (pfc_complement_coefficient_firstdiagonalterm)) * bc)) /\ exists ff_q_pfp_coefficient_firstdiagonaltermrightentry. bb = ff_q_pfp_coefficient_firstdiagonaltermrightentry * S ((S (pfc_complement_coefficient_firstdiagonalterm)) * bc) + (pfc_right_coefficient_firstdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_firstdiagonaltermrightoutside. pfc_gap_coefficient_firstdiagonaltermrightoutside+(M)=(pfc_complement_coefficient_firstdiagonalterm)) /\ (((pfc_right_coefficient_firstdiagonalterm)=0))))) /\ (((pfc_value_coefficient_firstdiagonal)=pfc_left_coefficient_firstdiagonalterm*pfc_right_coefficient_firstdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_firstsum fs_v_pfc_coefficient_firstsum. ((((exists fs_h_pfc_coefficient_firstsum_body_start. fs_h_pfc_coefficient_firstsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_firstsum)) /\ exists fs_q_pfc_coefficient_firstsum_body_start. fs_u_pfc_coefficient_firstsum = fs_q_pfc_coefficient_firstsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_firstsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_firstsum_body_terminal. fs_h_pfc_coefficient_firstsum_body_terminal + S (pfc_natural_sum_coefficient_first) = S ((S (S (i))) * fs_v_pfc_coefficient_firstsum)) /\ exists fs_q_pfc_coefficient_firstsum_body_terminal. fs_u_pfc_coefficient_firstsum = fs_q_pfc_coefficient_firstsum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_firstsum) + (pfc_natural_sum_coefficient_first))) /\ forall fs_i_pfc_coefficient_firstsum_body_steps. (exists fs_lt_pfc_coefficient_firstsum_body_steps_bound. fs_lt_pfc_coefficient_firstsum_body_steps_bound + S fs_i_pfc_coefficient_firstsum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_firstsum_body_steps fs_r_pfc_coefficient_firstsum_body_steps fs_s_pfc_coefficient_firstsum_body_steps. ((((exists fs_h_pfc_coefficient_firstsum_body_steps_summand. fs_h_pfc_coefficient_firstsum_body_steps_summand + S (fs_a_pfc_coefficient_firstsum_body_steps) = S ((S (fs_i_pfc_coefficient_firstsum_body_steps)) * pfc_terms_scale_coefficient_first)) /\ exists fs_q_pfc_coefficient_firstsum_body_steps_summand. pfc_terms_code_coefficient_first = fs_q_pfc_coefficient_firstsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_firstsum_body_steps)) * pfc_terms_scale_coefficient_first) + (fs_a_pfc_coefficient_firstsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_firstsum_body_steps_partial. fs_h_pfc_coefficient_firstsum_body_steps_partial + S (fs_r_pfc_coefficient_firstsum_body_steps) = S ((S (fs_i_pfc_coefficient_firstsum_body_steps)) * fs_v_pfc_coefficient_firstsum)) /\ exists fs_q_pfc_coefficient_firstsum_body_steps_partial. fs_u_pfc_coefficient_firstsum = fs_q_pfc_coefficient_firstsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_firstsum_body_steps)) * fs_v_pfc_coefficient_firstsum) + (fs_r_pfc_coefficient_firstsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_firstsum_body_steps_successor. fs_h_pfc_coefficient_firstsum_body_steps_successor + S (fs_s_pfc_coefficient_firstsum_body_steps) = S ((S (S fs_i_pfc_coefficient_firstsum_body_steps)) * fs_v_pfc_coefficient_firstsum)) /\ exists fs_q_pfc_coefficient_firstsum_body_steps_successor. fs_u_pfc_coefficient_firstsum = fs_q_pfc_coefficient_firstsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_firstsum_body_steps)) * fs_v_pfc_coefficient_firstsum) + (fs_s_pfc_coefficient_firstsum_body_steps))) /\ fs_s_pfc_coefficient_firstsum_body_steps = fs_r_pfc_coefficient_firstsum_body_steps + fs_a_pfc_coefficient_firstsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_firstresiduebound. pfa_gap_coefficient_firstresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_coefficient_firstresiduecongruence pfa_offset_right_coefficient_firstresiduecongruence. (pfc_natural_sum_coefficient_first) + (p) * pfa_offset_left_coefficient_firstresiduecongruence = (r) + (p) * pfa_offset_right_coefficient_firstresiduecongruence))))))))) -> (exists pfc_terms_code_coefficient_second pfc_terms_scale_coefficient_second pfc_natural_sum_coefficient_second. ((forall pfc_index_coefficient_seconddiagonal. (exists pfa_gap_coefficient_seconddiagonalbound. pfa_gap_coefficient_seconddiagonalbound + S (pfc_index_coefficient_seconddiagonal) = (S (i))) -> exists pfc_value_coefficient_seconddiagonal. ((((exists ff_h_pfp_coefficient_seconddiagonalentry. ff_h_pfp_coefficient_seconddiagonalentry + S (pfc_value_coefficient_seconddiagonal) = S ((S (pfc_index_coefficient_seconddiagonal)) * pfc_terms_scale_coefficient_second)) /\ exists ff_q_pfp_coefficient_seconddiagonalentry. pfc_terms_code_coefficient_second = ff_q_pfp_coefficient_seconddiagonalentry * S ((S (pfc_index_coefficient_seconddiagonal)) * pfc_terms_scale_coefficient_second) + (pfc_value_coefficient_seconddiagonal))) /\ ((exists pfc_complement_coefficient_seconddiagonalterm pfc_left_coefficient_seconddiagonalterm pfc_right_coefficient_seconddiagonalterm. (((pfc_index_coefficient_seconddiagonal)+pfc_complement_coefficient_seconddiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_seconddiagonaltermleftinside. pfa_gap_coefficient_seconddiagonaltermleftinside + S (pfc_index_coefficient_seconddiagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_seconddiagonaltermleftentry. ff_h_pfp_coefficient_seconddiagonaltermleftentry + S (pfc_left_coefficient_seconddiagonalterm) = S ((S (pfc_index_coefficient_seconddiagonal)) * ac)) /\ exists ff_q_pfp_coefficient_seconddiagonaltermleftentry. ab = ff_q_pfp_coefficient_seconddiagonaltermleftentry * S ((S (pfc_index_coefficient_seconddiagonal)) * ac) + (pfc_left_coefficient_seconddiagonalterm)))))) \/ (((exists pfc_gap_coefficient_seconddiagonaltermleftoutside. pfc_gap_coefficient_seconddiagonaltermleftoutside+(L)=(pfc_index_coefficient_seconddiagonal)) /\ (((pfc_left_coefficient_seconddiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_seconddiagonaltermrightinside. pfa_gap_coefficient_seconddiagonaltermrightinside + S (pfc_complement_coefficient_seconddiagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_seconddiagonaltermrightentry. ff_h_pfp_coefficient_seconddiagonaltermrightentry + S (pfc_right_coefficient_seconddiagonalterm) = S ((S (pfc_complement_coefficient_seconddiagonalterm)) * bc)) /\ exists ff_q_pfp_coefficient_seconddiagonaltermrightentry. bb = ff_q_pfp_coefficient_seconddiagonaltermrightentry * S ((S (pfc_complement_coefficient_seconddiagonalterm)) * bc) + (pfc_right_coefficient_seconddiagonalterm)))))) \/ (((exists pfc_gap_coefficient_seconddiagonaltermrightoutside. pfc_gap_coefficient_seconddiagonaltermrightoutside+(M)=(pfc_complement_coefficient_seconddiagonalterm)) /\ (((pfc_right_coefficient_seconddiagonalterm)=0))))) /\ (((pfc_value_coefficient_seconddiagonal)=pfc_left_coefficient_seconddiagonalterm*pfc_right_coefficient_seconddiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_secondsum fs_v_pfc_coefficient_secondsum. ((((exists fs_h_pfc_coefficient_secondsum_body_start. fs_h_pfc_coefficient_secondsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_secondsum)) /\ exists fs_q_pfc_coefficient_secondsum_body_start. fs_u_pfc_coefficient_secondsum = fs_q_pfc_coefficient_secondsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_secondsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_secondsum_body_terminal. fs_h_pfc_coefficient_secondsum_body_terminal + S (pfc_natural_sum_coefficient_second) = S ((S (S (i))) * fs_v_pfc_coefficient_secondsum)) /\ exists fs_q_pfc_coefficient_secondsum_body_terminal. fs_u_pfc_coefficient_secondsum = fs_q_pfc_coefficient_secondsum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_secondsum) + (pfc_natural_sum_coefficient_second))) /\ forall fs_i_pfc_coefficient_secondsum_body_steps. (exists fs_lt_pfc_coefficient_secondsum_body_steps_bound. fs_lt_pfc_coefficient_secondsum_body_steps_bound + S fs_i_pfc_coefficient_secondsum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_secondsum_body_steps fs_r_pfc_coefficient_secondsum_body_steps fs_s_pfc_coefficient_secondsum_body_steps. ((((exists fs_h_pfc_coefficient_secondsum_body_steps_summand. fs_h_pfc_coefficient_secondsum_body_steps_summand + S (fs_a_pfc_coefficient_secondsum_body_steps) = S ((S (fs_i_pfc_coefficient_secondsum_body_steps)) * pfc_terms_scale_coefficient_second)) /\ exists fs_q_pfc_coefficient_secondsum_body_steps_summand. pfc_terms_code_coefficient_second = fs_q_pfc_coefficient_secondsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_secondsum_body_steps)) * pfc_terms_scale_coefficient_second) + (fs_a_pfc_coefficient_secondsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_secondsum_body_steps_partial. fs_h_pfc_coefficient_secondsum_body_steps_partial + S (fs_r_pfc_coefficient_secondsum_body_steps) = S ((S (fs_i_pfc_coefficient_secondsum_body_steps)) * fs_v_pfc_coefficient_secondsum)) /\ exists fs_q_pfc_coefficient_secondsum_body_steps_partial. fs_u_pfc_coefficient_secondsum = fs_q_pfc_coefficient_secondsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_secondsum_body_steps)) * fs_v_pfc_coefficient_secondsum) + (fs_r_pfc_coefficient_secondsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_secondsum_body_steps_successor. fs_h_pfc_coefficient_secondsum_body_steps_successor + S (fs_s_pfc_coefficient_secondsum_body_steps) = S ((S (S fs_i_pfc_coefficient_secondsum_body_steps)) * fs_v_pfc_coefficient_secondsum)) /\ exists fs_q_pfc_coefficient_secondsum_body_steps_successor. fs_u_pfc_coefficient_secondsum = fs_q_pfc_coefficient_secondsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_secondsum_body_steps)) * fs_v_pfc_coefficient_secondsum) + (fs_s_pfc_coefficient_secondsum_body_steps))) /\ fs_s_pfc_coefficient_secondsum_body_steps = fs_r_pfc_coefficient_secondsum_body_steps + fs_a_pfc_coefficient_secondsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_secondresiduebound. pfa_gap_coefficient_secondresiduebound + S (s) = (p)) /\ ((exists pfa_offset_left_coefficient_secondresiduecongruence pfa_offset_right_coefficient_secondresiduecongruence. (pfc_natural_sum_coefficient_second) + (p) * pfa_offset_left_coefficient_secondresiduecongruence = (s) + (p) * pfa_offset_right_coefficient_secondresiduecongruence))))))))) -> r=s
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro i
  9. intro r
  10. intro s
  11. intro hr
  12. intro hs
  13. cases hr
  14. cases hr_witness
  15. cases hr_witness_witness
  16. cases hr_witness_witness_witness
  17. cases hr_witness_witness_witness_right
  18. cases hs
  19. cases hs_witness
  20. cases hs_witness_witness
  21. cases hs_witness_witness_witness
  22. cases hs_witness_witness_witness_right
  23. have hsum : exists fs_u_pfc_coefficient_unique_transported_sum fs_v_pfc_coefficient_unique_transported_sum. ((((exists fs_h_pfc_coefficient_unique_transported_sum_body_start. fs_h_pfc_coefficient_unique_transported_sum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_unique_transported_sum)) /\ exists fs_q_pfc_coefficient_unique_transported_sum_body_start. fs_u_pfc_coefficient_unique_transported_sum = fs_q_pfc_coefficient_unique_transported_sum_body_start * S ((S (0)) * fs_v_pfc_coefficient_unique_transported_sum) + (0))) /\ ((((exists fs_h_pfc_coefficient_unique_transported_sum_body_terminal. fs_h_pfc_coefficient_unique_transported_sum_body_terminal + S (x2) = S ((S (S i)) * fs_v_pfc_coefficient_unique_transported_sum)) /\ exists fs_q_pfc_coefficient_unique_transported_sum_body_terminal. fs_u_pfc_coefficient_unique_transported_sum = fs_q_pfc_coefficient_unique_transported_sum_body_terminal * S ((S (S i)) * fs_v_pfc_coefficient_unique_transported_sum) + (x2))) /\ forall fs_i_pfc_coefficient_unique_transported_sum_body_steps. (exists fs_lt_pfc_coefficient_unique_transported_sum_body_steps_bound. fs_lt_pfc_coefficient_unique_transported_sum_body_steps_bound + S fs_i_pfc_coefficient_unique_transported_sum_body_steps = S i) -> exists fs_a_pfc_coefficient_unique_transported_sum_body_steps fs_r_pfc_coefficient_unique_transported_sum_body_steps fs_s_pfc_coefficient_unique_transported_sum_body_steps. ((((exists fs_h_pfc_coefficient_unique_transported_sum_body_steps_summand. fs_h_pfc_coefficient_unique_transported_sum_body_steps_summand + S (fs_a_pfc_coefficient_unique_transported_sum_body_steps) = S ((S (fs_i_pfc_coefficient_unique_transported_sum_body_steps)) * x4)) /\ exists fs_q_pfc_coefficient_unique_transported_sum_body_steps_summand. x3 = fs_q_pfc_coefficient_unique_transported_sum_body_steps_summand * S ((S (fs_i_pfc_coefficient_unique_transported_sum_body_steps)) * x4) + (fs_a_pfc_coefficient_unique_transported_sum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_unique_transported_sum_body_steps_partial. fs_h_pfc_coefficient_unique_transported_sum_body_steps_partial + S (fs_r_pfc_coefficient_unique_transported_sum_body_steps) = S ((S (fs_i_pfc_coefficient_unique_transported_sum_body_steps)) * fs_v_pfc_coefficient_unique_transported_sum)) /\ exists fs_q_pfc_coefficient_unique_transported_sum_body_steps_partial. fs_u_pfc_coefficient_unique_transported_sum = fs_q_pfc_coefficient_unique_transported_sum_body_steps_partial * S ((S (fs_i_pfc_coefficient_unique_transported_sum_body_steps)) * fs_v_pfc_coefficient_unique_transported_sum) + (fs_r_pfc_coefficient_unique_transported_sum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_unique_transported_sum_body_steps_successor. fs_h_pfc_coefficient_unique_transported_sum_body_steps_successor + S (fs_s_pfc_coefficient_unique_transported_sum_body_steps) = S ((S (S fs_i_pfc_coefficient_unique_transported_sum_body_steps)) * fs_v_pfc_coefficient_unique_transported_sum)) /\ exists fs_q_pfc_coefficient_unique_transported_sum_body_steps_successor. fs_u_pfc_coefficient_unique_transported_sum = fs_q_pfc_coefficient_unique_transported_sum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_unique_transported_sum_body_steps)) * fs_v_pfc_coefficient_unique_transported_sum) + (fs_s_pfc_coefficient_unique_transported_sum_body_steps))) /\ fs_s_pfc_coefficient_unique_transported_sum_body_steps = fs_r_pfc_coefficient_unique_transported_sum_body_steps + fs_a_pfc_coefficient_unique_transported_sum_body_steps)))))
  24. specialize beta_sum_transport_prefix (x)
  25. specialize beta_sum_transport_prefix (x1)
  26. specialize beta_sum_transport_prefix (x3)
  27. specialize beta_sum_transport_prefix (x4)
  28. specialize beta_sum_transport_prefix (S i)
  29. specialize beta_sum_transport_prefix (x2)
  30. apply beta_sum_transport_prefix
  31. exact hr_witness_witness_witness_right_left
  32. specialize polynomial_diagonal_prefix_functional (ab)
  33. specialize polynomial_diagonal_prefix_functional (ac)
  34. specialize polynomial_diagonal_prefix_functional (L)
  35. specialize polynomial_diagonal_prefix_functional (bb)
  36. specialize polynomial_diagonal_prefix_functional (bc)
  37. specialize polynomial_diagonal_prefix_functional (M)
  38. specialize polynomial_diagonal_prefix_functional (i)
  39. specialize polynomial_diagonal_prefix_functional (x)
  40. specialize polynomial_diagonal_prefix_functional (x1)
  41. specialize polynomial_diagonal_prefix_functional (x3)
  42. specialize polynomial_diagonal_prefix_functional (x4)
  43. specialize polynomial_diagonal_prefix_functional (S i)
  44. apply polynomial_diagonal_prefix_functional
  45. exact hr_witness_witness_witness_left
  46. exact hs_witness_witness_witness_left
  47. have heq : x2=x5
  48. specialize beta_sum_functional (x3)
  49. specialize beta_sum_functional (x4)
  50. specialize beta_sum_functional (S i)
  51. specialize beta_sum_functional (x2)
  52. specialize beta_sum_functional (x5)
  53. apply beta_sum_functional
  54. exact hsum
  55. exact hs_witness_witness_witness_right_left
  56. rewrite heq at hr_witness_witness_witness_right_right
  57. specialize binary_canonical_residue_functional (p)
  58. specialize binary_canonical_residue_functional (x5)
  59. specialize binary_canonical_residue_functional (r)
  60. specialize binary_canonical_residue_functional (s)
  61. apply binary_canonical_residue_functional
  62. exact hr_witness_witness_witness_right_right
  63. exact hs_witness_witness_witness_right_right
polynomial_zero_extended_zero_value · unchanged support, not a new admission
forall b c L i a. (forall pfp_repeat_index_pad_zero_table. (exists pfa_gap_pad_zero_tableindex. pfa_gap_pad_zero_tableindex + S (pfp_repeat_index_pad_zero_table) = (L)) -> (((exists ff_h_pfp_pad_zero_tableentry. ff_h_pfp_pad_zero_tableentry + S (0) = S ((S (pfp_repeat_index_pad_zero_table)) * c)) /\ exists ff_q_pfp_pad_zero_tableentry. b = ff_q_pfp_pad_zero_tableentry * S ((S (pfp_repeat_index_pad_zero_table)) * c) + (0)))) -> ((((exists pfa_gap_pad_zero_entryinside. pfa_gap_pad_zero_entryinside + S (i) = (L)) /\ ((((exists ff_h_pfp_pad_zero_entryentry. ff_h_pfp_pad_zero_entryentry + S (a) = S ((S (i)) * c)) /\ exists ff_q_pfp_pad_zero_entryentry. b = ff_q_pfp_pad_zero_entryentry * S ((S (i)) * c) + (a)))))) \/ (((exists pfc_gap_pad_zero_entryoutside. pfc_gap_pad_zero_entryoutside+(L)=(i)) /\ (((a)=0))))) -> a=0
  1. intro b
  2. intro c
  3. intro L
  4. intro i
  5. intro a
  6. intro hz
  7. intro ha
  8. cases ha
  9. cases ha_left
  10. specialize beta_repeat_entry_eq (b)
  11. specialize beta_repeat_entry_eq (c)
  12. specialize beta_repeat_entry_eq (0)
  13. specialize beta_repeat_entry_eq (L)
  14. specialize beta_repeat_entry_eq (i)
  15. specialize beta_repeat_entry_eq (a)
  16. apply beta_repeat_entry_eq
  17. exact hz
  18. exact ha_left_left
  19. exact ha_left_right
  20. cases ha_right
  21. exact ha_right_right
polynomial_diagonal_term_zero_left · unchanged support, not a new admission
forall ab ac L bb bc M i j t. (forall pfp_repeat_index_term_zero_left. (exists pfa_gap_term_zero_leftindex. pfa_gap_term_zero_leftindex + S (pfp_repeat_index_term_zero_left) = (L)) -> (((exists ff_h_pfp_term_zero_leftentry. ff_h_pfp_term_zero_leftentry + S (0) = S ((S (pfp_repeat_index_term_zero_left)) * ac)) /\ exists ff_q_pfp_term_zero_leftentry. ab = ff_q_pfp_term_zero_leftentry * S ((S (pfp_repeat_index_term_zero_left)) * ac) + (0)))) -> (exists pfc_complement_term_zero_source_left pfc_left_term_zero_source_left pfc_right_term_zero_source_left. (((j)+pfc_complement_term_zero_source_left=(i)) /\ ((((((exists pfa_gap_term_zero_source_leftleftinside. pfa_gap_term_zero_source_leftleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_zero_source_leftleftentry. ff_h_pfp_term_zero_source_leftleftentry + S (pfc_left_term_zero_source_left) = S ((S (j)) * ac)) /\ exists ff_q_pfp_term_zero_source_leftleftentry. ab = ff_q_pfp_term_zero_source_leftleftentry * S ((S (j)) * ac) + (pfc_left_term_zero_source_left)))))) \/ (((exists pfc_gap_term_zero_source_leftleftoutside. pfc_gap_term_zero_source_leftleftoutside+(L)=(j)) /\ (((pfc_left_term_zero_source_left)=0))))) /\ ((((((exists pfa_gap_term_zero_source_leftrightinside. pfa_gap_term_zero_source_leftrightinside + S (pfc_complement_term_zero_source_left) = (M)) /\ ((((exists ff_h_pfp_term_zero_source_leftrightentry. ff_h_pfp_term_zero_source_leftrightentry + S (pfc_right_term_zero_source_left) = S ((S (pfc_complement_term_zero_source_left)) * bc)) /\ exists ff_q_pfp_term_zero_source_leftrightentry. bb = ff_q_pfp_term_zero_source_leftrightentry * S ((S (pfc_complement_term_zero_source_left)) * bc) + (pfc_right_term_zero_source_left)))))) \/ (((exists pfc_gap_term_zero_source_leftrightoutside. pfc_gap_term_zero_source_leftrightoutside+(M)=(pfc_complement_term_zero_source_left)) /\ (((pfc_right_term_zero_source_left)=0))))) /\ (((t)=pfc_left_term_zero_source_left*pfc_right_term_zero_source_left)))))))) -> t=0
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro i
  8. intro j
  9. intro t
  10. intro hz
  11. intro ht
  12. cases ht
  13. cases ht_witness
  14. cases ht_witness_witness
  15. cases ht_witness_witness_witness
  16. cases ht_witness_witness_witness_right
  17. cases ht_witness_witness_witness_right_right
  18. have heq : x1=0
  19. specialize polynomial_zero_extended_zero_value (ab)
  20. specialize polynomial_zero_extended_zero_value (ac)
  21. specialize polynomial_zero_extended_zero_value (L)
  22. specialize polynomial_zero_extended_zero_value (j)
  23. specialize polynomial_zero_extended_zero_value (x1)
  24. apply polynomial_zero_extended_zero_value
  25. exact hz
  26. exact ht_witness_witness_witness_right_left
  27. trans x1*x2
  28. exact ht_witness_witness_witness_right_right_right
  29. rewrite heq
  30. specialize mul_zero_left (x2)
  31. apply mul_zero_left
prime_field_residue_reflexive · unchanged support, not a new admission
forall p a. (exists pfa_gap_reflexive_bound. pfa_gap_reflexive_bound + S (a) = (p)) -> (((exists pfa_gap_reflexivebound. pfa_gap_reflexivebound + S (a) = (p)) /\ ((exists pfa_offset_left_reflexivecongruence pfa_offset_right_reflexivecongruence. (a) + (p) * pfa_offset_left_reflexivecongruence = (a) + (p) * pfa_offset_right_reflexivecongruence))))
  1. intro p
  2. intro a
  3. intro ha
  4. split
  5. exact ha
  6. specialize mod_eq_refl (p)
  7. specialize mod_eq_refl (a)
  8. apply mod_eq_refl
prime_field_residue_bounded_value · unchanged support, not a new admission
forall p a r. (exists pfa_gap_bounded_value. pfa_gap_bounded_value + S (a) = (p)) -> (((exists pfa_gap_bounded_resultbound. pfa_gap_bounded_resultbound + S (r) = (p)) /\ ((exists pfa_offset_left_bounded_resultcongruence pfa_offset_right_bounded_resultcongruence. (a) + (p) * pfa_offset_left_bounded_resultcongruence = (r) + (p) * pfa_offset_right_bounded_resultcongruence)))) -> r = a
  1. intro p
  2. intro a
  3. intro r
  4. intro ha
  5. intro hr
  6. specialize binary_canonical_residue_functional (p)
  7. specialize binary_canonical_residue_functional (a)
  8. specialize binary_canonical_residue_functional (r)
  9. specialize binary_canonical_residue_functional (a)
  10. apply binary_canonical_residue_functional
  11. exact hr
  12. specialize prime_field_residue_reflexive (p)
  13. specialize prime_field_residue_reflexive (a)
  14. apply prime_field_residue_reflexive
  15. exact ha
prime_field_convolution_coefficient_zero_left · unchanged support, not a new admission
forall p ab ac L bb bc M i r. ~(p=0) -> (forall pfp_repeat_index_zero_coefficient_condition_left. (exists pfa_gap_zero_coefficient_condition_leftindex. pfa_gap_zero_coefficient_condition_leftindex + S (pfp_repeat_index_zero_coefficient_condition_left) = (L)) -> (((exists ff_h_pfp_zero_coefficient_condition_leftentry. ff_h_pfp_zero_coefficient_condition_leftentry + S (0) = S ((S (pfp_repeat_index_zero_coefficient_condition_left)) * ac)) /\ exists ff_q_pfp_zero_coefficient_condition_leftentry. ab = ff_q_pfp_zero_coefficient_condition_leftentry * S ((S (pfp_repeat_index_zero_coefficient_condition_left)) * ac) + (0)))) -> (exists pfc_terms_code_zero_coefficient_source_left pfc_terms_scale_zero_coefficient_source_left pfc_natural_sum_zero_coefficient_source_left. ((forall pfc_index_zero_coefficient_source_leftdiagonal. (exists pfa_gap_zero_coefficient_source_leftdiagonalbound. pfa_gap_zero_coefficient_source_leftdiagonalbound + S (pfc_index_zero_coefficient_source_leftdiagonal) = (S (i))) -> exists pfc_value_zero_coefficient_source_leftdiagonal. ((((exists ff_h_pfp_zero_coefficient_source_leftdiagonalentry. ff_h_pfp_zero_coefficient_source_leftdiagonalentry + S (pfc_value_zero_coefficient_source_leftdiagonal) = S ((S (pfc_index_zero_coefficient_source_leftdiagonal)) * pfc_terms_scale_zero_coefficient_source_left)) /\ exists ff_q_pfp_zero_coefficient_source_leftdiagonalentry. pfc_terms_code_zero_coefficient_source_left = ff_q_pfp_zero_coefficient_source_leftdiagonalentry * S ((S (pfc_index_zero_coefficient_source_leftdiagonal)) * pfc_terms_scale_zero_coefficient_source_left) + (pfc_value_zero_coefficient_source_leftdiagonal))) /\ ((exists pfc_complement_zero_coefficient_source_leftdiagonalterm pfc_left_zero_coefficient_source_leftdiagonalterm pfc_right_zero_coefficient_source_leftdiagonalterm. (((pfc_index_zero_coefficient_source_leftdiagonal)+pfc_complement_zero_coefficient_source_leftdiagonalterm=(i)) /\ ((((((exists pfa_gap_zero_coefficient_source_leftdiagonaltermleftinside. pfa_gap_zero_coefficient_source_leftdiagonaltermleftinside + S (pfc_index_zero_coefficient_source_leftdiagonal) = (L)) /\ ((((exists ff_h_pfp_zero_coefficient_source_leftdiagonaltermleftentry. ff_h_pfp_zero_coefficient_source_leftdiagonaltermleftentry + S (pfc_left_zero_coefficient_source_leftdiagonalterm) = S ((S (pfc_index_zero_coefficient_source_leftdiagonal)) * ac)) /\ exists ff_q_pfp_zero_coefficient_source_leftdiagonaltermleftentry. ab = ff_q_pfp_zero_coefficient_source_leftdiagonaltermleftentry * S ((S (pfc_index_zero_coefficient_source_leftdiagonal)) * ac) + (pfc_left_zero_coefficient_source_leftdiagonalterm)))))) \/ (((exists pfc_gap_zero_coefficient_source_leftdiagonaltermleftoutside. pfc_gap_zero_coefficient_source_leftdiagonaltermleftoutside+(L)=(pfc_index_zero_coefficient_source_leftdiagonal)) /\ (((pfc_left_zero_coefficient_source_leftdiagonalterm)=0))))) /\ ((((((exists pfa_gap_zero_coefficient_source_leftdiagonaltermrightinside. pfa_gap_zero_coefficient_source_leftdiagonaltermrightinside + S (pfc_complement_zero_coefficient_source_leftdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_zero_coefficient_source_leftdiagonaltermrightentry. ff_h_pfp_zero_coefficient_source_leftdiagonaltermrightentry + S (pfc_right_zero_coefficient_source_leftdiagonalterm) = S ((S (pfc_complement_zero_coefficient_source_leftdiagonalterm)) * bc)) /\ exists ff_q_pfp_zero_coefficient_source_leftdiagonaltermrightentry. bb = ff_q_pfp_zero_coefficient_source_leftdiagonaltermrightentry * S ((S (pfc_complement_zero_coefficient_source_leftdiagonalterm)) * bc) + (pfc_right_zero_coefficient_source_leftdiagonalterm)))))) \/ (((exists pfc_gap_zero_coefficient_source_leftdiagonaltermrightoutside. pfc_gap_zero_coefficient_source_leftdiagonaltermrightoutside+(M)=(pfc_complement_zero_coefficient_source_leftdiagonalterm)) /\ (((pfc_right_zero_coefficient_source_leftdiagonalterm)=0))))) /\ (((pfc_value_zero_coefficient_source_leftdiagonal)=pfc_left_zero_coefficient_source_leftdiagonalterm*pfc_right_zero_coefficient_source_leftdiagonalterm))))))))))) /\ (((exists fs_u_pfc_zero_coefficient_source_leftsum fs_v_pfc_zero_coefficient_source_leftsum. ((((exists fs_h_pfc_zero_coefficient_source_leftsum_body_start. fs_h_pfc_zero_coefficient_source_leftsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_zero_coefficient_source_leftsum)) /\ exists fs_q_pfc_zero_coefficient_source_leftsum_body_start. fs_u_pfc_zero_coefficient_source_leftsum = fs_q_pfc_zero_coefficient_source_leftsum_body_start * S ((S (0)) * fs_v_pfc_zero_coefficient_source_leftsum) + (0))) /\ ((((exists fs_h_pfc_zero_coefficient_source_leftsum_body_terminal. fs_h_pfc_zero_coefficient_source_leftsum_body_terminal + S (pfc_natural_sum_zero_coefficient_source_left) = S ((S (S (i))) * fs_v_pfc_zero_coefficient_source_leftsum)) /\ exists fs_q_pfc_zero_coefficient_source_leftsum_body_terminal. fs_u_pfc_zero_coefficient_source_leftsum = fs_q_pfc_zero_coefficient_source_leftsum_body_terminal * S ((S (S (i))) * fs_v_pfc_zero_coefficient_source_leftsum) + (pfc_natural_sum_zero_coefficient_source_left))) /\ forall fs_i_pfc_zero_coefficient_source_leftsum_body_steps. (exists fs_lt_pfc_zero_coefficient_source_leftsum_body_steps_bound. fs_lt_pfc_zero_coefficient_source_leftsum_body_steps_bound + S fs_i_pfc_zero_coefficient_source_leftsum_body_steps = S (i)) -> exists fs_a_pfc_zero_coefficient_source_leftsum_body_steps fs_r_pfc_zero_coefficient_source_leftsum_body_steps fs_s_pfc_zero_coefficient_source_leftsum_body_steps. ((((exists fs_h_pfc_zero_coefficient_source_leftsum_body_steps_summand. fs_h_pfc_zero_coefficient_source_leftsum_body_steps_summand + S (fs_a_pfc_zero_coefficient_source_leftsum_body_steps) = S ((S (fs_i_pfc_zero_coefficient_source_leftsum_body_steps)) * pfc_terms_scale_zero_coefficient_source_left)) /\ exists fs_q_pfc_zero_coefficient_source_leftsum_body_steps_summand. pfc_terms_code_zero_coefficient_source_left = fs_q_pfc_zero_coefficient_source_leftsum_body_steps_summand * S ((S (fs_i_pfc_zero_coefficient_source_leftsum_body_steps)) * pfc_terms_scale_zero_coefficient_source_left) + (fs_a_pfc_zero_coefficient_source_leftsum_body_steps))) /\ ((((exists fs_h_pfc_zero_coefficient_source_leftsum_body_steps_partial. fs_h_pfc_zero_coefficient_source_leftsum_body_steps_partial + S (fs_r_pfc_zero_coefficient_source_leftsum_body_steps) = S ((S (fs_i_pfc_zero_coefficient_source_leftsum_body_steps)) * fs_v_pfc_zero_coefficient_source_leftsum)) /\ exists fs_q_pfc_zero_coefficient_source_leftsum_body_steps_partial. fs_u_pfc_zero_coefficient_source_leftsum = fs_q_pfc_zero_coefficient_source_leftsum_body_steps_partial * S ((S (fs_i_pfc_zero_coefficient_source_leftsum_body_steps)) * fs_v_pfc_zero_coefficient_source_leftsum) + (fs_r_pfc_zero_coefficient_source_leftsum_body_steps))) /\ ((((exists fs_h_pfc_zero_coefficient_source_leftsum_body_steps_successor. fs_h_pfc_zero_coefficient_source_leftsum_body_steps_successor + S (fs_s_pfc_zero_coefficient_source_leftsum_body_steps) = S ((S (S fs_i_pfc_zero_coefficient_source_leftsum_body_steps)) * fs_v_pfc_zero_coefficient_source_leftsum)) /\ exists fs_q_pfc_zero_coefficient_source_leftsum_body_steps_successor. fs_u_pfc_zero_coefficient_source_leftsum = fs_q_pfc_zero_coefficient_source_leftsum_body_steps_successor * S ((S (S fs_i_pfc_zero_coefficient_source_leftsum_body_steps)) * fs_v_pfc_zero_coefficient_source_leftsum) + (fs_s_pfc_zero_coefficient_source_leftsum_body_steps))) /\ fs_s_pfc_zero_coefficient_source_leftsum_body_steps = fs_r_pfc_zero_coefficient_source_leftsum_body_steps + fs_a_pfc_zero_coefficient_source_leftsum_body_steps)))))) /\ ((((exists pfa_gap_zero_coefficient_source_leftresiduebound. pfa_gap_zero_coefficient_source_leftresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_zero_coefficient_source_leftresiduecongruence pfa_offset_right_zero_coefficient_source_leftresiduecongruence. (pfc_natural_sum_zero_coefficient_source_left) + (p) * pfa_offset_left_zero_coefficient_source_leftresiduecongruence = (r) + (p) * pfa_offset_right_zero_coefficient_source_leftresiduecongruence))))))))) -> r=0
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro i
  9. intro r
  10. intro hp
  11. intro hc
  12. intro hr
  13. cases hr
  14. cases hr_witness
  15. cases hr_witness_witness
  16. cases hr_witness_witness_witness
  17. cases hr_witness_witness_witness_right
  18. have hz : forall pfp_repeat_index_zero_diagonal_left. (exists pfa_gap_zero_diagonal_leftindex. pfa_gap_zero_diagonal_leftindex + S (pfp_repeat_index_zero_diagonal_left) = (S i)) -> (((exists ff_h_pfp_zero_diagonal_leftentry. ff_h_pfp_zero_diagonal_leftentry + S (0) = S ((S (pfp_repeat_index_zero_diagonal_left)) * x1)) /\ exists ff_q_pfp_zero_diagonal_leftentry. x = ff_q_pfp_zero_diagonal_leftentry * S ((S (pfp_repeat_index_zero_diagonal_left)) * x1) + (0)))
  19. intro j
  20. intro hj
  21. have ht : exists t. ((((exists ff_h_pfp_zero_diagonal_entry_left. ff_h_pfp_zero_diagonal_entry_left + S (t) = S ((S (j)) * x1)) /\ exists ff_q_pfp_zero_diagonal_entry_left. x = ff_q_pfp_zero_diagonal_entry_left * S ((S (j)) * x1) + (t))) /\ ((exists pfc_complement_zero_diagonal_term_left pfc_left_zero_diagonal_term_left pfc_right_zero_diagonal_term_left. (((j)+pfc_complement_zero_diagonal_term_left=(i)) /\ ((((((exists pfa_gap_zero_diagonal_term_leftleftinside. pfa_gap_zero_diagonal_term_leftleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_zero_diagonal_term_leftleftentry. ff_h_pfp_zero_diagonal_term_leftleftentry + S (pfc_left_zero_diagonal_term_left) = S ((S (j)) * ac)) /\ exists ff_q_pfp_zero_diagonal_term_leftleftentry. ab = ff_q_pfp_zero_diagonal_term_leftleftentry * S ((S (j)) * ac) + (pfc_left_zero_diagonal_term_left)))))) \/ (((exists pfc_gap_zero_diagonal_term_leftleftoutside. pfc_gap_zero_diagonal_term_leftleftoutside+(L)=(j)) /\ (((pfc_left_zero_diagonal_term_left)=0))))) /\ ((((((exists pfa_gap_zero_diagonal_term_leftrightinside. pfa_gap_zero_diagonal_term_leftrightinside + S (pfc_complement_zero_diagonal_term_left) = (M)) /\ ((((exists ff_h_pfp_zero_diagonal_term_leftrightentry. ff_h_pfp_zero_diagonal_term_leftrightentry + S (pfc_right_zero_diagonal_term_left) = S ((S (pfc_complement_zero_diagonal_term_left)) * bc)) /\ exists ff_q_pfp_zero_diagonal_term_leftrightentry. bb = ff_q_pfp_zero_diagonal_term_leftrightentry * S ((S (pfc_complement_zero_diagonal_term_left)) * bc) + (pfc_right_zero_diagonal_term_left)))))) \/ (((exists pfc_gap_zero_diagonal_term_leftrightoutside. pfc_gap_zero_diagonal_term_leftrightoutside+(M)=(pfc_complement_zero_diagonal_term_left)) /\ (((pfc_right_zero_diagonal_term_left)=0))))) /\ (((t)=pfc_left_zero_diagonal_term_left*pfc_right_zero_diagonal_term_left))))))))))
  22. specialize hr_witness_witness_witness_left (j)
  23. apply hr_witness_witness_witness_left
  24. exact hj
  25. cases ht
  26. cases ht_witness
  27. have heq : x3=0
  28. specialize polynomial_diagonal_term_zero_left (ab)
  29. specialize polynomial_diagonal_term_zero_left (ac)
  30. specialize polynomial_diagonal_term_zero_left (L)
  31. specialize polynomial_diagonal_term_zero_left (bb)
  32. specialize polynomial_diagonal_term_zero_left (bc)
  33. specialize polynomial_diagonal_term_zero_left (M)
  34. specialize polynomial_diagonal_term_zero_left (i)
  35. specialize polynomial_diagonal_term_zero_left (j)
  36. specialize polynomial_diagonal_term_zero_left (x3)
  37. apply polynomial_diagonal_term_zero_left
  38. exact hc
  39. exact ht_witness_right
  40. rewrite heq at ht_witness_left
  41. rewrite heq at ht_witness_left
  42. exact ht_witness_left
  43. have hn : x2=0
  44. trans (S i)*0
  45. specialize beta_repeat_sum_exact (x)
  46. specialize beta_repeat_sum_exact (x1)
  47. specialize beta_repeat_sum_exact (0)
  48. specialize beta_repeat_sum_exact (S i)
  49. specialize beta_repeat_sum_exact (x2)
  50. apply beta_repeat_sum_exact
  51. exact hz
  52. exact hr_witness_witness_witness_right_left
  53. simp
  54. rewrite hn at hr_witness_witness_witness_right_right
  55. specialize prime_field_residue_bounded_value (p)
  56. specialize prime_field_residue_bounded_value (0)
  57. specialize prime_field_residue_bounded_value (r)
  58. apply prime_field_residue_bounded_value
  59. specialize one_le_of_ne_zero (p)
  60. apply one_le_of_ne_zero
  61. exact hp
  62. exact hr_witness_witness_witness_right_right
polynomial_diagonal_term_zero_right · unchanged support, not a new admission
forall ab ac L bb bc M i j t. (forall pfp_repeat_index_term_zero_right. (exists pfa_gap_term_zero_rightindex. pfa_gap_term_zero_rightindex + S (pfp_repeat_index_term_zero_right) = (M)) -> (((exists ff_h_pfp_term_zero_rightentry. ff_h_pfp_term_zero_rightentry + S (0) = S ((S (pfp_repeat_index_term_zero_right)) * bc)) /\ exists ff_q_pfp_term_zero_rightentry. bb = ff_q_pfp_term_zero_rightentry * S ((S (pfp_repeat_index_term_zero_right)) * bc) + (0)))) -> (exists pfc_complement_term_zero_source_right pfc_left_term_zero_source_right pfc_right_term_zero_source_right. (((j)+pfc_complement_term_zero_source_right=(i)) /\ ((((((exists pfa_gap_term_zero_source_rightleftinside. pfa_gap_term_zero_source_rightleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_zero_source_rightleftentry. ff_h_pfp_term_zero_source_rightleftentry + S (pfc_left_term_zero_source_right) = S ((S (j)) * ac)) /\ exists ff_q_pfp_term_zero_source_rightleftentry. ab = ff_q_pfp_term_zero_source_rightleftentry * S ((S (j)) * ac) + (pfc_left_term_zero_source_right)))))) \/ (((exists pfc_gap_term_zero_source_rightleftoutside. pfc_gap_term_zero_source_rightleftoutside+(L)=(j)) /\ (((pfc_left_term_zero_source_right)=0))))) /\ ((((((exists pfa_gap_term_zero_source_rightrightinside. pfa_gap_term_zero_source_rightrightinside + S (pfc_complement_term_zero_source_right) = (M)) /\ ((((exists ff_h_pfp_term_zero_source_rightrightentry. ff_h_pfp_term_zero_source_rightrightentry + S (pfc_right_term_zero_source_right) = S ((S (pfc_complement_term_zero_source_right)) * bc)) /\ exists ff_q_pfp_term_zero_source_rightrightentry. bb = ff_q_pfp_term_zero_source_rightrightentry * S ((S (pfc_complement_term_zero_source_right)) * bc) + (pfc_right_term_zero_source_right)))))) \/ (((exists pfc_gap_term_zero_source_rightrightoutside. pfc_gap_term_zero_source_rightrightoutside+(M)=(pfc_complement_term_zero_source_right)) /\ (((pfc_right_term_zero_source_right)=0))))) /\ (((t)=pfc_left_term_zero_source_right*pfc_right_term_zero_source_right)))))))) -> t=0
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro i
  8. intro j
  9. intro t
  10. intro hz
  11. intro ht
  12. cases ht
  13. cases ht_witness
  14. cases ht_witness_witness
  15. cases ht_witness_witness_witness
  16. cases ht_witness_witness_witness_right
  17. cases ht_witness_witness_witness_right_right
  18. have heq : x2=0
  19. specialize polynomial_zero_extended_zero_value (bb)
  20. specialize polynomial_zero_extended_zero_value (bc)
  21. specialize polynomial_zero_extended_zero_value (M)
  22. specialize polynomial_zero_extended_zero_value (x)
  23. specialize polynomial_zero_extended_zero_value (x2)
  24. apply polynomial_zero_extended_zero_value
  25. exact hz
  26. exact ht_witness_witness_witness_right_right_left
  27. trans x1*x2
  28. exact ht_witness_witness_witness_right_right_right
  29. rewrite heq
  30. simp
prime_field_convolution_coefficient_zero_right · unchanged support, not a new admission
forall p ab ac L bb bc M i r. ~(p=0) -> (forall pfp_repeat_index_zero_coefficient_condition_right. (exists pfa_gap_zero_coefficient_condition_rightindex. pfa_gap_zero_coefficient_condition_rightindex + S (pfp_repeat_index_zero_coefficient_condition_right) = (M)) -> (((exists ff_h_pfp_zero_coefficient_condition_rightentry. ff_h_pfp_zero_coefficient_condition_rightentry + S (0) = S ((S (pfp_repeat_index_zero_coefficient_condition_right)) * bc)) /\ exists ff_q_pfp_zero_coefficient_condition_rightentry. bb = ff_q_pfp_zero_coefficient_condition_rightentry * S ((S (pfp_repeat_index_zero_coefficient_condition_right)) * bc) + (0)))) -> (exists pfc_terms_code_zero_coefficient_source_right pfc_terms_scale_zero_coefficient_source_right pfc_natural_sum_zero_coefficient_source_right. ((forall pfc_index_zero_coefficient_source_rightdiagonal. (exists pfa_gap_zero_coefficient_source_rightdiagonalbound. pfa_gap_zero_coefficient_source_rightdiagonalbound + S (pfc_index_zero_coefficient_source_rightdiagonal) = (S (i))) -> exists pfc_value_zero_coefficient_source_rightdiagonal. ((((exists ff_h_pfp_zero_coefficient_source_rightdiagonalentry. ff_h_pfp_zero_coefficient_source_rightdiagonalentry + S (pfc_value_zero_coefficient_source_rightdiagonal) = S ((S (pfc_index_zero_coefficient_source_rightdiagonal)) * pfc_terms_scale_zero_coefficient_source_right)) /\ exists ff_q_pfp_zero_coefficient_source_rightdiagonalentry. pfc_terms_code_zero_coefficient_source_right = ff_q_pfp_zero_coefficient_source_rightdiagonalentry * S ((S (pfc_index_zero_coefficient_source_rightdiagonal)) * pfc_terms_scale_zero_coefficient_source_right) + (pfc_value_zero_coefficient_source_rightdiagonal))) /\ ((exists pfc_complement_zero_coefficient_source_rightdiagonalterm pfc_left_zero_coefficient_source_rightdiagonalterm pfc_right_zero_coefficient_source_rightdiagonalterm. (((pfc_index_zero_coefficient_source_rightdiagonal)+pfc_complement_zero_coefficient_source_rightdiagonalterm=(i)) /\ ((((((exists pfa_gap_zero_coefficient_source_rightdiagonaltermleftinside. pfa_gap_zero_coefficient_source_rightdiagonaltermleftinside + S (pfc_index_zero_coefficient_source_rightdiagonal) = (L)) /\ ((((exists ff_h_pfp_zero_coefficient_source_rightdiagonaltermleftentry. ff_h_pfp_zero_coefficient_source_rightdiagonaltermleftentry + S (pfc_left_zero_coefficient_source_rightdiagonalterm) = S ((S (pfc_index_zero_coefficient_source_rightdiagonal)) * ac)) /\ exists ff_q_pfp_zero_coefficient_source_rightdiagonaltermleftentry. ab = ff_q_pfp_zero_coefficient_source_rightdiagonaltermleftentry * S ((S (pfc_index_zero_coefficient_source_rightdiagonal)) * ac) + (pfc_left_zero_coefficient_source_rightdiagonalterm)))))) \/ (((exists pfc_gap_zero_coefficient_source_rightdiagonaltermleftoutside. pfc_gap_zero_coefficient_source_rightdiagonaltermleftoutside+(L)=(pfc_index_zero_coefficient_source_rightdiagonal)) /\ (((pfc_left_zero_coefficient_source_rightdiagonalterm)=0))))) /\ ((((((exists pfa_gap_zero_coefficient_source_rightdiagonaltermrightinside. pfa_gap_zero_coefficient_source_rightdiagonaltermrightinside + S (pfc_complement_zero_coefficient_source_rightdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_zero_coefficient_source_rightdiagonaltermrightentry. ff_h_pfp_zero_coefficient_source_rightdiagonaltermrightentry + S (pfc_right_zero_coefficient_source_rightdiagonalterm) = S ((S (pfc_complement_zero_coefficient_source_rightdiagonalterm)) * bc)) /\ exists ff_q_pfp_zero_coefficient_source_rightdiagonaltermrightentry. bb = ff_q_pfp_zero_coefficient_source_rightdiagonaltermrightentry * S ((S (pfc_complement_zero_coefficient_source_rightdiagonalterm)) * bc) + (pfc_right_zero_coefficient_source_rightdiagonalterm)))))) \/ (((exists pfc_gap_zero_coefficient_source_rightdiagonaltermrightoutside. pfc_gap_zero_coefficient_source_rightdiagonaltermrightoutside+(M)=(pfc_complement_zero_coefficient_source_rightdiagonalterm)) /\ (((pfc_right_zero_coefficient_source_rightdiagonalterm)=0))))) /\ (((pfc_value_zero_coefficient_source_rightdiagonal)=pfc_left_zero_coefficient_source_rightdiagonalterm*pfc_right_zero_coefficient_source_rightdiagonalterm))))))))))) /\ (((exists fs_u_pfc_zero_coefficient_source_rightsum fs_v_pfc_zero_coefficient_source_rightsum. ((((exists fs_h_pfc_zero_coefficient_source_rightsum_body_start. fs_h_pfc_zero_coefficient_source_rightsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_zero_coefficient_source_rightsum)) /\ exists fs_q_pfc_zero_coefficient_source_rightsum_body_start. fs_u_pfc_zero_coefficient_source_rightsum = fs_q_pfc_zero_coefficient_source_rightsum_body_start * S ((S (0)) * fs_v_pfc_zero_coefficient_source_rightsum) + (0))) /\ ((((exists fs_h_pfc_zero_coefficient_source_rightsum_body_terminal. fs_h_pfc_zero_coefficient_source_rightsum_body_terminal + S (pfc_natural_sum_zero_coefficient_source_right) = S ((S (S (i))) * fs_v_pfc_zero_coefficient_source_rightsum)) /\ exists fs_q_pfc_zero_coefficient_source_rightsum_body_terminal. fs_u_pfc_zero_coefficient_source_rightsum = fs_q_pfc_zero_coefficient_source_rightsum_body_terminal * S ((S (S (i))) * fs_v_pfc_zero_coefficient_source_rightsum) + (pfc_natural_sum_zero_coefficient_source_right))) /\ forall fs_i_pfc_zero_coefficient_source_rightsum_body_steps. (exists fs_lt_pfc_zero_coefficient_source_rightsum_body_steps_bound. fs_lt_pfc_zero_coefficient_source_rightsum_body_steps_bound + S fs_i_pfc_zero_coefficient_source_rightsum_body_steps = S (i)) -> exists fs_a_pfc_zero_coefficient_source_rightsum_body_steps fs_r_pfc_zero_coefficient_source_rightsum_body_steps fs_s_pfc_zero_coefficient_source_rightsum_body_steps. ((((exists fs_h_pfc_zero_coefficient_source_rightsum_body_steps_summand. fs_h_pfc_zero_coefficient_source_rightsum_body_steps_summand + S (fs_a_pfc_zero_coefficient_source_rightsum_body_steps) = S ((S (fs_i_pfc_zero_coefficient_source_rightsum_body_steps)) * pfc_terms_scale_zero_coefficient_source_right)) /\ exists fs_q_pfc_zero_coefficient_source_rightsum_body_steps_summand. pfc_terms_code_zero_coefficient_source_right = fs_q_pfc_zero_coefficient_source_rightsum_body_steps_summand * S ((S (fs_i_pfc_zero_coefficient_source_rightsum_body_steps)) * pfc_terms_scale_zero_coefficient_source_right) + (fs_a_pfc_zero_coefficient_source_rightsum_body_steps))) /\ ((((exists fs_h_pfc_zero_coefficient_source_rightsum_body_steps_partial. fs_h_pfc_zero_coefficient_source_rightsum_body_steps_partial + S (fs_r_pfc_zero_coefficient_source_rightsum_body_steps) = S ((S (fs_i_pfc_zero_coefficient_source_rightsum_body_steps)) * fs_v_pfc_zero_coefficient_source_rightsum)) /\ exists fs_q_pfc_zero_coefficient_source_rightsum_body_steps_partial. fs_u_pfc_zero_coefficient_source_rightsum = fs_q_pfc_zero_coefficient_source_rightsum_body_steps_partial * S ((S (fs_i_pfc_zero_coefficient_source_rightsum_body_steps)) * fs_v_pfc_zero_coefficient_source_rightsum) + (fs_r_pfc_zero_coefficient_source_rightsum_body_steps))) /\ ((((exists fs_h_pfc_zero_coefficient_source_rightsum_body_steps_successor. fs_h_pfc_zero_coefficient_source_rightsum_body_steps_successor + S (fs_s_pfc_zero_coefficient_source_rightsum_body_steps) = S ((S (S fs_i_pfc_zero_coefficient_source_rightsum_body_steps)) * fs_v_pfc_zero_coefficient_source_rightsum)) /\ exists fs_q_pfc_zero_coefficient_source_rightsum_body_steps_successor. fs_u_pfc_zero_coefficient_source_rightsum = fs_q_pfc_zero_coefficient_source_rightsum_body_steps_successor * S ((S (S fs_i_pfc_zero_coefficient_source_rightsum_body_steps)) * fs_v_pfc_zero_coefficient_source_rightsum) + (fs_s_pfc_zero_coefficient_source_rightsum_body_steps))) /\ fs_s_pfc_zero_coefficient_source_rightsum_body_steps = fs_r_pfc_zero_coefficient_source_rightsum_body_steps + fs_a_pfc_zero_coefficient_source_rightsum_body_steps)))))) /\ ((((exists pfa_gap_zero_coefficient_source_rightresiduebound. pfa_gap_zero_coefficient_source_rightresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_zero_coefficient_source_rightresiduecongruence pfa_offset_right_zero_coefficient_source_rightresiduecongruence. (pfc_natural_sum_zero_coefficient_source_right) + (p) * pfa_offset_left_zero_coefficient_source_rightresiduecongruence = (r) + (p) * pfa_offset_right_zero_coefficient_source_rightresiduecongruence))))))))) -> r=0
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro i
  9. intro r
  10. intro hp
  11. intro hc
  12. intro hr
  13. cases hr
  14. cases hr_witness
  15. cases hr_witness_witness
  16. cases hr_witness_witness_witness
  17. cases hr_witness_witness_witness_right
  18. have hz : forall pfp_repeat_index_zero_diagonal_right. (exists pfa_gap_zero_diagonal_rightindex. pfa_gap_zero_diagonal_rightindex + S (pfp_repeat_index_zero_diagonal_right) = (S i)) -> (((exists ff_h_pfp_zero_diagonal_rightentry. ff_h_pfp_zero_diagonal_rightentry + S (0) = S ((S (pfp_repeat_index_zero_diagonal_right)) * x1)) /\ exists ff_q_pfp_zero_diagonal_rightentry. x = ff_q_pfp_zero_diagonal_rightentry * S ((S (pfp_repeat_index_zero_diagonal_right)) * x1) + (0)))
  19. intro j
  20. intro hj
  21. have ht : exists t. ((((exists ff_h_pfp_zero_diagonal_entry_right. ff_h_pfp_zero_diagonal_entry_right + S (t) = S ((S (j)) * x1)) /\ exists ff_q_pfp_zero_diagonal_entry_right. x = ff_q_pfp_zero_diagonal_entry_right * S ((S (j)) * x1) + (t))) /\ ((exists pfc_complement_zero_diagonal_term_right pfc_left_zero_diagonal_term_right pfc_right_zero_diagonal_term_right. (((j)+pfc_complement_zero_diagonal_term_right=(i)) /\ ((((((exists pfa_gap_zero_diagonal_term_rightleftinside. pfa_gap_zero_diagonal_term_rightleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_zero_diagonal_term_rightleftentry. ff_h_pfp_zero_diagonal_term_rightleftentry + S (pfc_left_zero_diagonal_term_right) = S ((S (j)) * ac)) /\ exists ff_q_pfp_zero_diagonal_term_rightleftentry. ab = ff_q_pfp_zero_diagonal_term_rightleftentry * S ((S (j)) * ac) + (pfc_left_zero_diagonal_term_right)))))) \/ (((exists pfc_gap_zero_diagonal_term_rightleftoutside. pfc_gap_zero_diagonal_term_rightleftoutside+(L)=(j)) /\ (((pfc_left_zero_diagonal_term_right)=0))))) /\ ((((((exists pfa_gap_zero_diagonal_term_rightrightinside. pfa_gap_zero_diagonal_term_rightrightinside + S (pfc_complement_zero_diagonal_term_right) = (M)) /\ ((((exists ff_h_pfp_zero_diagonal_term_rightrightentry. ff_h_pfp_zero_diagonal_term_rightrightentry + S (pfc_right_zero_diagonal_term_right) = S ((S (pfc_complement_zero_diagonal_term_right)) * bc)) /\ exists ff_q_pfp_zero_diagonal_term_rightrightentry. bb = ff_q_pfp_zero_diagonal_term_rightrightentry * S ((S (pfc_complement_zero_diagonal_term_right)) * bc) + (pfc_right_zero_diagonal_term_right)))))) \/ (((exists pfc_gap_zero_diagonal_term_rightrightoutside. pfc_gap_zero_diagonal_term_rightrightoutside+(M)=(pfc_complement_zero_diagonal_term_right)) /\ (((pfc_right_zero_diagonal_term_right)=0))))) /\ (((t)=pfc_left_zero_diagonal_term_right*pfc_right_zero_diagonal_term_right))))))))))
  22. specialize hr_witness_witness_witness_left (j)
  23. apply hr_witness_witness_witness_left
  24. exact hj
  25. cases ht
  26. cases ht_witness
  27. have heq : x3=0
  28. specialize polynomial_diagonal_term_zero_right (ab)
  29. specialize polynomial_diagonal_term_zero_right (ac)
  30. specialize polynomial_diagonal_term_zero_right (L)
  31. specialize polynomial_diagonal_term_zero_right (bb)
  32. specialize polynomial_diagonal_term_zero_right (bc)
  33. specialize polynomial_diagonal_term_zero_right (M)
  34. specialize polynomial_diagonal_term_zero_right (i)
  35. specialize polynomial_diagonal_term_zero_right (j)
  36. specialize polynomial_diagonal_term_zero_right (x3)
  37. apply polynomial_diagonal_term_zero_right
  38. exact hc
  39. exact ht_witness_right
  40. rewrite heq at ht_witness_left
  41. rewrite heq at ht_witness_left
  42. exact ht_witness_left
  43. have hn : x2=0
  44. trans (S i)*0
  45. specialize beta_repeat_sum_exact (x)
  46. specialize beta_repeat_sum_exact (x1)
  47. specialize beta_repeat_sum_exact (0)
  48. specialize beta_repeat_sum_exact (S i)
  49. specialize beta_repeat_sum_exact (x2)
  50. apply beta_repeat_sum_exact
  51. exact hz
  52. exact hr_witness_witness_witness_right_left
  53. simp
  54. rewrite hn at hr_witness_witness_witness_right_right
  55. specialize prime_field_residue_bounded_value (p)
  56. specialize prime_field_residue_bounded_value (0)
  57. specialize prime_field_residue_bounded_value (r)
  58. apply prime_field_residue_bounded_value
  59. specialize one_le_of_ne_zero (p)
  60. apply one_le_of_ne_zero
  61. exact hp
  62. exact hr_witness_witness_witness_right_right
polynomial_diagonal_term_past_support · unchanged support, not a new admission
forall ab ac L bb bc M i j t. (exists pfc_gap_term_past_guard. pfc_gap_term_past_guard+(L+M)=(S i)) -> (exists pfc_complement_term_past_source pfc_left_term_past_source pfc_right_term_past_source. (((j)+pfc_complement_term_past_source=(i)) /\ ((((((exists pfa_gap_term_past_sourceleftinside. pfa_gap_term_past_sourceleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_past_sourceleftentry. ff_h_pfp_term_past_sourceleftentry + S (pfc_left_term_past_source) = S ((S (j)) * ac)) /\ exists ff_q_pfp_term_past_sourceleftentry. ab = ff_q_pfp_term_past_sourceleftentry * S ((S (j)) * ac) + (pfc_left_term_past_source)))))) \/ (((exists pfc_gap_term_past_sourceleftoutside. pfc_gap_term_past_sourceleftoutside+(L)=(j)) /\ (((pfc_left_term_past_source)=0))))) /\ ((((((exists pfa_gap_term_past_sourcerightinside. pfa_gap_term_past_sourcerightinside + S (pfc_complement_term_past_source) = (M)) /\ ((((exists ff_h_pfp_term_past_sourcerightentry. ff_h_pfp_term_past_sourcerightentry + S (pfc_right_term_past_source) = S ((S (pfc_complement_term_past_source)) * bc)) /\ exists ff_q_pfp_term_past_sourcerightentry. bb = ff_q_pfp_term_past_sourcerightentry * S ((S (pfc_complement_term_past_source)) * bc) + (pfc_right_term_past_source)))))) \/ (((exists pfc_gap_term_past_sourcerightoutside. pfc_gap_term_past_sourcerightoutside+(M)=(pfc_complement_term_past_source)) /\ (((pfc_right_term_past_source)=0))))) /\ (((t)=pfc_left_term_past_source*pfc_right_term_past_source)))))))) -> t=0
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro i
  8. intro j
  9. intro t
  10. intro hpast
  11. intro ht
  12. cases ht
  13. cases ht_witness
  14. cases ht_witness_witness
  15. cases ht_witness_witness_witness
  16. cases ht_witness_witness_witness_right
  17. cases ht_witness_witness_witness_right_right
  18. cases ht_witness_witness_witness_right_left
  19. cases ht_witness_witness_witness_right_left_left
  20. cases ht_witness_witness_witness_right_right_left
  21. cases ht_witness_witness_witness_right_right_left_left
  22. exfalso
  23. have hsum : exists pfc_gap_term_past_sum_bound. pfc_gap_term_past_sum_bound+(S j+S x)=(L+M)
  24. specialize le_trans (S j+S x)
  25. specialize le_trans (L+S x)
  26. specialize le_trans (L+M)
  27. apply le_trans
  28. specialize add_le_add_right (S j)
  29. specialize add_le_add_right (L)
  30. specialize add_le_add_right (S x)
  31. apply add_le_add_right
  32. exact ht_witness_witness_witness_right_left_left_left
  33. specialize add_le_add_left (S x)
  34. specialize add_le_add_left (M)
  35. specialize add_le_add_left (L)
  36. apply add_le_add_left
  37. exact ht_witness_witness_witness_right_right_left_left_left
  38. have heq : S j+S x=S (S i)
  39. trans S (S (j+x))
  40. simp [add_succ_left]
  41. congr
  42. congr
  43. exact ht_witness_witness_witness_left
  44. rewrite heq at hsum
  45. specialize lt_not_le (S i)
  46. specialize lt_not_le (L+M)
  47. apply lt_not_le
  48. exact hsum
  49. exact hpast
  50. cases ht_witness_witness_witness_right_right_left_right
  51. trans x1*x2
  52. exact ht_witness_witness_witness_right_right_right
  53. rewrite ht_witness_witness_witness_right_right_left_right_right
  54. simp
  55. cases ht_witness_witness_witness_right_left_right
  56. trans x1*x2
  57. exact ht_witness_witness_witness_right_right_right
  58. rewrite ht_witness_witness_witness_right_left_right_right
  59. specialize mul_zero_left (x2)
  60. apply mul_zero_left
prime_field_convolution_coefficient_zero_past_support · unchanged support, not a new admission
forall p ab ac L bb bc M i r. ~(p=0) -> (exists pfc_gap_zero_coefficient_condition_past_support. pfc_gap_zero_coefficient_condition_past_support+(L+M)=(S i)) -> (exists pfc_terms_code_zero_coefficient_source_past_support pfc_terms_scale_zero_coefficient_source_past_support pfc_natural_sum_zero_coefficient_source_past_support. ((forall pfc_index_zero_coefficient_source_past_supportdiagonal. (exists pfa_gap_zero_coefficient_source_past_supportdiagonalbound. pfa_gap_zero_coefficient_source_past_supportdiagonalbound + S (pfc_index_zero_coefficient_source_past_supportdiagonal) = (S (i))) -> exists pfc_value_zero_coefficient_source_past_supportdiagonal. ((((exists ff_h_pfp_zero_coefficient_source_past_supportdiagonalentry. ff_h_pfp_zero_coefficient_source_past_supportdiagonalentry + S (pfc_value_zero_coefficient_source_past_supportdiagonal) = S ((S (pfc_index_zero_coefficient_source_past_supportdiagonal)) * pfc_terms_scale_zero_coefficient_source_past_support)) /\ exists ff_q_pfp_zero_coefficient_source_past_supportdiagonalentry. pfc_terms_code_zero_coefficient_source_past_support = ff_q_pfp_zero_coefficient_source_past_supportdiagonalentry * S ((S (pfc_index_zero_coefficient_source_past_supportdiagonal)) * pfc_terms_scale_zero_coefficient_source_past_support) + (pfc_value_zero_coefficient_source_past_supportdiagonal))) /\ ((exists pfc_complement_zero_coefficient_source_past_supportdiagonalterm pfc_left_zero_coefficient_source_past_supportdiagonalterm pfc_right_zero_coefficient_source_past_supportdiagonalterm. (((pfc_index_zero_coefficient_source_past_supportdiagonal)+pfc_complement_zero_coefficient_source_past_supportdiagonalterm=(i)) /\ ((((((exists pfa_gap_zero_coefficient_source_past_supportdiagonaltermleftinside. pfa_gap_zero_coefficient_source_past_supportdiagonaltermleftinside + S (pfc_index_zero_coefficient_source_past_supportdiagonal) = (L)) /\ ((((exists ff_h_pfp_zero_coefficient_source_past_supportdiagonaltermleftentry. ff_h_pfp_zero_coefficient_source_past_supportdiagonaltermleftentry + S (pfc_left_zero_coefficient_source_past_supportdiagonalterm) = S ((S (pfc_index_zero_coefficient_source_past_supportdiagonal)) * ac)) /\ exists ff_q_pfp_zero_coefficient_source_past_supportdiagonaltermleftentry. ab = ff_q_pfp_zero_coefficient_source_past_supportdiagonaltermleftentry * S ((S (pfc_index_zero_coefficient_source_past_supportdiagonal)) * ac) + (pfc_left_zero_coefficient_source_past_supportdiagonalterm)))))) \/ (((exists pfc_gap_zero_coefficient_source_past_supportdiagonaltermleftoutside. pfc_gap_zero_coefficient_source_past_supportdiagonaltermleftoutside+(L)=(pfc_index_zero_coefficient_source_past_supportdiagonal)) /\ (((pfc_left_zero_coefficient_source_past_supportdiagonalterm)=0))))) /\ ((((((exists pfa_gap_zero_coefficient_source_past_supportdiagonaltermrightinside. pfa_gap_zero_coefficient_source_past_supportdiagonaltermrightinside + S (pfc_complement_zero_coefficient_source_past_supportdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_zero_coefficient_source_past_supportdiagonaltermrightentry. ff_h_pfp_zero_coefficient_source_past_supportdiagonaltermrightentry + S (pfc_right_zero_coefficient_source_past_supportdiagonalterm) = S ((S (pfc_complement_zero_coefficient_source_past_supportdiagonalterm)) * bc)) /\ exists ff_q_pfp_zero_coefficient_source_past_supportdiagonaltermrightentry. bb = ff_q_pfp_zero_coefficient_source_past_supportdiagonaltermrightentry * S ((S (pfc_complement_zero_coefficient_source_past_supportdiagonalterm)) * bc) + (pfc_right_zero_coefficient_source_past_supportdiagonalterm)))))) \/ (((exists pfc_gap_zero_coefficient_source_past_supportdiagonaltermrightoutside. pfc_gap_zero_coefficient_source_past_supportdiagonaltermrightoutside+(M)=(pfc_complement_zero_coefficient_source_past_supportdiagonalterm)) /\ (((pfc_right_zero_coefficient_source_past_supportdiagonalterm)=0))))) /\ (((pfc_value_zero_coefficient_source_past_supportdiagonal)=pfc_left_zero_coefficient_source_past_supportdiagonalterm*pfc_right_zero_coefficient_source_past_supportdiagonalterm))))))))))) /\ (((exists fs_u_pfc_zero_coefficient_source_past_supportsum fs_v_pfc_zero_coefficient_source_past_supportsum. ((((exists fs_h_pfc_zero_coefficient_source_past_supportsum_body_start. fs_h_pfc_zero_coefficient_source_past_supportsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_zero_coefficient_source_past_supportsum)) /\ exists fs_q_pfc_zero_coefficient_source_past_supportsum_body_start. fs_u_pfc_zero_coefficient_source_past_supportsum = fs_q_pfc_zero_coefficient_source_past_supportsum_body_start * S ((S (0)) * fs_v_pfc_zero_coefficient_source_past_supportsum) + (0))) /\ ((((exists fs_h_pfc_zero_coefficient_source_past_supportsum_body_terminal. fs_h_pfc_zero_coefficient_source_past_supportsum_body_terminal + S (pfc_natural_sum_zero_coefficient_source_past_support) = S ((S (S (i))) * fs_v_pfc_zero_coefficient_source_past_supportsum)) /\ exists fs_q_pfc_zero_coefficient_source_past_supportsum_body_terminal. fs_u_pfc_zero_coefficient_source_past_supportsum = fs_q_pfc_zero_coefficient_source_past_supportsum_body_terminal * S ((S (S (i))) * fs_v_pfc_zero_coefficient_source_past_supportsum) + (pfc_natural_sum_zero_coefficient_source_past_support))) /\ forall fs_i_pfc_zero_coefficient_source_past_supportsum_body_steps. (exists fs_lt_pfc_zero_coefficient_source_past_supportsum_body_steps_bound. fs_lt_pfc_zero_coefficient_source_past_supportsum_body_steps_bound + S fs_i_pfc_zero_coefficient_source_past_supportsum_body_steps = S (i)) -> exists fs_a_pfc_zero_coefficient_source_past_supportsum_body_steps fs_r_pfc_zero_coefficient_source_past_supportsum_body_steps fs_s_pfc_zero_coefficient_source_past_supportsum_body_steps. ((((exists fs_h_pfc_zero_coefficient_source_past_supportsum_body_steps_summand. fs_h_pfc_zero_coefficient_source_past_supportsum_body_steps_summand + S (fs_a_pfc_zero_coefficient_source_past_supportsum_body_steps) = S ((S (fs_i_pfc_zero_coefficient_source_past_supportsum_body_steps)) * pfc_terms_scale_zero_coefficient_source_past_support)) /\ exists fs_q_pfc_zero_coefficient_source_past_supportsum_body_steps_summand. pfc_terms_code_zero_coefficient_source_past_support = fs_q_pfc_zero_coefficient_source_past_supportsum_body_steps_summand * S ((S (fs_i_pfc_zero_coefficient_source_past_supportsum_body_steps)) * pfc_terms_scale_zero_coefficient_source_past_support) + (fs_a_pfc_zero_coefficient_source_past_supportsum_body_steps))) /\ ((((exists fs_h_pfc_zero_coefficient_source_past_supportsum_body_steps_partial. fs_h_pfc_zero_coefficient_source_past_supportsum_body_steps_partial + S (fs_r_pfc_zero_coefficient_source_past_supportsum_body_steps) = S ((S (fs_i_pfc_zero_coefficient_source_past_supportsum_body_steps)) * fs_v_pfc_zero_coefficient_source_past_supportsum)) /\ exists fs_q_pfc_zero_coefficient_source_past_supportsum_body_steps_partial. fs_u_pfc_zero_coefficient_source_past_supportsum = fs_q_pfc_zero_coefficient_source_past_supportsum_body_steps_partial * S ((S (fs_i_pfc_zero_coefficient_source_past_supportsum_body_steps)) * fs_v_pfc_zero_coefficient_source_past_supportsum) + (fs_r_pfc_zero_coefficient_source_past_supportsum_body_steps))) /\ ((((exists fs_h_pfc_zero_coefficient_source_past_supportsum_body_steps_successor. fs_h_pfc_zero_coefficient_source_past_supportsum_body_steps_successor + S (fs_s_pfc_zero_coefficient_source_past_supportsum_body_steps) = S ((S (S fs_i_pfc_zero_coefficient_source_past_supportsum_body_steps)) * fs_v_pfc_zero_coefficient_source_past_supportsum)) /\ exists fs_q_pfc_zero_coefficient_source_past_supportsum_body_steps_successor. fs_u_pfc_zero_coefficient_source_past_supportsum = fs_q_pfc_zero_coefficient_source_past_supportsum_body_steps_successor * S ((S (S fs_i_pfc_zero_coefficient_source_past_supportsum_body_steps)) * fs_v_pfc_zero_coefficient_source_past_supportsum) + (fs_s_pfc_zero_coefficient_source_past_supportsum_body_steps))) /\ fs_s_pfc_zero_coefficient_source_past_supportsum_body_steps = fs_r_pfc_zero_coefficient_source_past_supportsum_body_steps + fs_a_pfc_zero_coefficient_source_past_supportsum_body_steps)))))) /\ ((((exists pfa_gap_zero_coefficient_source_past_supportresiduebound. pfa_gap_zero_coefficient_source_past_supportresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_zero_coefficient_source_past_supportresiduecongruence pfa_offset_right_zero_coefficient_source_past_supportresiduecongruence. (pfc_natural_sum_zero_coefficient_source_past_support) + (p) * pfa_offset_left_zero_coefficient_source_past_supportresiduecongruence = (r) + (p) * pfa_offset_right_zero_coefficient_source_past_supportresiduecongruence))))))))) -> r=0
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro i
  9. intro r
  10. intro hp
  11. intro hc
  12. intro hr
  13. cases hr
  14. cases hr_witness
  15. cases hr_witness_witness
  16. cases hr_witness_witness_witness
  17. cases hr_witness_witness_witness_right
  18. have hz : forall pfp_repeat_index_zero_diagonal_past_support. (exists pfa_gap_zero_diagonal_past_supportindex. pfa_gap_zero_diagonal_past_supportindex + S (pfp_repeat_index_zero_diagonal_past_support) = (S i)) -> (((exists ff_h_pfp_zero_diagonal_past_supportentry. ff_h_pfp_zero_diagonal_past_supportentry + S (0) = S ((S (pfp_repeat_index_zero_diagonal_past_support)) * x1)) /\ exists ff_q_pfp_zero_diagonal_past_supportentry. x = ff_q_pfp_zero_diagonal_past_supportentry * S ((S (pfp_repeat_index_zero_diagonal_past_support)) * x1) + (0)))
  19. intro j
  20. intro hj
  21. have ht : exists t. ((((exists ff_h_pfp_zero_diagonal_entry_past_support. ff_h_pfp_zero_diagonal_entry_past_support + S (t) = S ((S (j)) * x1)) /\ exists ff_q_pfp_zero_diagonal_entry_past_support. x = ff_q_pfp_zero_diagonal_entry_past_support * S ((S (j)) * x1) + (t))) /\ ((exists pfc_complement_zero_diagonal_term_past_support pfc_left_zero_diagonal_term_past_support pfc_right_zero_diagonal_term_past_support. (((j)+pfc_complement_zero_diagonal_term_past_support=(i)) /\ ((((((exists pfa_gap_zero_diagonal_term_past_supportleftinside. pfa_gap_zero_diagonal_term_past_supportleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_zero_diagonal_term_past_supportleftentry. ff_h_pfp_zero_diagonal_term_past_supportleftentry + S (pfc_left_zero_diagonal_term_past_support) = S ((S (j)) * ac)) /\ exists ff_q_pfp_zero_diagonal_term_past_supportleftentry. ab = ff_q_pfp_zero_diagonal_term_past_supportleftentry * S ((S (j)) * ac) + (pfc_left_zero_diagonal_term_past_support)))))) \/ (((exists pfc_gap_zero_diagonal_term_past_supportleftoutside. pfc_gap_zero_diagonal_term_past_supportleftoutside+(L)=(j)) /\ (((pfc_left_zero_diagonal_term_past_support)=0))))) /\ ((((((exists pfa_gap_zero_diagonal_term_past_supportrightinside. pfa_gap_zero_diagonal_term_past_supportrightinside + S (pfc_complement_zero_diagonal_term_past_support) = (M)) /\ ((((exists ff_h_pfp_zero_diagonal_term_past_supportrightentry. ff_h_pfp_zero_diagonal_term_past_supportrightentry + S (pfc_right_zero_diagonal_term_past_support) = S ((S (pfc_complement_zero_diagonal_term_past_support)) * bc)) /\ exists ff_q_pfp_zero_diagonal_term_past_supportrightentry. bb = ff_q_pfp_zero_diagonal_term_past_supportrightentry * S ((S (pfc_complement_zero_diagonal_term_past_support)) * bc) + (pfc_right_zero_diagonal_term_past_support)))))) \/ (((exists pfc_gap_zero_diagonal_term_past_supportrightoutside. pfc_gap_zero_diagonal_term_past_supportrightoutside+(M)=(pfc_complement_zero_diagonal_term_past_support)) /\ (((pfc_right_zero_diagonal_term_past_support)=0))))) /\ (((t)=pfc_left_zero_diagonal_term_past_support*pfc_right_zero_diagonal_term_past_support))))))))))
  22. specialize hr_witness_witness_witness_left (j)
  23. apply hr_witness_witness_witness_left
  24. exact hj
  25. cases ht
  26. cases ht_witness
  27. have heq : x3=0
  28. specialize polynomial_diagonal_term_past_support (ab)
  29. specialize polynomial_diagonal_term_past_support (ac)
  30. specialize polynomial_diagonal_term_past_support (L)
  31. specialize polynomial_diagonal_term_past_support (bb)
  32. specialize polynomial_diagonal_term_past_support (bc)
  33. specialize polynomial_diagonal_term_past_support (M)
  34. specialize polynomial_diagonal_term_past_support (i)
  35. specialize polynomial_diagonal_term_past_support (j)
  36. specialize polynomial_diagonal_term_past_support (x3)
  37. apply polynomial_diagonal_term_past_support
  38. exact hc
  39. exact ht_witness_right
  40. rewrite heq at ht_witness_left
  41. rewrite heq at ht_witness_left
  42. exact ht_witness_left
  43. have hn : x2=0
  44. trans (S i)*0
  45. specialize beta_repeat_sum_exact (x)
  46. specialize beta_repeat_sum_exact (x1)
  47. specialize beta_repeat_sum_exact (0)
  48. specialize beta_repeat_sum_exact (S i)
  49. specialize beta_repeat_sum_exact (x2)
  50. apply beta_repeat_sum_exact
  51. exact hz
  52. exact hr_witness_witness_witness_right_left
  53. simp
  54. rewrite hn at hr_witness_witness_witness_right_right
  55. specialize prime_field_residue_bounded_value (p)
  56. specialize prime_field_residue_bounded_value (0)
  57. specialize prime_field_residue_bounded_value (r)
  58. apply prime_field_residue_bounded_value
  59. specialize one_le_of_ne_zero (p)
  60. apply one_le_of_ne_zero
  61. exact hp
  62. exact hr_witness_witness_witness_right_right
prime_field_polynomial_convolution_outside_zero · unchanged support, not a new admission
forall p ab ac L bb bc M cb cc N i r. ~(p=0) -> (((forall fom_index_pfp_outside_productleft. (exists fom_gap_pfp_outside_productleft_index_bound. fom_gap_pfp_outside_productleft_index_bound + S (fom_index_pfp_outside_productleft) = L) -> exists fom_value_pfp_outside_productleft. ((((exists fom_beta_height_pfp_outside_productleft_entry. fom_beta_height_pfp_outside_productleft_entry + S (fom_value_pfp_outside_productleft) = S ((S (fom_index_pfp_outside_productleft)) * ac)) /\ exists fom_beta_quotient_pfp_outside_productleft_entry. ab = fom_beta_quotient_pfp_outside_productleft_entry * S ((S (fom_index_pfp_outside_productleft)) * ac) + (fom_value_pfp_outside_productleft))) /\ (exists fom_gap_pfp_outside_productleft_value_bound. fom_gap_pfp_outside_productleft_value_bound + S (fom_value_pfp_outside_productleft) = p))) /\ (((forall fom_index_pfp_outside_productright. (exists fom_gap_pfp_outside_productright_index_bound. fom_gap_pfp_outside_productright_index_bound + S (fom_index_pfp_outside_productright) = M) -> exists fom_value_pfp_outside_productright. ((((exists fom_beta_height_pfp_outside_productright_entry. fom_beta_height_pfp_outside_productright_entry + S (fom_value_pfp_outside_productright) = S ((S (fom_index_pfp_outside_productright)) * bc)) /\ exists fom_beta_quotient_pfp_outside_productright_entry. bb = fom_beta_quotient_pfp_outside_productright_entry * S ((S (fom_index_pfp_outside_productright)) * bc) + (fom_value_pfp_outside_productright))) /\ (exists fom_gap_pfp_outside_productright_value_bound. fom_gap_pfp_outside_productright_value_bound + S (fom_value_pfp_outside_productright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_outside_productcoefficients. (exists pfa_gap_outside_productcoefficientsbound. pfa_gap_outside_productcoefficientsbound + S (pfc_index_outside_productcoefficients) = (N)) -> exists pfc_value_outside_productcoefficients. ((((exists ff_h_pfp_outside_productcoefficientsentry. ff_h_pfp_outside_productcoefficientsentry + S (pfc_value_outside_productcoefficients) = S ((S (pfc_index_outside_productcoefficients)) * cc)) /\ exists ff_q_pfp_outside_productcoefficientsentry. cb = ff_q_pfp_outside_productcoefficientsentry * S ((S (pfc_index_outside_productcoefficients)) * cc) + (pfc_value_outside_productcoefficients))) /\ ((exists pfc_terms_code_outside_productcoefficientscoefficient pfc_terms_scale_outside_productcoefficientscoefficient pfc_natural_sum_outside_productcoefficientscoefficient. ((forall pfc_index_outside_productcoefficientscoefficientdiagonal. (exists pfa_gap_outside_productcoefficientscoefficientdiagonalbound. pfa_gap_outside_productcoefficientscoefficientdiagonalbound + S (pfc_index_outside_productcoefficientscoefficientdiagonal) = (S (pfc_index_outside_productcoefficients))) -> exists pfc_value_outside_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_outside_productcoefficientscoefficientdiagonalentry. ff_h_pfp_outside_productcoefficientscoefficientdiagonalentry + S (pfc_value_outside_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_outside_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_outside_productcoefficientscoefficient)) /\ exists ff_q_pfp_outside_productcoefficientscoefficientdiagonalentry. pfc_terms_code_outside_productcoefficientscoefficient = ff_q_pfp_outside_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_outside_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_outside_productcoefficientscoefficient) + (pfc_value_outside_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_outside_productcoefficientscoefficientdiagonalterm pfc_left_outside_productcoefficientscoefficientdiagonalterm pfc_right_outside_productcoefficientscoefficientdiagonalterm. (((pfc_index_outside_productcoefficientscoefficientdiagonal)+pfc_complement_outside_productcoefficientscoefficientdiagonalterm=(pfc_index_outside_productcoefficients)) /\ ((((((exists pfa_gap_outside_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_outside_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_outside_productcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_outside_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_outside_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_outside_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_outside_productcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_outside_productcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_outside_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_outside_productcoefficientscoefficientdiagonal)) * ac) + (pfc_left_outside_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_outside_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_outside_productcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_outside_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_outside_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_outside_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_outside_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_outside_productcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_outside_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_outside_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_outside_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_outside_productcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_outside_productcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_outside_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_outside_productcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_outside_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_outside_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_outside_productcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_outside_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_outside_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_outside_productcoefficientscoefficientdiagonal)=pfc_left_outside_productcoefficientscoefficientdiagonalterm*pfc_right_outside_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_outside_productcoefficientscoefficientsum fs_v_pfc_outside_productcoefficientscoefficientsum. ((((exists fs_h_pfc_outside_productcoefficientscoefficientsum_body_start. fs_h_pfc_outside_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_outside_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_outside_productcoefficientscoefficientsum_body_start. fs_u_pfc_outside_productcoefficientscoefficientsum = fs_q_pfc_outside_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_outside_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_outside_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_outside_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_outside_productcoefficientscoefficient) = S ((S (S (pfc_index_outside_productcoefficients))) * fs_v_pfc_outside_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_outside_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_outside_productcoefficientscoefficientsum = fs_q_pfc_outside_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_outside_productcoefficients))) * fs_v_pfc_outside_productcoefficientscoefficientsum) + (pfc_natural_sum_outside_productcoefficientscoefficient))) /\ forall fs_i_pfc_outside_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_outside_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_outside_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_outside_productcoefficientscoefficientsum_body_steps = S (pfc_index_outside_productcoefficients)) -> exists fs_a_pfc_outside_productcoefficientscoefficientsum_body_steps fs_r_pfc_outside_productcoefficientscoefficientsum_body_steps fs_s_pfc_outside_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_outside_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_outside_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_outside_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_outside_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_outside_productcoefficientscoefficient)) /\ exists fs_q_pfc_outside_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_outside_productcoefficientscoefficient = fs_q_pfc_outside_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_outside_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_outside_productcoefficientscoefficient) + (fs_a_pfc_outside_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_outside_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_outside_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_outside_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_outside_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_outside_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_outside_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_outside_productcoefficientscoefficientsum = fs_q_pfc_outside_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_outside_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_outside_productcoefficientscoefficientsum) + (fs_r_pfc_outside_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_outside_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_outside_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_outside_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_outside_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_outside_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_outside_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_outside_productcoefficientscoefficientsum = fs_q_pfc_outside_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_outside_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_outside_productcoefficientscoefficientsum) + (fs_s_pfc_outside_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_outside_productcoefficientscoefficientsum_body_steps = fs_r_pfc_outside_productcoefficientscoefficientsum_body_steps + fs_a_pfc_outside_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_outside_productcoefficientscoefficientresiduebound. pfa_gap_outside_productcoefficientscoefficientresiduebound + S (pfc_value_outside_productcoefficients) = (p)) /\ ((exists pfa_offset_left_outside_productcoefficientscoefficientresiduecongruence pfa_offset_right_outside_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_outside_productcoefficientscoefficient) + (p) * pfa_offset_left_outside_productcoefficientscoefficientresiduecongruence = (pfc_value_outside_productcoefficients) + (p) * pfa_offset_right_outside_productcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (exists pfc_gap_outside_index. pfc_gap_outside_index+(N)=(i)) -> (exists pfc_terms_code_outside_coefficient pfc_terms_scale_outside_coefficient pfc_natural_sum_outside_coefficient. ((forall pfc_index_outside_coefficientdiagonal. (exists pfa_gap_outside_coefficientdiagonalbound. pfa_gap_outside_coefficientdiagonalbound + S (pfc_index_outside_coefficientdiagonal) = (S (i))) -> exists pfc_value_outside_coefficientdiagonal. ((((exists ff_h_pfp_outside_coefficientdiagonalentry. ff_h_pfp_outside_coefficientdiagonalentry + S (pfc_value_outside_coefficientdiagonal) = S ((S (pfc_index_outside_coefficientdiagonal)) * pfc_terms_scale_outside_coefficient)) /\ exists ff_q_pfp_outside_coefficientdiagonalentry. pfc_terms_code_outside_coefficient = ff_q_pfp_outside_coefficientdiagonalentry * S ((S (pfc_index_outside_coefficientdiagonal)) * pfc_terms_scale_outside_coefficient) + (pfc_value_outside_coefficientdiagonal))) /\ ((exists pfc_complement_outside_coefficientdiagonalterm pfc_left_outside_coefficientdiagonalterm pfc_right_outside_coefficientdiagonalterm. (((pfc_index_outside_coefficientdiagonal)+pfc_complement_outside_coefficientdiagonalterm=(i)) /\ ((((((exists pfa_gap_outside_coefficientdiagonaltermleftinside. pfa_gap_outside_coefficientdiagonaltermleftinside + S (pfc_index_outside_coefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_outside_coefficientdiagonaltermleftentry. ff_h_pfp_outside_coefficientdiagonaltermleftentry + S (pfc_left_outside_coefficientdiagonalterm) = S ((S (pfc_index_outside_coefficientdiagonal)) * ac)) /\ exists ff_q_pfp_outside_coefficientdiagonaltermleftentry. ab = ff_q_pfp_outside_coefficientdiagonaltermleftentry * S ((S (pfc_index_outside_coefficientdiagonal)) * ac) + (pfc_left_outside_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_outside_coefficientdiagonaltermleftoutside. pfc_gap_outside_coefficientdiagonaltermleftoutside+(L)=(pfc_index_outside_coefficientdiagonal)) /\ (((pfc_left_outside_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_outside_coefficientdiagonaltermrightinside. pfa_gap_outside_coefficientdiagonaltermrightinside + S (pfc_complement_outside_coefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_outside_coefficientdiagonaltermrightentry. ff_h_pfp_outside_coefficientdiagonaltermrightentry + S (pfc_right_outside_coefficientdiagonalterm) = S ((S (pfc_complement_outside_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_outside_coefficientdiagonaltermrightentry. bb = ff_q_pfp_outside_coefficientdiagonaltermrightentry * S ((S (pfc_complement_outside_coefficientdiagonalterm)) * bc) + (pfc_right_outside_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_outside_coefficientdiagonaltermrightoutside. pfc_gap_outside_coefficientdiagonaltermrightoutside+(M)=(pfc_complement_outside_coefficientdiagonalterm)) /\ (((pfc_right_outside_coefficientdiagonalterm)=0))))) /\ (((pfc_value_outside_coefficientdiagonal)=pfc_left_outside_coefficientdiagonalterm*pfc_right_outside_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_outside_coefficientsum fs_v_pfc_outside_coefficientsum. ((((exists fs_h_pfc_outside_coefficientsum_body_start. fs_h_pfc_outside_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_outside_coefficientsum)) /\ exists fs_q_pfc_outside_coefficientsum_body_start. fs_u_pfc_outside_coefficientsum = fs_q_pfc_outside_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_outside_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_outside_coefficientsum_body_terminal. fs_h_pfc_outside_coefficientsum_body_terminal + S (pfc_natural_sum_outside_coefficient) = S ((S (S (i))) * fs_v_pfc_outside_coefficientsum)) /\ exists fs_q_pfc_outside_coefficientsum_body_terminal. fs_u_pfc_outside_coefficientsum = fs_q_pfc_outside_coefficientsum_body_terminal * S ((S (S (i))) * fs_v_pfc_outside_coefficientsum) + (pfc_natural_sum_outside_coefficient))) /\ forall fs_i_pfc_outside_coefficientsum_body_steps. (exists fs_lt_pfc_outside_coefficientsum_body_steps_bound. fs_lt_pfc_outside_coefficientsum_body_steps_bound + S fs_i_pfc_outside_coefficientsum_body_steps = S (i)) -> exists fs_a_pfc_outside_coefficientsum_body_steps fs_r_pfc_outside_coefficientsum_body_steps fs_s_pfc_outside_coefficientsum_body_steps. ((((exists fs_h_pfc_outside_coefficientsum_body_steps_summand. fs_h_pfc_outside_coefficientsum_body_steps_summand + S (fs_a_pfc_outside_coefficientsum_body_steps) = S ((S (fs_i_pfc_outside_coefficientsum_body_steps)) * pfc_terms_scale_outside_coefficient)) /\ exists fs_q_pfc_outside_coefficientsum_body_steps_summand. pfc_terms_code_outside_coefficient = fs_q_pfc_outside_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_outside_coefficientsum_body_steps)) * pfc_terms_scale_outside_coefficient) + (fs_a_pfc_outside_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_outside_coefficientsum_body_steps_partial. fs_h_pfc_outside_coefficientsum_body_steps_partial + S (fs_r_pfc_outside_coefficientsum_body_steps) = S ((S (fs_i_pfc_outside_coefficientsum_body_steps)) * fs_v_pfc_outside_coefficientsum)) /\ exists fs_q_pfc_outside_coefficientsum_body_steps_partial. fs_u_pfc_outside_coefficientsum = fs_q_pfc_outside_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_outside_coefficientsum_body_steps)) * fs_v_pfc_outside_coefficientsum) + (fs_r_pfc_outside_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_outside_coefficientsum_body_steps_successor. fs_h_pfc_outside_coefficientsum_body_steps_successor + S (fs_s_pfc_outside_coefficientsum_body_steps) = S ((S (S fs_i_pfc_outside_coefficientsum_body_steps)) * fs_v_pfc_outside_coefficientsum)) /\ exists fs_q_pfc_outside_coefficientsum_body_steps_successor. fs_u_pfc_outside_coefficientsum = fs_q_pfc_outside_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_outside_coefficientsum_body_steps)) * fs_v_pfc_outside_coefficientsum) + (fs_s_pfc_outside_coefficientsum_body_steps))) /\ fs_s_pfc_outside_coefficientsum_body_steps = fs_r_pfc_outside_coefficientsum_body_steps + fs_a_pfc_outside_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_outside_coefficientresiduebound. pfa_gap_outside_coefficientresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_outside_coefficientresiduecongruence pfa_offset_right_outside_coefficientresiduecongruence. (pfc_natural_sum_outside_coefficient) + (p) * pfa_offset_left_outside_coefficientresiduecongruence = (r) + (p) * pfa_offset_right_outside_coefficientresiduecongruence))))))))) -> r=0
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro cb
  9. intro cc
  10. intro N
  11. intro i
  12. intro r
  13. intro hp
  14. intro hconv
  15. intro hi
  16. intro hr
  17. cases hconv
  18. cases hconv_right
  19. cases hconv_right_right
  20. cases hconv_right_right_left
  21. cases hconv_right_right_left_left
  22. cases hconv_right_right_left_left_left
  23. specialize prime_field_convolution_coefficient_zero_left (p)
  24. specialize prime_field_convolution_coefficient_zero_left (ab)
  25. specialize prime_field_convolution_coefficient_zero_left (ac)
  26. specialize prime_field_convolution_coefficient_zero_left (L)
  27. specialize prime_field_convolution_coefficient_zero_left (bb)
  28. specialize prime_field_convolution_coefficient_zero_left (bc)
  29. specialize prime_field_convolution_coefficient_zero_left (M)
  30. specialize prime_field_convolution_coefficient_zero_left (i)
  31. specialize prime_field_convolution_coefficient_zero_left (r)
  32. apply prime_field_convolution_coefficient_zero_left
  33. exact hp
  34. intro j
  35. intro hj
  36. exfalso
  37. rewrite hconv_right_right_left_left_left_left at hj
  38. specialize lt_not_le (j)
  39. specialize lt_not_le (0)
  40. apply lt_not_le
  41. exact hj
  42. specialize zero_le (j)
  43. apply zero_le
  44. exact hr
  45. specialize prime_field_convolution_coefficient_zero_right (p)
  46. specialize prime_field_convolution_coefficient_zero_right (ab)
  47. specialize prime_field_convolution_coefficient_zero_right (ac)
  48. specialize prime_field_convolution_coefficient_zero_right (L)
  49. specialize prime_field_convolution_coefficient_zero_right (bb)
  50. specialize prime_field_convolution_coefficient_zero_right (bc)
  51. specialize prime_field_convolution_coefficient_zero_right (M)
  52. specialize prime_field_convolution_coefficient_zero_right (i)
  53. specialize prime_field_convolution_coefficient_zero_right (r)
  54. apply prime_field_convolution_coefficient_zero_right
  55. exact hp
  56. intro j
  57. intro hj
  58. exfalso
  59. rewrite hconv_right_right_left_left_left_right at hj
  60. specialize lt_not_le (j)
  61. specialize lt_not_le (0)
  62. apply lt_not_le
  63. exact hj
  64. specialize zero_le (j)
  65. apply zero_le
  66. exact hr
  67. cases hconv_right_right_left_right
  68. cases hconv_right_right_left_right_right
  69. specialize prime_field_convolution_coefficient_zero_past_support (p)
  70. specialize prime_field_convolution_coefficient_zero_past_support (ab)
  71. specialize prime_field_convolution_coefficient_zero_past_support (ac)
  72. specialize prime_field_convolution_coefficient_zero_past_support (L)
  73. specialize prime_field_convolution_coefficient_zero_past_support (bb)
  74. specialize prime_field_convolution_coefficient_zero_past_support (bc)
  75. specialize prime_field_convolution_coefficient_zero_past_support (M)
  76. specialize prime_field_convolution_coefficient_zero_past_support (i)
  77. specialize prime_field_convolution_coefficient_zero_past_support (r)
  78. apply prime_field_convolution_coefficient_zero_past_support
  79. exact hp
  80. rewrite hconv_right_right_left_right_right_right
  81. specialize succ_le_succ (N)
  82. specialize succ_le_succ (i)
  83. apply succ_le_succ
  84. exact hi
  85. exact hr
prime_field_polynomial_convolution_zero_left · unchanged support, not a new admission
forall p ab ac L bb bc M cb cc N. ~(p=0) -> (forall pfp_repeat_index_convolution_zero_left. (exists pfa_gap_convolution_zero_leftindex. pfa_gap_convolution_zero_leftindex + S (pfp_repeat_index_convolution_zero_left) = (L)) -> (((exists ff_h_pfp_convolution_zero_leftentry. ff_h_pfp_convolution_zero_leftentry + S (0) = S ((S (pfp_repeat_index_convolution_zero_left)) * ac)) /\ exists ff_q_pfp_convolution_zero_leftentry. ab = ff_q_pfp_convolution_zero_leftentry * S ((S (pfp_repeat_index_convolution_zero_left)) * ac) + (0)))) -> (((forall fom_index_pfp_convolution_zero_source_leftleft. (exists fom_gap_pfp_convolution_zero_source_leftleft_index_bound. fom_gap_pfp_convolution_zero_source_leftleft_index_bound + S (fom_index_pfp_convolution_zero_source_leftleft) = L) -> exists fom_value_pfp_convolution_zero_source_leftleft. ((((exists fom_beta_height_pfp_convolution_zero_source_leftleft_entry. fom_beta_height_pfp_convolution_zero_source_leftleft_entry + S (fom_value_pfp_convolution_zero_source_leftleft) = S ((S (fom_index_pfp_convolution_zero_source_leftleft)) * ac)) /\ exists fom_beta_quotient_pfp_convolution_zero_source_leftleft_entry. ab = fom_beta_quotient_pfp_convolution_zero_source_leftleft_entry * S ((S (fom_index_pfp_convolution_zero_source_leftleft)) * ac) + (fom_value_pfp_convolution_zero_source_leftleft))) /\ (exists fom_gap_pfp_convolution_zero_source_leftleft_value_bound. fom_gap_pfp_convolution_zero_source_leftleft_value_bound + S (fom_value_pfp_convolution_zero_source_leftleft) = p))) /\ (((forall fom_index_pfp_convolution_zero_source_leftright. (exists fom_gap_pfp_convolution_zero_source_leftright_index_bound. fom_gap_pfp_convolution_zero_source_leftright_index_bound + S (fom_index_pfp_convolution_zero_source_leftright) = M) -> exists fom_value_pfp_convolution_zero_source_leftright. ((((exists fom_beta_height_pfp_convolution_zero_source_leftright_entry. fom_beta_height_pfp_convolution_zero_source_leftright_entry + S (fom_value_pfp_convolution_zero_source_leftright) = S ((S (fom_index_pfp_convolution_zero_source_leftright)) * bc)) /\ exists fom_beta_quotient_pfp_convolution_zero_source_leftright_entry. bb = fom_beta_quotient_pfp_convolution_zero_source_leftright_entry * S ((S (fom_index_pfp_convolution_zero_source_leftright)) * bc) + (fom_value_pfp_convolution_zero_source_leftright))) /\ (exists fom_gap_pfp_convolution_zero_source_leftright_value_bound. fom_gap_pfp_convolution_zero_source_leftright_value_bound + S (fom_value_pfp_convolution_zero_source_leftright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_convolution_zero_source_leftcoefficients. (exists pfa_gap_convolution_zero_source_leftcoefficientsbound. pfa_gap_convolution_zero_source_leftcoefficientsbound + S (pfc_index_convolution_zero_source_leftcoefficients) = (N)) -> exists pfc_value_convolution_zero_source_leftcoefficients. ((((exists ff_h_pfp_convolution_zero_source_leftcoefficientsentry. ff_h_pfp_convolution_zero_source_leftcoefficientsentry + S (pfc_value_convolution_zero_source_leftcoefficients) = S ((S (pfc_index_convolution_zero_source_leftcoefficients)) * cc)) /\ exists ff_q_pfp_convolution_zero_source_leftcoefficientsentry. cb = ff_q_pfp_convolution_zero_source_leftcoefficientsentry * S ((S (pfc_index_convolution_zero_source_leftcoefficients)) * cc) + (pfc_value_convolution_zero_source_leftcoefficients))) /\ ((exists pfc_terms_code_convolution_zero_source_leftcoefficientscoefficient pfc_terms_scale_convolution_zero_source_leftcoefficientscoefficient pfc_natural_sum_convolution_zero_source_leftcoefficientscoefficient. ((forall pfc_index_convolution_zero_source_leftcoefficientscoefficientdiagonal. (exists pfa_gap_convolution_zero_source_leftcoefficientscoefficientdiagonalbound. pfa_gap_convolution_zero_source_leftcoefficientscoefficientdiagonalbound + S (pfc_index_convolution_zero_source_leftcoefficientscoefficientdiagonal) = (S (pfc_index_convolution_zero_source_leftcoefficients))) -> exists pfc_value_convolution_zero_source_leftcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_convolution_zero_source_leftcoefficientscoefficientdiagonalentry. ff_h_pfp_convolution_zero_source_leftcoefficientscoefficientdiagonalentry + S (pfc_value_convolution_zero_source_leftcoefficientscoefficientdiagonal) = S ((S (pfc_index_convolution_zero_source_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_convolution_zero_source_leftcoefficientscoefficient)) /\ exists ff_q_pfp_convolution_zero_source_leftcoefficientscoefficientdiagonalentry. pfc_terms_code_convolution_zero_source_leftcoefficientscoefficient = ff_q_pfp_convolution_zero_source_leftcoefficientscoefficientdiagonalentry * S ((S (pfc_index_convolution_zero_source_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_convolution_zero_source_leftcoefficientscoefficient) + (pfc_value_convolution_zero_source_leftcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_convolution_zero_source_leftcoefficientscoefficientdiagonalterm pfc_left_convolution_zero_source_leftcoefficientscoefficientdiagonalterm pfc_right_convolution_zero_source_leftcoefficientscoefficientdiagonalterm. (((pfc_index_convolution_zero_source_leftcoefficientscoefficientdiagonal)+pfc_complement_convolution_zero_source_leftcoefficientscoefficientdiagonalterm=(pfc_index_convolution_zero_source_leftcoefficients)) /\ ((((((exists pfa_gap_convolution_zero_source_leftcoefficientscoefficientdiagonaltermleftinside. pfa_gap_convolution_zero_source_leftcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_convolution_zero_source_leftcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_convolution_zero_source_leftcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_convolution_zero_source_leftcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_convolution_zero_source_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_convolution_zero_source_leftcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_convolution_zero_source_leftcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_convolution_zero_source_leftcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_convolution_zero_source_leftcoefficientscoefficientdiagonal)) * ac) + (pfc_left_convolution_zero_source_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_zero_source_leftcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_convolution_zero_source_leftcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_convolution_zero_source_leftcoefficientscoefficientdiagonal)) /\ (((pfc_left_convolution_zero_source_leftcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_convolution_zero_source_leftcoefficientscoefficientdiagonaltermrightinside. pfa_gap_convolution_zero_source_leftcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_convolution_zero_source_leftcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_convolution_zero_source_leftcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_convolution_zero_source_leftcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_convolution_zero_source_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_convolution_zero_source_leftcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_convolution_zero_source_leftcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_convolution_zero_source_leftcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_convolution_zero_source_leftcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_convolution_zero_source_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_zero_source_leftcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_convolution_zero_source_leftcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_convolution_zero_source_leftcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_convolution_zero_source_leftcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_convolution_zero_source_leftcoefficientscoefficientdiagonal)=pfc_left_convolution_zero_source_leftcoefficientscoefficientdiagonalterm*pfc_right_convolution_zero_source_leftcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_convolution_zero_source_leftcoefficientscoefficientsum fs_v_pfc_convolution_zero_source_leftcoefficientscoefficientsum. ((((exists fs_h_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_start. fs_h_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_convolution_zero_source_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_start. fs_u_pfc_convolution_zero_source_leftcoefficientscoefficientsum = fs_q_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_convolution_zero_source_leftcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_terminal. fs_h_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_convolution_zero_source_leftcoefficientscoefficient) = S ((S (S (pfc_index_convolution_zero_source_leftcoefficients))) * fs_v_pfc_convolution_zero_source_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_terminal. fs_u_pfc_convolution_zero_source_leftcoefficientscoefficientsum = fs_q_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_convolution_zero_source_leftcoefficients))) * fs_v_pfc_convolution_zero_source_leftcoefficientscoefficientsum) + (pfc_natural_sum_convolution_zero_source_leftcoefficientscoefficient))) /\ forall fs_i_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps = S (pfc_index_convolution_zero_source_leftcoefficients)) -> exists fs_a_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps fs_r_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps fs_s_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_convolution_zero_source_leftcoefficientscoefficient)) /\ exists fs_q_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_convolution_zero_source_leftcoefficientscoefficient = fs_q_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_convolution_zero_source_leftcoefficientscoefficient) + (fs_a_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_zero_source_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_convolution_zero_source_leftcoefficientscoefficientsum = fs_q_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_zero_source_leftcoefficientscoefficientsum) + (fs_r_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_zero_source_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_convolution_zero_source_leftcoefficientscoefficientsum = fs_q_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_zero_source_leftcoefficientscoefficientsum) + (fs_s_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps = fs_r_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps + fs_a_pfc_convolution_zero_source_leftcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_convolution_zero_source_leftcoefficientscoefficientresiduebound. pfa_gap_convolution_zero_source_leftcoefficientscoefficientresiduebound + S (pfc_value_convolution_zero_source_leftcoefficients) = (p)) /\ ((exists pfa_offset_left_convolution_zero_source_leftcoefficientscoefficientresiduecongruence pfa_offset_right_convolution_zero_source_leftcoefficientscoefficientresiduecongruence. (pfc_natural_sum_convolution_zero_source_leftcoefficientscoefficient) + (p) * pfa_offset_left_convolution_zero_source_leftcoefficientscoefficientresiduecongruence = (pfc_value_convolution_zero_source_leftcoefficients) + (p) * pfa_offset_right_convolution_zero_source_leftcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (forall pfp_repeat_index_convolution_zero_result_left. (exists pfa_gap_convolution_zero_result_leftindex. pfa_gap_convolution_zero_result_leftindex + S (pfp_repeat_index_convolution_zero_result_left) = (N)) -> (((exists ff_h_pfp_convolution_zero_result_leftentry. ff_h_pfp_convolution_zero_result_leftentry + S (0) = S ((S (pfp_repeat_index_convolution_zero_result_left)) * cc)) /\ exists ff_q_pfp_convolution_zero_result_leftentry. cb = ff_q_pfp_convolution_zero_result_leftentry * S ((S (pfp_repeat_index_convolution_zero_result_left)) * cc) + (0))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro cb
  9. intro cc
  10. intro N
  11. intro hp
  12. intro hz
  13. intro hc
  14. cases hc
  15. cases hc_right
  16. cases hc_right_right
  17. intro i
  18. intro hi
  19. have hv : exists r. ((((exists ff_h_pfp_convolution_zero_entry_left. ff_h_pfp_convolution_zero_entry_left + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_convolution_zero_entry_left. cb = ff_q_pfp_convolution_zero_entry_left * S ((S (i)) * cc) + (r))) /\ ((exists pfc_terms_code_convolution_zero_value_left pfc_terms_scale_convolution_zero_value_left pfc_natural_sum_convolution_zero_value_left. ((forall pfc_index_convolution_zero_value_leftdiagonal. (exists pfa_gap_convolution_zero_value_leftdiagonalbound. pfa_gap_convolution_zero_value_leftdiagonalbound + S (pfc_index_convolution_zero_value_leftdiagonal) = (S (i))) -> exists pfc_value_convolution_zero_value_leftdiagonal. ((((exists ff_h_pfp_convolution_zero_value_leftdiagonalentry. ff_h_pfp_convolution_zero_value_leftdiagonalentry + S (pfc_value_convolution_zero_value_leftdiagonal) = S ((S (pfc_index_convolution_zero_value_leftdiagonal)) * pfc_terms_scale_convolution_zero_value_left)) /\ exists ff_q_pfp_convolution_zero_value_leftdiagonalentry. pfc_terms_code_convolution_zero_value_left = ff_q_pfp_convolution_zero_value_leftdiagonalentry * S ((S (pfc_index_convolution_zero_value_leftdiagonal)) * pfc_terms_scale_convolution_zero_value_left) + (pfc_value_convolution_zero_value_leftdiagonal))) /\ ((exists pfc_complement_convolution_zero_value_leftdiagonalterm pfc_left_convolution_zero_value_leftdiagonalterm pfc_right_convolution_zero_value_leftdiagonalterm. (((pfc_index_convolution_zero_value_leftdiagonal)+pfc_complement_convolution_zero_value_leftdiagonalterm=(i)) /\ ((((((exists pfa_gap_convolution_zero_value_leftdiagonaltermleftinside. pfa_gap_convolution_zero_value_leftdiagonaltermleftinside + S (pfc_index_convolution_zero_value_leftdiagonal) = (L)) /\ ((((exists ff_h_pfp_convolution_zero_value_leftdiagonaltermleftentry. ff_h_pfp_convolution_zero_value_leftdiagonaltermleftentry + S (pfc_left_convolution_zero_value_leftdiagonalterm) = S ((S (pfc_index_convolution_zero_value_leftdiagonal)) * ac)) /\ exists ff_q_pfp_convolution_zero_value_leftdiagonaltermleftentry. ab = ff_q_pfp_convolution_zero_value_leftdiagonaltermleftentry * S ((S (pfc_index_convolution_zero_value_leftdiagonal)) * ac) + (pfc_left_convolution_zero_value_leftdiagonalterm)))))) \/ (((exists pfc_gap_convolution_zero_value_leftdiagonaltermleftoutside. pfc_gap_convolution_zero_value_leftdiagonaltermleftoutside+(L)=(pfc_index_convolution_zero_value_leftdiagonal)) /\ (((pfc_left_convolution_zero_value_leftdiagonalterm)=0))))) /\ ((((((exists pfa_gap_convolution_zero_value_leftdiagonaltermrightinside. pfa_gap_convolution_zero_value_leftdiagonaltermrightinside + S (pfc_complement_convolution_zero_value_leftdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_convolution_zero_value_leftdiagonaltermrightentry. ff_h_pfp_convolution_zero_value_leftdiagonaltermrightentry + S (pfc_right_convolution_zero_value_leftdiagonalterm) = S ((S (pfc_complement_convolution_zero_value_leftdiagonalterm)) * bc)) /\ exists ff_q_pfp_convolution_zero_value_leftdiagonaltermrightentry. bb = ff_q_pfp_convolution_zero_value_leftdiagonaltermrightentry * S ((S (pfc_complement_convolution_zero_value_leftdiagonalterm)) * bc) + (pfc_right_convolution_zero_value_leftdiagonalterm)))))) \/ (((exists pfc_gap_convolution_zero_value_leftdiagonaltermrightoutside. pfc_gap_convolution_zero_value_leftdiagonaltermrightoutside+(M)=(pfc_complement_convolution_zero_value_leftdiagonalterm)) /\ (((pfc_right_convolution_zero_value_leftdiagonalterm)=0))))) /\ (((pfc_value_convolution_zero_value_leftdiagonal)=pfc_left_convolution_zero_value_leftdiagonalterm*pfc_right_convolution_zero_value_leftdiagonalterm))))))))))) /\ (((exists fs_u_pfc_convolution_zero_value_leftsum fs_v_pfc_convolution_zero_value_leftsum. ((((exists fs_h_pfc_convolution_zero_value_leftsum_body_start. fs_h_pfc_convolution_zero_value_leftsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_convolution_zero_value_leftsum)) /\ exists fs_q_pfc_convolution_zero_value_leftsum_body_start. fs_u_pfc_convolution_zero_value_leftsum = fs_q_pfc_convolution_zero_value_leftsum_body_start * S ((S (0)) * fs_v_pfc_convolution_zero_value_leftsum) + (0))) /\ ((((exists fs_h_pfc_convolution_zero_value_leftsum_body_terminal. fs_h_pfc_convolution_zero_value_leftsum_body_terminal + S (pfc_natural_sum_convolution_zero_value_left) = S ((S (S (i))) * fs_v_pfc_convolution_zero_value_leftsum)) /\ exists fs_q_pfc_convolution_zero_value_leftsum_body_terminal. fs_u_pfc_convolution_zero_value_leftsum = fs_q_pfc_convolution_zero_value_leftsum_body_terminal * S ((S (S (i))) * fs_v_pfc_convolution_zero_value_leftsum) + (pfc_natural_sum_convolution_zero_value_left))) /\ forall fs_i_pfc_convolution_zero_value_leftsum_body_steps. (exists fs_lt_pfc_convolution_zero_value_leftsum_body_steps_bound. fs_lt_pfc_convolution_zero_value_leftsum_body_steps_bound + S fs_i_pfc_convolution_zero_value_leftsum_body_steps = S (i)) -> exists fs_a_pfc_convolution_zero_value_leftsum_body_steps fs_r_pfc_convolution_zero_value_leftsum_body_steps fs_s_pfc_convolution_zero_value_leftsum_body_steps. ((((exists fs_h_pfc_convolution_zero_value_leftsum_body_steps_summand. fs_h_pfc_convolution_zero_value_leftsum_body_steps_summand + S (fs_a_pfc_convolution_zero_value_leftsum_body_steps) = S ((S (fs_i_pfc_convolution_zero_value_leftsum_body_steps)) * pfc_terms_scale_convolution_zero_value_left)) /\ exists fs_q_pfc_convolution_zero_value_leftsum_body_steps_summand. pfc_terms_code_convolution_zero_value_left = fs_q_pfc_convolution_zero_value_leftsum_body_steps_summand * S ((S (fs_i_pfc_convolution_zero_value_leftsum_body_steps)) * pfc_terms_scale_convolution_zero_value_left) + (fs_a_pfc_convolution_zero_value_leftsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_zero_value_leftsum_body_steps_partial. fs_h_pfc_convolution_zero_value_leftsum_body_steps_partial + S (fs_r_pfc_convolution_zero_value_leftsum_body_steps) = S ((S (fs_i_pfc_convolution_zero_value_leftsum_body_steps)) * fs_v_pfc_convolution_zero_value_leftsum)) /\ exists fs_q_pfc_convolution_zero_value_leftsum_body_steps_partial. fs_u_pfc_convolution_zero_value_leftsum = fs_q_pfc_convolution_zero_value_leftsum_body_steps_partial * S ((S (fs_i_pfc_convolution_zero_value_leftsum_body_steps)) * fs_v_pfc_convolution_zero_value_leftsum) + (fs_r_pfc_convolution_zero_value_leftsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_zero_value_leftsum_body_steps_successor. fs_h_pfc_convolution_zero_value_leftsum_body_steps_successor + S (fs_s_pfc_convolution_zero_value_leftsum_body_steps) = S ((S (S fs_i_pfc_convolution_zero_value_leftsum_body_steps)) * fs_v_pfc_convolution_zero_value_leftsum)) /\ exists fs_q_pfc_convolution_zero_value_leftsum_body_steps_successor. fs_u_pfc_convolution_zero_value_leftsum = fs_q_pfc_convolution_zero_value_leftsum_body_steps_successor * S ((S (S fs_i_pfc_convolution_zero_value_leftsum_body_steps)) * fs_v_pfc_convolution_zero_value_leftsum) + (fs_s_pfc_convolution_zero_value_leftsum_body_steps))) /\ fs_s_pfc_convolution_zero_value_leftsum_body_steps = fs_r_pfc_convolution_zero_value_leftsum_body_steps + fs_a_pfc_convolution_zero_value_leftsum_body_steps)))))) /\ ((((exists pfa_gap_convolution_zero_value_leftresiduebound. pfa_gap_convolution_zero_value_leftresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_convolution_zero_value_leftresiduecongruence pfa_offset_right_convolution_zero_value_leftresiduecongruence. (pfc_natural_sum_convolution_zero_value_left) + (p) * pfa_offset_left_convolution_zero_value_leftresiduecongruence = (r) + (p) * pfa_offset_right_convolution_zero_value_leftresiduecongruence)))))))))))
  20. specialize hc_right_right_right (i)
  21. apply hc_right_right_right
  22. exact hi
  23. cases hv
  24. cases hv_witness
  25. have heq : x=0
  26. specialize prime_field_convolution_coefficient_zero_left (p)
  27. specialize prime_field_convolution_coefficient_zero_left (ab)
  28. specialize prime_field_convolution_coefficient_zero_left (ac)
  29. specialize prime_field_convolution_coefficient_zero_left (L)
  30. specialize prime_field_convolution_coefficient_zero_left (bb)
  31. specialize prime_field_convolution_coefficient_zero_left (bc)
  32. specialize prime_field_convolution_coefficient_zero_left (M)
  33. specialize prime_field_convolution_coefficient_zero_left (i)
  34. specialize prime_field_convolution_coefficient_zero_left (x)
  35. apply prime_field_convolution_coefficient_zero_left
  36. exact hp
  37. exact hz
  38. exact hv_witness_right
  39. rewrite heq at hv_witness_left
  40. rewrite heq at hv_witness_left
  41. exact hv_witness_left
prime_field_polynomial_convolution_zero_right · unchanged support, not a new admission
forall p ab ac L bb bc M cb cc N. ~(p=0) -> (forall pfp_repeat_index_convolution_zero_right. (exists pfa_gap_convolution_zero_rightindex. pfa_gap_convolution_zero_rightindex + S (pfp_repeat_index_convolution_zero_right) = (M)) -> (((exists ff_h_pfp_convolution_zero_rightentry. ff_h_pfp_convolution_zero_rightentry + S (0) = S ((S (pfp_repeat_index_convolution_zero_right)) * bc)) /\ exists ff_q_pfp_convolution_zero_rightentry. bb = ff_q_pfp_convolution_zero_rightentry * S ((S (pfp_repeat_index_convolution_zero_right)) * bc) + (0)))) -> (((forall fom_index_pfp_convolution_zero_source_rightleft. (exists fom_gap_pfp_convolution_zero_source_rightleft_index_bound. fom_gap_pfp_convolution_zero_source_rightleft_index_bound + S (fom_index_pfp_convolution_zero_source_rightleft) = L) -> exists fom_value_pfp_convolution_zero_source_rightleft. ((((exists fom_beta_height_pfp_convolution_zero_source_rightleft_entry. fom_beta_height_pfp_convolution_zero_source_rightleft_entry + S (fom_value_pfp_convolution_zero_source_rightleft) = S ((S (fom_index_pfp_convolution_zero_source_rightleft)) * ac)) /\ exists fom_beta_quotient_pfp_convolution_zero_source_rightleft_entry. ab = fom_beta_quotient_pfp_convolution_zero_source_rightleft_entry * S ((S (fom_index_pfp_convolution_zero_source_rightleft)) * ac) + (fom_value_pfp_convolution_zero_source_rightleft))) /\ (exists fom_gap_pfp_convolution_zero_source_rightleft_value_bound. fom_gap_pfp_convolution_zero_source_rightleft_value_bound + S (fom_value_pfp_convolution_zero_source_rightleft) = p))) /\ (((forall fom_index_pfp_convolution_zero_source_rightright. (exists fom_gap_pfp_convolution_zero_source_rightright_index_bound. fom_gap_pfp_convolution_zero_source_rightright_index_bound + S (fom_index_pfp_convolution_zero_source_rightright) = M) -> exists fom_value_pfp_convolution_zero_source_rightright. ((((exists fom_beta_height_pfp_convolution_zero_source_rightright_entry. fom_beta_height_pfp_convolution_zero_source_rightright_entry + S (fom_value_pfp_convolution_zero_source_rightright) = S ((S (fom_index_pfp_convolution_zero_source_rightright)) * bc)) /\ exists fom_beta_quotient_pfp_convolution_zero_source_rightright_entry. bb = fom_beta_quotient_pfp_convolution_zero_source_rightright_entry * S ((S (fom_index_pfp_convolution_zero_source_rightright)) * bc) + (fom_value_pfp_convolution_zero_source_rightright))) /\ (exists fom_gap_pfp_convolution_zero_source_rightright_value_bound. fom_gap_pfp_convolution_zero_source_rightright_value_bound + S (fom_value_pfp_convolution_zero_source_rightright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_convolution_zero_source_rightcoefficients. (exists pfa_gap_convolution_zero_source_rightcoefficientsbound. pfa_gap_convolution_zero_source_rightcoefficientsbound + S (pfc_index_convolution_zero_source_rightcoefficients) = (N)) -> exists pfc_value_convolution_zero_source_rightcoefficients. ((((exists ff_h_pfp_convolution_zero_source_rightcoefficientsentry. ff_h_pfp_convolution_zero_source_rightcoefficientsentry + S (pfc_value_convolution_zero_source_rightcoefficients) = S ((S (pfc_index_convolution_zero_source_rightcoefficients)) * cc)) /\ exists ff_q_pfp_convolution_zero_source_rightcoefficientsentry. cb = ff_q_pfp_convolution_zero_source_rightcoefficientsentry * S ((S (pfc_index_convolution_zero_source_rightcoefficients)) * cc) + (pfc_value_convolution_zero_source_rightcoefficients))) /\ ((exists pfc_terms_code_convolution_zero_source_rightcoefficientscoefficient pfc_terms_scale_convolution_zero_source_rightcoefficientscoefficient pfc_natural_sum_convolution_zero_source_rightcoefficientscoefficient. ((forall pfc_index_convolution_zero_source_rightcoefficientscoefficientdiagonal. (exists pfa_gap_convolution_zero_source_rightcoefficientscoefficientdiagonalbound. pfa_gap_convolution_zero_source_rightcoefficientscoefficientdiagonalbound + S (pfc_index_convolution_zero_source_rightcoefficientscoefficientdiagonal) = (S (pfc_index_convolution_zero_source_rightcoefficients))) -> exists pfc_value_convolution_zero_source_rightcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_convolution_zero_source_rightcoefficientscoefficientdiagonalentry. ff_h_pfp_convolution_zero_source_rightcoefficientscoefficientdiagonalentry + S (pfc_value_convolution_zero_source_rightcoefficientscoefficientdiagonal) = S ((S (pfc_index_convolution_zero_source_rightcoefficientscoefficientdiagonal)) * pfc_terms_scale_convolution_zero_source_rightcoefficientscoefficient)) /\ exists ff_q_pfp_convolution_zero_source_rightcoefficientscoefficientdiagonalentry. pfc_terms_code_convolution_zero_source_rightcoefficientscoefficient = ff_q_pfp_convolution_zero_source_rightcoefficientscoefficientdiagonalentry * S ((S (pfc_index_convolution_zero_source_rightcoefficientscoefficientdiagonal)) * pfc_terms_scale_convolution_zero_source_rightcoefficientscoefficient) + (pfc_value_convolution_zero_source_rightcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_convolution_zero_source_rightcoefficientscoefficientdiagonalterm pfc_left_convolution_zero_source_rightcoefficientscoefficientdiagonalterm pfc_right_convolution_zero_source_rightcoefficientscoefficientdiagonalterm. (((pfc_index_convolution_zero_source_rightcoefficientscoefficientdiagonal)+pfc_complement_convolution_zero_source_rightcoefficientscoefficientdiagonalterm=(pfc_index_convolution_zero_source_rightcoefficients)) /\ ((((((exists pfa_gap_convolution_zero_source_rightcoefficientscoefficientdiagonaltermleftinside. pfa_gap_convolution_zero_source_rightcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_convolution_zero_source_rightcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_convolution_zero_source_rightcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_convolution_zero_source_rightcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_convolution_zero_source_rightcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_convolution_zero_source_rightcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_convolution_zero_source_rightcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_convolution_zero_source_rightcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_convolution_zero_source_rightcoefficientscoefficientdiagonal)) * ac) + (pfc_left_convolution_zero_source_rightcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_zero_source_rightcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_convolution_zero_source_rightcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_convolution_zero_source_rightcoefficientscoefficientdiagonal)) /\ (((pfc_left_convolution_zero_source_rightcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_convolution_zero_source_rightcoefficientscoefficientdiagonaltermrightinside. pfa_gap_convolution_zero_source_rightcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_convolution_zero_source_rightcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_convolution_zero_source_rightcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_convolution_zero_source_rightcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_convolution_zero_source_rightcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_convolution_zero_source_rightcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_convolution_zero_source_rightcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_convolution_zero_source_rightcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_convolution_zero_source_rightcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_convolution_zero_source_rightcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_zero_source_rightcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_convolution_zero_source_rightcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_convolution_zero_source_rightcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_convolution_zero_source_rightcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_convolution_zero_source_rightcoefficientscoefficientdiagonal)=pfc_left_convolution_zero_source_rightcoefficientscoefficientdiagonalterm*pfc_right_convolution_zero_source_rightcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_convolution_zero_source_rightcoefficientscoefficientsum fs_v_pfc_convolution_zero_source_rightcoefficientscoefficientsum. ((((exists fs_h_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_start. fs_h_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_convolution_zero_source_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_start. fs_u_pfc_convolution_zero_source_rightcoefficientscoefficientsum = fs_q_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_convolution_zero_source_rightcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_terminal. fs_h_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_convolution_zero_source_rightcoefficientscoefficient) = S ((S (S (pfc_index_convolution_zero_source_rightcoefficients))) * fs_v_pfc_convolution_zero_source_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_terminal. fs_u_pfc_convolution_zero_source_rightcoefficientscoefficientsum = fs_q_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_convolution_zero_source_rightcoefficients))) * fs_v_pfc_convolution_zero_source_rightcoefficientscoefficientsum) + (pfc_natural_sum_convolution_zero_source_rightcoefficientscoefficient))) /\ forall fs_i_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps = S (pfc_index_convolution_zero_source_rightcoefficients)) -> exists fs_a_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps fs_r_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps fs_s_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_convolution_zero_source_rightcoefficientscoefficient)) /\ exists fs_q_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_convolution_zero_source_rightcoefficientscoefficient = fs_q_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_convolution_zero_source_rightcoefficientscoefficient) + (fs_a_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_zero_source_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_convolution_zero_source_rightcoefficientscoefficientsum = fs_q_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_zero_source_rightcoefficientscoefficientsum) + (fs_r_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_zero_source_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_convolution_zero_source_rightcoefficientscoefficientsum = fs_q_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_zero_source_rightcoefficientscoefficientsum) + (fs_s_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps = fs_r_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps + fs_a_pfc_convolution_zero_source_rightcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_convolution_zero_source_rightcoefficientscoefficientresiduebound. pfa_gap_convolution_zero_source_rightcoefficientscoefficientresiduebound + S (pfc_value_convolution_zero_source_rightcoefficients) = (p)) /\ ((exists pfa_offset_left_convolution_zero_source_rightcoefficientscoefficientresiduecongruence pfa_offset_right_convolution_zero_source_rightcoefficientscoefficientresiduecongruence. (pfc_natural_sum_convolution_zero_source_rightcoefficientscoefficient) + (p) * pfa_offset_left_convolution_zero_source_rightcoefficientscoefficientresiduecongruence = (pfc_value_convolution_zero_source_rightcoefficients) + (p) * pfa_offset_right_convolution_zero_source_rightcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (forall pfp_repeat_index_convolution_zero_result_right. (exists pfa_gap_convolution_zero_result_rightindex. pfa_gap_convolution_zero_result_rightindex + S (pfp_repeat_index_convolution_zero_result_right) = (N)) -> (((exists ff_h_pfp_convolution_zero_result_rightentry. ff_h_pfp_convolution_zero_result_rightentry + S (0) = S ((S (pfp_repeat_index_convolution_zero_result_right)) * cc)) /\ exists ff_q_pfp_convolution_zero_result_rightentry. cb = ff_q_pfp_convolution_zero_result_rightentry * S ((S (pfp_repeat_index_convolution_zero_result_right)) * cc) + (0))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro cb
  9. intro cc
  10. intro N
  11. intro hp
  12. intro hz
  13. intro hc
  14. cases hc
  15. cases hc_right
  16. cases hc_right_right
  17. intro i
  18. intro hi
  19. have hv : exists r. ((((exists ff_h_pfp_convolution_zero_entry_right. ff_h_pfp_convolution_zero_entry_right + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_convolution_zero_entry_right. cb = ff_q_pfp_convolution_zero_entry_right * S ((S (i)) * cc) + (r))) /\ ((exists pfc_terms_code_convolution_zero_value_right pfc_terms_scale_convolution_zero_value_right pfc_natural_sum_convolution_zero_value_right. ((forall pfc_index_convolution_zero_value_rightdiagonal. (exists pfa_gap_convolution_zero_value_rightdiagonalbound. pfa_gap_convolution_zero_value_rightdiagonalbound + S (pfc_index_convolution_zero_value_rightdiagonal) = (S (i))) -> exists pfc_value_convolution_zero_value_rightdiagonal. ((((exists ff_h_pfp_convolution_zero_value_rightdiagonalentry. ff_h_pfp_convolution_zero_value_rightdiagonalentry + S (pfc_value_convolution_zero_value_rightdiagonal) = S ((S (pfc_index_convolution_zero_value_rightdiagonal)) * pfc_terms_scale_convolution_zero_value_right)) /\ exists ff_q_pfp_convolution_zero_value_rightdiagonalentry. pfc_terms_code_convolution_zero_value_right = ff_q_pfp_convolution_zero_value_rightdiagonalentry * S ((S (pfc_index_convolution_zero_value_rightdiagonal)) * pfc_terms_scale_convolution_zero_value_right) + (pfc_value_convolution_zero_value_rightdiagonal))) /\ ((exists pfc_complement_convolution_zero_value_rightdiagonalterm pfc_left_convolution_zero_value_rightdiagonalterm pfc_right_convolution_zero_value_rightdiagonalterm. (((pfc_index_convolution_zero_value_rightdiagonal)+pfc_complement_convolution_zero_value_rightdiagonalterm=(i)) /\ ((((((exists pfa_gap_convolution_zero_value_rightdiagonaltermleftinside. pfa_gap_convolution_zero_value_rightdiagonaltermleftinside + S (pfc_index_convolution_zero_value_rightdiagonal) = (L)) /\ ((((exists ff_h_pfp_convolution_zero_value_rightdiagonaltermleftentry. ff_h_pfp_convolution_zero_value_rightdiagonaltermleftentry + S (pfc_left_convolution_zero_value_rightdiagonalterm) = S ((S (pfc_index_convolution_zero_value_rightdiagonal)) * ac)) /\ exists ff_q_pfp_convolution_zero_value_rightdiagonaltermleftentry. ab = ff_q_pfp_convolution_zero_value_rightdiagonaltermleftentry * S ((S (pfc_index_convolution_zero_value_rightdiagonal)) * ac) + (pfc_left_convolution_zero_value_rightdiagonalterm)))))) \/ (((exists pfc_gap_convolution_zero_value_rightdiagonaltermleftoutside. pfc_gap_convolution_zero_value_rightdiagonaltermleftoutside+(L)=(pfc_index_convolution_zero_value_rightdiagonal)) /\ (((pfc_left_convolution_zero_value_rightdiagonalterm)=0))))) /\ ((((((exists pfa_gap_convolution_zero_value_rightdiagonaltermrightinside. pfa_gap_convolution_zero_value_rightdiagonaltermrightinside + S (pfc_complement_convolution_zero_value_rightdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_convolution_zero_value_rightdiagonaltermrightentry. ff_h_pfp_convolution_zero_value_rightdiagonaltermrightentry + S (pfc_right_convolution_zero_value_rightdiagonalterm) = S ((S (pfc_complement_convolution_zero_value_rightdiagonalterm)) * bc)) /\ exists ff_q_pfp_convolution_zero_value_rightdiagonaltermrightentry. bb = ff_q_pfp_convolution_zero_value_rightdiagonaltermrightentry * S ((S (pfc_complement_convolution_zero_value_rightdiagonalterm)) * bc) + (pfc_right_convolution_zero_value_rightdiagonalterm)))))) \/ (((exists pfc_gap_convolution_zero_value_rightdiagonaltermrightoutside. pfc_gap_convolution_zero_value_rightdiagonaltermrightoutside+(M)=(pfc_complement_convolution_zero_value_rightdiagonalterm)) /\ (((pfc_right_convolution_zero_value_rightdiagonalterm)=0))))) /\ (((pfc_value_convolution_zero_value_rightdiagonal)=pfc_left_convolution_zero_value_rightdiagonalterm*pfc_right_convolution_zero_value_rightdiagonalterm))))))))))) /\ (((exists fs_u_pfc_convolution_zero_value_rightsum fs_v_pfc_convolution_zero_value_rightsum. ((((exists fs_h_pfc_convolution_zero_value_rightsum_body_start. fs_h_pfc_convolution_zero_value_rightsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_convolution_zero_value_rightsum)) /\ exists fs_q_pfc_convolution_zero_value_rightsum_body_start. fs_u_pfc_convolution_zero_value_rightsum = fs_q_pfc_convolution_zero_value_rightsum_body_start * S ((S (0)) * fs_v_pfc_convolution_zero_value_rightsum) + (0))) /\ ((((exists fs_h_pfc_convolution_zero_value_rightsum_body_terminal. fs_h_pfc_convolution_zero_value_rightsum_body_terminal + S (pfc_natural_sum_convolution_zero_value_right) = S ((S (S (i))) * fs_v_pfc_convolution_zero_value_rightsum)) /\ exists fs_q_pfc_convolution_zero_value_rightsum_body_terminal. fs_u_pfc_convolution_zero_value_rightsum = fs_q_pfc_convolution_zero_value_rightsum_body_terminal * S ((S (S (i))) * fs_v_pfc_convolution_zero_value_rightsum) + (pfc_natural_sum_convolution_zero_value_right))) /\ forall fs_i_pfc_convolution_zero_value_rightsum_body_steps. (exists fs_lt_pfc_convolution_zero_value_rightsum_body_steps_bound. fs_lt_pfc_convolution_zero_value_rightsum_body_steps_bound + S fs_i_pfc_convolution_zero_value_rightsum_body_steps = S (i)) -> exists fs_a_pfc_convolution_zero_value_rightsum_body_steps fs_r_pfc_convolution_zero_value_rightsum_body_steps fs_s_pfc_convolution_zero_value_rightsum_body_steps. ((((exists fs_h_pfc_convolution_zero_value_rightsum_body_steps_summand. fs_h_pfc_convolution_zero_value_rightsum_body_steps_summand + S (fs_a_pfc_convolution_zero_value_rightsum_body_steps) = S ((S (fs_i_pfc_convolution_zero_value_rightsum_body_steps)) * pfc_terms_scale_convolution_zero_value_right)) /\ exists fs_q_pfc_convolution_zero_value_rightsum_body_steps_summand. pfc_terms_code_convolution_zero_value_right = fs_q_pfc_convolution_zero_value_rightsum_body_steps_summand * S ((S (fs_i_pfc_convolution_zero_value_rightsum_body_steps)) * pfc_terms_scale_convolution_zero_value_right) + (fs_a_pfc_convolution_zero_value_rightsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_zero_value_rightsum_body_steps_partial. fs_h_pfc_convolution_zero_value_rightsum_body_steps_partial + S (fs_r_pfc_convolution_zero_value_rightsum_body_steps) = S ((S (fs_i_pfc_convolution_zero_value_rightsum_body_steps)) * fs_v_pfc_convolution_zero_value_rightsum)) /\ exists fs_q_pfc_convolution_zero_value_rightsum_body_steps_partial. fs_u_pfc_convolution_zero_value_rightsum = fs_q_pfc_convolution_zero_value_rightsum_body_steps_partial * S ((S (fs_i_pfc_convolution_zero_value_rightsum_body_steps)) * fs_v_pfc_convolution_zero_value_rightsum) + (fs_r_pfc_convolution_zero_value_rightsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_zero_value_rightsum_body_steps_successor. fs_h_pfc_convolution_zero_value_rightsum_body_steps_successor + S (fs_s_pfc_convolution_zero_value_rightsum_body_steps) = S ((S (S fs_i_pfc_convolution_zero_value_rightsum_body_steps)) * fs_v_pfc_convolution_zero_value_rightsum)) /\ exists fs_q_pfc_convolution_zero_value_rightsum_body_steps_successor. fs_u_pfc_convolution_zero_value_rightsum = fs_q_pfc_convolution_zero_value_rightsum_body_steps_successor * S ((S (S fs_i_pfc_convolution_zero_value_rightsum_body_steps)) * fs_v_pfc_convolution_zero_value_rightsum) + (fs_s_pfc_convolution_zero_value_rightsum_body_steps))) /\ fs_s_pfc_convolution_zero_value_rightsum_body_steps = fs_r_pfc_convolution_zero_value_rightsum_body_steps + fs_a_pfc_convolution_zero_value_rightsum_body_steps)))))) /\ ((((exists pfa_gap_convolution_zero_value_rightresiduebound. pfa_gap_convolution_zero_value_rightresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_convolution_zero_value_rightresiduecongruence pfa_offset_right_convolution_zero_value_rightresiduecongruence. (pfc_natural_sum_convolution_zero_value_right) + (p) * pfa_offset_left_convolution_zero_value_rightresiduecongruence = (r) + (p) * pfa_offset_right_convolution_zero_value_rightresiduecongruence)))))))))))
  20. specialize hc_right_right_right (i)
  21. apply hc_right_right_right
  22. exact hi
  23. cases hv
  24. cases hv_witness
  25. have heq : x=0
  26. specialize prime_field_convolution_coefficient_zero_right (p)
  27. specialize prime_field_convolution_coefficient_zero_right (ab)
  28. specialize prime_field_convolution_coefficient_zero_right (ac)
  29. specialize prime_field_convolution_coefficient_zero_right (L)
  30. specialize prime_field_convolution_coefficient_zero_right (bb)
  31. specialize prime_field_convolution_coefficient_zero_right (bc)
  32. specialize prime_field_convolution_coefficient_zero_right (M)
  33. specialize prime_field_convolution_coefficient_zero_right (i)
  34. specialize prime_field_convolution_coefficient_zero_right (x)
  35. apply prime_field_convolution_coefficient_zero_right
  36. exact hp
  37. exact hz
  38. exact hv_witness_right
  39. rewrite heq at hv_witness_left
  40. rewrite heq at hv_witness_left
  41. exact hv_witness_left
prime_field_polynomial_power_coefficient_exists · unchanged support, not a new admission
forall b c L k. exists a. ((exists pfrep_position_power_exists. ((pfrep_position_power_exists+S (k)=(L)) /\ ((((exists ff_h_pfp_power_existsentry. ff_h_pfp_power_existsentry + S (a) = S ((S (pfrep_position_power_exists)) * c)) /\ exists ff_q_pfp_power_existsentry. b = ff_q_pfp_power_existsentry * S ((S (pfrep_position_power_exists)) * c) + (a)))))) \/ (((exists pfrep_gap_power_existsoutside. pfrep_gap_power_existsoutside+(L)=(k)) /\ (((a)=0)))))
  1. intro b
  2. intro c
  3. intro L
  4. intro k
  5. have ho : (exists pfrep_gap_power_exists_outside. pfrep_gap_power_exists_outside+(L)=(k)) \/ (exists pfa_gap_power_exists_inside. pfa_gap_power_exists_inside + S (k) = (L))
  6. specialize le_or_lt (L)
  7. specialize le_or_lt (k)
  8. apply le_or_lt
  9. cases ho
  10. exists 0
  11. right
  12. split
  13. exact ho_left
  14. refl
  15. cases ho_right
  16. have hv : exists a. (((exists ff_h_pfp_power_exists_value. ff_h_pfp_power_exists_value + S (a) = S ((S (x)) * c)) /\ exists ff_q_pfp_power_exists_value. b = ff_q_pfp_power_exists_value * S ((S (x)) * c) + (a)))
  17. specialize beta_at_exists (b)
  18. specialize beta_at_exists (c)
  19. specialize beta_at_exists (x)
  20. apply beta_at_exists
  21. cases hv
  22. exists x1
  23. left
  24. exists x
  25. split
  26. exact ho_right_witness
  27. exact hv_witness
prime_field_polynomial_equivalent_transitive · unchanged support, not a new admission
forall b c L d e M f g N. (forall pfrep_power_equivalent_transitive_a pfrep_left_equivalent_transitive_a pfrep_right_equivalent_transitive_a. ((exists pfrep_position_equivalent_transitive_afirst. ((pfrep_position_equivalent_transitive_afirst+S (pfrep_power_equivalent_transitive_a)=(L)) /\ ((((exists ff_h_pfp_equivalent_transitive_afirstentry. ff_h_pfp_equivalent_transitive_afirstentry + S (pfrep_left_equivalent_transitive_a) = S ((S (pfrep_position_equivalent_transitive_afirst)) * c)) /\ exists ff_q_pfp_equivalent_transitive_afirstentry. b = ff_q_pfp_equivalent_transitive_afirstentry * S ((S (pfrep_position_equivalent_transitive_afirst)) * c) + (pfrep_left_equivalent_transitive_a)))))) \/ (((exists pfrep_gap_equivalent_transitive_afirstoutside. pfrep_gap_equivalent_transitive_afirstoutside+(L)=(pfrep_power_equivalent_transitive_a)) /\ (((pfrep_left_equivalent_transitive_a)=0))))) -> ((exists pfrep_position_equivalent_transitive_asecond. ((pfrep_position_equivalent_transitive_asecond+S (pfrep_power_equivalent_transitive_a)=(M)) /\ ((((exists ff_h_pfp_equivalent_transitive_asecondentry. ff_h_pfp_equivalent_transitive_asecondentry + S (pfrep_right_equivalent_transitive_a) = S ((S (pfrep_position_equivalent_transitive_asecond)) * e)) /\ exists ff_q_pfp_equivalent_transitive_asecondentry. d = ff_q_pfp_equivalent_transitive_asecondentry * S ((S (pfrep_position_equivalent_transitive_asecond)) * e) + (pfrep_right_equivalent_transitive_a)))))) \/ (((exists pfrep_gap_equivalent_transitive_asecondoutside. pfrep_gap_equivalent_transitive_asecondoutside+(M)=(pfrep_power_equivalent_transitive_a)) /\ (((pfrep_right_equivalent_transitive_a)=0))))) -> pfrep_left_equivalent_transitive_a=pfrep_right_equivalent_transitive_a) -> (forall pfrep_power_equivalent_transitive_b pfrep_left_equivalent_transitive_b pfrep_right_equivalent_transitive_b. ((exists pfrep_position_equivalent_transitive_bfirst. ((pfrep_position_equivalent_transitive_bfirst+S (pfrep_power_equivalent_transitive_b)=(M)) /\ ((((exists ff_h_pfp_equivalent_transitive_bfirstentry. ff_h_pfp_equivalent_transitive_bfirstentry + S (pfrep_left_equivalent_transitive_b) = S ((S (pfrep_position_equivalent_transitive_bfirst)) * e)) /\ exists ff_q_pfp_equivalent_transitive_bfirstentry. d = ff_q_pfp_equivalent_transitive_bfirstentry * S ((S (pfrep_position_equivalent_transitive_bfirst)) * e) + (pfrep_left_equivalent_transitive_b)))))) \/ (((exists pfrep_gap_equivalent_transitive_bfirstoutside. pfrep_gap_equivalent_transitive_bfirstoutside+(M)=(pfrep_power_equivalent_transitive_b)) /\ (((pfrep_left_equivalent_transitive_b)=0))))) -> ((exists pfrep_position_equivalent_transitive_bsecond. ((pfrep_position_equivalent_transitive_bsecond+S (pfrep_power_equivalent_transitive_b)=(N)) /\ ((((exists ff_h_pfp_equivalent_transitive_bsecondentry. ff_h_pfp_equivalent_transitive_bsecondentry + S (pfrep_right_equivalent_transitive_b) = S ((S (pfrep_position_equivalent_transitive_bsecond)) * g)) /\ exists ff_q_pfp_equivalent_transitive_bsecondentry. f = ff_q_pfp_equivalent_transitive_bsecondentry * S ((S (pfrep_position_equivalent_transitive_bsecond)) * g) + (pfrep_right_equivalent_transitive_b)))))) \/ (((exists pfrep_gap_equivalent_transitive_bsecondoutside. pfrep_gap_equivalent_transitive_bsecondoutside+(N)=(pfrep_power_equivalent_transitive_b)) /\ (((pfrep_right_equivalent_transitive_b)=0))))) -> pfrep_left_equivalent_transitive_b=pfrep_right_equivalent_transitive_b) -> (forall pfrep_power_equivalent_transitive_result pfrep_left_equivalent_transitive_result pfrep_right_equivalent_transitive_result. ((exists pfrep_position_equivalent_transitive_resultfirst. ((pfrep_position_equivalent_transitive_resultfirst+S (pfrep_power_equivalent_transitive_result)=(L)) /\ ((((exists ff_h_pfp_equivalent_transitive_resultfirstentry. ff_h_pfp_equivalent_transitive_resultfirstentry + S (pfrep_left_equivalent_transitive_result) = S ((S (pfrep_position_equivalent_transitive_resultfirst)) * c)) /\ exists ff_q_pfp_equivalent_transitive_resultfirstentry. b = ff_q_pfp_equivalent_transitive_resultfirstentry * S ((S (pfrep_position_equivalent_transitive_resultfirst)) * c) + (pfrep_left_equivalent_transitive_result)))))) \/ (((exists pfrep_gap_equivalent_transitive_resultfirstoutside. pfrep_gap_equivalent_transitive_resultfirstoutside+(L)=(pfrep_power_equivalent_transitive_result)) /\ (((pfrep_left_equivalent_transitive_result)=0))))) -> ((exists pfrep_position_equivalent_transitive_resultsecond. ((pfrep_position_equivalent_transitive_resultsecond+S (pfrep_power_equivalent_transitive_result)=(N)) /\ ((((exists ff_h_pfp_equivalent_transitive_resultsecondentry. ff_h_pfp_equivalent_transitive_resultsecondentry + S (pfrep_right_equivalent_transitive_result) = S ((S (pfrep_position_equivalent_transitive_resultsecond)) * g)) /\ exists ff_q_pfp_equivalent_transitive_resultsecondentry. f = ff_q_pfp_equivalent_transitive_resultsecondentry * S ((S (pfrep_position_equivalent_transitive_resultsecond)) * g) + (pfrep_right_equivalent_transitive_result)))))) \/ (((exists pfrep_gap_equivalent_transitive_resultsecondoutside. pfrep_gap_equivalent_transitive_resultsecondoutside+(N)=(pfrep_power_equivalent_transitive_result)) /\ (((pfrep_right_equivalent_transitive_result)=0))))) -> pfrep_left_equivalent_transitive_result=pfrep_right_equivalent_transitive_result)
  1. intro b
  2. intro c
  3. intro L
  4. intro d
  5. intro e
  6. intro M
  7. intro f
  8. intro g
  9. intro N
  10. intro he
  11. intro hf
  12. intro k
  13. intro a
  14. intro r
  15. intro ha
  16. intro hr
  17. have hv : exists z. ((exists pfrep_position_equivalent_middle. ((pfrep_position_equivalent_middle+S (k)=(M)) /\ ((((exists ff_h_pfp_equivalent_middleentry. ff_h_pfp_equivalent_middleentry + S (z) = S ((S (pfrep_position_equivalent_middle)) * e)) /\ exists ff_q_pfp_equivalent_middleentry. d = ff_q_pfp_equivalent_middleentry * S ((S (pfrep_position_equivalent_middle)) * e) + (z)))))) \/ (((exists pfrep_gap_equivalent_middleoutside. pfrep_gap_equivalent_middleoutside+(M)=(k)) /\ (((z)=0)))))
  18. specialize prime_field_polynomial_power_coefficient_exists (d)
  19. specialize prime_field_polynomial_power_coefficient_exists (e)
  20. specialize prime_field_polynomial_power_coefficient_exists (M)
  21. specialize prime_field_polynomial_power_coefficient_exists (k)
  22. apply prime_field_polynomial_power_coefficient_exists
  23. cases hv
  24. trans x
  25. specialize he (k)
  26. specialize he (a)
  27. specialize he (x)
  28. apply he
  29. exact ha
  30. exact hv_witness
  31. specialize hf (k)
  32. specialize hf (x)
  33. specialize hf (r)
  34. apply hf
  35. exact hv_witness
  36. exact hr
prime_field_polynomial_power_index_bound · unchanged support, not a new admission
forall i k L. i+S k=L -> (exists pfa_gap_power_index_bound. pfa_gap_power_index_bound + S (i) = (L))
  1. intro i
  2. intro k
  3. intro L
  4. intro h
  5. exists k
  6. trans i+S k
  7. simp [add_comm]
  8. exact h
prime_field_polynomial_zero_power_coefficient · unchanged support, not a new admission
forall b c L k a. (forall pfp_repeat_index_zero_power_source. (exists pfa_gap_zero_power_sourceindex. pfa_gap_zero_power_sourceindex + S (pfp_repeat_index_zero_power_source) = (L)) -> (((exists ff_h_pfp_zero_power_sourceentry. ff_h_pfp_zero_power_sourceentry + S (0) = S ((S (pfp_repeat_index_zero_power_source)) * c)) /\ exists ff_q_pfp_zero_power_sourceentry. b = ff_q_pfp_zero_power_sourceentry * S ((S (pfp_repeat_index_zero_power_source)) * c) + (0)))) -> ((exists pfrep_position_zero_power_entry. ((pfrep_position_zero_power_entry+S (k)=(L)) /\ ((((exists ff_h_pfp_zero_power_entryentry. ff_h_pfp_zero_power_entryentry + S (a) = S ((S (pfrep_position_zero_power_entry)) * c)) /\ exists ff_q_pfp_zero_power_entryentry. b = ff_q_pfp_zero_power_entryentry * S ((S (pfrep_position_zero_power_entry)) * c) + (a)))))) \/ (((exists pfrep_gap_zero_power_entryoutside. pfrep_gap_zero_power_entryoutside+(L)=(k)) /\ (((a)=0))))) -> a=0
  1. intro b
  2. intro c
  3. intro L
  4. intro k
  5. intro a
  6. intro hz
  7. intro ha
  8. cases ha
  9. cases ha_left
  10. cases ha_left_witness
  11. specialize beta_repeat_entry_eq (b)
  12. specialize beta_repeat_entry_eq (c)
  13. specialize beta_repeat_entry_eq (0)
  14. specialize beta_repeat_entry_eq (L)
  15. specialize beta_repeat_entry_eq (x)
  16. specialize beta_repeat_entry_eq (a)
  17. apply beta_repeat_entry_eq
  18. exact hz
  19. specialize prime_field_polynomial_power_index_bound (x)
  20. specialize prime_field_polynomial_power_index_bound (k)
  21. specialize prime_field_polynomial_power_index_bound (L)
  22. apply prime_field_polynomial_power_index_bound
  23. exact ha_left_witness_left
  24. exact ha_left_witness_right
  25. cases ha_right
  26. exact ha_right_right
prime_field_polynomial_zero_prefix_equivalent_empty · unchanged support, not a new admission
forall b c L. (forall pfp_repeat_index_zero_equivalent_source. (exists pfa_gap_zero_equivalent_sourceindex. pfa_gap_zero_equivalent_sourceindex + S (pfp_repeat_index_zero_equivalent_source) = (L)) -> (((exists ff_h_pfp_zero_equivalent_sourceentry. ff_h_pfp_zero_equivalent_sourceentry + S (0) = S ((S (pfp_repeat_index_zero_equivalent_source)) * c)) /\ exists ff_q_pfp_zero_equivalent_sourceentry. b = ff_q_pfp_zero_equivalent_sourceentry * S ((S (pfp_repeat_index_zero_equivalent_source)) * c) + (0)))) -> (forall pfrep_power_zero_equivalent_empty pfrep_left_zero_equivalent_empty pfrep_right_zero_equivalent_empty. ((exists pfrep_position_zero_equivalent_emptyfirst. ((pfrep_position_zero_equivalent_emptyfirst+S (pfrep_power_zero_equivalent_empty)=(L)) /\ ((((exists ff_h_pfp_zero_equivalent_emptyfirstentry. ff_h_pfp_zero_equivalent_emptyfirstentry + S (pfrep_left_zero_equivalent_empty) = S ((S (pfrep_position_zero_equivalent_emptyfirst)) * c)) /\ exists ff_q_pfp_zero_equivalent_emptyfirstentry. b = ff_q_pfp_zero_equivalent_emptyfirstentry * S ((S (pfrep_position_zero_equivalent_emptyfirst)) * c) + (pfrep_left_zero_equivalent_empty)))))) \/ (((exists pfrep_gap_zero_equivalent_emptyfirstoutside. pfrep_gap_zero_equivalent_emptyfirstoutside+(L)=(pfrep_power_zero_equivalent_empty)) /\ (((pfrep_left_zero_equivalent_empty)=0))))) -> ((exists pfrep_position_zero_equivalent_emptysecond. ((pfrep_position_zero_equivalent_emptysecond+S (pfrep_power_zero_equivalent_empty)=(0)) /\ ((((exists ff_h_pfp_zero_equivalent_emptysecondentry. ff_h_pfp_zero_equivalent_emptysecondentry + S (pfrep_right_zero_equivalent_empty) = S ((S (pfrep_position_zero_equivalent_emptysecond)) * 0)) /\ exists ff_q_pfp_zero_equivalent_emptysecondentry. 0 = ff_q_pfp_zero_equivalent_emptysecondentry * S ((S (pfrep_position_zero_equivalent_emptysecond)) * 0) + (pfrep_right_zero_equivalent_empty)))))) \/ (((exists pfrep_gap_zero_equivalent_emptysecondoutside. pfrep_gap_zero_equivalent_emptysecondoutside+(0)=(pfrep_power_zero_equivalent_empty)) /\ (((pfrep_right_zero_equivalent_empty)=0))))) -> pfrep_left_zero_equivalent_empty=pfrep_right_zero_equivalent_empty)
  1. intro b
  2. intro c
  3. intro L
  4. intro hz
  5. intro k
  6. intro a
  7. intro r
  8. intro ha
  9. intro hr
  10. trans 0
  11. specialize prime_field_polynomial_zero_power_coefficient (b)
  12. specialize prime_field_polynomial_zero_power_coefficient (c)
  13. specialize prime_field_polynomial_zero_power_coefficient (L)
  14. specialize prime_field_polynomial_zero_power_coefficient (k)
  15. specialize prime_field_polynomial_zero_power_coefficient (a)
  16. apply prime_field_polynomial_zero_power_coefficient
  17. exact hz
  18. exact ha
  19. have heq : r=0
  20. specialize prime_field_polynomial_zero_power_coefficient (0)
  21. specialize prime_field_polynomial_zero_power_coefficient (0)
  22. specialize prime_field_polynomial_zero_power_coefficient (0)
  23. specialize prime_field_polynomial_zero_power_coefficient (k)
  24. specialize prime_field_polynomial_zero_power_coefficient (r)
  25. apply prime_field_polynomial_zero_power_coefficient
  26. specialize beta_repeat_empty (0)
  27. specialize beta_repeat_empty (0)
  28. specialize beta_repeat_empty (0)
  29. specialize beta_repeat_empty (0)
  30. apply beta_repeat_empty
  31. refl
  32. exact hr
  33. symm
  34. exact heq
prime_field_polynomial_equivalent_symmetric · unchanged support, not a new admission
forall b c L d e M. (forall pfrep_power_equivalent_symmetric_old pfrep_left_equivalent_symmetric_old pfrep_right_equivalent_symmetric_old. ((exists pfrep_position_equivalent_symmetric_oldfirst. ((pfrep_position_equivalent_symmetric_oldfirst+S (pfrep_power_equivalent_symmetric_old)=(L)) /\ ((((exists ff_h_pfp_equivalent_symmetric_oldfirstentry. ff_h_pfp_equivalent_symmetric_oldfirstentry + S (pfrep_left_equivalent_symmetric_old) = S ((S (pfrep_position_equivalent_symmetric_oldfirst)) * c)) /\ exists ff_q_pfp_equivalent_symmetric_oldfirstentry. b = ff_q_pfp_equivalent_symmetric_oldfirstentry * S ((S (pfrep_position_equivalent_symmetric_oldfirst)) * c) + (pfrep_left_equivalent_symmetric_old)))))) \/ (((exists pfrep_gap_equivalent_symmetric_oldfirstoutside. pfrep_gap_equivalent_symmetric_oldfirstoutside+(L)=(pfrep_power_equivalent_symmetric_old)) /\ (((pfrep_left_equivalent_symmetric_old)=0))))) -> ((exists pfrep_position_equivalent_symmetric_oldsecond. ((pfrep_position_equivalent_symmetric_oldsecond+S (pfrep_power_equivalent_symmetric_old)=(M)) /\ ((((exists ff_h_pfp_equivalent_symmetric_oldsecondentry. ff_h_pfp_equivalent_symmetric_oldsecondentry + S (pfrep_right_equivalent_symmetric_old) = S ((S (pfrep_position_equivalent_symmetric_oldsecond)) * e)) /\ exists ff_q_pfp_equivalent_symmetric_oldsecondentry. d = ff_q_pfp_equivalent_symmetric_oldsecondentry * S ((S (pfrep_position_equivalent_symmetric_oldsecond)) * e) + (pfrep_right_equivalent_symmetric_old)))))) \/ (((exists pfrep_gap_equivalent_symmetric_oldsecondoutside. pfrep_gap_equivalent_symmetric_oldsecondoutside+(M)=(pfrep_power_equivalent_symmetric_old)) /\ (((pfrep_right_equivalent_symmetric_old)=0))))) -> pfrep_left_equivalent_symmetric_old=pfrep_right_equivalent_symmetric_old) -> (forall pfrep_power_equivalent_symmetric_new pfrep_left_equivalent_symmetric_new pfrep_right_equivalent_symmetric_new. ((exists pfrep_position_equivalent_symmetric_newfirst. ((pfrep_position_equivalent_symmetric_newfirst+S (pfrep_power_equivalent_symmetric_new)=(M)) /\ ((((exists ff_h_pfp_equivalent_symmetric_newfirstentry. ff_h_pfp_equivalent_symmetric_newfirstentry + S (pfrep_left_equivalent_symmetric_new) = S ((S (pfrep_position_equivalent_symmetric_newfirst)) * e)) /\ exists ff_q_pfp_equivalent_symmetric_newfirstentry. d = ff_q_pfp_equivalent_symmetric_newfirstentry * S ((S (pfrep_position_equivalent_symmetric_newfirst)) * e) + (pfrep_left_equivalent_symmetric_new)))))) \/ (((exists pfrep_gap_equivalent_symmetric_newfirstoutside. pfrep_gap_equivalent_symmetric_newfirstoutside+(M)=(pfrep_power_equivalent_symmetric_new)) /\ (((pfrep_left_equivalent_symmetric_new)=0))))) -> ((exists pfrep_position_equivalent_symmetric_newsecond. ((pfrep_position_equivalent_symmetric_newsecond+S (pfrep_power_equivalent_symmetric_new)=(L)) /\ ((((exists ff_h_pfp_equivalent_symmetric_newsecondentry. ff_h_pfp_equivalent_symmetric_newsecondentry + S (pfrep_right_equivalent_symmetric_new) = S ((S (pfrep_position_equivalent_symmetric_newsecond)) * c)) /\ exists ff_q_pfp_equivalent_symmetric_newsecondentry. b = ff_q_pfp_equivalent_symmetric_newsecondentry * S ((S (pfrep_position_equivalent_symmetric_newsecond)) * c) + (pfrep_right_equivalent_symmetric_new)))))) \/ (((exists pfrep_gap_equivalent_symmetric_newsecondoutside. pfrep_gap_equivalent_symmetric_newsecondoutside+(L)=(pfrep_power_equivalent_symmetric_new)) /\ (((pfrep_right_equivalent_symmetric_new)=0))))) -> pfrep_left_equivalent_symmetric_new=pfrep_right_equivalent_symmetric_new)
  1. intro b
  2. intro c
  3. intro L
  4. intro d
  5. intro e
  6. intro M
  7. intro he
  8. intro k
  9. intro a
  10. intro r
  11. intro ha
  12. intro hr
  13. have heq : r=a
  14. specialize he (k)
  15. specialize he (r)
  16. specialize he (a)
  17. apply he
  18. exact hr
  19. exact ha
  20. symm
  21. exact heq
prime_field_polynomial_power_coefficient_functional · unchanged support, not a new admission
forall b c L k a r. ((exists pfrep_position_power_unique_a. ((pfrep_position_power_unique_a+S (k)=(L)) /\ ((((exists ff_h_pfp_power_unique_aentry. ff_h_pfp_power_unique_aentry + S (a) = S ((S (pfrep_position_power_unique_a)) * c)) /\ exists ff_q_pfp_power_unique_aentry. b = ff_q_pfp_power_unique_aentry * S ((S (pfrep_position_power_unique_a)) * c) + (a)))))) \/ (((exists pfrep_gap_power_unique_aoutside. pfrep_gap_power_unique_aoutside+(L)=(k)) /\ (((a)=0))))) -> ((exists pfrep_position_power_unique_r. ((pfrep_position_power_unique_r+S (k)=(L)) /\ ((((exists ff_h_pfp_power_unique_rentry. ff_h_pfp_power_unique_rentry + S (r) = S ((S (pfrep_position_power_unique_r)) * c)) /\ exists ff_q_pfp_power_unique_rentry. b = ff_q_pfp_power_unique_rentry * S ((S (pfrep_position_power_unique_r)) * c) + (r)))))) \/ (((exists pfrep_gap_power_unique_routside. pfrep_gap_power_unique_routside+(L)=(k)) /\ (((r)=0))))) -> a=r
  1. intro b
  2. intro c
  3. intro L
  4. intro k
  5. intro a
  6. intro r
  7. intro ha
  8. intro hr
  9. cases ha
  10. cases ha_left
  11. cases ha_left_witness
  12. cases hr
  13. cases hr_left
  14. cases hr_left_witness
  15. have heq : x=x1
  16. specialize add_right_cancel (x)
  17. specialize add_right_cancel (x1)
  18. specialize add_right_cancel (S k)
  19. apply add_right_cancel
  20. trans L
  21. exact ha_left_witness_left
  22. symm
  23. exact hr_left_witness_left
  24. rewrite heq at ha_left_witness_right
  25. rewrite heq at ha_left_witness_right
  26. specialize beta_at_unique (b)
  27. specialize beta_at_unique (c)
  28. specialize beta_at_unique (x1)
  29. specialize beta_at_unique (a)
  30. specialize beta_at_unique (r)
  31. apply beta_at_unique
  32. exact ha_left_witness_right
  33. exact hr_left_witness_right
  34. cases hr_right
  35. exfalso
  36. specialize lt_not_le (k)
  37. specialize lt_not_le (L)
  38. apply lt_not_le
  39. exists x
  40. exact ha_left_witness_left
  41. exact hr_right_left
  42. cases ha_right
  43. cases hr
  44. cases hr_left
  45. cases hr_left_witness
  46. exfalso
  47. specialize lt_not_le (k)
  48. specialize lt_not_le (L)
  49. apply lt_not_le
  50. exists x
  51. exact hr_left_witness_left
  52. exact ha_right_left
  53. cases hr_right
  54. trans 0
  55. exact ha_right_right
  56. symm
  57. exact hr_right_right
prime_field_polynomial_power_coefficient_transport · unchanged support, not a new admission
forall b c d e L k a. (forall mdr_i_pfp_power_transport_equal mdr_a_pfp_power_transport_equal. (exists mdr_gap_pfp_power_transport_equalb. mdr_gap_pfp_power_transport_equalb + S (mdr_i_pfp_power_transport_equal) = (L)) -> (((exists ff_h_mdr_pfp_power_transport_equalo. ff_h_mdr_pfp_power_transport_equalo + S (mdr_a_pfp_power_transport_equal) = S ((S (mdr_i_pfp_power_transport_equal)) * c)) /\ exists ff_q_mdr_pfp_power_transport_equalo. b = ff_q_mdr_pfp_power_transport_equalo * S ((S (mdr_i_pfp_power_transport_equal)) * c) + (mdr_a_pfp_power_transport_equal))) -> (((exists ff_h_mdr_pfp_power_transport_equaln. ff_h_mdr_pfp_power_transport_equaln + S (mdr_a_pfp_power_transport_equal) = S ((S (mdr_i_pfp_power_transport_equal)) * e)) /\ exists ff_q_mdr_pfp_power_transport_equaln. d = ff_q_mdr_pfp_power_transport_equaln * S ((S (mdr_i_pfp_power_transport_equal)) * e) + (mdr_a_pfp_power_transport_equal)))) -> ((exists pfrep_position_power_transport_old. ((pfrep_position_power_transport_old+S (k)=(L)) /\ ((((exists ff_h_pfp_power_transport_oldentry. ff_h_pfp_power_transport_oldentry + S (a) = S ((S (pfrep_position_power_transport_old)) * c)) /\ exists ff_q_pfp_power_transport_oldentry. b = ff_q_pfp_power_transport_oldentry * S ((S (pfrep_position_power_transport_old)) * c) + (a)))))) \/ (((exists pfrep_gap_power_transport_oldoutside. pfrep_gap_power_transport_oldoutside+(L)=(k)) /\ (((a)=0))))) -> ((exists pfrep_position_power_transport_new. ((pfrep_position_power_transport_new+S (k)=(L)) /\ ((((exists ff_h_pfp_power_transport_newentry. ff_h_pfp_power_transport_newentry + S (a) = S ((S (pfrep_position_power_transport_new)) * e)) /\ exists ff_q_pfp_power_transport_newentry. d = ff_q_pfp_power_transport_newentry * S ((S (pfrep_position_power_transport_new)) * e) + (a)))))) \/ (((exists pfrep_gap_power_transport_newoutside. pfrep_gap_power_transport_newoutside+(L)=(k)) /\ (((a)=0)))))
  1. intro b
  2. intro c
  3. intro d
  4. intro e
  5. intro L
  6. intro k
  7. intro a
  8. intro he
  9. intro ha
  10. cases ha
  11. cases ha_left
  12. cases ha_left_witness
  13. left
  14. exists x
  15. split
  16. exact ha_left_witness_left
  17. specialize he (x)
  18. specialize he (a)
  19. apply he
  20. specialize prime_field_polynomial_power_index_bound (x)
  21. specialize prime_field_polynomial_power_index_bound (k)
  22. specialize prime_field_polynomial_power_index_bound (L)
  23. apply prime_field_polynomial_power_index_bound
  24. exact ha_left_witness_left
  25. exact ha_left_witness_right
  26. right
  27. exact ha_right
prime_field_polynomial_equal_implies_equivalent · unchanged support, not a new admission
forall b c d e L. (forall mdr_i_pfp_equal_to_equivalent_input mdr_a_pfp_equal_to_equivalent_input. (exists mdr_gap_pfp_equal_to_equivalent_inputb. mdr_gap_pfp_equal_to_equivalent_inputb + S (mdr_i_pfp_equal_to_equivalent_input) = (L)) -> (((exists ff_h_mdr_pfp_equal_to_equivalent_inputo. ff_h_mdr_pfp_equal_to_equivalent_inputo + S (mdr_a_pfp_equal_to_equivalent_input) = S ((S (mdr_i_pfp_equal_to_equivalent_input)) * c)) /\ exists ff_q_mdr_pfp_equal_to_equivalent_inputo. b = ff_q_mdr_pfp_equal_to_equivalent_inputo * S ((S (mdr_i_pfp_equal_to_equivalent_input)) * c) + (mdr_a_pfp_equal_to_equivalent_input))) -> (((exists ff_h_mdr_pfp_equal_to_equivalent_inputn. ff_h_mdr_pfp_equal_to_equivalent_inputn + S (mdr_a_pfp_equal_to_equivalent_input) = S ((S (mdr_i_pfp_equal_to_equivalent_input)) * e)) /\ exists ff_q_mdr_pfp_equal_to_equivalent_inputn. d = ff_q_mdr_pfp_equal_to_equivalent_inputn * S ((S (mdr_i_pfp_equal_to_equivalent_input)) * e) + (mdr_a_pfp_equal_to_equivalent_input)))) -> (forall pfrep_power_equal_to_equivalent_result pfrep_left_equal_to_equivalent_result pfrep_right_equal_to_equivalent_result. ((exists pfrep_position_equal_to_equivalent_resultfirst. ((pfrep_position_equal_to_equivalent_resultfirst+S (pfrep_power_equal_to_equivalent_result)=(L)) /\ ((((exists ff_h_pfp_equal_to_equivalent_resultfirstentry. ff_h_pfp_equal_to_equivalent_resultfirstentry + S (pfrep_left_equal_to_equivalent_result) = S ((S (pfrep_position_equal_to_equivalent_resultfirst)) * c)) /\ exists ff_q_pfp_equal_to_equivalent_resultfirstentry. b = ff_q_pfp_equal_to_equivalent_resultfirstentry * S ((S (pfrep_position_equal_to_equivalent_resultfirst)) * c) + (pfrep_left_equal_to_equivalent_result)))))) \/ (((exists pfrep_gap_equal_to_equivalent_resultfirstoutside. pfrep_gap_equal_to_equivalent_resultfirstoutside+(L)=(pfrep_power_equal_to_equivalent_result)) /\ (((pfrep_left_equal_to_equivalent_result)=0))))) -> ((exists pfrep_position_equal_to_equivalent_resultsecond. ((pfrep_position_equal_to_equivalent_resultsecond+S (pfrep_power_equal_to_equivalent_result)=(L)) /\ ((((exists ff_h_pfp_equal_to_equivalent_resultsecondentry. ff_h_pfp_equal_to_equivalent_resultsecondentry + S (pfrep_right_equal_to_equivalent_result) = S ((S (pfrep_position_equal_to_equivalent_resultsecond)) * e)) /\ exists ff_q_pfp_equal_to_equivalent_resultsecondentry. d = ff_q_pfp_equal_to_equivalent_resultsecondentry * S ((S (pfrep_position_equal_to_equivalent_resultsecond)) * e) + (pfrep_right_equal_to_equivalent_result)))))) \/ (((exists pfrep_gap_equal_to_equivalent_resultsecondoutside. pfrep_gap_equal_to_equivalent_resultsecondoutside+(L)=(pfrep_power_equal_to_equivalent_result)) /\ (((pfrep_right_equal_to_equivalent_result)=0))))) -> pfrep_left_equal_to_equivalent_result=pfrep_right_equal_to_equivalent_result)
  1. intro b
  2. intro c
  3. intro d
  4. intro e
  5. intro L
  6. intro he
  7. intro k
  8. intro a
  9. intro r
  10. intro ha
  11. intro hr
  12. specialize prime_field_polynomial_power_coefficient_functional (d)
  13. specialize prime_field_polynomial_power_coefficient_functional (e)
  14. specialize prime_field_polynomial_power_coefficient_functional (L)
  15. specialize prime_field_polynomial_power_coefficient_functional (k)
  16. specialize prime_field_polynomial_power_coefficient_functional (a)
  17. specialize prime_field_polynomial_power_coefficient_functional (r)
  18. apply prime_field_polynomial_power_coefficient_functional
  19. specialize prime_field_polynomial_power_coefficient_transport (b)
  20. specialize prime_field_polynomial_power_coefficient_transport (c)
  21. specialize prime_field_polynomial_power_coefficient_transport (d)
  22. specialize prime_field_polynomial_power_coefficient_transport (e)
  23. specialize prime_field_polynomial_power_coefficient_transport (L)
  24. specialize prime_field_polynomial_power_coefficient_transport (k)
  25. specialize prime_field_polynomial_power_coefficient_transport (a)
  26. apply prime_field_polynomial_power_coefficient_transport
  27. exact he
  28. exact ha
  29. exact hr
polynomial_product_length_exists · unchanged support, not a new admission
forall L M. exists N. (((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N))))))))
  1. intro L
  2. intro M
  3. have hl : L=0 \/ exists l. L=S l
  4. specialize zero_or_succ (L)
  5. apply zero_or_succ
  6. cases hl
  7. exists 0
  8. left
  9. split
  10. left
  11. exact hl_left
  12. refl
  13. cases hl_right
  14. have hm : M=0 \/ exists m. M=S m
  15. specialize zero_or_succ (M)
  16. apply zero_or_succ
  17. cases hm
  18. exists 0
  19. left
  20. split
  21. right
  22. exact hm_left
  23. refl
  24. cases hm_right
  25. exists S (x+x1)
  26. right
  27. split
  28. intro hz
  29. specialize succ_ne_zero (x)
  30. apply succ_ne_zero
  31. trans L
  32. symm
  33. exact hl_right_witness
  34. exact hz
  35. split
  36. intro hz
  37. specialize succ_ne_zero (x1)
  38. apply succ_ne_zero
  39. trans M
  40. symm
  41. exact hm_right_witness
  42. exact hz
  43. rewrite hl_right_witness
  44. rewrite hm_right_witness
  45. simp [add_succ_left]
prime_field_convolution_prefix_from_pointwise · unchanged support, not a new admission
forall p ab ac L bb bc M N. (forall j. (exists pfa_gap_choice_domain. pfa_gap_choice_domain + S (j) = (N)) -> exists t. (exists pfc_terms_code_choice_pointwise pfc_terms_scale_choice_pointwise pfc_natural_sum_choice_pointwise. ((forall pfc_index_choice_pointwisediagonal. (exists pfa_gap_choice_pointwisediagonalbound. pfa_gap_choice_pointwisediagonalbound + S (pfc_index_choice_pointwisediagonal) = (S (j))) -> exists pfc_value_choice_pointwisediagonal. ((((exists ff_h_pfp_choice_pointwisediagonalentry. ff_h_pfp_choice_pointwisediagonalentry + S (pfc_value_choice_pointwisediagonal) = S ((S (pfc_index_choice_pointwisediagonal)) * pfc_terms_scale_choice_pointwise)) /\ exists ff_q_pfp_choice_pointwisediagonalentry. pfc_terms_code_choice_pointwise = ff_q_pfp_choice_pointwisediagonalentry * S ((S (pfc_index_choice_pointwisediagonal)) * pfc_terms_scale_choice_pointwise) + (pfc_value_choice_pointwisediagonal))) /\ ((exists pfc_complement_choice_pointwisediagonalterm pfc_left_choice_pointwisediagonalterm pfc_right_choice_pointwisediagonalterm. (((pfc_index_choice_pointwisediagonal)+pfc_complement_choice_pointwisediagonalterm=(j)) /\ ((((((exists pfa_gap_choice_pointwisediagonaltermleftinside. pfa_gap_choice_pointwisediagonaltermleftinside + S (pfc_index_choice_pointwisediagonal) = (L)) /\ ((((exists ff_h_pfp_choice_pointwisediagonaltermleftentry. ff_h_pfp_choice_pointwisediagonaltermleftentry + S (pfc_left_choice_pointwisediagonalterm) = S ((S (pfc_index_choice_pointwisediagonal)) * ac)) /\ exists ff_q_pfp_choice_pointwisediagonaltermleftentry. ab = ff_q_pfp_choice_pointwisediagonaltermleftentry * S ((S (pfc_index_choice_pointwisediagonal)) * ac) + (pfc_left_choice_pointwisediagonalterm)))))) \/ (((exists pfc_gap_choice_pointwisediagonaltermleftoutside. pfc_gap_choice_pointwisediagonaltermleftoutside+(L)=(pfc_index_choice_pointwisediagonal)) /\ (((pfc_left_choice_pointwisediagonalterm)=0))))) /\ ((((((exists pfa_gap_choice_pointwisediagonaltermrightinside. pfa_gap_choice_pointwisediagonaltermrightinside + S (pfc_complement_choice_pointwisediagonalterm) = (M)) /\ ((((exists ff_h_pfp_choice_pointwisediagonaltermrightentry. ff_h_pfp_choice_pointwisediagonaltermrightentry + S (pfc_right_choice_pointwisediagonalterm) = S ((S (pfc_complement_choice_pointwisediagonalterm)) * bc)) /\ exists ff_q_pfp_choice_pointwisediagonaltermrightentry. bb = ff_q_pfp_choice_pointwisediagonaltermrightentry * S ((S (pfc_complement_choice_pointwisediagonalterm)) * bc) + (pfc_right_choice_pointwisediagonalterm)))))) \/ (((exists pfc_gap_choice_pointwisediagonaltermrightoutside. pfc_gap_choice_pointwisediagonaltermrightoutside+(M)=(pfc_complement_choice_pointwisediagonalterm)) /\ (((pfc_right_choice_pointwisediagonalterm)=0))))) /\ (((pfc_value_choice_pointwisediagonal)=pfc_left_choice_pointwisediagonalterm*pfc_right_choice_pointwisediagonalterm))))))))))) /\ (((exists fs_u_pfc_choice_pointwisesum fs_v_pfc_choice_pointwisesum. ((((exists fs_h_pfc_choice_pointwisesum_body_start. fs_h_pfc_choice_pointwisesum_body_start + S (0) = S ((S (0)) * fs_v_pfc_choice_pointwisesum)) /\ exists fs_q_pfc_choice_pointwisesum_body_start. fs_u_pfc_choice_pointwisesum = fs_q_pfc_choice_pointwisesum_body_start * S ((S (0)) * fs_v_pfc_choice_pointwisesum) + (0))) /\ ((((exists fs_h_pfc_choice_pointwisesum_body_terminal. fs_h_pfc_choice_pointwisesum_body_terminal + S (pfc_natural_sum_choice_pointwise) = S ((S (S (j))) * fs_v_pfc_choice_pointwisesum)) /\ exists fs_q_pfc_choice_pointwisesum_body_terminal. fs_u_pfc_choice_pointwisesum = fs_q_pfc_choice_pointwisesum_body_terminal * S ((S (S (j))) * fs_v_pfc_choice_pointwisesum) + (pfc_natural_sum_choice_pointwise))) /\ forall fs_i_pfc_choice_pointwisesum_body_steps. (exists fs_lt_pfc_choice_pointwisesum_body_steps_bound. fs_lt_pfc_choice_pointwisesum_body_steps_bound + S fs_i_pfc_choice_pointwisesum_body_steps = S (j)) -> exists fs_a_pfc_choice_pointwisesum_body_steps fs_r_pfc_choice_pointwisesum_body_steps fs_s_pfc_choice_pointwisesum_body_steps. ((((exists fs_h_pfc_choice_pointwisesum_body_steps_summand. fs_h_pfc_choice_pointwisesum_body_steps_summand + S (fs_a_pfc_choice_pointwisesum_body_steps) = S ((S (fs_i_pfc_choice_pointwisesum_body_steps)) * pfc_terms_scale_choice_pointwise)) /\ exists fs_q_pfc_choice_pointwisesum_body_steps_summand. pfc_terms_code_choice_pointwise = fs_q_pfc_choice_pointwisesum_body_steps_summand * S ((S (fs_i_pfc_choice_pointwisesum_body_steps)) * pfc_terms_scale_choice_pointwise) + (fs_a_pfc_choice_pointwisesum_body_steps))) /\ ((((exists fs_h_pfc_choice_pointwisesum_body_steps_partial. fs_h_pfc_choice_pointwisesum_body_steps_partial + S (fs_r_pfc_choice_pointwisesum_body_steps) = S ((S (fs_i_pfc_choice_pointwisesum_body_steps)) * fs_v_pfc_choice_pointwisesum)) /\ exists fs_q_pfc_choice_pointwisesum_body_steps_partial. fs_u_pfc_choice_pointwisesum = fs_q_pfc_choice_pointwisesum_body_steps_partial * S ((S (fs_i_pfc_choice_pointwisesum_body_steps)) * fs_v_pfc_choice_pointwisesum) + (fs_r_pfc_choice_pointwisesum_body_steps))) /\ ((((exists fs_h_pfc_choice_pointwisesum_body_steps_successor. fs_h_pfc_choice_pointwisesum_body_steps_successor + S (fs_s_pfc_choice_pointwisesum_body_steps) = S ((S (S fs_i_pfc_choice_pointwisesum_body_steps)) * fs_v_pfc_choice_pointwisesum)) /\ exists fs_q_pfc_choice_pointwisesum_body_steps_successor. fs_u_pfc_choice_pointwisesum = fs_q_pfc_choice_pointwisesum_body_steps_successor * S ((S (S fs_i_pfc_choice_pointwisesum_body_steps)) * fs_v_pfc_choice_pointwisesum) + (fs_s_pfc_choice_pointwisesum_body_steps))) /\ fs_s_pfc_choice_pointwisesum_body_steps = fs_r_pfc_choice_pointwisesum_body_steps + fs_a_pfc_choice_pointwisesum_body_steps)))))) /\ ((((exists pfa_gap_choice_pointwiseresiduebound. pfa_gap_choice_pointwiseresiduebound + S (t) = (p)) /\ ((exists pfa_offset_left_choice_pointwiseresiduecongruence pfa_offset_right_choice_pointwiseresiduecongruence. (pfc_natural_sum_choice_pointwise) + (p) * pfa_offset_left_choice_pointwiseresiduecongruence = (t) + (p) * pfa_offset_right_choice_pointwiseresiduecongruence)))))))))) -> exists db dc. (forall pfc_index_choice_result. (exists pfa_gap_choice_resultbound. pfa_gap_choice_resultbound + S (pfc_index_choice_result) = (N)) -> exists pfc_value_choice_result. ((((exists ff_h_pfp_choice_resultentry. ff_h_pfp_choice_resultentry + S (pfc_value_choice_result) = S ((S (pfc_index_choice_result)) * dc)) /\ exists ff_q_pfp_choice_resultentry. db = ff_q_pfp_choice_resultentry * S ((S (pfc_index_choice_result)) * dc) + (pfc_value_choice_result))) /\ ((exists pfc_terms_code_choice_resultcoefficient pfc_terms_scale_choice_resultcoefficient pfc_natural_sum_choice_resultcoefficient. ((forall pfc_index_choice_resultcoefficientdiagonal. (exists pfa_gap_choice_resultcoefficientdiagonalbound. pfa_gap_choice_resultcoefficientdiagonalbound + S (pfc_index_choice_resultcoefficientdiagonal) = (S (pfc_index_choice_result))) -> exists pfc_value_choice_resultcoefficientdiagonal. ((((exists ff_h_pfp_choice_resultcoefficientdiagonalentry. ff_h_pfp_choice_resultcoefficientdiagonalentry + S (pfc_value_choice_resultcoefficientdiagonal) = S ((S (pfc_index_choice_resultcoefficientdiagonal)) * pfc_terms_scale_choice_resultcoefficient)) /\ exists ff_q_pfp_choice_resultcoefficientdiagonalentry. pfc_terms_code_choice_resultcoefficient = ff_q_pfp_choice_resultcoefficientdiagonalentry * S ((S (pfc_index_choice_resultcoefficientdiagonal)) * pfc_terms_scale_choice_resultcoefficient) + (pfc_value_choice_resultcoefficientdiagonal))) /\ ((exists pfc_complement_choice_resultcoefficientdiagonalterm pfc_left_choice_resultcoefficientdiagonalterm pfc_right_choice_resultcoefficientdiagonalterm. (((pfc_index_choice_resultcoefficientdiagonal)+pfc_complement_choice_resultcoefficientdiagonalterm=(pfc_index_choice_result)) /\ ((((((exists pfa_gap_choice_resultcoefficientdiagonaltermleftinside. pfa_gap_choice_resultcoefficientdiagonaltermleftinside + S (pfc_index_choice_resultcoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_choice_resultcoefficientdiagonaltermleftentry. ff_h_pfp_choice_resultcoefficientdiagonaltermleftentry + S (pfc_left_choice_resultcoefficientdiagonalterm) = S ((S (pfc_index_choice_resultcoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_choice_resultcoefficientdiagonaltermleftentry. ab = ff_q_pfp_choice_resultcoefficientdiagonaltermleftentry * S ((S (pfc_index_choice_resultcoefficientdiagonal)) * ac) + (pfc_left_choice_resultcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_choice_resultcoefficientdiagonaltermleftoutside. pfc_gap_choice_resultcoefficientdiagonaltermleftoutside+(L)=(pfc_index_choice_resultcoefficientdiagonal)) /\ (((pfc_left_choice_resultcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_choice_resultcoefficientdiagonaltermrightinside. pfa_gap_choice_resultcoefficientdiagonaltermrightinside + S (pfc_complement_choice_resultcoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_choice_resultcoefficientdiagonaltermrightentry. ff_h_pfp_choice_resultcoefficientdiagonaltermrightentry + S (pfc_right_choice_resultcoefficientdiagonalterm) = S ((S (pfc_complement_choice_resultcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_choice_resultcoefficientdiagonaltermrightentry. bb = ff_q_pfp_choice_resultcoefficientdiagonaltermrightentry * S ((S (pfc_complement_choice_resultcoefficientdiagonalterm)) * bc) + (pfc_right_choice_resultcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_choice_resultcoefficientdiagonaltermrightoutside. pfc_gap_choice_resultcoefficientdiagonaltermrightoutside+(M)=(pfc_complement_choice_resultcoefficientdiagonalterm)) /\ (((pfc_right_choice_resultcoefficientdiagonalterm)=0))))) /\ (((pfc_value_choice_resultcoefficientdiagonal)=pfc_left_choice_resultcoefficientdiagonalterm*pfc_right_choice_resultcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_choice_resultcoefficientsum fs_v_pfc_choice_resultcoefficientsum. ((((exists fs_h_pfc_choice_resultcoefficientsum_body_start. fs_h_pfc_choice_resultcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_choice_resultcoefficientsum)) /\ exists fs_q_pfc_choice_resultcoefficientsum_body_start. fs_u_pfc_choice_resultcoefficientsum = fs_q_pfc_choice_resultcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_choice_resultcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_choice_resultcoefficientsum_body_terminal. fs_h_pfc_choice_resultcoefficientsum_body_terminal + S (pfc_natural_sum_choice_resultcoefficient) = S ((S (S (pfc_index_choice_result))) * fs_v_pfc_choice_resultcoefficientsum)) /\ exists fs_q_pfc_choice_resultcoefficientsum_body_terminal. fs_u_pfc_choice_resultcoefficientsum = fs_q_pfc_choice_resultcoefficientsum_body_terminal * S ((S (S (pfc_index_choice_result))) * fs_v_pfc_choice_resultcoefficientsum) + (pfc_natural_sum_choice_resultcoefficient))) /\ forall fs_i_pfc_choice_resultcoefficientsum_body_steps. (exists fs_lt_pfc_choice_resultcoefficientsum_body_steps_bound. fs_lt_pfc_choice_resultcoefficientsum_body_steps_bound + S fs_i_pfc_choice_resultcoefficientsum_body_steps = S (pfc_index_choice_result)) -> exists fs_a_pfc_choice_resultcoefficientsum_body_steps fs_r_pfc_choice_resultcoefficientsum_body_steps fs_s_pfc_choice_resultcoefficientsum_body_steps. ((((exists fs_h_pfc_choice_resultcoefficientsum_body_steps_summand. fs_h_pfc_choice_resultcoefficientsum_body_steps_summand + S (fs_a_pfc_choice_resultcoefficientsum_body_steps) = S ((S (fs_i_pfc_choice_resultcoefficientsum_body_steps)) * pfc_terms_scale_choice_resultcoefficient)) /\ exists fs_q_pfc_choice_resultcoefficientsum_body_steps_summand. pfc_terms_code_choice_resultcoefficient = fs_q_pfc_choice_resultcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_choice_resultcoefficientsum_body_steps)) * pfc_terms_scale_choice_resultcoefficient) + (fs_a_pfc_choice_resultcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_choice_resultcoefficientsum_body_steps_partial. fs_h_pfc_choice_resultcoefficientsum_body_steps_partial + S (fs_r_pfc_choice_resultcoefficientsum_body_steps) = S ((S (fs_i_pfc_choice_resultcoefficientsum_body_steps)) * fs_v_pfc_choice_resultcoefficientsum)) /\ exists fs_q_pfc_choice_resultcoefficientsum_body_steps_partial. fs_u_pfc_choice_resultcoefficientsum = fs_q_pfc_choice_resultcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_choice_resultcoefficientsum_body_steps)) * fs_v_pfc_choice_resultcoefficientsum) + (fs_r_pfc_choice_resultcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_choice_resultcoefficientsum_body_steps_successor. fs_h_pfc_choice_resultcoefficientsum_body_steps_successor + S (fs_s_pfc_choice_resultcoefficientsum_body_steps) = S ((S (S fs_i_pfc_choice_resultcoefficientsum_body_steps)) * fs_v_pfc_choice_resultcoefficientsum)) /\ exists fs_q_pfc_choice_resultcoefficientsum_body_steps_successor. fs_u_pfc_choice_resultcoefficientsum = fs_q_pfc_choice_resultcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_choice_resultcoefficientsum_body_steps)) * fs_v_pfc_choice_resultcoefficientsum) + (fs_s_pfc_choice_resultcoefficientsum_body_steps))) /\ fs_s_pfc_choice_resultcoefficientsum_body_steps = fs_r_pfc_choice_resultcoefficientsum_body_steps + fs_a_pfc_choice_resultcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_choice_resultcoefficientresiduebound. pfa_gap_choice_resultcoefficientresiduebound + S (pfc_value_choice_result) = (p)) /\ ((exists pfa_offset_left_choice_resultcoefficientresiduecongruence pfa_offset_right_choice_resultcoefficientresiduecongruence. (pfc_natural_sum_choice_resultcoefficient) + (p) * pfa_offset_left_choice_resultcoefficientresiduecongruence = (pfc_value_choice_result) + (p) * pfa_offset_right_choice_resultcoefficientresiduecongruence))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro N
  9. induction N
  10. intro h
  11. exists 0
  12. exists 0
  13. intro j
  14. intro hj
  15. exfalso
  16. specialize lt_not_le (j)
  17. specialize lt_not_le (0)
  18. apply lt_not_le
  19. exact hj
  20. specialize zero_le (j)
  21. apply zero_le
  22. intro h
  23. have hold : exists db dc. (forall pfc_index_choice_old. (exists pfa_gap_choice_oldbound. pfa_gap_choice_oldbound + S (pfc_index_choice_old) = (N)) -> exists pfc_value_choice_old. ((((exists ff_h_pfp_choice_oldentry. ff_h_pfp_choice_oldentry + S (pfc_value_choice_old) = S ((S (pfc_index_choice_old)) * dc)) /\ exists ff_q_pfp_choice_oldentry. db = ff_q_pfp_choice_oldentry * S ((S (pfc_index_choice_old)) * dc) + (pfc_value_choice_old))) /\ ((exists pfc_terms_code_choice_oldcoefficient pfc_terms_scale_choice_oldcoefficient pfc_natural_sum_choice_oldcoefficient. ((forall pfc_index_choice_oldcoefficientdiagonal. (exists pfa_gap_choice_oldcoefficientdiagonalbound. pfa_gap_choice_oldcoefficientdiagonalbound + S (pfc_index_choice_oldcoefficientdiagonal) = (S (pfc_index_choice_old))) -> exists pfc_value_choice_oldcoefficientdiagonal. ((((exists ff_h_pfp_choice_oldcoefficientdiagonalentry. ff_h_pfp_choice_oldcoefficientdiagonalentry + S (pfc_value_choice_oldcoefficientdiagonal) = S ((S (pfc_index_choice_oldcoefficientdiagonal)) * pfc_terms_scale_choice_oldcoefficient)) /\ exists ff_q_pfp_choice_oldcoefficientdiagonalentry. pfc_terms_code_choice_oldcoefficient = ff_q_pfp_choice_oldcoefficientdiagonalentry * S ((S (pfc_index_choice_oldcoefficientdiagonal)) * pfc_terms_scale_choice_oldcoefficient) + (pfc_value_choice_oldcoefficientdiagonal))) /\ ((exists pfc_complement_choice_oldcoefficientdiagonalterm pfc_left_choice_oldcoefficientdiagonalterm pfc_right_choice_oldcoefficientdiagonalterm. (((pfc_index_choice_oldcoefficientdiagonal)+pfc_complement_choice_oldcoefficientdiagonalterm=(pfc_index_choice_old)) /\ ((((((exists pfa_gap_choice_oldcoefficientdiagonaltermleftinside. pfa_gap_choice_oldcoefficientdiagonaltermleftinside + S (pfc_index_choice_oldcoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_choice_oldcoefficientdiagonaltermleftentry. ff_h_pfp_choice_oldcoefficientdiagonaltermleftentry + S (pfc_left_choice_oldcoefficientdiagonalterm) = S ((S (pfc_index_choice_oldcoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_choice_oldcoefficientdiagonaltermleftentry. ab = ff_q_pfp_choice_oldcoefficientdiagonaltermleftentry * S ((S (pfc_index_choice_oldcoefficientdiagonal)) * ac) + (pfc_left_choice_oldcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_choice_oldcoefficientdiagonaltermleftoutside. pfc_gap_choice_oldcoefficientdiagonaltermleftoutside+(L)=(pfc_index_choice_oldcoefficientdiagonal)) /\ (((pfc_left_choice_oldcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_choice_oldcoefficientdiagonaltermrightinside. pfa_gap_choice_oldcoefficientdiagonaltermrightinside + S (pfc_complement_choice_oldcoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_choice_oldcoefficientdiagonaltermrightentry. ff_h_pfp_choice_oldcoefficientdiagonaltermrightentry + S (pfc_right_choice_oldcoefficientdiagonalterm) = S ((S (pfc_complement_choice_oldcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_choice_oldcoefficientdiagonaltermrightentry. bb = ff_q_pfp_choice_oldcoefficientdiagonaltermrightentry * S ((S (pfc_complement_choice_oldcoefficientdiagonalterm)) * bc) + (pfc_right_choice_oldcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_choice_oldcoefficientdiagonaltermrightoutside. pfc_gap_choice_oldcoefficientdiagonaltermrightoutside+(M)=(pfc_complement_choice_oldcoefficientdiagonalterm)) /\ (((pfc_right_choice_oldcoefficientdiagonalterm)=0))))) /\ (((pfc_value_choice_oldcoefficientdiagonal)=pfc_left_choice_oldcoefficientdiagonalterm*pfc_right_choice_oldcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_choice_oldcoefficientsum fs_v_pfc_choice_oldcoefficientsum. ((((exists fs_h_pfc_choice_oldcoefficientsum_body_start. fs_h_pfc_choice_oldcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_choice_oldcoefficientsum)) /\ exists fs_q_pfc_choice_oldcoefficientsum_body_start. fs_u_pfc_choice_oldcoefficientsum = fs_q_pfc_choice_oldcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_choice_oldcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_choice_oldcoefficientsum_body_terminal. fs_h_pfc_choice_oldcoefficientsum_body_terminal + S (pfc_natural_sum_choice_oldcoefficient) = S ((S (S (pfc_index_choice_old))) * fs_v_pfc_choice_oldcoefficientsum)) /\ exists fs_q_pfc_choice_oldcoefficientsum_body_terminal. fs_u_pfc_choice_oldcoefficientsum = fs_q_pfc_choice_oldcoefficientsum_body_terminal * S ((S (S (pfc_index_choice_old))) * fs_v_pfc_choice_oldcoefficientsum) + (pfc_natural_sum_choice_oldcoefficient))) /\ forall fs_i_pfc_choice_oldcoefficientsum_body_steps. (exists fs_lt_pfc_choice_oldcoefficientsum_body_steps_bound. fs_lt_pfc_choice_oldcoefficientsum_body_steps_bound + S fs_i_pfc_choice_oldcoefficientsum_body_steps = S (pfc_index_choice_old)) -> exists fs_a_pfc_choice_oldcoefficientsum_body_steps fs_r_pfc_choice_oldcoefficientsum_body_steps fs_s_pfc_choice_oldcoefficientsum_body_steps. ((((exists fs_h_pfc_choice_oldcoefficientsum_body_steps_summand. fs_h_pfc_choice_oldcoefficientsum_body_steps_summand + S (fs_a_pfc_choice_oldcoefficientsum_body_steps) = S ((S (fs_i_pfc_choice_oldcoefficientsum_body_steps)) * pfc_terms_scale_choice_oldcoefficient)) /\ exists fs_q_pfc_choice_oldcoefficientsum_body_steps_summand. pfc_terms_code_choice_oldcoefficient = fs_q_pfc_choice_oldcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_choice_oldcoefficientsum_body_steps)) * pfc_terms_scale_choice_oldcoefficient) + (fs_a_pfc_choice_oldcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_choice_oldcoefficientsum_body_steps_partial. fs_h_pfc_choice_oldcoefficientsum_body_steps_partial + S (fs_r_pfc_choice_oldcoefficientsum_body_steps) = S ((S (fs_i_pfc_choice_oldcoefficientsum_body_steps)) * fs_v_pfc_choice_oldcoefficientsum)) /\ exists fs_q_pfc_choice_oldcoefficientsum_body_steps_partial. fs_u_pfc_choice_oldcoefficientsum = fs_q_pfc_choice_oldcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_choice_oldcoefficientsum_body_steps)) * fs_v_pfc_choice_oldcoefficientsum) + (fs_r_pfc_choice_oldcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_choice_oldcoefficientsum_body_steps_successor. fs_h_pfc_choice_oldcoefficientsum_body_steps_successor + S (fs_s_pfc_choice_oldcoefficientsum_body_steps) = S ((S (S fs_i_pfc_choice_oldcoefficientsum_body_steps)) * fs_v_pfc_choice_oldcoefficientsum)) /\ exists fs_q_pfc_choice_oldcoefficientsum_body_steps_successor. fs_u_pfc_choice_oldcoefficientsum = fs_q_pfc_choice_oldcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_choice_oldcoefficientsum_body_steps)) * fs_v_pfc_choice_oldcoefficientsum) + (fs_s_pfc_choice_oldcoefficientsum_body_steps))) /\ fs_s_pfc_choice_oldcoefficientsum_body_steps = fs_r_pfc_choice_oldcoefficientsum_body_steps + fs_a_pfc_choice_oldcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_choice_oldcoefficientresiduebound. pfa_gap_choice_oldcoefficientresiduebound + S (pfc_value_choice_old) = (p)) /\ ((exists pfa_offset_left_choice_oldcoefficientresiduecongruence pfa_offset_right_choice_oldcoefficientresiduecongruence. (pfc_natural_sum_choice_oldcoefficient) + (p) * pfa_offset_left_choice_oldcoefficientresiduecongruence = (pfc_value_choice_old) + (p) * pfa_offset_right_choice_oldcoefficientresiduecongruence))))))))))))
  24. apply IH
  25. intro j
  26. intro hj
  27. specialize h (j)
  28. apply h
  29. specialize le_succ (S j)
  30. specialize le_succ (N)
  31. apply le_succ
  32. exact hj
  33. cases hold
  34. cases hold_witness
  35. have hv : exists t. (exists pfc_terms_code_choice_last_value pfc_terms_scale_choice_last_value pfc_natural_sum_choice_last_value. ((forall pfc_index_choice_last_valuediagonal. (exists pfa_gap_choice_last_valuediagonalbound. pfa_gap_choice_last_valuediagonalbound + S (pfc_index_choice_last_valuediagonal) = (S (N))) -> exists pfc_value_choice_last_valuediagonal. ((((exists ff_h_pfp_choice_last_valuediagonalentry. ff_h_pfp_choice_last_valuediagonalentry + S (pfc_value_choice_last_valuediagonal) = S ((S (pfc_index_choice_last_valuediagonal)) * pfc_terms_scale_choice_last_value)) /\ exists ff_q_pfp_choice_last_valuediagonalentry. pfc_terms_code_choice_last_value = ff_q_pfp_choice_last_valuediagonalentry * S ((S (pfc_index_choice_last_valuediagonal)) * pfc_terms_scale_choice_last_value) + (pfc_value_choice_last_valuediagonal))) /\ ((exists pfc_complement_choice_last_valuediagonalterm pfc_left_choice_last_valuediagonalterm pfc_right_choice_last_valuediagonalterm. (((pfc_index_choice_last_valuediagonal)+pfc_complement_choice_last_valuediagonalterm=(N)) /\ ((((((exists pfa_gap_choice_last_valuediagonaltermleftinside. pfa_gap_choice_last_valuediagonaltermleftinside + S (pfc_index_choice_last_valuediagonal) = (L)) /\ ((((exists ff_h_pfp_choice_last_valuediagonaltermleftentry. ff_h_pfp_choice_last_valuediagonaltermleftentry + S (pfc_left_choice_last_valuediagonalterm) = S ((S (pfc_index_choice_last_valuediagonal)) * ac)) /\ exists ff_q_pfp_choice_last_valuediagonaltermleftentry. ab = ff_q_pfp_choice_last_valuediagonaltermleftentry * S ((S (pfc_index_choice_last_valuediagonal)) * ac) + (pfc_left_choice_last_valuediagonalterm)))))) \/ (((exists pfc_gap_choice_last_valuediagonaltermleftoutside. pfc_gap_choice_last_valuediagonaltermleftoutside+(L)=(pfc_index_choice_last_valuediagonal)) /\ (((pfc_left_choice_last_valuediagonalterm)=0))))) /\ ((((((exists pfa_gap_choice_last_valuediagonaltermrightinside. pfa_gap_choice_last_valuediagonaltermrightinside + S (pfc_complement_choice_last_valuediagonalterm) = (M)) /\ ((((exists ff_h_pfp_choice_last_valuediagonaltermrightentry. ff_h_pfp_choice_last_valuediagonaltermrightentry + S (pfc_right_choice_last_valuediagonalterm) = S ((S (pfc_complement_choice_last_valuediagonalterm)) * bc)) /\ exists ff_q_pfp_choice_last_valuediagonaltermrightentry. bb = ff_q_pfp_choice_last_valuediagonaltermrightentry * S ((S (pfc_complement_choice_last_valuediagonalterm)) * bc) + (pfc_right_choice_last_valuediagonalterm)))))) \/ (((exists pfc_gap_choice_last_valuediagonaltermrightoutside. pfc_gap_choice_last_valuediagonaltermrightoutside+(M)=(pfc_complement_choice_last_valuediagonalterm)) /\ (((pfc_right_choice_last_valuediagonalterm)=0))))) /\ (((pfc_value_choice_last_valuediagonal)=pfc_left_choice_last_valuediagonalterm*pfc_right_choice_last_valuediagonalterm))))))))))) /\ (((exists fs_u_pfc_choice_last_valuesum fs_v_pfc_choice_last_valuesum. ((((exists fs_h_pfc_choice_last_valuesum_body_start. fs_h_pfc_choice_last_valuesum_body_start + S (0) = S ((S (0)) * fs_v_pfc_choice_last_valuesum)) /\ exists fs_q_pfc_choice_last_valuesum_body_start. fs_u_pfc_choice_last_valuesum = fs_q_pfc_choice_last_valuesum_body_start * S ((S (0)) * fs_v_pfc_choice_last_valuesum) + (0))) /\ ((((exists fs_h_pfc_choice_last_valuesum_body_terminal. fs_h_pfc_choice_last_valuesum_body_terminal + S (pfc_natural_sum_choice_last_value) = S ((S (S (N))) * fs_v_pfc_choice_last_valuesum)) /\ exists fs_q_pfc_choice_last_valuesum_body_terminal. fs_u_pfc_choice_last_valuesum = fs_q_pfc_choice_last_valuesum_body_terminal * S ((S (S (N))) * fs_v_pfc_choice_last_valuesum) + (pfc_natural_sum_choice_last_value))) /\ forall fs_i_pfc_choice_last_valuesum_body_steps. (exists fs_lt_pfc_choice_last_valuesum_body_steps_bound. fs_lt_pfc_choice_last_valuesum_body_steps_bound + S fs_i_pfc_choice_last_valuesum_body_steps = S (N)) -> exists fs_a_pfc_choice_last_valuesum_body_steps fs_r_pfc_choice_last_valuesum_body_steps fs_s_pfc_choice_last_valuesum_body_steps. ((((exists fs_h_pfc_choice_last_valuesum_body_steps_summand. fs_h_pfc_choice_last_valuesum_body_steps_summand + S (fs_a_pfc_choice_last_valuesum_body_steps) = S ((S (fs_i_pfc_choice_last_valuesum_body_steps)) * pfc_terms_scale_choice_last_value)) /\ exists fs_q_pfc_choice_last_valuesum_body_steps_summand. pfc_terms_code_choice_last_value = fs_q_pfc_choice_last_valuesum_body_steps_summand * S ((S (fs_i_pfc_choice_last_valuesum_body_steps)) * pfc_terms_scale_choice_last_value) + (fs_a_pfc_choice_last_valuesum_body_steps))) /\ ((((exists fs_h_pfc_choice_last_valuesum_body_steps_partial. fs_h_pfc_choice_last_valuesum_body_steps_partial + S (fs_r_pfc_choice_last_valuesum_body_steps) = S ((S (fs_i_pfc_choice_last_valuesum_body_steps)) * fs_v_pfc_choice_last_valuesum)) /\ exists fs_q_pfc_choice_last_valuesum_body_steps_partial. fs_u_pfc_choice_last_valuesum = fs_q_pfc_choice_last_valuesum_body_steps_partial * S ((S (fs_i_pfc_choice_last_valuesum_body_steps)) * fs_v_pfc_choice_last_valuesum) + (fs_r_pfc_choice_last_valuesum_body_steps))) /\ ((((exists fs_h_pfc_choice_last_valuesum_body_steps_successor. fs_h_pfc_choice_last_valuesum_body_steps_successor + S (fs_s_pfc_choice_last_valuesum_body_steps) = S ((S (S fs_i_pfc_choice_last_valuesum_body_steps)) * fs_v_pfc_choice_last_valuesum)) /\ exists fs_q_pfc_choice_last_valuesum_body_steps_successor. fs_u_pfc_choice_last_valuesum = fs_q_pfc_choice_last_valuesum_body_steps_successor * S ((S (S fs_i_pfc_choice_last_valuesum_body_steps)) * fs_v_pfc_choice_last_valuesum) + (fs_s_pfc_choice_last_valuesum_body_steps))) /\ fs_s_pfc_choice_last_valuesum_body_steps = fs_r_pfc_choice_last_valuesum_body_steps + fs_a_pfc_choice_last_valuesum_body_steps)))))) /\ ((((exists pfa_gap_choice_last_valueresiduebound. pfa_gap_choice_last_valueresiduebound + S (t) = (p)) /\ ((exists pfa_offset_left_choice_last_valueresiduecongruence pfa_offset_right_choice_last_valueresiduecongruence. (pfc_natural_sum_choice_last_value) + (p) * pfa_offset_left_choice_last_valueresiduecongruence = (t) + (p) * pfa_offset_right_choice_last_valueresiduecongruence)))))))))
  36. specialize h (N)
  37. apply h
  38. exists 0
  39. apply zero_add
  40. cases hv
  41. have hnew : exists db dc. (((((exists ff_h_pfp_choice_last_entry. ff_h_pfp_choice_last_entry + S (x2) = S ((S (N)) * dc)) /\ exists ff_q_pfp_choice_last_entry. db = ff_q_pfp_choice_last_entry * S ((S (N)) * dc) + (x2))) /\ ((forall mdr_i_pfp_choice_preservation mdr_a_pfp_choice_preservation. (exists mdr_gap_pfp_choice_preservationb. mdr_gap_pfp_choice_preservationb + S (mdr_i_pfp_choice_preservation) = (N)) -> (((exists ff_h_mdr_pfp_choice_preservationo. ff_h_mdr_pfp_choice_preservationo + S (mdr_a_pfp_choice_preservation) = S ((S (mdr_i_pfp_choice_preservation)) * x1)) /\ exists ff_q_mdr_pfp_choice_preservationo. x = ff_q_mdr_pfp_choice_preservationo * S ((S (mdr_i_pfp_choice_preservation)) * x1) + (mdr_a_pfp_choice_preservation))) -> (((exists ff_h_mdr_pfp_choice_preservationn. ff_h_mdr_pfp_choice_preservationn + S (mdr_a_pfp_choice_preservation) = S ((S (mdr_i_pfp_choice_preservation)) * dc)) /\ exists ff_q_mdr_pfp_choice_preservationn. db = ff_q_mdr_pfp_choice_preservationn * S ((S (mdr_i_pfp_choice_preservation)) * dc) + (mdr_a_pfp_choice_preservation)))))))
  42. specialize beta_prefix_extend (N)
  43. specialize beta_prefix_extend (x)
  44. specialize beta_prefix_extend (x1)
  45. specialize beta_prefix_extend (x2)
  46. apply beta_prefix_extend
  47. cases hnew
  48. cases hnew_witness
  49. cases hnew_witness_witness
  50. exists x3
  51. exists x4
  52. intro j
  53. intro hj
  54. have hcase : j=N \/ (exists pfa_gap_choice_index_case. pfa_gap_choice_index_case + S (j) = (N))
  55. specialize finite_lt_succ_eq_or_lt (N)
  56. specialize finite_lt_succ_eq_or_lt (j)
  57. apply finite_lt_succ_eq_or_lt
  58. exact hj
  59. cases hcase
  60. exists x2
  61. split
  62. rewrite hcase_left
  63. rewrite hcase_left
  64. exact hnew_witness_witness_left
  65. rewrite hcase_left
  66. rewrite hcase_left
  67. rewrite hcase_left
  68. rewrite hcase_left
  69. rewrite hcase_left
  70. exact hv_witness
  71. have hp : exists t. ((((exists ff_h_pfp_choice_old_entry. ff_h_pfp_choice_old_entry + S (t) = S ((S (j)) * x1)) /\ exists ff_q_pfp_choice_old_entry. x = ff_q_pfp_choice_old_entry * S ((S (j)) * x1) + (t))) /\ ((exists pfc_terms_code_choice_old_value pfc_terms_scale_choice_old_value pfc_natural_sum_choice_old_value. ((forall pfc_index_choice_old_valuediagonal. (exists pfa_gap_choice_old_valuediagonalbound. pfa_gap_choice_old_valuediagonalbound + S (pfc_index_choice_old_valuediagonal) = (S (j))) -> exists pfc_value_choice_old_valuediagonal. ((((exists ff_h_pfp_choice_old_valuediagonalentry. ff_h_pfp_choice_old_valuediagonalentry + S (pfc_value_choice_old_valuediagonal) = S ((S (pfc_index_choice_old_valuediagonal)) * pfc_terms_scale_choice_old_value)) /\ exists ff_q_pfp_choice_old_valuediagonalentry. pfc_terms_code_choice_old_value = ff_q_pfp_choice_old_valuediagonalentry * S ((S (pfc_index_choice_old_valuediagonal)) * pfc_terms_scale_choice_old_value) + (pfc_value_choice_old_valuediagonal))) /\ ((exists pfc_complement_choice_old_valuediagonalterm pfc_left_choice_old_valuediagonalterm pfc_right_choice_old_valuediagonalterm. (((pfc_index_choice_old_valuediagonal)+pfc_complement_choice_old_valuediagonalterm=(j)) /\ ((((((exists pfa_gap_choice_old_valuediagonaltermleftinside. pfa_gap_choice_old_valuediagonaltermleftinside + S (pfc_index_choice_old_valuediagonal) = (L)) /\ ((((exists ff_h_pfp_choice_old_valuediagonaltermleftentry. ff_h_pfp_choice_old_valuediagonaltermleftentry + S (pfc_left_choice_old_valuediagonalterm) = S ((S (pfc_index_choice_old_valuediagonal)) * ac)) /\ exists ff_q_pfp_choice_old_valuediagonaltermleftentry. ab = ff_q_pfp_choice_old_valuediagonaltermleftentry * S ((S (pfc_index_choice_old_valuediagonal)) * ac) + (pfc_left_choice_old_valuediagonalterm)))))) \/ (((exists pfc_gap_choice_old_valuediagonaltermleftoutside. pfc_gap_choice_old_valuediagonaltermleftoutside+(L)=(pfc_index_choice_old_valuediagonal)) /\ (((pfc_left_choice_old_valuediagonalterm)=0))))) /\ ((((((exists pfa_gap_choice_old_valuediagonaltermrightinside. pfa_gap_choice_old_valuediagonaltermrightinside + S (pfc_complement_choice_old_valuediagonalterm) = (M)) /\ ((((exists ff_h_pfp_choice_old_valuediagonaltermrightentry. ff_h_pfp_choice_old_valuediagonaltermrightentry + S (pfc_right_choice_old_valuediagonalterm) = S ((S (pfc_complement_choice_old_valuediagonalterm)) * bc)) /\ exists ff_q_pfp_choice_old_valuediagonaltermrightentry. bb = ff_q_pfp_choice_old_valuediagonaltermrightentry * S ((S (pfc_complement_choice_old_valuediagonalterm)) * bc) + (pfc_right_choice_old_valuediagonalterm)))))) \/ (((exists pfc_gap_choice_old_valuediagonaltermrightoutside. pfc_gap_choice_old_valuediagonaltermrightoutside+(M)=(pfc_complement_choice_old_valuediagonalterm)) /\ (((pfc_right_choice_old_valuediagonalterm)=0))))) /\ (((pfc_value_choice_old_valuediagonal)=pfc_left_choice_old_valuediagonalterm*pfc_right_choice_old_valuediagonalterm))))))))))) /\ (((exists fs_u_pfc_choice_old_valuesum fs_v_pfc_choice_old_valuesum. ((((exists fs_h_pfc_choice_old_valuesum_body_start. fs_h_pfc_choice_old_valuesum_body_start + S (0) = S ((S (0)) * fs_v_pfc_choice_old_valuesum)) /\ exists fs_q_pfc_choice_old_valuesum_body_start. fs_u_pfc_choice_old_valuesum = fs_q_pfc_choice_old_valuesum_body_start * S ((S (0)) * fs_v_pfc_choice_old_valuesum) + (0))) /\ ((((exists fs_h_pfc_choice_old_valuesum_body_terminal. fs_h_pfc_choice_old_valuesum_body_terminal + S (pfc_natural_sum_choice_old_value) = S ((S (S (j))) * fs_v_pfc_choice_old_valuesum)) /\ exists fs_q_pfc_choice_old_valuesum_body_terminal. fs_u_pfc_choice_old_valuesum = fs_q_pfc_choice_old_valuesum_body_terminal * S ((S (S (j))) * fs_v_pfc_choice_old_valuesum) + (pfc_natural_sum_choice_old_value))) /\ forall fs_i_pfc_choice_old_valuesum_body_steps. (exists fs_lt_pfc_choice_old_valuesum_body_steps_bound. fs_lt_pfc_choice_old_valuesum_body_steps_bound + S fs_i_pfc_choice_old_valuesum_body_steps = S (j)) -> exists fs_a_pfc_choice_old_valuesum_body_steps fs_r_pfc_choice_old_valuesum_body_steps fs_s_pfc_choice_old_valuesum_body_steps. ((((exists fs_h_pfc_choice_old_valuesum_body_steps_summand. fs_h_pfc_choice_old_valuesum_body_steps_summand + S (fs_a_pfc_choice_old_valuesum_body_steps) = S ((S (fs_i_pfc_choice_old_valuesum_body_steps)) * pfc_terms_scale_choice_old_value)) /\ exists fs_q_pfc_choice_old_valuesum_body_steps_summand. pfc_terms_code_choice_old_value = fs_q_pfc_choice_old_valuesum_body_steps_summand * S ((S (fs_i_pfc_choice_old_valuesum_body_steps)) * pfc_terms_scale_choice_old_value) + (fs_a_pfc_choice_old_valuesum_body_steps))) /\ ((((exists fs_h_pfc_choice_old_valuesum_body_steps_partial. fs_h_pfc_choice_old_valuesum_body_steps_partial + S (fs_r_pfc_choice_old_valuesum_body_steps) = S ((S (fs_i_pfc_choice_old_valuesum_body_steps)) * fs_v_pfc_choice_old_valuesum)) /\ exists fs_q_pfc_choice_old_valuesum_body_steps_partial. fs_u_pfc_choice_old_valuesum = fs_q_pfc_choice_old_valuesum_body_steps_partial * S ((S (fs_i_pfc_choice_old_valuesum_body_steps)) * fs_v_pfc_choice_old_valuesum) + (fs_r_pfc_choice_old_valuesum_body_steps))) /\ ((((exists fs_h_pfc_choice_old_valuesum_body_steps_successor. fs_h_pfc_choice_old_valuesum_body_steps_successor + S (fs_s_pfc_choice_old_valuesum_body_steps) = S ((S (S fs_i_pfc_choice_old_valuesum_body_steps)) * fs_v_pfc_choice_old_valuesum)) /\ exists fs_q_pfc_choice_old_valuesum_body_steps_successor. fs_u_pfc_choice_old_valuesum = fs_q_pfc_choice_old_valuesum_body_steps_successor * S ((S (S fs_i_pfc_choice_old_valuesum_body_steps)) * fs_v_pfc_choice_old_valuesum) + (fs_s_pfc_choice_old_valuesum_body_steps))) /\ fs_s_pfc_choice_old_valuesum_body_steps = fs_r_pfc_choice_old_valuesum_body_steps + fs_a_pfc_choice_old_valuesum_body_steps)))))) /\ ((((exists pfa_gap_choice_old_valueresiduebound. pfa_gap_choice_old_valueresiduebound + S (t) = (p)) /\ ((exists pfa_offset_left_choice_old_valueresiduecongruence pfa_offset_right_choice_old_valueresiduecongruence. (pfc_natural_sum_choice_old_value) + (p) * pfa_offset_left_choice_old_valueresiduecongruence = (t) + (p) * pfa_offset_right_choice_old_valueresiduecongruence)))))))))))
  72. specialize hold_witness_witness (j)
  73. apply hold_witness_witness
  74. exact hcase_right
  75. cases hp
  76. cases hp_witness
  77. exists x5
  78. split
  79. specialize hnew_witness_witness_right (j)
  80. specialize hnew_witness_witness_right (x5)
  81. apply hnew_witness_witness_right
  82. exact hcase_right
  83. exact hp_witness_left
  84. exact hp_witness_right
polynomial_diagonal_prefix_from_pointwise · unchanged support, not a new admission
forall ab ac L bb bc M I N. (forall j. (exists pfa_gap_choice_domain. pfa_gap_choice_domain + S (j) = (N)) -> exists t. (exists pfc_complement_choice_pointwise pfc_left_choice_pointwise pfc_right_choice_pointwise. (((j)+pfc_complement_choice_pointwise=(I)) /\ ((((((exists pfa_gap_choice_pointwiseleftinside. pfa_gap_choice_pointwiseleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_choice_pointwiseleftentry. ff_h_pfp_choice_pointwiseleftentry + S (pfc_left_choice_pointwise) = S ((S (j)) * ac)) /\ exists ff_q_pfp_choice_pointwiseleftentry. ab = ff_q_pfp_choice_pointwiseleftentry * S ((S (j)) * ac) + (pfc_left_choice_pointwise)))))) \/ (((exists pfc_gap_choice_pointwiseleftoutside. pfc_gap_choice_pointwiseleftoutside+(L)=(j)) /\ (((pfc_left_choice_pointwise)=0))))) /\ ((((((exists pfa_gap_choice_pointwiserightinside. pfa_gap_choice_pointwiserightinside + S (pfc_complement_choice_pointwise) = (M)) /\ ((((exists ff_h_pfp_choice_pointwiserightentry. ff_h_pfp_choice_pointwiserightentry + S (pfc_right_choice_pointwise) = S ((S (pfc_complement_choice_pointwise)) * bc)) /\ exists ff_q_pfp_choice_pointwiserightentry. bb = ff_q_pfp_choice_pointwiserightentry * S ((S (pfc_complement_choice_pointwise)) * bc) + (pfc_right_choice_pointwise)))))) \/ (((exists pfc_gap_choice_pointwiserightoutside. pfc_gap_choice_pointwiserightoutside+(M)=(pfc_complement_choice_pointwise)) /\ (((pfc_right_choice_pointwise)=0))))) /\ (((t)=pfc_left_choice_pointwise*pfc_right_choice_pointwise))))))))) -> exists db dc. (forall pfc_index_choice_result. (exists pfa_gap_choice_resultbound. pfa_gap_choice_resultbound + S (pfc_index_choice_result) = (N)) -> exists pfc_value_choice_result. ((((exists ff_h_pfp_choice_resultentry. ff_h_pfp_choice_resultentry + S (pfc_value_choice_result) = S ((S (pfc_index_choice_result)) * dc)) /\ exists ff_q_pfp_choice_resultentry. db = ff_q_pfp_choice_resultentry * S ((S (pfc_index_choice_result)) * dc) + (pfc_value_choice_result))) /\ ((exists pfc_complement_choice_resultterm pfc_left_choice_resultterm pfc_right_choice_resultterm. (((pfc_index_choice_result)+pfc_complement_choice_resultterm=(I)) /\ ((((((exists pfa_gap_choice_resulttermleftinside. pfa_gap_choice_resulttermleftinside + S (pfc_index_choice_result) = (L)) /\ ((((exists ff_h_pfp_choice_resulttermleftentry. ff_h_pfp_choice_resulttermleftentry + S (pfc_left_choice_resultterm) = S ((S (pfc_index_choice_result)) * ac)) /\ exists ff_q_pfp_choice_resulttermleftentry. ab = ff_q_pfp_choice_resulttermleftentry * S ((S (pfc_index_choice_result)) * ac) + (pfc_left_choice_resultterm)))))) \/ (((exists pfc_gap_choice_resulttermleftoutside. pfc_gap_choice_resulttermleftoutside+(L)=(pfc_index_choice_result)) /\ (((pfc_left_choice_resultterm)=0))))) /\ ((((((exists pfa_gap_choice_resulttermrightinside. pfa_gap_choice_resulttermrightinside + S (pfc_complement_choice_resultterm) = (M)) /\ ((((exists ff_h_pfp_choice_resulttermrightentry. ff_h_pfp_choice_resulttermrightentry + S (pfc_right_choice_resultterm) = S ((S (pfc_complement_choice_resultterm)) * bc)) /\ exists ff_q_pfp_choice_resulttermrightentry. bb = ff_q_pfp_choice_resulttermrightentry * S ((S (pfc_complement_choice_resultterm)) * bc) + (pfc_right_choice_resultterm)))))) \/ (((exists pfc_gap_choice_resulttermrightoutside. pfc_gap_choice_resulttermrightoutside+(M)=(pfc_complement_choice_resultterm)) /\ (((pfc_right_choice_resultterm)=0))))) /\ (((pfc_value_choice_result)=pfc_left_choice_resultterm*pfc_right_choice_resultterm)))))))))))
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro I
  8. intro N
  9. induction N
  10. intro h
  11. exists 0
  12. exists 0
  13. intro j
  14. intro hj
  15. exfalso
  16. specialize lt_not_le (j)
  17. specialize lt_not_le (0)
  18. apply lt_not_le
  19. exact hj
  20. specialize zero_le (j)
  21. apply zero_le
  22. intro h
  23. have hold : exists db dc. (forall pfc_index_choice_old. (exists pfa_gap_choice_oldbound. pfa_gap_choice_oldbound + S (pfc_index_choice_old) = (N)) -> exists pfc_value_choice_old. ((((exists ff_h_pfp_choice_oldentry. ff_h_pfp_choice_oldentry + S (pfc_value_choice_old) = S ((S (pfc_index_choice_old)) * dc)) /\ exists ff_q_pfp_choice_oldentry. db = ff_q_pfp_choice_oldentry * S ((S (pfc_index_choice_old)) * dc) + (pfc_value_choice_old))) /\ ((exists pfc_complement_choice_oldterm pfc_left_choice_oldterm pfc_right_choice_oldterm. (((pfc_index_choice_old)+pfc_complement_choice_oldterm=(I)) /\ ((((((exists pfa_gap_choice_oldtermleftinside. pfa_gap_choice_oldtermleftinside + S (pfc_index_choice_old) = (L)) /\ ((((exists ff_h_pfp_choice_oldtermleftentry. ff_h_pfp_choice_oldtermleftentry + S (pfc_left_choice_oldterm) = S ((S (pfc_index_choice_old)) * ac)) /\ exists ff_q_pfp_choice_oldtermleftentry. ab = ff_q_pfp_choice_oldtermleftentry * S ((S (pfc_index_choice_old)) * ac) + (pfc_left_choice_oldterm)))))) \/ (((exists pfc_gap_choice_oldtermleftoutside. pfc_gap_choice_oldtermleftoutside+(L)=(pfc_index_choice_old)) /\ (((pfc_left_choice_oldterm)=0))))) /\ ((((((exists pfa_gap_choice_oldtermrightinside. pfa_gap_choice_oldtermrightinside + S (pfc_complement_choice_oldterm) = (M)) /\ ((((exists ff_h_pfp_choice_oldtermrightentry. ff_h_pfp_choice_oldtermrightentry + S (pfc_right_choice_oldterm) = S ((S (pfc_complement_choice_oldterm)) * bc)) /\ exists ff_q_pfp_choice_oldtermrightentry. bb = ff_q_pfp_choice_oldtermrightentry * S ((S (pfc_complement_choice_oldterm)) * bc) + (pfc_right_choice_oldterm)))))) \/ (((exists pfc_gap_choice_oldtermrightoutside. pfc_gap_choice_oldtermrightoutside+(M)=(pfc_complement_choice_oldterm)) /\ (((pfc_right_choice_oldterm)=0))))) /\ (((pfc_value_choice_old)=pfc_left_choice_oldterm*pfc_right_choice_oldterm)))))))))))
  24. apply IH
  25. intro j
  26. intro hj
  27. specialize h (j)
  28. apply h
  29. specialize le_succ (S j)
  30. specialize le_succ (N)
  31. apply le_succ
  32. exact hj
  33. cases hold
  34. cases hold_witness
  35. have hv : exists t. (exists pfc_complement_choice_last_value pfc_left_choice_last_value pfc_right_choice_last_value. (((N)+pfc_complement_choice_last_value=(I)) /\ ((((((exists pfa_gap_choice_last_valueleftinside. pfa_gap_choice_last_valueleftinside + S (N) = (L)) /\ ((((exists ff_h_pfp_choice_last_valueleftentry. ff_h_pfp_choice_last_valueleftentry + S (pfc_left_choice_last_value) = S ((S (N)) * ac)) /\ exists ff_q_pfp_choice_last_valueleftentry. ab = ff_q_pfp_choice_last_valueleftentry * S ((S (N)) * ac) + (pfc_left_choice_last_value)))))) \/ (((exists pfc_gap_choice_last_valueleftoutside. pfc_gap_choice_last_valueleftoutside+(L)=(N)) /\ (((pfc_left_choice_last_value)=0))))) /\ ((((((exists pfa_gap_choice_last_valuerightinside. pfa_gap_choice_last_valuerightinside + S (pfc_complement_choice_last_value) = (M)) /\ ((((exists ff_h_pfp_choice_last_valuerightentry. ff_h_pfp_choice_last_valuerightentry + S (pfc_right_choice_last_value) = S ((S (pfc_complement_choice_last_value)) * bc)) /\ exists ff_q_pfp_choice_last_valuerightentry. bb = ff_q_pfp_choice_last_valuerightentry * S ((S (pfc_complement_choice_last_value)) * bc) + (pfc_right_choice_last_value)))))) \/ (((exists pfc_gap_choice_last_valuerightoutside. pfc_gap_choice_last_valuerightoutside+(M)=(pfc_complement_choice_last_value)) /\ (((pfc_right_choice_last_value)=0))))) /\ (((t)=pfc_left_choice_last_value*pfc_right_choice_last_value))))))))
  36. specialize h (N)
  37. apply h
  38. exists 0
  39. apply zero_add
  40. cases hv
  41. have hnew : exists db dc. (((((exists ff_h_pfp_choice_last_entry. ff_h_pfp_choice_last_entry + S (x2) = S ((S (N)) * dc)) /\ exists ff_q_pfp_choice_last_entry. db = ff_q_pfp_choice_last_entry * S ((S (N)) * dc) + (x2))) /\ ((forall mdr_i_pfp_choice_preservation mdr_a_pfp_choice_preservation. (exists mdr_gap_pfp_choice_preservationb. mdr_gap_pfp_choice_preservationb + S (mdr_i_pfp_choice_preservation) = (N)) -> (((exists ff_h_mdr_pfp_choice_preservationo. ff_h_mdr_pfp_choice_preservationo + S (mdr_a_pfp_choice_preservation) = S ((S (mdr_i_pfp_choice_preservation)) * x1)) /\ exists ff_q_mdr_pfp_choice_preservationo. x = ff_q_mdr_pfp_choice_preservationo * S ((S (mdr_i_pfp_choice_preservation)) * x1) + (mdr_a_pfp_choice_preservation))) -> (((exists ff_h_mdr_pfp_choice_preservationn. ff_h_mdr_pfp_choice_preservationn + S (mdr_a_pfp_choice_preservation) = S ((S (mdr_i_pfp_choice_preservation)) * dc)) /\ exists ff_q_mdr_pfp_choice_preservationn. db = ff_q_mdr_pfp_choice_preservationn * S ((S (mdr_i_pfp_choice_preservation)) * dc) + (mdr_a_pfp_choice_preservation)))))))
  42. specialize beta_prefix_extend (N)
  43. specialize beta_prefix_extend (x)
  44. specialize beta_prefix_extend (x1)
  45. specialize beta_prefix_extend (x2)
  46. apply beta_prefix_extend
  47. cases hnew
  48. cases hnew_witness
  49. cases hnew_witness_witness
  50. exists x3
  51. exists x4
  52. intro j
  53. intro hj
  54. have hcase : j=N \/ (exists pfa_gap_choice_index_case. pfa_gap_choice_index_case + S (j) = (N))
  55. specialize finite_lt_succ_eq_or_lt (N)
  56. specialize finite_lt_succ_eq_or_lt (j)
  57. apply finite_lt_succ_eq_or_lt
  58. exact hj
  59. cases hcase
  60. exists x2
  61. split
  62. rewrite hcase_left
  63. rewrite hcase_left
  64. exact hnew_witness_witness_left
  65. rewrite hcase_left
  66. rewrite hcase_left
  67. rewrite hcase_left
  68. rewrite hcase_left
  69. rewrite hcase_left
  70. exact hv_witness
  71. have hp : exists t. ((((exists ff_h_pfp_choice_old_entry. ff_h_pfp_choice_old_entry + S (t) = S ((S (j)) * x1)) /\ exists ff_q_pfp_choice_old_entry. x = ff_q_pfp_choice_old_entry * S ((S (j)) * x1) + (t))) /\ ((exists pfc_complement_choice_old_value pfc_left_choice_old_value pfc_right_choice_old_value. (((j)+pfc_complement_choice_old_value=(I)) /\ ((((((exists pfa_gap_choice_old_valueleftinside. pfa_gap_choice_old_valueleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_choice_old_valueleftentry. ff_h_pfp_choice_old_valueleftentry + S (pfc_left_choice_old_value) = S ((S (j)) * ac)) /\ exists ff_q_pfp_choice_old_valueleftentry. ab = ff_q_pfp_choice_old_valueleftentry * S ((S (j)) * ac) + (pfc_left_choice_old_value)))))) \/ (((exists pfc_gap_choice_old_valueleftoutside. pfc_gap_choice_old_valueleftoutside+(L)=(j)) /\ (((pfc_left_choice_old_value)=0))))) /\ ((((((exists pfa_gap_choice_old_valuerightinside. pfa_gap_choice_old_valuerightinside + S (pfc_complement_choice_old_value) = (M)) /\ ((((exists ff_h_pfp_choice_old_valuerightentry. ff_h_pfp_choice_old_valuerightentry + S (pfc_right_choice_old_value) = S ((S (pfc_complement_choice_old_value)) * bc)) /\ exists ff_q_pfp_choice_old_valuerightentry. bb = ff_q_pfp_choice_old_valuerightentry * S ((S (pfc_complement_choice_old_value)) * bc) + (pfc_right_choice_old_value)))))) \/ (((exists pfc_gap_choice_old_valuerightoutside. pfc_gap_choice_old_valuerightoutside+(M)=(pfc_complement_choice_old_value)) /\ (((pfc_right_choice_old_value)=0))))) /\ (((t)=pfc_left_choice_old_value*pfc_right_choice_old_value))))))))))
  72. specialize hold_witness_witness (j)
  73. apply hold_witness_witness
  74. exact hcase_right
  75. cases hp
  76. cases hp_witness
  77. exists x5
  78. split
  79. specialize hnew_witness_witness_right (j)
  80. specialize hnew_witness_witness_right (x5)
  81. apply hnew_witness_witness_right
  82. exact hcase_right
  83. exact hp_witness_left
  84. exact hp_witness_right
polynomial_diagonal_term_exists · unchanged support, not a new admission
forall ab ac L bb bc M i j. (exists pfa_gap_term_index. pfa_gap_term_index + S (j) = (S i)) -> exists t. (exists pfc_complement_term_exists pfc_left_term_exists pfc_right_term_exists. (((j)+pfc_complement_term_exists=(i)) /\ ((((((exists pfa_gap_term_existsleftinside. pfa_gap_term_existsleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_existsleftentry. ff_h_pfp_term_existsleftentry + S (pfc_left_term_exists) = S ((S (j)) * ac)) /\ exists ff_q_pfp_term_existsleftentry. ab = ff_q_pfp_term_existsleftentry * S ((S (j)) * ac) + (pfc_left_term_exists)))))) \/ (((exists pfc_gap_term_existsleftoutside. pfc_gap_term_existsleftoutside+(L)=(j)) /\ (((pfc_left_term_exists)=0))))) /\ ((((((exists pfa_gap_term_existsrightinside. pfa_gap_term_existsrightinside + S (pfc_complement_term_exists) = (M)) /\ ((((exists ff_h_pfp_term_existsrightentry. ff_h_pfp_term_existsrightentry + S (pfc_right_term_exists) = S ((S (pfc_complement_term_exists)) * bc)) /\ exists ff_q_pfp_term_existsrightentry. bb = ff_q_pfp_term_existsrightentry * S ((S (pfc_complement_term_exists)) * bc) + (pfc_right_term_exists)))))) \/ (((exists pfc_gap_term_existsrightoutside. pfc_gap_term_existsrightoutside+(M)=(pfc_complement_term_exists)) /\ (((pfc_right_term_exists)=0))))) /\ (((t)=pfc_left_term_exists*pfc_right_term_exists))))))))
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro i
  8. intro j
  9. intro hj
  10. have hk : exists k. k+j=i
  11. specialize le_of_succ_le_succ (j)
  12. specialize le_of_succ_le_succ (i)
  13. apply le_of_succ_le_succ
  14. exact hj
  15. cases hk
  16. have ha : exists a. ((((exists pfa_gap_term_chosen_leftinside. pfa_gap_term_chosen_leftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_chosen_leftentry. ff_h_pfp_term_chosen_leftentry + S (a) = S ((S (j)) * ac)) /\ exists ff_q_pfp_term_chosen_leftentry. ab = ff_q_pfp_term_chosen_leftentry * S ((S (j)) * ac) + (a)))))) \/ (((exists pfc_gap_term_chosen_leftoutside. pfc_gap_term_chosen_leftoutside+(L)=(j)) /\ (((a)=0)))))
  17. specialize polynomial_zero_extended_entry_exists (ab)
  18. specialize polynomial_zero_extended_entry_exists (ac)
  19. specialize polynomial_zero_extended_entry_exists (L)
  20. specialize polynomial_zero_extended_entry_exists (j)
  21. apply polynomial_zero_extended_entry_exists
  22. cases ha
  23. have hb : exists b. ((((exists pfa_gap_term_chosen_rightinside. pfa_gap_term_chosen_rightinside + S (x) = (M)) /\ ((((exists ff_h_pfp_term_chosen_rightentry. ff_h_pfp_term_chosen_rightentry + S (b) = S ((S (x)) * bc)) /\ exists ff_q_pfp_term_chosen_rightentry. bb = ff_q_pfp_term_chosen_rightentry * S ((S (x)) * bc) + (b)))))) \/ (((exists pfc_gap_term_chosen_rightoutside. pfc_gap_term_chosen_rightoutside+(M)=(x)) /\ (((b)=0)))))
  24. specialize polynomial_zero_extended_entry_exists (bb)
  25. specialize polynomial_zero_extended_entry_exists (bc)
  26. specialize polynomial_zero_extended_entry_exists (M)
  27. specialize polynomial_zero_extended_entry_exists (x)
  28. apply polynomial_zero_extended_entry_exists
  29. cases hb
  30. exists x1*x2
  31. exists x
  32. exists x1
  33. exists x2
  34. split
  35. trans x+j
  36. specialize add_comm (j)
  37. specialize add_comm (x)
  38. apply add_comm
  39. exact hk_witness
  40. split
  41. exact ha_witness
  42. split
  43. exact hb_witness
  44. refl
polynomial_diagonal_prefix_exists · unchanged support, not a new admission
forall ab ac L bb bc M I. exists db dc. (forall pfc_index_diagonal_exists. (exists pfa_gap_diagonal_existsbound. pfa_gap_diagonal_existsbound + S (pfc_index_diagonal_exists) = (S I)) -> exists pfc_value_diagonal_exists. ((((exists ff_h_pfp_diagonal_existsentry. ff_h_pfp_diagonal_existsentry + S (pfc_value_diagonal_exists) = S ((S (pfc_index_diagonal_exists)) * dc)) /\ exists ff_q_pfp_diagonal_existsentry. db = ff_q_pfp_diagonal_existsentry * S ((S (pfc_index_diagonal_exists)) * dc) + (pfc_value_diagonal_exists))) /\ ((exists pfc_complement_diagonal_existsterm pfc_left_diagonal_existsterm pfc_right_diagonal_existsterm. (((pfc_index_diagonal_exists)+pfc_complement_diagonal_existsterm=(I)) /\ ((((((exists pfa_gap_diagonal_existstermleftinside. pfa_gap_diagonal_existstermleftinside + S (pfc_index_diagonal_exists) = (L)) /\ ((((exists ff_h_pfp_diagonal_existstermleftentry. ff_h_pfp_diagonal_existstermleftentry + S (pfc_left_diagonal_existsterm) = S ((S (pfc_index_diagonal_exists)) * ac)) /\ exists ff_q_pfp_diagonal_existstermleftentry. ab = ff_q_pfp_diagonal_existstermleftentry * S ((S (pfc_index_diagonal_exists)) * ac) + (pfc_left_diagonal_existsterm)))))) \/ (((exists pfc_gap_diagonal_existstermleftoutside. pfc_gap_diagonal_existstermleftoutside+(L)=(pfc_index_diagonal_exists)) /\ (((pfc_left_diagonal_existsterm)=0))))) /\ ((((((exists pfa_gap_diagonal_existstermrightinside. pfa_gap_diagonal_existstermrightinside + S (pfc_complement_diagonal_existsterm) = (M)) /\ ((((exists ff_h_pfp_diagonal_existstermrightentry. ff_h_pfp_diagonal_existstermrightentry + S (pfc_right_diagonal_existsterm) = S ((S (pfc_complement_diagonal_existsterm)) * bc)) /\ exists ff_q_pfp_diagonal_existstermrightentry. bb = ff_q_pfp_diagonal_existstermrightentry * S ((S (pfc_complement_diagonal_existsterm)) * bc) + (pfc_right_diagonal_existsterm)))))) \/ (((exists pfc_gap_diagonal_existstermrightoutside. pfc_gap_diagonal_existstermrightoutside+(M)=(pfc_complement_diagonal_existsterm)) /\ (((pfc_right_diagonal_existsterm)=0))))) /\ (((pfc_value_diagonal_exists)=pfc_left_diagonal_existsterm*pfc_right_diagonal_existsterm)))))))))))
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro I
  8. specialize polynomial_diagonal_prefix_from_pointwise (ab)
  9. specialize polynomial_diagonal_prefix_from_pointwise (ac)
  10. specialize polynomial_diagonal_prefix_from_pointwise (L)
  11. specialize polynomial_diagonal_prefix_from_pointwise (bb)
  12. specialize polynomial_diagonal_prefix_from_pointwise (bc)
  13. specialize polynomial_diagonal_prefix_from_pointwise (M)
  14. specialize polynomial_diagonal_prefix_from_pointwise (I)
  15. specialize polynomial_diagonal_prefix_from_pointwise (S I)
  16. apply polynomial_diagonal_prefix_from_pointwise
  17. intro j
  18. intro hj
  19. specialize polynomial_diagonal_term_exists (ab)
  20. specialize polynomial_diagonal_term_exists (ac)
  21. specialize polynomial_diagonal_term_exists (L)
  22. specialize polynomial_diagonal_term_exists (bb)
  23. specialize polynomial_diagonal_term_exists (bc)
  24. specialize polynomial_diagonal_term_exists (M)
  25. specialize polynomial_diagonal_term_exists (I)
  26. specialize polynomial_diagonal_term_exists (j)
  27. apply polynomial_diagonal_term_exists
  28. exact hj
prime_field_convolution_coefficient_exists · unchanged support, not a new admission
forall p ab ac L bb bc M i. ~(p=0) -> exists r. (exists pfc_terms_code_coefficient_exists pfc_terms_scale_coefficient_exists pfc_natural_sum_coefficient_exists. ((forall pfc_index_coefficient_existsdiagonal. (exists pfa_gap_coefficient_existsdiagonalbound. pfa_gap_coefficient_existsdiagonalbound + S (pfc_index_coefficient_existsdiagonal) = (S (i))) -> exists pfc_value_coefficient_existsdiagonal. ((((exists ff_h_pfp_coefficient_existsdiagonalentry. ff_h_pfp_coefficient_existsdiagonalentry + S (pfc_value_coefficient_existsdiagonal) = S ((S (pfc_index_coefficient_existsdiagonal)) * pfc_terms_scale_coefficient_exists)) /\ exists ff_q_pfp_coefficient_existsdiagonalentry. pfc_terms_code_coefficient_exists = ff_q_pfp_coefficient_existsdiagonalentry * S ((S (pfc_index_coefficient_existsdiagonal)) * pfc_terms_scale_coefficient_exists) + (pfc_value_coefficient_existsdiagonal))) /\ ((exists pfc_complement_coefficient_existsdiagonalterm pfc_left_coefficient_existsdiagonalterm pfc_right_coefficient_existsdiagonalterm. (((pfc_index_coefficient_existsdiagonal)+pfc_complement_coefficient_existsdiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_existsdiagonaltermleftinside. pfa_gap_coefficient_existsdiagonaltermleftinside + S (pfc_index_coefficient_existsdiagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_existsdiagonaltermleftentry. ff_h_pfp_coefficient_existsdiagonaltermleftentry + S (pfc_left_coefficient_existsdiagonalterm) = S ((S (pfc_index_coefficient_existsdiagonal)) * ac)) /\ exists ff_q_pfp_coefficient_existsdiagonaltermleftentry. ab = ff_q_pfp_coefficient_existsdiagonaltermleftentry * S ((S (pfc_index_coefficient_existsdiagonal)) * ac) + (pfc_left_coefficient_existsdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_existsdiagonaltermleftoutside. pfc_gap_coefficient_existsdiagonaltermleftoutside+(L)=(pfc_index_coefficient_existsdiagonal)) /\ (((pfc_left_coefficient_existsdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_existsdiagonaltermrightinside. pfa_gap_coefficient_existsdiagonaltermrightinside + S (pfc_complement_coefficient_existsdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_existsdiagonaltermrightentry. ff_h_pfp_coefficient_existsdiagonaltermrightentry + S (pfc_right_coefficient_existsdiagonalterm) = S ((S (pfc_complement_coefficient_existsdiagonalterm)) * bc)) /\ exists ff_q_pfp_coefficient_existsdiagonaltermrightentry. bb = ff_q_pfp_coefficient_existsdiagonaltermrightentry * S ((S (pfc_complement_coefficient_existsdiagonalterm)) * bc) + (pfc_right_coefficient_existsdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_existsdiagonaltermrightoutside. pfc_gap_coefficient_existsdiagonaltermrightoutside+(M)=(pfc_complement_coefficient_existsdiagonalterm)) /\ (((pfc_right_coefficient_existsdiagonalterm)=0))))) /\ (((pfc_value_coefficient_existsdiagonal)=pfc_left_coefficient_existsdiagonalterm*pfc_right_coefficient_existsdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_existssum fs_v_pfc_coefficient_existssum. ((((exists fs_h_pfc_coefficient_existssum_body_start. fs_h_pfc_coefficient_existssum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_existssum)) /\ exists fs_q_pfc_coefficient_existssum_body_start. fs_u_pfc_coefficient_existssum = fs_q_pfc_coefficient_existssum_body_start * S ((S (0)) * fs_v_pfc_coefficient_existssum) + (0))) /\ ((((exists fs_h_pfc_coefficient_existssum_body_terminal. fs_h_pfc_coefficient_existssum_body_terminal + S (pfc_natural_sum_coefficient_exists) = S ((S (S (i))) * fs_v_pfc_coefficient_existssum)) /\ exists fs_q_pfc_coefficient_existssum_body_terminal. fs_u_pfc_coefficient_existssum = fs_q_pfc_coefficient_existssum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_existssum) + (pfc_natural_sum_coefficient_exists))) /\ forall fs_i_pfc_coefficient_existssum_body_steps. (exists fs_lt_pfc_coefficient_existssum_body_steps_bound. fs_lt_pfc_coefficient_existssum_body_steps_bound + S fs_i_pfc_coefficient_existssum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_existssum_body_steps fs_r_pfc_coefficient_existssum_body_steps fs_s_pfc_coefficient_existssum_body_steps. ((((exists fs_h_pfc_coefficient_existssum_body_steps_summand. fs_h_pfc_coefficient_existssum_body_steps_summand + S (fs_a_pfc_coefficient_existssum_body_steps) = S ((S (fs_i_pfc_coefficient_existssum_body_steps)) * pfc_terms_scale_coefficient_exists)) /\ exists fs_q_pfc_coefficient_existssum_body_steps_summand. pfc_terms_code_coefficient_exists = fs_q_pfc_coefficient_existssum_body_steps_summand * S ((S (fs_i_pfc_coefficient_existssum_body_steps)) * pfc_terms_scale_coefficient_exists) + (fs_a_pfc_coefficient_existssum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_existssum_body_steps_partial. fs_h_pfc_coefficient_existssum_body_steps_partial + S (fs_r_pfc_coefficient_existssum_body_steps) = S ((S (fs_i_pfc_coefficient_existssum_body_steps)) * fs_v_pfc_coefficient_existssum)) /\ exists fs_q_pfc_coefficient_existssum_body_steps_partial. fs_u_pfc_coefficient_existssum = fs_q_pfc_coefficient_existssum_body_steps_partial * S ((S (fs_i_pfc_coefficient_existssum_body_steps)) * fs_v_pfc_coefficient_existssum) + (fs_r_pfc_coefficient_existssum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_existssum_body_steps_successor. fs_h_pfc_coefficient_existssum_body_steps_successor + S (fs_s_pfc_coefficient_existssum_body_steps) = S ((S (S fs_i_pfc_coefficient_existssum_body_steps)) * fs_v_pfc_coefficient_existssum)) /\ exists fs_q_pfc_coefficient_existssum_body_steps_successor. fs_u_pfc_coefficient_existssum = fs_q_pfc_coefficient_existssum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_existssum_body_steps)) * fs_v_pfc_coefficient_existssum) + (fs_s_pfc_coefficient_existssum_body_steps))) /\ fs_s_pfc_coefficient_existssum_body_steps = fs_r_pfc_coefficient_existssum_body_steps + fs_a_pfc_coefficient_existssum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_existsresiduebound. pfa_gap_coefficient_existsresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_coefficient_existsresiduecongruence pfa_offset_right_coefficient_existsresiduecongruence. (pfc_natural_sum_coefficient_exists) + (p) * pfa_offset_left_coefficient_existsresiduecongruence = (r) + (p) * pfa_offset_right_coefficient_existsresiduecongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro i
  9. intro hp
  10. have hd : exists db dc. (forall pfc_index_coefficient_diagonal. (exists pfa_gap_coefficient_diagonalbound. pfa_gap_coefficient_diagonalbound + S (pfc_index_coefficient_diagonal) = (S i)) -> exists pfc_value_coefficient_diagonal. ((((exists ff_h_pfp_coefficient_diagonalentry. ff_h_pfp_coefficient_diagonalentry + S (pfc_value_coefficient_diagonal) = S ((S (pfc_index_coefficient_diagonal)) * dc)) /\ exists ff_q_pfp_coefficient_diagonalentry. db = ff_q_pfp_coefficient_diagonalentry * S ((S (pfc_index_coefficient_diagonal)) * dc) + (pfc_value_coefficient_diagonal))) /\ ((exists pfc_complement_coefficient_diagonalterm pfc_left_coefficient_diagonalterm pfc_right_coefficient_diagonalterm. (((pfc_index_coefficient_diagonal)+pfc_complement_coefficient_diagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_diagonaltermleftinside. pfa_gap_coefficient_diagonaltermleftinside + S (pfc_index_coefficient_diagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_diagonaltermleftentry. ff_h_pfp_coefficient_diagonaltermleftentry + S (pfc_left_coefficient_diagonalterm) = S ((S (pfc_index_coefficient_diagonal)) * ac)) /\ exists ff_q_pfp_coefficient_diagonaltermleftentry. ab = ff_q_pfp_coefficient_diagonaltermleftentry * S ((S (pfc_index_coefficient_diagonal)) * ac) + (pfc_left_coefficient_diagonalterm)))))) \/ (((exists pfc_gap_coefficient_diagonaltermleftoutside. pfc_gap_coefficient_diagonaltermleftoutside+(L)=(pfc_index_coefficient_diagonal)) /\ (((pfc_left_coefficient_diagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_diagonaltermrightinside. pfa_gap_coefficient_diagonaltermrightinside + S (pfc_complement_coefficient_diagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_diagonaltermrightentry. ff_h_pfp_coefficient_diagonaltermrightentry + S (pfc_right_coefficient_diagonalterm) = S ((S (pfc_complement_coefficient_diagonalterm)) * bc)) /\ exists ff_q_pfp_coefficient_diagonaltermrightentry. bb = ff_q_pfp_coefficient_diagonaltermrightentry * S ((S (pfc_complement_coefficient_diagonalterm)) * bc) + (pfc_right_coefficient_diagonalterm)))))) \/ (((exists pfc_gap_coefficient_diagonaltermrightoutside. pfc_gap_coefficient_diagonaltermrightoutside+(M)=(pfc_complement_coefficient_diagonalterm)) /\ (((pfc_right_coefficient_diagonalterm)=0))))) /\ (((pfc_value_coefficient_diagonal)=pfc_left_coefficient_diagonalterm*pfc_right_coefficient_diagonalterm)))))))))))
  11. specialize polynomial_diagonal_prefix_exists (ab)
  12. specialize polynomial_diagonal_prefix_exists (ac)
  13. specialize polynomial_diagonal_prefix_exists (L)
  14. specialize polynomial_diagonal_prefix_exists (bb)
  15. specialize polynomial_diagonal_prefix_exists (bc)
  16. specialize polynomial_diagonal_prefix_exists (M)
  17. specialize polynomial_diagonal_prefix_exists (i)
  18. apply polynomial_diagonal_prefix_exists
  19. cases hd
  20. cases hd_witness
  21. have hs : exists n. (exists fs_u_pfc_coefficient_sum fs_v_pfc_coefficient_sum. ((((exists fs_h_pfc_coefficient_sum_body_start. fs_h_pfc_coefficient_sum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_sum)) /\ exists fs_q_pfc_coefficient_sum_body_start. fs_u_pfc_coefficient_sum = fs_q_pfc_coefficient_sum_body_start * S ((S (0)) * fs_v_pfc_coefficient_sum) + (0))) /\ ((((exists fs_h_pfc_coefficient_sum_body_terminal. fs_h_pfc_coefficient_sum_body_terminal + S (n) = S ((S (S i)) * fs_v_pfc_coefficient_sum)) /\ exists fs_q_pfc_coefficient_sum_body_terminal. fs_u_pfc_coefficient_sum = fs_q_pfc_coefficient_sum_body_terminal * S ((S (S i)) * fs_v_pfc_coefficient_sum) + (n))) /\ forall fs_i_pfc_coefficient_sum_body_steps. (exists fs_lt_pfc_coefficient_sum_body_steps_bound. fs_lt_pfc_coefficient_sum_body_steps_bound + S fs_i_pfc_coefficient_sum_body_steps = S i) -> exists fs_a_pfc_coefficient_sum_body_steps fs_r_pfc_coefficient_sum_body_steps fs_s_pfc_coefficient_sum_body_steps. ((((exists fs_h_pfc_coefficient_sum_body_steps_summand. fs_h_pfc_coefficient_sum_body_steps_summand + S (fs_a_pfc_coefficient_sum_body_steps) = S ((S (fs_i_pfc_coefficient_sum_body_steps)) * x1)) /\ exists fs_q_pfc_coefficient_sum_body_steps_summand. x = fs_q_pfc_coefficient_sum_body_steps_summand * S ((S (fs_i_pfc_coefficient_sum_body_steps)) * x1) + (fs_a_pfc_coefficient_sum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_sum_body_steps_partial. fs_h_pfc_coefficient_sum_body_steps_partial + S (fs_r_pfc_coefficient_sum_body_steps) = S ((S (fs_i_pfc_coefficient_sum_body_steps)) * fs_v_pfc_coefficient_sum)) /\ exists fs_q_pfc_coefficient_sum_body_steps_partial. fs_u_pfc_coefficient_sum = fs_q_pfc_coefficient_sum_body_steps_partial * S ((S (fs_i_pfc_coefficient_sum_body_steps)) * fs_v_pfc_coefficient_sum) + (fs_r_pfc_coefficient_sum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_sum_body_steps_successor. fs_h_pfc_coefficient_sum_body_steps_successor + S (fs_s_pfc_coefficient_sum_body_steps) = S ((S (S fs_i_pfc_coefficient_sum_body_steps)) * fs_v_pfc_coefficient_sum)) /\ exists fs_q_pfc_coefficient_sum_body_steps_successor. fs_u_pfc_coefficient_sum = fs_q_pfc_coefficient_sum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_sum_body_steps)) * fs_v_pfc_coefficient_sum) + (fs_s_pfc_coefficient_sum_body_steps))) /\ fs_s_pfc_coefficient_sum_body_steps = fs_r_pfc_coefficient_sum_body_steps + fs_a_pfc_coefficient_sum_body_steps))))))
  22. specialize beta_sum_exists (x)
  23. specialize beta_sum_exists (x1)
  24. specialize beta_sum_exists (S i)
  25. apply beta_sum_exists
  26. cases hs
  27. have hr : exists r. (((exists pfa_gap_coefficient_residuebound. pfa_gap_coefficient_residuebound + S (r) = (p)) /\ ((exists pfa_offset_left_coefficient_residuecongruence pfa_offset_right_coefficient_residuecongruence. (x2) + (p) * pfa_offset_left_coefficient_residuecongruence = (r) + (p) * pfa_offset_right_coefficient_residuecongruence))))
  28. specialize hensel_canonical_residue_exists (p)
  29. specialize hensel_canonical_residue_exists (x2)
  30. apply hensel_canonical_residue_exists
  31. exact hp
  32. cases hr
  33. exists x3
  34. exists x
  35. exists x1
  36. exists x2
  37. split
  38. exact hd_witness_witness
  39. split
  40. exact hs_witness
  41. exact hr_witness
prime_field_convolution_prefix_exists · unchanged support, not a new admission
forall p ab ac L bb bc M N. ~(p=0) -> exists cb cc. (forall pfc_index_convolution_prefix_exists. (exists pfa_gap_convolution_prefix_existsbound. pfa_gap_convolution_prefix_existsbound + S (pfc_index_convolution_prefix_exists) = (N)) -> exists pfc_value_convolution_prefix_exists. ((((exists ff_h_pfp_convolution_prefix_existsentry. ff_h_pfp_convolution_prefix_existsentry + S (pfc_value_convolution_prefix_exists) = S ((S (pfc_index_convolution_prefix_exists)) * cc)) /\ exists ff_q_pfp_convolution_prefix_existsentry. cb = ff_q_pfp_convolution_prefix_existsentry * S ((S (pfc_index_convolution_prefix_exists)) * cc) + (pfc_value_convolution_prefix_exists))) /\ ((exists pfc_terms_code_convolution_prefix_existscoefficient pfc_terms_scale_convolution_prefix_existscoefficient pfc_natural_sum_convolution_prefix_existscoefficient. ((forall pfc_index_convolution_prefix_existscoefficientdiagonal. (exists pfa_gap_convolution_prefix_existscoefficientdiagonalbound. pfa_gap_convolution_prefix_existscoefficientdiagonalbound + S (pfc_index_convolution_prefix_existscoefficientdiagonal) = (S (pfc_index_convolution_prefix_exists))) -> exists pfc_value_convolution_prefix_existscoefficientdiagonal. ((((exists ff_h_pfp_convolution_prefix_existscoefficientdiagonalentry. ff_h_pfp_convolution_prefix_existscoefficientdiagonalentry + S (pfc_value_convolution_prefix_existscoefficientdiagonal) = S ((S (pfc_index_convolution_prefix_existscoefficientdiagonal)) * pfc_terms_scale_convolution_prefix_existscoefficient)) /\ exists ff_q_pfp_convolution_prefix_existscoefficientdiagonalentry. pfc_terms_code_convolution_prefix_existscoefficient = ff_q_pfp_convolution_prefix_existscoefficientdiagonalentry * S ((S (pfc_index_convolution_prefix_existscoefficientdiagonal)) * pfc_terms_scale_convolution_prefix_existscoefficient) + (pfc_value_convolution_prefix_existscoefficientdiagonal))) /\ ((exists pfc_complement_convolution_prefix_existscoefficientdiagonalterm pfc_left_convolution_prefix_existscoefficientdiagonalterm pfc_right_convolution_prefix_existscoefficientdiagonalterm. (((pfc_index_convolution_prefix_existscoefficientdiagonal)+pfc_complement_convolution_prefix_existscoefficientdiagonalterm=(pfc_index_convolution_prefix_exists)) /\ ((((((exists pfa_gap_convolution_prefix_existscoefficientdiagonaltermleftinside. pfa_gap_convolution_prefix_existscoefficientdiagonaltermleftinside + S (pfc_index_convolution_prefix_existscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_convolution_prefix_existscoefficientdiagonaltermleftentry. ff_h_pfp_convolution_prefix_existscoefficientdiagonaltermleftentry + S (pfc_left_convolution_prefix_existscoefficientdiagonalterm) = S ((S (pfc_index_convolution_prefix_existscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_convolution_prefix_existscoefficientdiagonaltermleftentry. ab = ff_q_pfp_convolution_prefix_existscoefficientdiagonaltermleftentry * S ((S (pfc_index_convolution_prefix_existscoefficientdiagonal)) * ac) + (pfc_left_convolution_prefix_existscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_prefix_existscoefficientdiagonaltermleftoutside. pfc_gap_convolution_prefix_existscoefficientdiagonaltermleftoutside+(L)=(pfc_index_convolution_prefix_existscoefficientdiagonal)) /\ (((pfc_left_convolution_prefix_existscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_convolution_prefix_existscoefficientdiagonaltermrightinside. pfa_gap_convolution_prefix_existscoefficientdiagonaltermrightinside + S (pfc_complement_convolution_prefix_existscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_convolution_prefix_existscoefficientdiagonaltermrightentry. ff_h_pfp_convolution_prefix_existscoefficientdiagonaltermrightentry + S (pfc_right_convolution_prefix_existscoefficientdiagonalterm) = S ((S (pfc_complement_convolution_prefix_existscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_convolution_prefix_existscoefficientdiagonaltermrightentry. bb = ff_q_pfp_convolution_prefix_existscoefficientdiagonaltermrightentry * S ((S (pfc_complement_convolution_prefix_existscoefficientdiagonalterm)) * bc) + (pfc_right_convolution_prefix_existscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_prefix_existscoefficientdiagonaltermrightoutside. pfc_gap_convolution_prefix_existscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_convolution_prefix_existscoefficientdiagonalterm)) /\ (((pfc_right_convolution_prefix_existscoefficientdiagonalterm)=0))))) /\ (((pfc_value_convolution_prefix_existscoefficientdiagonal)=pfc_left_convolution_prefix_existscoefficientdiagonalterm*pfc_right_convolution_prefix_existscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_convolution_prefix_existscoefficientsum fs_v_pfc_convolution_prefix_existscoefficientsum. ((((exists fs_h_pfc_convolution_prefix_existscoefficientsum_body_start. fs_h_pfc_convolution_prefix_existscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_convolution_prefix_existscoefficientsum)) /\ exists fs_q_pfc_convolution_prefix_existscoefficientsum_body_start. fs_u_pfc_convolution_prefix_existscoefficientsum = fs_q_pfc_convolution_prefix_existscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_convolution_prefix_existscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_convolution_prefix_existscoefficientsum_body_terminal. fs_h_pfc_convolution_prefix_existscoefficientsum_body_terminal + S (pfc_natural_sum_convolution_prefix_existscoefficient) = S ((S (S (pfc_index_convolution_prefix_exists))) * fs_v_pfc_convolution_prefix_existscoefficientsum)) /\ exists fs_q_pfc_convolution_prefix_existscoefficientsum_body_terminal. fs_u_pfc_convolution_prefix_existscoefficientsum = fs_q_pfc_convolution_prefix_existscoefficientsum_body_terminal * S ((S (S (pfc_index_convolution_prefix_exists))) * fs_v_pfc_convolution_prefix_existscoefficientsum) + (pfc_natural_sum_convolution_prefix_existscoefficient))) /\ forall fs_i_pfc_convolution_prefix_existscoefficientsum_body_steps. (exists fs_lt_pfc_convolution_prefix_existscoefficientsum_body_steps_bound. fs_lt_pfc_convolution_prefix_existscoefficientsum_body_steps_bound + S fs_i_pfc_convolution_prefix_existscoefficientsum_body_steps = S (pfc_index_convolution_prefix_exists)) -> exists fs_a_pfc_convolution_prefix_existscoefficientsum_body_steps fs_r_pfc_convolution_prefix_existscoefficientsum_body_steps fs_s_pfc_convolution_prefix_existscoefficientsum_body_steps. ((((exists fs_h_pfc_convolution_prefix_existscoefficientsum_body_steps_summand. fs_h_pfc_convolution_prefix_existscoefficientsum_body_steps_summand + S (fs_a_pfc_convolution_prefix_existscoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_prefix_existscoefficientsum_body_steps)) * pfc_terms_scale_convolution_prefix_existscoefficient)) /\ exists fs_q_pfc_convolution_prefix_existscoefficientsum_body_steps_summand. pfc_terms_code_convolution_prefix_existscoefficient = fs_q_pfc_convolution_prefix_existscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_convolution_prefix_existscoefficientsum_body_steps)) * pfc_terms_scale_convolution_prefix_existscoefficient) + (fs_a_pfc_convolution_prefix_existscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_prefix_existscoefficientsum_body_steps_partial. fs_h_pfc_convolution_prefix_existscoefficientsum_body_steps_partial + S (fs_r_pfc_convolution_prefix_existscoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_prefix_existscoefficientsum_body_steps)) * fs_v_pfc_convolution_prefix_existscoefficientsum)) /\ exists fs_q_pfc_convolution_prefix_existscoefficientsum_body_steps_partial. fs_u_pfc_convolution_prefix_existscoefficientsum = fs_q_pfc_convolution_prefix_existscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_convolution_prefix_existscoefficientsum_body_steps)) * fs_v_pfc_convolution_prefix_existscoefficientsum) + (fs_r_pfc_convolution_prefix_existscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_prefix_existscoefficientsum_body_steps_successor. fs_h_pfc_convolution_prefix_existscoefficientsum_body_steps_successor + S (fs_s_pfc_convolution_prefix_existscoefficientsum_body_steps) = S ((S (S fs_i_pfc_convolution_prefix_existscoefficientsum_body_steps)) * fs_v_pfc_convolution_prefix_existscoefficientsum)) /\ exists fs_q_pfc_convolution_prefix_existscoefficientsum_body_steps_successor. fs_u_pfc_convolution_prefix_existscoefficientsum = fs_q_pfc_convolution_prefix_existscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_convolution_prefix_existscoefficientsum_body_steps)) * fs_v_pfc_convolution_prefix_existscoefficientsum) + (fs_s_pfc_convolution_prefix_existscoefficientsum_body_steps))) /\ fs_s_pfc_convolution_prefix_existscoefficientsum_body_steps = fs_r_pfc_convolution_prefix_existscoefficientsum_body_steps + fs_a_pfc_convolution_prefix_existscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_convolution_prefix_existscoefficientresiduebound. pfa_gap_convolution_prefix_existscoefficientresiduebound + S (pfc_value_convolution_prefix_exists) = (p)) /\ ((exists pfa_offset_left_convolution_prefix_existscoefficientresiduecongruence pfa_offset_right_convolution_prefix_existscoefficientresiduecongruence. (pfc_natural_sum_convolution_prefix_existscoefficient) + (p) * pfa_offset_left_convolution_prefix_existscoefficientresiduecongruence = (pfc_value_convolution_prefix_exists) + (p) * pfa_offset_right_convolution_prefix_existscoefficientresiduecongruence))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro N
  9. intro hp
  10. specialize prime_field_convolution_prefix_from_pointwise (p)
  11. specialize prime_field_convolution_prefix_from_pointwise (ab)
  12. specialize prime_field_convolution_prefix_from_pointwise (ac)
  13. specialize prime_field_convolution_prefix_from_pointwise (L)
  14. specialize prime_field_convolution_prefix_from_pointwise (bb)
  15. specialize prime_field_convolution_prefix_from_pointwise (bc)
  16. specialize prime_field_convolution_prefix_from_pointwise (M)
  17. specialize prime_field_convolution_prefix_from_pointwise (N)
  18. apply prime_field_convolution_prefix_from_pointwise
  19. intro i
  20. intro hi
  21. specialize prime_field_convolution_coefficient_exists (p)
  22. specialize prime_field_convolution_coefficient_exists (ab)
  23. specialize prime_field_convolution_coefficient_exists (ac)
  24. specialize prime_field_convolution_coefficient_exists (L)
  25. specialize prime_field_convolution_coefficient_exists (bb)
  26. specialize prime_field_convolution_coefficient_exists (bc)
  27. specialize prime_field_convolution_coefficient_exists (M)
  28. specialize prime_field_convolution_coefficient_exists (i)
  29. apply prime_field_convolution_coefficient_exists
  30. exact hp
prime_field_polynomial_convolution_at_length_exists · unchanged support, not a new admission
forall p ab ac L bb bc M N. ~(p=0) -> (forall fom_index_pfp_convolution_exists_left. (exists fom_gap_pfp_convolution_exists_left_index_bound. fom_gap_pfp_convolution_exists_left_index_bound + S (fom_index_pfp_convolution_exists_left) = L) -> exists fom_value_pfp_convolution_exists_left. ((((exists fom_beta_height_pfp_convolution_exists_left_entry. fom_beta_height_pfp_convolution_exists_left_entry + S (fom_value_pfp_convolution_exists_left) = S ((S (fom_index_pfp_convolution_exists_left)) * ac)) /\ exists fom_beta_quotient_pfp_convolution_exists_left_entry. ab = fom_beta_quotient_pfp_convolution_exists_left_entry * S ((S (fom_index_pfp_convolution_exists_left)) * ac) + (fom_value_pfp_convolution_exists_left))) /\ (exists fom_gap_pfp_convolution_exists_left_value_bound. fom_gap_pfp_convolution_exists_left_value_bound + S (fom_value_pfp_convolution_exists_left) = p))) -> (forall fom_index_pfp_convolution_exists_right. (exists fom_gap_pfp_convolution_exists_right_index_bound. fom_gap_pfp_convolution_exists_right_index_bound + S (fom_index_pfp_convolution_exists_right) = M) -> exists fom_value_pfp_convolution_exists_right. ((((exists fom_beta_height_pfp_convolution_exists_right_entry. fom_beta_height_pfp_convolution_exists_right_entry + S (fom_value_pfp_convolution_exists_right) = S ((S (fom_index_pfp_convolution_exists_right)) * bc)) /\ exists fom_beta_quotient_pfp_convolution_exists_right_entry. bb = fom_beta_quotient_pfp_convolution_exists_right_entry * S ((S (fom_index_pfp_convolution_exists_right)) * bc) + (fom_value_pfp_convolution_exists_right))) /\ (exists fom_gap_pfp_convolution_exists_right_value_bound. fom_gap_pfp_convolution_exists_right_value_bound + S (fom_value_pfp_convolution_exists_right) = p))) -> (((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) -> exists cb cc. (((forall fom_index_pfp_convolution_exists_resultleft. (exists fom_gap_pfp_convolution_exists_resultleft_index_bound. fom_gap_pfp_convolution_exists_resultleft_index_bound + S (fom_index_pfp_convolution_exists_resultleft) = L) -> exists fom_value_pfp_convolution_exists_resultleft. ((((exists fom_beta_height_pfp_convolution_exists_resultleft_entry. fom_beta_height_pfp_convolution_exists_resultleft_entry + S (fom_value_pfp_convolution_exists_resultleft) = S ((S (fom_index_pfp_convolution_exists_resultleft)) * ac)) /\ exists fom_beta_quotient_pfp_convolution_exists_resultleft_entry. ab = fom_beta_quotient_pfp_convolution_exists_resultleft_entry * S ((S (fom_index_pfp_convolution_exists_resultleft)) * ac) + (fom_value_pfp_convolution_exists_resultleft))) /\ (exists fom_gap_pfp_convolution_exists_resultleft_value_bound. fom_gap_pfp_convolution_exists_resultleft_value_bound + S (fom_value_pfp_convolution_exists_resultleft) = p))) /\ (((forall fom_index_pfp_convolution_exists_resultright. (exists fom_gap_pfp_convolution_exists_resultright_index_bound. fom_gap_pfp_convolution_exists_resultright_index_bound + S (fom_index_pfp_convolution_exists_resultright) = M) -> exists fom_value_pfp_convolution_exists_resultright. ((((exists fom_beta_height_pfp_convolution_exists_resultright_entry. fom_beta_height_pfp_convolution_exists_resultright_entry + S (fom_value_pfp_convolution_exists_resultright) = S ((S (fom_index_pfp_convolution_exists_resultright)) * bc)) /\ exists fom_beta_quotient_pfp_convolution_exists_resultright_entry. bb = fom_beta_quotient_pfp_convolution_exists_resultright_entry * S ((S (fom_index_pfp_convolution_exists_resultright)) * bc) + (fom_value_pfp_convolution_exists_resultright))) /\ (exists fom_gap_pfp_convolution_exists_resultright_value_bound. fom_gap_pfp_convolution_exists_resultright_value_bound + S (fom_value_pfp_convolution_exists_resultright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_convolution_exists_resultcoefficients. (exists pfa_gap_convolution_exists_resultcoefficientsbound. pfa_gap_convolution_exists_resultcoefficientsbound + S (pfc_index_convolution_exists_resultcoefficients) = (N)) -> exists pfc_value_convolution_exists_resultcoefficients. ((((exists ff_h_pfp_convolution_exists_resultcoefficientsentry. ff_h_pfp_convolution_exists_resultcoefficientsentry + S (pfc_value_convolution_exists_resultcoefficients) = S ((S (pfc_index_convolution_exists_resultcoefficients)) * cc)) /\ exists ff_q_pfp_convolution_exists_resultcoefficientsentry. cb = ff_q_pfp_convolution_exists_resultcoefficientsentry * S ((S (pfc_index_convolution_exists_resultcoefficients)) * cc) + (pfc_value_convolution_exists_resultcoefficients))) /\ ((exists pfc_terms_code_convolution_exists_resultcoefficientscoefficient pfc_terms_scale_convolution_exists_resultcoefficientscoefficient pfc_natural_sum_convolution_exists_resultcoefficientscoefficient. ((forall pfc_index_convolution_exists_resultcoefficientscoefficientdiagonal. (exists pfa_gap_convolution_exists_resultcoefficientscoefficientdiagonalbound. pfa_gap_convolution_exists_resultcoefficientscoefficientdiagonalbound + S (pfc_index_convolution_exists_resultcoefficientscoefficientdiagonal) = (S (pfc_index_convolution_exists_resultcoefficients))) -> exists pfc_value_convolution_exists_resultcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_convolution_exists_resultcoefficientscoefficientdiagonalentry. ff_h_pfp_convolution_exists_resultcoefficientscoefficientdiagonalentry + S (pfc_value_convolution_exists_resultcoefficientscoefficientdiagonal) = S ((S (pfc_index_convolution_exists_resultcoefficientscoefficientdiagonal)) * pfc_terms_scale_convolution_exists_resultcoefficientscoefficient)) /\ exists ff_q_pfp_convolution_exists_resultcoefficientscoefficientdiagonalentry. pfc_terms_code_convolution_exists_resultcoefficientscoefficient = ff_q_pfp_convolution_exists_resultcoefficientscoefficientdiagonalentry * S ((S (pfc_index_convolution_exists_resultcoefficientscoefficientdiagonal)) * pfc_terms_scale_convolution_exists_resultcoefficientscoefficient) + (pfc_value_convolution_exists_resultcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_convolution_exists_resultcoefficientscoefficientdiagonalterm pfc_left_convolution_exists_resultcoefficientscoefficientdiagonalterm pfc_right_convolution_exists_resultcoefficientscoefficientdiagonalterm. (((pfc_index_convolution_exists_resultcoefficientscoefficientdiagonal)+pfc_complement_convolution_exists_resultcoefficientscoefficientdiagonalterm=(pfc_index_convolution_exists_resultcoefficients)) /\ ((((((exists pfa_gap_convolution_exists_resultcoefficientscoefficientdiagonaltermleftinside. pfa_gap_convolution_exists_resultcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_convolution_exists_resultcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_convolution_exists_resultcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_convolution_exists_resultcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_convolution_exists_resultcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_convolution_exists_resultcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_convolution_exists_resultcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_convolution_exists_resultcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_convolution_exists_resultcoefficientscoefficientdiagonal)) * ac) + (pfc_left_convolution_exists_resultcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_exists_resultcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_convolution_exists_resultcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_convolution_exists_resultcoefficientscoefficientdiagonal)) /\ (((pfc_left_convolution_exists_resultcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_convolution_exists_resultcoefficientscoefficientdiagonaltermrightinside. pfa_gap_convolution_exists_resultcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_convolution_exists_resultcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_convolution_exists_resultcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_convolution_exists_resultcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_convolution_exists_resultcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_convolution_exists_resultcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_convolution_exists_resultcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_convolution_exists_resultcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_convolution_exists_resultcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_convolution_exists_resultcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_exists_resultcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_convolution_exists_resultcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_convolution_exists_resultcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_convolution_exists_resultcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_convolution_exists_resultcoefficientscoefficientdiagonal)=pfc_left_convolution_exists_resultcoefficientscoefficientdiagonalterm*pfc_right_convolution_exists_resultcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_convolution_exists_resultcoefficientscoefficientsum fs_v_pfc_convolution_exists_resultcoefficientscoefficientsum. ((((exists fs_h_pfc_convolution_exists_resultcoefficientscoefficientsum_body_start. fs_h_pfc_convolution_exists_resultcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_convolution_exists_resultcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_exists_resultcoefficientscoefficientsum_body_start. fs_u_pfc_convolution_exists_resultcoefficientscoefficientsum = fs_q_pfc_convolution_exists_resultcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_convolution_exists_resultcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_convolution_exists_resultcoefficientscoefficientsum_body_terminal. fs_h_pfc_convolution_exists_resultcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_convolution_exists_resultcoefficientscoefficient) = S ((S (S (pfc_index_convolution_exists_resultcoefficients))) * fs_v_pfc_convolution_exists_resultcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_exists_resultcoefficientscoefficientsum_body_terminal. fs_u_pfc_convolution_exists_resultcoefficientscoefficientsum = fs_q_pfc_convolution_exists_resultcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_convolution_exists_resultcoefficients))) * fs_v_pfc_convolution_exists_resultcoefficientscoefficientsum) + (pfc_natural_sum_convolution_exists_resultcoefficientscoefficient))) /\ forall fs_i_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps = S (pfc_index_convolution_exists_resultcoefficients)) -> exists fs_a_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps fs_r_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps fs_s_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_convolution_exists_resultcoefficientscoefficient)) /\ exists fs_q_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_convolution_exists_resultcoefficientscoefficient = fs_q_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_convolution_exists_resultcoefficientscoefficient) + (fs_a_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_exists_resultcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_convolution_exists_resultcoefficientscoefficientsum = fs_q_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_exists_resultcoefficientscoefficientsum) + (fs_r_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_exists_resultcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_convolution_exists_resultcoefficientscoefficientsum = fs_q_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_exists_resultcoefficientscoefficientsum) + (fs_s_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps = fs_r_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps + fs_a_pfc_convolution_exists_resultcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_convolution_exists_resultcoefficientscoefficientresiduebound. pfa_gap_convolution_exists_resultcoefficientscoefficientresiduebound + S (pfc_value_convolution_exists_resultcoefficients) = (p)) /\ ((exists pfa_offset_left_convolution_exists_resultcoefficientscoefficientresiduecongruence pfa_offset_right_convolution_exists_resultcoefficientscoefficientresiduecongruence. (pfc_natural_sum_convolution_exists_resultcoefficientscoefficient) + (p) * pfa_offset_left_convolution_exists_resultcoefficientscoefficientresiduecongruence = (pfc_value_convolution_exists_resultcoefficients) + (p) * pfa_offset_right_convolution_exists_resultcoefficientscoefficientresiduecongruence)))))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro N
  9. intro hp
  10. intro ha
  11. intro hb
  12. intro hlen
  13. have hc : exists cb cc. (forall pfc_index_convolution_exists_prefix. (exists pfa_gap_convolution_exists_prefixbound. pfa_gap_convolution_exists_prefixbound + S (pfc_index_convolution_exists_prefix) = (N)) -> exists pfc_value_convolution_exists_prefix. ((((exists ff_h_pfp_convolution_exists_prefixentry. ff_h_pfp_convolution_exists_prefixentry + S (pfc_value_convolution_exists_prefix) = S ((S (pfc_index_convolution_exists_prefix)) * cc)) /\ exists ff_q_pfp_convolution_exists_prefixentry. cb = ff_q_pfp_convolution_exists_prefixentry * S ((S (pfc_index_convolution_exists_prefix)) * cc) + (pfc_value_convolution_exists_prefix))) /\ ((exists pfc_terms_code_convolution_exists_prefixcoefficient pfc_terms_scale_convolution_exists_prefixcoefficient pfc_natural_sum_convolution_exists_prefixcoefficient. ((forall pfc_index_convolution_exists_prefixcoefficientdiagonal. (exists pfa_gap_convolution_exists_prefixcoefficientdiagonalbound. pfa_gap_convolution_exists_prefixcoefficientdiagonalbound + S (pfc_index_convolution_exists_prefixcoefficientdiagonal) = (S (pfc_index_convolution_exists_prefix))) -> exists pfc_value_convolution_exists_prefixcoefficientdiagonal. ((((exists ff_h_pfp_convolution_exists_prefixcoefficientdiagonalentry. ff_h_pfp_convolution_exists_prefixcoefficientdiagonalentry + S (pfc_value_convolution_exists_prefixcoefficientdiagonal) = S ((S (pfc_index_convolution_exists_prefixcoefficientdiagonal)) * pfc_terms_scale_convolution_exists_prefixcoefficient)) /\ exists ff_q_pfp_convolution_exists_prefixcoefficientdiagonalentry. pfc_terms_code_convolution_exists_prefixcoefficient = ff_q_pfp_convolution_exists_prefixcoefficientdiagonalentry * S ((S (pfc_index_convolution_exists_prefixcoefficientdiagonal)) * pfc_terms_scale_convolution_exists_prefixcoefficient) + (pfc_value_convolution_exists_prefixcoefficientdiagonal))) /\ ((exists pfc_complement_convolution_exists_prefixcoefficientdiagonalterm pfc_left_convolution_exists_prefixcoefficientdiagonalterm pfc_right_convolution_exists_prefixcoefficientdiagonalterm. (((pfc_index_convolution_exists_prefixcoefficientdiagonal)+pfc_complement_convolution_exists_prefixcoefficientdiagonalterm=(pfc_index_convolution_exists_prefix)) /\ ((((((exists pfa_gap_convolution_exists_prefixcoefficientdiagonaltermleftinside. pfa_gap_convolution_exists_prefixcoefficientdiagonaltermleftinside + S (pfc_index_convolution_exists_prefixcoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_convolution_exists_prefixcoefficientdiagonaltermleftentry. ff_h_pfp_convolution_exists_prefixcoefficientdiagonaltermleftentry + S (pfc_left_convolution_exists_prefixcoefficientdiagonalterm) = S ((S (pfc_index_convolution_exists_prefixcoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_convolution_exists_prefixcoefficientdiagonaltermleftentry. ab = ff_q_pfp_convolution_exists_prefixcoefficientdiagonaltermleftentry * S ((S (pfc_index_convolution_exists_prefixcoefficientdiagonal)) * ac) + (pfc_left_convolution_exists_prefixcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_exists_prefixcoefficientdiagonaltermleftoutside. pfc_gap_convolution_exists_prefixcoefficientdiagonaltermleftoutside+(L)=(pfc_index_convolution_exists_prefixcoefficientdiagonal)) /\ (((pfc_left_convolution_exists_prefixcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_convolution_exists_prefixcoefficientdiagonaltermrightinside. pfa_gap_convolution_exists_prefixcoefficientdiagonaltermrightinside + S (pfc_complement_convolution_exists_prefixcoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_convolution_exists_prefixcoefficientdiagonaltermrightentry. ff_h_pfp_convolution_exists_prefixcoefficientdiagonaltermrightentry + S (pfc_right_convolution_exists_prefixcoefficientdiagonalterm) = S ((S (pfc_complement_convolution_exists_prefixcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_convolution_exists_prefixcoefficientdiagonaltermrightentry. bb = ff_q_pfp_convolution_exists_prefixcoefficientdiagonaltermrightentry * S ((S (pfc_complement_convolution_exists_prefixcoefficientdiagonalterm)) * bc) + (pfc_right_convolution_exists_prefixcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_exists_prefixcoefficientdiagonaltermrightoutside. pfc_gap_convolution_exists_prefixcoefficientdiagonaltermrightoutside+(M)=(pfc_complement_convolution_exists_prefixcoefficientdiagonalterm)) /\ (((pfc_right_convolution_exists_prefixcoefficientdiagonalterm)=0))))) /\ (((pfc_value_convolution_exists_prefixcoefficientdiagonal)=pfc_left_convolution_exists_prefixcoefficientdiagonalterm*pfc_right_convolution_exists_prefixcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_convolution_exists_prefixcoefficientsum fs_v_pfc_convolution_exists_prefixcoefficientsum. ((((exists fs_h_pfc_convolution_exists_prefixcoefficientsum_body_start. fs_h_pfc_convolution_exists_prefixcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_convolution_exists_prefixcoefficientsum)) /\ exists fs_q_pfc_convolution_exists_prefixcoefficientsum_body_start. fs_u_pfc_convolution_exists_prefixcoefficientsum = fs_q_pfc_convolution_exists_prefixcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_convolution_exists_prefixcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_convolution_exists_prefixcoefficientsum_body_terminal. fs_h_pfc_convolution_exists_prefixcoefficientsum_body_terminal + S (pfc_natural_sum_convolution_exists_prefixcoefficient) = S ((S (S (pfc_index_convolution_exists_prefix))) * fs_v_pfc_convolution_exists_prefixcoefficientsum)) /\ exists fs_q_pfc_convolution_exists_prefixcoefficientsum_body_terminal. fs_u_pfc_convolution_exists_prefixcoefficientsum = fs_q_pfc_convolution_exists_prefixcoefficientsum_body_terminal * S ((S (S (pfc_index_convolution_exists_prefix))) * fs_v_pfc_convolution_exists_prefixcoefficientsum) + (pfc_natural_sum_convolution_exists_prefixcoefficient))) /\ forall fs_i_pfc_convolution_exists_prefixcoefficientsum_body_steps. (exists fs_lt_pfc_convolution_exists_prefixcoefficientsum_body_steps_bound. fs_lt_pfc_convolution_exists_prefixcoefficientsum_body_steps_bound + S fs_i_pfc_convolution_exists_prefixcoefficientsum_body_steps = S (pfc_index_convolution_exists_prefix)) -> exists fs_a_pfc_convolution_exists_prefixcoefficientsum_body_steps fs_r_pfc_convolution_exists_prefixcoefficientsum_body_steps fs_s_pfc_convolution_exists_prefixcoefficientsum_body_steps. ((((exists fs_h_pfc_convolution_exists_prefixcoefficientsum_body_steps_summand. fs_h_pfc_convolution_exists_prefixcoefficientsum_body_steps_summand + S (fs_a_pfc_convolution_exists_prefixcoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_exists_prefixcoefficientsum_body_steps)) * pfc_terms_scale_convolution_exists_prefixcoefficient)) /\ exists fs_q_pfc_convolution_exists_prefixcoefficientsum_body_steps_summand. pfc_terms_code_convolution_exists_prefixcoefficient = fs_q_pfc_convolution_exists_prefixcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_convolution_exists_prefixcoefficientsum_body_steps)) * pfc_terms_scale_convolution_exists_prefixcoefficient) + (fs_a_pfc_convolution_exists_prefixcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_exists_prefixcoefficientsum_body_steps_partial. fs_h_pfc_convolution_exists_prefixcoefficientsum_body_steps_partial + S (fs_r_pfc_convolution_exists_prefixcoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_exists_prefixcoefficientsum_body_steps)) * fs_v_pfc_convolution_exists_prefixcoefficientsum)) /\ exists fs_q_pfc_convolution_exists_prefixcoefficientsum_body_steps_partial. fs_u_pfc_convolution_exists_prefixcoefficientsum = fs_q_pfc_convolution_exists_prefixcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_convolution_exists_prefixcoefficientsum_body_steps)) * fs_v_pfc_convolution_exists_prefixcoefficientsum) + (fs_r_pfc_convolution_exists_prefixcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_exists_prefixcoefficientsum_body_steps_successor. fs_h_pfc_convolution_exists_prefixcoefficientsum_body_steps_successor + S (fs_s_pfc_convolution_exists_prefixcoefficientsum_body_steps) = S ((S (S fs_i_pfc_convolution_exists_prefixcoefficientsum_body_steps)) * fs_v_pfc_convolution_exists_prefixcoefficientsum)) /\ exists fs_q_pfc_convolution_exists_prefixcoefficientsum_body_steps_successor. fs_u_pfc_convolution_exists_prefixcoefficientsum = fs_q_pfc_convolution_exists_prefixcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_convolution_exists_prefixcoefficientsum_body_steps)) * fs_v_pfc_convolution_exists_prefixcoefficientsum) + (fs_s_pfc_convolution_exists_prefixcoefficientsum_body_steps))) /\ fs_s_pfc_convolution_exists_prefixcoefficientsum_body_steps = fs_r_pfc_convolution_exists_prefixcoefficientsum_body_steps + fs_a_pfc_convolution_exists_prefixcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_convolution_exists_prefixcoefficientresiduebound. pfa_gap_convolution_exists_prefixcoefficientresiduebound + S (pfc_value_convolution_exists_prefix) = (p)) /\ ((exists pfa_offset_left_convolution_exists_prefixcoefficientresiduecongruence pfa_offset_right_convolution_exists_prefixcoefficientresiduecongruence. (pfc_natural_sum_convolution_exists_prefixcoefficient) + (p) * pfa_offset_left_convolution_exists_prefixcoefficientresiduecongruence = (pfc_value_convolution_exists_prefix) + (p) * pfa_offset_right_convolution_exists_prefixcoefficientresiduecongruence))))))))))))
  14. specialize prime_field_convolution_prefix_exists (p)
  15. specialize prime_field_convolution_prefix_exists (ab)
  16. specialize prime_field_convolution_prefix_exists (ac)
  17. specialize prime_field_convolution_prefix_exists (L)
  18. specialize prime_field_convolution_prefix_exists (bb)
  19. specialize prime_field_convolution_prefix_exists (bc)
  20. specialize prime_field_convolution_prefix_exists (M)
  21. specialize prime_field_convolution_prefix_exists (N)
  22. apply prime_field_convolution_prefix_exists
  23. exact hp
  24. cases hc
  25. cases hc_witness
  26. exists x
  27. exists x1
  28. split
  29. exact ha
  30. split
  31. exact hb
  32. split
  33. exact hlen
  34. exact hc_witness_witness
polynomial_zero_extended_entry_inside · unchanged support, not a new admission
forall b c L i a. (exists pfa_gap_pad_inside_bound. pfa_gap_pad_inside_bound + S (i) = (L)) -> ((((exists pfa_gap_pad_inside_sourceinside. pfa_gap_pad_inside_sourceinside + S (i) = (L)) /\ ((((exists ff_h_pfp_pad_inside_sourceentry. ff_h_pfp_pad_inside_sourceentry + S (a) = S ((S (i)) * c)) /\ exists ff_q_pfp_pad_inside_sourceentry. b = ff_q_pfp_pad_inside_sourceentry * S ((S (i)) * c) + (a)))))) \/ (((exists pfc_gap_pad_inside_sourceoutside. pfc_gap_pad_inside_sourceoutside+(L)=(i)) /\ (((a)=0))))) -> (((exists ff_h_pfp_pad_inside_result. ff_h_pfp_pad_inside_result + S (a) = S ((S (i)) * c)) /\ exists ff_q_pfp_pad_inside_result. b = ff_q_pfp_pad_inside_result * S ((S (i)) * c) + (a)))
  1. intro b
  2. intro c
  3. intro L
  4. intro i
  5. intro a
  6. intro hi
  7. intro ha
  8. cases ha
  9. cases ha_left
  10. exact ha_left_right
  11. cases ha_right
  12. exfalso
  13. specialize lt_not_le (i)
  14. specialize lt_not_le (L)
  15. apply lt_not_le
  16. exact hi
  17. exact ha_right_left
prime_field_polynomial_scale_entry · unchanged support, not a new admission
forall p k ab ac bb bc l i a r. (((exists pfa_gap_scale_entry_tablescalar. pfa_gap_scale_entry_tablescalar + S (k) = (p)) /\ ((forall pfp_index_scale_entry_table. (exists pfa_gap_scale_entry_tableindex. pfa_gap_scale_entry_tableindex + S (pfp_index_scale_entry_table) = (l)) -> exists pfp_source_scale_entry_table pfp_value_scale_entry_table. ((((exists ff_h_pfp_scale_entry_tablesource. ff_h_pfp_scale_entry_tablesource + S (pfp_source_scale_entry_table) = S ((S (pfp_index_scale_entry_table)) * ac)) /\ exists ff_q_pfp_scale_entry_tablesource. ab = ff_q_pfp_scale_entry_tablesource * S ((S (pfp_index_scale_entry_table)) * ac) + (pfp_source_scale_entry_table))) /\ (((((exists ff_h_pfp_scale_entry_tabletarget. ff_h_pfp_scale_entry_tabletarget + S (pfp_value_scale_entry_table) = S ((S (pfp_index_scale_entry_table)) * bc)) /\ exists ff_q_pfp_scale_entry_tabletarget. bb = ff_q_pfp_scale_entry_tabletarget * S ((S (pfp_index_scale_entry_table)) * bc) + (pfp_value_scale_entry_table))) /\ ((((exists pfa_gap_scale_entry_tableoperationleft. pfa_gap_scale_entry_tableoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_entry_tableoperationright. pfa_gap_scale_entry_tableoperationright + S (pfp_source_scale_entry_table) = (p)) /\ ((((exists pfa_gap_scale_entry_tableoperationresultbound. pfa_gap_scale_entry_tableoperationresultbound + S (pfp_value_scale_entry_table) = (p)) /\ ((exists pfa_offset_left_scale_entry_tableoperationresultcongruence pfa_offset_right_scale_entry_tableoperationresultcongruence. ((k) * (pfp_source_scale_entry_table)) + (p) * pfa_offset_left_scale_entry_tableoperationresultcongruence = (pfp_value_scale_entry_table) + (p) * pfa_offset_right_scale_entry_tableoperationresultcongruence))))))))))))))))) -> (exists pfa_gap_scale_entry_index. pfa_gap_scale_entry_index + S (i) = (l)) -> (((exists ff_h_pfp_scale_entry_input. ff_h_pfp_scale_entry_input + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_scale_entry_input. ab = ff_q_pfp_scale_entry_input * S ((S (i)) * ac) + (a))) -> (((exists ff_h_pfp_scale_entry_output. ff_h_pfp_scale_entry_output + S (r) = S ((S (i)) * bc)) /\ exists ff_q_pfp_scale_entry_output. bb = ff_q_pfp_scale_entry_output * S ((S (i)) * bc) + (r))) -> (((exists pfa_gap_scale_entry_valueleft. pfa_gap_scale_entry_valueleft + S (k) = (p)) /\ (((exists pfa_gap_scale_entry_valueright. pfa_gap_scale_entry_valueright + S (a) = (p)) /\ ((((exists pfa_gap_scale_entry_valueresultbound. pfa_gap_scale_entry_valueresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_scale_entry_valueresultcongruence pfa_offset_right_scale_entry_valueresultcongruence. ((k) * (a)) + (p) * pfa_offset_left_scale_entry_valueresultcongruence = (r) + (p) * pfa_offset_right_scale_entry_valueresultcongruence)))))))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro l
  8. intro i
  9. intro a
  10. intro r
  11. intro h
  12. intro hi
  13. intro ha
  14. intro hr
  15. cases h
  16. have hv : exists u v. ((((exists ff_h_pfp_scale_entry_source. ff_h_pfp_scale_entry_source + S (u) = S ((S (i)) * ac)) /\ exists ff_q_pfp_scale_entry_source. ab = ff_q_pfp_scale_entry_source * S ((S (i)) * ac) + (u))) /\ (((((exists ff_h_pfp_scale_entry_target. ff_h_pfp_scale_entry_target + S (v) = S ((S (i)) * bc)) /\ exists ff_q_pfp_scale_entry_target. bb = ff_q_pfp_scale_entry_target * S ((S (i)) * bc) + (v))) /\ ((((exists pfa_gap_scale_entry_operationleft. pfa_gap_scale_entry_operationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_entry_operationright. pfa_gap_scale_entry_operationright + S (u) = (p)) /\ ((((exists pfa_gap_scale_entry_operationresultbound. pfa_gap_scale_entry_operationresultbound + S (v) = (p)) /\ ((exists pfa_offset_left_scale_entry_operationresultcongruence pfa_offset_right_scale_entry_operationresultcongruence. ((k) * (u)) + (p) * pfa_offset_left_scale_entry_operationresultcongruence = (v) + (p) * pfa_offset_right_scale_entry_operationresultcongruence)))))))))))))
  17. specialize h_right (i)
  18. apply h_right
  19. exact hi
  20. cases hv
  21. cases hv_witness
  22. cases hv_witness_witness
  23. cases hv_witness_witness_right
  24. have heq0 : x=a
  25. specialize beta_at_unique (ab)
  26. specialize beta_at_unique (ac)
  27. specialize beta_at_unique (i)
  28. specialize beta_at_unique (x)
  29. specialize beta_at_unique (a)
  30. apply beta_at_unique
  31. exact hv_witness_witness_left
  32. exact ha
  33. rewrite heq0 at hv_witness_witness_right_right
  34. rewrite heq0 at hv_witness_witness_right_right
  35. have heq1 : x1=r
  36. specialize beta_at_unique (bb)
  37. specialize beta_at_unique (bc)
  38. specialize beta_at_unique (i)
  39. specialize beta_at_unique (x1)
  40. specialize beta_at_unique (r)
  41. apply beta_at_unique
  42. exact hv_witness_witness_right_left
  43. exact hr
  44. rewrite heq1 at hv_witness_witness_right_right
  45. rewrite heq1 at hv_witness_witness_right_right
  46. exact hv_witness_witness_right_right
polynomial_product_length_functional · unchanged support, not a new admission
forall L M N K. (((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) -> (((((L)=0 \/ (M)=0) /\ (((K)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (K)))))))) -> N=K
  1. intro L
  2. intro M
  3. intro N
  4. intro K
  5. intro hn
  6. intro hk
  7. cases hn
  8. cases hn_left
  9. cases hk
  10. cases hk_left
  11. trans 0
  12. exact hn_left_right
  13. symm
  14. exact hk_left_right
  15. cases hk_right
  16. cases hk_right_right
  17. cases hn_left_left
  18. exfalso
  19. apply hk_right_left
  20. exact hn_left_left_left
  21. exfalso
  22. apply hk_right_right_left
  23. exact hn_left_left_right
  24. cases hn_right
  25. cases hn_right_right
  26. cases hk
  27. cases hk_left
  28. cases hk_left_left
  29. exfalso
  30. apply hn_right_left
  31. exact hk_left_left_left
  32. exfalso
  33. apply hn_right_right_left
  34. exact hk_left_left_right
  35. cases hk_right
  36. cases hk_right_right
  37. apply PA2
  38. trans L+M
  39. symm
  40. exact hn_right_right_right
  41. exact hk_right_right_right
prime_field_multiply_functional · unchanged support, not a new admission
forall p a b c d. (((exists pfa_gap_multiplyfirstleft. pfa_gap_multiplyfirstleft + S (a) = (p)) /\ (((exists pfa_gap_multiplyfirstright. pfa_gap_multiplyfirstright + S (b) = (p)) /\ ((((exists pfa_gap_multiplyfirstresultbound. pfa_gap_multiplyfirstresultbound + S (c) = (p)) /\ ((exists pfa_offset_left_multiplyfirstresultcongruence pfa_offset_right_multiplyfirstresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_multiplyfirstresultcongruence = (c) + (p) * pfa_offset_right_multiplyfirstresultcongruence))))))))) -> (((exists pfa_gap_multiplysecondleft. pfa_gap_multiplysecondleft + S (a) = (p)) /\ (((exists pfa_gap_multiplysecondright. pfa_gap_multiplysecondright + S (b) = (p)) /\ ((((exists pfa_gap_multiplysecondresultbound. pfa_gap_multiplysecondresultbound + S (d) = (p)) /\ ((exists pfa_offset_left_multiplysecondresultcongruence pfa_offset_right_multiplysecondresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_multiplysecondresultcongruence = (d) + (p) * pfa_offset_right_multiplysecondresultcongruence))))))))) -> c = d
  1. intro p
  2. intro a
  3. intro b
  4. intro c
  5. intro d
  6. intro hc
  7. intro hd
  8. cases hc
  9. cases hc_right
  10. cases hd
  11. cases hd_right
  12. specialize binary_canonical_residue_functional (p)
  13. specialize binary_canonical_residue_functional (a * b)
  14. specialize binary_canonical_residue_functional (c)
  15. specialize binary_canonical_residue_functional (d)
  16. apply binary_canonical_residue_functional
  17. exact hc_right_right
  18. exact hd_right_right
prime_field_polynomial_scale_functional · unchanged support, not a new admission
forall p k ab ac bb bc cb cc l. (((exists pfa_gap_scale_functional_firstscalar. pfa_gap_scale_functional_firstscalar + S (k) = (p)) /\ ((forall pfp_index_scale_functional_first. (exists pfa_gap_scale_functional_firstindex. pfa_gap_scale_functional_firstindex + S (pfp_index_scale_functional_first) = (l)) -> exists pfp_source_scale_functional_first pfp_value_scale_functional_first. ((((exists ff_h_pfp_scale_functional_firstsource. ff_h_pfp_scale_functional_firstsource + S (pfp_source_scale_functional_first) = S ((S (pfp_index_scale_functional_first)) * ac)) /\ exists ff_q_pfp_scale_functional_firstsource. ab = ff_q_pfp_scale_functional_firstsource * S ((S (pfp_index_scale_functional_first)) * ac) + (pfp_source_scale_functional_first))) /\ (((((exists ff_h_pfp_scale_functional_firsttarget. ff_h_pfp_scale_functional_firsttarget + S (pfp_value_scale_functional_first) = S ((S (pfp_index_scale_functional_first)) * bc)) /\ exists ff_q_pfp_scale_functional_firsttarget. bb = ff_q_pfp_scale_functional_firsttarget * S ((S (pfp_index_scale_functional_first)) * bc) + (pfp_value_scale_functional_first))) /\ ((((exists pfa_gap_scale_functional_firstoperationleft. pfa_gap_scale_functional_firstoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_functional_firstoperationright. pfa_gap_scale_functional_firstoperationright + S (pfp_source_scale_functional_first) = (p)) /\ ((((exists pfa_gap_scale_functional_firstoperationresultbound. pfa_gap_scale_functional_firstoperationresultbound + S (pfp_value_scale_functional_first) = (p)) /\ ((exists pfa_offset_left_scale_functional_firstoperationresultcongruence pfa_offset_right_scale_functional_firstoperationresultcongruence. ((k) * (pfp_source_scale_functional_first)) + (p) * pfa_offset_left_scale_functional_firstoperationresultcongruence = (pfp_value_scale_functional_first) + (p) * pfa_offset_right_scale_functional_firstoperationresultcongruence))))))))))))))))) -> (((exists pfa_gap_scale_functional_secondscalar. pfa_gap_scale_functional_secondscalar + S (k) = (p)) /\ ((forall pfp_index_scale_functional_second. (exists pfa_gap_scale_functional_secondindex. pfa_gap_scale_functional_secondindex + S (pfp_index_scale_functional_second) = (l)) -> exists pfp_source_scale_functional_second pfp_value_scale_functional_second. ((((exists ff_h_pfp_scale_functional_secondsource. ff_h_pfp_scale_functional_secondsource + S (pfp_source_scale_functional_second) = S ((S (pfp_index_scale_functional_second)) * ac)) /\ exists ff_q_pfp_scale_functional_secondsource. ab = ff_q_pfp_scale_functional_secondsource * S ((S (pfp_index_scale_functional_second)) * ac) + (pfp_source_scale_functional_second))) /\ (((((exists ff_h_pfp_scale_functional_secondtarget. ff_h_pfp_scale_functional_secondtarget + S (pfp_value_scale_functional_second) = S ((S (pfp_index_scale_functional_second)) * cc)) /\ exists ff_q_pfp_scale_functional_secondtarget. cb = ff_q_pfp_scale_functional_secondtarget * S ((S (pfp_index_scale_functional_second)) * cc) + (pfp_value_scale_functional_second))) /\ ((((exists pfa_gap_scale_functional_secondoperationleft. pfa_gap_scale_functional_secondoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_functional_secondoperationright. pfa_gap_scale_functional_secondoperationright + S (pfp_source_scale_functional_second) = (p)) /\ ((((exists pfa_gap_scale_functional_secondoperationresultbound. pfa_gap_scale_functional_secondoperationresultbound + S (pfp_value_scale_functional_second) = (p)) /\ ((exists pfa_offset_left_scale_functional_secondoperationresultcongruence pfa_offset_right_scale_functional_secondoperationresultcongruence. ((k) * (pfp_source_scale_functional_second)) + (p) * pfa_offset_left_scale_functional_secondoperationresultcongruence = (pfp_value_scale_functional_second) + (p) * pfa_offset_right_scale_functional_secondoperationresultcongruence))))))))))))))))) -> (forall mdr_i_pfp_scale_functional_result mdr_a_pfp_scale_functional_result. (exists mdr_gap_pfp_scale_functional_resultb. mdr_gap_pfp_scale_functional_resultb + S (mdr_i_pfp_scale_functional_result) = (l)) -> (((exists ff_h_mdr_pfp_scale_functional_resulto. ff_h_mdr_pfp_scale_functional_resulto + S (mdr_a_pfp_scale_functional_result) = S ((S (mdr_i_pfp_scale_functional_result)) * bc)) /\ exists ff_q_mdr_pfp_scale_functional_resulto. bb = ff_q_mdr_pfp_scale_functional_resulto * S ((S (mdr_i_pfp_scale_functional_result)) * bc) + (mdr_a_pfp_scale_functional_result))) -> (((exists ff_h_mdr_pfp_scale_functional_resultn. ff_h_mdr_pfp_scale_functional_resultn + S (mdr_a_pfp_scale_functional_result) = S ((S (mdr_i_pfp_scale_functional_result)) * cc)) /\ exists ff_q_mdr_pfp_scale_functional_resultn. cb = ff_q_mdr_pfp_scale_functional_resultn * S ((S (mdr_i_pfp_scale_functional_result)) * cc) + (mdr_a_pfp_scale_functional_result))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro cb
  8. intro cc
  9. intro l
  10. intro hb
  11. intro hc
  12. intro i
  13. intro r
  14. intro hi
  15. intro hr
  16. have ha : exists a. (((exists ff_h_pfp_scale_functional_a. ff_h_pfp_scale_functional_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_scale_functional_a. ab = ff_q_pfp_scale_functional_a * S ((S (i)) * ac) + (a)))
  17. specialize beta_at_exists (ab)
  18. specialize beta_at_exists (ac)
  19. specialize beta_at_exists (i)
  20. apply beta_at_exists
  21. cases ha
  22. have hs : exists s. (((exists ff_h_pfp_scale_functional_s. ff_h_pfp_scale_functional_s + S (s) = S ((S (i)) * cc)) /\ exists ff_q_pfp_scale_functional_s. cb = ff_q_pfp_scale_functional_s * S ((S (i)) * cc) + (s)))
  23. specialize beta_at_exists (cb)
  24. specialize beta_at_exists (cc)
  25. specialize beta_at_exists (i)
  26. apply beta_at_exists
  27. cases hs
  28. have heq : r=x1
  29. specialize prime_field_multiply_functional (p)
  30. specialize prime_field_multiply_functional (k)
  31. specialize prime_field_multiply_functional (x)
  32. specialize prime_field_multiply_functional (r)
  33. specialize prime_field_multiply_functional (x1)
  34. apply prime_field_multiply_functional
  35. specialize prime_field_polynomial_scale_entry (p)
  36. specialize prime_field_polynomial_scale_entry (k)
  37. specialize prime_field_polynomial_scale_entry (ab)
  38. specialize prime_field_polynomial_scale_entry (ac)
  39. specialize prime_field_polynomial_scale_entry (bb)
  40. specialize prime_field_polynomial_scale_entry (bc)
  41. specialize prime_field_polynomial_scale_entry (l)
  42. specialize prime_field_polynomial_scale_entry (i)
  43. specialize prime_field_polynomial_scale_entry (x)
  44. specialize prime_field_polynomial_scale_entry (r)
  45. apply prime_field_polynomial_scale_entry
  46. exact hb
  47. exact hi
  48. exact ha_witness
  49. exact hr
  50. specialize prime_field_polynomial_scale_entry (p)
  51. specialize prime_field_polynomial_scale_entry (k)
  52. specialize prime_field_polynomial_scale_entry (ab)
  53. specialize prime_field_polynomial_scale_entry (ac)
  54. specialize prime_field_polynomial_scale_entry (cb)
  55. specialize prime_field_polynomial_scale_entry (cc)
  56. specialize prime_field_polynomial_scale_entry (l)
  57. specialize prime_field_polynomial_scale_entry (i)
  58. specialize prime_field_polynomial_scale_entry (x)
  59. specialize prime_field_polynomial_scale_entry (x1)
  60. apply prime_field_polynomial_scale_entry
  61. exact hc
  62. exact hi
  63. exact ha_witness
  64. exact hs_witness
  65. rewrite heq
  66. rewrite heq
  67. exact hs_witness
prime_field_polynomial_normalization_from_division · unchanged support, not a new admission
forall p b c qb qc rb rc l. (forall fdp_index_pfp_division. (exists gsp_lt_gap_pfp_division_index_bound. gsp_lt_gap_pfp_division_index_bound + S fdp_index_pfp_division = l) -> exists fdp_value_pfp_division fdp_quotient_pfp_division fdp_remainder_pfp_division. (((exists ff_h_fdp_pfp_division_source. ff_h_fdp_pfp_division_source + S (fdp_value_pfp_division) = S ((S (fdp_index_pfp_division)) * c)) /\ exists ff_q_fdp_pfp_division_source. b = ff_q_fdp_pfp_division_source * S ((S (fdp_index_pfp_division)) * c) + (fdp_value_pfp_division))) /\ ((((exists ff_h_fdp_pfp_division_quotient_entry. ff_h_fdp_pfp_division_quotient_entry + S (fdp_quotient_pfp_division) = S ((S (fdp_index_pfp_division)) * qc)) /\ exists ff_q_fdp_pfp_division_quotient_entry. qb = ff_q_fdp_pfp_division_quotient_entry * S ((S (fdp_index_pfp_division)) * qc) + (fdp_quotient_pfp_division))) /\ ((((exists ff_h_fdp_pfp_division_remainder_entry. ff_h_fdp_pfp_division_remainder_entry + S (fdp_remainder_pfp_division) = S ((S (fdp_index_pfp_division)) * rc)) /\ exists ff_q_fdp_pfp_division_remainder_entry. rb = ff_q_fdp_pfp_division_remainder_entry * S ((S (fdp_index_pfp_division)) * rc) + (fdp_remainder_pfp_division))) /\ (fdp_value_pfp_division = p * fdp_quotient_pfp_division + fdp_remainder_pfp_division /\ (exists gsp_lt_gap_pfp_division_remainder_bound. gsp_lt_gap_pfp_division_remainder_bound + S fdp_remainder_pfp_division = p))))) -> (forall pfp_index_division_result. (exists pfa_gap_division_resultindex. pfa_gap_division_resultindex + S (pfp_index_division_result) = (l)) -> exists pfp_source_division_result pfp_residue_division_result. ((((exists ff_h_pfp_division_resultsource. ff_h_pfp_division_resultsource + S (pfp_source_division_result) = S ((S (pfp_index_division_result)) * c)) /\ exists ff_q_pfp_division_resultsource. b = ff_q_pfp_division_resultsource * S ((S (pfp_index_division_result)) * c) + (pfp_source_division_result))) /\ (((((exists ff_h_pfp_division_resulttarget. ff_h_pfp_division_resulttarget + S (pfp_residue_division_result) = S ((S (pfp_index_division_result)) * rc)) /\ exists ff_q_pfp_division_resulttarget. rb = ff_q_pfp_division_resulttarget * S ((S (pfp_index_division_result)) * rc) + (pfp_residue_division_result))) /\ ((((exists pfa_gap_division_resultresiduebound. pfa_gap_division_resultresiduebound + S (pfp_residue_division_result) = (p)) /\ ((exists pfa_offset_left_division_resultresiduecongruence pfa_offset_right_division_resultresiduecongruence. (pfp_source_division_result) + (p) * pfa_offset_left_division_resultresiduecongruence = (pfp_residue_division_result) + (p) * pfa_offset_right_division_resultresiduecongruence)))))))))
  1. intro p
  2. intro b
  3. intro c
  4. intro qb
  5. intro qc
  6. intro rb
  7. intro rc
  8. intro l
  9. intro h
  10. intro i
  11. intro hi
  12. have hpoint : exists a q r. ((((exists ff_h_pfp_division_source. ff_h_pfp_division_source + S (a) = S ((S (i)) * c)) /\ exists ff_q_pfp_division_source. b = ff_q_pfp_division_source * S ((S (i)) * c) + (a))) /\ (((((exists ff_h_pfp_division_quotient. ff_h_pfp_division_quotient + S (q) = S ((S (i)) * qc)) /\ exists ff_q_pfp_division_quotient. qb = ff_q_pfp_division_quotient * S ((S (i)) * qc) + (q))) /\ (((((exists ff_h_pfp_division_remainder. ff_h_pfp_division_remainder + S (r) = S ((S (i)) * rc)) /\ exists ff_q_pfp_division_remainder. rb = ff_q_pfp_division_remainder * S ((S (i)) * rc) + (r))) /\ (((a=p*q+r) /\ ((exists pfa_gap_division_bound. pfa_gap_division_bound + S (r) = (p))))))))))
  13. specialize h (i)
  14. apply h
  15. exact hi
  16. cases hpoint
  17. cases hpoint_witness
  18. cases hpoint_witness_witness
  19. cases hpoint_witness_witness_witness
  20. cases hpoint_witness_witness_witness_right
  21. cases hpoint_witness_witness_witness_right_right
  22. cases hpoint_witness_witness_witness_right_right_right
  23. exists x
  24. exists x2
  25. split
  26. exact hpoint_witness_witness_witness_left
  27. split
  28. exact hpoint_witness_witness_witness_right_right_left
  29. split
  30. exact hpoint_witness_witness_witness_right_right_right_right
  31. specialize remainder_decomposition_to_mod_eq (p)
  32. specialize remainder_decomposition_to_mod_eq (x)
  33. specialize remainder_decomposition_to_mod_eq (x1)
  34. specialize remainder_decomposition_to_mod_eq (x2)
  35. apply remainder_decomposition_to_mod_eq
  36. trans p*x1+x2
  37. exact hpoint_witness_witness_witness_right_right_right_left
  38. congr
  39. specialize mul_comm (p)
  40. specialize mul_comm (x1)
  41. apply mul_comm
  42. refl
prime_field_polynomial_normalization_exists · unchanged support, not a new admission
forall p b c l. ~(p=0) -> exists d e. (forall pfp_index_exists. (exists pfa_gap_existsindex. pfa_gap_existsindex + S (pfp_index_exists) = (l)) -> exists pfp_source_exists pfp_residue_exists. ((((exists ff_h_pfp_existssource. ff_h_pfp_existssource + S (pfp_source_exists) = S ((S (pfp_index_exists)) * c)) /\ exists ff_q_pfp_existssource. b = ff_q_pfp_existssource * S ((S (pfp_index_exists)) * c) + (pfp_source_exists))) /\ (((((exists ff_h_pfp_existstarget. ff_h_pfp_existstarget + S (pfp_residue_exists) = S ((S (pfp_index_exists)) * e)) /\ exists ff_q_pfp_existstarget. d = ff_q_pfp_existstarget * S ((S (pfp_index_exists)) * e) + (pfp_residue_exists))) /\ ((((exists pfa_gap_existsresiduebound. pfa_gap_existsresiduebound + S (pfp_residue_exists) = (p)) /\ ((exists pfa_offset_left_existsresiduecongruence pfa_offset_right_existsresiduecongruence. (pfp_source_exists) + (p) * pfa_offset_left_existsresiduecongruence = (pfp_residue_exists) + (p) * pfa_offset_right_existsresiduecongruence)))))))))
  1. intro p
  2. intro b
  3. intro c
  4. intro l
  5. intro hp
  6. have hd : exists qb qc rb rc. (forall fdp_index_pfp_exists_division. (exists gsp_lt_gap_pfp_exists_division_index_bound. gsp_lt_gap_pfp_exists_division_index_bound + S fdp_index_pfp_exists_division = l) -> exists fdp_value_pfp_exists_division fdp_quotient_pfp_exists_division fdp_remainder_pfp_exists_division. (((exists ff_h_fdp_pfp_exists_division_source. ff_h_fdp_pfp_exists_division_source + S (fdp_value_pfp_exists_division) = S ((S (fdp_index_pfp_exists_division)) * c)) /\ exists ff_q_fdp_pfp_exists_division_source. b = ff_q_fdp_pfp_exists_division_source * S ((S (fdp_index_pfp_exists_division)) * c) + (fdp_value_pfp_exists_division))) /\ ((((exists ff_h_fdp_pfp_exists_division_quotient_entry. ff_h_fdp_pfp_exists_division_quotient_entry + S (fdp_quotient_pfp_exists_division) = S ((S (fdp_index_pfp_exists_division)) * qc)) /\ exists ff_q_fdp_pfp_exists_division_quotient_entry. qb = ff_q_fdp_pfp_exists_division_quotient_entry * S ((S (fdp_index_pfp_exists_division)) * qc) + (fdp_quotient_pfp_exists_division))) /\ ((((exists ff_h_fdp_pfp_exists_division_remainder_entry. ff_h_fdp_pfp_exists_division_remainder_entry + S (fdp_remainder_pfp_exists_division) = S ((S (fdp_index_pfp_exists_division)) * rc)) /\ exists ff_q_fdp_pfp_exists_division_remainder_entry. rb = ff_q_fdp_pfp_exists_division_remainder_entry * S ((S (fdp_index_pfp_exists_division)) * rc) + (fdp_remainder_pfp_exists_division))) /\ (fdp_value_pfp_exists_division = p * fdp_quotient_pfp_exists_division + fdp_remainder_pfp_exists_division /\ (exists gsp_lt_gap_pfp_exists_division_remainder_bound. gsp_lt_gap_pfp_exists_division_remainder_bound + S fdp_remainder_pfp_exists_division = p)))))
  7. specialize beta_division_prefix_exists (p)
  8. specialize beta_division_prefix_exists (b)
  9. specialize beta_division_prefix_exists (c)
  10. specialize beta_division_prefix_exists (l)
  11. apply beta_division_prefix_exists
  12. exact hp
  13. cases hd
  14. cases hd_witness
  15. cases hd_witness_witness
  16. cases hd_witness_witness_witness
  17. exists x2
  18. exists x3
  19. specialize prime_field_polynomial_normalization_from_division (p)
  20. specialize prime_field_polynomial_normalization_from_division (b)
  21. specialize prime_field_polynomial_normalization_from_division (c)
  22. specialize prime_field_polynomial_normalization_from_division (x)
  23. specialize prime_field_polynomial_normalization_from_division (x1)
  24. specialize prime_field_polynomial_normalization_from_division (x2)
  25. specialize prime_field_polynomial_normalization_from_division (x3)
  26. specialize prime_field_polynomial_normalization_from_division (l)
  27. apply prime_field_polynomial_normalization_from_division
  28. exact hd_witness_witness_witness_witness
prime_field_residue_input_equal · unchanged support, not a new admission
forall p n m r. n = m -> (((exists pfa_gap_input_equal_sourcebound. pfa_gap_input_equal_sourcebound + S (r) = (p)) /\ ((exists pfa_offset_left_input_equal_sourcecongruence pfa_offset_right_input_equal_sourcecongruence. (m) + (p) * pfa_offset_left_input_equal_sourcecongruence = (r) + (p) * pfa_offset_right_input_equal_sourcecongruence)))) -> (((exists pfa_gap_input_equal_targetbound. pfa_gap_input_equal_targetbound + S (r) = (p)) /\ ((exists pfa_offset_left_input_equal_targetcongruence pfa_offset_right_input_equal_targetcongruence. (n) + (p) * pfa_offset_left_input_equal_targetcongruence = (r) + (p) * pfa_offset_right_input_equal_targetcongruence))))
  1. intro p
  2. intro n
  3. intro m
  4. intro r
  5. intro heq
  6. intro hr
  7. rewrite heq
  8. exact hr
prime_field_polynomial_scale_from_normalization · unchanged support, not a new admission
forall p k kb kc ab ac rb rc bb bc l. (exists pfa_gap_scale_scalar. pfa_gap_scale_scalar + S (k) = (p)) -> (forall fom_index_pfp_scale_source. (exists fom_gap_pfp_scale_source_index_bound. fom_gap_pfp_scale_source_index_bound + S (fom_index_pfp_scale_source) = l) -> exists fom_value_pfp_scale_source. ((((exists fom_beta_height_pfp_scale_source_entry. fom_beta_height_pfp_scale_source_entry + S (fom_value_pfp_scale_source) = S ((S (fom_index_pfp_scale_source)) * ac)) /\ exists fom_beta_quotient_pfp_scale_source_entry. ab = fom_beta_quotient_pfp_scale_source_entry * S ((S (fom_index_pfp_scale_source)) * ac) + (fom_value_pfp_scale_source))) /\ (exists fom_gap_pfp_scale_source_value_bound. fom_gap_pfp_scale_source_value_bound + S (fom_value_pfp_scale_source) = p))) -> (forall pfp_repeat_index_scale_repeated. (exists pfa_gap_scale_repeatedindex. pfa_gap_scale_repeatedindex + S (pfp_repeat_index_scale_repeated) = (l)) -> (((exists ff_h_pfp_scale_repeatedentry. ff_h_pfp_scale_repeatedentry + S (k) = S ((S (pfp_repeat_index_scale_repeated)) * kc)) /\ exists ff_q_pfp_scale_repeatedentry. kb = ff_q_pfp_scale_repeatedentry * S ((S (pfp_repeat_index_scale_repeated)) * kc) + (k)))) -> (forall fpmp_index_pfp_scale_raw fpmp_left_pfp_scale_raw fpmp_right_pfp_scale_raw fpmp_target_pfp_scale_raw. (exists fpmp_gap_pfp_scale_raw. fpmp_gap_pfp_scale_raw + S fpmp_index_pfp_scale_raw = l) -> (((exists ff_h_fpmp_pfp_scale_raw_left. ff_h_fpmp_pfp_scale_raw_left + S (fpmp_left_pfp_scale_raw) = S ((S (fpmp_index_pfp_scale_raw)) * kc)) /\ exists ff_q_fpmp_pfp_scale_raw_left. kb = ff_q_fpmp_pfp_scale_raw_left * S ((S (fpmp_index_pfp_scale_raw)) * kc) + (fpmp_left_pfp_scale_raw))) -> (((exists ff_h_fpmp_pfp_scale_raw_right. ff_h_fpmp_pfp_scale_raw_right + S (fpmp_right_pfp_scale_raw) = S ((S (fpmp_index_pfp_scale_raw)) * ac)) /\ exists ff_q_fpmp_pfp_scale_raw_right. ab = ff_q_fpmp_pfp_scale_raw_right * S ((S (fpmp_index_pfp_scale_raw)) * ac) + (fpmp_right_pfp_scale_raw))) -> (((exists ff_h_fpmp_pfp_scale_raw_target. ff_h_fpmp_pfp_scale_raw_target + S (fpmp_target_pfp_scale_raw) = S ((S (fpmp_index_pfp_scale_raw)) * rc)) /\ exists ff_q_fpmp_pfp_scale_raw_target. rb = ff_q_fpmp_pfp_scale_raw_target * S ((S (fpmp_index_pfp_scale_raw)) * rc) + (fpmp_target_pfp_scale_raw))) -> fpmp_target_pfp_scale_raw = fpmp_left_pfp_scale_raw * fpmp_right_pfp_scale_raw) -> (forall pfp_index_scale_normalize. (exists pfa_gap_scale_normalizeindex. pfa_gap_scale_normalizeindex + S (pfp_index_scale_normalize) = (l)) -> exists pfp_source_scale_normalize pfp_residue_scale_normalize. ((((exists ff_h_pfp_scale_normalizesource. ff_h_pfp_scale_normalizesource + S (pfp_source_scale_normalize) = S ((S (pfp_index_scale_normalize)) * rc)) /\ exists ff_q_pfp_scale_normalizesource. rb = ff_q_pfp_scale_normalizesource * S ((S (pfp_index_scale_normalize)) * rc) + (pfp_source_scale_normalize))) /\ (((((exists ff_h_pfp_scale_normalizetarget. ff_h_pfp_scale_normalizetarget + S (pfp_residue_scale_normalize) = S ((S (pfp_index_scale_normalize)) * bc)) /\ exists ff_q_pfp_scale_normalizetarget. bb = ff_q_pfp_scale_normalizetarget * S ((S (pfp_index_scale_normalize)) * bc) + (pfp_residue_scale_normalize))) /\ ((((exists pfa_gap_scale_normalizeresiduebound. pfa_gap_scale_normalizeresiduebound + S (pfp_residue_scale_normalize) = (p)) /\ ((exists pfa_offset_left_scale_normalizeresiduecongruence pfa_offset_right_scale_normalizeresiduecongruence. (pfp_source_scale_normalize) + (p) * pfa_offset_left_scale_normalizeresiduecongruence = (pfp_residue_scale_normalize) + (p) * pfa_offset_right_scale_normalizeresiduecongruence))))))))) -> (((exists pfa_gap_scale_resultscalar. pfa_gap_scale_resultscalar + S (k) = (p)) /\ ((forall pfp_index_scale_result. (exists pfa_gap_scale_resultindex. pfa_gap_scale_resultindex + S (pfp_index_scale_result) = (l)) -> exists pfp_source_scale_result pfp_value_scale_result. ((((exists ff_h_pfp_scale_resultsource. ff_h_pfp_scale_resultsource + S (pfp_source_scale_result) = S ((S (pfp_index_scale_result)) * ac)) /\ exists ff_q_pfp_scale_resultsource. ab = ff_q_pfp_scale_resultsource * S ((S (pfp_index_scale_result)) * ac) + (pfp_source_scale_result))) /\ (((((exists ff_h_pfp_scale_resulttarget. ff_h_pfp_scale_resulttarget + S (pfp_value_scale_result) = S ((S (pfp_index_scale_result)) * bc)) /\ exists ff_q_pfp_scale_resulttarget. bb = ff_q_pfp_scale_resulttarget * S ((S (pfp_index_scale_result)) * bc) + (pfp_value_scale_result))) /\ ((((exists pfa_gap_scale_resultoperationleft. pfa_gap_scale_resultoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_resultoperationright. pfa_gap_scale_resultoperationright + S (pfp_source_scale_result) = (p)) /\ ((((exists pfa_gap_scale_resultoperationresultbound. pfa_gap_scale_resultoperationresultbound + S (pfp_value_scale_result) = (p)) /\ ((exists pfa_offset_left_scale_resultoperationresultcongruence pfa_offset_right_scale_resultoperationresultcongruence. ((k) * (pfp_source_scale_result)) + (p) * pfa_offset_left_scale_resultoperationresultcongruence = (pfp_value_scale_result) + (p) * pfa_offset_right_scale_resultoperationresultcongruence)))))))))))))))))
  1. intro p
  2. intro k
  3. intro kb
  4. intro kc
  5. intro ab
  6. intro ac
  7. intro rb
  8. intro rc
  9. intro bb
  10. intro bc
  11. intro l
  12. intro hk
  13. intro hc
  14. intro hr
  15. intro hm
  16. intro hn
  17. split
  18. exact hk
  19. intro i
  20. intro hi
  21. have ha : exists a. ((((exists ff_h_pfp_scale_chosen_a. ff_h_pfp_scale_chosen_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_scale_chosen_a. ab = ff_q_pfp_scale_chosen_a * S ((S (i)) * ac) + (a))) /\ ((exists pfa_gap_scale_chosen_bound. pfa_gap_scale_chosen_bound + S (a) = (p))))
  22. specialize hc (i)
  23. apply hc
  24. exact hi
  25. cases ha
  26. cases ha_witness
  27. have hvn : exists n r. ((((exists ff_h_pfp_scale_chosen_product. ff_h_pfp_scale_chosen_product + S (n) = S ((S (i)) * rc)) /\ exists ff_q_pfp_scale_chosen_product. rb = ff_q_pfp_scale_chosen_product * S ((S (i)) * rc) + (n))) /\ (((((exists ff_h_pfp_scale_chosen_output. ff_h_pfp_scale_chosen_output + S (r) = S ((S (i)) * bc)) /\ exists ff_q_pfp_scale_chosen_output. bb = ff_q_pfp_scale_chosen_output * S ((S (i)) * bc) + (r))) /\ ((((exists pfa_gap_scale_chosen_residuebound. pfa_gap_scale_chosen_residuebound + S (r) = (p)) /\ ((exists pfa_offset_left_scale_chosen_residuecongruence pfa_offset_right_scale_chosen_residuecongruence. (n) + (p) * pfa_offset_left_scale_chosen_residuecongruence = (r) + (p) * pfa_offset_right_scale_chosen_residuecongruence))))))))
  28. specialize hn (i)
  29. apply hn
  30. exact hi
  31. cases hvn
  32. cases hvn_witness
  33. cases hvn_witness_witness
  34. cases hvn_witness_witness_right
  35. exists x
  36. exists x2
  37. split
  38. exact ha_witness_left
  39. split
  40. exact hvn_witness_witness_right_left
  41. split
  42. exact hk
  43. split
  44. exact ha_witness_right
  45. specialize prime_field_residue_input_equal (p)
  46. specialize prime_field_residue_input_equal (k*x)
  47. specialize prime_field_residue_input_equal (x1)
  48. specialize prime_field_residue_input_equal (x2)
  49. apply prime_field_residue_input_equal
  50. symm
  51. specialize hm (i)
  52. specialize hm (k)
  53. specialize hm (x)
  54. specialize hm (x1)
  55. apply hm
  56. exact hi
  57. specialize hr (i)
  58. apply hr
  59. exact hi
  60. exact ha_witness_left
  61. exact hvn_witness_witness_left
  62. exact hvn_witness_witness_right_right
prime_field_polynomial_scale_exists · unchanged support, not a new admission
forall p k ab ac l. ~(p=0) -> (exists pfa_gap_scale_exists_scalar. pfa_gap_scale_exists_scalar + S (k) = (p)) -> (forall fom_index_pfp_scale_exists_source. (exists fom_gap_pfp_scale_exists_source_index_bound. fom_gap_pfp_scale_exists_source_index_bound + S (fom_index_pfp_scale_exists_source) = l) -> exists fom_value_pfp_scale_exists_source. ((((exists fom_beta_height_pfp_scale_exists_source_entry. fom_beta_height_pfp_scale_exists_source_entry + S (fom_value_pfp_scale_exists_source) = S ((S (fom_index_pfp_scale_exists_source)) * ac)) /\ exists fom_beta_quotient_pfp_scale_exists_source_entry. ab = fom_beta_quotient_pfp_scale_exists_source_entry * S ((S (fom_index_pfp_scale_exists_source)) * ac) + (fom_value_pfp_scale_exists_source))) /\ (exists fom_gap_pfp_scale_exists_source_value_bound. fom_gap_pfp_scale_exists_source_value_bound + S (fom_value_pfp_scale_exists_source) = p))) -> exists bb bc. (((exists pfa_gap_scale_exists_resultscalar. pfa_gap_scale_exists_resultscalar + S (k) = (p)) /\ ((forall pfp_index_scale_exists_result. (exists pfa_gap_scale_exists_resultindex. pfa_gap_scale_exists_resultindex + S (pfp_index_scale_exists_result) = (l)) -> exists pfp_source_scale_exists_result pfp_value_scale_exists_result. ((((exists ff_h_pfp_scale_exists_resultsource. ff_h_pfp_scale_exists_resultsource + S (pfp_source_scale_exists_result) = S ((S (pfp_index_scale_exists_result)) * ac)) /\ exists ff_q_pfp_scale_exists_resultsource. ab = ff_q_pfp_scale_exists_resultsource * S ((S (pfp_index_scale_exists_result)) * ac) + (pfp_source_scale_exists_result))) /\ (((((exists ff_h_pfp_scale_exists_resulttarget. ff_h_pfp_scale_exists_resulttarget + S (pfp_value_scale_exists_result) = S ((S (pfp_index_scale_exists_result)) * bc)) /\ exists ff_q_pfp_scale_exists_resulttarget. bb = ff_q_pfp_scale_exists_resulttarget * S ((S (pfp_index_scale_exists_result)) * bc) + (pfp_value_scale_exists_result))) /\ ((((exists pfa_gap_scale_exists_resultoperationleft. pfa_gap_scale_exists_resultoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_exists_resultoperationright. pfa_gap_scale_exists_resultoperationright + S (pfp_source_scale_exists_result) = (p)) /\ ((((exists pfa_gap_scale_exists_resultoperationresultbound. pfa_gap_scale_exists_resultoperationresultbound + S (pfp_value_scale_exists_result) = (p)) /\ ((exists pfa_offset_left_scale_exists_resultoperationresultcongruence pfa_offset_right_scale_exists_resultoperationresultcongruence. ((k) * (pfp_source_scale_exists_result)) + (p) * pfa_offset_left_scale_exists_resultoperationresultcongruence = (pfp_value_scale_exists_result) + (p) * pfa_offset_right_scale_exists_resultoperationresultcongruence)))))))))))))))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro l
  6. intro hp
  7. intro hk
  8. intro hc
  9. have hr : exists kb kc. (forall pfp_repeat_index_scale_exists_repeat. (exists pfa_gap_scale_exists_repeatindex. pfa_gap_scale_exists_repeatindex + S (pfp_repeat_index_scale_exists_repeat) = (l)) -> (((exists ff_h_pfp_scale_exists_repeatentry. ff_h_pfp_scale_exists_repeatentry + S (k) = S ((S (pfp_repeat_index_scale_exists_repeat)) * kc)) /\ exists ff_q_pfp_scale_exists_repeatentry. kb = ff_q_pfp_scale_exists_repeatentry * S ((S (pfp_repeat_index_scale_exists_repeat)) * kc) + (k))))
  10. specialize beta_repeat_exists (k)
  11. specialize beta_repeat_exists (l)
  12. apply beta_repeat_exists
  13. cases hr
  14. cases hr_witness
  15. have hm : exists rb rc. (forall fpmp_index_pfp_scale_exists_raw fpmp_left_pfp_scale_exists_raw fpmp_right_pfp_scale_exists_raw fpmp_target_pfp_scale_exists_raw. (exists fpmp_gap_pfp_scale_exists_raw. fpmp_gap_pfp_scale_exists_raw + S fpmp_index_pfp_scale_exists_raw = l) -> (((exists ff_h_fpmp_pfp_scale_exists_raw_left. ff_h_fpmp_pfp_scale_exists_raw_left + S (fpmp_left_pfp_scale_exists_raw) = S ((S (fpmp_index_pfp_scale_exists_raw)) * x1)) /\ exists ff_q_fpmp_pfp_scale_exists_raw_left. x = ff_q_fpmp_pfp_scale_exists_raw_left * S ((S (fpmp_index_pfp_scale_exists_raw)) * x1) + (fpmp_left_pfp_scale_exists_raw))) -> (((exists ff_h_fpmp_pfp_scale_exists_raw_right. ff_h_fpmp_pfp_scale_exists_raw_right + S (fpmp_right_pfp_scale_exists_raw) = S ((S (fpmp_index_pfp_scale_exists_raw)) * ac)) /\ exists ff_q_fpmp_pfp_scale_exists_raw_right. ab = ff_q_fpmp_pfp_scale_exists_raw_right * S ((S (fpmp_index_pfp_scale_exists_raw)) * ac) + (fpmp_right_pfp_scale_exists_raw))) -> (((exists ff_h_fpmp_pfp_scale_exists_raw_target. ff_h_fpmp_pfp_scale_exists_raw_target + S (fpmp_target_pfp_scale_exists_raw) = S ((S (fpmp_index_pfp_scale_exists_raw)) * rc)) /\ exists ff_q_fpmp_pfp_scale_exists_raw_target. rb = ff_q_fpmp_pfp_scale_exists_raw_target * S ((S (fpmp_index_pfp_scale_exists_raw)) * rc) + (fpmp_target_pfp_scale_exists_raw))) -> fpmp_target_pfp_scale_exists_raw = fpmp_left_pfp_scale_exists_raw * fpmp_right_pfp_scale_exists_raw)
  16. specialize beta_pointwise_mul_prefix_exists (x)
  17. specialize beta_pointwise_mul_prefix_exists (x1)
  18. specialize beta_pointwise_mul_prefix_exists (ab)
  19. specialize beta_pointwise_mul_prefix_exists (ac)
  20. specialize beta_pointwise_mul_prefix_exists (l)
  21. apply beta_pointwise_mul_prefix_exists
  22. cases hm
  23. cases hm_witness
  24. have hn : exists bb bc. (forall pfp_index_scale_exists_normalization. (exists pfa_gap_scale_exists_normalizationindex. pfa_gap_scale_exists_normalizationindex + S (pfp_index_scale_exists_normalization) = (l)) -> exists pfp_source_scale_exists_normalization pfp_residue_scale_exists_normalization. ((((exists ff_h_pfp_scale_exists_normalizationsource. ff_h_pfp_scale_exists_normalizationsource + S (pfp_source_scale_exists_normalization) = S ((S (pfp_index_scale_exists_normalization)) * x3)) /\ exists ff_q_pfp_scale_exists_normalizationsource. x2 = ff_q_pfp_scale_exists_normalizationsource * S ((S (pfp_index_scale_exists_normalization)) * x3) + (pfp_source_scale_exists_normalization))) /\ (((((exists ff_h_pfp_scale_exists_normalizationtarget. ff_h_pfp_scale_exists_normalizationtarget + S (pfp_residue_scale_exists_normalization) = S ((S (pfp_index_scale_exists_normalization)) * bc)) /\ exists ff_q_pfp_scale_exists_normalizationtarget. bb = ff_q_pfp_scale_exists_normalizationtarget * S ((S (pfp_index_scale_exists_normalization)) * bc) + (pfp_residue_scale_exists_normalization))) /\ ((((exists pfa_gap_scale_exists_normalizationresiduebound. pfa_gap_scale_exists_normalizationresiduebound + S (pfp_residue_scale_exists_normalization) = (p)) /\ ((exists pfa_offset_left_scale_exists_normalizationresiduecongruence pfa_offset_right_scale_exists_normalizationresiduecongruence. (pfp_source_scale_exists_normalization) + (p) * pfa_offset_left_scale_exists_normalizationresiduecongruence = (pfp_residue_scale_exists_normalization) + (p) * pfa_offset_right_scale_exists_normalizationresiduecongruence)))))))))
  25. specialize prime_field_polynomial_normalization_exists (p)
  26. specialize prime_field_polynomial_normalization_exists (x2)
  27. specialize prime_field_polynomial_normalization_exists (x3)
  28. specialize prime_field_polynomial_normalization_exists (l)
  29. apply prime_field_polynomial_normalization_exists
  30. exact hp
  31. cases hn
  32. cases hn_witness
  33. exists x4
  34. exists x5
  35. specialize prime_field_polynomial_scale_from_normalization (p)
  36. specialize prime_field_polynomial_scale_from_normalization (k)
  37. specialize prime_field_polynomial_scale_from_normalization (x)
  38. specialize prime_field_polynomial_scale_from_normalization (x1)
  39. specialize prime_field_polynomial_scale_from_normalization (ab)
  40. specialize prime_field_polynomial_scale_from_normalization (ac)
  41. specialize prime_field_polynomial_scale_from_normalization (x2)
  42. specialize prime_field_polynomial_scale_from_normalization (x3)
  43. specialize prime_field_polynomial_scale_from_normalization (x4)
  44. specialize prime_field_polynomial_scale_from_normalization (x5)
  45. specialize prime_field_polynomial_scale_from_normalization (l)
  46. apply prime_field_polynomial_scale_from_normalization
  47. exact hk
  48. exact hc
  49. exact hr_witness_witness
  50. exact hm_witness_witness
  51. exact hn_witness_witness
prime_field_polynomial_scale_bounded · unchanged support, not a new admission
forall p k ab ac bb bc l. (((exists pfa_gap_scale_bounded_operationscalar. pfa_gap_scale_bounded_operationscalar + S (k) = (p)) /\ ((forall pfp_index_scale_bounded_operation. (exists pfa_gap_scale_bounded_operationindex. pfa_gap_scale_bounded_operationindex + S (pfp_index_scale_bounded_operation) = (l)) -> exists pfp_source_scale_bounded_operation pfp_value_scale_bounded_operation. ((((exists ff_h_pfp_scale_bounded_operationsource. ff_h_pfp_scale_bounded_operationsource + S (pfp_source_scale_bounded_operation) = S ((S (pfp_index_scale_bounded_operation)) * ac)) /\ exists ff_q_pfp_scale_bounded_operationsource. ab = ff_q_pfp_scale_bounded_operationsource * S ((S (pfp_index_scale_bounded_operation)) * ac) + (pfp_source_scale_bounded_operation))) /\ (((((exists ff_h_pfp_scale_bounded_operationtarget. ff_h_pfp_scale_bounded_operationtarget + S (pfp_value_scale_bounded_operation) = S ((S (pfp_index_scale_bounded_operation)) * bc)) /\ exists ff_q_pfp_scale_bounded_operationtarget. bb = ff_q_pfp_scale_bounded_operationtarget * S ((S (pfp_index_scale_bounded_operation)) * bc) + (pfp_value_scale_bounded_operation))) /\ ((((exists pfa_gap_scale_bounded_operationoperationleft. pfa_gap_scale_bounded_operationoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_bounded_operationoperationright. pfa_gap_scale_bounded_operationoperationright + S (pfp_source_scale_bounded_operation) = (p)) /\ ((((exists pfa_gap_scale_bounded_operationoperationresultbound. pfa_gap_scale_bounded_operationoperationresultbound + S (pfp_value_scale_bounded_operation) = (p)) /\ ((exists pfa_offset_left_scale_bounded_operationoperationresultcongruence pfa_offset_right_scale_bounded_operationoperationresultcongruence. ((k) * (pfp_source_scale_bounded_operation)) + (p) * pfa_offset_left_scale_bounded_operationoperationresultcongruence = (pfp_value_scale_bounded_operation) + (p) * pfa_offset_right_scale_bounded_operationoperationresultcongruence))))))))))))))))) -> ((forall fom_index_pfp_scale_bounded_source. (exists fom_gap_pfp_scale_bounded_source_index_bound. fom_gap_pfp_scale_bounded_source_index_bound + S (fom_index_pfp_scale_bounded_source) = l) -> exists fom_value_pfp_scale_bounded_source. ((((exists fom_beta_height_pfp_scale_bounded_source_entry. fom_beta_height_pfp_scale_bounded_source_entry + S (fom_value_pfp_scale_bounded_source) = S ((S (fom_index_pfp_scale_bounded_source)) * ac)) /\ exists fom_beta_quotient_pfp_scale_bounded_source_entry. ab = fom_beta_quotient_pfp_scale_bounded_source_entry * S ((S (fom_index_pfp_scale_bounded_source)) * ac) + (fom_value_pfp_scale_bounded_source))) /\ (exists fom_gap_pfp_scale_bounded_source_value_bound. fom_gap_pfp_scale_bounded_source_value_bound + S (fom_value_pfp_scale_bounded_source) = p))) /\ ((forall fom_index_pfp_scale_bounded_target. (exists fom_gap_pfp_scale_bounded_target_index_bound. fom_gap_pfp_scale_bounded_target_index_bound + S (fom_index_pfp_scale_bounded_target) = l) -> exists fom_value_pfp_scale_bounded_target. ((((exists fom_beta_height_pfp_scale_bounded_target_entry. fom_beta_height_pfp_scale_bounded_target_entry + S (fom_value_pfp_scale_bounded_target) = S ((S (fom_index_pfp_scale_bounded_target)) * bc)) /\ exists fom_beta_quotient_pfp_scale_bounded_target_entry. bb = fom_beta_quotient_pfp_scale_bounded_target_entry * S ((S (fom_index_pfp_scale_bounded_target)) * bc) + (fom_value_pfp_scale_bounded_target))) /\ (exists fom_gap_pfp_scale_bounded_target_value_bound. fom_gap_pfp_scale_bounded_target_value_bound + S (fom_value_pfp_scale_bounded_target) = p)))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro l
  8. intro h
  9. cases h
  10. split
  11. intro i
  12. intro hi
  13. have hv : exists a r. ((((exists ff_h_pfp_scale_bound_source. ff_h_pfp_scale_bound_source + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_scale_bound_source. ab = ff_q_pfp_scale_bound_source * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_scale_bound_target. ff_h_pfp_scale_bound_target + S (r) = S ((S (i)) * bc)) /\ exists ff_q_pfp_scale_bound_target. bb = ff_q_pfp_scale_bound_target * S ((S (i)) * bc) + (r))) /\ ((((exists pfa_gap_scale_bound_operationleft. pfa_gap_scale_bound_operationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_bound_operationright. pfa_gap_scale_bound_operationright + S (a) = (p)) /\ ((((exists pfa_gap_scale_bound_operationresultbound. pfa_gap_scale_bound_operationresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_scale_bound_operationresultcongruence pfa_offset_right_scale_bound_operationresultcongruence. ((k) * (a)) + (p) * pfa_offset_left_scale_bound_operationresultcongruence = (r) + (p) * pfa_offset_right_scale_bound_operationresultcongruence)))))))))))))
  14. specialize h_right (i)
  15. apply h_right
  16. exact hi
  17. cases hv
  18. cases hv_witness
  19. cases hv_witness_witness
  20. cases hv_witness_witness_right
  21. cases hv_witness_witness_right_right
  22. cases hv_witness_witness_right_right_right
  23. cases hv_witness_witness_right_right_right_right
  24. exists x
  25. split
  26. exact hv_witness_witness_left
  27. exact hv_witness_witness_right_right_right_left
  28. intro i
  29. intro hi
  30. have hv : exists a r. ((((exists ff_h_pfp_scale_bound_source. ff_h_pfp_scale_bound_source + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_scale_bound_source. ab = ff_q_pfp_scale_bound_source * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_scale_bound_target. ff_h_pfp_scale_bound_target + S (r) = S ((S (i)) * bc)) /\ exists ff_q_pfp_scale_bound_target. bb = ff_q_pfp_scale_bound_target * S ((S (i)) * bc) + (r))) /\ ((((exists pfa_gap_scale_bound_operationleft. pfa_gap_scale_bound_operationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_bound_operationright. pfa_gap_scale_bound_operationright + S (a) = (p)) /\ ((((exists pfa_gap_scale_bound_operationresultbound. pfa_gap_scale_bound_operationresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_scale_bound_operationresultcongruence pfa_offset_right_scale_bound_operationresultcongruence. ((k) * (a)) + (p) * pfa_offset_left_scale_bound_operationresultcongruence = (r) + (p) * pfa_offset_right_scale_bound_operationresultcongruence)))))))))))))
  31. specialize h_right (i)
  32. apply h_right
  33. exact hi
  34. cases hv
  35. cases hv_witness
  36. cases hv_witness_witness
  37. cases hv_witness_witness_right
  38. cases hv_witness_witness_right_right
  39. cases hv_witness_witness_right_right_right
  40. cases hv_witness_witness_right_right_right_right
  41. exists x1
  42. split
  43. exact hv_witness_witness_right_left
  44. exact hv_witness_witness_right_right_right_right_left
prime_field_convolution_coefficient_bounded · unchanged support, not a new admission
forall p ab ac L bb bc M i r. (exists pfc_terms_code_coefficient_bounded_source pfc_terms_scale_coefficient_bounded_source pfc_natural_sum_coefficient_bounded_source. ((forall pfc_index_coefficient_bounded_sourcediagonal. (exists pfa_gap_coefficient_bounded_sourcediagonalbound. pfa_gap_coefficient_bounded_sourcediagonalbound + S (pfc_index_coefficient_bounded_sourcediagonal) = (S (i))) -> exists pfc_value_coefficient_bounded_sourcediagonal. ((((exists ff_h_pfp_coefficient_bounded_sourcediagonalentry. ff_h_pfp_coefficient_bounded_sourcediagonalentry + S (pfc_value_coefficient_bounded_sourcediagonal) = S ((S (pfc_index_coefficient_bounded_sourcediagonal)) * pfc_terms_scale_coefficient_bounded_source)) /\ exists ff_q_pfp_coefficient_bounded_sourcediagonalentry. pfc_terms_code_coefficient_bounded_source = ff_q_pfp_coefficient_bounded_sourcediagonalentry * S ((S (pfc_index_coefficient_bounded_sourcediagonal)) * pfc_terms_scale_coefficient_bounded_source) + (pfc_value_coefficient_bounded_sourcediagonal))) /\ ((exists pfc_complement_coefficient_bounded_sourcediagonalterm pfc_left_coefficient_bounded_sourcediagonalterm pfc_right_coefficient_bounded_sourcediagonalterm. (((pfc_index_coefficient_bounded_sourcediagonal)+pfc_complement_coefficient_bounded_sourcediagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_bounded_sourcediagonaltermleftinside. pfa_gap_coefficient_bounded_sourcediagonaltermleftinside + S (pfc_index_coefficient_bounded_sourcediagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_bounded_sourcediagonaltermleftentry. ff_h_pfp_coefficient_bounded_sourcediagonaltermleftentry + S (pfc_left_coefficient_bounded_sourcediagonalterm) = S ((S (pfc_index_coefficient_bounded_sourcediagonal)) * ac)) /\ exists ff_q_pfp_coefficient_bounded_sourcediagonaltermleftentry. ab = ff_q_pfp_coefficient_bounded_sourcediagonaltermleftentry * S ((S (pfc_index_coefficient_bounded_sourcediagonal)) * ac) + (pfc_left_coefficient_bounded_sourcediagonalterm)))))) \/ (((exists pfc_gap_coefficient_bounded_sourcediagonaltermleftoutside. pfc_gap_coefficient_bounded_sourcediagonaltermleftoutside+(L)=(pfc_index_coefficient_bounded_sourcediagonal)) /\ (((pfc_left_coefficient_bounded_sourcediagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_bounded_sourcediagonaltermrightinside. pfa_gap_coefficient_bounded_sourcediagonaltermrightinside + S (pfc_complement_coefficient_bounded_sourcediagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_bounded_sourcediagonaltermrightentry. ff_h_pfp_coefficient_bounded_sourcediagonaltermrightentry + S (pfc_right_coefficient_bounded_sourcediagonalterm) = S ((S (pfc_complement_coefficient_bounded_sourcediagonalterm)) * bc)) /\ exists ff_q_pfp_coefficient_bounded_sourcediagonaltermrightentry. bb = ff_q_pfp_coefficient_bounded_sourcediagonaltermrightentry * S ((S (pfc_complement_coefficient_bounded_sourcediagonalterm)) * bc) + (pfc_right_coefficient_bounded_sourcediagonalterm)))))) \/ (((exists pfc_gap_coefficient_bounded_sourcediagonaltermrightoutside. pfc_gap_coefficient_bounded_sourcediagonaltermrightoutside+(M)=(pfc_complement_coefficient_bounded_sourcediagonalterm)) /\ (((pfc_right_coefficient_bounded_sourcediagonalterm)=0))))) /\ (((pfc_value_coefficient_bounded_sourcediagonal)=pfc_left_coefficient_bounded_sourcediagonalterm*pfc_right_coefficient_bounded_sourcediagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_bounded_sourcesum fs_v_pfc_coefficient_bounded_sourcesum. ((((exists fs_h_pfc_coefficient_bounded_sourcesum_body_start. fs_h_pfc_coefficient_bounded_sourcesum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_bounded_sourcesum)) /\ exists fs_q_pfc_coefficient_bounded_sourcesum_body_start. fs_u_pfc_coefficient_bounded_sourcesum = fs_q_pfc_coefficient_bounded_sourcesum_body_start * S ((S (0)) * fs_v_pfc_coefficient_bounded_sourcesum) + (0))) /\ ((((exists fs_h_pfc_coefficient_bounded_sourcesum_body_terminal. fs_h_pfc_coefficient_bounded_sourcesum_body_terminal + S (pfc_natural_sum_coefficient_bounded_source) = S ((S (S (i))) * fs_v_pfc_coefficient_bounded_sourcesum)) /\ exists fs_q_pfc_coefficient_bounded_sourcesum_body_terminal. fs_u_pfc_coefficient_bounded_sourcesum = fs_q_pfc_coefficient_bounded_sourcesum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_bounded_sourcesum) + (pfc_natural_sum_coefficient_bounded_source))) /\ forall fs_i_pfc_coefficient_bounded_sourcesum_body_steps. (exists fs_lt_pfc_coefficient_bounded_sourcesum_body_steps_bound. fs_lt_pfc_coefficient_bounded_sourcesum_body_steps_bound + S fs_i_pfc_coefficient_bounded_sourcesum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_bounded_sourcesum_body_steps fs_r_pfc_coefficient_bounded_sourcesum_body_steps fs_s_pfc_coefficient_bounded_sourcesum_body_steps. ((((exists fs_h_pfc_coefficient_bounded_sourcesum_body_steps_summand. fs_h_pfc_coefficient_bounded_sourcesum_body_steps_summand + S (fs_a_pfc_coefficient_bounded_sourcesum_body_steps) = S ((S (fs_i_pfc_coefficient_bounded_sourcesum_body_steps)) * pfc_terms_scale_coefficient_bounded_source)) /\ exists fs_q_pfc_coefficient_bounded_sourcesum_body_steps_summand. pfc_terms_code_coefficient_bounded_source = fs_q_pfc_coefficient_bounded_sourcesum_body_steps_summand * S ((S (fs_i_pfc_coefficient_bounded_sourcesum_body_steps)) * pfc_terms_scale_coefficient_bounded_source) + (fs_a_pfc_coefficient_bounded_sourcesum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_bounded_sourcesum_body_steps_partial. fs_h_pfc_coefficient_bounded_sourcesum_body_steps_partial + S (fs_r_pfc_coefficient_bounded_sourcesum_body_steps) = S ((S (fs_i_pfc_coefficient_bounded_sourcesum_body_steps)) * fs_v_pfc_coefficient_bounded_sourcesum)) /\ exists fs_q_pfc_coefficient_bounded_sourcesum_body_steps_partial. fs_u_pfc_coefficient_bounded_sourcesum = fs_q_pfc_coefficient_bounded_sourcesum_body_steps_partial * S ((S (fs_i_pfc_coefficient_bounded_sourcesum_body_steps)) * fs_v_pfc_coefficient_bounded_sourcesum) + (fs_r_pfc_coefficient_bounded_sourcesum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_bounded_sourcesum_body_steps_successor. fs_h_pfc_coefficient_bounded_sourcesum_body_steps_successor + S (fs_s_pfc_coefficient_bounded_sourcesum_body_steps) = S ((S (S fs_i_pfc_coefficient_bounded_sourcesum_body_steps)) * fs_v_pfc_coefficient_bounded_sourcesum)) /\ exists fs_q_pfc_coefficient_bounded_sourcesum_body_steps_successor. fs_u_pfc_coefficient_bounded_sourcesum = fs_q_pfc_coefficient_bounded_sourcesum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_bounded_sourcesum_body_steps)) * fs_v_pfc_coefficient_bounded_sourcesum) + (fs_s_pfc_coefficient_bounded_sourcesum_body_steps))) /\ fs_s_pfc_coefficient_bounded_sourcesum_body_steps = fs_r_pfc_coefficient_bounded_sourcesum_body_steps + fs_a_pfc_coefficient_bounded_sourcesum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_bounded_sourceresiduebound. pfa_gap_coefficient_bounded_sourceresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_coefficient_bounded_sourceresiduecongruence pfa_offset_right_coefficient_bounded_sourceresiduecongruence. (pfc_natural_sum_coefficient_bounded_source) + (p) * pfa_offset_left_coefficient_bounded_sourceresiduecongruence = (r) + (p) * pfa_offset_right_coefficient_bounded_sourceresiduecongruence))))))))) -> (exists pfa_gap_coefficient_bound. pfa_gap_coefficient_bound + S (r) = (p))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro i
  9. intro r
  10. intro h
  11. cases h
  12. cases h_witness
  13. cases h_witness_witness
  14. cases h_witness_witness_witness
  15. cases h_witness_witness_witness_right
  16. cases h_witness_witness_witness_right_right
  17. exact h_witness_witness_witness_right_right_left
prime_field_convolution_prefix_bounded · unchanged support, not a new admission
forall p ab ac L bb bc M cb cc N. (forall pfc_index_prefix_bounded_source. (exists pfa_gap_prefix_bounded_sourcebound. pfa_gap_prefix_bounded_sourcebound + S (pfc_index_prefix_bounded_source) = (N)) -> exists pfc_value_prefix_bounded_source. ((((exists ff_h_pfp_prefix_bounded_sourceentry. ff_h_pfp_prefix_bounded_sourceentry + S (pfc_value_prefix_bounded_source) = S ((S (pfc_index_prefix_bounded_source)) * cc)) /\ exists ff_q_pfp_prefix_bounded_sourceentry. cb = ff_q_pfp_prefix_bounded_sourceentry * S ((S (pfc_index_prefix_bounded_source)) * cc) + (pfc_value_prefix_bounded_source))) /\ ((exists pfc_terms_code_prefix_bounded_sourcecoefficient pfc_terms_scale_prefix_bounded_sourcecoefficient pfc_natural_sum_prefix_bounded_sourcecoefficient. ((forall pfc_index_prefix_bounded_sourcecoefficientdiagonal. (exists pfa_gap_prefix_bounded_sourcecoefficientdiagonalbound. pfa_gap_prefix_bounded_sourcecoefficientdiagonalbound + S (pfc_index_prefix_bounded_sourcecoefficientdiagonal) = (S (pfc_index_prefix_bounded_source))) -> exists pfc_value_prefix_bounded_sourcecoefficientdiagonal. ((((exists ff_h_pfp_prefix_bounded_sourcecoefficientdiagonalentry. ff_h_pfp_prefix_bounded_sourcecoefficientdiagonalentry + S (pfc_value_prefix_bounded_sourcecoefficientdiagonal) = S ((S (pfc_index_prefix_bounded_sourcecoefficientdiagonal)) * pfc_terms_scale_prefix_bounded_sourcecoefficient)) /\ exists ff_q_pfp_prefix_bounded_sourcecoefficientdiagonalentry. pfc_terms_code_prefix_bounded_sourcecoefficient = ff_q_pfp_prefix_bounded_sourcecoefficientdiagonalentry * S ((S (pfc_index_prefix_bounded_sourcecoefficientdiagonal)) * pfc_terms_scale_prefix_bounded_sourcecoefficient) + (pfc_value_prefix_bounded_sourcecoefficientdiagonal))) /\ ((exists pfc_complement_prefix_bounded_sourcecoefficientdiagonalterm pfc_left_prefix_bounded_sourcecoefficientdiagonalterm pfc_right_prefix_bounded_sourcecoefficientdiagonalterm. (((pfc_index_prefix_bounded_sourcecoefficientdiagonal)+pfc_complement_prefix_bounded_sourcecoefficientdiagonalterm=(pfc_index_prefix_bounded_source)) /\ ((((((exists pfa_gap_prefix_bounded_sourcecoefficientdiagonaltermleftinside. pfa_gap_prefix_bounded_sourcecoefficientdiagonaltermleftinside + S (pfc_index_prefix_bounded_sourcecoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_bounded_sourcecoefficientdiagonaltermleftentry. ff_h_pfp_prefix_bounded_sourcecoefficientdiagonaltermleftentry + S (pfc_left_prefix_bounded_sourcecoefficientdiagonalterm) = S ((S (pfc_index_prefix_bounded_sourcecoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_prefix_bounded_sourcecoefficientdiagonaltermleftentry. ab = ff_q_pfp_prefix_bounded_sourcecoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_bounded_sourcecoefficientdiagonal)) * ac) + (pfc_left_prefix_bounded_sourcecoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_bounded_sourcecoefficientdiagonaltermleftoutside. pfc_gap_prefix_bounded_sourcecoefficientdiagonaltermleftoutside+(L)=(pfc_index_prefix_bounded_sourcecoefficientdiagonal)) /\ (((pfc_left_prefix_bounded_sourcecoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_bounded_sourcecoefficientdiagonaltermrightinside. pfa_gap_prefix_bounded_sourcecoefficientdiagonaltermrightinside + S (pfc_complement_prefix_bounded_sourcecoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_bounded_sourcecoefficientdiagonaltermrightentry. ff_h_pfp_prefix_bounded_sourcecoefficientdiagonaltermrightentry + S (pfc_right_prefix_bounded_sourcecoefficientdiagonalterm) = S ((S (pfc_complement_prefix_bounded_sourcecoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_prefix_bounded_sourcecoefficientdiagonaltermrightentry. bb = ff_q_pfp_prefix_bounded_sourcecoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_bounded_sourcecoefficientdiagonalterm)) * bc) + (pfc_right_prefix_bounded_sourcecoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_bounded_sourcecoefficientdiagonaltermrightoutside. pfc_gap_prefix_bounded_sourcecoefficientdiagonaltermrightoutside+(M)=(pfc_complement_prefix_bounded_sourcecoefficientdiagonalterm)) /\ (((pfc_right_prefix_bounded_sourcecoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_bounded_sourcecoefficientdiagonal)=pfc_left_prefix_bounded_sourcecoefficientdiagonalterm*pfc_right_prefix_bounded_sourcecoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_bounded_sourcecoefficientsum fs_v_pfc_prefix_bounded_sourcecoefficientsum. ((((exists fs_h_pfc_prefix_bounded_sourcecoefficientsum_body_start. fs_h_pfc_prefix_bounded_sourcecoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_bounded_sourcecoefficientsum)) /\ exists fs_q_pfc_prefix_bounded_sourcecoefficientsum_body_start. fs_u_pfc_prefix_bounded_sourcecoefficientsum = fs_q_pfc_prefix_bounded_sourcecoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_bounded_sourcecoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_bounded_sourcecoefficientsum_body_terminal. fs_h_pfc_prefix_bounded_sourcecoefficientsum_body_terminal + S (pfc_natural_sum_prefix_bounded_sourcecoefficient) = S ((S (S (pfc_index_prefix_bounded_source))) * fs_v_pfc_prefix_bounded_sourcecoefficientsum)) /\ exists fs_q_pfc_prefix_bounded_sourcecoefficientsum_body_terminal. fs_u_pfc_prefix_bounded_sourcecoefficientsum = fs_q_pfc_prefix_bounded_sourcecoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_bounded_source))) * fs_v_pfc_prefix_bounded_sourcecoefficientsum) + (pfc_natural_sum_prefix_bounded_sourcecoefficient))) /\ forall fs_i_pfc_prefix_bounded_sourcecoefficientsum_body_steps. (exists fs_lt_pfc_prefix_bounded_sourcecoefficientsum_body_steps_bound. fs_lt_pfc_prefix_bounded_sourcecoefficientsum_body_steps_bound + S fs_i_pfc_prefix_bounded_sourcecoefficientsum_body_steps = S (pfc_index_prefix_bounded_source)) -> exists fs_a_pfc_prefix_bounded_sourcecoefficientsum_body_steps fs_r_pfc_prefix_bounded_sourcecoefficientsum_body_steps fs_s_pfc_prefix_bounded_sourcecoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_bounded_sourcecoefficientsum_body_steps_summand. fs_h_pfc_prefix_bounded_sourcecoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_bounded_sourcecoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_bounded_sourcecoefficientsum_body_steps)) * pfc_terms_scale_prefix_bounded_sourcecoefficient)) /\ exists fs_q_pfc_prefix_bounded_sourcecoefficientsum_body_steps_summand. pfc_terms_code_prefix_bounded_sourcecoefficient = fs_q_pfc_prefix_bounded_sourcecoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_bounded_sourcecoefficientsum_body_steps)) * pfc_terms_scale_prefix_bounded_sourcecoefficient) + (fs_a_pfc_prefix_bounded_sourcecoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_bounded_sourcecoefficientsum_body_steps_partial. fs_h_pfc_prefix_bounded_sourcecoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_bounded_sourcecoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_bounded_sourcecoefficientsum_body_steps)) * fs_v_pfc_prefix_bounded_sourcecoefficientsum)) /\ exists fs_q_pfc_prefix_bounded_sourcecoefficientsum_body_steps_partial. fs_u_pfc_prefix_bounded_sourcecoefficientsum = fs_q_pfc_prefix_bounded_sourcecoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_bounded_sourcecoefficientsum_body_steps)) * fs_v_pfc_prefix_bounded_sourcecoefficientsum) + (fs_r_pfc_prefix_bounded_sourcecoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_bounded_sourcecoefficientsum_body_steps_successor. fs_h_pfc_prefix_bounded_sourcecoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_bounded_sourcecoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_bounded_sourcecoefficientsum_body_steps)) * fs_v_pfc_prefix_bounded_sourcecoefficientsum)) /\ exists fs_q_pfc_prefix_bounded_sourcecoefficientsum_body_steps_successor. fs_u_pfc_prefix_bounded_sourcecoefficientsum = fs_q_pfc_prefix_bounded_sourcecoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_bounded_sourcecoefficientsum_body_steps)) * fs_v_pfc_prefix_bounded_sourcecoefficientsum) + (fs_s_pfc_prefix_bounded_sourcecoefficientsum_body_steps))) /\ fs_s_pfc_prefix_bounded_sourcecoefficientsum_body_steps = fs_r_pfc_prefix_bounded_sourcecoefficientsum_body_steps + fs_a_pfc_prefix_bounded_sourcecoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_bounded_sourcecoefficientresiduebound. pfa_gap_prefix_bounded_sourcecoefficientresiduebound + S (pfc_value_prefix_bounded_source) = (p)) /\ ((exists pfa_offset_left_prefix_bounded_sourcecoefficientresiduecongruence pfa_offset_right_prefix_bounded_sourcecoefficientresiduecongruence. (pfc_natural_sum_prefix_bounded_sourcecoefficient) + (p) * pfa_offset_left_prefix_bounded_sourcecoefficientresiduecongruence = (pfc_value_prefix_bounded_source) + (p) * pfa_offset_right_prefix_bounded_sourcecoefficientresiduecongruence)))))))))))) -> (forall fom_index_pfp_prefix_bounded_result. (exists fom_gap_pfp_prefix_bounded_result_index_bound. fom_gap_pfp_prefix_bounded_result_index_bound + S (fom_index_pfp_prefix_bounded_result) = N) -> exists fom_value_pfp_prefix_bounded_result. ((((exists fom_beta_height_pfp_prefix_bounded_result_entry. fom_beta_height_pfp_prefix_bounded_result_entry + S (fom_value_pfp_prefix_bounded_result) = S ((S (fom_index_pfp_prefix_bounded_result)) * cc)) /\ exists fom_beta_quotient_pfp_prefix_bounded_result_entry. cb = fom_beta_quotient_pfp_prefix_bounded_result_entry * S ((S (fom_index_pfp_prefix_bounded_result)) * cc) + (fom_value_pfp_prefix_bounded_result))) /\ (exists fom_gap_pfp_prefix_bounded_result_value_bound. fom_gap_pfp_prefix_bounded_result_value_bound + S (fom_value_pfp_prefix_bounded_result) = p)))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro cb
  9. intro cc
  10. intro N
  11. intro h
  12. intro i
  13. intro hi
  14. have hv : exists r. ((((exists ff_h_pfp_prefix_bounded_entry. ff_h_pfp_prefix_bounded_entry + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_prefix_bounded_entry. cb = ff_q_pfp_prefix_bounded_entry * S ((S (i)) * cc) + (r))) /\ ((exists pfc_terms_code_prefix_bounded_value pfc_terms_scale_prefix_bounded_value pfc_natural_sum_prefix_bounded_value. ((forall pfc_index_prefix_bounded_valuediagonal. (exists pfa_gap_prefix_bounded_valuediagonalbound. pfa_gap_prefix_bounded_valuediagonalbound + S (pfc_index_prefix_bounded_valuediagonal) = (S (i))) -> exists pfc_value_prefix_bounded_valuediagonal. ((((exists ff_h_pfp_prefix_bounded_valuediagonalentry. ff_h_pfp_prefix_bounded_valuediagonalentry + S (pfc_value_prefix_bounded_valuediagonal) = S ((S (pfc_index_prefix_bounded_valuediagonal)) * pfc_terms_scale_prefix_bounded_value)) /\ exists ff_q_pfp_prefix_bounded_valuediagonalentry. pfc_terms_code_prefix_bounded_value = ff_q_pfp_prefix_bounded_valuediagonalentry * S ((S (pfc_index_prefix_bounded_valuediagonal)) * pfc_terms_scale_prefix_bounded_value) + (pfc_value_prefix_bounded_valuediagonal))) /\ ((exists pfc_complement_prefix_bounded_valuediagonalterm pfc_left_prefix_bounded_valuediagonalterm pfc_right_prefix_bounded_valuediagonalterm. (((pfc_index_prefix_bounded_valuediagonal)+pfc_complement_prefix_bounded_valuediagonalterm=(i)) /\ ((((((exists pfa_gap_prefix_bounded_valuediagonaltermleftinside. pfa_gap_prefix_bounded_valuediagonaltermleftinside + S (pfc_index_prefix_bounded_valuediagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_bounded_valuediagonaltermleftentry. ff_h_pfp_prefix_bounded_valuediagonaltermleftentry + S (pfc_left_prefix_bounded_valuediagonalterm) = S ((S (pfc_index_prefix_bounded_valuediagonal)) * ac)) /\ exists ff_q_pfp_prefix_bounded_valuediagonaltermleftentry. ab = ff_q_pfp_prefix_bounded_valuediagonaltermleftentry * S ((S (pfc_index_prefix_bounded_valuediagonal)) * ac) + (pfc_left_prefix_bounded_valuediagonalterm)))))) \/ (((exists pfc_gap_prefix_bounded_valuediagonaltermleftoutside. pfc_gap_prefix_bounded_valuediagonaltermleftoutside+(L)=(pfc_index_prefix_bounded_valuediagonal)) /\ (((pfc_left_prefix_bounded_valuediagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_bounded_valuediagonaltermrightinside. pfa_gap_prefix_bounded_valuediagonaltermrightinside + S (pfc_complement_prefix_bounded_valuediagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_bounded_valuediagonaltermrightentry. ff_h_pfp_prefix_bounded_valuediagonaltermrightentry + S (pfc_right_prefix_bounded_valuediagonalterm) = S ((S (pfc_complement_prefix_bounded_valuediagonalterm)) * bc)) /\ exists ff_q_pfp_prefix_bounded_valuediagonaltermrightentry. bb = ff_q_pfp_prefix_bounded_valuediagonaltermrightentry * S ((S (pfc_complement_prefix_bounded_valuediagonalterm)) * bc) + (pfc_right_prefix_bounded_valuediagonalterm)))))) \/ (((exists pfc_gap_prefix_bounded_valuediagonaltermrightoutside. pfc_gap_prefix_bounded_valuediagonaltermrightoutside+(M)=(pfc_complement_prefix_bounded_valuediagonalterm)) /\ (((pfc_right_prefix_bounded_valuediagonalterm)=0))))) /\ (((pfc_value_prefix_bounded_valuediagonal)=pfc_left_prefix_bounded_valuediagonalterm*pfc_right_prefix_bounded_valuediagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_bounded_valuesum fs_v_pfc_prefix_bounded_valuesum. ((((exists fs_h_pfc_prefix_bounded_valuesum_body_start. fs_h_pfc_prefix_bounded_valuesum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_bounded_valuesum)) /\ exists fs_q_pfc_prefix_bounded_valuesum_body_start. fs_u_pfc_prefix_bounded_valuesum = fs_q_pfc_prefix_bounded_valuesum_body_start * S ((S (0)) * fs_v_pfc_prefix_bounded_valuesum) + (0))) /\ ((((exists fs_h_pfc_prefix_bounded_valuesum_body_terminal. fs_h_pfc_prefix_bounded_valuesum_body_terminal + S (pfc_natural_sum_prefix_bounded_value) = S ((S (S (i))) * fs_v_pfc_prefix_bounded_valuesum)) /\ exists fs_q_pfc_prefix_bounded_valuesum_body_terminal. fs_u_pfc_prefix_bounded_valuesum = fs_q_pfc_prefix_bounded_valuesum_body_terminal * S ((S (S (i))) * fs_v_pfc_prefix_bounded_valuesum) + (pfc_natural_sum_prefix_bounded_value))) /\ forall fs_i_pfc_prefix_bounded_valuesum_body_steps. (exists fs_lt_pfc_prefix_bounded_valuesum_body_steps_bound. fs_lt_pfc_prefix_bounded_valuesum_body_steps_bound + S fs_i_pfc_prefix_bounded_valuesum_body_steps = S (i)) -> exists fs_a_pfc_prefix_bounded_valuesum_body_steps fs_r_pfc_prefix_bounded_valuesum_body_steps fs_s_pfc_prefix_bounded_valuesum_body_steps. ((((exists fs_h_pfc_prefix_bounded_valuesum_body_steps_summand. fs_h_pfc_prefix_bounded_valuesum_body_steps_summand + S (fs_a_pfc_prefix_bounded_valuesum_body_steps) = S ((S (fs_i_pfc_prefix_bounded_valuesum_body_steps)) * pfc_terms_scale_prefix_bounded_value)) /\ exists fs_q_pfc_prefix_bounded_valuesum_body_steps_summand. pfc_terms_code_prefix_bounded_value = fs_q_pfc_prefix_bounded_valuesum_body_steps_summand * S ((S (fs_i_pfc_prefix_bounded_valuesum_body_steps)) * pfc_terms_scale_prefix_bounded_value) + (fs_a_pfc_prefix_bounded_valuesum_body_steps))) /\ ((((exists fs_h_pfc_prefix_bounded_valuesum_body_steps_partial. fs_h_pfc_prefix_bounded_valuesum_body_steps_partial + S (fs_r_pfc_prefix_bounded_valuesum_body_steps) = S ((S (fs_i_pfc_prefix_bounded_valuesum_body_steps)) * fs_v_pfc_prefix_bounded_valuesum)) /\ exists fs_q_pfc_prefix_bounded_valuesum_body_steps_partial. fs_u_pfc_prefix_bounded_valuesum = fs_q_pfc_prefix_bounded_valuesum_body_steps_partial * S ((S (fs_i_pfc_prefix_bounded_valuesum_body_steps)) * fs_v_pfc_prefix_bounded_valuesum) + (fs_r_pfc_prefix_bounded_valuesum_body_steps))) /\ ((((exists fs_h_pfc_prefix_bounded_valuesum_body_steps_successor. fs_h_pfc_prefix_bounded_valuesum_body_steps_successor + S (fs_s_pfc_prefix_bounded_valuesum_body_steps) = S ((S (S fs_i_pfc_prefix_bounded_valuesum_body_steps)) * fs_v_pfc_prefix_bounded_valuesum)) /\ exists fs_q_pfc_prefix_bounded_valuesum_body_steps_successor. fs_u_pfc_prefix_bounded_valuesum = fs_q_pfc_prefix_bounded_valuesum_body_steps_successor * S ((S (S fs_i_pfc_prefix_bounded_valuesum_body_steps)) * fs_v_pfc_prefix_bounded_valuesum) + (fs_s_pfc_prefix_bounded_valuesum_body_steps))) /\ fs_s_pfc_prefix_bounded_valuesum_body_steps = fs_r_pfc_prefix_bounded_valuesum_body_steps + fs_a_pfc_prefix_bounded_valuesum_body_steps)))))) /\ ((((exists pfa_gap_prefix_bounded_valueresiduebound. pfa_gap_prefix_bounded_valueresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_prefix_bounded_valueresiduecongruence pfa_offset_right_prefix_bounded_valueresiduecongruence. (pfc_natural_sum_prefix_bounded_value) + (p) * pfa_offset_left_prefix_bounded_valueresiduecongruence = (r) + (p) * pfa_offset_right_prefix_bounded_valueresiduecongruence)))))))))))
  15. specialize h (i)
  16. apply h
  17. exact hi
  18. cases hv
  19. cases hv_witness
  20. exists x
  21. split
  22. exact hv_witness_left
  23. specialize prime_field_convolution_coefficient_bounded (p)
  24. specialize prime_field_convolution_coefficient_bounded (ab)
  25. specialize prime_field_convolution_coefficient_bounded (ac)
  26. specialize prime_field_convolution_coefficient_bounded (L)
  27. specialize prime_field_convolution_coefficient_bounded (bb)
  28. specialize prime_field_convolution_coefficient_bounded (bc)
  29. specialize prime_field_convolution_coefficient_bounded (M)
  30. specialize prime_field_convolution_coefficient_bounded (i)
  31. specialize prime_field_convolution_coefficient_bounded (x)
  32. apply prime_field_convolution_coefficient_bounded
  33. exact hv_witness_right
prime_field_polynomial_convolution_bounded · unchanged support, not a new admission
forall p ab ac L bb bc M cb cc N. (((forall fom_index_pfp_convolution_bound_sourceleft. (exists fom_gap_pfp_convolution_bound_sourceleft_index_bound. fom_gap_pfp_convolution_bound_sourceleft_index_bound + S (fom_index_pfp_convolution_bound_sourceleft) = L) -> exists fom_value_pfp_convolution_bound_sourceleft. ((((exists fom_beta_height_pfp_convolution_bound_sourceleft_entry. fom_beta_height_pfp_convolution_bound_sourceleft_entry + S (fom_value_pfp_convolution_bound_sourceleft) = S ((S (fom_index_pfp_convolution_bound_sourceleft)) * ac)) /\ exists fom_beta_quotient_pfp_convolution_bound_sourceleft_entry. ab = fom_beta_quotient_pfp_convolution_bound_sourceleft_entry * S ((S (fom_index_pfp_convolution_bound_sourceleft)) * ac) + (fom_value_pfp_convolution_bound_sourceleft))) /\ (exists fom_gap_pfp_convolution_bound_sourceleft_value_bound. fom_gap_pfp_convolution_bound_sourceleft_value_bound + S (fom_value_pfp_convolution_bound_sourceleft) = p))) /\ (((forall fom_index_pfp_convolution_bound_sourceright. (exists fom_gap_pfp_convolution_bound_sourceright_index_bound. fom_gap_pfp_convolution_bound_sourceright_index_bound + S (fom_index_pfp_convolution_bound_sourceright) = M) -> exists fom_value_pfp_convolution_bound_sourceright. ((((exists fom_beta_height_pfp_convolution_bound_sourceright_entry. fom_beta_height_pfp_convolution_bound_sourceright_entry + S (fom_value_pfp_convolution_bound_sourceright) = S ((S (fom_index_pfp_convolution_bound_sourceright)) * bc)) /\ exists fom_beta_quotient_pfp_convolution_bound_sourceright_entry. bb = fom_beta_quotient_pfp_convolution_bound_sourceright_entry * S ((S (fom_index_pfp_convolution_bound_sourceright)) * bc) + (fom_value_pfp_convolution_bound_sourceright))) /\ (exists fom_gap_pfp_convolution_bound_sourceright_value_bound. fom_gap_pfp_convolution_bound_sourceright_value_bound + S (fom_value_pfp_convolution_bound_sourceright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_convolution_bound_sourcecoefficients. (exists pfa_gap_convolution_bound_sourcecoefficientsbound. pfa_gap_convolution_bound_sourcecoefficientsbound + S (pfc_index_convolution_bound_sourcecoefficients) = (N)) -> exists pfc_value_convolution_bound_sourcecoefficients. ((((exists ff_h_pfp_convolution_bound_sourcecoefficientsentry. ff_h_pfp_convolution_bound_sourcecoefficientsentry + S (pfc_value_convolution_bound_sourcecoefficients) = S ((S (pfc_index_convolution_bound_sourcecoefficients)) * cc)) /\ exists ff_q_pfp_convolution_bound_sourcecoefficientsentry. cb = ff_q_pfp_convolution_bound_sourcecoefficientsentry * S ((S (pfc_index_convolution_bound_sourcecoefficients)) * cc) + (pfc_value_convolution_bound_sourcecoefficients))) /\ ((exists pfc_terms_code_convolution_bound_sourcecoefficientscoefficient pfc_terms_scale_convolution_bound_sourcecoefficientscoefficient pfc_natural_sum_convolution_bound_sourcecoefficientscoefficient. ((forall pfc_index_convolution_bound_sourcecoefficientscoefficientdiagonal. (exists pfa_gap_convolution_bound_sourcecoefficientscoefficientdiagonalbound. pfa_gap_convolution_bound_sourcecoefficientscoefficientdiagonalbound + S (pfc_index_convolution_bound_sourcecoefficientscoefficientdiagonal) = (S (pfc_index_convolution_bound_sourcecoefficients))) -> exists pfc_value_convolution_bound_sourcecoefficientscoefficientdiagonal. ((((exists ff_h_pfp_convolution_bound_sourcecoefficientscoefficientdiagonalentry. ff_h_pfp_convolution_bound_sourcecoefficientscoefficientdiagonalentry + S (pfc_value_convolution_bound_sourcecoefficientscoefficientdiagonal) = S ((S (pfc_index_convolution_bound_sourcecoefficientscoefficientdiagonal)) * pfc_terms_scale_convolution_bound_sourcecoefficientscoefficient)) /\ exists ff_q_pfp_convolution_bound_sourcecoefficientscoefficientdiagonalentry. pfc_terms_code_convolution_bound_sourcecoefficientscoefficient = ff_q_pfp_convolution_bound_sourcecoefficientscoefficientdiagonalentry * S ((S (pfc_index_convolution_bound_sourcecoefficientscoefficientdiagonal)) * pfc_terms_scale_convolution_bound_sourcecoefficientscoefficient) + (pfc_value_convolution_bound_sourcecoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_convolution_bound_sourcecoefficientscoefficientdiagonalterm pfc_left_convolution_bound_sourcecoefficientscoefficientdiagonalterm pfc_right_convolution_bound_sourcecoefficientscoefficientdiagonalterm. (((pfc_index_convolution_bound_sourcecoefficientscoefficientdiagonal)+pfc_complement_convolution_bound_sourcecoefficientscoefficientdiagonalterm=(pfc_index_convolution_bound_sourcecoefficients)) /\ ((((((exists pfa_gap_convolution_bound_sourcecoefficientscoefficientdiagonaltermleftinside. pfa_gap_convolution_bound_sourcecoefficientscoefficientdiagonaltermleftinside + S (pfc_index_convolution_bound_sourcecoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_convolution_bound_sourcecoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_convolution_bound_sourcecoefficientscoefficientdiagonaltermleftentry + S (pfc_left_convolution_bound_sourcecoefficientscoefficientdiagonalterm) = S ((S (pfc_index_convolution_bound_sourcecoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_convolution_bound_sourcecoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_convolution_bound_sourcecoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_convolution_bound_sourcecoefficientscoefficientdiagonal)) * ac) + (pfc_left_convolution_bound_sourcecoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_bound_sourcecoefficientscoefficientdiagonaltermleftoutside. pfc_gap_convolution_bound_sourcecoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_convolution_bound_sourcecoefficientscoefficientdiagonal)) /\ (((pfc_left_convolution_bound_sourcecoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_convolution_bound_sourcecoefficientscoefficientdiagonaltermrightinside. pfa_gap_convolution_bound_sourcecoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_convolution_bound_sourcecoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_convolution_bound_sourcecoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_convolution_bound_sourcecoefficientscoefficientdiagonaltermrightentry + S (pfc_right_convolution_bound_sourcecoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_convolution_bound_sourcecoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_convolution_bound_sourcecoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_convolution_bound_sourcecoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_convolution_bound_sourcecoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_convolution_bound_sourcecoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_bound_sourcecoefficientscoefficientdiagonaltermrightoutside. pfc_gap_convolution_bound_sourcecoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_convolution_bound_sourcecoefficientscoefficientdiagonalterm)) /\ (((pfc_right_convolution_bound_sourcecoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_convolution_bound_sourcecoefficientscoefficientdiagonal)=pfc_left_convolution_bound_sourcecoefficientscoefficientdiagonalterm*pfc_right_convolution_bound_sourcecoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_convolution_bound_sourcecoefficientscoefficientsum fs_v_pfc_convolution_bound_sourcecoefficientscoefficientsum. ((((exists fs_h_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_start. fs_h_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_convolution_bound_sourcecoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_start. fs_u_pfc_convolution_bound_sourcecoefficientscoefficientsum = fs_q_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_convolution_bound_sourcecoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_terminal. fs_h_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_convolution_bound_sourcecoefficientscoefficient) = S ((S (S (pfc_index_convolution_bound_sourcecoefficients))) * fs_v_pfc_convolution_bound_sourcecoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_terminal. fs_u_pfc_convolution_bound_sourcecoefficientscoefficientsum = fs_q_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_convolution_bound_sourcecoefficients))) * fs_v_pfc_convolution_bound_sourcecoefficientscoefficientsum) + (pfc_natural_sum_convolution_bound_sourcecoefficientscoefficient))) /\ forall fs_i_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps = S (pfc_index_convolution_bound_sourcecoefficients)) -> exists fs_a_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps fs_r_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps fs_s_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps_summand. fs_h_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps)) * pfc_terms_scale_convolution_bound_sourcecoefficientscoefficient)) /\ exists fs_q_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps_summand. pfc_terms_code_convolution_bound_sourcecoefficientscoefficient = fs_q_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps)) * pfc_terms_scale_convolution_bound_sourcecoefficientscoefficient) + (fs_a_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps_partial. fs_h_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_bound_sourcecoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps_partial. fs_u_pfc_convolution_bound_sourcecoefficientscoefficientsum = fs_q_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_bound_sourcecoefficientscoefficientsum) + (fs_r_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps_successor. fs_h_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_bound_sourcecoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps_successor. fs_u_pfc_convolution_bound_sourcecoefficientscoefficientsum = fs_q_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_bound_sourcecoefficientscoefficientsum) + (fs_s_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps = fs_r_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps + fs_a_pfc_convolution_bound_sourcecoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_convolution_bound_sourcecoefficientscoefficientresiduebound. pfa_gap_convolution_bound_sourcecoefficientscoefficientresiduebound + S (pfc_value_convolution_bound_sourcecoefficients) = (p)) /\ ((exists pfa_offset_left_convolution_bound_sourcecoefficientscoefficientresiduecongruence pfa_offset_right_convolution_bound_sourcecoefficientscoefficientresiduecongruence. (pfc_natural_sum_convolution_bound_sourcecoefficientscoefficient) + (p) * pfa_offset_left_convolution_bound_sourcecoefficientscoefficientresiduecongruence = (pfc_value_convolution_bound_sourcecoefficients) + (p) * pfa_offset_right_convolution_bound_sourcecoefficientscoefficientresiduecongruence))))))))))))))))))) -> (forall fom_index_pfp_convolution_bound_result. (exists fom_gap_pfp_convolution_bound_result_index_bound. fom_gap_pfp_convolution_bound_result_index_bound + S (fom_index_pfp_convolution_bound_result) = N) -> exists fom_value_pfp_convolution_bound_result. ((((exists fom_beta_height_pfp_convolution_bound_result_entry. fom_beta_height_pfp_convolution_bound_result_entry + S (fom_value_pfp_convolution_bound_result) = S ((S (fom_index_pfp_convolution_bound_result)) * cc)) /\ exists fom_beta_quotient_pfp_convolution_bound_result_entry. cb = fom_beta_quotient_pfp_convolution_bound_result_entry * S ((S (fom_index_pfp_convolution_bound_result)) * cc) + (fom_value_pfp_convolution_bound_result))) /\ (exists fom_gap_pfp_convolution_bound_result_value_bound. fom_gap_pfp_convolution_bound_result_value_bound + S (fom_value_pfp_convolution_bound_result) = p)))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro cb
  9. intro cc
  10. intro N
  11. intro h
  12. cases h
  13. cases h_right
  14. cases h_right_right
  15. specialize prime_field_convolution_prefix_bounded (p)
  16. specialize prime_field_convolution_prefix_bounded (ab)
  17. specialize prime_field_convolution_prefix_bounded (ac)
  18. specialize prime_field_convolution_prefix_bounded (L)
  19. specialize prime_field_convolution_prefix_bounded (bb)
  20. specialize prime_field_convolution_prefix_bounded (bc)
  21. specialize prime_field_convolution_prefix_bounded (M)
  22. specialize prime_field_convolution_prefix_bounded (cb)
  23. specialize prime_field_convolution_prefix_bounded (cc)
  24. specialize prime_field_convolution_prefix_bounded (N)
  25. apply prime_field_convolution_prefix_bounded
  26. exact h_right_right_right
prime_field_add_commutative · unchanged support, not a new admission
forall p a b c. (((exists pfa_gap_addcomm_sourceleft. pfa_gap_addcomm_sourceleft + S (a) = (p)) /\ (((exists pfa_gap_addcomm_sourceright. pfa_gap_addcomm_sourceright + S (b) = (p)) /\ ((((exists pfa_gap_addcomm_sourceresultbound. pfa_gap_addcomm_sourceresultbound + S (c) = (p)) /\ ((exists pfa_offset_left_addcomm_sourceresultcongruence pfa_offset_right_addcomm_sourceresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_addcomm_sourceresultcongruence = (c) + (p) * pfa_offset_right_addcomm_sourceresultcongruence))))))))) -> (((exists pfa_gap_addcomm_targetleft. pfa_gap_addcomm_targetleft + S (b) = (p)) /\ (((exists pfa_gap_addcomm_targetright. pfa_gap_addcomm_targetright + S (a) = (p)) /\ ((((exists pfa_gap_addcomm_targetresultbound. pfa_gap_addcomm_targetresultbound + S (c) = (p)) /\ ((exists pfa_offset_left_addcomm_targetresultcongruence pfa_offset_right_addcomm_targetresultcongruence. ((b) + (a)) + (p) * pfa_offset_left_addcomm_targetresultcongruence = (c) + (p) * pfa_offset_right_addcomm_targetresultcongruence)))))))))
  1. intro p
  2. intro a
  3. intro b
  4. intro c
  5. intro h
  6. cases h
  7. cases h_right
  8. split
  9. exact h_right_left
  10. split
  11. exact h_left
  12. specialize prime_field_residue_input_equal (p)
  13. specialize prime_field_residue_input_equal (b + a)
  14. specialize prime_field_residue_input_equal (a + b)
  15. specialize prime_field_residue_input_equal (c)
  16. apply prime_field_residue_input_equal
  17. specialize add_comm (b)
  18. specialize add_comm (a)
  19. apply add_comm
  20. exact h_right_right
prime_field_mod_of_equal · unchanged support, not a new admission
forall p a b. a = b -> (exists pfa_offset_left_equal pfa_offset_right_equal. (a) + (p) * pfa_offset_left_equal = (b) + (p) * pfa_offset_right_equal)
  1. intro p
  2. intro a
  3. intro b
  4. intro heq
  5. rewrite heq
  6. specialize mod_eq_refl (p)
  7. specialize mod_eq_refl (b)
  8. apply mod_eq_refl
prime_field_add_zero_right · unchanged support, not a new admission
forall p a. (~((p) = 1) /\ forall pfa_factor_left_add_zero_domain pfa_factor_right_add_zero_domain. (p) = pfa_factor_left_add_zero_domain * pfa_factor_right_add_zero_domain -> pfa_factor_left_add_zero_domain = 1 \/ pfa_factor_right_add_zero_domain = 1) -> (exists pfa_gap_add_zero_bound. pfa_gap_add_zero_bound + S (a) = (p)) -> (((exists pfa_gap_add_zeroleft. pfa_gap_add_zeroleft + S (a) = (p)) /\ (((exists pfa_gap_add_zeroright. pfa_gap_add_zeroright + S (0) = (p)) /\ ((((exists pfa_gap_add_zeroresultbound. pfa_gap_add_zeroresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_add_zeroresultcongruence pfa_offset_right_add_zeroresultcongruence. ((a) + (0)) + (p) * pfa_offset_left_add_zeroresultcongruence = (a) + (p) * pfa_offset_right_add_zeroresultcongruence)))))))))
  1. intro p
  2. intro a
  3. intro hp
  4. intro ha
  5. split
  6. exact ha
  7. split
  8. specialize prime_field_zero_below_prime (p)
  9. apply prime_field_zero_below_prime
  10. exact hp
  11. split
  12. exact ha
  13. specialize prime_field_mod_of_equal (p)
  14. specialize prime_field_mod_of_equal (a + 0)
  15. specialize prime_field_mod_of_equal (a)
  16. apply prime_field_mod_of_equal
  17. apply PA3
prime_field_add_zero_left · unchanged support, not a new admission
forall p a. (~((p) = 1) /\ forall pfa_factor_left_zero_add_domain pfa_factor_right_zero_add_domain. (p) = pfa_factor_left_zero_add_domain * pfa_factor_right_zero_add_domain -> pfa_factor_left_zero_add_domain = 1 \/ pfa_factor_right_zero_add_domain = 1) -> (exists pfa_gap_zero_add_bound. pfa_gap_zero_add_bound + S (a) = (p)) -> (((exists pfa_gap_zero_addleft. pfa_gap_zero_addleft + S (0) = (p)) /\ (((exists pfa_gap_zero_addright. pfa_gap_zero_addright + S (a) = (p)) /\ ((((exists pfa_gap_zero_addresultbound. pfa_gap_zero_addresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_zero_addresultcongruence pfa_offset_right_zero_addresultcongruence. ((0) + (a)) + (p) * pfa_offset_left_zero_addresultcongruence = (a) + (p) * pfa_offset_right_zero_addresultcongruence)))))))))
  1. intro p
  2. intro a
  3. intro hp
  4. intro ha
  5. specialize prime_field_add_commutative (p)
  6. specialize prime_field_add_commutative (a)
  7. specialize prime_field_add_commutative (0)
  8. specialize prime_field_add_commutative (a)
  9. apply prime_field_add_commutative
  10. specialize prime_field_add_zero_right (p)
  11. specialize prime_field_add_zero_right (a)
  12. apply prime_field_add_zero_right
  13. exact hp
  14. exact ha
prime_field_polynomial_left_pad_exists · unchanged support, not a new admission
forall b c t L. exists d e. (((forall pfp_repeat_index_left_pad_existszeros. (exists pfa_gap_left_pad_existszerosindex. pfa_gap_left_pad_existszerosindex + S (pfp_repeat_index_left_pad_existszeros) = (t)) -> (((exists ff_h_pfp_left_pad_existszerosentry. ff_h_pfp_left_pad_existszerosentry + S (0) = S ((S (pfp_repeat_index_left_pad_existszeros)) * e)) /\ exists ff_q_pfp_left_pad_existszerosentry. d = ff_q_pfp_left_pad_existszerosentry * S ((S (pfp_repeat_index_left_pad_existszeros)) * e) + (0)))) /\ ((forall pfrep_index_left_pad_exists pfrep_value_left_pad_exists. (exists pfa_gap_left_pad_existsbound. pfa_gap_left_pad_existsbound + S (pfrep_index_left_pad_exists) = (L)) -> (((exists ff_h_pfp_left_pad_existsinput. ff_h_pfp_left_pad_existsinput + S (pfrep_value_left_pad_exists) = S ((S (pfrep_index_left_pad_exists)) * c)) /\ exists ff_q_pfp_left_pad_existsinput. b = ff_q_pfp_left_pad_existsinput * S ((S (pfrep_index_left_pad_exists)) * c) + (pfrep_value_left_pad_exists))) -> (((exists ff_h_pfp_left_pad_existsoutput. ff_h_pfp_left_pad_existsoutput + S (pfrep_value_left_pad_exists) = S ((S ((t)+pfrep_index_left_pad_exists)) * e)) /\ exists ff_q_pfp_left_pad_existsoutput. d = ff_q_pfp_left_pad_existsoutput * S ((S ((t)+pfrep_index_left_pad_exists)) * e) + (pfrep_value_left_pad_exists)))))))
  1. intro b
  2. intro c
  3. intro t
  4. induction L
  5. have hz : exists d e. (forall pfp_repeat_index_left_pad_empty_zeros. (exists pfa_gap_left_pad_empty_zerosindex. pfa_gap_left_pad_empty_zerosindex + S (pfp_repeat_index_left_pad_empty_zeros) = (t)) -> (((exists ff_h_pfp_left_pad_empty_zerosentry. ff_h_pfp_left_pad_empty_zerosentry + S (0) = S ((S (pfp_repeat_index_left_pad_empty_zeros)) * e)) /\ exists ff_q_pfp_left_pad_empty_zerosentry. d = ff_q_pfp_left_pad_empty_zerosentry * S ((S (pfp_repeat_index_left_pad_empty_zeros)) * e) + (0))))
  6. specialize beta_repeat_exists (0)
  7. specialize beta_repeat_exists (t)
  8. apply beta_repeat_exists
  9. cases hz
  10. cases hz_witness
  11. exists x
  12. exists x1
  13. split
  14. exact hz_witness_witness
  15. intro i
  16. intro a
  17. intro hi
  18. intro ha
  19. exfalso
  20. specialize matrix_rank_no_index_below_zero (i)
  21. apply matrix_rank_no_index_below_zero
  22. exact hi
  23. have hold : exists d e. (((forall pfp_repeat_index_left_pad_previouszeros. (exists pfa_gap_left_pad_previouszerosindex. pfa_gap_left_pad_previouszerosindex + S (pfp_repeat_index_left_pad_previouszeros) = (t)) -> (((exists ff_h_pfp_left_pad_previouszerosentry. ff_h_pfp_left_pad_previouszerosentry + S (0) = S ((S (pfp_repeat_index_left_pad_previouszeros)) * e)) /\ exists ff_q_pfp_left_pad_previouszerosentry. d = ff_q_pfp_left_pad_previouszerosentry * S ((S (pfp_repeat_index_left_pad_previouszeros)) * e) + (0)))) /\ ((forall pfrep_index_left_pad_previous pfrep_value_left_pad_previous. (exists pfa_gap_left_pad_previousbound. pfa_gap_left_pad_previousbound + S (pfrep_index_left_pad_previous) = (L)) -> (((exists ff_h_pfp_left_pad_previousinput. ff_h_pfp_left_pad_previousinput + S (pfrep_value_left_pad_previous) = S ((S (pfrep_index_left_pad_previous)) * c)) /\ exists ff_q_pfp_left_pad_previousinput. b = ff_q_pfp_left_pad_previousinput * S ((S (pfrep_index_left_pad_previous)) * c) + (pfrep_value_left_pad_previous))) -> (((exists ff_h_pfp_left_pad_previousoutput. ff_h_pfp_left_pad_previousoutput + S (pfrep_value_left_pad_previous) = S ((S ((t)+pfrep_index_left_pad_previous)) * e)) /\ exists ff_q_pfp_left_pad_previousoutput. d = ff_q_pfp_left_pad_previousoutput * S ((S ((t)+pfrep_index_left_pad_previous)) * e) + (pfrep_value_left_pad_previous)))))))
  24. exact IH
  25. cases hold
  26. cases hold_witness
  27. cases hold_witness_witness
  28. have ha : exists a. (((exists ff_h_pfp_left_pad_next_source. ff_h_pfp_left_pad_next_source + S (a) = S ((S (L)) * c)) /\ exists ff_q_pfp_left_pad_next_source. b = ff_q_pfp_left_pad_next_source * S ((S (L)) * c) + (a)))
  29. specialize beta_at_exists (b)
  30. specialize beta_at_exists (c)
  31. specialize beta_at_exists (L)
  32. apply beta_at_exists
  33. cases ha
  34. have hn : exists d e. (((((exists ff_h_pfp_left_pad_next_entry. ff_h_pfp_left_pad_next_entry + S (x2) = S ((S (t+L)) * e)) /\ exists ff_q_pfp_left_pad_next_entry. d = ff_q_pfp_left_pad_next_entry * S ((S (t+L)) * e) + (x2))) /\ ((forall mdr_i_pfp_left_pad_preserved mdr_a_pfp_left_pad_preserved. (exists mdr_gap_pfp_left_pad_preservedb. mdr_gap_pfp_left_pad_preservedb + S (mdr_i_pfp_left_pad_preserved) = (t+L)) -> (((exists ff_h_mdr_pfp_left_pad_preservedo. ff_h_mdr_pfp_left_pad_preservedo + S (mdr_a_pfp_left_pad_preserved) = S ((S (mdr_i_pfp_left_pad_preserved)) * x1)) /\ exists ff_q_mdr_pfp_left_pad_preservedo. x = ff_q_mdr_pfp_left_pad_preservedo * S ((S (mdr_i_pfp_left_pad_preserved)) * x1) + (mdr_a_pfp_left_pad_preserved))) -> (((exists ff_h_mdr_pfp_left_pad_preservedn. ff_h_mdr_pfp_left_pad_preservedn + S (mdr_a_pfp_left_pad_preserved) = S ((S (mdr_i_pfp_left_pad_preserved)) * e)) /\ exists ff_q_mdr_pfp_left_pad_preservedn. d = ff_q_mdr_pfp_left_pad_preservedn * S ((S (mdr_i_pfp_left_pad_preserved)) * e) + (mdr_a_pfp_left_pad_preserved)))))))
  35. specialize beta_prefix_extend (t+L)
  36. specialize beta_prefix_extend (x)
  37. specialize beta_prefix_extend (x1)
  38. specialize beta_prefix_extend (x2)
  39. apply beta_prefix_extend
  40. cases hn
  41. cases hn_witness
  42. cases hn_witness_witness
  43. exists x3
  44. exists x4
  45. split
  46. intro i
  47. intro hi
  48. specialize hn_witness_witness_right (i)
  49. specialize hn_witness_witness_right (0)
  50. apply hn_witness_witness_right
  51. specialize lt_of_lt_of_le (i)
  52. specialize lt_of_lt_of_le (t)
  53. specialize lt_of_lt_of_le (t+L)
  54. apply lt_of_lt_of_le
  55. exact hi
  56. specialize le_add_right (t)
  57. specialize le_add_right (L)
  58. apply le_add_right
  59. specialize hold_witness_witness_left (i)
  60. apply hold_witness_witness_left
  61. exact hi
  62. intro i
  63. intro a
  64. intro hi
  65. intro ha0
  66. have ho : i=L \/ (exists pfa_gap_left_pad_old_index. pfa_gap_left_pad_old_index + S (i) = (L))
  67. specialize finite_lt_succ_eq_or_lt (L)
  68. specialize finite_lt_succ_eq_or_lt (i)
  69. apply finite_lt_succ_eq_or_lt
  70. exact hi
  71. cases ho
  72. rewrite ho_left
  73. rewrite ho_left
  74. have heq : a=x2
  75. specialize beta_at_unique (b)
  76. specialize beta_at_unique (c)
  77. specialize beta_at_unique (L)
  78. specialize beta_at_unique (a)
  79. specialize beta_at_unique (x2)
  80. apply beta_at_unique
  81. rewrite ho_left at ha0
  82. rewrite ho_left at ha0
  83. exact ha0
  84. exact ha_witness
  85. rewrite heq
  86. rewrite heq
  87. exact hn_witness_witness_left
  88. specialize hn_witness_witness_right (t+i)
  89. specialize hn_witness_witness_right (a)
  90. apply hn_witness_witness_right
  91. specialize matrix_recursive_lt_add_left (i)
  92. specialize matrix_recursive_lt_add_left (L)
  93. specialize matrix_recursive_lt_add_left (t)
  94. apply matrix_recursive_lt_add_left
  95. exact ho_right
  96. specialize hold_witness_witness_right (i)
  97. specialize hold_witness_witness_right (a)
  98. apply hold_witness_witness_right
  99. exact ho_right
  100. exact ha0
beta_sum_pointwise_mod_add · unchanged support, not a new admission
forall p ab ac bb bc cb cc L A B C. (exists fs_u_pfc_distribution_sum_a fs_v_pfc_distribution_sum_a. ((((exists fs_h_pfc_distribution_sum_a_body_start. fs_h_pfc_distribution_sum_a_body_start + S (0) = S ((S (0)) * fs_v_pfc_distribution_sum_a)) /\ exists fs_q_pfc_distribution_sum_a_body_start. fs_u_pfc_distribution_sum_a = fs_q_pfc_distribution_sum_a_body_start * S ((S (0)) * fs_v_pfc_distribution_sum_a) + (0))) /\ ((((exists fs_h_pfc_distribution_sum_a_body_terminal. fs_h_pfc_distribution_sum_a_body_terminal + S (A) = S ((S (L)) * fs_v_pfc_distribution_sum_a)) /\ exists fs_q_pfc_distribution_sum_a_body_terminal. fs_u_pfc_distribution_sum_a = fs_q_pfc_distribution_sum_a_body_terminal * S ((S (L)) * fs_v_pfc_distribution_sum_a) + (A))) /\ forall fs_i_pfc_distribution_sum_a_body_steps. (exists fs_lt_pfc_distribution_sum_a_body_steps_bound. fs_lt_pfc_distribution_sum_a_body_steps_bound + S fs_i_pfc_distribution_sum_a_body_steps = L) -> exists fs_a_pfc_distribution_sum_a_body_steps fs_r_pfc_distribution_sum_a_body_steps fs_s_pfc_distribution_sum_a_body_steps. ((((exists fs_h_pfc_distribution_sum_a_body_steps_summand. fs_h_pfc_distribution_sum_a_body_steps_summand + S (fs_a_pfc_distribution_sum_a_body_steps) = S ((S (fs_i_pfc_distribution_sum_a_body_steps)) * ac)) /\ exists fs_q_pfc_distribution_sum_a_body_steps_summand. ab = fs_q_pfc_distribution_sum_a_body_steps_summand * S ((S (fs_i_pfc_distribution_sum_a_body_steps)) * ac) + (fs_a_pfc_distribution_sum_a_body_steps))) /\ ((((exists fs_h_pfc_distribution_sum_a_body_steps_partial. fs_h_pfc_distribution_sum_a_body_steps_partial + S (fs_r_pfc_distribution_sum_a_body_steps) = S ((S (fs_i_pfc_distribution_sum_a_body_steps)) * fs_v_pfc_distribution_sum_a)) /\ exists fs_q_pfc_distribution_sum_a_body_steps_partial. fs_u_pfc_distribution_sum_a = fs_q_pfc_distribution_sum_a_body_steps_partial * S ((S (fs_i_pfc_distribution_sum_a_body_steps)) * fs_v_pfc_distribution_sum_a) + (fs_r_pfc_distribution_sum_a_body_steps))) /\ ((((exists fs_h_pfc_distribution_sum_a_body_steps_successor. fs_h_pfc_distribution_sum_a_body_steps_successor + S (fs_s_pfc_distribution_sum_a_body_steps) = S ((S (S fs_i_pfc_distribution_sum_a_body_steps)) * fs_v_pfc_distribution_sum_a)) /\ exists fs_q_pfc_distribution_sum_a_body_steps_successor. fs_u_pfc_distribution_sum_a = fs_q_pfc_distribution_sum_a_body_steps_successor * S ((S (S fs_i_pfc_distribution_sum_a_body_steps)) * fs_v_pfc_distribution_sum_a) + (fs_s_pfc_distribution_sum_a_body_steps))) /\ fs_s_pfc_distribution_sum_a_body_steps = fs_r_pfc_distribution_sum_a_body_steps + fs_a_pfc_distribution_sum_a_body_steps)))))) -> (exists fs_u_pfc_distribution_sum_b fs_v_pfc_distribution_sum_b. ((((exists fs_h_pfc_distribution_sum_b_body_start. fs_h_pfc_distribution_sum_b_body_start + S (0) = S ((S (0)) * fs_v_pfc_distribution_sum_b)) /\ exists fs_q_pfc_distribution_sum_b_body_start. fs_u_pfc_distribution_sum_b = fs_q_pfc_distribution_sum_b_body_start * S ((S (0)) * fs_v_pfc_distribution_sum_b) + (0))) /\ ((((exists fs_h_pfc_distribution_sum_b_body_terminal. fs_h_pfc_distribution_sum_b_body_terminal + S (B) = S ((S (L)) * fs_v_pfc_distribution_sum_b)) /\ exists fs_q_pfc_distribution_sum_b_body_terminal. fs_u_pfc_distribution_sum_b = fs_q_pfc_distribution_sum_b_body_terminal * S ((S (L)) * fs_v_pfc_distribution_sum_b) + (B))) /\ forall fs_i_pfc_distribution_sum_b_body_steps. (exists fs_lt_pfc_distribution_sum_b_body_steps_bound. fs_lt_pfc_distribution_sum_b_body_steps_bound + S fs_i_pfc_distribution_sum_b_body_steps = L) -> exists fs_a_pfc_distribution_sum_b_body_steps fs_r_pfc_distribution_sum_b_body_steps fs_s_pfc_distribution_sum_b_body_steps. ((((exists fs_h_pfc_distribution_sum_b_body_steps_summand. fs_h_pfc_distribution_sum_b_body_steps_summand + S (fs_a_pfc_distribution_sum_b_body_steps) = S ((S (fs_i_pfc_distribution_sum_b_body_steps)) * bc)) /\ exists fs_q_pfc_distribution_sum_b_body_steps_summand. bb = fs_q_pfc_distribution_sum_b_body_steps_summand * S ((S (fs_i_pfc_distribution_sum_b_body_steps)) * bc) + (fs_a_pfc_distribution_sum_b_body_steps))) /\ ((((exists fs_h_pfc_distribution_sum_b_body_steps_partial. fs_h_pfc_distribution_sum_b_body_steps_partial + S (fs_r_pfc_distribution_sum_b_body_steps) = S ((S (fs_i_pfc_distribution_sum_b_body_steps)) * fs_v_pfc_distribution_sum_b)) /\ exists fs_q_pfc_distribution_sum_b_body_steps_partial. fs_u_pfc_distribution_sum_b = fs_q_pfc_distribution_sum_b_body_steps_partial * S ((S (fs_i_pfc_distribution_sum_b_body_steps)) * fs_v_pfc_distribution_sum_b) + (fs_r_pfc_distribution_sum_b_body_steps))) /\ ((((exists fs_h_pfc_distribution_sum_b_body_steps_successor. fs_h_pfc_distribution_sum_b_body_steps_successor + S (fs_s_pfc_distribution_sum_b_body_steps) = S ((S (S fs_i_pfc_distribution_sum_b_body_steps)) * fs_v_pfc_distribution_sum_b)) /\ exists fs_q_pfc_distribution_sum_b_body_steps_successor. fs_u_pfc_distribution_sum_b = fs_q_pfc_distribution_sum_b_body_steps_successor * S ((S (S fs_i_pfc_distribution_sum_b_body_steps)) * fs_v_pfc_distribution_sum_b) + (fs_s_pfc_distribution_sum_b_body_steps))) /\ fs_s_pfc_distribution_sum_b_body_steps = fs_r_pfc_distribution_sum_b_body_steps + fs_a_pfc_distribution_sum_b_body_steps)))))) -> (exists fs_u_pfc_distribution_sum_c fs_v_pfc_distribution_sum_c. ((((exists fs_h_pfc_distribution_sum_c_body_start. fs_h_pfc_distribution_sum_c_body_start + S (0) = S ((S (0)) * fs_v_pfc_distribution_sum_c)) /\ exists fs_q_pfc_distribution_sum_c_body_start. fs_u_pfc_distribution_sum_c = fs_q_pfc_distribution_sum_c_body_start * S ((S (0)) * fs_v_pfc_distribution_sum_c) + (0))) /\ ((((exists fs_h_pfc_distribution_sum_c_body_terminal. fs_h_pfc_distribution_sum_c_body_terminal + S (C) = S ((S (L)) * fs_v_pfc_distribution_sum_c)) /\ exists fs_q_pfc_distribution_sum_c_body_terminal. fs_u_pfc_distribution_sum_c = fs_q_pfc_distribution_sum_c_body_terminal * S ((S (L)) * fs_v_pfc_distribution_sum_c) + (C))) /\ forall fs_i_pfc_distribution_sum_c_body_steps. (exists fs_lt_pfc_distribution_sum_c_body_steps_bound. fs_lt_pfc_distribution_sum_c_body_steps_bound + S fs_i_pfc_distribution_sum_c_body_steps = L) -> exists fs_a_pfc_distribution_sum_c_body_steps fs_r_pfc_distribution_sum_c_body_steps fs_s_pfc_distribution_sum_c_body_steps. ((((exists fs_h_pfc_distribution_sum_c_body_steps_summand. fs_h_pfc_distribution_sum_c_body_steps_summand + S (fs_a_pfc_distribution_sum_c_body_steps) = S ((S (fs_i_pfc_distribution_sum_c_body_steps)) * cc)) /\ exists fs_q_pfc_distribution_sum_c_body_steps_summand. cb = fs_q_pfc_distribution_sum_c_body_steps_summand * S ((S (fs_i_pfc_distribution_sum_c_body_steps)) * cc) + (fs_a_pfc_distribution_sum_c_body_steps))) /\ ((((exists fs_h_pfc_distribution_sum_c_body_steps_partial. fs_h_pfc_distribution_sum_c_body_steps_partial + S (fs_r_pfc_distribution_sum_c_body_steps) = S ((S (fs_i_pfc_distribution_sum_c_body_steps)) * fs_v_pfc_distribution_sum_c)) /\ exists fs_q_pfc_distribution_sum_c_body_steps_partial. fs_u_pfc_distribution_sum_c = fs_q_pfc_distribution_sum_c_body_steps_partial * S ((S (fs_i_pfc_distribution_sum_c_body_steps)) * fs_v_pfc_distribution_sum_c) + (fs_r_pfc_distribution_sum_c_body_steps))) /\ ((((exists fs_h_pfc_distribution_sum_c_body_steps_successor. fs_h_pfc_distribution_sum_c_body_steps_successor + S (fs_s_pfc_distribution_sum_c_body_steps) = S ((S (S fs_i_pfc_distribution_sum_c_body_steps)) * fs_v_pfc_distribution_sum_c)) /\ exists fs_q_pfc_distribution_sum_c_body_steps_successor. fs_u_pfc_distribution_sum_c = fs_q_pfc_distribution_sum_c_body_steps_successor * S ((S (S fs_i_pfc_distribution_sum_c_body_steps)) * fs_v_pfc_distribution_sum_c) + (fs_s_pfc_distribution_sum_c_body_steps))) /\ fs_s_pfc_distribution_sum_c_body_steps = fs_r_pfc_distribution_sum_c_body_steps + fs_a_pfc_distribution_sum_c_body_steps)))))) -> (forall i a b c. (exists pfa_gap_distribution_sum_pointwise_bound. pfa_gap_distribution_sum_pointwise_bound + S (i) = (L)) -> (((exists ff_h_pfp_distribution_sum_pointwise_a. ff_h_pfp_distribution_sum_pointwise_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_distribution_sum_pointwise_a. ab = ff_q_pfp_distribution_sum_pointwise_a * S ((S (i)) * ac) + (a))) -> (((exists ff_h_pfp_distribution_sum_pointwise_b. ff_h_pfp_distribution_sum_pointwise_b + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_distribution_sum_pointwise_b. bb = ff_q_pfp_distribution_sum_pointwise_b * S ((S (i)) * bc) + (b))) -> (((exists ff_h_pfp_distribution_sum_pointwise_c. ff_h_pfp_distribution_sum_pointwise_c + S (c) = S ((S (i)) * cc)) /\ exists ff_q_pfp_distribution_sum_pointwise_c. cb = ff_q_pfp_distribution_sum_pointwise_c * S ((S (i)) * cc) + (c))) -> (exists pfa_offset_left_distribution_sum_pointwise_value pfa_offset_right_distribution_sum_pointwise_value. (a+b) + (p) * pfa_offset_left_distribution_sum_pointwise_value = (c) + (p) * pfa_offset_right_distribution_sum_pointwise_value)) -> (exists pfa_offset_left_distribution_sum_result pfa_offset_right_distribution_sum_result. (A+B) + (p) * pfa_offset_left_distribution_sum_result = (C) + (p) * pfa_offset_right_distribution_sum_result)
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. induction L
  9. intro A
  10. intro B
  11. intro C
  12. intro ha
  13. intro hb
  14. intro hc
  15. intro hpw
  16. have hA : A=0
  17. specialize beta_sum_zero (ab)
  18. specialize beta_sum_zero (ac)
  19. specialize beta_sum_zero (A)
  20. apply beta_sum_zero
  21. exact ha
  22. have hB : B=0
  23. specialize beta_sum_zero (bb)
  24. specialize beta_sum_zero (bc)
  25. specialize beta_sum_zero (B)
  26. apply beta_sum_zero
  27. exact hb
  28. have hC : C=0
  29. specialize beta_sum_zero (cb)
  30. specialize beta_sum_zero (cc)
  31. specialize beta_sum_zero (C)
  32. apply beta_sum_zero
  33. exact hc
  34. rewrite hA
  35. rewrite hB
  36. rewrite hC
  37. exists 0
  38. exists 0
  39. simp
  40. intro A
  41. intro B
  42. intro C
  43. intro ha
  44. intro hb
  45. intro hc
  46. intro hpw
  47. have hda : exists a r. ((((exists ff_h_pfp_hda_entry. ff_h_pfp_hda_entry + S (a) = S ((S (L)) * ac)) /\ exists ff_q_pfp_hda_entry. ab = ff_q_pfp_hda_entry * S ((S (L)) * ac) + (a))) /\ (((exists fs_u_pfc_hda_prefix fs_v_pfc_hda_prefix. ((((exists fs_h_pfc_hda_prefix_body_start. fs_h_pfc_hda_prefix_body_start + S (0) = S ((S (0)) * fs_v_pfc_hda_prefix)) /\ exists fs_q_pfc_hda_prefix_body_start. fs_u_pfc_hda_prefix = fs_q_pfc_hda_prefix_body_start * S ((S (0)) * fs_v_pfc_hda_prefix) + (0))) /\ ((((exists fs_h_pfc_hda_prefix_body_terminal. fs_h_pfc_hda_prefix_body_terminal + S (r) = S ((S (L)) * fs_v_pfc_hda_prefix)) /\ exists fs_q_pfc_hda_prefix_body_terminal. fs_u_pfc_hda_prefix = fs_q_pfc_hda_prefix_body_terminal * S ((S (L)) * fs_v_pfc_hda_prefix) + (r))) /\ forall fs_i_pfc_hda_prefix_body_steps. (exists fs_lt_pfc_hda_prefix_body_steps_bound. fs_lt_pfc_hda_prefix_body_steps_bound + S fs_i_pfc_hda_prefix_body_steps = L) -> exists fs_a_pfc_hda_prefix_body_steps fs_r_pfc_hda_prefix_body_steps fs_s_pfc_hda_prefix_body_steps. ((((exists fs_h_pfc_hda_prefix_body_steps_summand. fs_h_pfc_hda_prefix_body_steps_summand + S (fs_a_pfc_hda_prefix_body_steps) = S ((S (fs_i_pfc_hda_prefix_body_steps)) * ac)) /\ exists fs_q_pfc_hda_prefix_body_steps_summand. ab = fs_q_pfc_hda_prefix_body_steps_summand * S ((S (fs_i_pfc_hda_prefix_body_steps)) * ac) + (fs_a_pfc_hda_prefix_body_steps))) /\ ((((exists fs_h_pfc_hda_prefix_body_steps_partial. fs_h_pfc_hda_prefix_body_steps_partial + S (fs_r_pfc_hda_prefix_body_steps) = S ((S (fs_i_pfc_hda_prefix_body_steps)) * fs_v_pfc_hda_prefix)) /\ exists fs_q_pfc_hda_prefix_body_steps_partial. fs_u_pfc_hda_prefix = fs_q_pfc_hda_prefix_body_steps_partial * S ((S (fs_i_pfc_hda_prefix_body_steps)) * fs_v_pfc_hda_prefix) + (fs_r_pfc_hda_prefix_body_steps))) /\ ((((exists fs_h_pfc_hda_prefix_body_steps_successor. fs_h_pfc_hda_prefix_body_steps_successor + S (fs_s_pfc_hda_prefix_body_steps) = S ((S (S fs_i_pfc_hda_prefix_body_steps)) * fs_v_pfc_hda_prefix)) /\ exists fs_q_pfc_hda_prefix_body_steps_successor. fs_u_pfc_hda_prefix = fs_q_pfc_hda_prefix_body_steps_successor * S ((S (S fs_i_pfc_hda_prefix_body_steps)) * fs_v_pfc_hda_prefix) + (fs_s_pfc_hda_prefix_body_steps))) /\ fs_s_pfc_hda_prefix_body_steps = fs_r_pfc_hda_prefix_body_steps + fs_a_pfc_hda_prefix_body_steps)))))) /\ ((A=r+a)))))
  48. specialize beta_sum_succ_decompose (ab)
  49. specialize beta_sum_succ_decompose (ac)
  50. specialize beta_sum_succ_decompose (L)
  51. specialize beta_sum_succ_decompose (A)
  52. apply beta_sum_succ_decompose
  53. exact ha
  54. cases hda
  55. cases hda_witness
  56. cases hda_witness_witness
  57. cases hda_witness_witness_right
  58. have hdb : exists a r. ((((exists ff_h_pfp_hdb_entry. ff_h_pfp_hdb_entry + S (a) = S ((S (L)) * bc)) /\ exists ff_q_pfp_hdb_entry. bb = ff_q_pfp_hdb_entry * S ((S (L)) * bc) + (a))) /\ (((exists fs_u_pfc_hdb_prefix fs_v_pfc_hdb_prefix. ((((exists fs_h_pfc_hdb_prefix_body_start. fs_h_pfc_hdb_prefix_body_start + S (0) = S ((S (0)) * fs_v_pfc_hdb_prefix)) /\ exists fs_q_pfc_hdb_prefix_body_start. fs_u_pfc_hdb_prefix = fs_q_pfc_hdb_prefix_body_start * S ((S (0)) * fs_v_pfc_hdb_prefix) + (0))) /\ ((((exists fs_h_pfc_hdb_prefix_body_terminal. fs_h_pfc_hdb_prefix_body_terminal + S (r) = S ((S (L)) * fs_v_pfc_hdb_prefix)) /\ exists fs_q_pfc_hdb_prefix_body_terminal. fs_u_pfc_hdb_prefix = fs_q_pfc_hdb_prefix_body_terminal * S ((S (L)) * fs_v_pfc_hdb_prefix) + (r))) /\ forall fs_i_pfc_hdb_prefix_body_steps. (exists fs_lt_pfc_hdb_prefix_body_steps_bound. fs_lt_pfc_hdb_prefix_body_steps_bound + S fs_i_pfc_hdb_prefix_body_steps = L) -> exists fs_a_pfc_hdb_prefix_body_steps fs_r_pfc_hdb_prefix_body_steps fs_s_pfc_hdb_prefix_body_steps. ((((exists fs_h_pfc_hdb_prefix_body_steps_summand. fs_h_pfc_hdb_prefix_body_steps_summand + S (fs_a_pfc_hdb_prefix_body_steps) = S ((S (fs_i_pfc_hdb_prefix_body_steps)) * bc)) /\ exists fs_q_pfc_hdb_prefix_body_steps_summand. bb = fs_q_pfc_hdb_prefix_body_steps_summand * S ((S (fs_i_pfc_hdb_prefix_body_steps)) * bc) + (fs_a_pfc_hdb_prefix_body_steps))) /\ ((((exists fs_h_pfc_hdb_prefix_body_steps_partial. fs_h_pfc_hdb_prefix_body_steps_partial + S (fs_r_pfc_hdb_prefix_body_steps) = S ((S (fs_i_pfc_hdb_prefix_body_steps)) * fs_v_pfc_hdb_prefix)) /\ exists fs_q_pfc_hdb_prefix_body_steps_partial. fs_u_pfc_hdb_prefix = fs_q_pfc_hdb_prefix_body_steps_partial * S ((S (fs_i_pfc_hdb_prefix_body_steps)) * fs_v_pfc_hdb_prefix) + (fs_r_pfc_hdb_prefix_body_steps))) /\ ((((exists fs_h_pfc_hdb_prefix_body_steps_successor. fs_h_pfc_hdb_prefix_body_steps_successor + S (fs_s_pfc_hdb_prefix_body_steps) = S ((S (S fs_i_pfc_hdb_prefix_body_steps)) * fs_v_pfc_hdb_prefix)) /\ exists fs_q_pfc_hdb_prefix_body_steps_successor. fs_u_pfc_hdb_prefix = fs_q_pfc_hdb_prefix_body_steps_successor * S ((S (S fs_i_pfc_hdb_prefix_body_steps)) * fs_v_pfc_hdb_prefix) + (fs_s_pfc_hdb_prefix_body_steps))) /\ fs_s_pfc_hdb_prefix_body_steps = fs_r_pfc_hdb_prefix_body_steps + fs_a_pfc_hdb_prefix_body_steps)))))) /\ ((B=r+a)))))
  59. specialize beta_sum_succ_decompose (bb)
  60. specialize beta_sum_succ_decompose (bc)
  61. specialize beta_sum_succ_decompose (L)
  62. specialize beta_sum_succ_decompose (B)
  63. apply beta_sum_succ_decompose
  64. exact hb
  65. cases hdb
  66. cases hdb_witness
  67. cases hdb_witness_witness
  68. cases hdb_witness_witness_right
  69. have hdc : exists a r. ((((exists ff_h_pfp_hdc_entry. ff_h_pfp_hdc_entry + S (a) = S ((S (L)) * cc)) /\ exists ff_q_pfp_hdc_entry. cb = ff_q_pfp_hdc_entry * S ((S (L)) * cc) + (a))) /\ (((exists fs_u_pfc_hdc_prefix fs_v_pfc_hdc_prefix. ((((exists fs_h_pfc_hdc_prefix_body_start. fs_h_pfc_hdc_prefix_body_start + S (0) = S ((S (0)) * fs_v_pfc_hdc_prefix)) /\ exists fs_q_pfc_hdc_prefix_body_start. fs_u_pfc_hdc_prefix = fs_q_pfc_hdc_prefix_body_start * S ((S (0)) * fs_v_pfc_hdc_prefix) + (0))) /\ ((((exists fs_h_pfc_hdc_prefix_body_terminal. fs_h_pfc_hdc_prefix_body_terminal + S (r) = S ((S (L)) * fs_v_pfc_hdc_prefix)) /\ exists fs_q_pfc_hdc_prefix_body_terminal. fs_u_pfc_hdc_prefix = fs_q_pfc_hdc_prefix_body_terminal * S ((S (L)) * fs_v_pfc_hdc_prefix) + (r))) /\ forall fs_i_pfc_hdc_prefix_body_steps. (exists fs_lt_pfc_hdc_prefix_body_steps_bound. fs_lt_pfc_hdc_prefix_body_steps_bound + S fs_i_pfc_hdc_prefix_body_steps = L) -> exists fs_a_pfc_hdc_prefix_body_steps fs_r_pfc_hdc_prefix_body_steps fs_s_pfc_hdc_prefix_body_steps. ((((exists fs_h_pfc_hdc_prefix_body_steps_summand. fs_h_pfc_hdc_prefix_body_steps_summand + S (fs_a_pfc_hdc_prefix_body_steps) = S ((S (fs_i_pfc_hdc_prefix_body_steps)) * cc)) /\ exists fs_q_pfc_hdc_prefix_body_steps_summand. cb = fs_q_pfc_hdc_prefix_body_steps_summand * S ((S (fs_i_pfc_hdc_prefix_body_steps)) * cc) + (fs_a_pfc_hdc_prefix_body_steps))) /\ ((((exists fs_h_pfc_hdc_prefix_body_steps_partial. fs_h_pfc_hdc_prefix_body_steps_partial + S (fs_r_pfc_hdc_prefix_body_steps) = S ((S (fs_i_pfc_hdc_prefix_body_steps)) * fs_v_pfc_hdc_prefix)) /\ exists fs_q_pfc_hdc_prefix_body_steps_partial. fs_u_pfc_hdc_prefix = fs_q_pfc_hdc_prefix_body_steps_partial * S ((S (fs_i_pfc_hdc_prefix_body_steps)) * fs_v_pfc_hdc_prefix) + (fs_r_pfc_hdc_prefix_body_steps))) /\ ((((exists fs_h_pfc_hdc_prefix_body_steps_successor. fs_h_pfc_hdc_prefix_body_steps_successor + S (fs_s_pfc_hdc_prefix_body_steps) = S ((S (S fs_i_pfc_hdc_prefix_body_steps)) * fs_v_pfc_hdc_prefix)) /\ exists fs_q_pfc_hdc_prefix_body_steps_successor. fs_u_pfc_hdc_prefix = fs_q_pfc_hdc_prefix_body_steps_successor * S ((S (S fs_i_pfc_hdc_prefix_body_steps)) * fs_v_pfc_hdc_prefix) + (fs_s_pfc_hdc_prefix_body_steps))) /\ fs_s_pfc_hdc_prefix_body_steps = fs_r_pfc_hdc_prefix_body_steps + fs_a_pfc_hdc_prefix_body_steps)))))) /\ ((C=r+a)))))
  70. specialize beta_sum_succ_decompose (cb)
  71. specialize beta_sum_succ_decompose (cc)
  72. specialize beta_sum_succ_decompose (L)
  73. specialize beta_sum_succ_decompose (C)
  74. apply beta_sum_succ_decompose
  75. exact hc
  76. cases hdc
  77. cases hdc_witness
  78. cases hdc_witness_witness
  79. cases hdc_witness_witness_right
  80. have hprefix : exists pfa_offset_left_distribution_sum_prefix pfa_offset_right_distribution_sum_prefix. (x1+x3) + (p) * pfa_offset_left_distribution_sum_prefix = (x5) + (p) * pfa_offset_right_distribution_sum_prefix
  81. specialize IH (x1)
  82. specialize IH (x3)
  83. specialize IH (x5)
  84. apply IH
  85. exact hda_witness_witness_right_left
  86. exact hdb_witness_witness_right_left
  87. exact hdc_witness_witness_right_left
  88. intro i
  89. intro a
  90. intro b
  91. intro c
  92. intro hi
  93. intro hea
  94. intro heb
  95. intro hec
  96. specialize hpw (i)
  97. specialize hpw (a)
  98. specialize hpw (b)
  99. specialize hpw (c)
  100. apply hpw
  101. specialize le_succ (S i)
  102. specialize le_succ (L)
  103. apply le_succ
  104. exact hi
  105. exact hea
  106. exact heb
  107. exact hec
  108. have hlast : exists pfa_offset_left_distribution_sum_last pfa_offset_right_distribution_sum_last. (x+x2) + (p) * pfa_offset_left_distribution_sum_last = (x4) + (p) * pfa_offset_right_distribution_sum_last
  109. specialize hpw (L)
  110. specialize hpw (x)
  111. specialize hpw (x2)
  112. specialize hpw (x4)
  113. apply hpw
  114. specialize le_refl (S L)
  115. apply le_refl
  116. exact hda_witness_witness_left
  117. exact hdb_witness_witness_left
  118. exact hdc_witness_witness_left
  119. have hcombined : exists pfa_offset_left_distribution_sum_combined pfa_offset_right_distribution_sum_combined. ((x1+x3)+(x+x2)) + (p) * pfa_offset_left_distribution_sum_combined = (x5+x4) + (p) * pfa_offset_right_distribution_sum_combined
  120. specialize mod_eq_add (p)
  121. specialize mod_eq_add (x1+x3)
  122. specialize mod_eq_add (x5)
  123. specialize mod_eq_add (x+x2)
  124. specialize mod_eq_add (x4)
  125. apply mod_eq_add
  126. exact hprefix
  127. exact hlast
  128. have hshuffle : (x1+x)+(x3+x2)=(x1+x3)+(x+x2)
  129. trans x1+(x+(x3+x2))
  130. apply add_assoc
  131. trans x1+((x+x3)+x2)
  132. congr
  133. refl
  134. symm
  135. apply add_assoc
  136. trans x1+((x3+x)+x2)
  137. congr
  138. refl
  139. congr
  140. apply add_comm
  141. refl
  142. trans x1+(x3+(x+x2))
  143. congr
  144. refl
  145. apply add_assoc
  146. symm
  147. apply add_assoc
  148. rewrite hda_witness_witness_right_right
  149. rewrite hdb_witness_witness_right_right
  150. rewrite hdc_witness_witness_right_right
  151. rewrite hshuffle
  152. exact hcombined
prime_field_polynomial_add_entry · unchanged support, not a new admission
forall p ab ac bb bc cb cc l i a b r. (forall pfp_index_add_entry_table. (exists pfa_gap_add_entry_tableindex. pfa_gap_add_entry_tableindex + S (pfp_index_add_entry_table) = (l)) -> exists pfp_left_add_entry_table pfp_right_add_entry_table pfp_value_add_entry_table. ((((exists ff_h_pfp_add_entry_tableleft. ff_h_pfp_add_entry_tableleft + S (pfp_left_add_entry_table) = S ((S (pfp_index_add_entry_table)) * ac)) /\ exists ff_q_pfp_add_entry_tableleft. ab = ff_q_pfp_add_entry_tableleft * S ((S (pfp_index_add_entry_table)) * ac) + (pfp_left_add_entry_table))) /\ (((((exists ff_h_pfp_add_entry_tableright. ff_h_pfp_add_entry_tableright + S (pfp_right_add_entry_table) = S ((S (pfp_index_add_entry_table)) * bc)) /\ exists ff_q_pfp_add_entry_tableright. bb = ff_q_pfp_add_entry_tableright * S ((S (pfp_index_add_entry_table)) * bc) + (pfp_right_add_entry_table))) /\ (((((exists ff_h_pfp_add_entry_tabletarget. ff_h_pfp_add_entry_tabletarget + S (pfp_value_add_entry_table) = S ((S (pfp_index_add_entry_table)) * cc)) /\ exists ff_q_pfp_add_entry_tabletarget. cb = ff_q_pfp_add_entry_tabletarget * S ((S (pfp_index_add_entry_table)) * cc) + (pfp_value_add_entry_table))) /\ ((((exists pfa_gap_add_entry_tableoperationleft. pfa_gap_add_entry_tableoperationleft + S (pfp_left_add_entry_table) = (p)) /\ (((exists pfa_gap_add_entry_tableoperationright. pfa_gap_add_entry_tableoperationright + S (pfp_right_add_entry_table) = (p)) /\ ((((exists pfa_gap_add_entry_tableoperationresultbound. pfa_gap_add_entry_tableoperationresultbound + S (pfp_value_add_entry_table) = (p)) /\ ((exists pfa_offset_left_add_entry_tableoperationresultcongruence pfa_offset_right_add_entry_tableoperationresultcongruence. ((pfp_left_add_entry_table) + (pfp_right_add_entry_table)) + (p) * pfa_offset_left_add_entry_tableoperationresultcongruence = (pfp_value_add_entry_table) + (p) * pfa_offset_right_add_entry_tableoperationresultcongruence)))))))))))))))) -> (exists pfa_gap_add_entry_index. pfa_gap_add_entry_index + S (i) = (l)) -> (((exists ff_h_pfp_add_entry_input_a. ff_h_pfp_add_entry_input_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_add_entry_input_a. ab = ff_q_pfp_add_entry_input_a * S ((S (i)) * ac) + (a))) -> (((exists ff_h_pfp_add_entry_input_b. ff_h_pfp_add_entry_input_b + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_add_entry_input_b. bb = ff_q_pfp_add_entry_input_b * S ((S (i)) * bc) + (b))) -> (((exists ff_h_pfp_add_entry_output. ff_h_pfp_add_entry_output + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_add_entry_output. cb = ff_q_pfp_add_entry_output * S ((S (i)) * cc) + (r))) -> (((exists pfa_gap_add_entry_valueleft. pfa_gap_add_entry_valueleft + S (a) = (p)) /\ (((exists pfa_gap_add_entry_valueright. pfa_gap_add_entry_valueright + S (b) = (p)) /\ ((((exists pfa_gap_add_entry_valueresultbound. pfa_gap_add_entry_valueresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_add_entry_valueresultcongruence pfa_offset_right_add_entry_valueresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_add_entry_valueresultcongruence = (r) + (p) * pfa_offset_right_add_entry_valueresultcongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro l
  9. intro i
  10. intro a
  11. intro b
  12. intro r
  13. intro h
  14. intro hi
  15. intro ha
  16. intro hb
  17. intro hr
  18. have hv : exists u v w. ((((exists ff_h_pfp_add_entry_left. ff_h_pfp_add_entry_left + S (u) = S ((S (i)) * ac)) /\ exists ff_q_pfp_add_entry_left. ab = ff_q_pfp_add_entry_left * S ((S (i)) * ac) + (u))) /\ (((((exists ff_h_pfp_add_entry_right. ff_h_pfp_add_entry_right + S (v) = S ((S (i)) * bc)) /\ exists ff_q_pfp_add_entry_right. bb = ff_q_pfp_add_entry_right * S ((S (i)) * bc) + (v))) /\ (((((exists ff_h_pfp_add_entry_target. ff_h_pfp_add_entry_target + S (w) = S ((S (i)) * cc)) /\ exists ff_q_pfp_add_entry_target. cb = ff_q_pfp_add_entry_target * S ((S (i)) * cc) + (w))) /\ ((((exists pfa_gap_add_entry_operationleft. pfa_gap_add_entry_operationleft + S (u) = (p)) /\ (((exists pfa_gap_add_entry_operationright. pfa_gap_add_entry_operationright + S (v) = (p)) /\ ((((exists pfa_gap_add_entry_operationresultbound. pfa_gap_add_entry_operationresultbound + S (w) = (p)) /\ ((exists pfa_offset_left_add_entry_operationresultcongruence pfa_offset_right_add_entry_operationresultcongruence. ((u) + (v)) + (p) * pfa_offset_left_add_entry_operationresultcongruence = (w) + (p) * pfa_offset_right_add_entry_operationresultcongruence)))))))))))))))
  19. specialize h (i)
  20. apply h
  21. exact hi
  22. cases hv
  23. cases hv_witness
  24. cases hv_witness_witness
  25. cases hv_witness_witness_witness
  26. cases hv_witness_witness_witness_right
  27. cases hv_witness_witness_witness_right_right
  28. have heq0 : x=a
  29. specialize beta_at_unique (ab)
  30. specialize beta_at_unique (ac)
  31. specialize beta_at_unique (i)
  32. specialize beta_at_unique (x)
  33. specialize beta_at_unique (a)
  34. apply beta_at_unique
  35. exact hv_witness_witness_witness_left
  36. exact ha
  37. rewrite heq0 at hv_witness_witness_witness_right_right_right
  38. rewrite heq0 at hv_witness_witness_witness_right_right_right
  39. have heq1 : x1=b
  40. specialize beta_at_unique (bb)
  41. specialize beta_at_unique (bc)
  42. specialize beta_at_unique (i)
  43. specialize beta_at_unique (x1)
  44. specialize beta_at_unique (b)
  45. apply beta_at_unique
  46. exact hv_witness_witness_witness_right_left
  47. exact hb
  48. rewrite heq1 at hv_witness_witness_witness_right_right_right
  49. rewrite heq1 at hv_witness_witness_witness_right_right_right
  50. have heq2 : x2=r
  51. specialize beta_at_unique (cb)
  52. specialize beta_at_unique (cc)
  53. specialize beta_at_unique (i)
  54. specialize beta_at_unique (x2)
  55. specialize beta_at_unique (r)
  56. apply beta_at_unique
  57. exact hv_witness_witness_witness_right_right_left
  58. exact hr
  59. rewrite heq2 at hv_witness_witness_witness_right_right_right
  60. rewrite heq2 at hv_witness_witness_witness_right_right_right
  61. exact hv_witness_witness_witness_right_right_right
polynomial_zero_extended_add_congruent · unchanged support, not a new admission
forall p ab ac bb bc cb cc L i a b r. (forall pfp_index_padded_add_source. (exists pfa_gap_padded_add_sourceindex. pfa_gap_padded_add_sourceindex + S (pfp_index_padded_add_source) = (L)) -> exists pfp_left_padded_add_source pfp_right_padded_add_source pfp_value_padded_add_source. ((((exists ff_h_pfp_padded_add_sourceleft. ff_h_pfp_padded_add_sourceleft + S (pfp_left_padded_add_source) = S ((S (pfp_index_padded_add_source)) * ac)) /\ exists ff_q_pfp_padded_add_sourceleft. ab = ff_q_pfp_padded_add_sourceleft * S ((S (pfp_index_padded_add_source)) * ac) + (pfp_left_padded_add_source))) /\ (((((exists ff_h_pfp_padded_add_sourceright. ff_h_pfp_padded_add_sourceright + S (pfp_right_padded_add_source) = S ((S (pfp_index_padded_add_source)) * bc)) /\ exists ff_q_pfp_padded_add_sourceright. bb = ff_q_pfp_padded_add_sourceright * S ((S (pfp_index_padded_add_source)) * bc) + (pfp_right_padded_add_source))) /\ (((((exists ff_h_pfp_padded_add_sourcetarget. ff_h_pfp_padded_add_sourcetarget + S (pfp_value_padded_add_source) = S ((S (pfp_index_padded_add_source)) * cc)) /\ exists ff_q_pfp_padded_add_sourcetarget. cb = ff_q_pfp_padded_add_sourcetarget * S ((S (pfp_index_padded_add_source)) * cc) + (pfp_value_padded_add_source))) /\ ((((exists pfa_gap_padded_add_sourceoperationleft. pfa_gap_padded_add_sourceoperationleft + S (pfp_left_padded_add_source) = (p)) /\ (((exists pfa_gap_padded_add_sourceoperationright. pfa_gap_padded_add_sourceoperationright + S (pfp_right_padded_add_source) = (p)) /\ ((((exists pfa_gap_padded_add_sourceoperationresultbound. pfa_gap_padded_add_sourceoperationresultbound + S (pfp_value_padded_add_source) = (p)) /\ ((exists pfa_offset_left_padded_add_sourceoperationresultcongruence pfa_offset_right_padded_add_sourceoperationresultcongruence. ((pfp_left_padded_add_source) + (pfp_right_padded_add_source)) + (p) * pfa_offset_left_padded_add_sourceoperationresultcongruence = (pfp_value_padded_add_source) + (p) * pfa_offset_right_padded_add_sourceoperationresultcongruence)))))))))))))))) -> ((((exists pfa_gap_padded_add_ainside. pfa_gap_padded_add_ainside + S (i) = (L)) /\ ((((exists ff_h_pfp_padded_add_aentry. ff_h_pfp_padded_add_aentry + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_padded_add_aentry. ab = ff_q_pfp_padded_add_aentry * S ((S (i)) * ac) + (a)))))) \/ (((exists pfc_gap_padded_add_aoutside. pfc_gap_padded_add_aoutside+(L)=(i)) /\ (((a)=0))))) -> ((((exists pfa_gap_padded_add_binside. pfa_gap_padded_add_binside + S (i) = (L)) /\ ((((exists ff_h_pfp_padded_add_bentry. ff_h_pfp_padded_add_bentry + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_padded_add_bentry. bb = ff_q_pfp_padded_add_bentry * S ((S (i)) * bc) + (b)))))) \/ (((exists pfc_gap_padded_add_boutside. pfc_gap_padded_add_boutside+(L)=(i)) /\ (((b)=0))))) -> ((((exists pfa_gap_padded_add_rinside. pfa_gap_padded_add_rinside + S (i) = (L)) /\ ((((exists ff_h_pfp_padded_add_rentry. ff_h_pfp_padded_add_rentry + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_padded_add_rentry. cb = ff_q_pfp_padded_add_rentry * S ((S (i)) * cc) + (r)))))) \/ (((exists pfc_gap_padded_add_routside. pfc_gap_padded_add_routside+(L)=(i)) /\ (((r)=0))))) -> (exists pfa_offset_left_padded_add_result pfa_offset_right_padded_add_result. (a+b) + (p) * pfa_offset_left_padded_add_result = (r) + (p) * pfa_offset_right_padded_add_result)
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro i
  10. intro a
  11. intro b
  12. intro r
  13. intro hs
  14. intro ha
  15. intro hb
  16. intro hr
  17. cases ha
  18. cases ha_left
  19. have heb : ((exists ff_h_pfp_padded_add_heb. ff_h_pfp_padded_add_heb + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_padded_add_heb. bb = ff_q_pfp_padded_add_heb * S ((S (i)) * bc) + (b))
  20. specialize polynomial_zero_extended_entry_inside (bb)
  21. specialize polynomial_zero_extended_entry_inside (bc)
  22. specialize polynomial_zero_extended_entry_inside (L)
  23. specialize polynomial_zero_extended_entry_inside (i)
  24. specialize polynomial_zero_extended_entry_inside (b)
  25. apply polynomial_zero_extended_entry_inside
  26. exact ha_left_left
  27. exact hb
  28. have her : ((exists ff_h_pfp_padded_add_her. ff_h_pfp_padded_add_her + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_padded_add_her. cb = ff_q_pfp_padded_add_her * S ((S (i)) * cc) + (r))
  29. specialize polynomial_zero_extended_entry_inside (cb)
  30. specialize polynomial_zero_extended_entry_inside (cc)
  31. specialize polynomial_zero_extended_entry_inside (L)
  32. specialize polynomial_zero_extended_entry_inside (i)
  33. specialize polynomial_zero_extended_entry_inside (r)
  34. apply polynomial_zero_extended_entry_inside
  35. exact ha_left_left
  36. exact hr
  37. have hfield : ((exists pfa_gap_padded_add_inside_valueleft. pfa_gap_padded_add_inside_valueleft + S (a) = (p)) /\ (((exists pfa_gap_padded_add_inside_valueright. pfa_gap_padded_add_inside_valueright + S (b) = (p)) /\ ((((exists pfa_gap_padded_add_inside_valueresultbound. pfa_gap_padded_add_inside_valueresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_padded_add_inside_valueresultcongruence pfa_offset_right_padded_add_inside_valueresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_padded_add_inside_valueresultcongruence = (r) + (p) * pfa_offset_right_padded_add_inside_valueresultcongruence))))))))
  38. specialize prime_field_polynomial_add_entry (p)
  39. specialize prime_field_polynomial_add_entry (ab)
  40. specialize prime_field_polynomial_add_entry (ac)
  41. specialize prime_field_polynomial_add_entry (bb)
  42. specialize prime_field_polynomial_add_entry (bc)
  43. specialize prime_field_polynomial_add_entry (cb)
  44. specialize prime_field_polynomial_add_entry (cc)
  45. specialize prime_field_polynomial_add_entry (L)
  46. specialize prime_field_polynomial_add_entry (i)
  47. specialize prime_field_polynomial_add_entry (a)
  48. specialize prime_field_polynomial_add_entry (b)
  49. specialize prime_field_polynomial_add_entry (r)
  50. apply prime_field_polynomial_add_entry
  51. exact hs
  52. exact ha_left_left
  53. exact ha_left_right
  54. exact heb
  55. exact her
  56. cases hfield
  57. cases hfield_right
  58. cases hfield_right_right
  59. exact hfield_right_right_right
  60. cases ha_right
  61. have hbzero : b=0
  62. specialize polynomial_zero_extended_entry_functional (bb)
  63. specialize polynomial_zero_extended_entry_functional (bc)
  64. specialize polynomial_zero_extended_entry_functional (L)
  65. specialize polynomial_zero_extended_entry_functional (i)
  66. specialize polynomial_zero_extended_entry_functional (b)
  67. specialize polynomial_zero_extended_entry_functional (0)
  68. apply polynomial_zero_extended_entry_functional
  69. exact hb
  70. right
  71. split
  72. exact ha_right_left
  73. refl
  74. have hrzero : r=0
  75. specialize polynomial_zero_extended_entry_functional (cb)
  76. specialize polynomial_zero_extended_entry_functional (cc)
  77. specialize polynomial_zero_extended_entry_functional (L)
  78. specialize polynomial_zero_extended_entry_functional (i)
  79. specialize polynomial_zero_extended_entry_functional (r)
  80. specialize polynomial_zero_extended_entry_functional (0)
  81. apply polynomial_zero_extended_entry_functional
  82. exact hr
  83. right
  84. split
  85. exact ha_right_left
  86. refl
  87. rewrite ha_right_right
  88. rewrite hbzero
  89. rewrite hrzero
  90. exists 0
  91. exists 0
  92. simp
polynomial_diagonal_term_left_add_congruent · unchanged support, not a new admission
forall p ab ac bb bc cb cc L db dc M i j u v w. (forall pfp_index_term_add_left_source. (exists pfa_gap_term_add_left_sourceindex. pfa_gap_term_add_left_sourceindex + S (pfp_index_term_add_left_source) = (L)) -> exists pfp_left_term_add_left_source pfp_right_term_add_left_source pfp_value_term_add_left_source. ((((exists ff_h_pfp_term_add_left_sourceleft. ff_h_pfp_term_add_left_sourceleft + S (pfp_left_term_add_left_source) = S ((S (pfp_index_term_add_left_source)) * ac)) /\ exists ff_q_pfp_term_add_left_sourceleft. ab = ff_q_pfp_term_add_left_sourceleft * S ((S (pfp_index_term_add_left_source)) * ac) + (pfp_left_term_add_left_source))) /\ (((((exists ff_h_pfp_term_add_left_sourceright. ff_h_pfp_term_add_left_sourceright + S (pfp_right_term_add_left_source) = S ((S (pfp_index_term_add_left_source)) * bc)) /\ exists ff_q_pfp_term_add_left_sourceright. bb = ff_q_pfp_term_add_left_sourceright * S ((S (pfp_index_term_add_left_source)) * bc) + (pfp_right_term_add_left_source))) /\ (((((exists ff_h_pfp_term_add_left_sourcetarget. ff_h_pfp_term_add_left_sourcetarget + S (pfp_value_term_add_left_source) = S ((S (pfp_index_term_add_left_source)) * cc)) /\ exists ff_q_pfp_term_add_left_sourcetarget. cb = ff_q_pfp_term_add_left_sourcetarget * S ((S (pfp_index_term_add_left_source)) * cc) + (pfp_value_term_add_left_source))) /\ ((((exists pfa_gap_term_add_left_sourceoperationleft. pfa_gap_term_add_left_sourceoperationleft + S (pfp_left_term_add_left_source) = (p)) /\ (((exists pfa_gap_term_add_left_sourceoperationright. pfa_gap_term_add_left_sourceoperationright + S (pfp_right_term_add_left_source) = (p)) /\ ((((exists pfa_gap_term_add_left_sourceoperationresultbound. pfa_gap_term_add_left_sourceoperationresultbound + S (pfp_value_term_add_left_source) = (p)) /\ ((exists pfa_offset_left_term_add_left_sourceoperationresultcongruence pfa_offset_right_term_add_left_sourceoperationresultcongruence. ((pfp_left_term_add_left_source) + (pfp_right_term_add_left_source)) + (p) * pfa_offset_left_term_add_left_sourceoperationresultcongruence = (pfp_value_term_add_left_source) + (p) * pfa_offset_right_term_add_left_sourceoperationresultcongruence)))))))))))))))) -> (exists pfc_complement_term_add_left_u pfc_left_term_add_left_u pfc_right_term_add_left_u. (((j)+pfc_complement_term_add_left_u=(i)) /\ ((((((exists pfa_gap_term_add_left_uleftinside. pfa_gap_term_add_left_uleftinside + S (j) = (M)) /\ ((((exists ff_h_pfp_term_add_left_uleftentry. ff_h_pfp_term_add_left_uleftentry + S (pfc_left_term_add_left_u) = S ((S (j)) * dc)) /\ exists ff_q_pfp_term_add_left_uleftentry. db = ff_q_pfp_term_add_left_uleftentry * S ((S (j)) * dc) + (pfc_left_term_add_left_u)))))) \/ (((exists pfc_gap_term_add_left_uleftoutside. pfc_gap_term_add_left_uleftoutside+(M)=(j)) /\ (((pfc_left_term_add_left_u)=0))))) /\ ((((((exists pfa_gap_term_add_left_urightinside. pfa_gap_term_add_left_urightinside + S (pfc_complement_term_add_left_u) = (L)) /\ ((((exists ff_h_pfp_term_add_left_urightentry. ff_h_pfp_term_add_left_urightentry + S (pfc_right_term_add_left_u) = S ((S (pfc_complement_term_add_left_u)) * ac)) /\ exists ff_q_pfp_term_add_left_urightentry. ab = ff_q_pfp_term_add_left_urightentry * S ((S (pfc_complement_term_add_left_u)) * ac) + (pfc_right_term_add_left_u)))))) \/ (((exists pfc_gap_term_add_left_urightoutside. pfc_gap_term_add_left_urightoutside+(L)=(pfc_complement_term_add_left_u)) /\ (((pfc_right_term_add_left_u)=0))))) /\ (((u)=pfc_left_term_add_left_u*pfc_right_term_add_left_u)))))))) -> (exists pfc_complement_term_add_left_v pfc_left_term_add_left_v pfc_right_term_add_left_v. (((j)+pfc_complement_term_add_left_v=(i)) /\ ((((((exists pfa_gap_term_add_left_vleftinside. pfa_gap_term_add_left_vleftinside + S (j) = (M)) /\ ((((exists ff_h_pfp_term_add_left_vleftentry. ff_h_pfp_term_add_left_vleftentry + S (pfc_left_term_add_left_v) = S ((S (j)) * dc)) /\ exists ff_q_pfp_term_add_left_vleftentry. db = ff_q_pfp_term_add_left_vleftentry * S ((S (j)) * dc) + (pfc_left_term_add_left_v)))))) \/ (((exists pfc_gap_term_add_left_vleftoutside. pfc_gap_term_add_left_vleftoutside+(M)=(j)) /\ (((pfc_left_term_add_left_v)=0))))) /\ ((((((exists pfa_gap_term_add_left_vrightinside. pfa_gap_term_add_left_vrightinside + S (pfc_complement_term_add_left_v) = (L)) /\ ((((exists ff_h_pfp_term_add_left_vrightentry. ff_h_pfp_term_add_left_vrightentry + S (pfc_right_term_add_left_v) = S ((S (pfc_complement_term_add_left_v)) * bc)) /\ exists ff_q_pfp_term_add_left_vrightentry. bb = ff_q_pfp_term_add_left_vrightentry * S ((S (pfc_complement_term_add_left_v)) * bc) + (pfc_right_term_add_left_v)))))) \/ (((exists pfc_gap_term_add_left_vrightoutside. pfc_gap_term_add_left_vrightoutside+(L)=(pfc_complement_term_add_left_v)) /\ (((pfc_right_term_add_left_v)=0))))) /\ (((v)=pfc_left_term_add_left_v*pfc_right_term_add_left_v)))))))) -> (exists pfc_complement_term_add_left_w pfc_left_term_add_left_w pfc_right_term_add_left_w. (((j)+pfc_complement_term_add_left_w=(i)) /\ ((((((exists pfa_gap_term_add_left_wleftinside. pfa_gap_term_add_left_wleftinside + S (j) = (M)) /\ ((((exists ff_h_pfp_term_add_left_wleftentry. ff_h_pfp_term_add_left_wleftentry + S (pfc_left_term_add_left_w) = S ((S (j)) * dc)) /\ exists ff_q_pfp_term_add_left_wleftentry. db = ff_q_pfp_term_add_left_wleftentry * S ((S (j)) * dc) + (pfc_left_term_add_left_w)))))) \/ (((exists pfc_gap_term_add_left_wleftoutside. pfc_gap_term_add_left_wleftoutside+(M)=(j)) /\ (((pfc_left_term_add_left_w)=0))))) /\ ((((((exists pfa_gap_term_add_left_wrightinside. pfa_gap_term_add_left_wrightinside + S (pfc_complement_term_add_left_w) = (L)) /\ ((((exists ff_h_pfp_term_add_left_wrightentry. ff_h_pfp_term_add_left_wrightentry + S (pfc_right_term_add_left_w) = S ((S (pfc_complement_term_add_left_w)) * cc)) /\ exists ff_q_pfp_term_add_left_wrightentry. cb = ff_q_pfp_term_add_left_wrightentry * S ((S (pfc_complement_term_add_left_w)) * cc) + (pfc_right_term_add_left_w)))))) \/ (((exists pfc_gap_term_add_left_wrightoutside. pfc_gap_term_add_left_wrightoutside+(L)=(pfc_complement_term_add_left_w)) /\ (((pfc_right_term_add_left_w)=0))))) /\ (((w)=pfc_left_term_add_left_w*pfc_right_term_add_left_w)))))))) -> (exists pfa_offset_left_term_add_left_result pfa_offset_right_term_add_left_result. (u+v) + (p) * pfa_offset_left_term_add_left_result = (w) + (p) * pfa_offset_right_term_add_left_result)
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro db
  10. intro dc
  11. intro M
  12. intro i
  13. intro j
  14. intro u
  15. intro v
  16. intro w
  17. intro hs
  18. intro hu
  19. intro hv
  20. intro hw
  21. cases hu
  22. cases hu_witness
  23. cases hu_witness_witness
  24. cases hu_witness_witness_witness
  25. cases hu_witness_witness_witness_right
  26. cases hu_witness_witness_witness_right_right
  27. cases hv
  28. cases hv_witness
  29. cases hv_witness_witness
  30. cases hv_witness_witness_witness
  31. cases hv_witness_witness_witness_right
  32. cases hv_witness_witness_witness_right_right
  33. cases hw
  34. cases hw_witness
  35. cases hw_witness_witness
  36. cases hw_witness_witness_witness
  37. cases hw_witness_witness_witness_right
  38. cases hw_witness_witness_witness_right_right
  39. have hku : x=x6
  40. specialize add_left_cancel (j)
  41. specialize add_left_cancel (x)
  42. specialize add_left_cancel (x6)
  43. apply add_left_cancel
  44. trans i
  45. exact hu_witness_witness_witness_left
  46. symm
  47. exact hw_witness_witness_witness_left
  48. rewrite hku at hu_witness_witness_witness_right_right_left
  49. rewrite hku at hu_witness_witness_witness_right_right_left
  50. rewrite hku at hu_witness_witness_witness_right_right_left
  51. rewrite hku at hu_witness_witness_witness_right_right_left
  52. have hkv : x3=x6
  53. specialize add_left_cancel (j)
  54. specialize add_left_cancel (x3)
  55. specialize add_left_cancel (x6)
  56. apply add_left_cancel
  57. trans i
  58. exact hv_witness_witness_witness_left
  59. symm
  60. exact hw_witness_witness_witness_left
  61. rewrite hkv at hv_witness_witness_witness_right_right_left
  62. rewrite hkv at hv_witness_witness_witness_right_right_left
  63. rewrite hkv at hv_witness_witness_witness_right_right_left
  64. rewrite hkv at hv_witness_witness_witness_right_right_left
  65. have hfu : x1=x7
  66. specialize polynomial_zero_extended_entry_functional (db)
  67. specialize polynomial_zero_extended_entry_functional (dc)
  68. specialize polynomial_zero_extended_entry_functional (M)
  69. specialize polynomial_zero_extended_entry_functional (j)
  70. specialize polynomial_zero_extended_entry_functional (x1)
  71. specialize polynomial_zero_extended_entry_functional (x7)
  72. apply polynomial_zero_extended_entry_functional
  73. exact hu_witness_witness_witness_right_left
  74. exact hw_witness_witness_witness_right_left
  75. have hfv : x4=x7
  76. specialize polynomial_zero_extended_entry_functional (db)
  77. specialize polynomial_zero_extended_entry_functional (dc)
  78. specialize polynomial_zero_extended_entry_functional (M)
  79. specialize polynomial_zero_extended_entry_functional (j)
  80. specialize polynomial_zero_extended_entry_functional (x4)
  81. specialize polynomial_zero_extended_entry_functional (x7)
  82. apply polynomial_zero_extended_entry_functional
  83. exact hv_witness_witness_witness_right_left
  84. exact hw_witness_witness_witness_right_left
  85. have hsum : exists pfa_offset_left_term_add_left_sum pfa_offset_right_term_add_left_sum. (x2+x5) + (p) * pfa_offset_left_term_add_left_sum = (x8) + (p) * pfa_offset_right_term_add_left_sum
  86. specialize polynomial_zero_extended_add_congruent (p)
  87. specialize polynomial_zero_extended_add_congruent (ab)
  88. specialize polynomial_zero_extended_add_congruent (ac)
  89. specialize polynomial_zero_extended_add_congruent (bb)
  90. specialize polynomial_zero_extended_add_congruent (bc)
  91. specialize polynomial_zero_extended_add_congruent (cb)
  92. specialize polynomial_zero_extended_add_congruent (cc)
  93. specialize polynomial_zero_extended_add_congruent (L)
  94. specialize polynomial_zero_extended_add_congruent (x6)
  95. specialize polynomial_zero_extended_add_congruent (x2)
  96. specialize polynomial_zero_extended_add_congruent (x5)
  97. specialize polynomial_zero_extended_add_congruent (x8)
  98. apply polynomial_zero_extended_add_congruent
  99. exact hs
  100. exact hu_witness_witness_witness_right_right_left
  101. exact hv_witness_witness_witness_right_right_left
  102. exact hw_witness_witness_witness_right_right_left
  103. rewrite hu_witness_witness_witness_right_right_right
  104. rewrite hv_witness_witness_witness_right_right_right
  105. rewrite hw_witness_witness_witness_right_right_right
  106. rewrite hfu
  107. rewrite hfv
  108. have hfactor : x7*x2+x7*x5=x7*(x2+x5)
  109. symm
  110. specialize mul_add (x7)
  111. specialize mul_add (x2)
  112. specialize mul_add (x5)
  113. apply mul_add
  114. rewrite hfactor
  115. specialize mod_eq_mul_left (p)
  116. specialize mod_eq_mul_left (x2+x5)
  117. specialize mod_eq_mul_left (x8)
  118. specialize mod_eq_mul_left (x7)
  119. apply mod_eq_mul_left
  120. exact hsum
polynomial_diagonal_sum_left_add_congruent · unchanged support, not a new admission
forall p ab ac bb bc cb cc L db dc M i N ub uc vb vc wb wc u v w. (forall pfp_index_diagonal_add_left_source. (exists pfa_gap_diagonal_add_left_sourceindex. pfa_gap_diagonal_add_left_sourceindex + S (pfp_index_diagonal_add_left_source) = (L)) -> exists pfp_left_diagonal_add_left_source pfp_right_diagonal_add_left_source pfp_value_diagonal_add_left_source. ((((exists ff_h_pfp_diagonal_add_left_sourceleft. ff_h_pfp_diagonal_add_left_sourceleft + S (pfp_left_diagonal_add_left_source) = S ((S (pfp_index_diagonal_add_left_source)) * ac)) /\ exists ff_q_pfp_diagonal_add_left_sourceleft. ab = ff_q_pfp_diagonal_add_left_sourceleft * S ((S (pfp_index_diagonal_add_left_source)) * ac) + (pfp_left_diagonal_add_left_source))) /\ (((((exists ff_h_pfp_diagonal_add_left_sourceright. ff_h_pfp_diagonal_add_left_sourceright + S (pfp_right_diagonal_add_left_source) = S ((S (pfp_index_diagonal_add_left_source)) * bc)) /\ exists ff_q_pfp_diagonal_add_left_sourceright. bb = ff_q_pfp_diagonal_add_left_sourceright * S ((S (pfp_index_diagonal_add_left_source)) * bc) + (pfp_right_diagonal_add_left_source))) /\ (((((exists ff_h_pfp_diagonal_add_left_sourcetarget. ff_h_pfp_diagonal_add_left_sourcetarget + S (pfp_value_diagonal_add_left_source) = S ((S (pfp_index_diagonal_add_left_source)) * cc)) /\ exists ff_q_pfp_diagonal_add_left_sourcetarget. cb = ff_q_pfp_diagonal_add_left_sourcetarget * S ((S (pfp_index_diagonal_add_left_source)) * cc) + (pfp_value_diagonal_add_left_source))) /\ ((((exists pfa_gap_diagonal_add_left_sourceoperationleft. pfa_gap_diagonal_add_left_sourceoperationleft + S (pfp_left_diagonal_add_left_source) = (p)) /\ (((exists pfa_gap_diagonal_add_left_sourceoperationright. pfa_gap_diagonal_add_left_sourceoperationright + S (pfp_right_diagonal_add_left_source) = (p)) /\ ((((exists pfa_gap_diagonal_add_left_sourceoperationresultbound. pfa_gap_diagonal_add_left_sourceoperationresultbound + S (pfp_value_diagonal_add_left_source) = (p)) /\ ((exists pfa_offset_left_diagonal_add_left_sourceoperationresultcongruence pfa_offset_right_diagonal_add_left_sourceoperationresultcongruence. ((pfp_left_diagonal_add_left_source) + (pfp_right_diagonal_add_left_source)) + (p) * pfa_offset_left_diagonal_add_left_sourceoperationresultcongruence = (pfp_value_diagonal_add_left_source) + (p) * pfa_offset_right_diagonal_add_left_sourceoperationresultcongruence)))))))))))))))) -> (forall pfc_index_diagonal_add_left_u. (exists pfa_gap_diagonal_add_left_ubound. pfa_gap_diagonal_add_left_ubound + S (pfc_index_diagonal_add_left_u) = (N)) -> exists pfc_value_diagonal_add_left_u. ((((exists ff_h_pfp_diagonal_add_left_uentry. ff_h_pfp_diagonal_add_left_uentry + S (pfc_value_diagonal_add_left_u) = S ((S (pfc_index_diagonal_add_left_u)) * uc)) /\ exists ff_q_pfp_diagonal_add_left_uentry. ub = ff_q_pfp_diagonal_add_left_uentry * S ((S (pfc_index_diagonal_add_left_u)) * uc) + (pfc_value_diagonal_add_left_u))) /\ ((exists pfc_complement_diagonal_add_left_uterm pfc_left_diagonal_add_left_uterm pfc_right_diagonal_add_left_uterm. (((pfc_index_diagonal_add_left_u)+pfc_complement_diagonal_add_left_uterm=(i)) /\ ((((((exists pfa_gap_diagonal_add_left_utermleftinside. pfa_gap_diagonal_add_left_utermleftinside + S (pfc_index_diagonal_add_left_u) = (M)) /\ ((((exists ff_h_pfp_diagonal_add_left_utermleftentry. ff_h_pfp_diagonal_add_left_utermleftentry + S (pfc_left_diagonal_add_left_uterm) = S ((S (pfc_index_diagonal_add_left_u)) * dc)) /\ exists ff_q_pfp_diagonal_add_left_utermleftentry. db = ff_q_pfp_diagonal_add_left_utermleftentry * S ((S (pfc_index_diagonal_add_left_u)) * dc) + (pfc_left_diagonal_add_left_uterm)))))) \/ (((exists pfc_gap_diagonal_add_left_utermleftoutside. pfc_gap_diagonal_add_left_utermleftoutside+(M)=(pfc_index_diagonal_add_left_u)) /\ (((pfc_left_diagonal_add_left_uterm)=0))))) /\ ((((((exists pfa_gap_diagonal_add_left_utermrightinside. pfa_gap_diagonal_add_left_utermrightinside + S (pfc_complement_diagonal_add_left_uterm) = (L)) /\ ((((exists ff_h_pfp_diagonal_add_left_utermrightentry. ff_h_pfp_diagonal_add_left_utermrightentry + S (pfc_right_diagonal_add_left_uterm) = S ((S (pfc_complement_diagonal_add_left_uterm)) * ac)) /\ exists ff_q_pfp_diagonal_add_left_utermrightentry. ab = ff_q_pfp_diagonal_add_left_utermrightentry * S ((S (pfc_complement_diagonal_add_left_uterm)) * ac) + (pfc_right_diagonal_add_left_uterm)))))) \/ (((exists pfc_gap_diagonal_add_left_utermrightoutside. pfc_gap_diagonal_add_left_utermrightoutside+(L)=(pfc_complement_diagonal_add_left_uterm)) /\ (((pfc_right_diagonal_add_left_uterm)=0))))) /\ (((pfc_value_diagonal_add_left_u)=pfc_left_diagonal_add_left_uterm*pfc_right_diagonal_add_left_uterm))))))))))) -> (exists fs_u_pfc_diagonal_add_left_sum_u fs_v_pfc_diagonal_add_left_sum_u. ((((exists fs_h_pfc_diagonal_add_left_sum_u_body_start. fs_h_pfc_diagonal_add_left_sum_u_body_start + S (0) = S ((S (0)) * fs_v_pfc_diagonal_add_left_sum_u)) /\ exists fs_q_pfc_diagonal_add_left_sum_u_body_start. fs_u_pfc_diagonal_add_left_sum_u = fs_q_pfc_diagonal_add_left_sum_u_body_start * S ((S (0)) * fs_v_pfc_diagonal_add_left_sum_u) + (0))) /\ ((((exists fs_h_pfc_diagonal_add_left_sum_u_body_terminal. fs_h_pfc_diagonal_add_left_sum_u_body_terminal + S (u) = S ((S (N)) * fs_v_pfc_diagonal_add_left_sum_u)) /\ exists fs_q_pfc_diagonal_add_left_sum_u_body_terminal. fs_u_pfc_diagonal_add_left_sum_u = fs_q_pfc_diagonal_add_left_sum_u_body_terminal * S ((S (N)) * fs_v_pfc_diagonal_add_left_sum_u) + (u))) /\ forall fs_i_pfc_diagonal_add_left_sum_u_body_steps. (exists fs_lt_pfc_diagonal_add_left_sum_u_body_steps_bound. fs_lt_pfc_diagonal_add_left_sum_u_body_steps_bound + S fs_i_pfc_diagonal_add_left_sum_u_body_steps = N) -> exists fs_a_pfc_diagonal_add_left_sum_u_body_steps fs_r_pfc_diagonal_add_left_sum_u_body_steps fs_s_pfc_diagonal_add_left_sum_u_body_steps. ((((exists fs_h_pfc_diagonal_add_left_sum_u_body_steps_summand. fs_h_pfc_diagonal_add_left_sum_u_body_steps_summand + S (fs_a_pfc_diagonal_add_left_sum_u_body_steps) = S ((S (fs_i_pfc_diagonal_add_left_sum_u_body_steps)) * uc)) /\ exists fs_q_pfc_diagonal_add_left_sum_u_body_steps_summand. ub = fs_q_pfc_diagonal_add_left_sum_u_body_steps_summand * S ((S (fs_i_pfc_diagonal_add_left_sum_u_body_steps)) * uc) + (fs_a_pfc_diagonal_add_left_sum_u_body_steps))) /\ ((((exists fs_h_pfc_diagonal_add_left_sum_u_body_steps_partial. fs_h_pfc_diagonal_add_left_sum_u_body_steps_partial + S (fs_r_pfc_diagonal_add_left_sum_u_body_steps) = S ((S (fs_i_pfc_diagonal_add_left_sum_u_body_steps)) * fs_v_pfc_diagonal_add_left_sum_u)) /\ exists fs_q_pfc_diagonal_add_left_sum_u_body_steps_partial. fs_u_pfc_diagonal_add_left_sum_u = fs_q_pfc_diagonal_add_left_sum_u_body_steps_partial * S ((S (fs_i_pfc_diagonal_add_left_sum_u_body_steps)) * fs_v_pfc_diagonal_add_left_sum_u) + (fs_r_pfc_diagonal_add_left_sum_u_body_steps))) /\ ((((exists fs_h_pfc_diagonal_add_left_sum_u_body_steps_successor. fs_h_pfc_diagonal_add_left_sum_u_body_steps_successor + S (fs_s_pfc_diagonal_add_left_sum_u_body_steps) = S ((S (S fs_i_pfc_diagonal_add_left_sum_u_body_steps)) * fs_v_pfc_diagonal_add_left_sum_u)) /\ exists fs_q_pfc_diagonal_add_left_sum_u_body_steps_successor. fs_u_pfc_diagonal_add_left_sum_u = fs_q_pfc_diagonal_add_left_sum_u_body_steps_successor * S ((S (S fs_i_pfc_diagonal_add_left_sum_u_body_steps)) * fs_v_pfc_diagonal_add_left_sum_u) + (fs_s_pfc_diagonal_add_left_sum_u_body_steps))) /\ fs_s_pfc_diagonal_add_left_sum_u_body_steps = fs_r_pfc_diagonal_add_left_sum_u_body_steps + fs_a_pfc_diagonal_add_left_sum_u_body_steps)))))) -> (forall pfc_index_diagonal_add_left_v. (exists pfa_gap_diagonal_add_left_vbound. pfa_gap_diagonal_add_left_vbound + S (pfc_index_diagonal_add_left_v) = (N)) -> exists pfc_value_diagonal_add_left_v. ((((exists ff_h_pfp_diagonal_add_left_ventry. ff_h_pfp_diagonal_add_left_ventry + S (pfc_value_diagonal_add_left_v) = S ((S (pfc_index_diagonal_add_left_v)) * vc)) /\ exists ff_q_pfp_diagonal_add_left_ventry. vb = ff_q_pfp_diagonal_add_left_ventry * S ((S (pfc_index_diagonal_add_left_v)) * vc) + (pfc_value_diagonal_add_left_v))) /\ ((exists pfc_complement_diagonal_add_left_vterm pfc_left_diagonal_add_left_vterm pfc_right_diagonal_add_left_vterm. (((pfc_index_diagonal_add_left_v)+pfc_complement_diagonal_add_left_vterm=(i)) /\ ((((((exists pfa_gap_diagonal_add_left_vtermleftinside. pfa_gap_diagonal_add_left_vtermleftinside + S (pfc_index_diagonal_add_left_v) = (M)) /\ ((((exists ff_h_pfp_diagonal_add_left_vtermleftentry. ff_h_pfp_diagonal_add_left_vtermleftentry + S (pfc_left_diagonal_add_left_vterm) = S ((S (pfc_index_diagonal_add_left_v)) * dc)) /\ exists ff_q_pfp_diagonal_add_left_vtermleftentry. db = ff_q_pfp_diagonal_add_left_vtermleftentry * S ((S (pfc_index_diagonal_add_left_v)) * dc) + (pfc_left_diagonal_add_left_vterm)))))) \/ (((exists pfc_gap_diagonal_add_left_vtermleftoutside. pfc_gap_diagonal_add_left_vtermleftoutside+(M)=(pfc_index_diagonal_add_left_v)) /\ (((pfc_left_diagonal_add_left_vterm)=0))))) /\ ((((((exists pfa_gap_diagonal_add_left_vtermrightinside. pfa_gap_diagonal_add_left_vtermrightinside + S (pfc_complement_diagonal_add_left_vterm) = (L)) /\ ((((exists ff_h_pfp_diagonal_add_left_vtermrightentry. ff_h_pfp_diagonal_add_left_vtermrightentry + S (pfc_right_diagonal_add_left_vterm) = S ((S (pfc_complement_diagonal_add_left_vterm)) * bc)) /\ exists ff_q_pfp_diagonal_add_left_vtermrightentry. bb = ff_q_pfp_diagonal_add_left_vtermrightentry * S ((S (pfc_complement_diagonal_add_left_vterm)) * bc) + (pfc_right_diagonal_add_left_vterm)))))) \/ (((exists pfc_gap_diagonal_add_left_vtermrightoutside. pfc_gap_diagonal_add_left_vtermrightoutside+(L)=(pfc_complement_diagonal_add_left_vterm)) /\ (((pfc_right_diagonal_add_left_vterm)=0))))) /\ (((pfc_value_diagonal_add_left_v)=pfc_left_diagonal_add_left_vterm*pfc_right_diagonal_add_left_vterm))))))))))) -> (exists fs_u_pfc_diagonal_add_left_sum_v fs_v_pfc_diagonal_add_left_sum_v. ((((exists fs_h_pfc_diagonal_add_left_sum_v_body_start. fs_h_pfc_diagonal_add_left_sum_v_body_start + S (0) = S ((S (0)) * fs_v_pfc_diagonal_add_left_sum_v)) /\ exists fs_q_pfc_diagonal_add_left_sum_v_body_start. fs_u_pfc_diagonal_add_left_sum_v = fs_q_pfc_diagonal_add_left_sum_v_body_start * S ((S (0)) * fs_v_pfc_diagonal_add_left_sum_v) + (0))) /\ ((((exists fs_h_pfc_diagonal_add_left_sum_v_body_terminal. fs_h_pfc_diagonal_add_left_sum_v_body_terminal + S (v) = S ((S (N)) * fs_v_pfc_diagonal_add_left_sum_v)) /\ exists fs_q_pfc_diagonal_add_left_sum_v_body_terminal. fs_u_pfc_diagonal_add_left_sum_v = fs_q_pfc_diagonal_add_left_sum_v_body_terminal * S ((S (N)) * fs_v_pfc_diagonal_add_left_sum_v) + (v))) /\ forall fs_i_pfc_diagonal_add_left_sum_v_body_steps. (exists fs_lt_pfc_diagonal_add_left_sum_v_body_steps_bound. fs_lt_pfc_diagonal_add_left_sum_v_body_steps_bound + S fs_i_pfc_diagonal_add_left_sum_v_body_steps = N) -> exists fs_a_pfc_diagonal_add_left_sum_v_body_steps fs_r_pfc_diagonal_add_left_sum_v_body_steps fs_s_pfc_diagonal_add_left_sum_v_body_steps. ((((exists fs_h_pfc_diagonal_add_left_sum_v_body_steps_summand. fs_h_pfc_diagonal_add_left_sum_v_body_steps_summand + S (fs_a_pfc_diagonal_add_left_sum_v_body_steps) = S ((S (fs_i_pfc_diagonal_add_left_sum_v_body_steps)) * vc)) /\ exists fs_q_pfc_diagonal_add_left_sum_v_body_steps_summand. vb = fs_q_pfc_diagonal_add_left_sum_v_body_steps_summand * S ((S (fs_i_pfc_diagonal_add_left_sum_v_body_steps)) * vc) + (fs_a_pfc_diagonal_add_left_sum_v_body_steps))) /\ ((((exists fs_h_pfc_diagonal_add_left_sum_v_body_steps_partial. fs_h_pfc_diagonal_add_left_sum_v_body_steps_partial + S (fs_r_pfc_diagonal_add_left_sum_v_body_steps) = S ((S (fs_i_pfc_diagonal_add_left_sum_v_body_steps)) * fs_v_pfc_diagonal_add_left_sum_v)) /\ exists fs_q_pfc_diagonal_add_left_sum_v_body_steps_partial. fs_u_pfc_diagonal_add_left_sum_v = fs_q_pfc_diagonal_add_left_sum_v_body_steps_partial * S ((S (fs_i_pfc_diagonal_add_left_sum_v_body_steps)) * fs_v_pfc_diagonal_add_left_sum_v) + (fs_r_pfc_diagonal_add_left_sum_v_body_steps))) /\ ((((exists fs_h_pfc_diagonal_add_left_sum_v_body_steps_successor. fs_h_pfc_diagonal_add_left_sum_v_body_steps_successor + S (fs_s_pfc_diagonal_add_left_sum_v_body_steps) = S ((S (S fs_i_pfc_diagonal_add_left_sum_v_body_steps)) * fs_v_pfc_diagonal_add_left_sum_v)) /\ exists fs_q_pfc_diagonal_add_left_sum_v_body_steps_successor. fs_u_pfc_diagonal_add_left_sum_v = fs_q_pfc_diagonal_add_left_sum_v_body_steps_successor * S ((S (S fs_i_pfc_diagonal_add_left_sum_v_body_steps)) * fs_v_pfc_diagonal_add_left_sum_v) + (fs_s_pfc_diagonal_add_left_sum_v_body_steps))) /\ fs_s_pfc_diagonal_add_left_sum_v_body_steps = fs_r_pfc_diagonal_add_left_sum_v_body_steps + fs_a_pfc_diagonal_add_left_sum_v_body_steps)))))) -> (forall pfc_index_diagonal_add_left_w. (exists pfa_gap_diagonal_add_left_wbound. pfa_gap_diagonal_add_left_wbound + S (pfc_index_diagonal_add_left_w) = (N)) -> exists pfc_value_diagonal_add_left_w. ((((exists ff_h_pfp_diagonal_add_left_wentry. ff_h_pfp_diagonal_add_left_wentry + S (pfc_value_diagonal_add_left_w) = S ((S (pfc_index_diagonal_add_left_w)) * wc)) /\ exists ff_q_pfp_diagonal_add_left_wentry. wb = ff_q_pfp_diagonal_add_left_wentry * S ((S (pfc_index_diagonal_add_left_w)) * wc) + (pfc_value_diagonal_add_left_w))) /\ ((exists pfc_complement_diagonal_add_left_wterm pfc_left_diagonal_add_left_wterm pfc_right_diagonal_add_left_wterm. (((pfc_index_diagonal_add_left_w)+pfc_complement_diagonal_add_left_wterm=(i)) /\ ((((((exists pfa_gap_diagonal_add_left_wtermleftinside. pfa_gap_diagonal_add_left_wtermleftinside + S (pfc_index_diagonal_add_left_w) = (M)) /\ ((((exists ff_h_pfp_diagonal_add_left_wtermleftentry. ff_h_pfp_diagonal_add_left_wtermleftentry + S (pfc_left_diagonal_add_left_wterm) = S ((S (pfc_index_diagonal_add_left_w)) * dc)) /\ exists ff_q_pfp_diagonal_add_left_wtermleftentry. db = ff_q_pfp_diagonal_add_left_wtermleftentry * S ((S (pfc_index_diagonal_add_left_w)) * dc) + (pfc_left_diagonal_add_left_wterm)))))) \/ (((exists pfc_gap_diagonal_add_left_wtermleftoutside. pfc_gap_diagonal_add_left_wtermleftoutside+(M)=(pfc_index_diagonal_add_left_w)) /\ (((pfc_left_diagonal_add_left_wterm)=0))))) /\ ((((((exists pfa_gap_diagonal_add_left_wtermrightinside. pfa_gap_diagonal_add_left_wtermrightinside + S (pfc_complement_diagonal_add_left_wterm) = (L)) /\ ((((exists ff_h_pfp_diagonal_add_left_wtermrightentry. ff_h_pfp_diagonal_add_left_wtermrightentry + S (pfc_right_diagonal_add_left_wterm) = S ((S (pfc_complement_diagonal_add_left_wterm)) * cc)) /\ exists ff_q_pfp_diagonal_add_left_wtermrightentry. cb = ff_q_pfp_diagonal_add_left_wtermrightentry * S ((S (pfc_complement_diagonal_add_left_wterm)) * cc) + (pfc_right_diagonal_add_left_wterm)))))) \/ (((exists pfc_gap_diagonal_add_left_wtermrightoutside. pfc_gap_diagonal_add_left_wtermrightoutside+(L)=(pfc_complement_diagonal_add_left_wterm)) /\ (((pfc_right_diagonal_add_left_wterm)=0))))) /\ (((pfc_value_diagonal_add_left_w)=pfc_left_diagonal_add_left_wterm*pfc_right_diagonal_add_left_wterm))))))))))) -> (exists fs_u_pfc_diagonal_add_left_sum_w fs_v_pfc_diagonal_add_left_sum_w. ((((exists fs_h_pfc_diagonal_add_left_sum_w_body_start. fs_h_pfc_diagonal_add_left_sum_w_body_start + S (0) = S ((S (0)) * fs_v_pfc_diagonal_add_left_sum_w)) /\ exists fs_q_pfc_diagonal_add_left_sum_w_body_start. fs_u_pfc_diagonal_add_left_sum_w = fs_q_pfc_diagonal_add_left_sum_w_body_start * S ((S (0)) * fs_v_pfc_diagonal_add_left_sum_w) + (0))) /\ ((((exists fs_h_pfc_diagonal_add_left_sum_w_body_terminal. fs_h_pfc_diagonal_add_left_sum_w_body_terminal + S (w) = S ((S (N)) * fs_v_pfc_diagonal_add_left_sum_w)) /\ exists fs_q_pfc_diagonal_add_left_sum_w_body_terminal. fs_u_pfc_diagonal_add_left_sum_w = fs_q_pfc_diagonal_add_left_sum_w_body_terminal * S ((S (N)) * fs_v_pfc_diagonal_add_left_sum_w) + (w))) /\ forall fs_i_pfc_diagonal_add_left_sum_w_body_steps. (exists fs_lt_pfc_diagonal_add_left_sum_w_body_steps_bound. fs_lt_pfc_diagonal_add_left_sum_w_body_steps_bound + S fs_i_pfc_diagonal_add_left_sum_w_body_steps = N) -> exists fs_a_pfc_diagonal_add_left_sum_w_body_steps fs_r_pfc_diagonal_add_left_sum_w_body_steps fs_s_pfc_diagonal_add_left_sum_w_body_steps. ((((exists fs_h_pfc_diagonal_add_left_sum_w_body_steps_summand. fs_h_pfc_diagonal_add_left_sum_w_body_steps_summand + S (fs_a_pfc_diagonal_add_left_sum_w_body_steps) = S ((S (fs_i_pfc_diagonal_add_left_sum_w_body_steps)) * wc)) /\ exists fs_q_pfc_diagonal_add_left_sum_w_body_steps_summand. wb = fs_q_pfc_diagonal_add_left_sum_w_body_steps_summand * S ((S (fs_i_pfc_diagonal_add_left_sum_w_body_steps)) * wc) + (fs_a_pfc_diagonal_add_left_sum_w_body_steps))) /\ ((((exists fs_h_pfc_diagonal_add_left_sum_w_body_steps_partial. fs_h_pfc_diagonal_add_left_sum_w_body_steps_partial + S (fs_r_pfc_diagonal_add_left_sum_w_body_steps) = S ((S (fs_i_pfc_diagonal_add_left_sum_w_body_steps)) * fs_v_pfc_diagonal_add_left_sum_w)) /\ exists fs_q_pfc_diagonal_add_left_sum_w_body_steps_partial. fs_u_pfc_diagonal_add_left_sum_w = fs_q_pfc_diagonal_add_left_sum_w_body_steps_partial * S ((S (fs_i_pfc_diagonal_add_left_sum_w_body_steps)) * fs_v_pfc_diagonal_add_left_sum_w) + (fs_r_pfc_diagonal_add_left_sum_w_body_steps))) /\ ((((exists fs_h_pfc_diagonal_add_left_sum_w_body_steps_successor. fs_h_pfc_diagonal_add_left_sum_w_body_steps_successor + S (fs_s_pfc_diagonal_add_left_sum_w_body_steps) = S ((S (S fs_i_pfc_diagonal_add_left_sum_w_body_steps)) * fs_v_pfc_diagonal_add_left_sum_w)) /\ exists fs_q_pfc_diagonal_add_left_sum_w_body_steps_successor. fs_u_pfc_diagonal_add_left_sum_w = fs_q_pfc_diagonal_add_left_sum_w_body_steps_successor * S ((S (S fs_i_pfc_diagonal_add_left_sum_w_body_steps)) * fs_v_pfc_diagonal_add_left_sum_w) + (fs_s_pfc_diagonal_add_left_sum_w_body_steps))) /\ fs_s_pfc_diagonal_add_left_sum_w_body_steps = fs_r_pfc_diagonal_add_left_sum_w_body_steps + fs_a_pfc_diagonal_add_left_sum_w_body_steps)))))) -> (exists pfa_offset_left_diagonal_add_left_result pfa_offset_right_diagonal_add_left_result. (u+v) + (p) * pfa_offset_left_diagonal_add_left_result = (w) + (p) * pfa_offset_right_diagonal_add_left_result)
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro db
  10. intro dc
  11. intro M
  12. intro i
  13. intro N
  14. intro ub
  15. intro uc
  16. intro vb
  17. intro vc
  18. intro wb
  19. intro wc
  20. intro u
  21. intro v
  22. intro w
  23. intro hs
  24. intro hdu
  25. intro hsv
  26. intro hdv
  27. intro hsvv
  28. intro hdw
  29. intro hsw
  30. specialize beta_sum_pointwise_mod_add (p)
  31. specialize beta_sum_pointwise_mod_add (ub)
  32. specialize beta_sum_pointwise_mod_add (uc)
  33. specialize beta_sum_pointwise_mod_add (vb)
  34. specialize beta_sum_pointwise_mod_add (vc)
  35. specialize beta_sum_pointwise_mod_add (wb)
  36. specialize beta_sum_pointwise_mod_add (wc)
  37. specialize beta_sum_pointwise_mod_add (N)
  38. specialize beta_sum_pointwise_mod_add (u)
  39. specialize beta_sum_pointwise_mod_add (v)
  40. specialize beta_sum_pointwise_mod_add (w)
  41. apply beta_sum_pointwise_mod_add
  42. exact hsv
  43. exact hsvv
  44. exact hsw
  45. intro j
  46. intro a
  47. intro b
  48. intro c
  49. intro hj
  50. intro ha
  51. intro hb
  52. intro hc
  53. specialize polynomial_diagonal_term_left_add_congruent (p)
  54. specialize polynomial_diagonal_term_left_add_congruent (ab)
  55. specialize polynomial_diagonal_term_left_add_congruent (ac)
  56. specialize polynomial_diagonal_term_left_add_congruent (bb)
  57. specialize polynomial_diagonal_term_left_add_congruent (bc)
  58. specialize polynomial_diagonal_term_left_add_congruent (cb)
  59. specialize polynomial_diagonal_term_left_add_congruent (cc)
  60. specialize polynomial_diagonal_term_left_add_congruent (L)
  61. specialize polynomial_diagonal_term_left_add_congruent (db)
  62. specialize polynomial_diagonal_term_left_add_congruent (dc)
  63. specialize polynomial_diagonal_term_left_add_congruent (M)
  64. specialize polynomial_diagonal_term_left_add_congruent (i)
  65. specialize polynomial_diagonal_term_left_add_congruent (j)
  66. specialize polynomial_diagonal_term_left_add_congruent (a)
  67. specialize polynomial_diagonal_term_left_add_congruent (b)
  68. specialize polynomial_diagonal_term_left_add_congruent (c)
  69. apply polynomial_diagonal_term_left_add_congruent
  70. exact hs
  71. specialize polynomial_diagonal_prefix_entry (db)
  72. specialize polynomial_diagonal_prefix_entry (dc)
  73. specialize polynomial_diagonal_prefix_entry (M)
  74. specialize polynomial_diagonal_prefix_entry (ab)
  75. specialize polynomial_diagonal_prefix_entry (ac)
  76. specialize polynomial_diagonal_prefix_entry (L)
  77. specialize polynomial_diagonal_prefix_entry (i)
  78. specialize polynomial_diagonal_prefix_entry (ub)
  79. specialize polynomial_diagonal_prefix_entry (uc)
  80. specialize polynomial_diagonal_prefix_entry (N)
  81. specialize polynomial_diagonal_prefix_entry (j)
  82. specialize polynomial_diagonal_prefix_entry (a)
  83. apply polynomial_diagonal_prefix_entry
  84. exact hdu
  85. exact hj
  86. exact ha
  87. specialize polynomial_diagonal_prefix_entry (db)
  88. specialize polynomial_diagonal_prefix_entry (dc)
  89. specialize polynomial_diagonal_prefix_entry (M)
  90. specialize polynomial_diagonal_prefix_entry (bb)
  91. specialize polynomial_diagonal_prefix_entry (bc)
  92. specialize polynomial_diagonal_prefix_entry (L)
  93. specialize polynomial_diagonal_prefix_entry (i)
  94. specialize polynomial_diagonal_prefix_entry (vb)
  95. specialize polynomial_diagonal_prefix_entry (vc)
  96. specialize polynomial_diagonal_prefix_entry (N)
  97. specialize polynomial_diagonal_prefix_entry (j)
  98. specialize polynomial_diagonal_prefix_entry (b)
  99. apply polynomial_diagonal_prefix_entry
  100. exact hdv
  101. exact hj
  102. exact hb
  103. specialize polynomial_diagonal_prefix_entry (db)
  104. specialize polynomial_diagonal_prefix_entry (dc)
  105. specialize polynomial_diagonal_prefix_entry (M)
  106. specialize polynomial_diagonal_prefix_entry (cb)
  107. specialize polynomial_diagonal_prefix_entry (cc)
  108. specialize polynomial_diagonal_prefix_entry (L)
  109. specialize polynomial_diagonal_prefix_entry (i)
  110. specialize polynomial_diagonal_prefix_entry (wb)
  111. specialize polynomial_diagonal_prefix_entry (wc)
  112. specialize polynomial_diagonal_prefix_entry (N)
  113. specialize polynomial_diagonal_prefix_entry (j)
  114. specialize polynomial_diagonal_prefix_entry (c)
  115. apply polynomial_diagonal_prefix_entry
  116. exact hdw
  117. exact hj
  118. exact hc
prime_field_convolution_coefficient_left_add · unchanged support, not a new admission
forall p ab ac bb bc cb cc L db dc M i u v w. (forall pfp_index_coefficient_add_left_source. (exists pfa_gap_coefficient_add_left_sourceindex. pfa_gap_coefficient_add_left_sourceindex + S (pfp_index_coefficient_add_left_source) = (L)) -> exists pfp_left_coefficient_add_left_source pfp_right_coefficient_add_left_source pfp_value_coefficient_add_left_source. ((((exists ff_h_pfp_coefficient_add_left_sourceleft. ff_h_pfp_coefficient_add_left_sourceleft + S (pfp_left_coefficient_add_left_source) = S ((S (pfp_index_coefficient_add_left_source)) * ac)) /\ exists ff_q_pfp_coefficient_add_left_sourceleft. ab = ff_q_pfp_coefficient_add_left_sourceleft * S ((S (pfp_index_coefficient_add_left_source)) * ac) + (pfp_left_coefficient_add_left_source))) /\ (((((exists ff_h_pfp_coefficient_add_left_sourceright. ff_h_pfp_coefficient_add_left_sourceright + S (pfp_right_coefficient_add_left_source) = S ((S (pfp_index_coefficient_add_left_source)) * bc)) /\ exists ff_q_pfp_coefficient_add_left_sourceright. bb = ff_q_pfp_coefficient_add_left_sourceright * S ((S (pfp_index_coefficient_add_left_source)) * bc) + (pfp_right_coefficient_add_left_source))) /\ (((((exists ff_h_pfp_coefficient_add_left_sourcetarget. ff_h_pfp_coefficient_add_left_sourcetarget + S (pfp_value_coefficient_add_left_source) = S ((S (pfp_index_coefficient_add_left_source)) * cc)) /\ exists ff_q_pfp_coefficient_add_left_sourcetarget. cb = ff_q_pfp_coefficient_add_left_sourcetarget * S ((S (pfp_index_coefficient_add_left_source)) * cc) + (pfp_value_coefficient_add_left_source))) /\ ((((exists pfa_gap_coefficient_add_left_sourceoperationleft. pfa_gap_coefficient_add_left_sourceoperationleft + S (pfp_left_coefficient_add_left_source) = (p)) /\ (((exists pfa_gap_coefficient_add_left_sourceoperationright. pfa_gap_coefficient_add_left_sourceoperationright + S (pfp_right_coefficient_add_left_source) = (p)) /\ ((((exists pfa_gap_coefficient_add_left_sourceoperationresultbound. pfa_gap_coefficient_add_left_sourceoperationresultbound + S (pfp_value_coefficient_add_left_source) = (p)) /\ ((exists pfa_offset_left_coefficient_add_left_sourceoperationresultcongruence pfa_offset_right_coefficient_add_left_sourceoperationresultcongruence. ((pfp_left_coefficient_add_left_source) + (pfp_right_coefficient_add_left_source)) + (p) * pfa_offset_left_coefficient_add_left_sourceoperationresultcongruence = (pfp_value_coefficient_add_left_source) + (p) * pfa_offset_right_coefficient_add_left_sourceoperationresultcongruence)))))))))))))))) -> (exists pfc_terms_code_coefficient_add_left_u pfc_terms_scale_coefficient_add_left_u pfc_natural_sum_coefficient_add_left_u. ((forall pfc_index_coefficient_add_left_udiagonal. (exists pfa_gap_coefficient_add_left_udiagonalbound. pfa_gap_coefficient_add_left_udiagonalbound + S (pfc_index_coefficient_add_left_udiagonal) = (S (i))) -> exists pfc_value_coefficient_add_left_udiagonal. ((((exists ff_h_pfp_coefficient_add_left_udiagonalentry. ff_h_pfp_coefficient_add_left_udiagonalentry + S (pfc_value_coefficient_add_left_udiagonal) = S ((S (pfc_index_coefficient_add_left_udiagonal)) * pfc_terms_scale_coefficient_add_left_u)) /\ exists ff_q_pfp_coefficient_add_left_udiagonalentry. pfc_terms_code_coefficient_add_left_u = ff_q_pfp_coefficient_add_left_udiagonalentry * S ((S (pfc_index_coefficient_add_left_udiagonal)) * pfc_terms_scale_coefficient_add_left_u) + (pfc_value_coefficient_add_left_udiagonal))) /\ ((exists pfc_complement_coefficient_add_left_udiagonalterm pfc_left_coefficient_add_left_udiagonalterm pfc_right_coefficient_add_left_udiagonalterm. (((pfc_index_coefficient_add_left_udiagonal)+pfc_complement_coefficient_add_left_udiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_add_left_udiagonaltermleftinside. pfa_gap_coefficient_add_left_udiagonaltermleftinside + S (pfc_index_coefficient_add_left_udiagonal) = (M)) /\ ((((exists ff_h_pfp_coefficient_add_left_udiagonaltermleftentry. ff_h_pfp_coefficient_add_left_udiagonaltermleftentry + S (pfc_left_coefficient_add_left_udiagonalterm) = S ((S (pfc_index_coefficient_add_left_udiagonal)) * dc)) /\ exists ff_q_pfp_coefficient_add_left_udiagonaltermleftentry. db = ff_q_pfp_coefficient_add_left_udiagonaltermleftentry * S ((S (pfc_index_coefficient_add_left_udiagonal)) * dc) + (pfc_left_coefficient_add_left_udiagonalterm)))))) \/ (((exists pfc_gap_coefficient_add_left_udiagonaltermleftoutside. pfc_gap_coefficient_add_left_udiagonaltermleftoutside+(M)=(pfc_index_coefficient_add_left_udiagonal)) /\ (((pfc_left_coefficient_add_left_udiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_add_left_udiagonaltermrightinside. pfa_gap_coefficient_add_left_udiagonaltermrightinside + S (pfc_complement_coefficient_add_left_udiagonalterm) = (L)) /\ ((((exists ff_h_pfp_coefficient_add_left_udiagonaltermrightentry. ff_h_pfp_coefficient_add_left_udiagonaltermrightentry + S (pfc_right_coefficient_add_left_udiagonalterm) = S ((S (pfc_complement_coefficient_add_left_udiagonalterm)) * ac)) /\ exists ff_q_pfp_coefficient_add_left_udiagonaltermrightentry. ab = ff_q_pfp_coefficient_add_left_udiagonaltermrightentry * S ((S (pfc_complement_coefficient_add_left_udiagonalterm)) * ac) + (pfc_right_coefficient_add_left_udiagonalterm)))))) \/ (((exists pfc_gap_coefficient_add_left_udiagonaltermrightoutside. pfc_gap_coefficient_add_left_udiagonaltermrightoutside+(L)=(pfc_complement_coefficient_add_left_udiagonalterm)) /\ (((pfc_right_coefficient_add_left_udiagonalterm)=0))))) /\ (((pfc_value_coefficient_add_left_udiagonal)=pfc_left_coefficient_add_left_udiagonalterm*pfc_right_coefficient_add_left_udiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_add_left_usum fs_v_pfc_coefficient_add_left_usum. ((((exists fs_h_pfc_coefficient_add_left_usum_body_start. fs_h_pfc_coefficient_add_left_usum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_add_left_usum)) /\ exists fs_q_pfc_coefficient_add_left_usum_body_start. fs_u_pfc_coefficient_add_left_usum = fs_q_pfc_coefficient_add_left_usum_body_start * S ((S (0)) * fs_v_pfc_coefficient_add_left_usum) + (0))) /\ ((((exists fs_h_pfc_coefficient_add_left_usum_body_terminal. fs_h_pfc_coefficient_add_left_usum_body_terminal + S (pfc_natural_sum_coefficient_add_left_u) = S ((S (S (i))) * fs_v_pfc_coefficient_add_left_usum)) /\ exists fs_q_pfc_coefficient_add_left_usum_body_terminal. fs_u_pfc_coefficient_add_left_usum = fs_q_pfc_coefficient_add_left_usum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_add_left_usum) + (pfc_natural_sum_coefficient_add_left_u))) /\ forall fs_i_pfc_coefficient_add_left_usum_body_steps. (exists fs_lt_pfc_coefficient_add_left_usum_body_steps_bound. fs_lt_pfc_coefficient_add_left_usum_body_steps_bound + S fs_i_pfc_coefficient_add_left_usum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_add_left_usum_body_steps fs_r_pfc_coefficient_add_left_usum_body_steps fs_s_pfc_coefficient_add_left_usum_body_steps. ((((exists fs_h_pfc_coefficient_add_left_usum_body_steps_summand. fs_h_pfc_coefficient_add_left_usum_body_steps_summand + S (fs_a_pfc_coefficient_add_left_usum_body_steps) = S ((S (fs_i_pfc_coefficient_add_left_usum_body_steps)) * pfc_terms_scale_coefficient_add_left_u)) /\ exists fs_q_pfc_coefficient_add_left_usum_body_steps_summand. pfc_terms_code_coefficient_add_left_u = fs_q_pfc_coefficient_add_left_usum_body_steps_summand * S ((S (fs_i_pfc_coefficient_add_left_usum_body_steps)) * pfc_terms_scale_coefficient_add_left_u) + (fs_a_pfc_coefficient_add_left_usum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_add_left_usum_body_steps_partial. fs_h_pfc_coefficient_add_left_usum_body_steps_partial + S (fs_r_pfc_coefficient_add_left_usum_body_steps) = S ((S (fs_i_pfc_coefficient_add_left_usum_body_steps)) * fs_v_pfc_coefficient_add_left_usum)) /\ exists fs_q_pfc_coefficient_add_left_usum_body_steps_partial. fs_u_pfc_coefficient_add_left_usum = fs_q_pfc_coefficient_add_left_usum_body_steps_partial * S ((S (fs_i_pfc_coefficient_add_left_usum_body_steps)) * fs_v_pfc_coefficient_add_left_usum) + (fs_r_pfc_coefficient_add_left_usum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_add_left_usum_body_steps_successor. fs_h_pfc_coefficient_add_left_usum_body_steps_successor + S (fs_s_pfc_coefficient_add_left_usum_body_steps) = S ((S (S fs_i_pfc_coefficient_add_left_usum_body_steps)) * fs_v_pfc_coefficient_add_left_usum)) /\ exists fs_q_pfc_coefficient_add_left_usum_body_steps_successor. fs_u_pfc_coefficient_add_left_usum = fs_q_pfc_coefficient_add_left_usum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_add_left_usum_body_steps)) * fs_v_pfc_coefficient_add_left_usum) + (fs_s_pfc_coefficient_add_left_usum_body_steps))) /\ fs_s_pfc_coefficient_add_left_usum_body_steps = fs_r_pfc_coefficient_add_left_usum_body_steps + fs_a_pfc_coefficient_add_left_usum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_add_left_uresiduebound. pfa_gap_coefficient_add_left_uresiduebound + S (u) = (p)) /\ ((exists pfa_offset_left_coefficient_add_left_uresiduecongruence pfa_offset_right_coefficient_add_left_uresiduecongruence. (pfc_natural_sum_coefficient_add_left_u) + (p) * pfa_offset_left_coefficient_add_left_uresiduecongruence = (u) + (p) * pfa_offset_right_coefficient_add_left_uresiduecongruence))))))))) -> (exists pfc_terms_code_coefficient_add_left_v pfc_terms_scale_coefficient_add_left_v pfc_natural_sum_coefficient_add_left_v. ((forall pfc_index_coefficient_add_left_vdiagonal. (exists pfa_gap_coefficient_add_left_vdiagonalbound. pfa_gap_coefficient_add_left_vdiagonalbound + S (pfc_index_coefficient_add_left_vdiagonal) = (S (i))) -> exists pfc_value_coefficient_add_left_vdiagonal. ((((exists ff_h_pfp_coefficient_add_left_vdiagonalentry. ff_h_pfp_coefficient_add_left_vdiagonalentry + S (pfc_value_coefficient_add_left_vdiagonal) = S ((S (pfc_index_coefficient_add_left_vdiagonal)) * pfc_terms_scale_coefficient_add_left_v)) /\ exists ff_q_pfp_coefficient_add_left_vdiagonalentry. pfc_terms_code_coefficient_add_left_v = ff_q_pfp_coefficient_add_left_vdiagonalentry * S ((S (pfc_index_coefficient_add_left_vdiagonal)) * pfc_terms_scale_coefficient_add_left_v) + (pfc_value_coefficient_add_left_vdiagonal))) /\ ((exists pfc_complement_coefficient_add_left_vdiagonalterm pfc_left_coefficient_add_left_vdiagonalterm pfc_right_coefficient_add_left_vdiagonalterm. (((pfc_index_coefficient_add_left_vdiagonal)+pfc_complement_coefficient_add_left_vdiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_add_left_vdiagonaltermleftinside. pfa_gap_coefficient_add_left_vdiagonaltermleftinside + S (pfc_index_coefficient_add_left_vdiagonal) = (M)) /\ ((((exists ff_h_pfp_coefficient_add_left_vdiagonaltermleftentry. ff_h_pfp_coefficient_add_left_vdiagonaltermleftentry + S (pfc_left_coefficient_add_left_vdiagonalterm) = S ((S (pfc_index_coefficient_add_left_vdiagonal)) * dc)) /\ exists ff_q_pfp_coefficient_add_left_vdiagonaltermleftentry. db = ff_q_pfp_coefficient_add_left_vdiagonaltermleftentry * S ((S (pfc_index_coefficient_add_left_vdiagonal)) * dc) + (pfc_left_coefficient_add_left_vdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_add_left_vdiagonaltermleftoutside. pfc_gap_coefficient_add_left_vdiagonaltermleftoutside+(M)=(pfc_index_coefficient_add_left_vdiagonal)) /\ (((pfc_left_coefficient_add_left_vdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_add_left_vdiagonaltermrightinside. pfa_gap_coefficient_add_left_vdiagonaltermrightinside + S (pfc_complement_coefficient_add_left_vdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_coefficient_add_left_vdiagonaltermrightentry. ff_h_pfp_coefficient_add_left_vdiagonaltermrightentry + S (pfc_right_coefficient_add_left_vdiagonalterm) = S ((S (pfc_complement_coefficient_add_left_vdiagonalterm)) * bc)) /\ exists ff_q_pfp_coefficient_add_left_vdiagonaltermrightentry. bb = ff_q_pfp_coefficient_add_left_vdiagonaltermrightentry * S ((S (pfc_complement_coefficient_add_left_vdiagonalterm)) * bc) + (pfc_right_coefficient_add_left_vdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_add_left_vdiagonaltermrightoutside. pfc_gap_coefficient_add_left_vdiagonaltermrightoutside+(L)=(pfc_complement_coefficient_add_left_vdiagonalterm)) /\ (((pfc_right_coefficient_add_left_vdiagonalterm)=0))))) /\ (((pfc_value_coefficient_add_left_vdiagonal)=pfc_left_coefficient_add_left_vdiagonalterm*pfc_right_coefficient_add_left_vdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_add_left_vsum fs_v_pfc_coefficient_add_left_vsum. ((((exists fs_h_pfc_coefficient_add_left_vsum_body_start. fs_h_pfc_coefficient_add_left_vsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_add_left_vsum)) /\ exists fs_q_pfc_coefficient_add_left_vsum_body_start. fs_u_pfc_coefficient_add_left_vsum = fs_q_pfc_coefficient_add_left_vsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_add_left_vsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_add_left_vsum_body_terminal. fs_h_pfc_coefficient_add_left_vsum_body_terminal + S (pfc_natural_sum_coefficient_add_left_v) = S ((S (S (i))) * fs_v_pfc_coefficient_add_left_vsum)) /\ exists fs_q_pfc_coefficient_add_left_vsum_body_terminal. fs_u_pfc_coefficient_add_left_vsum = fs_q_pfc_coefficient_add_left_vsum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_add_left_vsum) + (pfc_natural_sum_coefficient_add_left_v))) /\ forall fs_i_pfc_coefficient_add_left_vsum_body_steps. (exists fs_lt_pfc_coefficient_add_left_vsum_body_steps_bound. fs_lt_pfc_coefficient_add_left_vsum_body_steps_bound + S fs_i_pfc_coefficient_add_left_vsum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_add_left_vsum_body_steps fs_r_pfc_coefficient_add_left_vsum_body_steps fs_s_pfc_coefficient_add_left_vsum_body_steps. ((((exists fs_h_pfc_coefficient_add_left_vsum_body_steps_summand. fs_h_pfc_coefficient_add_left_vsum_body_steps_summand + S (fs_a_pfc_coefficient_add_left_vsum_body_steps) = S ((S (fs_i_pfc_coefficient_add_left_vsum_body_steps)) * pfc_terms_scale_coefficient_add_left_v)) /\ exists fs_q_pfc_coefficient_add_left_vsum_body_steps_summand. pfc_terms_code_coefficient_add_left_v = fs_q_pfc_coefficient_add_left_vsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_add_left_vsum_body_steps)) * pfc_terms_scale_coefficient_add_left_v) + (fs_a_pfc_coefficient_add_left_vsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_add_left_vsum_body_steps_partial. fs_h_pfc_coefficient_add_left_vsum_body_steps_partial + S (fs_r_pfc_coefficient_add_left_vsum_body_steps) = S ((S (fs_i_pfc_coefficient_add_left_vsum_body_steps)) * fs_v_pfc_coefficient_add_left_vsum)) /\ exists fs_q_pfc_coefficient_add_left_vsum_body_steps_partial. fs_u_pfc_coefficient_add_left_vsum = fs_q_pfc_coefficient_add_left_vsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_add_left_vsum_body_steps)) * fs_v_pfc_coefficient_add_left_vsum) + (fs_r_pfc_coefficient_add_left_vsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_add_left_vsum_body_steps_successor. fs_h_pfc_coefficient_add_left_vsum_body_steps_successor + S (fs_s_pfc_coefficient_add_left_vsum_body_steps) = S ((S (S fs_i_pfc_coefficient_add_left_vsum_body_steps)) * fs_v_pfc_coefficient_add_left_vsum)) /\ exists fs_q_pfc_coefficient_add_left_vsum_body_steps_successor. fs_u_pfc_coefficient_add_left_vsum = fs_q_pfc_coefficient_add_left_vsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_add_left_vsum_body_steps)) * fs_v_pfc_coefficient_add_left_vsum) + (fs_s_pfc_coefficient_add_left_vsum_body_steps))) /\ fs_s_pfc_coefficient_add_left_vsum_body_steps = fs_r_pfc_coefficient_add_left_vsum_body_steps + fs_a_pfc_coefficient_add_left_vsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_add_left_vresiduebound. pfa_gap_coefficient_add_left_vresiduebound + S (v) = (p)) /\ ((exists pfa_offset_left_coefficient_add_left_vresiduecongruence pfa_offset_right_coefficient_add_left_vresiduecongruence. (pfc_natural_sum_coefficient_add_left_v) + (p) * pfa_offset_left_coefficient_add_left_vresiduecongruence = (v) + (p) * pfa_offset_right_coefficient_add_left_vresiduecongruence))))))))) -> (exists pfc_terms_code_coefficient_add_left_w pfc_terms_scale_coefficient_add_left_w pfc_natural_sum_coefficient_add_left_w. ((forall pfc_index_coefficient_add_left_wdiagonal. (exists pfa_gap_coefficient_add_left_wdiagonalbound. pfa_gap_coefficient_add_left_wdiagonalbound + S (pfc_index_coefficient_add_left_wdiagonal) = (S (i))) -> exists pfc_value_coefficient_add_left_wdiagonal. ((((exists ff_h_pfp_coefficient_add_left_wdiagonalentry. ff_h_pfp_coefficient_add_left_wdiagonalentry + S (pfc_value_coefficient_add_left_wdiagonal) = S ((S (pfc_index_coefficient_add_left_wdiagonal)) * pfc_terms_scale_coefficient_add_left_w)) /\ exists ff_q_pfp_coefficient_add_left_wdiagonalentry. pfc_terms_code_coefficient_add_left_w = ff_q_pfp_coefficient_add_left_wdiagonalentry * S ((S (pfc_index_coefficient_add_left_wdiagonal)) * pfc_terms_scale_coefficient_add_left_w) + (pfc_value_coefficient_add_left_wdiagonal))) /\ ((exists pfc_complement_coefficient_add_left_wdiagonalterm pfc_left_coefficient_add_left_wdiagonalterm pfc_right_coefficient_add_left_wdiagonalterm. (((pfc_index_coefficient_add_left_wdiagonal)+pfc_complement_coefficient_add_left_wdiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_add_left_wdiagonaltermleftinside. pfa_gap_coefficient_add_left_wdiagonaltermleftinside + S (pfc_index_coefficient_add_left_wdiagonal) = (M)) /\ ((((exists ff_h_pfp_coefficient_add_left_wdiagonaltermleftentry. ff_h_pfp_coefficient_add_left_wdiagonaltermleftentry + S (pfc_left_coefficient_add_left_wdiagonalterm) = S ((S (pfc_index_coefficient_add_left_wdiagonal)) * dc)) /\ exists ff_q_pfp_coefficient_add_left_wdiagonaltermleftentry. db = ff_q_pfp_coefficient_add_left_wdiagonaltermleftentry * S ((S (pfc_index_coefficient_add_left_wdiagonal)) * dc) + (pfc_left_coefficient_add_left_wdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_add_left_wdiagonaltermleftoutside. pfc_gap_coefficient_add_left_wdiagonaltermleftoutside+(M)=(pfc_index_coefficient_add_left_wdiagonal)) /\ (((pfc_left_coefficient_add_left_wdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_add_left_wdiagonaltermrightinside. pfa_gap_coefficient_add_left_wdiagonaltermrightinside + S (pfc_complement_coefficient_add_left_wdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_coefficient_add_left_wdiagonaltermrightentry. ff_h_pfp_coefficient_add_left_wdiagonaltermrightentry + S (pfc_right_coefficient_add_left_wdiagonalterm) = S ((S (pfc_complement_coefficient_add_left_wdiagonalterm)) * cc)) /\ exists ff_q_pfp_coefficient_add_left_wdiagonaltermrightentry. cb = ff_q_pfp_coefficient_add_left_wdiagonaltermrightentry * S ((S (pfc_complement_coefficient_add_left_wdiagonalterm)) * cc) + (pfc_right_coefficient_add_left_wdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_add_left_wdiagonaltermrightoutside. pfc_gap_coefficient_add_left_wdiagonaltermrightoutside+(L)=(pfc_complement_coefficient_add_left_wdiagonalterm)) /\ (((pfc_right_coefficient_add_left_wdiagonalterm)=0))))) /\ (((pfc_value_coefficient_add_left_wdiagonal)=pfc_left_coefficient_add_left_wdiagonalterm*pfc_right_coefficient_add_left_wdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_add_left_wsum fs_v_pfc_coefficient_add_left_wsum. ((((exists fs_h_pfc_coefficient_add_left_wsum_body_start. fs_h_pfc_coefficient_add_left_wsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_add_left_wsum)) /\ exists fs_q_pfc_coefficient_add_left_wsum_body_start. fs_u_pfc_coefficient_add_left_wsum = fs_q_pfc_coefficient_add_left_wsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_add_left_wsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_add_left_wsum_body_terminal. fs_h_pfc_coefficient_add_left_wsum_body_terminal + S (pfc_natural_sum_coefficient_add_left_w) = S ((S (S (i))) * fs_v_pfc_coefficient_add_left_wsum)) /\ exists fs_q_pfc_coefficient_add_left_wsum_body_terminal. fs_u_pfc_coefficient_add_left_wsum = fs_q_pfc_coefficient_add_left_wsum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_add_left_wsum) + (pfc_natural_sum_coefficient_add_left_w))) /\ forall fs_i_pfc_coefficient_add_left_wsum_body_steps. (exists fs_lt_pfc_coefficient_add_left_wsum_body_steps_bound. fs_lt_pfc_coefficient_add_left_wsum_body_steps_bound + S fs_i_pfc_coefficient_add_left_wsum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_add_left_wsum_body_steps fs_r_pfc_coefficient_add_left_wsum_body_steps fs_s_pfc_coefficient_add_left_wsum_body_steps. ((((exists fs_h_pfc_coefficient_add_left_wsum_body_steps_summand. fs_h_pfc_coefficient_add_left_wsum_body_steps_summand + S (fs_a_pfc_coefficient_add_left_wsum_body_steps) = S ((S (fs_i_pfc_coefficient_add_left_wsum_body_steps)) * pfc_terms_scale_coefficient_add_left_w)) /\ exists fs_q_pfc_coefficient_add_left_wsum_body_steps_summand. pfc_terms_code_coefficient_add_left_w = fs_q_pfc_coefficient_add_left_wsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_add_left_wsum_body_steps)) * pfc_terms_scale_coefficient_add_left_w) + (fs_a_pfc_coefficient_add_left_wsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_add_left_wsum_body_steps_partial. fs_h_pfc_coefficient_add_left_wsum_body_steps_partial + S (fs_r_pfc_coefficient_add_left_wsum_body_steps) = S ((S (fs_i_pfc_coefficient_add_left_wsum_body_steps)) * fs_v_pfc_coefficient_add_left_wsum)) /\ exists fs_q_pfc_coefficient_add_left_wsum_body_steps_partial. fs_u_pfc_coefficient_add_left_wsum = fs_q_pfc_coefficient_add_left_wsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_add_left_wsum_body_steps)) * fs_v_pfc_coefficient_add_left_wsum) + (fs_r_pfc_coefficient_add_left_wsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_add_left_wsum_body_steps_successor. fs_h_pfc_coefficient_add_left_wsum_body_steps_successor + S (fs_s_pfc_coefficient_add_left_wsum_body_steps) = S ((S (S fs_i_pfc_coefficient_add_left_wsum_body_steps)) * fs_v_pfc_coefficient_add_left_wsum)) /\ exists fs_q_pfc_coefficient_add_left_wsum_body_steps_successor. fs_u_pfc_coefficient_add_left_wsum = fs_q_pfc_coefficient_add_left_wsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_add_left_wsum_body_steps)) * fs_v_pfc_coefficient_add_left_wsum) + (fs_s_pfc_coefficient_add_left_wsum_body_steps))) /\ fs_s_pfc_coefficient_add_left_wsum_body_steps = fs_r_pfc_coefficient_add_left_wsum_body_steps + fs_a_pfc_coefficient_add_left_wsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_add_left_wresiduebound. pfa_gap_coefficient_add_left_wresiduebound + S (w) = (p)) /\ ((exists pfa_offset_left_coefficient_add_left_wresiduecongruence pfa_offset_right_coefficient_add_left_wresiduecongruence. (pfc_natural_sum_coefficient_add_left_w) + (p) * pfa_offset_left_coefficient_add_left_wresiduecongruence = (w) + (p) * pfa_offset_right_coefficient_add_left_wresiduecongruence))))))))) -> (((exists pfa_gap_coefficient_add_left_resultleft. pfa_gap_coefficient_add_left_resultleft + S (u) = (p)) /\ (((exists pfa_gap_coefficient_add_left_resultright. pfa_gap_coefficient_add_left_resultright + S (v) = (p)) /\ ((((exists pfa_gap_coefficient_add_left_resultresultbound. pfa_gap_coefficient_add_left_resultresultbound + S (w) = (p)) /\ ((exists pfa_offset_left_coefficient_add_left_resultresultcongruence pfa_offset_right_coefficient_add_left_resultresultcongruence. ((u) + (v)) + (p) * pfa_offset_left_coefficient_add_left_resultresultcongruence = (w) + (p) * pfa_offset_right_coefficient_add_left_resultresultcongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro db
  10. intro dc
  11. intro M
  12. intro i
  13. intro u
  14. intro v
  15. intro w
  16. intro hs
  17. intro hu
  18. intro hv
  19. intro hw
  20. cases hu
  21. cases hu_witness
  22. cases hu_witness_witness
  23. cases hu_witness_witness_witness
  24. cases hu_witness_witness_witness_right
  25. cases hv
  26. cases hv_witness
  27. cases hv_witness_witness
  28. cases hv_witness_witness_witness
  29. cases hv_witness_witness_witness_right
  30. cases hw
  31. cases hw_witness
  32. cases hw_witness_witness
  33. cases hw_witness_witness_witness
  34. cases hw_witness_witness_witness_right
  35. have hsum : exists pfa_offset_left_coefficient_add_left_sum pfa_offset_right_coefficient_add_left_sum. (x2+x5) + (p) * pfa_offset_left_coefficient_add_left_sum = (x8) + (p) * pfa_offset_right_coefficient_add_left_sum
  36. specialize polynomial_diagonal_sum_left_add_congruent (p)
  37. specialize polynomial_diagonal_sum_left_add_congruent (ab)
  38. specialize polynomial_diagonal_sum_left_add_congruent (ac)
  39. specialize polynomial_diagonal_sum_left_add_congruent (bb)
  40. specialize polynomial_diagonal_sum_left_add_congruent (bc)
  41. specialize polynomial_diagonal_sum_left_add_congruent (cb)
  42. specialize polynomial_diagonal_sum_left_add_congruent (cc)
  43. specialize polynomial_diagonal_sum_left_add_congruent (L)
  44. specialize polynomial_diagonal_sum_left_add_congruent (db)
  45. specialize polynomial_diagonal_sum_left_add_congruent (dc)
  46. specialize polynomial_diagonal_sum_left_add_congruent (M)
  47. specialize polynomial_diagonal_sum_left_add_congruent (i)
  48. specialize polynomial_diagonal_sum_left_add_congruent (S i)
  49. specialize polynomial_diagonal_sum_left_add_congruent (x)
  50. specialize polynomial_diagonal_sum_left_add_congruent (x1)
  51. specialize polynomial_diagonal_sum_left_add_congruent (x3)
  52. specialize polynomial_diagonal_sum_left_add_congruent (x4)
  53. specialize polynomial_diagonal_sum_left_add_congruent (x6)
  54. specialize polynomial_diagonal_sum_left_add_congruent (x7)
  55. specialize polynomial_diagonal_sum_left_add_congruent (x2)
  56. specialize polynomial_diagonal_sum_left_add_congruent (x5)
  57. specialize polynomial_diagonal_sum_left_add_congruent (x8)
  58. apply polynomial_diagonal_sum_left_add_congruent
  59. exact hs
  60. exact hu_witness_witness_witness_left
  61. exact hu_witness_witness_witness_right_left
  62. exact hv_witness_witness_witness_left
  63. exact hv_witness_witness_witness_right_left
  64. exact hw_witness_witness_witness_left
  65. exact hw_witness_witness_witness_right_left
  66. cases hu_witness_witness_witness_right_right
  67. cases hv_witness_witness_witness_right_right
  68. cases hw_witness_witness_witness_right_right
  69. have hraw : exists pfa_offset_left_coefficient_add_left_raw pfa_offset_right_coefficient_add_left_raw. (x2+x5) + (p) * pfa_offset_left_coefficient_add_left_raw = (w) + (p) * pfa_offset_right_coefficient_add_left_raw
  70. specialize mod_eq_trans (p)
  71. specialize mod_eq_trans (x2+x5)
  72. specialize mod_eq_trans (x8)
  73. specialize mod_eq_trans (w)
  74. apply mod_eq_trans
  75. exact hsum
  76. exact hw_witness_witness_witness_right_right_right
  77. split
  78. exact hu_witness_witness_witness_right_right_left
  79. split
  80. exact hv_witness_witness_witness_right_right_left
  81. split
  82. exact hw_witness_witness_witness_right_right_left
  83. specialize mod_eq_trans (p)
  84. specialize mod_eq_trans (u+v)
  85. specialize mod_eq_trans (x2+x5)
  86. specialize mod_eq_trans (w)
  87. apply mod_eq_trans
  88. specialize mod_eq_symm (p)
  89. specialize mod_eq_symm (x2+x5)
  90. specialize mod_eq_symm (u+v)
  91. apply mod_eq_symm
  92. specialize mod_eq_add (p)
  93. specialize mod_eq_add (x2)
  94. specialize mod_eq_add (u)
  95. specialize mod_eq_add (x5)
  96. specialize mod_eq_add (v)
  97. apply mod_eq_add
  98. exact hu_witness_witness_witness_right_right_right
  99. exact hv_witness_witness_witness_right_right_right
  100. exact hraw
prime_field_polynomial_left_pad_index_cases · unchanged support, not a new admission
forall t L i. (exists pfa_gap_index_cases_bound. pfa_gap_index_cases_bound + S (i) = (t+L)) -> (exists pfa_gap_index_cases_zero. pfa_gap_index_cases_zero + S (i) = (t)) \/ exists j. (((exists pfa_gap_index_cases_copy. pfa_gap_index_cases_copy + S (j) = (L)) /\ ((i=t+j))))
  1. intro t
  2. intro L
  3. intro i
  4. intro hi
  5. have ho : (exists pfrep_gap_index_case_ge. pfrep_gap_index_case_ge+(t)=(i)) \/ (exists pfa_gap_index_case_lt. pfa_gap_index_case_lt + S (i) = (t))
  6. specialize le_or_lt (t)
  7. specialize le_or_lt (i)
  8. apply le_or_lt
  9. cases ho
  10. cases ho_left
  11. have heq : t+x=i
  12. trans x+t
  13. apply add_comm
  14. exact ho_left_witness
  15. right
  16. exists x
  17. split
  18. cases hi
  19. exists x1
  20. specialize add_left_cancel (t)
  21. specialize add_left_cancel (x1+S x)
  22. specialize add_left_cancel (L)
  23. apply add_left_cancel
  24. trans x1+S (t+x)
  25. simp [add_comm,add_assoc]
  26. rewrite heq
  27. exact hi_witness
  28. symm
  29. exact heq
  30. left
  31. exact ho_right
prime_field_polynomial_left_pad_bounded · unchanged support, not a new admission
forall p b c L t d e. (~((p) = 1) /\ forall pfa_factor_left_left_pad_bounded_prime pfa_factor_right_left_pad_bounded_prime. (p) = pfa_factor_left_left_pad_bounded_prime * pfa_factor_right_left_pad_bounded_prime -> pfa_factor_left_left_pad_bounded_prime = 1 \/ pfa_factor_right_left_pad_bounded_prime = 1) -> (forall fom_index_pfp_left_pad_bounded_source. (exists fom_gap_pfp_left_pad_bounded_source_index_bound. fom_gap_pfp_left_pad_bounded_source_index_bound + S (fom_index_pfp_left_pad_bounded_source) = L) -> exists fom_value_pfp_left_pad_bounded_source. ((((exists fom_beta_height_pfp_left_pad_bounded_source_entry. fom_beta_height_pfp_left_pad_bounded_source_entry + S (fom_value_pfp_left_pad_bounded_source) = S ((S (fom_index_pfp_left_pad_bounded_source)) * c)) /\ exists fom_beta_quotient_pfp_left_pad_bounded_source_entry. b = fom_beta_quotient_pfp_left_pad_bounded_source_entry * S ((S (fom_index_pfp_left_pad_bounded_source)) * c) + (fom_value_pfp_left_pad_bounded_source))) /\ (exists fom_gap_pfp_left_pad_bounded_source_value_bound. fom_gap_pfp_left_pad_bounded_source_value_bound + S (fom_value_pfp_left_pad_bounded_source) = p))) -> (((forall pfp_repeat_index_left_pad_bounded_graphzeros. (exists pfa_gap_left_pad_bounded_graphzerosindex. pfa_gap_left_pad_bounded_graphzerosindex + S (pfp_repeat_index_left_pad_bounded_graphzeros) = (t)) -> (((exists ff_h_pfp_left_pad_bounded_graphzerosentry. ff_h_pfp_left_pad_bounded_graphzerosentry + S (0) = S ((S (pfp_repeat_index_left_pad_bounded_graphzeros)) * e)) /\ exists ff_q_pfp_left_pad_bounded_graphzerosentry. d = ff_q_pfp_left_pad_bounded_graphzerosentry * S ((S (pfp_repeat_index_left_pad_bounded_graphzeros)) * e) + (0)))) /\ ((forall pfrep_index_left_pad_bounded_graph pfrep_value_left_pad_bounded_graph. (exists pfa_gap_left_pad_bounded_graphbound. pfa_gap_left_pad_bounded_graphbound + S (pfrep_index_left_pad_bounded_graph) = (L)) -> (((exists ff_h_pfp_left_pad_bounded_graphinput. ff_h_pfp_left_pad_bounded_graphinput + S (pfrep_value_left_pad_bounded_graph) = S ((S (pfrep_index_left_pad_bounded_graph)) * c)) /\ exists ff_q_pfp_left_pad_bounded_graphinput. b = ff_q_pfp_left_pad_bounded_graphinput * S ((S (pfrep_index_left_pad_bounded_graph)) * c) + (pfrep_value_left_pad_bounded_graph))) -> (((exists ff_h_pfp_left_pad_bounded_graphoutput. ff_h_pfp_left_pad_bounded_graphoutput + S (pfrep_value_left_pad_bounded_graph) = S ((S ((t)+pfrep_index_left_pad_bounded_graph)) * e)) /\ exists ff_q_pfp_left_pad_bounded_graphoutput. d = ff_q_pfp_left_pad_bounded_graphoutput * S ((S ((t)+pfrep_index_left_pad_bounded_graph)) * e) + (pfrep_value_left_pad_bounded_graph))))))) -> (forall fom_index_pfp_left_pad_bounded_target. (exists fom_gap_pfp_left_pad_bounded_target_index_bound. fom_gap_pfp_left_pad_bounded_target_index_bound + S (fom_index_pfp_left_pad_bounded_target) = t+L) -> exists fom_value_pfp_left_pad_bounded_target. ((((exists fom_beta_height_pfp_left_pad_bounded_target_entry. fom_beta_height_pfp_left_pad_bounded_target_entry + S (fom_value_pfp_left_pad_bounded_target) = S ((S (fom_index_pfp_left_pad_bounded_target)) * e)) /\ exists fom_beta_quotient_pfp_left_pad_bounded_target_entry. d = fom_beta_quotient_pfp_left_pad_bounded_target_entry * S ((S (fom_index_pfp_left_pad_bounded_target)) * e) + (fom_value_pfp_left_pad_bounded_target))) /\ (exists fom_gap_pfp_left_pad_bounded_target_value_bound. fom_gap_pfp_left_pad_bounded_target_value_bound + S (fom_value_pfp_left_pad_bounded_target) = p)))
  1. intro p
  2. intro b
  3. intro c
  4. intro L
  5. intro t
  6. intro d
  7. intro e
  8. intro hp
  9. intro hc
  10. intro h
  11. intro i
  12. intro hi
  13. cases h
  14. have ho : (exists pfa_gap_left_pad_bound_zero. pfa_gap_left_pad_bound_zero + S (i) = (t)) \/ exists j. (((exists pfa_gap_left_pad_bound_source. pfa_gap_left_pad_bound_source + S (j) = (L)) /\ ((i=t+j))))
  15. specialize prime_field_polynomial_left_pad_index_cases (t)
  16. specialize prime_field_polynomial_left_pad_index_cases (L)
  17. specialize prime_field_polynomial_left_pad_index_cases (i)
  18. apply prime_field_polynomial_left_pad_index_cases
  19. exact hi
  20. cases ho
  21. exists 0
  22. split
  23. specialize h_left (i)
  24. apply h_left
  25. exact ho_left
  26. specialize prime_field_zero_below_prime (p)
  27. apply prime_field_zero_below_prime
  28. exact hp
  29. cases ho_right
  30. cases ho_right_witness
  31. have hv : exists a. (((((exists ff_h_pfp_left_pad_bound_entry. ff_h_pfp_left_pad_bound_entry + S (a) = S ((S (x)) * c)) /\ exists ff_q_pfp_left_pad_bound_entry. b = ff_q_pfp_left_pad_bound_entry * S ((S (x)) * c) + (a))) /\ ((exists pfa_gap_left_pad_bound_value. pfa_gap_left_pad_bound_value + S (a) = (p)))))
  32. specialize hc (x)
  33. apply hc
  34. exact ho_right_witness_left
  35. cases hv
  36. cases hv_witness
  37. exists x1
  38. split
  39. rewrite ho_right_witness_right
  40. rewrite ho_right_witness_right
  41. specialize h_right (x)
  42. specialize h_right (x1)
  43. apply h_right
  44. exact ho_right_witness_left
  45. exact hv_witness_left
  46. exact hv_witness_right
prime_field_polynomial_add_from_normalization · unchanged support, not a new admission
forall p ab ac bb bc rb rc cb cc l. (forall fom_index_pfp_add_source_a. (exists fom_gap_pfp_add_source_a_index_bound. fom_gap_pfp_add_source_a_index_bound + S (fom_index_pfp_add_source_a) = l) -> exists fom_value_pfp_add_source_a. ((((exists fom_beta_height_pfp_add_source_a_entry. fom_beta_height_pfp_add_source_a_entry + S (fom_value_pfp_add_source_a) = S ((S (fom_index_pfp_add_source_a)) * ac)) /\ exists fom_beta_quotient_pfp_add_source_a_entry. ab = fom_beta_quotient_pfp_add_source_a_entry * S ((S (fom_index_pfp_add_source_a)) * ac) + (fom_value_pfp_add_source_a))) /\ (exists fom_gap_pfp_add_source_a_value_bound. fom_gap_pfp_add_source_a_value_bound + S (fom_value_pfp_add_source_a) = p))) -> (forall fom_index_pfp_add_source_b. (exists fom_gap_pfp_add_source_b_index_bound. fom_gap_pfp_add_source_b_index_bound + S (fom_index_pfp_add_source_b) = l) -> exists fom_value_pfp_add_source_b. ((((exists fom_beta_height_pfp_add_source_b_entry. fom_beta_height_pfp_add_source_b_entry + S (fom_value_pfp_add_source_b) = S ((S (fom_index_pfp_add_source_b)) * bc)) /\ exists fom_beta_quotient_pfp_add_source_b_entry. bb = fom_beta_quotient_pfp_add_source_b_entry * S ((S (fom_index_pfp_add_source_b)) * bc) + (fom_value_pfp_add_source_b))) /\ (exists fom_gap_pfp_add_source_b_value_bound. fom_gap_pfp_add_source_b_value_bound + S (fom_value_pfp_add_source_b) = p))) -> (forall ff_index_mcp_add_pfp_add_raw ff_left_mcp_add_pfp_add_raw ff_right_mcp_add_pfp_add_raw ff_target_mcp_add_pfp_add_raw. (exists mcp_gap_pfp_add_raw_bound. mcp_gap_pfp_add_raw_bound + S (ff_index_mcp_add_pfp_add_raw) = (l)) -> (((exists fs_h_mcp_pfp_add_raw_left. fs_h_mcp_pfp_add_raw_left + S (ff_left_mcp_add_pfp_add_raw) = S ((S (ff_index_mcp_add_pfp_add_raw)) * ac)) /\ exists fs_q_mcp_pfp_add_raw_left. ab = fs_q_mcp_pfp_add_raw_left * S ((S (ff_index_mcp_add_pfp_add_raw)) * ac) + (ff_left_mcp_add_pfp_add_raw))) -> (((exists fs_h_mcp_pfp_add_raw_right. fs_h_mcp_pfp_add_raw_right + S (ff_right_mcp_add_pfp_add_raw) = S ((S (ff_index_mcp_add_pfp_add_raw)) * bc)) /\ exists fs_q_mcp_pfp_add_raw_right. bb = fs_q_mcp_pfp_add_raw_right * S ((S (ff_index_mcp_add_pfp_add_raw)) * bc) + (ff_right_mcp_add_pfp_add_raw))) -> (((exists fs_h_mcp_pfp_add_raw_target. fs_h_mcp_pfp_add_raw_target + S (ff_target_mcp_add_pfp_add_raw) = S ((S (ff_index_mcp_add_pfp_add_raw)) * rc)) /\ exists fs_q_mcp_pfp_add_raw_target. rb = fs_q_mcp_pfp_add_raw_target * S ((S (ff_index_mcp_add_pfp_add_raw)) * rc) + (ff_target_mcp_add_pfp_add_raw))) -> ff_target_mcp_add_pfp_add_raw = ff_left_mcp_add_pfp_add_raw + ff_right_mcp_add_pfp_add_raw) -> (forall pfp_index_add_normalize. (exists pfa_gap_add_normalizeindex. pfa_gap_add_normalizeindex + S (pfp_index_add_normalize) = (l)) -> exists pfp_source_add_normalize pfp_residue_add_normalize. ((((exists ff_h_pfp_add_normalizesource. ff_h_pfp_add_normalizesource + S (pfp_source_add_normalize) = S ((S (pfp_index_add_normalize)) * rc)) /\ exists ff_q_pfp_add_normalizesource. rb = ff_q_pfp_add_normalizesource * S ((S (pfp_index_add_normalize)) * rc) + (pfp_source_add_normalize))) /\ (((((exists ff_h_pfp_add_normalizetarget. ff_h_pfp_add_normalizetarget + S (pfp_residue_add_normalize) = S ((S (pfp_index_add_normalize)) * cc)) /\ exists ff_q_pfp_add_normalizetarget. cb = ff_q_pfp_add_normalizetarget * S ((S (pfp_index_add_normalize)) * cc) + (pfp_residue_add_normalize))) /\ ((((exists pfa_gap_add_normalizeresiduebound. pfa_gap_add_normalizeresiduebound + S (pfp_residue_add_normalize) = (p)) /\ ((exists pfa_offset_left_add_normalizeresiduecongruence pfa_offset_right_add_normalizeresiduecongruence. (pfp_source_add_normalize) + (p) * pfa_offset_left_add_normalizeresiduecongruence = (pfp_residue_add_normalize) + (p) * pfa_offset_right_add_normalizeresiduecongruence))))))))) -> (forall pfp_index_add_result. (exists pfa_gap_add_resultindex. pfa_gap_add_resultindex + S (pfp_index_add_result) = (l)) -> exists pfp_left_add_result pfp_right_add_result pfp_value_add_result. ((((exists ff_h_pfp_add_resultleft. ff_h_pfp_add_resultleft + S (pfp_left_add_result) = S ((S (pfp_index_add_result)) * ac)) /\ exists ff_q_pfp_add_resultleft. ab = ff_q_pfp_add_resultleft * S ((S (pfp_index_add_result)) * ac) + (pfp_left_add_result))) /\ (((((exists ff_h_pfp_add_resultright. ff_h_pfp_add_resultright + S (pfp_right_add_result) = S ((S (pfp_index_add_result)) * bc)) /\ exists ff_q_pfp_add_resultright. bb = ff_q_pfp_add_resultright * S ((S (pfp_index_add_result)) * bc) + (pfp_right_add_result))) /\ (((((exists ff_h_pfp_add_resulttarget. ff_h_pfp_add_resulttarget + S (pfp_value_add_result) = S ((S (pfp_index_add_result)) * cc)) /\ exists ff_q_pfp_add_resulttarget. cb = ff_q_pfp_add_resulttarget * S ((S (pfp_index_add_result)) * cc) + (pfp_value_add_result))) /\ ((((exists pfa_gap_add_resultoperationleft. pfa_gap_add_resultoperationleft + S (pfp_left_add_result) = (p)) /\ (((exists pfa_gap_add_resultoperationright. pfa_gap_add_resultoperationright + S (pfp_right_add_result) = (p)) /\ ((((exists pfa_gap_add_resultoperationresultbound. pfa_gap_add_resultoperationresultbound + S (pfp_value_add_result) = (p)) /\ ((exists pfa_offset_left_add_resultoperationresultcongruence pfa_offset_right_add_resultoperationresultcongruence. ((pfp_left_add_result) + (pfp_right_add_result)) + (p) * pfa_offset_left_add_resultoperationresultcongruence = (pfp_value_add_result) + (p) * pfa_offset_right_add_resultoperationresultcongruence))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro rb
  7. intro rc
  8. intro cb
  9. intro cc
  10. intro l
  11. intro ha
  12. intro hb
  13. intro hs
  14. intro hn
  15. intro i
  16. intro hi
  17. have hva : exists a. ((((exists ff_h_pfp_add_chosen_a. ff_h_pfp_add_chosen_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_add_chosen_a. ab = ff_q_pfp_add_chosen_a * S ((S (i)) * ac) + (a))) /\ ((exists pfa_gap_add_chosen_a_bound. pfa_gap_add_chosen_a_bound + S (a) = (p))))
  18. specialize ha (i)
  19. apply ha
  20. exact hi
  21. cases hva
  22. cases hva_witness
  23. have hvb : exists b. ((((exists ff_h_pfp_add_chosen_b. ff_h_pfp_add_chosen_b + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_add_chosen_b. bb = ff_q_pfp_add_chosen_b * S ((S (i)) * bc) + (b))) /\ ((exists pfa_gap_add_chosen_b_bound. pfa_gap_add_chosen_b_bound + S (b) = (p))))
  24. specialize hb (i)
  25. apply hb
  26. exact hi
  27. cases hvb
  28. cases hvb_witness
  29. have hvn : exists s r. ((((exists ff_h_pfp_add_chosen_sum. ff_h_pfp_add_chosen_sum + S (s) = S ((S (i)) * rc)) /\ exists ff_q_pfp_add_chosen_sum. rb = ff_q_pfp_add_chosen_sum * S ((S (i)) * rc) + (s))) /\ (((((exists ff_h_pfp_add_chosen_residue. ff_h_pfp_add_chosen_residue + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_add_chosen_residue. cb = ff_q_pfp_add_chosen_residue * S ((S (i)) * cc) + (r))) /\ ((((exists pfa_gap_add_chosen_reductionbound. pfa_gap_add_chosen_reductionbound + S (r) = (p)) /\ ((exists pfa_offset_left_add_chosen_reductioncongruence pfa_offset_right_add_chosen_reductioncongruence. (s) + (p) * pfa_offset_left_add_chosen_reductioncongruence = (r) + (p) * pfa_offset_right_add_chosen_reductioncongruence))))))))
  30. specialize hn (i)
  31. apply hn
  32. exact hi
  33. cases hvn
  34. cases hvn_witness
  35. cases hvn_witness_witness
  36. cases hvn_witness_witness_right
  37. exists x
  38. exists x1
  39. exists x3
  40. split
  41. exact hva_witness_left
  42. split
  43. exact hvb_witness_left
  44. split
  45. exact hvn_witness_witness_right_left
  46. split
  47. exact hva_witness_right
  48. split
  49. exact hvb_witness_right
  50. specialize prime_field_residue_input_equal (p)
  51. specialize prime_field_residue_input_equal (x+x1)
  52. specialize prime_field_residue_input_equal (x2)
  53. specialize prime_field_residue_input_equal (x3)
  54. apply prime_field_residue_input_equal
  55. symm
  56. specialize hs (i)
  57. specialize hs (x)
  58. specialize hs (x1)
  59. specialize hs (x2)
  60. apply hs
  61. exact hi
  62. exact hva_witness_left
  63. exact hvb_witness_left
  64. exact hvn_witness_witness_left
  65. exact hvn_witness_witness_right_right
prime_field_polynomial_add_exists · unchanged support, not a new admission
forall p ab ac bb bc l. ~(p=0) -> (forall fom_index_pfp_add_exists_a. (exists fom_gap_pfp_add_exists_a_index_bound. fom_gap_pfp_add_exists_a_index_bound + S (fom_index_pfp_add_exists_a) = l) -> exists fom_value_pfp_add_exists_a. ((((exists fom_beta_height_pfp_add_exists_a_entry. fom_beta_height_pfp_add_exists_a_entry + S (fom_value_pfp_add_exists_a) = S ((S (fom_index_pfp_add_exists_a)) * ac)) /\ exists fom_beta_quotient_pfp_add_exists_a_entry. ab = fom_beta_quotient_pfp_add_exists_a_entry * S ((S (fom_index_pfp_add_exists_a)) * ac) + (fom_value_pfp_add_exists_a))) /\ (exists fom_gap_pfp_add_exists_a_value_bound. fom_gap_pfp_add_exists_a_value_bound + S (fom_value_pfp_add_exists_a) = p))) -> (forall fom_index_pfp_add_exists_b. (exists fom_gap_pfp_add_exists_b_index_bound. fom_gap_pfp_add_exists_b_index_bound + S (fom_index_pfp_add_exists_b) = l) -> exists fom_value_pfp_add_exists_b. ((((exists fom_beta_height_pfp_add_exists_b_entry. fom_beta_height_pfp_add_exists_b_entry + S (fom_value_pfp_add_exists_b) = S ((S (fom_index_pfp_add_exists_b)) * bc)) /\ exists fom_beta_quotient_pfp_add_exists_b_entry. bb = fom_beta_quotient_pfp_add_exists_b_entry * S ((S (fom_index_pfp_add_exists_b)) * bc) + (fom_value_pfp_add_exists_b))) /\ (exists fom_gap_pfp_add_exists_b_value_bound. fom_gap_pfp_add_exists_b_value_bound + S (fom_value_pfp_add_exists_b) = p))) -> exists cb cc. (forall pfp_index_add_exists_result. (exists pfa_gap_add_exists_resultindex. pfa_gap_add_exists_resultindex + S (pfp_index_add_exists_result) = (l)) -> exists pfp_left_add_exists_result pfp_right_add_exists_result pfp_value_add_exists_result. ((((exists ff_h_pfp_add_exists_resultleft. ff_h_pfp_add_exists_resultleft + S (pfp_left_add_exists_result) = S ((S (pfp_index_add_exists_result)) * ac)) /\ exists ff_q_pfp_add_exists_resultleft. ab = ff_q_pfp_add_exists_resultleft * S ((S (pfp_index_add_exists_result)) * ac) + (pfp_left_add_exists_result))) /\ (((((exists ff_h_pfp_add_exists_resultright. ff_h_pfp_add_exists_resultright + S (pfp_right_add_exists_result) = S ((S (pfp_index_add_exists_result)) * bc)) /\ exists ff_q_pfp_add_exists_resultright. bb = ff_q_pfp_add_exists_resultright * S ((S (pfp_index_add_exists_result)) * bc) + (pfp_right_add_exists_result))) /\ (((((exists ff_h_pfp_add_exists_resulttarget. ff_h_pfp_add_exists_resulttarget + S (pfp_value_add_exists_result) = S ((S (pfp_index_add_exists_result)) * cc)) /\ exists ff_q_pfp_add_exists_resulttarget. cb = ff_q_pfp_add_exists_resulttarget * S ((S (pfp_index_add_exists_result)) * cc) + (pfp_value_add_exists_result))) /\ ((((exists pfa_gap_add_exists_resultoperationleft. pfa_gap_add_exists_resultoperationleft + S (pfp_left_add_exists_result) = (p)) /\ (((exists pfa_gap_add_exists_resultoperationright. pfa_gap_add_exists_resultoperationright + S (pfp_right_add_exists_result) = (p)) /\ ((((exists pfa_gap_add_exists_resultoperationresultbound. pfa_gap_add_exists_resultoperationresultbound + S (pfp_value_add_exists_result) = (p)) /\ ((exists pfa_offset_left_add_exists_resultoperationresultcongruence pfa_offset_right_add_exists_resultoperationresultcongruence. ((pfp_left_add_exists_result) + (pfp_right_add_exists_result)) + (p) * pfa_offset_left_add_exists_resultoperationresultcongruence = (pfp_value_add_exists_result) + (p) * pfa_offset_right_add_exists_resultoperationresultcongruence))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro l
  7. intro hp
  8. intro ha
  9. intro hb
  10. have hs : exists rb rc. (forall ff_index_mcp_add_pfp_add_exists_raw ff_left_mcp_add_pfp_add_exists_raw ff_right_mcp_add_pfp_add_exists_raw ff_target_mcp_add_pfp_add_exists_raw. (exists mcp_gap_pfp_add_exists_raw_bound. mcp_gap_pfp_add_exists_raw_bound + S (ff_index_mcp_add_pfp_add_exists_raw) = (l)) -> (((exists fs_h_mcp_pfp_add_exists_raw_left. fs_h_mcp_pfp_add_exists_raw_left + S (ff_left_mcp_add_pfp_add_exists_raw) = S ((S (ff_index_mcp_add_pfp_add_exists_raw)) * ac)) /\ exists fs_q_mcp_pfp_add_exists_raw_left. ab = fs_q_mcp_pfp_add_exists_raw_left * S ((S (ff_index_mcp_add_pfp_add_exists_raw)) * ac) + (ff_left_mcp_add_pfp_add_exists_raw))) -> (((exists fs_h_mcp_pfp_add_exists_raw_right. fs_h_mcp_pfp_add_exists_raw_right + S (ff_right_mcp_add_pfp_add_exists_raw) = S ((S (ff_index_mcp_add_pfp_add_exists_raw)) * bc)) /\ exists fs_q_mcp_pfp_add_exists_raw_right. bb = fs_q_mcp_pfp_add_exists_raw_right * S ((S (ff_index_mcp_add_pfp_add_exists_raw)) * bc) + (ff_right_mcp_add_pfp_add_exists_raw))) -> (((exists fs_h_mcp_pfp_add_exists_raw_target. fs_h_mcp_pfp_add_exists_raw_target + S (ff_target_mcp_add_pfp_add_exists_raw) = S ((S (ff_index_mcp_add_pfp_add_exists_raw)) * rc)) /\ exists fs_q_mcp_pfp_add_exists_raw_target. rb = fs_q_mcp_pfp_add_exists_raw_target * S ((S (ff_index_mcp_add_pfp_add_exists_raw)) * rc) + (ff_target_mcp_add_pfp_add_exists_raw))) -> ff_target_mcp_add_pfp_add_exists_raw = ff_left_mcp_add_pfp_add_exists_raw + ff_right_mcp_add_pfp_add_exists_raw)
  11. specialize beta_pointwise_add_prefix_exists (ab)
  12. specialize beta_pointwise_add_prefix_exists (ac)
  13. specialize beta_pointwise_add_prefix_exists (bb)
  14. specialize beta_pointwise_add_prefix_exists (bc)
  15. specialize beta_pointwise_add_prefix_exists (l)
  16. apply beta_pointwise_add_prefix_exists
  17. cases hs
  18. cases hs_witness
  19. have hn : exists cb cc. (forall pfp_index_add_exists_normalization. (exists pfa_gap_add_exists_normalizationindex. pfa_gap_add_exists_normalizationindex + S (pfp_index_add_exists_normalization) = (l)) -> exists pfp_source_add_exists_normalization pfp_residue_add_exists_normalization. ((((exists ff_h_pfp_add_exists_normalizationsource. ff_h_pfp_add_exists_normalizationsource + S (pfp_source_add_exists_normalization) = S ((S (pfp_index_add_exists_normalization)) * x1)) /\ exists ff_q_pfp_add_exists_normalizationsource. x = ff_q_pfp_add_exists_normalizationsource * S ((S (pfp_index_add_exists_normalization)) * x1) + (pfp_source_add_exists_normalization))) /\ (((((exists ff_h_pfp_add_exists_normalizationtarget. ff_h_pfp_add_exists_normalizationtarget + S (pfp_residue_add_exists_normalization) = S ((S (pfp_index_add_exists_normalization)) * cc)) /\ exists ff_q_pfp_add_exists_normalizationtarget. cb = ff_q_pfp_add_exists_normalizationtarget * S ((S (pfp_index_add_exists_normalization)) * cc) + (pfp_residue_add_exists_normalization))) /\ ((((exists pfa_gap_add_exists_normalizationresiduebound. pfa_gap_add_exists_normalizationresiduebound + S (pfp_residue_add_exists_normalization) = (p)) /\ ((exists pfa_offset_left_add_exists_normalizationresiduecongruence pfa_offset_right_add_exists_normalizationresiduecongruence. (pfp_source_add_exists_normalization) + (p) * pfa_offset_left_add_exists_normalizationresiduecongruence = (pfp_residue_add_exists_normalization) + (p) * pfa_offset_right_add_exists_normalizationresiduecongruence)))))))))
  20. specialize prime_field_polynomial_normalization_exists (p)
  21. specialize prime_field_polynomial_normalization_exists (x)
  22. specialize prime_field_polynomial_normalization_exists (x1)
  23. specialize prime_field_polynomial_normalization_exists (l)
  24. apply prime_field_polynomial_normalization_exists
  25. exact hp
  26. cases hn
  27. cases hn_witness
  28. exists x2
  29. exists x3
  30. specialize prime_field_polynomial_add_from_normalization (p)
  31. specialize prime_field_polynomial_add_from_normalization (ab)
  32. specialize prime_field_polynomial_add_from_normalization (ac)
  33. specialize prime_field_polynomial_add_from_normalization (bb)
  34. specialize prime_field_polynomial_add_from_normalization (bc)
  35. specialize prime_field_polynomial_add_from_normalization (x)
  36. specialize prime_field_polynomial_add_from_normalization (x1)
  37. specialize prime_field_polynomial_add_from_normalization (x2)
  38. specialize prime_field_polynomial_add_from_normalization (x3)
  39. specialize prime_field_polynomial_add_from_normalization (l)
  40. apply prime_field_polynomial_add_from_normalization
  41. exact ha
  42. exact hb
  43. exact hs_witness_witness
  44. exact hn_witness_witness
prime_field_polynomial_add_bounded · unchanged support, not a new admission
forall p ab ac bb bc cb cc l. (forall pfp_index_add_bounded_table. (exists pfa_gap_add_bounded_tableindex. pfa_gap_add_bounded_tableindex + S (pfp_index_add_bounded_table) = (l)) -> exists pfp_left_add_bounded_table pfp_right_add_bounded_table pfp_value_add_bounded_table. ((((exists ff_h_pfp_add_bounded_tableleft. ff_h_pfp_add_bounded_tableleft + S (pfp_left_add_bounded_table) = S ((S (pfp_index_add_bounded_table)) * ac)) /\ exists ff_q_pfp_add_bounded_tableleft. ab = ff_q_pfp_add_bounded_tableleft * S ((S (pfp_index_add_bounded_table)) * ac) + (pfp_left_add_bounded_table))) /\ (((((exists ff_h_pfp_add_bounded_tableright. ff_h_pfp_add_bounded_tableright + S (pfp_right_add_bounded_table) = S ((S (pfp_index_add_bounded_table)) * bc)) /\ exists ff_q_pfp_add_bounded_tableright. bb = ff_q_pfp_add_bounded_tableright * S ((S (pfp_index_add_bounded_table)) * bc) + (pfp_right_add_bounded_table))) /\ (((((exists ff_h_pfp_add_bounded_tabletarget. ff_h_pfp_add_bounded_tabletarget + S (pfp_value_add_bounded_table) = S ((S (pfp_index_add_bounded_table)) * cc)) /\ exists ff_q_pfp_add_bounded_tabletarget. cb = ff_q_pfp_add_bounded_tabletarget * S ((S (pfp_index_add_bounded_table)) * cc) + (pfp_value_add_bounded_table))) /\ ((((exists pfa_gap_add_bounded_tableoperationleft. pfa_gap_add_bounded_tableoperationleft + S (pfp_left_add_bounded_table) = (p)) /\ (((exists pfa_gap_add_bounded_tableoperationright. pfa_gap_add_bounded_tableoperationright + S (pfp_right_add_bounded_table) = (p)) /\ ((((exists pfa_gap_add_bounded_tableoperationresultbound. pfa_gap_add_bounded_tableoperationresultbound + S (pfp_value_add_bounded_table) = (p)) /\ ((exists pfa_offset_left_add_bounded_tableoperationresultcongruence pfa_offset_right_add_bounded_tableoperationresultcongruence. ((pfp_left_add_bounded_table) + (pfp_right_add_bounded_table)) + (p) * pfa_offset_left_add_bounded_tableoperationresultcongruence = (pfp_value_add_bounded_table) + (p) * pfa_offset_right_add_bounded_tableoperationresultcongruence)))))))))))))))) -> ((forall fom_index_pfp_add_bounded_ab. (exists fom_gap_pfp_add_bounded_ab_index_bound. fom_gap_pfp_add_bounded_ab_index_bound + S (fom_index_pfp_add_bounded_ab) = l) -> exists fom_value_pfp_add_bounded_ab. ((((exists fom_beta_height_pfp_add_bounded_ab_entry. fom_beta_height_pfp_add_bounded_ab_entry + S (fom_value_pfp_add_bounded_ab) = S ((S (fom_index_pfp_add_bounded_ab)) * ac)) /\ exists fom_beta_quotient_pfp_add_bounded_ab_entry. ab = fom_beta_quotient_pfp_add_bounded_ab_entry * S ((S (fom_index_pfp_add_bounded_ab)) * ac) + (fom_value_pfp_add_bounded_ab))) /\ (exists fom_gap_pfp_add_bounded_ab_value_bound. fom_gap_pfp_add_bounded_ab_value_bound + S (fom_value_pfp_add_bounded_ab) = p))) /\ (((forall fom_index_pfp_add_bounded_bb. (exists fom_gap_pfp_add_bounded_bb_index_bound. fom_gap_pfp_add_bounded_bb_index_bound + S (fom_index_pfp_add_bounded_bb) = l) -> exists fom_value_pfp_add_bounded_bb. ((((exists fom_beta_height_pfp_add_bounded_bb_entry. fom_beta_height_pfp_add_bounded_bb_entry + S (fom_value_pfp_add_bounded_bb) = S ((S (fom_index_pfp_add_bounded_bb)) * bc)) /\ exists fom_beta_quotient_pfp_add_bounded_bb_entry. bb = fom_beta_quotient_pfp_add_bounded_bb_entry * S ((S (fom_index_pfp_add_bounded_bb)) * bc) + (fom_value_pfp_add_bounded_bb))) /\ (exists fom_gap_pfp_add_bounded_bb_value_bound. fom_gap_pfp_add_bounded_bb_value_bound + S (fom_value_pfp_add_bounded_bb) = p))) /\ ((forall fom_index_pfp_add_bounded_cb. (exists fom_gap_pfp_add_bounded_cb_index_bound. fom_gap_pfp_add_bounded_cb_index_bound + S (fom_index_pfp_add_bounded_cb) = l) -> exists fom_value_pfp_add_bounded_cb. ((((exists fom_beta_height_pfp_add_bounded_cb_entry. fom_beta_height_pfp_add_bounded_cb_entry + S (fom_value_pfp_add_bounded_cb) = S ((S (fom_index_pfp_add_bounded_cb)) * cc)) /\ exists fom_beta_quotient_pfp_add_bounded_cb_entry. cb = fom_beta_quotient_pfp_add_bounded_cb_entry * S ((S (fom_index_pfp_add_bounded_cb)) * cc) + (fom_value_pfp_add_bounded_cb))) /\ (exists fom_gap_pfp_add_bounded_cb_value_bound. fom_gap_pfp_add_bounded_cb_value_bound + S (fom_value_pfp_add_bounded_cb) = p)))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro l
  9. intro h
  10. split
  11. intro i
  12. intro hi
  13. have hv : exists a b r. ((((exists ff_h_pfp_add_bound_left. ff_h_pfp_add_bound_left + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_add_bound_left. ab = ff_q_pfp_add_bound_left * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_add_bound_right. ff_h_pfp_add_bound_right + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_add_bound_right. bb = ff_q_pfp_add_bound_right * S ((S (i)) * bc) + (b))) /\ (((((exists ff_h_pfp_add_bound_target. ff_h_pfp_add_bound_target + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_add_bound_target. cb = ff_q_pfp_add_bound_target * S ((S (i)) * cc) + (r))) /\ ((((exists pfa_gap_add_bound_operationleft. pfa_gap_add_bound_operationleft + S (a) = (p)) /\ (((exists pfa_gap_add_bound_operationright. pfa_gap_add_bound_operationright + S (b) = (p)) /\ ((((exists pfa_gap_add_bound_operationresultbound. pfa_gap_add_bound_operationresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_add_bound_operationresultcongruence pfa_offset_right_add_bound_operationresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_add_bound_operationresultcongruence = (r) + (p) * pfa_offset_right_add_bound_operationresultcongruence)))))))))))))))
  14. specialize h (i)
  15. apply h
  16. exact hi
  17. cases hv
  18. cases hv_witness
  19. cases hv_witness_witness
  20. cases hv_witness_witness_witness
  21. cases hv_witness_witness_witness_right
  22. cases hv_witness_witness_witness_right_right
  23. cases hv_witness_witness_witness_right_right_right
  24. cases hv_witness_witness_witness_right_right_right_right
  25. cases hv_witness_witness_witness_right_right_right_right_right
  26. exists x
  27. split
  28. exact hv_witness_witness_witness_left
  29. exact hv_witness_witness_witness_right_right_right_left
  30. split
  31. intro i
  32. intro hi
  33. have hv : exists a b r. ((((exists ff_h_pfp_add_bound_left. ff_h_pfp_add_bound_left + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_add_bound_left. ab = ff_q_pfp_add_bound_left * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_add_bound_right. ff_h_pfp_add_bound_right + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_add_bound_right. bb = ff_q_pfp_add_bound_right * S ((S (i)) * bc) + (b))) /\ (((((exists ff_h_pfp_add_bound_target. ff_h_pfp_add_bound_target + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_add_bound_target. cb = ff_q_pfp_add_bound_target * S ((S (i)) * cc) + (r))) /\ ((((exists pfa_gap_add_bound_operationleft. pfa_gap_add_bound_operationleft + S (a) = (p)) /\ (((exists pfa_gap_add_bound_operationright. pfa_gap_add_bound_operationright + S (b) = (p)) /\ ((((exists pfa_gap_add_bound_operationresultbound. pfa_gap_add_bound_operationresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_add_bound_operationresultcongruence pfa_offset_right_add_bound_operationresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_add_bound_operationresultcongruence = (r) + (p) * pfa_offset_right_add_bound_operationresultcongruence)))))))))))))))
  34. specialize h (i)
  35. apply h
  36. exact hi
  37. cases hv
  38. cases hv_witness
  39. cases hv_witness_witness
  40. cases hv_witness_witness_witness
  41. cases hv_witness_witness_witness_right
  42. cases hv_witness_witness_witness_right_right
  43. cases hv_witness_witness_witness_right_right_right
  44. cases hv_witness_witness_witness_right_right_right_right
  45. cases hv_witness_witness_witness_right_right_right_right_right
  46. exists x1
  47. split
  48. exact hv_witness_witness_witness_right_left
  49. exact hv_witness_witness_witness_right_right_right_right_left
  50. intro i
  51. intro hi
  52. have hv : exists a b r. ((((exists ff_h_pfp_add_bound_left. ff_h_pfp_add_bound_left + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_add_bound_left. ab = ff_q_pfp_add_bound_left * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_add_bound_right. ff_h_pfp_add_bound_right + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_add_bound_right. bb = ff_q_pfp_add_bound_right * S ((S (i)) * bc) + (b))) /\ (((((exists ff_h_pfp_add_bound_target. ff_h_pfp_add_bound_target + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_add_bound_target. cb = ff_q_pfp_add_bound_target * S ((S (i)) * cc) + (r))) /\ ((((exists pfa_gap_add_bound_operationleft. pfa_gap_add_bound_operationleft + S (a) = (p)) /\ (((exists pfa_gap_add_bound_operationright. pfa_gap_add_bound_operationright + S (b) = (p)) /\ ((((exists pfa_gap_add_bound_operationresultbound. pfa_gap_add_bound_operationresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_add_bound_operationresultcongruence pfa_offset_right_add_bound_operationresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_add_bound_operationresultcongruence = (r) + (p) * pfa_offset_right_add_bound_operationresultcongruence)))))))))))))))
  53. specialize h (i)
  54. apply h
  55. exact hi
  56. cases hv
  57. cases hv_witness
  58. cases hv_witness_witness
  59. cases hv_witness_witness_witness
  60. cases hv_witness_witness_witness_right
  61. cases hv_witness_witness_witness_right_right
  62. cases hv_witness_witness_witness_right_right_right
  63. cases hv_witness_witness_witness_right_right_right_right
  64. cases hv_witness_witness_witness_right_right_right_right_right
  65. exists x2
  66. split
  67. exact hv_witness_witness_witness_right_right_left
  68. exact hv_witness_witness_witness_right_right_right_right_right_left
prime_field_convolution_prefix_left_add · unchanged support, not a new admission
forall p ab ac bb bc cb cc L db dc M ub uc vb vc wb wc N. (forall pfp_index_prefix_add_left_source. (exists pfa_gap_prefix_add_left_sourceindex. pfa_gap_prefix_add_left_sourceindex + S (pfp_index_prefix_add_left_source) = (L)) -> exists pfp_left_prefix_add_left_source pfp_right_prefix_add_left_source pfp_value_prefix_add_left_source. ((((exists ff_h_pfp_prefix_add_left_sourceleft. ff_h_pfp_prefix_add_left_sourceleft + S (pfp_left_prefix_add_left_source) = S ((S (pfp_index_prefix_add_left_source)) * ac)) /\ exists ff_q_pfp_prefix_add_left_sourceleft. ab = ff_q_pfp_prefix_add_left_sourceleft * S ((S (pfp_index_prefix_add_left_source)) * ac) + (pfp_left_prefix_add_left_source))) /\ (((((exists ff_h_pfp_prefix_add_left_sourceright. ff_h_pfp_prefix_add_left_sourceright + S (pfp_right_prefix_add_left_source) = S ((S (pfp_index_prefix_add_left_source)) * bc)) /\ exists ff_q_pfp_prefix_add_left_sourceright. bb = ff_q_pfp_prefix_add_left_sourceright * S ((S (pfp_index_prefix_add_left_source)) * bc) + (pfp_right_prefix_add_left_source))) /\ (((((exists ff_h_pfp_prefix_add_left_sourcetarget. ff_h_pfp_prefix_add_left_sourcetarget + S (pfp_value_prefix_add_left_source) = S ((S (pfp_index_prefix_add_left_source)) * cc)) /\ exists ff_q_pfp_prefix_add_left_sourcetarget. cb = ff_q_pfp_prefix_add_left_sourcetarget * S ((S (pfp_index_prefix_add_left_source)) * cc) + (pfp_value_prefix_add_left_source))) /\ ((((exists pfa_gap_prefix_add_left_sourceoperationleft. pfa_gap_prefix_add_left_sourceoperationleft + S (pfp_left_prefix_add_left_source) = (p)) /\ (((exists pfa_gap_prefix_add_left_sourceoperationright. pfa_gap_prefix_add_left_sourceoperationright + S (pfp_right_prefix_add_left_source) = (p)) /\ ((((exists pfa_gap_prefix_add_left_sourceoperationresultbound. pfa_gap_prefix_add_left_sourceoperationresultbound + S (pfp_value_prefix_add_left_source) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_sourceoperationresultcongruence pfa_offset_right_prefix_add_left_sourceoperationresultcongruence. ((pfp_left_prefix_add_left_source) + (pfp_right_prefix_add_left_source)) + (p) * pfa_offset_left_prefix_add_left_sourceoperationresultcongruence = (pfp_value_prefix_add_left_source) + (p) * pfa_offset_right_prefix_add_left_sourceoperationresultcongruence)))))))))))))))) -> (forall pfc_index_prefix_add_left_ub. (exists pfa_gap_prefix_add_left_ubbound. pfa_gap_prefix_add_left_ubbound + S (pfc_index_prefix_add_left_ub) = (N)) -> exists pfc_value_prefix_add_left_ub. ((((exists ff_h_pfp_prefix_add_left_ubentry. ff_h_pfp_prefix_add_left_ubentry + S (pfc_value_prefix_add_left_ub) = S ((S (pfc_index_prefix_add_left_ub)) * uc)) /\ exists ff_q_pfp_prefix_add_left_ubentry. ub = ff_q_pfp_prefix_add_left_ubentry * S ((S (pfc_index_prefix_add_left_ub)) * uc) + (pfc_value_prefix_add_left_ub))) /\ ((exists pfc_terms_code_prefix_add_left_ubcoefficient pfc_terms_scale_prefix_add_left_ubcoefficient pfc_natural_sum_prefix_add_left_ubcoefficient. ((forall pfc_index_prefix_add_left_ubcoefficientdiagonal. (exists pfa_gap_prefix_add_left_ubcoefficientdiagonalbound. pfa_gap_prefix_add_left_ubcoefficientdiagonalbound + S (pfc_index_prefix_add_left_ubcoefficientdiagonal) = (S (pfc_index_prefix_add_left_ub))) -> exists pfc_value_prefix_add_left_ubcoefficientdiagonal. ((((exists ff_h_pfp_prefix_add_left_ubcoefficientdiagonalentry. ff_h_pfp_prefix_add_left_ubcoefficientdiagonalentry + S (pfc_value_prefix_add_left_ubcoefficientdiagonal) = S ((S (pfc_index_prefix_add_left_ubcoefficientdiagonal)) * pfc_terms_scale_prefix_add_left_ubcoefficient)) /\ exists ff_q_pfp_prefix_add_left_ubcoefficientdiagonalentry. pfc_terms_code_prefix_add_left_ubcoefficient = ff_q_pfp_prefix_add_left_ubcoefficientdiagonalentry * S ((S (pfc_index_prefix_add_left_ubcoefficientdiagonal)) * pfc_terms_scale_prefix_add_left_ubcoefficient) + (pfc_value_prefix_add_left_ubcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_add_left_ubcoefficientdiagonalterm pfc_left_prefix_add_left_ubcoefficientdiagonalterm pfc_right_prefix_add_left_ubcoefficientdiagonalterm. (((pfc_index_prefix_add_left_ubcoefficientdiagonal)+pfc_complement_prefix_add_left_ubcoefficientdiagonalterm=(pfc_index_prefix_add_left_ub)) /\ ((((((exists pfa_gap_prefix_add_left_ubcoefficientdiagonaltermleftinside. pfa_gap_prefix_add_left_ubcoefficientdiagonaltermleftinside + S (pfc_index_prefix_add_left_ubcoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_prefix_add_left_ubcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_add_left_ubcoefficientdiagonaltermleftentry + S (pfc_left_prefix_add_left_ubcoefficientdiagonalterm) = S ((S (pfc_index_prefix_add_left_ubcoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_prefix_add_left_ubcoefficientdiagonaltermleftentry. db = ff_q_pfp_prefix_add_left_ubcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_add_left_ubcoefficientdiagonal)) * dc) + (pfc_left_prefix_add_left_ubcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_ubcoefficientdiagonaltermleftoutside. pfc_gap_prefix_add_left_ubcoefficientdiagonaltermleftoutside+(M)=(pfc_index_prefix_add_left_ubcoefficientdiagonal)) /\ (((pfc_left_prefix_add_left_ubcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_left_ubcoefficientdiagonaltermrightinside. pfa_gap_prefix_add_left_ubcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_add_left_ubcoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_prefix_add_left_ubcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_add_left_ubcoefficientdiagonaltermrightentry + S (pfc_right_prefix_add_left_ubcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_add_left_ubcoefficientdiagonalterm)) * ac)) /\ exists ff_q_pfp_prefix_add_left_ubcoefficientdiagonaltermrightentry. ab = ff_q_pfp_prefix_add_left_ubcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_left_ubcoefficientdiagonalterm)) * ac) + (pfc_right_prefix_add_left_ubcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_ubcoefficientdiagonaltermrightoutside. pfc_gap_prefix_add_left_ubcoefficientdiagonaltermrightoutside+(L)=(pfc_complement_prefix_add_left_ubcoefficientdiagonalterm)) /\ (((pfc_right_prefix_add_left_ubcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_left_ubcoefficientdiagonal)=pfc_left_prefix_add_left_ubcoefficientdiagonalterm*pfc_right_prefix_add_left_ubcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_left_ubcoefficientsum fs_v_pfc_prefix_add_left_ubcoefficientsum. ((((exists fs_h_pfc_prefix_add_left_ubcoefficientsum_body_start. fs_h_pfc_prefix_add_left_ubcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_left_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_ubcoefficientsum_body_start. fs_u_pfc_prefix_add_left_ubcoefficientsum = fs_q_pfc_prefix_add_left_ubcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_left_ubcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_left_ubcoefficientsum_body_terminal. fs_h_pfc_prefix_add_left_ubcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_add_left_ubcoefficient) = S ((S (S (pfc_index_prefix_add_left_ub))) * fs_v_pfc_prefix_add_left_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_ubcoefficientsum_body_terminal. fs_u_pfc_prefix_add_left_ubcoefficientsum = fs_q_pfc_prefix_add_left_ubcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_add_left_ub))) * fs_v_pfc_prefix_add_left_ubcoefficientsum) + (pfc_natural_sum_prefix_add_left_ubcoefficient))) /\ forall fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_add_left_ubcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_add_left_ubcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps = S (pfc_index_prefix_add_left_ub)) -> exists fs_a_pfc_prefix_add_left_ubcoefficientsum_body_steps fs_r_pfc_prefix_add_left_ubcoefficientsum_body_steps fs_s_pfc_prefix_add_left_ubcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_add_left_ubcoefficientsum_body_steps_summand. fs_h_pfc_prefix_add_left_ubcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_add_left_ubcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_left_ubcoefficient)) /\ exists fs_q_pfc_prefix_add_left_ubcoefficientsum_body_steps_summand. pfc_terms_code_prefix_add_left_ubcoefficient = fs_q_pfc_prefix_add_left_ubcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_left_ubcoefficient) + (fs_a_pfc_prefix_add_left_ubcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_ubcoefficientsum_body_steps_partial. fs_h_pfc_prefix_add_left_ubcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_add_left_ubcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_ubcoefficientsum_body_steps_partial. fs_u_pfc_prefix_add_left_ubcoefficientsum = fs_q_pfc_prefix_add_left_ubcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_ubcoefficientsum) + (fs_r_pfc_prefix_add_left_ubcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_ubcoefficientsum_body_steps_successor. fs_h_pfc_prefix_add_left_ubcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_add_left_ubcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_ubcoefficientsum_body_steps_successor. fs_u_pfc_prefix_add_left_ubcoefficientsum = fs_q_pfc_prefix_add_left_ubcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_ubcoefficientsum) + (fs_s_pfc_prefix_add_left_ubcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_add_left_ubcoefficientsum_body_steps = fs_r_pfc_prefix_add_left_ubcoefficientsum_body_steps + fs_a_pfc_prefix_add_left_ubcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_left_ubcoefficientresiduebound. pfa_gap_prefix_add_left_ubcoefficientresiduebound + S (pfc_value_prefix_add_left_ub) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_ubcoefficientresiduecongruence pfa_offset_right_prefix_add_left_ubcoefficientresiduecongruence. (pfc_natural_sum_prefix_add_left_ubcoefficient) + (p) * pfa_offset_left_prefix_add_left_ubcoefficientresiduecongruence = (pfc_value_prefix_add_left_ub) + (p) * pfa_offset_right_prefix_add_left_ubcoefficientresiduecongruence)))))))))))) -> (forall pfc_index_prefix_add_left_vb. (exists pfa_gap_prefix_add_left_vbbound. pfa_gap_prefix_add_left_vbbound + S (pfc_index_prefix_add_left_vb) = (N)) -> exists pfc_value_prefix_add_left_vb. ((((exists ff_h_pfp_prefix_add_left_vbentry. ff_h_pfp_prefix_add_left_vbentry + S (pfc_value_prefix_add_left_vb) = S ((S (pfc_index_prefix_add_left_vb)) * vc)) /\ exists ff_q_pfp_prefix_add_left_vbentry. vb = ff_q_pfp_prefix_add_left_vbentry * S ((S (pfc_index_prefix_add_left_vb)) * vc) + (pfc_value_prefix_add_left_vb))) /\ ((exists pfc_terms_code_prefix_add_left_vbcoefficient pfc_terms_scale_prefix_add_left_vbcoefficient pfc_natural_sum_prefix_add_left_vbcoefficient. ((forall pfc_index_prefix_add_left_vbcoefficientdiagonal. (exists pfa_gap_prefix_add_left_vbcoefficientdiagonalbound. pfa_gap_prefix_add_left_vbcoefficientdiagonalbound + S (pfc_index_prefix_add_left_vbcoefficientdiagonal) = (S (pfc_index_prefix_add_left_vb))) -> exists pfc_value_prefix_add_left_vbcoefficientdiagonal. ((((exists ff_h_pfp_prefix_add_left_vbcoefficientdiagonalentry. ff_h_pfp_prefix_add_left_vbcoefficientdiagonalentry + S (pfc_value_prefix_add_left_vbcoefficientdiagonal) = S ((S (pfc_index_prefix_add_left_vbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_left_vbcoefficient)) /\ exists ff_q_pfp_prefix_add_left_vbcoefficientdiagonalentry. pfc_terms_code_prefix_add_left_vbcoefficient = ff_q_pfp_prefix_add_left_vbcoefficientdiagonalentry * S ((S (pfc_index_prefix_add_left_vbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_left_vbcoefficient) + (pfc_value_prefix_add_left_vbcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_add_left_vbcoefficientdiagonalterm pfc_left_prefix_add_left_vbcoefficientdiagonalterm pfc_right_prefix_add_left_vbcoefficientdiagonalterm. (((pfc_index_prefix_add_left_vbcoefficientdiagonal)+pfc_complement_prefix_add_left_vbcoefficientdiagonalterm=(pfc_index_prefix_add_left_vb)) /\ ((((((exists pfa_gap_prefix_add_left_vbcoefficientdiagonaltermleftinside. pfa_gap_prefix_add_left_vbcoefficientdiagonaltermleftinside + S (pfc_index_prefix_add_left_vbcoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_prefix_add_left_vbcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_add_left_vbcoefficientdiagonaltermleftentry + S (pfc_left_prefix_add_left_vbcoefficientdiagonalterm) = S ((S (pfc_index_prefix_add_left_vbcoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_prefix_add_left_vbcoefficientdiagonaltermleftentry. db = ff_q_pfp_prefix_add_left_vbcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_add_left_vbcoefficientdiagonal)) * dc) + (pfc_left_prefix_add_left_vbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_vbcoefficientdiagonaltermleftoutside. pfc_gap_prefix_add_left_vbcoefficientdiagonaltermleftoutside+(M)=(pfc_index_prefix_add_left_vbcoefficientdiagonal)) /\ (((pfc_left_prefix_add_left_vbcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_left_vbcoefficientdiagonaltermrightinside. pfa_gap_prefix_add_left_vbcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_add_left_vbcoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_prefix_add_left_vbcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_add_left_vbcoefficientdiagonaltermrightentry + S (pfc_right_prefix_add_left_vbcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_add_left_vbcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_prefix_add_left_vbcoefficientdiagonaltermrightentry. bb = ff_q_pfp_prefix_add_left_vbcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_left_vbcoefficientdiagonalterm)) * bc) + (pfc_right_prefix_add_left_vbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_vbcoefficientdiagonaltermrightoutside. pfc_gap_prefix_add_left_vbcoefficientdiagonaltermrightoutside+(L)=(pfc_complement_prefix_add_left_vbcoefficientdiagonalterm)) /\ (((pfc_right_prefix_add_left_vbcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_left_vbcoefficientdiagonal)=pfc_left_prefix_add_left_vbcoefficientdiagonalterm*pfc_right_prefix_add_left_vbcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_left_vbcoefficientsum fs_v_pfc_prefix_add_left_vbcoefficientsum. ((((exists fs_h_pfc_prefix_add_left_vbcoefficientsum_body_start. fs_h_pfc_prefix_add_left_vbcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_left_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_vbcoefficientsum_body_start. fs_u_pfc_prefix_add_left_vbcoefficientsum = fs_q_pfc_prefix_add_left_vbcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_left_vbcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_left_vbcoefficientsum_body_terminal. fs_h_pfc_prefix_add_left_vbcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_add_left_vbcoefficient) = S ((S (S (pfc_index_prefix_add_left_vb))) * fs_v_pfc_prefix_add_left_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_vbcoefficientsum_body_terminal. fs_u_pfc_prefix_add_left_vbcoefficientsum = fs_q_pfc_prefix_add_left_vbcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_add_left_vb))) * fs_v_pfc_prefix_add_left_vbcoefficientsum) + (pfc_natural_sum_prefix_add_left_vbcoefficient))) /\ forall fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_add_left_vbcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_add_left_vbcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps = S (pfc_index_prefix_add_left_vb)) -> exists fs_a_pfc_prefix_add_left_vbcoefficientsum_body_steps fs_r_pfc_prefix_add_left_vbcoefficientsum_body_steps fs_s_pfc_prefix_add_left_vbcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_add_left_vbcoefficientsum_body_steps_summand. fs_h_pfc_prefix_add_left_vbcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_add_left_vbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_left_vbcoefficient)) /\ exists fs_q_pfc_prefix_add_left_vbcoefficientsum_body_steps_summand. pfc_terms_code_prefix_add_left_vbcoefficient = fs_q_pfc_prefix_add_left_vbcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_left_vbcoefficient) + (fs_a_pfc_prefix_add_left_vbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_vbcoefficientsum_body_steps_partial. fs_h_pfc_prefix_add_left_vbcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_add_left_vbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_vbcoefficientsum_body_steps_partial. fs_u_pfc_prefix_add_left_vbcoefficientsum = fs_q_pfc_prefix_add_left_vbcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_vbcoefficientsum) + (fs_r_pfc_prefix_add_left_vbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_vbcoefficientsum_body_steps_successor. fs_h_pfc_prefix_add_left_vbcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_add_left_vbcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_vbcoefficientsum_body_steps_successor. fs_u_pfc_prefix_add_left_vbcoefficientsum = fs_q_pfc_prefix_add_left_vbcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_vbcoefficientsum) + (fs_s_pfc_prefix_add_left_vbcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_add_left_vbcoefficientsum_body_steps = fs_r_pfc_prefix_add_left_vbcoefficientsum_body_steps + fs_a_pfc_prefix_add_left_vbcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_left_vbcoefficientresiduebound. pfa_gap_prefix_add_left_vbcoefficientresiduebound + S (pfc_value_prefix_add_left_vb) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_vbcoefficientresiduecongruence pfa_offset_right_prefix_add_left_vbcoefficientresiduecongruence. (pfc_natural_sum_prefix_add_left_vbcoefficient) + (p) * pfa_offset_left_prefix_add_left_vbcoefficientresiduecongruence = (pfc_value_prefix_add_left_vb) + (p) * pfa_offset_right_prefix_add_left_vbcoefficientresiduecongruence)))))))))))) -> (forall pfc_index_prefix_add_left_wb. (exists pfa_gap_prefix_add_left_wbbound. pfa_gap_prefix_add_left_wbbound + S (pfc_index_prefix_add_left_wb) = (N)) -> exists pfc_value_prefix_add_left_wb. ((((exists ff_h_pfp_prefix_add_left_wbentry. ff_h_pfp_prefix_add_left_wbentry + S (pfc_value_prefix_add_left_wb) = S ((S (pfc_index_prefix_add_left_wb)) * wc)) /\ exists ff_q_pfp_prefix_add_left_wbentry. wb = ff_q_pfp_prefix_add_left_wbentry * S ((S (pfc_index_prefix_add_left_wb)) * wc) + (pfc_value_prefix_add_left_wb))) /\ ((exists pfc_terms_code_prefix_add_left_wbcoefficient pfc_terms_scale_prefix_add_left_wbcoefficient pfc_natural_sum_prefix_add_left_wbcoefficient. ((forall pfc_index_prefix_add_left_wbcoefficientdiagonal. (exists pfa_gap_prefix_add_left_wbcoefficientdiagonalbound. pfa_gap_prefix_add_left_wbcoefficientdiagonalbound + S (pfc_index_prefix_add_left_wbcoefficientdiagonal) = (S (pfc_index_prefix_add_left_wb))) -> exists pfc_value_prefix_add_left_wbcoefficientdiagonal. ((((exists ff_h_pfp_prefix_add_left_wbcoefficientdiagonalentry. ff_h_pfp_prefix_add_left_wbcoefficientdiagonalentry + S (pfc_value_prefix_add_left_wbcoefficientdiagonal) = S ((S (pfc_index_prefix_add_left_wbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_left_wbcoefficient)) /\ exists ff_q_pfp_prefix_add_left_wbcoefficientdiagonalentry. pfc_terms_code_prefix_add_left_wbcoefficient = ff_q_pfp_prefix_add_left_wbcoefficientdiagonalentry * S ((S (pfc_index_prefix_add_left_wbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_left_wbcoefficient) + (pfc_value_prefix_add_left_wbcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_add_left_wbcoefficientdiagonalterm pfc_left_prefix_add_left_wbcoefficientdiagonalterm pfc_right_prefix_add_left_wbcoefficientdiagonalterm. (((pfc_index_prefix_add_left_wbcoefficientdiagonal)+pfc_complement_prefix_add_left_wbcoefficientdiagonalterm=(pfc_index_prefix_add_left_wb)) /\ ((((((exists pfa_gap_prefix_add_left_wbcoefficientdiagonaltermleftinside. pfa_gap_prefix_add_left_wbcoefficientdiagonaltermleftinside + S (pfc_index_prefix_add_left_wbcoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_prefix_add_left_wbcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_add_left_wbcoefficientdiagonaltermleftentry + S (pfc_left_prefix_add_left_wbcoefficientdiagonalterm) = S ((S (pfc_index_prefix_add_left_wbcoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_prefix_add_left_wbcoefficientdiagonaltermleftentry. db = ff_q_pfp_prefix_add_left_wbcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_add_left_wbcoefficientdiagonal)) * dc) + (pfc_left_prefix_add_left_wbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_wbcoefficientdiagonaltermleftoutside. pfc_gap_prefix_add_left_wbcoefficientdiagonaltermleftoutside+(M)=(pfc_index_prefix_add_left_wbcoefficientdiagonal)) /\ (((pfc_left_prefix_add_left_wbcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_left_wbcoefficientdiagonaltermrightinside. pfa_gap_prefix_add_left_wbcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_add_left_wbcoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_prefix_add_left_wbcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_add_left_wbcoefficientdiagonaltermrightentry + S (pfc_right_prefix_add_left_wbcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_add_left_wbcoefficientdiagonalterm)) * cc)) /\ exists ff_q_pfp_prefix_add_left_wbcoefficientdiagonaltermrightentry. cb = ff_q_pfp_prefix_add_left_wbcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_left_wbcoefficientdiagonalterm)) * cc) + (pfc_right_prefix_add_left_wbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_wbcoefficientdiagonaltermrightoutside. pfc_gap_prefix_add_left_wbcoefficientdiagonaltermrightoutside+(L)=(pfc_complement_prefix_add_left_wbcoefficientdiagonalterm)) /\ (((pfc_right_prefix_add_left_wbcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_left_wbcoefficientdiagonal)=pfc_left_prefix_add_left_wbcoefficientdiagonalterm*pfc_right_prefix_add_left_wbcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_left_wbcoefficientsum fs_v_pfc_prefix_add_left_wbcoefficientsum. ((((exists fs_h_pfc_prefix_add_left_wbcoefficientsum_body_start. fs_h_pfc_prefix_add_left_wbcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_left_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_wbcoefficientsum_body_start. fs_u_pfc_prefix_add_left_wbcoefficientsum = fs_q_pfc_prefix_add_left_wbcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_left_wbcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_left_wbcoefficientsum_body_terminal. fs_h_pfc_prefix_add_left_wbcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_add_left_wbcoefficient) = S ((S (S (pfc_index_prefix_add_left_wb))) * fs_v_pfc_prefix_add_left_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_wbcoefficientsum_body_terminal. fs_u_pfc_prefix_add_left_wbcoefficientsum = fs_q_pfc_prefix_add_left_wbcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_add_left_wb))) * fs_v_pfc_prefix_add_left_wbcoefficientsum) + (pfc_natural_sum_prefix_add_left_wbcoefficient))) /\ forall fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_add_left_wbcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_add_left_wbcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps = S (pfc_index_prefix_add_left_wb)) -> exists fs_a_pfc_prefix_add_left_wbcoefficientsum_body_steps fs_r_pfc_prefix_add_left_wbcoefficientsum_body_steps fs_s_pfc_prefix_add_left_wbcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_add_left_wbcoefficientsum_body_steps_summand. fs_h_pfc_prefix_add_left_wbcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_add_left_wbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_left_wbcoefficient)) /\ exists fs_q_pfc_prefix_add_left_wbcoefficientsum_body_steps_summand. pfc_terms_code_prefix_add_left_wbcoefficient = fs_q_pfc_prefix_add_left_wbcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_left_wbcoefficient) + (fs_a_pfc_prefix_add_left_wbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_wbcoefficientsum_body_steps_partial. fs_h_pfc_prefix_add_left_wbcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_add_left_wbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_wbcoefficientsum_body_steps_partial. fs_u_pfc_prefix_add_left_wbcoefficientsum = fs_q_pfc_prefix_add_left_wbcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_wbcoefficientsum) + (fs_r_pfc_prefix_add_left_wbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_wbcoefficientsum_body_steps_successor. fs_h_pfc_prefix_add_left_wbcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_add_left_wbcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_wbcoefficientsum_body_steps_successor. fs_u_pfc_prefix_add_left_wbcoefficientsum = fs_q_pfc_prefix_add_left_wbcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_wbcoefficientsum) + (fs_s_pfc_prefix_add_left_wbcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_add_left_wbcoefficientsum_body_steps = fs_r_pfc_prefix_add_left_wbcoefficientsum_body_steps + fs_a_pfc_prefix_add_left_wbcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_left_wbcoefficientresiduebound. pfa_gap_prefix_add_left_wbcoefficientresiduebound + S (pfc_value_prefix_add_left_wb) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_wbcoefficientresiduecongruence pfa_offset_right_prefix_add_left_wbcoefficientresiduecongruence. (pfc_natural_sum_prefix_add_left_wbcoefficient) + (p) * pfa_offset_left_prefix_add_left_wbcoefficientresiduecongruence = (pfc_value_prefix_add_left_wb) + (p) * pfa_offset_right_prefix_add_left_wbcoefficientresiduecongruence)))))))))))) -> (forall pfp_index_prefix_add_left_result. (exists pfa_gap_prefix_add_left_resultindex. pfa_gap_prefix_add_left_resultindex + S (pfp_index_prefix_add_left_result) = (N)) -> exists pfp_left_prefix_add_left_result pfp_right_prefix_add_left_result pfp_value_prefix_add_left_result. ((((exists ff_h_pfp_prefix_add_left_resultleft. ff_h_pfp_prefix_add_left_resultleft + S (pfp_left_prefix_add_left_result) = S ((S (pfp_index_prefix_add_left_result)) * uc)) /\ exists ff_q_pfp_prefix_add_left_resultleft. ub = ff_q_pfp_prefix_add_left_resultleft * S ((S (pfp_index_prefix_add_left_result)) * uc) + (pfp_left_prefix_add_left_result))) /\ (((((exists ff_h_pfp_prefix_add_left_resultright. ff_h_pfp_prefix_add_left_resultright + S (pfp_right_prefix_add_left_result) = S ((S (pfp_index_prefix_add_left_result)) * vc)) /\ exists ff_q_pfp_prefix_add_left_resultright. vb = ff_q_pfp_prefix_add_left_resultright * S ((S (pfp_index_prefix_add_left_result)) * vc) + (pfp_right_prefix_add_left_result))) /\ (((((exists ff_h_pfp_prefix_add_left_resulttarget. ff_h_pfp_prefix_add_left_resulttarget + S (pfp_value_prefix_add_left_result) = S ((S (pfp_index_prefix_add_left_result)) * wc)) /\ exists ff_q_pfp_prefix_add_left_resulttarget. wb = ff_q_pfp_prefix_add_left_resulttarget * S ((S (pfp_index_prefix_add_left_result)) * wc) + (pfp_value_prefix_add_left_result))) /\ ((((exists pfa_gap_prefix_add_left_resultoperationleft. pfa_gap_prefix_add_left_resultoperationleft + S (pfp_left_prefix_add_left_result) = (p)) /\ (((exists pfa_gap_prefix_add_left_resultoperationright. pfa_gap_prefix_add_left_resultoperationright + S (pfp_right_prefix_add_left_result) = (p)) /\ ((((exists pfa_gap_prefix_add_left_resultoperationresultbound. pfa_gap_prefix_add_left_resultoperationresultbound + S (pfp_value_prefix_add_left_result) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_resultoperationresultcongruence pfa_offset_right_prefix_add_left_resultoperationresultcongruence. ((pfp_left_prefix_add_left_result) + (pfp_right_prefix_add_left_result)) + (p) * pfa_offset_left_prefix_add_left_resultoperationresultcongruence = (pfp_value_prefix_add_left_result) + (p) * pfa_offset_right_prefix_add_left_resultoperationresultcongruence))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro db
  10. intro dc
  11. intro M
  12. intro ub
  13. intro uc
  14. intro vb
  15. intro vc
  16. intro wb
  17. intro wc
  18. intro N
  19. intro hs
  20. intro hu
  21. intro hv
  22. intro hw
  23. intro i
  24. intro hi
  25. have hcu : exists r. ((((exists ff_h_pfp_prefix_add_left_hcu. ff_h_pfp_prefix_add_left_hcu + S (r) = S ((S (i)) * uc)) /\ exists ff_q_pfp_prefix_add_left_hcu. ub = ff_q_pfp_prefix_add_left_hcu * S ((S (i)) * uc) + (r))) /\ ((exists pfc_terms_code_prefix_add_left_value_hcu pfc_terms_scale_prefix_add_left_value_hcu pfc_natural_sum_prefix_add_left_value_hcu. ((forall pfc_index_prefix_add_left_value_hcudiagonal. (exists pfa_gap_prefix_add_left_value_hcudiagonalbound. pfa_gap_prefix_add_left_value_hcudiagonalbound + S (pfc_index_prefix_add_left_value_hcudiagonal) = (S (i))) -> exists pfc_value_prefix_add_left_value_hcudiagonal. ((((exists ff_h_pfp_prefix_add_left_value_hcudiagonalentry. ff_h_pfp_prefix_add_left_value_hcudiagonalentry + S (pfc_value_prefix_add_left_value_hcudiagonal) = S ((S (pfc_index_prefix_add_left_value_hcudiagonal)) * pfc_terms_scale_prefix_add_left_value_hcu)) /\ exists ff_q_pfp_prefix_add_left_value_hcudiagonalentry. pfc_terms_code_prefix_add_left_value_hcu = ff_q_pfp_prefix_add_left_value_hcudiagonalentry * S ((S (pfc_index_prefix_add_left_value_hcudiagonal)) * pfc_terms_scale_prefix_add_left_value_hcu) + (pfc_value_prefix_add_left_value_hcudiagonal))) /\ ((exists pfc_complement_prefix_add_left_value_hcudiagonalterm pfc_left_prefix_add_left_value_hcudiagonalterm pfc_right_prefix_add_left_value_hcudiagonalterm. (((pfc_index_prefix_add_left_value_hcudiagonal)+pfc_complement_prefix_add_left_value_hcudiagonalterm=(i)) /\ ((((((exists pfa_gap_prefix_add_left_value_hcudiagonaltermleftinside. pfa_gap_prefix_add_left_value_hcudiagonaltermleftinside + S (pfc_index_prefix_add_left_value_hcudiagonal) = (M)) /\ ((((exists ff_h_pfp_prefix_add_left_value_hcudiagonaltermleftentry. ff_h_pfp_prefix_add_left_value_hcudiagonaltermleftentry + S (pfc_left_prefix_add_left_value_hcudiagonalterm) = S ((S (pfc_index_prefix_add_left_value_hcudiagonal)) * dc)) /\ exists ff_q_pfp_prefix_add_left_value_hcudiagonaltermleftentry. db = ff_q_pfp_prefix_add_left_value_hcudiagonaltermleftentry * S ((S (pfc_index_prefix_add_left_value_hcudiagonal)) * dc) + (pfc_left_prefix_add_left_value_hcudiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_value_hcudiagonaltermleftoutside. pfc_gap_prefix_add_left_value_hcudiagonaltermleftoutside+(M)=(pfc_index_prefix_add_left_value_hcudiagonal)) /\ (((pfc_left_prefix_add_left_value_hcudiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_left_value_hcudiagonaltermrightinside. pfa_gap_prefix_add_left_value_hcudiagonaltermrightinside + S (pfc_complement_prefix_add_left_value_hcudiagonalterm) = (L)) /\ ((((exists ff_h_pfp_prefix_add_left_value_hcudiagonaltermrightentry. ff_h_pfp_prefix_add_left_value_hcudiagonaltermrightentry + S (pfc_right_prefix_add_left_value_hcudiagonalterm) = S ((S (pfc_complement_prefix_add_left_value_hcudiagonalterm)) * ac)) /\ exists ff_q_pfp_prefix_add_left_value_hcudiagonaltermrightentry. ab = ff_q_pfp_prefix_add_left_value_hcudiagonaltermrightentry * S ((S (pfc_complement_prefix_add_left_value_hcudiagonalterm)) * ac) + (pfc_right_prefix_add_left_value_hcudiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_value_hcudiagonaltermrightoutside. pfc_gap_prefix_add_left_value_hcudiagonaltermrightoutside+(L)=(pfc_complement_prefix_add_left_value_hcudiagonalterm)) /\ (((pfc_right_prefix_add_left_value_hcudiagonalterm)=0))))) /\ (((pfc_value_prefix_add_left_value_hcudiagonal)=pfc_left_prefix_add_left_value_hcudiagonalterm*pfc_right_prefix_add_left_value_hcudiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_left_value_hcusum fs_v_pfc_prefix_add_left_value_hcusum. ((((exists fs_h_pfc_prefix_add_left_value_hcusum_body_start. fs_h_pfc_prefix_add_left_value_hcusum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_left_value_hcusum)) /\ exists fs_q_pfc_prefix_add_left_value_hcusum_body_start. fs_u_pfc_prefix_add_left_value_hcusum = fs_q_pfc_prefix_add_left_value_hcusum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_left_value_hcusum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcusum_body_terminal. fs_h_pfc_prefix_add_left_value_hcusum_body_terminal + S (pfc_natural_sum_prefix_add_left_value_hcu) = S ((S (S (i))) * fs_v_pfc_prefix_add_left_value_hcusum)) /\ exists fs_q_pfc_prefix_add_left_value_hcusum_body_terminal. fs_u_pfc_prefix_add_left_value_hcusum = fs_q_pfc_prefix_add_left_value_hcusum_body_terminal * S ((S (S (i))) * fs_v_pfc_prefix_add_left_value_hcusum) + (pfc_natural_sum_prefix_add_left_value_hcu))) /\ forall fs_i_pfc_prefix_add_left_value_hcusum_body_steps. (exists fs_lt_pfc_prefix_add_left_value_hcusum_body_steps_bound. fs_lt_pfc_prefix_add_left_value_hcusum_body_steps_bound + S fs_i_pfc_prefix_add_left_value_hcusum_body_steps = S (i)) -> exists fs_a_pfc_prefix_add_left_value_hcusum_body_steps fs_r_pfc_prefix_add_left_value_hcusum_body_steps fs_s_pfc_prefix_add_left_value_hcusum_body_steps. ((((exists fs_h_pfc_prefix_add_left_value_hcusum_body_steps_summand. fs_h_pfc_prefix_add_left_value_hcusum_body_steps_summand + S (fs_a_pfc_prefix_add_left_value_hcusum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_value_hcusum_body_steps)) * pfc_terms_scale_prefix_add_left_value_hcu)) /\ exists fs_q_pfc_prefix_add_left_value_hcusum_body_steps_summand. pfc_terms_code_prefix_add_left_value_hcu = fs_q_pfc_prefix_add_left_value_hcusum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_left_value_hcusum_body_steps)) * pfc_terms_scale_prefix_add_left_value_hcu) + (fs_a_pfc_prefix_add_left_value_hcusum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcusum_body_steps_partial. fs_h_pfc_prefix_add_left_value_hcusum_body_steps_partial + S (fs_r_pfc_prefix_add_left_value_hcusum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcusum)) /\ exists fs_q_pfc_prefix_add_left_value_hcusum_body_steps_partial. fs_u_pfc_prefix_add_left_value_hcusum = fs_q_pfc_prefix_add_left_value_hcusum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_left_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcusum) + (fs_r_pfc_prefix_add_left_value_hcusum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcusum_body_steps_successor. fs_h_pfc_prefix_add_left_value_hcusum_body_steps_successor + S (fs_s_pfc_prefix_add_left_value_hcusum_body_steps) = S ((S (S fs_i_pfc_prefix_add_left_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcusum)) /\ exists fs_q_pfc_prefix_add_left_value_hcusum_body_steps_successor. fs_u_pfc_prefix_add_left_value_hcusum = fs_q_pfc_prefix_add_left_value_hcusum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_left_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcusum) + (fs_s_pfc_prefix_add_left_value_hcusum_body_steps))) /\ fs_s_pfc_prefix_add_left_value_hcusum_body_steps = fs_r_pfc_prefix_add_left_value_hcusum_body_steps + fs_a_pfc_prefix_add_left_value_hcusum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_left_value_hcuresiduebound. pfa_gap_prefix_add_left_value_hcuresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_value_hcuresiduecongruence pfa_offset_right_prefix_add_left_value_hcuresiduecongruence. (pfc_natural_sum_prefix_add_left_value_hcu) + (p) * pfa_offset_left_prefix_add_left_value_hcuresiduecongruence = (r) + (p) * pfa_offset_right_prefix_add_left_value_hcuresiduecongruence)))))))))))
  26. specialize hu (i)
  27. apply hu
  28. exact hi
  29. cases hcu
  30. cases hcu_witness
  31. have hcv : exists r. ((((exists ff_h_pfp_prefix_add_left_hcv. ff_h_pfp_prefix_add_left_hcv + S (r) = S ((S (i)) * vc)) /\ exists ff_q_pfp_prefix_add_left_hcv. vb = ff_q_pfp_prefix_add_left_hcv * S ((S (i)) * vc) + (r))) /\ ((exists pfc_terms_code_prefix_add_left_value_hcv pfc_terms_scale_prefix_add_left_value_hcv pfc_natural_sum_prefix_add_left_value_hcv. ((forall pfc_index_prefix_add_left_value_hcvdiagonal. (exists pfa_gap_prefix_add_left_value_hcvdiagonalbound. pfa_gap_prefix_add_left_value_hcvdiagonalbound + S (pfc_index_prefix_add_left_value_hcvdiagonal) = (S (i))) -> exists pfc_value_prefix_add_left_value_hcvdiagonal. ((((exists ff_h_pfp_prefix_add_left_value_hcvdiagonalentry. ff_h_pfp_prefix_add_left_value_hcvdiagonalentry + S (pfc_value_prefix_add_left_value_hcvdiagonal) = S ((S (pfc_index_prefix_add_left_value_hcvdiagonal)) * pfc_terms_scale_prefix_add_left_value_hcv)) /\ exists ff_q_pfp_prefix_add_left_value_hcvdiagonalentry. pfc_terms_code_prefix_add_left_value_hcv = ff_q_pfp_prefix_add_left_value_hcvdiagonalentry * S ((S (pfc_index_prefix_add_left_value_hcvdiagonal)) * pfc_terms_scale_prefix_add_left_value_hcv) + (pfc_value_prefix_add_left_value_hcvdiagonal))) /\ ((exists pfc_complement_prefix_add_left_value_hcvdiagonalterm pfc_left_prefix_add_left_value_hcvdiagonalterm pfc_right_prefix_add_left_value_hcvdiagonalterm. (((pfc_index_prefix_add_left_value_hcvdiagonal)+pfc_complement_prefix_add_left_value_hcvdiagonalterm=(i)) /\ ((((((exists pfa_gap_prefix_add_left_value_hcvdiagonaltermleftinside. pfa_gap_prefix_add_left_value_hcvdiagonaltermleftinside + S (pfc_index_prefix_add_left_value_hcvdiagonal) = (M)) /\ ((((exists ff_h_pfp_prefix_add_left_value_hcvdiagonaltermleftentry. ff_h_pfp_prefix_add_left_value_hcvdiagonaltermleftentry + S (pfc_left_prefix_add_left_value_hcvdiagonalterm) = S ((S (pfc_index_prefix_add_left_value_hcvdiagonal)) * dc)) /\ exists ff_q_pfp_prefix_add_left_value_hcvdiagonaltermleftentry. db = ff_q_pfp_prefix_add_left_value_hcvdiagonaltermleftentry * S ((S (pfc_index_prefix_add_left_value_hcvdiagonal)) * dc) + (pfc_left_prefix_add_left_value_hcvdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_value_hcvdiagonaltermleftoutside. pfc_gap_prefix_add_left_value_hcvdiagonaltermleftoutside+(M)=(pfc_index_prefix_add_left_value_hcvdiagonal)) /\ (((pfc_left_prefix_add_left_value_hcvdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_left_value_hcvdiagonaltermrightinside. pfa_gap_prefix_add_left_value_hcvdiagonaltermrightinside + S (pfc_complement_prefix_add_left_value_hcvdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_prefix_add_left_value_hcvdiagonaltermrightentry. ff_h_pfp_prefix_add_left_value_hcvdiagonaltermrightentry + S (pfc_right_prefix_add_left_value_hcvdiagonalterm) = S ((S (pfc_complement_prefix_add_left_value_hcvdiagonalterm)) * bc)) /\ exists ff_q_pfp_prefix_add_left_value_hcvdiagonaltermrightentry. bb = ff_q_pfp_prefix_add_left_value_hcvdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_left_value_hcvdiagonalterm)) * bc) + (pfc_right_prefix_add_left_value_hcvdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_value_hcvdiagonaltermrightoutside. pfc_gap_prefix_add_left_value_hcvdiagonaltermrightoutside+(L)=(pfc_complement_prefix_add_left_value_hcvdiagonalterm)) /\ (((pfc_right_prefix_add_left_value_hcvdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_left_value_hcvdiagonal)=pfc_left_prefix_add_left_value_hcvdiagonalterm*pfc_right_prefix_add_left_value_hcvdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_left_value_hcvsum fs_v_pfc_prefix_add_left_value_hcvsum. ((((exists fs_h_pfc_prefix_add_left_value_hcvsum_body_start. fs_h_pfc_prefix_add_left_value_hcvsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_left_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcvsum_body_start. fs_u_pfc_prefix_add_left_value_hcvsum = fs_q_pfc_prefix_add_left_value_hcvsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_left_value_hcvsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcvsum_body_terminal. fs_h_pfc_prefix_add_left_value_hcvsum_body_terminal + S (pfc_natural_sum_prefix_add_left_value_hcv) = S ((S (S (i))) * fs_v_pfc_prefix_add_left_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcvsum_body_terminal. fs_u_pfc_prefix_add_left_value_hcvsum = fs_q_pfc_prefix_add_left_value_hcvsum_body_terminal * S ((S (S (i))) * fs_v_pfc_prefix_add_left_value_hcvsum) + (pfc_natural_sum_prefix_add_left_value_hcv))) /\ forall fs_i_pfc_prefix_add_left_value_hcvsum_body_steps. (exists fs_lt_pfc_prefix_add_left_value_hcvsum_body_steps_bound. fs_lt_pfc_prefix_add_left_value_hcvsum_body_steps_bound + S fs_i_pfc_prefix_add_left_value_hcvsum_body_steps = S (i)) -> exists fs_a_pfc_prefix_add_left_value_hcvsum_body_steps fs_r_pfc_prefix_add_left_value_hcvsum_body_steps fs_s_pfc_prefix_add_left_value_hcvsum_body_steps. ((((exists fs_h_pfc_prefix_add_left_value_hcvsum_body_steps_summand. fs_h_pfc_prefix_add_left_value_hcvsum_body_steps_summand + S (fs_a_pfc_prefix_add_left_value_hcvsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_value_hcvsum_body_steps)) * pfc_terms_scale_prefix_add_left_value_hcv)) /\ exists fs_q_pfc_prefix_add_left_value_hcvsum_body_steps_summand. pfc_terms_code_prefix_add_left_value_hcv = fs_q_pfc_prefix_add_left_value_hcvsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_left_value_hcvsum_body_steps)) * pfc_terms_scale_prefix_add_left_value_hcv) + (fs_a_pfc_prefix_add_left_value_hcvsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcvsum_body_steps_partial. fs_h_pfc_prefix_add_left_value_hcvsum_body_steps_partial + S (fs_r_pfc_prefix_add_left_value_hcvsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcvsum_body_steps_partial. fs_u_pfc_prefix_add_left_value_hcvsum = fs_q_pfc_prefix_add_left_value_hcvsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_left_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcvsum) + (fs_r_pfc_prefix_add_left_value_hcvsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcvsum_body_steps_successor. fs_h_pfc_prefix_add_left_value_hcvsum_body_steps_successor + S (fs_s_pfc_prefix_add_left_value_hcvsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_left_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcvsum_body_steps_successor. fs_u_pfc_prefix_add_left_value_hcvsum = fs_q_pfc_prefix_add_left_value_hcvsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_left_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcvsum) + (fs_s_pfc_prefix_add_left_value_hcvsum_body_steps))) /\ fs_s_pfc_prefix_add_left_value_hcvsum_body_steps = fs_r_pfc_prefix_add_left_value_hcvsum_body_steps + fs_a_pfc_prefix_add_left_value_hcvsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_left_value_hcvresiduebound. pfa_gap_prefix_add_left_value_hcvresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_value_hcvresiduecongruence pfa_offset_right_prefix_add_left_value_hcvresiduecongruence. (pfc_natural_sum_prefix_add_left_value_hcv) + (p) * pfa_offset_left_prefix_add_left_value_hcvresiduecongruence = (r) + (p) * pfa_offset_right_prefix_add_left_value_hcvresiduecongruence)))))))))))
  32. specialize hv (i)
  33. apply hv
  34. exact hi
  35. cases hcv
  36. cases hcv_witness
  37. have hcw : exists r. ((((exists ff_h_pfp_prefix_add_left_hcw. ff_h_pfp_prefix_add_left_hcw + S (r) = S ((S (i)) * wc)) /\ exists ff_q_pfp_prefix_add_left_hcw. wb = ff_q_pfp_prefix_add_left_hcw * S ((S (i)) * wc) + (r))) /\ ((exists pfc_terms_code_prefix_add_left_value_hcw pfc_terms_scale_prefix_add_left_value_hcw pfc_natural_sum_prefix_add_left_value_hcw. ((forall pfc_index_prefix_add_left_value_hcwdiagonal. (exists pfa_gap_prefix_add_left_value_hcwdiagonalbound. pfa_gap_prefix_add_left_value_hcwdiagonalbound + S (pfc_index_prefix_add_left_value_hcwdiagonal) = (S (i))) -> exists pfc_value_prefix_add_left_value_hcwdiagonal. ((((exists ff_h_pfp_prefix_add_left_value_hcwdiagonalentry. ff_h_pfp_prefix_add_left_value_hcwdiagonalentry + S (pfc_value_prefix_add_left_value_hcwdiagonal) = S ((S (pfc_index_prefix_add_left_value_hcwdiagonal)) * pfc_terms_scale_prefix_add_left_value_hcw)) /\ exists ff_q_pfp_prefix_add_left_value_hcwdiagonalentry. pfc_terms_code_prefix_add_left_value_hcw = ff_q_pfp_prefix_add_left_value_hcwdiagonalentry * S ((S (pfc_index_prefix_add_left_value_hcwdiagonal)) * pfc_terms_scale_prefix_add_left_value_hcw) + (pfc_value_prefix_add_left_value_hcwdiagonal))) /\ ((exists pfc_complement_prefix_add_left_value_hcwdiagonalterm pfc_left_prefix_add_left_value_hcwdiagonalterm pfc_right_prefix_add_left_value_hcwdiagonalterm. (((pfc_index_prefix_add_left_value_hcwdiagonal)+pfc_complement_prefix_add_left_value_hcwdiagonalterm=(i)) /\ ((((((exists pfa_gap_prefix_add_left_value_hcwdiagonaltermleftinside. pfa_gap_prefix_add_left_value_hcwdiagonaltermleftinside + S (pfc_index_prefix_add_left_value_hcwdiagonal) = (M)) /\ ((((exists ff_h_pfp_prefix_add_left_value_hcwdiagonaltermleftentry. ff_h_pfp_prefix_add_left_value_hcwdiagonaltermleftentry + S (pfc_left_prefix_add_left_value_hcwdiagonalterm) = S ((S (pfc_index_prefix_add_left_value_hcwdiagonal)) * dc)) /\ exists ff_q_pfp_prefix_add_left_value_hcwdiagonaltermleftentry. db = ff_q_pfp_prefix_add_left_value_hcwdiagonaltermleftentry * S ((S (pfc_index_prefix_add_left_value_hcwdiagonal)) * dc) + (pfc_left_prefix_add_left_value_hcwdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_value_hcwdiagonaltermleftoutside. pfc_gap_prefix_add_left_value_hcwdiagonaltermleftoutside+(M)=(pfc_index_prefix_add_left_value_hcwdiagonal)) /\ (((pfc_left_prefix_add_left_value_hcwdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_left_value_hcwdiagonaltermrightinside. pfa_gap_prefix_add_left_value_hcwdiagonaltermrightinside + S (pfc_complement_prefix_add_left_value_hcwdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_prefix_add_left_value_hcwdiagonaltermrightentry. ff_h_pfp_prefix_add_left_value_hcwdiagonaltermrightentry + S (pfc_right_prefix_add_left_value_hcwdiagonalterm) = S ((S (pfc_complement_prefix_add_left_value_hcwdiagonalterm)) * cc)) /\ exists ff_q_pfp_prefix_add_left_value_hcwdiagonaltermrightentry. cb = ff_q_pfp_prefix_add_left_value_hcwdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_left_value_hcwdiagonalterm)) * cc) + (pfc_right_prefix_add_left_value_hcwdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_value_hcwdiagonaltermrightoutside. pfc_gap_prefix_add_left_value_hcwdiagonaltermrightoutside+(L)=(pfc_complement_prefix_add_left_value_hcwdiagonalterm)) /\ (((pfc_right_prefix_add_left_value_hcwdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_left_value_hcwdiagonal)=pfc_left_prefix_add_left_value_hcwdiagonalterm*pfc_right_prefix_add_left_value_hcwdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_left_value_hcwsum fs_v_pfc_prefix_add_left_value_hcwsum. ((((exists fs_h_pfc_prefix_add_left_value_hcwsum_body_start. fs_h_pfc_prefix_add_left_value_hcwsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_left_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcwsum_body_start. fs_u_pfc_prefix_add_left_value_hcwsum = fs_q_pfc_prefix_add_left_value_hcwsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_left_value_hcwsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcwsum_body_terminal. fs_h_pfc_prefix_add_left_value_hcwsum_body_terminal + S (pfc_natural_sum_prefix_add_left_value_hcw) = S ((S (S (i))) * fs_v_pfc_prefix_add_left_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcwsum_body_terminal. fs_u_pfc_prefix_add_left_value_hcwsum = fs_q_pfc_prefix_add_left_value_hcwsum_body_terminal * S ((S (S (i))) * fs_v_pfc_prefix_add_left_value_hcwsum) + (pfc_natural_sum_prefix_add_left_value_hcw))) /\ forall fs_i_pfc_prefix_add_left_value_hcwsum_body_steps. (exists fs_lt_pfc_prefix_add_left_value_hcwsum_body_steps_bound. fs_lt_pfc_prefix_add_left_value_hcwsum_body_steps_bound + S fs_i_pfc_prefix_add_left_value_hcwsum_body_steps = S (i)) -> exists fs_a_pfc_prefix_add_left_value_hcwsum_body_steps fs_r_pfc_prefix_add_left_value_hcwsum_body_steps fs_s_pfc_prefix_add_left_value_hcwsum_body_steps. ((((exists fs_h_pfc_prefix_add_left_value_hcwsum_body_steps_summand. fs_h_pfc_prefix_add_left_value_hcwsum_body_steps_summand + S (fs_a_pfc_prefix_add_left_value_hcwsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_value_hcwsum_body_steps)) * pfc_terms_scale_prefix_add_left_value_hcw)) /\ exists fs_q_pfc_prefix_add_left_value_hcwsum_body_steps_summand. pfc_terms_code_prefix_add_left_value_hcw = fs_q_pfc_prefix_add_left_value_hcwsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_left_value_hcwsum_body_steps)) * pfc_terms_scale_prefix_add_left_value_hcw) + (fs_a_pfc_prefix_add_left_value_hcwsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcwsum_body_steps_partial. fs_h_pfc_prefix_add_left_value_hcwsum_body_steps_partial + S (fs_r_pfc_prefix_add_left_value_hcwsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcwsum_body_steps_partial. fs_u_pfc_prefix_add_left_value_hcwsum = fs_q_pfc_prefix_add_left_value_hcwsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_left_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcwsum) + (fs_r_pfc_prefix_add_left_value_hcwsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcwsum_body_steps_successor. fs_h_pfc_prefix_add_left_value_hcwsum_body_steps_successor + S (fs_s_pfc_prefix_add_left_value_hcwsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_left_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcwsum_body_steps_successor. fs_u_pfc_prefix_add_left_value_hcwsum = fs_q_pfc_prefix_add_left_value_hcwsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_left_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcwsum) + (fs_s_pfc_prefix_add_left_value_hcwsum_body_steps))) /\ fs_s_pfc_prefix_add_left_value_hcwsum_body_steps = fs_r_pfc_prefix_add_left_value_hcwsum_body_steps + fs_a_pfc_prefix_add_left_value_hcwsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_left_value_hcwresiduebound. pfa_gap_prefix_add_left_value_hcwresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_value_hcwresiduecongruence pfa_offset_right_prefix_add_left_value_hcwresiduecongruence. (pfc_natural_sum_prefix_add_left_value_hcw) + (p) * pfa_offset_left_prefix_add_left_value_hcwresiduecongruence = (r) + (p) * pfa_offset_right_prefix_add_left_value_hcwresiduecongruence)))))))))))
  38. specialize hw (i)
  39. apply hw
  40. exact hi
  41. cases hcw
  42. cases hcw_witness
  43. exists x
  44. exists x1
  45. exists x2
  46. split
  47. exact hcu_witness_left
  48. split
  49. exact hcv_witness_left
  50. split
  51. exact hcw_witness_left
  52. specialize prime_field_convolution_coefficient_left_add (p)
  53. specialize prime_field_convolution_coefficient_left_add (ab)
  54. specialize prime_field_convolution_coefficient_left_add (ac)
  55. specialize prime_field_convolution_coefficient_left_add (bb)
  56. specialize prime_field_convolution_coefficient_left_add (bc)
  57. specialize prime_field_convolution_coefficient_left_add (cb)
  58. specialize prime_field_convolution_coefficient_left_add (cc)
  59. specialize prime_field_convolution_coefficient_left_add (L)
  60. specialize prime_field_convolution_coefficient_left_add (db)
  61. specialize prime_field_convolution_coefficient_left_add (dc)
  62. specialize prime_field_convolution_coefficient_left_add (M)
  63. specialize prime_field_convolution_coefficient_left_add (i)
  64. specialize prime_field_convolution_coefficient_left_add (x)
  65. specialize prime_field_convolution_coefficient_left_add (x1)
  66. specialize prime_field_convolution_coefficient_left_add (x2)
  67. apply prime_field_convolution_coefficient_left_add
  68. exact hs
  69. exact hcu_witness_right
  70. exact hcv_witness_right
  71. exact hcw_witness_right
prime_field_polynomial_convolution_left_add · unchanged support, not a new admission
forall p ab ac bb bc cb cc L db dc M ub uc vb vc wb wc N. (forall pfp_index_proper_left_add_source. (exists pfa_gap_proper_left_add_sourceindex. pfa_gap_proper_left_add_sourceindex + S (pfp_index_proper_left_add_source) = (L)) -> exists pfp_left_proper_left_add_source pfp_right_proper_left_add_source pfp_value_proper_left_add_source. ((((exists ff_h_pfp_proper_left_add_sourceleft. ff_h_pfp_proper_left_add_sourceleft + S (pfp_left_proper_left_add_source) = S ((S (pfp_index_proper_left_add_source)) * ac)) /\ exists ff_q_pfp_proper_left_add_sourceleft. ab = ff_q_pfp_proper_left_add_sourceleft * S ((S (pfp_index_proper_left_add_source)) * ac) + (pfp_left_proper_left_add_source))) /\ (((((exists ff_h_pfp_proper_left_add_sourceright. ff_h_pfp_proper_left_add_sourceright + S (pfp_right_proper_left_add_source) = S ((S (pfp_index_proper_left_add_source)) * bc)) /\ exists ff_q_pfp_proper_left_add_sourceright. bb = ff_q_pfp_proper_left_add_sourceright * S ((S (pfp_index_proper_left_add_source)) * bc) + (pfp_right_proper_left_add_source))) /\ (((((exists ff_h_pfp_proper_left_add_sourcetarget. ff_h_pfp_proper_left_add_sourcetarget + S (pfp_value_proper_left_add_source) = S ((S (pfp_index_proper_left_add_source)) * cc)) /\ exists ff_q_pfp_proper_left_add_sourcetarget. cb = ff_q_pfp_proper_left_add_sourcetarget * S ((S (pfp_index_proper_left_add_source)) * cc) + (pfp_value_proper_left_add_source))) /\ ((((exists pfa_gap_proper_left_add_sourceoperationleft. pfa_gap_proper_left_add_sourceoperationleft + S (pfp_left_proper_left_add_source) = (p)) /\ (((exists pfa_gap_proper_left_add_sourceoperationright. pfa_gap_proper_left_add_sourceoperationright + S (pfp_right_proper_left_add_source) = (p)) /\ ((((exists pfa_gap_proper_left_add_sourceoperationresultbound. pfa_gap_proper_left_add_sourceoperationresultbound + S (pfp_value_proper_left_add_source) = (p)) /\ ((exists pfa_offset_left_proper_left_add_sourceoperationresultcongruence pfa_offset_right_proper_left_add_sourceoperationresultcongruence. ((pfp_left_proper_left_add_source) + (pfp_right_proper_left_add_source)) + (p) * pfa_offset_left_proper_left_add_sourceoperationresultcongruence = (pfp_value_proper_left_add_source) + (p) * pfa_offset_right_proper_left_add_sourceoperationresultcongruence)))))))))))))))) -> (((forall fom_index_pfp_proper_left_add_ubleft. (exists fom_gap_pfp_proper_left_add_ubleft_index_bound. fom_gap_pfp_proper_left_add_ubleft_index_bound + S (fom_index_pfp_proper_left_add_ubleft) = M) -> exists fom_value_pfp_proper_left_add_ubleft. ((((exists fom_beta_height_pfp_proper_left_add_ubleft_entry. fom_beta_height_pfp_proper_left_add_ubleft_entry + S (fom_value_pfp_proper_left_add_ubleft) = S ((S (fom_index_pfp_proper_left_add_ubleft)) * dc)) /\ exists fom_beta_quotient_pfp_proper_left_add_ubleft_entry. db = fom_beta_quotient_pfp_proper_left_add_ubleft_entry * S ((S (fom_index_pfp_proper_left_add_ubleft)) * dc) + (fom_value_pfp_proper_left_add_ubleft))) /\ (exists fom_gap_pfp_proper_left_add_ubleft_value_bound. fom_gap_pfp_proper_left_add_ubleft_value_bound + S (fom_value_pfp_proper_left_add_ubleft) = p))) /\ (((forall fom_index_pfp_proper_left_add_ubright. (exists fom_gap_pfp_proper_left_add_ubright_index_bound. fom_gap_pfp_proper_left_add_ubright_index_bound + S (fom_index_pfp_proper_left_add_ubright) = L) -> exists fom_value_pfp_proper_left_add_ubright. ((((exists fom_beta_height_pfp_proper_left_add_ubright_entry. fom_beta_height_pfp_proper_left_add_ubright_entry + S (fom_value_pfp_proper_left_add_ubright) = S ((S (fom_index_pfp_proper_left_add_ubright)) * ac)) /\ exists fom_beta_quotient_pfp_proper_left_add_ubright_entry. ab = fom_beta_quotient_pfp_proper_left_add_ubright_entry * S ((S (fom_index_pfp_proper_left_add_ubright)) * ac) + (fom_value_pfp_proper_left_add_ubright))) /\ (exists fom_gap_pfp_proper_left_add_ubright_value_bound. fom_gap_pfp_proper_left_add_ubright_value_bound + S (fom_value_pfp_proper_left_add_ubright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((N)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (N)))))))) /\ ((forall pfc_index_proper_left_add_ubcoefficients. (exists pfa_gap_proper_left_add_ubcoefficientsbound. pfa_gap_proper_left_add_ubcoefficientsbound + S (pfc_index_proper_left_add_ubcoefficients) = (N)) -> exists pfc_value_proper_left_add_ubcoefficients. ((((exists ff_h_pfp_proper_left_add_ubcoefficientsentry. ff_h_pfp_proper_left_add_ubcoefficientsentry + S (pfc_value_proper_left_add_ubcoefficients) = S ((S (pfc_index_proper_left_add_ubcoefficients)) * uc)) /\ exists ff_q_pfp_proper_left_add_ubcoefficientsentry. ub = ff_q_pfp_proper_left_add_ubcoefficientsentry * S ((S (pfc_index_proper_left_add_ubcoefficients)) * uc) + (pfc_value_proper_left_add_ubcoefficients))) /\ ((exists pfc_terms_code_proper_left_add_ubcoefficientscoefficient pfc_terms_scale_proper_left_add_ubcoefficientscoefficient pfc_natural_sum_proper_left_add_ubcoefficientscoefficient. ((forall pfc_index_proper_left_add_ubcoefficientscoefficientdiagonal. (exists pfa_gap_proper_left_add_ubcoefficientscoefficientdiagonalbound. pfa_gap_proper_left_add_ubcoefficientscoefficientdiagonalbound + S (pfc_index_proper_left_add_ubcoefficientscoefficientdiagonal) = (S (pfc_index_proper_left_add_ubcoefficients))) -> exists pfc_value_proper_left_add_ubcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_proper_left_add_ubcoefficientscoefficientdiagonalentry. ff_h_pfp_proper_left_add_ubcoefficientscoefficientdiagonalentry + S (pfc_value_proper_left_add_ubcoefficientscoefficientdiagonal) = S ((S (pfc_index_proper_left_add_ubcoefficientscoefficientdiagonal)) * pfc_terms_scale_proper_left_add_ubcoefficientscoefficient)) /\ exists ff_q_pfp_proper_left_add_ubcoefficientscoefficientdiagonalentry. pfc_terms_code_proper_left_add_ubcoefficientscoefficient = ff_q_pfp_proper_left_add_ubcoefficientscoefficientdiagonalentry * S ((S (pfc_index_proper_left_add_ubcoefficientscoefficientdiagonal)) * pfc_terms_scale_proper_left_add_ubcoefficientscoefficient) + (pfc_value_proper_left_add_ubcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_proper_left_add_ubcoefficientscoefficientdiagonalterm pfc_left_proper_left_add_ubcoefficientscoefficientdiagonalterm pfc_right_proper_left_add_ubcoefficientscoefficientdiagonalterm. (((pfc_index_proper_left_add_ubcoefficientscoefficientdiagonal)+pfc_complement_proper_left_add_ubcoefficientscoefficientdiagonalterm=(pfc_index_proper_left_add_ubcoefficients)) /\ ((((((exists pfa_gap_proper_left_add_ubcoefficientscoefficientdiagonaltermleftinside. pfa_gap_proper_left_add_ubcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_proper_left_add_ubcoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_proper_left_add_ubcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_proper_left_add_ubcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_proper_left_add_ubcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_proper_left_add_ubcoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_proper_left_add_ubcoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_proper_left_add_ubcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_proper_left_add_ubcoefficientscoefficientdiagonal)) * dc) + (pfc_left_proper_left_add_ubcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_proper_left_add_ubcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_proper_left_add_ubcoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_proper_left_add_ubcoefficientscoefficientdiagonal)) /\ (((pfc_left_proper_left_add_ubcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_proper_left_add_ubcoefficientscoefficientdiagonaltermrightinside. pfa_gap_proper_left_add_ubcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_proper_left_add_ubcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_proper_left_add_ubcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_proper_left_add_ubcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_proper_left_add_ubcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_proper_left_add_ubcoefficientscoefficientdiagonalterm)) * ac)) /\ exists ff_q_pfp_proper_left_add_ubcoefficientscoefficientdiagonaltermrightentry. ab = ff_q_pfp_proper_left_add_ubcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_proper_left_add_ubcoefficientscoefficientdiagonalterm)) * ac) + (pfc_right_proper_left_add_ubcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_proper_left_add_ubcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_proper_left_add_ubcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_proper_left_add_ubcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_proper_left_add_ubcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_proper_left_add_ubcoefficientscoefficientdiagonal)=pfc_left_proper_left_add_ubcoefficientscoefficientdiagonalterm*pfc_right_proper_left_add_ubcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_proper_left_add_ubcoefficientscoefficientsum fs_v_pfc_proper_left_add_ubcoefficientscoefficientsum. ((((exists fs_h_pfc_proper_left_add_ubcoefficientscoefficientsum_body_start. fs_h_pfc_proper_left_add_ubcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_proper_left_add_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_left_add_ubcoefficientscoefficientsum_body_start. fs_u_pfc_proper_left_add_ubcoefficientscoefficientsum = fs_q_pfc_proper_left_add_ubcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_proper_left_add_ubcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_proper_left_add_ubcoefficientscoefficientsum_body_terminal. fs_h_pfc_proper_left_add_ubcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_proper_left_add_ubcoefficientscoefficient) = S ((S (S (pfc_index_proper_left_add_ubcoefficients))) * fs_v_pfc_proper_left_add_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_left_add_ubcoefficientscoefficientsum_body_terminal. fs_u_pfc_proper_left_add_ubcoefficientscoefficientsum = fs_q_pfc_proper_left_add_ubcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_proper_left_add_ubcoefficients))) * fs_v_pfc_proper_left_add_ubcoefficientscoefficientsum) + (pfc_natural_sum_proper_left_add_ubcoefficientscoefficient))) /\ forall fs_i_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps = S (pfc_index_proper_left_add_ubcoefficients)) -> exists fs_a_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps fs_r_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps fs_s_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_proper_left_add_ubcoefficientscoefficient)) /\ exists fs_q_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_proper_left_add_ubcoefficientscoefficient = fs_q_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_proper_left_add_ubcoefficientscoefficient) + (fs_a_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_left_add_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_proper_left_add_ubcoefficientscoefficientsum = fs_q_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_left_add_ubcoefficientscoefficientsum) + (fs_r_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_left_add_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_proper_left_add_ubcoefficientscoefficientsum = fs_q_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_left_add_ubcoefficientscoefficientsum) + (fs_s_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps = fs_r_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps + fs_a_pfc_proper_left_add_ubcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_proper_left_add_ubcoefficientscoefficientresiduebound. pfa_gap_proper_left_add_ubcoefficientscoefficientresiduebound + S (pfc_value_proper_left_add_ubcoefficients) = (p)) /\ ((exists pfa_offset_left_proper_left_add_ubcoefficientscoefficientresiduecongruence pfa_offset_right_proper_left_add_ubcoefficientscoefficientresiduecongruence. (pfc_natural_sum_proper_left_add_ubcoefficientscoefficient) + (p) * pfa_offset_left_proper_left_add_ubcoefficientscoefficientresiduecongruence = (pfc_value_proper_left_add_ubcoefficients) + (p) * pfa_offset_right_proper_left_add_ubcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_proper_left_add_vbleft. (exists fom_gap_pfp_proper_left_add_vbleft_index_bound. fom_gap_pfp_proper_left_add_vbleft_index_bound + S (fom_index_pfp_proper_left_add_vbleft) = M) -> exists fom_value_pfp_proper_left_add_vbleft. ((((exists fom_beta_height_pfp_proper_left_add_vbleft_entry. fom_beta_height_pfp_proper_left_add_vbleft_entry + S (fom_value_pfp_proper_left_add_vbleft) = S ((S (fom_index_pfp_proper_left_add_vbleft)) * dc)) /\ exists fom_beta_quotient_pfp_proper_left_add_vbleft_entry. db = fom_beta_quotient_pfp_proper_left_add_vbleft_entry * S ((S (fom_index_pfp_proper_left_add_vbleft)) * dc) + (fom_value_pfp_proper_left_add_vbleft))) /\ (exists fom_gap_pfp_proper_left_add_vbleft_value_bound. fom_gap_pfp_proper_left_add_vbleft_value_bound + S (fom_value_pfp_proper_left_add_vbleft) = p))) /\ (((forall fom_index_pfp_proper_left_add_vbright. (exists fom_gap_pfp_proper_left_add_vbright_index_bound. fom_gap_pfp_proper_left_add_vbright_index_bound + S (fom_index_pfp_proper_left_add_vbright) = L) -> exists fom_value_pfp_proper_left_add_vbright. ((((exists fom_beta_height_pfp_proper_left_add_vbright_entry. fom_beta_height_pfp_proper_left_add_vbright_entry + S (fom_value_pfp_proper_left_add_vbright) = S ((S (fom_index_pfp_proper_left_add_vbright)) * bc)) /\ exists fom_beta_quotient_pfp_proper_left_add_vbright_entry. bb = fom_beta_quotient_pfp_proper_left_add_vbright_entry * S ((S (fom_index_pfp_proper_left_add_vbright)) * bc) + (fom_value_pfp_proper_left_add_vbright))) /\ (exists fom_gap_pfp_proper_left_add_vbright_value_bound. fom_gap_pfp_proper_left_add_vbright_value_bound + S (fom_value_pfp_proper_left_add_vbright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((N)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (N)))))))) /\ ((forall pfc_index_proper_left_add_vbcoefficients. (exists pfa_gap_proper_left_add_vbcoefficientsbound. pfa_gap_proper_left_add_vbcoefficientsbound + S (pfc_index_proper_left_add_vbcoefficients) = (N)) -> exists pfc_value_proper_left_add_vbcoefficients. ((((exists ff_h_pfp_proper_left_add_vbcoefficientsentry. ff_h_pfp_proper_left_add_vbcoefficientsentry + S (pfc_value_proper_left_add_vbcoefficients) = S ((S (pfc_index_proper_left_add_vbcoefficients)) * vc)) /\ exists ff_q_pfp_proper_left_add_vbcoefficientsentry. vb = ff_q_pfp_proper_left_add_vbcoefficientsentry * S ((S (pfc_index_proper_left_add_vbcoefficients)) * vc) + (pfc_value_proper_left_add_vbcoefficients))) /\ ((exists pfc_terms_code_proper_left_add_vbcoefficientscoefficient pfc_terms_scale_proper_left_add_vbcoefficientscoefficient pfc_natural_sum_proper_left_add_vbcoefficientscoefficient. ((forall pfc_index_proper_left_add_vbcoefficientscoefficientdiagonal. (exists pfa_gap_proper_left_add_vbcoefficientscoefficientdiagonalbound. pfa_gap_proper_left_add_vbcoefficientscoefficientdiagonalbound + S (pfc_index_proper_left_add_vbcoefficientscoefficientdiagonal) = (S (pfc_index_proper_left_add_vbcoefficients))) -> exists pfc_value_proper_left_add_vbcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_proper_left_add_vbcoefficientscoefficientdiagonalentry. ff_h_pfp_proper_left_add_vbcoefficientscoefficientdiagonalentry + S (pfc_value_proper_left_add_vbcoefficientscoefficientdiagonal) = S ((S (pfc_index_proper_left_add_vbcoefficientscoefficientdiagonal)) * pfc_terms_scale_proper_left_add_vbcoefficientscoefficient)) /\ exists ff_q_pfp_proper_left_add_vbcoefficientscoefficientdiagonalentry. pfc_terms_code_proper_left_add_vbcoefficientscoefficient = ff_q_pfp_proper_left_add_vbcoefficientscoefficientdiagonalentry * S ((S (pfc_index_proper_left_add_vbcoefficientscoefficientdiagonal)) * pfc_terms_scale_proper_left_add_vbcoefficientscoefficient) + (pfc_value_proper_left_add_vbcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_proper_left_add_vbcoefficientscoefficientdiagonalterm pfc_left_proper_left_add_vbcoefficientscoefficientdiagonalterm pfc_right_proper_left_add_vbcoefficientscoefficientdiagonalterm. (((pfc_index_proper_left_add_vbcoefficientscoefficientdiagonal)+pfc_complement_proper_left_add_vbcoefficientscoefficientdiagonalterm=(pfc_index_proper_left_add_vbcoefficients)) /\ ((((((exists pfa_gap_proper_left_add_vbcoefficientscoefficientdiagonaltermleftinside. pfa_gap_proper_left_add_vbcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_proper_left_add_vbcoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_proper_left_add_vbcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_proper_left_add_vbcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_proper_left_add_vbcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_proper_left_add_vbcoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_proper_left_add_vbcoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_proper_left_add_vbcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_proper_left_add_vbcoefficientscoefficientdiagonal)) * dc) + (pfc_left_proper_left_add_vbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_proper_left_add_vbcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_proper_left_add_vbcoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_proper_left_add_vbcoefficientscoefficientdiagonal)) /\ (((pfc_left_proper_left_add_vbcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_proper_left_add_vbcoefficientscoefficientdiagonaltermrightinside. pfa_gap_proper_left_add_vbcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_proper_left_add_vbcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_proper_left_add_vbcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_proper_left_add_vbcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_proper_left_add_vbcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_proper_left_add_vbcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_proper_left_add_vbcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_proper_left_add_vbcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_proper_left_add_vbcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_proper_left_add_vbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_proper_left_add_vbcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_proper_left_add_vbcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_proper_left_add_vbcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_proper_left_add_vbcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_proper_left_add_vbcoefficientscoefficientdiagonal)=pfc_left_proper_left_add_vbcoefficientscoefficientdiagonalterm*pfc_right_proper_left_add_vbcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_proper_left_add_vbcoefficientscoefficientsum fs_v_pfc_proper_left_add_vbcoefficientscoefficientsum. ((((exists fs_h_pfc_proper_left_add_vbcoefficientscoefficientsum_body_start. fs_h_pfc_proper_left_add_vbcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_proper_left_add_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_left_add_vbcoefficientscoefficientsum_body_start. fs_u_pfc_proper_left_add_vbcoefficientscoefficientsum = fs_q_pfc_proper_left_add_vbcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_proper_left_add_vbcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_proper_left_add_vbcoefficientscoefficientsum_body_terminal. fs_h_pfc_proper_left_add_vbcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_proper_left_add_vbcoefficientscoefficient) = S ((S (S (pfc_index_proper_left_add_vbcoefficients))) * fs_v_pfc_proper_left_add_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_left_add_vbcoefficientscoefficientsum_body_terminal. fs_u_pfc_proper_left_add_vbcoefficientscoefficientsum = fs_q_pfc_proper_left_add_vbcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_proper_left_add_vbcoefficients))) * fs_v_pfc_proper_left_add_vbcoefficientscoefficientsum) + (pfc_natural_sum_proper_left_add_vbcoefficientscoefficient))) /\ forall fs_i_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps = S (pfc_index_proper_left_add_vbcoefficients)) -> exists fs_a_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps fs_r_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps fs_s_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_proper_left_add_vbcoefficientscoefficient)) /\ exists fs_q_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_proper_left_add_vbcoefficientscoefficient = fs_q_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_proper_left_add_vbcoefficientscoefficient) + (fs_a_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_left_add_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_proper_left_add_vbcoefficientscoefficientsum = fs_q_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_left_add_vbcoefficientscoefficientsum) + (fs_r_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_left_add_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_proper_left_add_vbcoefficientscoefficientsum = fs_q_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_left_add_vbcoefficientscoefficientsum) + (fs_s_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps = fs_r_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps + fs_a_pfc_proper_left_add_vbcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_proper_left_add_vbcoefficientscoefficientresiduebound. pfa_gap_proper_left_add_vbcoefficientscoefficientresiduebound + S (pfc_value_proper_left_add_vbcoefficients) = (p)) /\ ((exists pfa_offset_left_proper_left_add_vbcoefficientscoefficientresiduecongruence pfa_offset_right_proper_left_add_vbcoefficientscoefficientresiduecongruence. (pfc_natural_sum_proper_left_add_vbcoefficientscoefficient) + (p) * pfa_offset_left_proper_left_add_vbcoefficientscoefficientresiduecongruence = (pfc_value_proper_left_add_vbcoefficients) + (p) * pfa_offset_right_proper_left_add_vbcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_proper_left_add_wbleft. (exists fom_gap_pfp_proper_left_add_wbleft_index_bound. fom_gap_pfp_proper_left_add_wbleft_index_bound + S (fom_index_pfp_proper_left_add_wbleft) = M) -> exists fom_value_pfp_proper_left_add_wbleft. ((((exists fom_beta_height_pfp_proper_left_add_wbleft_entry. fom_beta_height_pfp_proper_left_add_wbleft_entry + S (fom_value_pfp_proper_left_add_wbleft) = S ((S (fom_index_pfp_proper_left_add_wbleft)) * dc)) /\ exists fom_beta_quotient_pfp_proper_left_add_wbleft_entry. db = fom_beta_quotient_pfp_proper_left_add_wbleft_entry * S ((S (fom_index_pfp_proper_left_add_wbleft)) * dc) + (fom_value_pfp_proper_left_add_wbleft))) /\ (exists fom_gap_pfp_proper_left_add_wbleft_value_bound. fom_gap_pfp_proper_left_add_wbleft_value_bound + S (fom_value_pfp_proper_left_add_wbleft) = p))) /\ (((forall fom_index_pfp_proper_left_add_wbright. (exists fom_gap_pfp_proper_left_add_wbright_index_bound. fom_gap_pfp_proper_left_add_wbright_index_bound + S (fom_index_pfp_proper_left_add_wbright) = L) -> exists fom_value_pfp_proper_left_add_wbright. ((((exists fom_beta_height_pfp_proper_left_add_wbright_entry. fom_beta_height_pfp_proper_left_add_wbright_entry + S (fom_value_pfp_proper_left_add_wbright) = S ((S (fom_index_pfp_proper_left_add_wbright)) * cc)) /\ exists fom_beta_quotient_pfp_proper_left_add_wbright_entry. cb = fom_beta_quotient_pfp_proper_left_add_wbright_entry * S ((S (fom_index_pfp_proper_left_add_wbright)) * cc) + (fom_value_pfp_proper_left_add_wbright))) /\ (exists fom_gap_pfp_proper_left_add_wbright_value_bound. fom_gap_pfp_proper_left_add_wbright_value_bound + S (fom_value_pfp_proper_left_add_wbright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((N)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (N)))))))) /\ ((forall pfc_index_proper_left_add_wbcoefficients. (exists pfa_gap_proper_left_add_wbcoefficientsbound. pfa_gap_proper_left_add_wbcoefficientsbound + S (pfc_index_proper_left_add_wbcoefficients) = (N)) -> exists pfc_value_proper_left_add_wbcoefficients. ((((exists ff_h_pfp_proper_left_add_wbcoefficientsentry. ff_h_pfp_proper_left_add_wbcoefficientsentry + S (pfc_value_proper_left_add_wbcoefficients) = S ((S (pfc_index_proper_left_add_wbcoefficients)) * wc)) /\ exists ff_q_pfp_proper_left_add_wbcoefficientsentry. wb = ff_q_pfp_proper_left_add_wbcoefficientsentry * S ((S (pfc_index_proper_left_add_wbcoefficients)) * wc) + (pfc_value_proper_left_add_wbcoefficients))) /\ ((exists pfc_terms_code_proper_left_add_wbcoefficientscoefficient pfc_terms_scale_proper_left_add_wbcoefficientscoefficient pfc_natural_sum_proper_left_add_wbcoefficientscoefficient. ((forall pfc_index_proper_left_add_wbcoefficientscoefficientdiagonal. (exists pfa_gap_proper_left_add_wbcoefficientscoefficientdiagonalbound. pfa_gap_proper_left_add_wbcoefficientscoefficientdiagonalbound + S (pfc_index_proper_left_add_wbcoefficientscoefficientdiagonal) = (S (pfc_index_proper_left_add_wbcoefficients))) -> exists pfc_value_proper_left_add_wbcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_proper_left_add_wbcoefficientscoefficientdiagonalentry. ff_h_pfp_proper_left_add_wbcoefficientscoefficientdiagonalentry + S (pfc_value_proper_left_add_wbcoefficientscoefficientdiagonal) = S ((S (pfc_index_proper_left_add_wbcoefficientscoefficientdiagonal)) * pfc_terms_scale_proper_left_add_wbcoefficientscoefficient)) /\ exists ff_q_pfp_proper_left_add_wbcoefficientscoefficientdiagonalentry. pfc_terms_code_proper_left_add_wbcoefficientscoefficient = ff_q_pfp_proper_left_add_wbcoefficientscoefficientdiagonalentry * S ((S (pfc_index_proper_left_add_wbcoefficientscoefficientdiagonal)) * pfc_terms_scale_proper_left_add_wbcoefficientscoefficient) + (pfc_value_proper_left_add_wbcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_proper_left_add_wbcoefficientscoefficientdiagonalterm pfc_left_proper_left_add_wbcoefficientscoefficientdiagonalterm pfc_right_proper_left_add_wbcoefficientscoefficientdiagonalterm. (((pfc_index_proper_left_add_wbcoefficientscoefficientdiagonal)+pfc_complement_proper_left_add_wbcoefficientscoefficientdiagonalterm=(pfc_index_proper_left_add_wbcoefficients)) /\ ((((((exists pfa_gap_proper_left_add_wbcoefficientscoefficientdiagonaltermleftinside. pfa_gap_proper_left_add_wbcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_proper_left_add_wbcoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_proper_left_add_wbcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_proper_left_add_wbcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_proper_left_add_wbcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_proper_left_add_wbcoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_proper_left_add_wbcoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_proper_left_add_wbcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_proper_left_add_wbcoefficientscoefficientdiagonal)) * dc) + (pfc_left_proper_left_add_wbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_proper_left_add_wbcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_proper_left_add_wbcoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_proper_left_add_wbcoefficientscoefficientdiagonal)) /\ (((pfc_left_proper_left_add_wbcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_proper_left_add_wbcoefficientscoefficientdiagonaltermrightinside. pfa_gap_proper_left_add_wbcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_proper_left_add_wbcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_proper_left_add_wbcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_proper_left_add_wbcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_proper_left_add_wbcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_proper_left_add_wbcoefficientscoefficientdiagonalterm)) * cc)) /\ exists ff_q_pfp_proper_left_add_wbcoefficientscoefficientdiagonaltermrightentry. cb = ff_q_pfp_proper_left_add_wbcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_proper_left_add_wbcoefficientscoefficientdiagonalterm)) * cc) + (pfc_right_proper_left_add_wbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_proper_left_add_wbcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_proper_left_add_wbcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_proper_left_add_wbcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_proper_left_add_wbcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_proper_left_add_wbcoefficientscoefficientdiagonal)=pfc_left_proper_left_add_wbcoefficientscoefficientdiagonalterm*pfc_right_proper_left_add_wbcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_proper_left_add_wbcoefficientscoefficientsum fs_v_pfc_proper_left_add_wbcoefficientscoefficientsum. ((((exists fs_h_pfc_proper_left_add_wbcoefficientscoefficientsum_body_start. fs_h_pfc_proper_left_add_wbcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_proper_left_add_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_left_add_wbcoefficientscoefficientsum_body_start. fs_u_pfc_proper_left_add_wbcoefficientscoefficientsum = fs_q_pfc_proper_left_add_wbcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_proper_left_add_wbcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_proper_left_add_wbcoefficientscoefficientsum_body_terminal. fs_h_pfc_proper_left_add_wbcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_proper_left_add_wbcoefficientscoefficient) = S ((S (S (pfc_index_proper_left_add_wbcoefficients))) * fs_v_pfc_proper_left_add_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_left_add_wbcoefficientscoefficientsum_body_terminal. fs_u_pfc_proper_left_add_wbcoefficientscoefficientsum = fs_q_pfc_proper_left_add_wbcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_proper_left_add_wbcoefficients))) * fs_v_pfc_proper_left_add_wbcoefficientscoefficientsum) + (pfc_natural_sum_proper_left_add_wbcoefficientscoefficient))) /\ forall fs_i_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps = S (pfc_index_proper_left_add_wbcoefficients)) -> exists fs_a_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps fs_r_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps fs_s_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_proper_left_add_wbcoefficientscoefficient)) /\ exists fs_q_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_proper_left_add_wbcoefficientscoefficient = fs_q_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_proper_left_add_wbcoefficientscoefficient) + (fs_a_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_left_add_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_proper_left_add_wbcoefficientscoefficientsum = fs_q_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_left_add_wbcoefficientscoefficientsum) + (fs_r_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_left_add_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_proper_left_add_wbcoefficientscoefficientsum = fs_q_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_left_add_wbcoefficientscoefficientsum) + (fs_s_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps = fs_r_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps + fs_a_pfc_proper_left_add_wbcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_proper_left_add_wbcoefficientscoefficientresiduebound. pfa_gap_proper_left_add_wbcoefficientscoefficientresiduebound + S (pfc_value_proper_left_add_wbcoefficients) = (p)) /\ ((exists pfa_offset_left_proper_left_add_wbcoefficientscoefficientresiduecongruence pfa_offset_right_proper_left_add_wbcoefficientscoefficientresiduecongruence. (pfc_natural_sum_proper_left_add_wbcoefficientscoefficient) + (p) * pfa_offset_left_proper_left_add_wbcoefficientscoefficientresiduecongruence = (pfc_value_proper_left_add_wbcoefficients) + (p) * pfa_offset_right_proper_left_add_wbcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (forall pfp_index_proper_left_add_result. (exists pfa_gap_proper_left_add_resultindex. pfa_gap_proper_left_add_resultindex + S (pfp_index_proper_left_add_result) = (N)) -> exists pfp_left_proper_left_add_result pfp_right_proper_left_add_result pfp_value_proper_left_add_result. ((((exists ff_h_pfp_proper_left_add_resultleft. ff_h_pfp_proper_left_add_resultleft + S (pfp_left_proper_left_add_result) = S ((S (pfp_index_proper_left_add_result)) * uc)) /\ exists ff_q_pfp_proper_left_add_resultleft. ub = ff_q_pfp_proper_left_add_resultleft * S ((S (pfp_index_proper_left_add_result)) * uc) + (pfp_left_proper_left_add_result))) /\ (((((exists ff_h_pfp_proper_left_add_resultright. ff_h_pfp_proper_left_add_resultright + S (pfp_right_proper_left_add_result) = S ((S (pfp_index_proper_left_add_result)) * vc)) /\ exists ff_q_pfp_proper_left_add_resultright. vb = ff_q_pfp_proper_left_add_resultright * S ((S (pfp_index_proper_left_add_result)) * vc) + (pfp_right_proper_left_add_result))) /\ (((((exists ff_h_pfp_proper_left_add_resulttarget. ff_h_pfp_proper_left_add_resulttarget + S (pfp_value_proper_left_add_result) = S ((S (pfp_index_proper_left_add_result)) * wc)) /\ exists ff_q_pfp_proper_left_add_resulttarget. wb = ff_q_pfp_proper_left_add_resulttarget * S ((S (pfp_index_proper_left_add_result)) * wc) + (pfp_value_proper_left_add_result))) /\ ((((exists pfa_gap_proper_left_add_resultoperationleft. pfa_gap_proper_left_add_resultoperationleft + S (pfp_left_proper_left_add_result) = (p)) /\ (((exists pfa_gap_proper_left_add_resultoperationright. pfa_gap_proper_left_add_resultoperationright + S (pfp_right_proper_left_add_result) = (p)) /\ ((((exists pfa_gap_proper_left_add_resultoperationresultbound. pfa_gap_proper_left_add_resultoperationresultbound + S (pfp_value_proper_left_add_result) = (p)) /\ ((exists pfa_offset_left_proper_left_add_resultoperationresultcongruence pfa_offset_right_proper_left_add_resultoperationresultcongruence. ((pfp_left_proper_left_add_result) + (pfp_right_proper_left_add_result)) + (p) * pfa_offset_left_proper_left_add_resultoperationresultcongruence = (pfp_value_proper_left_add_result) + (p) * pfa_offset_right_proper_left_add_resultoperationresultcongruence))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro db
  10. intro dc
  11. intro M
  12. intro ub
  13. intro uc
  14. intro vb
  15. intro vc
  16. intro wb
  17. intro wc
  18. intro N
  19. intro hs
  20. intro hu
  21. intro hv
  22. intro hw
  23. cases hu
  24. cases hu_right
  25. cases hu_right_right
  26. cases hv
  27. cases hv_right
  28. cases hv_right_right
  29. cases hw
  30. cases hw_right
  31. cases hw_right_right
  32. specialize prime_field_convolution_prefix_left_add (p)
  33. specialize prime_field_convolution_prefix_left_add (ab)
  34. specialize prime_field_convolution_prefix_left_add (ac)
  35. specialize prime_field_convolution_prefix_left_add (bb)
  36. specialize prime_field_convolution_prefix_left_add (bc)
  37. specialize prime_field_convolution_prefix_left_add (cb)
  38. specialize prime_field_convolution_prefix_left_add (cc)
  39. specialize prime_field_convolution_prefix_left_add (L)
  40. specialize prime_field_convolution_prefix_left_add (db)
  41. specialize prime_field_convolution_prefix_left_add (dc)
  42. specialize prime_field_convolution_prefix_left_add (M)
  43. specialize prime_field_convolution_prefix_left_add (ub)
  44. specialize prime_field_convolution_prefix_left_add (uc)
  45. specialize prime_field_convolution_prefix_left_add (vb)
  46. specialize prime_field_convolution_prefix_left_add (vc)
  47. specialize prime_field_convolution_prefix_left_add (wb)
  48. specialize prime_field_convolution_prefix_left_add (wc)
  49. specialize prime_field_convolution_prefix_left_add (N)
  50. apply prime_field_convolution_prefix_left_add
  51. exact hs
  52. exact hu_right_right_right
  53. exact hv_right_right_right
  54. exact hw_right_right_right
prime_field_polynomial_power_index_before_padding · unchanged support, not a new admission
forall t L i k. i+S k=t+L -> (exists pfrep_gap_power_before_outside. pfrep_gap_power_before_outside+(L)=(k)) -> (exists pfa_gap_power_before_result. pfa_gap_power_before_result + S (i) = (t))
  1. intro t
  2. intro L
  3. intro i
  4. intro k
  5. intro hi
  6. intro hk
  7. have ho : (exists pfrep_gap_power_pad_ge. pfrep_gap_power_pad_ge+(t)=(i)) \/ (exists pfa_gap_power_pad_lt. pfa_gap_power_pad_lt + S (i) = (t))
  8. specialize le_or_lt (t)
  9. specialize le_or_lt (i)
  10. apply le_or_lt
  11. cases ho
  12. cases ho_left
  13. have hbad : exists pfa_gap_power_pad_contradiction. pfa_gap_power_pad_contradiction + S (k) = (L)
  14. exists x
  15. specialize add_left_cancel (t)
  16. specialize add_left_cancel (x+S k)
  17. specialize add_left_cancel (L)
  18. apply add_left_cancel
  19. trans (t+x)+S k
  20. symm
  21. apply add_assoc
  22. have heq : t+x=i
  23. trans x+t
  24. apply add_comm
  25. exact ho_left_witness
  26. rewrite heq
  27. exact hi
  28. exfalso
  29. specialize lt_not_le (k)
  30. specialize lt_not_le (L)
  31. apply lt_not_le
  32. exact hbad
  33. exact hk
  34. exact ho_right
prime_field_polynomial_left_pad_power_coefficient · unchanged support, not a new admission
forall b c L t d e k a. (((forall pfp_repeat_index_pad_power_graphzeros. (exists pfa_gap_pad_power_graphzerosindex. pfa_gap_pad_power_graphzerosindex + S (pfp_repeat_index_pad_power_graphzeros) = (t)) -> (((exists ff_h_pfp_pad_power_graphzerosentry. ff_h_pfp_pad_power_graphzerosentry + S (0) = S ((S (pfp_repeat_index_pad_power_graphzeros)) * e)) /\ exists ff_q_pfp_pad_power_graphzerosentry. d = ff_q_pfp_pad_power_graphzerosentry * S ((S (pfp_repeat_index_pad_power_graphzeros)) * e) + (0)))) /\ ((forall pfrep_index_pad_power_graph pfrep_value_pad_power_graph. (exists pfa_gap_pad_power_graphbound. pfa_gap_pad_power_graphbound + S (pfrep_index_pad_power_graph) = (L)) -> (((exists ff_h_pfp_pad_power_graphinput. ff_h_pfp_pad_power_graphinput + S (pfrep_value_pad_power_graph) = S ((S (pfrep_index_pad_power_graph)) * c)) /\ exists ff_q_pfp_pad_power_graphinput. b = ff_q_pfp_pad_power_graphinput * S ((S (pfrep_index_pad_power_graph)) * c) + (pfrep_value_pad_power_graph))) -> (((exists ff_h_pfp_pad_power_graphoutput. ff_h_pfp_pad_power_graphoutput + S (pfrep_value_pad_power_graph) = S ((S ((t)+pfrep_index_pad_power_graph)) * e)) /\ exists ff_q_pfp_pad_power_graphoutput. d = ff_q_pfp_pad_power_graphoutput * S ((S ((t)+pfrep_index_pad_power_graph)) * e) + (pfrep_value_pad_power_graph))))))) -> ((exists pfrep_position_pad_power_source. ((pfrep_position_pad_power_source+S (k)=(L)) /\ ((((exists ff_h_pfp_pad_power_sourceentry. ff_h_pfp_pad_power_sourceentry + S (a) = S ((S (pfrep_position_pad_power_source)) * c)) /\ exists ff_q_pfp_pad_power_sourceentry. b = ff_q_pfp_pad_power_sourceentry * S ((S (pfrep_position_pad_power_source)) * c) + (a)))))) \/ (((exists pfrep_gap_pad_power_sourceoutside. pfrep_gap_pad_power_sourceoutside+(L)=(k)) /\ (((a)=0))))) -> ((exists pfrep_position_pad_power_result. ((pfrep_position_pad_power_result+S (k)=(t+L)) /\ ((((exists ff_h_pfp_pad_power_resultentry. ff_h_pfp_pad_power_resultentry + S (a) = S ((S (pfrep_position_pad_power_result)) * e)) /\ exists ff_q_pfp_pad_power_resultentry. d = ff_q_pfp_pad_power_resultentry * S ((S (pfrep_position_pad_power_result)) * e) + (a)))))) \/ (((exists pfrep_gap_pad_power_resultoutside. pfrep_gap_pad_power_resultoutside+(t+L)=(k)) /\ (((a)=0)))))
  1. intro b
  2. intro c
  3. intro L
  4. intro t
  5. intro d
  6. intro e
  7. intro k
  8. intro a
  9. intro h
  10. intro ha
  11. cases h
  12. cases ha
  13. cases ha_left
  14. cases ha_left_witness
  15. left
  16. exists t+x
  17. split
  18. trans t+(x+S k)
  19. apply add_assoc
  20. rewrite ha_left_witness_left
  21. refl
  22. specialize h_right (x)
  23. specialize h_right (a)
  24. apply h_right
  25. specialize prime_field_polynomial_power_index_bound (x)
  26. specialize prime_field_polynomial_power_index_bound (k)
  27. specialize prime_field_polynomial_power_index_bound (L)
  28. apply prime_field_polynomial_power_index_bound
  29. exact ha_left_witness_left
  30. exact ha_left_witness_right
  31. cases ha_right
  32. have ho : (exists pfrep_gap_pad_power_outside. pfrep_gap_pad_power_outside+(t+L)=(k)) \/ (exists pfa_gap_pad_power_inside. pfa_gap_pad_power_inside + S (k) = (t+L))
  33. specialize le_or_lt (t+L)
  34. specialize le_or_lt (k)
  35. apply le_or_lt
  36. cases ho
  37. right
  38. split
  39. exact ho_left
  40. exact ha_right_right
  41. cases ho_right
  42. left
  43. exists x
  44. split
  45. exact ho_right_witness
  46. rewrite ha_right_right
  47. rewrite ha_right_right
  48. specialize h_left (x)
  49. apply h_left
  50. specialize prime_field_polynomial_power_index_before_padding (t)
  51. specialize prime_field_polynomial_power_index_before_padding (L)
  52. specialize prime_field_polynomial_power_index_before_padding (x)
  53. specialize prime_field_polynomial_power_index_before_padding (k)
  54. apply prime_field_polynomial_power_index_before_padding
  55. exact ho_right_witness
  56. exact ha_right_left
prime_field_polynomial_left_pad_equivalent · unchanged support, not a new admission
forall b c L t d e. (((forall pfp_repeat_index_pad_equivalent_sourcezeros. (exists pfa_gap_pad_equivalent_sourcezerosindex. pfa_gap_pad_equivalent_sourcezerosindex + S (pfp_repeat_index_pad_equivalent_sourcezeros) = (t)) -> (((exists ff_h_pfp_pad_equivalent_sourcezerosentry. ff_h_pfp_pad_equivalent_sourcezerosentry + S (0) = S ((S (pfp_repeat_index_pad_equivalent_sourcezeros)) * e)) /\ exists ff_q_pfp_pad_equivalent_sourcezerosentry. d = ff_q_pfp_pad_equivalent_sourcezerosentry * S ((S (pfp_repeat_index_pad_equivalent_sourcezeros)) * e) + (0)))) /\ ((forall pfrep_index_pad_equivalent_source pfrep_value_pad_equivalent_source. (exists pfa_gap_pad_equivalent_sourcebound. pfa_gap_pad_equivalent_sourcebound + S (pfrep_index_pad_equivalent_source) = (L)) -> (((exists ff_h_pfp_pad_equivalent_sourceinput. ff_h_pfp_pad_equivalent_sourceinput + S (pfrep_value_pad_equivalent_source) = S ((S (pfrep_index_pad_equivalent_source)) * c)) /\ exists ff_q_pfp_pad_equivalent_sourceinput. b = ff_q_pfp_pad_equivalent_sourceinput * S ((S (pfrep_index_pad_equivalent_source)) * c) + (pfrep_value_pad_equivalent_source))) -> (((exists ff_h_pfp_pad_equivalent_sourceoutput. ff_h_pfp_pad_equivalent_sourceoutput + S (pfrep_value_pad_equivalent_source) = S ((S ((t)+pfrep_index_pad_equivalent_source)) * e)) /\ exists ff_q_pfp_pad_equivalent_sourceoutput. d = ff_q_pfp_pad_equivalent_sourceoutput * S ((S ((t)+pfrep_index_pad_equivalent_source)) * e) + (pfrep_value_pad_equivalent_source))))))) -> (forall pfrep_power_pad_equivalent_result pfrep_left_pad_equivalent_result pfrep_right_pad_equivalent_result. ((exists pfrep_position_pad_equivalent_resultfirst. ((pfrep_position_pad_equivalent_resultfirst+S (pfrep_power_pad_equivalent_result)=(L)) /\ ((((exists ff_h_pfp_pad_equivalent_resultfirstentry. ff_h_pfp_pad_equivalent_resultfirstentry + S (pfrep_left_pad_equivalent_result) = S ((S (pfrep_position_pad_equivalent_resultfirst)) * c)) /\ exists ff_q_pfp_pad_equivalent_resultfirstentry. b = ff_q_pfp_pad_equivalent_resultfirstentry * S ((S (pfrep_position_pad_equivalent_resultfirst)) * c) + (pfrep_left_pad_equivalent_result)))))) \/ (((exists pfrep_gap_pad_equivalent_resultfirstoutside. pfrep_gap_pad_equivalent_resultfirstoutside+(L)=(pfrep_power_pad_equivalent_result)) /\ (((pfrep_left_pad_equivalent_result)=0))))) -> ((exists pfrep_position_pad_equivalent_resultsecond. ((pfrep_position_pad_equivalent_resultsecond+S (pfrep_power_pad_equivalent_result)=(t+L)) /\ ((((exists ff_h_pfp_pad_equivalent_resultsecondentry. ff_h_pfp_pad_equivalent_resultsecondentry + S (pfrep_right_pad_equivalent_result) = S ((S (pfrep_position_pad_equivalent_resultsecond)) * e)) /\ exists ff_q_pfp_pad_equivalent_resultsecondentry. d = ff_q_pfp_pad_equivalent_resultsecondentry * S ((S (pfrep_position_pad_equivalent_resultsecond)) * e) + (pfrep_right_pad_equivalent_result)))))) \/ (((exists pfrep_gap_pad_equivalent_resultsecondoutside. pfrep_gap_pad_equivalent_resultsecondoutside+(t+L)=(pfrep_power_pad_equivalent_result)) /\ (((pfrep_right_pad_equivalent_result)=0))))) -> pfrep_left_pad_equivalent_result=pfrep_right_pad_equivalent_result)
  1. intro b
  2. intro c
  3. intro L
  4. intro t
  5. intro d
  6. intro e
  7. intro h
  8. intro k
  9. intro a
  10. intro r
  11. intro ha
  12. intro hr
  13. specialize prime_field_polynomial_power_coefficient_functional (d)
  14. specialize prime_field_polynomial_power_coefficient_functional (e)
  15. specialize prime_field_polynomial_power_coefficient_functional (t+L)
  16. specialize prime_field_polynomial_power_coefficient_functional (k)
  17. specialize prime_field_polynomial_power_coefficient_functional (a)
  18. specialize prime_field_polynomial_power_coefficient_functional (r)
  19. apply prime_field_polynomial_power_coefficient_functional
  20. specialize prime_field_polynomial_left_pad_power_coefficient (b)
  21. specialize prime_field_polynomial_left_pad_power_coefficient (c)
  22. specialize prime_field_polynomial_left_pad_power_coefficient (L)
  23. specialize prime_field_polynomial_left_pad_power_coefficient (t)
  24. specialize prime_field_polynomial_left_pad_power_coefficient (d)
  25. specialize prime_field_polynomial_left_pad_power_coefficient (e)
  26. specialize prime_field_polynomial_left_pad_power_coefficient (k)
  27. specialize prime_field_polynomial_left_pad_power_coefficient (a)
  28. apply prime_field_polynomial_left_pad_power_coefficient
  29. exact h
  30. exact ha
  31. exact hr
polynomial_diagonal_left_prefix_transport · unchanged support, not a new admission
forall ab ac L AB AC K bb bc M N i j t. (exists pfc_gap_tri_term_old_length. pfc_gap_tri_term_old_length+(N)=(L)) -> (exists pfc_gap_tri_term_new_length. pfc_gap_tri_term_new_length+(N)=(K)) -> (forall mdr_i_pfp_tri_term_equal mdr_a_pfp_tri_term_equal. (exists mdr_gap_pfp_tri_term_equalb. mdr_gap_pfp_tri_term_equalb + S (mdr_i_pfp_tri_term_equal) = (N)) -> (((exists ff_h_mdr_pfp_tri_term_equalo. ff_h_mdr_pfp_tri_term_equalo + S (mdr_a_pfp_tri_term_equal) = S ((S (mdr_i_pfp_tri_term_equal)) * ac)) /\ exists ff_q_mdr_pfp_tri_term_equalo. ab = ff_q_mdr_pfp_tri_term_equalo * S ((S (mdr_i_pfp_tri_term_equal)) * ac) + (mdr_a_pfp_tri_term_equal))) -> (((exists ff_h_mdr_pfp_tri_term_equaln. ff_h_mdr_pfp_tri_term_equaln + S (mdr_a_pfp_tri_term_equal) = S ((S (mdr_i_pfp_tri_term_equal)) * AC)) /\ exists ff_q_mdr_pfp_tri_term_equaln. AB = ff_q_mdr_pfp_tri_term_equaln * S ((S (mdr_i_pfp_tri_term_equal)) * AC) + (mdr_a_pfp_tri_term_equal)))) -> (exists pfa_gap_tri_term_index. pfa_gap_tri_term_index + S (j) = (N)) -> (exists pfc_complement_tri_term_old pfc_left_tri_term_old pfc_right_tri_term_old. (((j)+pfc_complement_tri_term_old=(i)) /\ ((((((exists pfa_gap_tri_term_oldleftinside. pfa_gap_tri_term_oldleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_tri_term_oldleftentry. ff_h_pfp_tri_term_oldleftentry + S (pfc_left_tri_term_old) = S ((S (j)) * ac)) /\ exists ff_q_pfp_tri_term_oldleftentry. ab = ff_q_pfp_tri_term_oldleftentry * S ((S (j)) * ac) + (pfc_left_tri_term_old)))))) \/ (((exists pfc_gap_tri_term_oldleftoutside. pfc_gap_tri_term_oldleftoutside+(L)=(j)) /\ (((pfc_left_tri_term_old)=0))))) /\ ((((((exists pfa_gap_tri_term_oldrightinside. pfa_gap_tri_term_oldrightinside + S (pfc_complement_tri_term_old) = (M)) /\ ((((exists ff_h_pfp_tri_term_oldrightentry. ff_h_pfp_tri_term_oldrightentry + S (pfc_right_tri_term_old) = S ((S (pfc_complement_tri_term_old)) * bc)) /\ exists ff_q_pfp_tri_term_oldrightentry. bb = ff_q_pfp_tri_term_oldrightentry * S ((S (pfc_complement_tri_term_old)) * bc) + (pfc_right_tri_term_old)))))) \/ (((exists pfc_gap_tri_term_oldrightoutside. pfc_gap_tri_term_oldrightoutside+(M)=(pfc_complement_tri_term_old)) /\ (((pfc_right_tri_term_old)=0))))) /\ (((t)=pfc_left_tri_term_old*pfc_right_tri_term_old)))))))) -> (exists pfc_complement_tri_term_new pfc_left_tri_term_new pfc_right_tri_term_new. (((j)+pfc_complement_tri_term_new=(i)) /\ ((((((exists pfa_gap_tri_term_newleftinside. pfa_gap_tri_term_newleftinside + S (j) = (K)) /\ ((((exists ff_h_pfp_tri_term_newleftentry. ff_h_pfp_tri_term_newleftentry + S (pfc_left_tri_term_new) = S ((S (j)) * AC)) /\ exists ff_q_pfp_tri_term_newleftentry. AB = ff_q_pfp_tri_term_newleftentry * S ((S (j)) * AC) + (pfc_left_tri_term_new)))))) \/ (((exists pfc_gap_tri_term_newleftoutside. pfc_gap_tri_term_newleftoutside+(K)=(j)) /\ (((pfc_left_tri_term_new)=0))))) /\ ((((((exists pfa_gap_tri_term_newrightinside. pfa_gap_tri_term_newrightinside + S (pfc_complement_tri_term_new) = (M)) /\ ((((exists ff_h_pfp_tri_term_newrightentry. ff_h_pfp_tri_term_newrightentry + S (pfc_right_tri_term_new) = S ((S (pfc_complement_tri_term_new)) * bc)) /\ exists ff_q_pfp_tri_term_newrightentry. bb = ff_q_pfp_tri_term_newrightentry * S ((S (pfc_complement_tri_term_new)) * bc) + (pfc_right_tri_term_new)))))) \/ (((exists pfc_gap_tri_term_newrightoutside. pfc_gap_tri_term_newrightoutside+(M)=(pfc_complement_tri_term_new)) /\ (((pfc_right_tri_term_new)=0))))) /\ (((t)=pfc_left_tri_term_new*pfc_right_tri_term_new))))))))
  1. intro ab
  2. intro ac
  3. intro L
  4. intro AB
  5. intro AC
  6. intro K
  7. intro bb
  8. intro bc
  9. intro M
  10. intro N
  11. intro i
  12. intro j
  13. intro t
  14. intro hl
  15. intro hk
  16. intro he
  17. intro hj
  18. intro ht
  19. cases ht
  20. cases ht_witness
  21. cases ht_witness_witness
  22. cases ht_witness_witness_witness
  23. cases ht_witness_witness_witness_right
  24. cases ht_witness_witness_witness_right_right
  25. have hjl : exists pfa_gap_tri_term_inside_old. pfa_gap_tri_term_inside_old + S (j) = (L)
  26. specialize lt_of_lt_of_le (j)
  27. specialize lt_of_lt_of_le (N)
  28. specialize lt_of_lt_of_le (L)
  29. apply lt_of_lt_of_le
  30. exact hj
  31. exact hl
  32. have hjk : exists pfa_gap_tri_term_inside_new. pfa_gap_tri_term_inside_new + S (j) = (K)
  33. specialize lt_of_lt_of_le (j)
  34. specialize lt_of_lt_of_le (N)
  35. specialize lt_of_lt_of_le (K)
  36. apply lt_of_lt_of_le
  37. exact hj
  38. exact hk
  39. have ha : ((exists ff_h_pfp_tri_term_source_entry. ff_h_pfp_tri_term_source_entry + S (x1) = S ((S (j)) * ac)) /\ exists ff_q_pfp_tri_term_source_entry. ab = ff_q_pfp_tri_term_source_entry * S ((S (j)) * ac) + (x1))
  40. specialize polynomial_zero_extended_entry_inside (ab)
  41. specialize polynomial_zero_extended_entry_inside (ac)
  42. specialize polynomial_zero_extended_entry_inside (L)
  43. specialize polynomial_zero_extended_entry_inside (j)
  44. specialize polynomial_zero_extended_entry_inside (x1)
  45. apply polynomial_zero_extended_entry_inside
  46. exact hjl
  47. exact ht_witness_witness_witness_right_left
  48. exists x
  49. exists x1
  50. exists x2
  51. split
  52. exact ht_witness_witness_witness_left
  53. split
  54. left
  55. split
  56. exact hjk
  57. specialize he (j)
  58. specialize he (x1)
  59. apply he
  60. exact hj
  61. exact ha
  62. split
  63. exact ht_witness_witness_witness_right_right_left
  64. exact ht_witness_witness_witness_right_right_right
prime_field_convolution_coefficient_prefix_transport · unchanged support, not a new admission
forall p ab ac L AB AC K bb bc M N i r. (exists pfc_gap_tri_coefficient_old_length. pfc_gap_tri_coefficient_old_length+(N)=(L)) -> (exists pfc_gap_tri_coefficient_new_length. pfc_gap_tri_coefficient_new_length+(N)=(K)) -> (forall mdr_i_pfp_tri_coefficient_equal mdr_a_pfp_tri_coefficient_equal. (exists mdr_gap_pfp_tri_coefficient_equalb. mdr_gap_pfp_tri_coefficient_equalb + S (mdr_i_pfp_tri_coefficient_equal) = (N)) -> (((exists ff_h_mdr_pfp_tri_coefficient_equalo. ff_h_mdr_pfp_tri_coefficient_equalo + S (mdr_a_pfp_tri_coefficient_equal) = S ((S (mdr_i_pfp_tri_coefficient_equal)) * ac)) /\ exists ff_q_mdr_pfp_tri_coefficient_equalo. ab = ff_q_mdr_pfp_tri_coefficient_equalo * S ((S (mdr_i_pfp_tri_coefficient_equal)) * ac) + (mdr_a_pfp_tri_coefficient_equal))) -> (((exists ff_h_mdr_pfp_tri_coefficient_equaln. ff_h_mdr_pfp_tri_coefficient_equaln + S (mdr_a_pfp_tri_coefficient_equal) = S ((S (mdr_i_pfp_tri_coefficient_equal)) * AC)) /\ exists ff_q_mdr_pfp_tri_coefficient_equaln. AB = ff_q_mdr_pfp_tri_coefficient_equaln * S ((S (mdr_i_pfp_tri_coefficient_equal)) * AC) + (mdr_a_pfp_tri_coefficient_equal)))) -> (exists pfa_gap_tri_coefficient_index. pfa_gap_tri_coefficient_index + S (i) = (N)) -> (exists pfc_terms_code_tri_coefficient_old pfc_terms_scale_tri_coefficient_old pfc_natural_sum_tri_coefficient_old. ((forall pfc_index_tri_coefficient_olddiagonal. (exists pfa_gap_tri_coefficient_olddiagonalbound. pfa_gap_tri_coefficient_olddiagonalbound + S (pfc_index_tri_coefficient_olddiagonal) = (S (i))) -> exists pfc_value_tri_coefficient_olddiagonal. ((((exists ff_h_pfp_tri_coefficient_olddiagonalentry. ff_h_pfp_tri_coefficient_olddiagonalentry + S (pfc_value_tri_coefficient_olddiagonal) = S ((S (pfc_index_tri_coefficient_olddiagonal)) * pfc_terms_scale_tri_coefficient_old)) /\ exists ff_q_pfp_tri_coefficient_olddiagonalentry. pfc_terms_code_tri_coefficient_old = ff_q_pfp_tri_coefficient_olddiagonalentry * S ((S (pfc_index_tri_coefficient_olddiagonal)) * pfc_terms_scale_tri_coefficient_old) + (pfc_value_tri_coefficient_olddiagonal))) /\ ((exists pfc_complement_tri_coefficient_olddiagonalterm pfc_left_tri_coefficient_olddiagonalterm pfc_right_tri_coefficient_olddiagonalterm. (((pfc_index_tri_coefficient_olddiagonal)+pfc_complement_tri_coefficient_olddiagonalterm=(i)) /\ ((((((exists pfa_gap_tri_coefficient_olddiagonaltermleftinside. pfa_gap_tri_coefficient_olddiagonaltermleftinside + S (pfc_index_tri_coefficient_olddiagonal) = (L)) /\ ((((exists ff_h_pfp_tri_coefficient_olddiagonaltermleftentry. ff_h_pfp_tri_coefficient_olddiagonaltermleftentry + S (pfc_left_tri_coefficient_olddiagonalterm) = S ((S (pfc_index_tri_coefficient_olddiagonal)) * ac)) /\ exists ff_q_pfp_tri_coefficient_olddiagonaltermleftentry. ab = ff_q_pfp_tri_coefficient_olddiagonaltermleftentry * S ((S (pfc_index_tri_coefficient_olddiagonal)) * ac) + (pfc_left_tri_coefficient_olddiagonalterm)))))) \/ (((exists pfc_gap_tri_coefficient_olddiagonaltermleftoutside. pfc_gap_tri_coefficient_olddiagonaltermleftoutside+(L)=(pfc_index_tri_coefficient_olddiagonal)) /\ (((pfc_left_tri_coefficient_olddiagonalterm)=0))))) /\ ((((((exists pfa_gap_tri_coefficient_olddiagonaltermrightinside. pfa_gap_tri_coefficient_olddiagonaltermrightinside + S (pfc_complement_tri_coefficient_olddiagonalterm) = (M)) /\ ((((exists ff_h_pfp_tri_coefficient_olddiagonaltermrightentry. ff_h_pfp_tri_coefficient_olddiagonaltermrightentry + S (pfc_right_tri_coefficient_olddiagonalterm) = S ((S (pfc_complement_tri_coefficient_olddiagonalterm)) * bc)) /\ exists ff_q_pfp_tri_coefficient_olddiagonaltermrightentry. bb = ff_q_pfp_tri_coefficient_olddiagonaltermrightentry * S ((S (pfc_complement_tri_coefficient_olddiagonalterm)) * bc) + (pfc_right_tri_coefficient_olddiagonalterm)))))) \/ (((exists pfc_gap_tri_coefficient_olddiagonaltermrightoutside. pfc_gap_tri_coefficient_olddiagonaltermrightoutside+(M)=(pfc_complement_tri_coefficient_olddiagonalterm)) /\ (((pfc_right_tri_coefficient_olddiagonalterm)=0))))) /\ (((pfc_value_tri_coefficient_olddiagonal)=pfc_left_tri_coefficient_olddiagonalterm*pfc_right_tri_coefficient_olddiagonalterm))))))))))) /\ (((exists fs_u_pfc_tri_coefficient_oldsum fs_v_pfc_tri_coefficient_oldsum. ((((exists fs_h_pfc_tri_coefficient_oldsum_body_start. fs_h_pfc_tri_coefficient_oldsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_tri_coefficient_oldsum)) /\ exists fs_q_pfc_tri_coefficient_oldsum_body_start. fs_u_pfc_tri_coefficient_oldsum = fs_q_pfc_tri_coefficient_oldsum_body_start * S ((S (0)) * fs_v_pfc_tri_coefficient_oldsum) + (0))) /\ ((((exists fs_h_pfc_tri_coefficient_oldsum_body_terminal. fs_h_pfc_tri_coefficient_oldsum_body_terminal + S (pfc_natural_sum_tri_coefficient_old) = S ((S (S (i))) * fs_v_pfc_tri_coefficient_oldsum)) /\ exists fs_q_pfc_tri_coefficient_oldsum_body_terminal. fs_u_pfc_tri_coefficient_oldsum = fs_q_pfc_tri_coefficient_oldsum_body_terminal * S ((S (S (i))) * fs_v_pfc_tri_coefficient_oldsum) + (pfc_natural_sum_tri_coefficient_old))) /\ forall fs_i_pfc_tri_coefficient_oldsum_body_steps. (exists fs_lt_pfc_tri_coefficient_oldsum_body_steps_bound. fs_lt_pfc_tri_coefficient_oldsum_body_steps_bound + S fs_i_pfc_tri_coefficient_oldsum_body_steps = S (i)) -> exists fs_a_pfc_tri_coefficient_oldsum_body_steps fs_r_pfc_tri_coefficient_oldsum_body_steps fs_s_pfc_tri_coefficient_oldsum_body_steps. ((((exists fs_h_pfc_tri_coefficient_oldsum_body_steps_summand. fs_h_pfc_tri_coefficient_oldsum_body_steps_summand + S (fs_a_pfc_tri_coefficient_oldsum_body_steps) = S ((S (fs_i_pfc_tri_coefficient_oldsum_body_steps)) * pfc_terms_scale_tri_coefficient_old)) /\ exists fs_q_pfc_tri_coefficient_oldsum_body_steps_summand. pfc_terms_code_tri_coefficient_old = fs_q_pfc_tri_coefficient_oldsum_body_steps_summand * S ((S (fs_i_pfc_tri_coefficient_oldsum_body_steps)) * pfc_terms_scale_tri_coefficient_old) + (fs_a_pfc_tri_coefficient_oldsum_body_steps))) /\ ((((exists fs_h_pfc_tri_coefficient_oldsum_body_steps_partial. fs_h_pfc_tri_coefficient_oldsum_body_steps_partial + S (fs_r_pfc_tri_coefficient_oldsum_body_steps) = S ((S (fs_i_pfc_tri_coefficient_oldsum_body_steps)) * fs_v_pfc_tri_coefficient_oldsum)) /\ exists fs_q_pfc_tri_coefficient_oldsum_body_steps_partial. fs_u_pfc_tri_coefficient_oldsum = fs_q_pfc_tri_coefficient_oldsum_body_steps_partial * S ((S (fs_i_pfc_tri_coefficient_oldsum_body_steps)) * fs_v_pfc_tri_coefficient_oldsum) + (fs_r_pfc_tri_coefficient_oldsum_body_steps))) /\ ((((exists fs_h_pfc_tri_coefficient_oldsum_body_steps_successor. fs_h_pfc_tri_coefficient_oldsum_body_steps_successor + S (fs_s_pfc_tri_coefficient_oldsum_body_steps) = S ((S (S fs_i_pfc_tri_coefficient_oldsum_body_steps)) * fs_v_pfc_tri_coefficient_oldsum)) /\ exists fs_q_pfc_tri_coefficient_oldsum_body_steps_successor. fs_u_pfc_tri_coefficient_oldsum = fs_q_pfc_tri_coefficient_oldsum_body_steps_successor * S ((S (S fs_i_pfc_tri_coefficient_oldsum_body_steps)) * fs_v_pfc_tri_coefficient_oldsum) + (fs_s_pfc_tri_coefficient_oldsum_body_steps))) /\ fs_s_pfc_tri_coefficient_oldsum_body_steps = fs_r_pfc_tri_coefficient_oldsum_body_steps + fs_a_pfc_tri_coefficient_oldsum_body_steps)))))) /\ ((((exists pfa_gap_tri_coefficient_oldresiduebound. pfa_gap_tri_coefficient_oldresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_tri_coefficient_oldresiduecongruence pfa_offset_right_tri_coefficient_oldresiduecongruence. (pfc_natural_sum_tri_coefficient_old) + (p) * pfa_offset_left_tri_coefficient_oldresiduecongruence = (r) + (p) * pfa_offset_right_tri_coefficient_oldresiduecongruence))))))))) -> (exists pfc_terms_code_tri_coefficient_new pfc_terms_scale_tri_coefficient_new pfc_natural_sum_tri_coefficient_new. ((forall pfc_index_tri_coefficient_newdiagonal. (exists pfa_gap_tri_coefficient_newdiagonalbound. pfa_gap_tri_coefficient_newdiagonalbound + S (pfc_index_tri_coefficient_newdiagonal) = (S (i))) -> exists pfc_value_tri_coefficient_newdiagonal. ((((exists ff_h_pfp_tri_coefficient_newdiagonalentry. ff_h_pfp_tri_coefficient_newdiagonalentry + S (pfc_value_tri_coefficient_newdiagonal) = S ((S (pfc_index_tri_coefficient_newdiagonal)) * pfc_terms_scale_tri_coefficient_new)) /\ exists ff_q_pfp_tri_coefficient_newdiagonalentry. pfc_terms_code_tri_coefficient_new = ff_q_pfp_tri_coefficient_newdiagonalentry * S ((S (pfc_index_tri_coefficient_newdiagonal)) * pfc_terms_scale_tri_coefficient_new) + (pfc_value_tri_coefficient_newdiagonal))) /\ ((exists pfc_complement_tri_coefficient_newdiagonalterm pfc_left_tri_coefficient_newdiagonalterm pfc_right_tri_coefficient_newdiagonalterm. (((pfc_index_tri_coefficient_newdiagonal)+pfc_complement_tri_coefficient_newdiagonalterm=(i)) /\ ((((((exists pfa_gap_tri_coefficient_newdiagonaltermleftinside. pfa_gap_tri_coefficient_newdiagonaltermleftinside + S (pfc_index_tri_coefficient_newdiagonal) = (K)) /\ ((((exists ff_h_pfp_tri_coefficient_newdiagonaltermleftentry. ff_h_pfp_tri_coefficient_newdiagonaltermleftentry + S (pfc_left_tri_coefficient_newdiagonalterm) = S ((S (pfc_index_tri_coefficient_newdiagonal)) * AC)) /\ exists ff_q_pfp_tri_coefficient_newdiagonaltermleftentry. AB = ff_q_pfp_tri_coefficient_newdiagonaltermleftentry * S ((S (pfc_index_tri_coefficient_newdiagonal)) * AC) + (pfc_left_tri_coefficient_newdiagonalterm)))))) \/ (((exists pfc_gap_tri_coefficient_newdiagonaltermleftoutside. pfc_gap_tri_coefficient_newdiagonaltermleftoutside+(K)=(pfc_index_tri_coefficient_newdiagonal)) /\ (((pfc_left_tri_coefficient_newdiagonalterm)=0))))) /\ ((((((exists pfa_gap_tri_coefficient_newdiagonaltermrightinside. pfa_gap_tri_coefficient_newdiagonaltermrightinside + S (pfc_complement_tri_coefficient_newdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_tri_coefficient_newdiagonaltermrightentry. ff_h_pfp_tri_coefficient_newdiagonaltermrightentry + S (pfc_right_tri_coefficient_newdiagonalterm) = S ((S (pfc_complement_tri_coefficient_newdiagonalterm)) * bc)) /\ exists ff_q_pfp_tri_coefficient_newdiagonaltermrightentry. bb = ff_q_pfp_tri_coefficient_newdiagonaltermrightentry * S ((S (pfc_complement_tri_coefficient_newdiagonalterm)) * bc) + (pfc_right_tri_coefficient_newdiagonalterm)))))) \/ (((exists pfc_gap_tri_coefficient_newdiagonaltermrightoutside. pfc_gap_tri_coefficient_newdiagonaltermrightoutside+(M)=(pfc_complement_tri_coefficient_newdiagonalterm)) /\ (((pfc_right_tri_coefficient_newdiagonalterm)=0))))) /\ (((pfc_value_tri_coefficient_newdiagonal)=pfc_left_tri_coefficient_newdiagonalterm*pfc_right_tri_coefficient_newdiagonalterm))))))))))) /\ (((exists fs_u_pfc_tri_coefficient_newsum fs_v_pfc_tri_coefficient_newsum. ((((exists fs_h_pfc_tri_coefficient_newsum_body_start. fs_h_pfc_tri_coefficient_newsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_tri_coefficient_newsum)) /\ exists fs_q_pfc_tri_coefficient_newsum_body_start. fs_u_pfc_tri_coefficient_newsum = fs_q_pfc_tri_coefficient_newsum_body_start * S ((S (0)) * fs_v_pfc_tri_coefficient_newsum) + (0))) /\ ((((exists fs_h_pfc_tri_coefficient_newsum_body_terminal. fs_h_pfc_tri_coefficient_newsum_body_terminal + S (pfc_natural_sum_tri_coefficient_new) = S ((S (S (i))) * fs_v_pfc_tri_coefficient_newsum)) /\ exists fs_q_pfc_tri_coefficient_newsum_body_terminal. fs_u_pfc_tri_coefficient_newsum = fs_q_pfc_tri_coefficient_newsum_body_terminal * S ((S (S (i))) * fs_v_pfc_tri_coefficient_newsum) + (pfc_natural_sum_tri_coefficient_new))) /\ forall fs_i_pfc_tri_coefficient_newsum_body_steps. (exists fs_lt_pfc_tri_coefficient_newsum_body_steps_bound. fs_lt_pfc_tri_coefficient_newsum_body_steps_bound + S fs_i_pfc_tri_coefficient_newsum_body_steps = S (i)) -> exists fs_a_pfc_tri_coefficient_newsum_body_steps fs_r_pfc_tri_coefficient_newsum_body_steps fs_s_pfc_tri_coefficient_newsum_body_steps. ((((exists fs_h_pfc_tri_coefficient_newsum_body_steps_summand. fs_h_pfc_tri_coefficient_newsum_body_steps_summand + S (fs_a_pfc_tri_coefficient_newsum_body_steps) = S ((S (fs_i_pfc_tri_coefficient_newsum_body_steps)) * pfc_terms_scale_tri_coefficient_new)) /\ exists fs_q_pfc_tri_coefficient_newsum_body_steps_summand. pfc_terms_code_tri_coefficient_new = fs_q_pfc_tri_coefficient_newsum_body_steps_summand * S ((S (fs_i_pfc_tri_coefficient_newsum_body_steps)) * pfc_terms_scale_tri_coefficient_new) + (fs_a_pfc_tri_coefficient_newsum_body_steps))) /\ ((((exists fs_h_pfc_tri_coefficient_newsum_body_steps_partial. fs_h_pfc_tri_coefficient_newsum_body_steps_partial + S (fs_r_pfc_tri_coefficient_newsum_body_steps) = S ((S (fs_i_pfc_tri_coefficient_newsum_body_steps)) * fs_v_pfc_tri_coefficient_newsum)) /\ exists fs_q_pfc_tri_coefficient_newsum_body_steps_partial. fs_u_pfc_tri_coefficient_newsum = fs_q_pfc_tri_coefficient_newsum_body_steps_partial * S ((S (fs_i_pfc_tri_coefficient_newsum_body_steps)) * fs_v_pfc_tri_coefficient_newsum) + (fs_r_pfc_tri_coefficient_newsum_body_steps))) /\ ((((exists fs_h_pfc_tri_coefficient_newsum_body_steps_successor. fs_h_pfc_tri_coefficient_newsum_body_steps_successor + S (fs_s_pfc_tri_coefficient_newsum_body_steps) = S ((S (S fs_i_pfc_tri_coefficient_newsum_body_steps)) * fs_v_pfc_tri_coefficient_newsum)) /\ exists fs_q_pfc_tri_coefficient_newsum_body_steps_successor. fs_u_pfc_tri_coefficient_newsum = fs_q_pfc_tri_coefficient_newsum_body_steps_successor * S ((S (S fs_i_pfc_tri_coefficient_newsum_body_steps)) * fs_v_pfc_tri_coefficient_newsum) + (fs_s_pfc_tri_coefficient_newsum_body_steps))) /\ fs_s_pfc_tri_coefficient_newsum_body_steps = fs_r_pfc_tri_coefficient_newsum_body_steps + fs_a_pfc_tri_coefficient_newsum_body_steps)))))) /\ ((((exists pfa_gap_tri_coefficient_newresiduebound. pfa_gap_tri_coefficient_newresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_tri_coefficient_newresiduecongruence pfa_offset_right_tri_coefficient_newresiduecongruence. (pfc_natural_sum_tri_coefficient_new) + (p) * pfa_offset_left_tri_coefficient_newresiduecongruence = (r) + (p) * pfa_offset_right_tri_coefficient_newresiduecongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro AB
  6. intro AC
  7. intro K
  8. intro bb
  9. intro bc
  10. intro M
  11. intro N
  12. intro i
  13. intro r
  14. intro hl
  15. intro hk
  16. intro he
  17. intro hi
  18. intro hr
  19. cases hr
  20. cases hr_witness
  21. cases hr_witness_witness
  22. cases hr_witness_witness_witness
  23. cases hr_witness_witness_witness_right
  24. exists x
  25. exists x1
  26. exists x2
  27. split
  28. intro j
  29. intro hj
  30. have ht : exists t. ((((exists ff_h_pfp_tri_coefficient_chosen_entry. ff_h_pfp_tri_coefficient_chosen_entry + S (t) = S ((S (j)) * x1)) /\ exists ff_q_pfp_tri_coefficient_chosen_entry. x = ff_q_pfp_tri_coefficient_chosen_entry * S ((S (j)) * x1) + (t))) /\ ((exists pfc_complement_tri_coefficient_chosen_term pfc_left_tri_coefficient_chosen_term pfc_right_tri_coefficient_chosen_term. (((j)+pfc_complement_tri_coefficient_chosen_term=(i)) /\ ((((((exists pfa_gap_tri_coefficient_chosen_termleftinside. pfa_gap_tri_coefficient_chosen_termleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_tri_coefficient_chosen_termleftentry. ff_h_pfp_tri_coefficient_chosen_termleftentry + S (pfc_left_tri_coefficient_chosen_term) = S ((S (j)) * ac)) /\ exists ff_q_pfp_tri_coefficient_chosen_termleftentry. ab = ff_q_pfp_tri_coefficient_chosen_termleftentry * S ((S (j)) * ac) + (pfc_left_tri_coefficient_chosen_term)))))) \/ (((exists pfc_gap_tri_coefficient_chosen_termleftoutside. pfc_gap_tri_coefficient_chosen_termleftoutside+(L)=(j)) /\ (((pfc_left_tri_coefficient_chosen_term)=0))))) /\ ((((((exists pfa_gap_tri_coefficient_chosen_termrightinside. pfa_gap_tri_coefficient_chosen_termrightinside + S (pfc_complement_tri_coefficient_chosen_term) = (M)) /\ ((((exists ff_h_pfp_tri_coefficient_chosen_termrightentry. ff_h_pfp_tri_coefficient_chosen_termrightentry + S (pfc_right_tri_coefficient_chosen_term) = S ((S (pfc_complement_tri_coefficient_chosen_term)) * bc)) /\ exists ff_q_pfp_tri_coefficient_chosen_termrightentry. bb = ff_q_pfp_tri_coefficient_chosen_termrightentry * S ((S (pfc_complement_tri_coefficient_chosen_term)) * bc) + (pfc_right_tri_coefficient_chosen_term)))))) \/ (((exists pfc_gap_tri_coefficient_chosen_termrightoutside. pfc_gap_tri_coefficient_chosen_termrightoutside+(M)=(pfc_complement_tri_coefficient_chosen_term)) /\ (((pfc_right_tri_coefficient_chosen_term)=0))))) /\ (((t)=pfc_left_tri_coefficient_chosen_term*pfc_right_tri_coefficient_chosen_term))))))))))
  31. specialize hr_witness_witness_witness_left (j)
  32. apply hr_witness_witness_witness_left
  33. exact hj
  34. cases ht
  35. cases ht_witness
  36. exists x3
  37. split
  38. exact ht_witness_left
  39. specialize polynomial_diagonal_left_prefix_transport (ab)
  40. specialize polynomial_diagonal_left_prefix_transport (ac)
  41. specialize polynomial_diagonal_left_prefix_transport (L)
  42. specialize polynomial_diagonal_left_prefix_transport (AB)
  43. specialize polynomial_diagonal_left_prefix_transport (AC)
  44. specialize polynomial_diagonal_left_prefix_transport (K)
  45. specialize polynomial_diagonal_left_prefix_transport (bb)
  46. specialize polynomial_diagonal_left_prefix_transport (bc)
  47. specialize polynomial_diagonal_left_prefix_transport (M)
  48. specialize polynomial_diagonal_left_prefix_transport (N)
  49. specialize polynomial_diagonal_left_prefix_transport (i)
  50. specialize polynomial_diagonal_left_prefix_transport (j)
  51. specialize polynomial_diagonal_left_prefix_transport (x3)
  52. apply polynomial_diagonal_left_prefix_transport
  53. exact hl
  54. exact hk
  55. exact he
  56. specialize lt_of_lt_of_le (j)
  57. specialize lt_of_lt_of_le (S i)
  58. specialize lt_of_lt_of_le (N)
  59. apply lt_of_lt_of_le
  60. exact hj
  61. exact hi
  62. exact ht_witness_right
  63. split
  64. exact hr_witness_witness_witness_right_left
  65. exact hr_witness_witness_witness_right_right
prime_field_multiply_exists · unchanged support, not a new admission
forall p a b. (~((p) = 1) /\ forall pfa_factor_left_multiplydomain pfa_factor_right_multiplydomain. (p) = pfa_factor_left_multiplydomain * pfa_factor_right_multiplydomain -> pfa_factor_left_multiplydomain = 1 \/ pfa_factor_right_multiplydomain = 1) -> (exists pfa_gap_multiplyleft. pfa_gap_multiplyleft + S (a) = (p)) -> (exists pfa_gap_multiplyright. pfa_gap_multiplyright + S (b) = (p)) -> exists c. (((exists pfa_gap_multiplyexistsleft. pfa_gap_multiplyexistsleft + S (a) = (p)) /\ (((exists pfa_gap_multiplyexistsright. pfa_gap_multiplyexistsright + S (b) = (p)) /\ ((((exists pfa_gap_multiplyexistsresultbound. pfa_gap_multiplyexistsresultbound + S (c) = (p)) /\ ((exists pfa_offset_left_multiplyexistsresultcongruence pfa_offset_right_multiplyexistsresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_multiplyexistsresultcongruence = (c) + (p) * pfa_offset_right_multiplyexistsresultcongruence)))))))))
  1. intro p
  2. intro a
  3. intro b
  4. intro hp
  5. intro ha
  6. intro hb
  7. have hr : exists c. (((exists pfa_gap_multiplyresiduebound. pfa_gap_multiplyresiduebound + S (c) = (p)) /\ ((exists pfa_offset_left_multiplyresiduecongruence pfa_offset_right_multiplyresiduecongruence. (a * b) + (p) * pfa_offset_left_multiplyresiduecongruence = (c) + (p) * pfa_offset_right_multiplyresiduecongruence))))
  8. specialize hensel_canonical_residue_exists (p)
  9. specialize hensel_canonical_residue_exists (a * b)
  10. apply hensel_canonical_residue_exists
  11. intro hz
  12. specialize prime_nonzero (p)
  13. apply prime_nonzero
  14. exact hp
  15. exact hz
  16. cases hr
  17. exists x
  18. split
  19. exact ha
  20. split
  21. exact hb
  22. exact hr_witness
polynomial_diagonal_last_term_left_empty · unchanged support, not a new admission
forall ab ac bb bc M N t. (exists pfc_complement_tri_last_old pfc_left_tri_last_old pfc_right_tri_last_old. (((N)+pfc_complement_tri_last_old=(N)) /\ ((((((exists pfa_gap_tri_last_oldleftinside. pfa_gap_tri_last_oldleftinside + S (N) = (N)) /\ ((((exists ff_h_pfp_tri_last_oldleftentry. ff_h_pfp_tri_last_oldleftentry + S (pfc_left_tri_last_old) = S ((S (N)) * ac)) /\ exists ff_q_pfp_tri_last_oldleftentry. ab = ff_q_pfp_tri_last_oldleftentry * S ((S (N)) * ac) + (pfc_left_tri_last_old)))))) \/ (((exists pfc_gap_tri_last_oldleftoutside. pfc_gap_tri_last_oldleftoutside+(N)=(N)) /\ (((pfc_left_tri_last_old)=0))))) /\ ((((((exists pfa_gap_tri_last_oldrightinside. pfa_gap_tri_last_oldrightinside + S (pfc_complement_tri_last_old) = (M)) /\ ((((exists ff_h_pfp_tri_last_oldrightentry. ff_h_pfp_tri_last_oldrightentry + S (pfc_right_tri_last_old) = S ((S (pfc_complement_tri_last_old)) * bc)) /\ exists ff_q_pfp_tri_last_oldrightentry. bb = ff_q_pfp_tri_last_oldrightentry * S ((S (pfc_complement_tri_last_old)) * bc) + (pfc_right_tri_last_old)))))) \/ (((exists pfc_gap_tri_last_oldrightoutside. pfc_gap_tri_last_oldrightoutside+(M)=(pfc_complement_tri_last_old)) /\ (((pfc_right_tri_last_old)=0))))) /\ (((t)=pfc_left_tri_last_old*pfc_right_tri_last_old)))))))) -> t=0
  1. intro ab
  2. intro ac
  3. intro bb
  4. intro bc
  5. intro M
  6. intro N
  7. intro t
  8. intro ht
  9. cases ht
  10. cases ht_witness
  11. cases ht_witness_witness
  12. cases ht_witness_witness_witness
  13. cases ht_witness_witness_witness_right
  14. cases ht_witness_witness_witness_right_right
  15. cases ht_witness_witness_witness_right_left
  16. cases ht_witness_witness_witness_right_left_left
  17. exfalso
  18. specialize lt_not_le (N)
  19. specialize lt_not_le (N)
  20. apply lt_not_le
  21. exact ht_witness_witness_witness_right_left_left_left
  22. specialize le_refl (N)
  23. apply le_refl
  24. cases ht_witness_witness_witness_right_left_right
  25. trans x1*x2
  26. exact ht_witness_witness_witness_right_right_right
  27. rewrite ht_witness_witness_witness_right_left_right_right
  28. specialize mul_zero_left (x2)
  29. apply mul_zero_left
polynomial_diagonal_last_term_left_append · unchanged support, not a new admission
forall ab ac bb bc d N a b t. (((exists ff_h_pfp_tri_last_new_entry. ff_h_pfp_tri_last_new_entry + S (a) = S ((S (N)) * ac)) /\ exists ff_q_pfp_tri_last_new_entry. ab = ff_q_pfp_tri_last_new_entry * S ((S (N)) * ac) + (a))) -> (((exists ff_h_pfp_tri_last_leading_entry. ff_h_pfp_tri_last_leading_entry + S (b) = S ((S (0)) * bc)) /\ exists ff_q_pfp_tri_last_leading_entry. bb = ff_q_pfp_tri_last_leading_entry * S ((S (0)) * bc) + (b))) -> (exists pfc_complement_tri_last_new pfc_left_tri_last_new pfc_right_tri_last_new. (((N)+pfc_complement_tri_last_new=(N)) /\ ((((((exists pfa_gap_tri_last_newleftinside. pfa_gap_tri_last_newleftinside + S (N) = (S N)) /\ ((((exists ff_h_pfp_tri_last_newleftentry. ff_h_pfp_tri_last_newleftentry + S (pfc_left_tri_last_new) = S ((S (N)) * ac)) /\ exists ff_q_pfp_tri_last_newleftentry. ab = ff_q_pfp_tri_last_newleftentry * S ((S (N)) * ac) + (pfc_left_tri_last_new)))))) \/ (((exists pfc_gap_tri_last_newleftoutside. pfc_gap_tri_last_newleftoutside+(S N)=(N)) /\ (((pfc_left_tri_last_new)=0))))) /\ ((((((exists pfa_gap_tri_last_newrightinside. pfa_gap_tri_last_newrightinside + S (pfc_complement_tri_last_new) = (S d)) /\ ((((exists ff_h_pfp_tri_last_newrightentry. ff_h_pfp_tri_last_newrightentry + S (pfc_right_tri_last_new) = S ((S (pfc_complement_tri_last_new)) * bc)) /\ exists ff_q_pfp_tri_last_newrightentry. bb = ff_q_pfp_tri_last_newrightentry * S ((S (pfc_complement_tri_last_new)) * bc) + (pfc_right_tri_last_new)))))) \/ (((exists pfc_gap_tri_last_newrightoutside. pfc_gap_tri_last_newrightoutside+(S d)=(pfc_complement_tri_last_new)) /\ (((pfc_right_tri_last_new)=0))))) /\ (((t)=pfc_left_tri_last_new*pfc_right_tri_last_new)))))))) -> t=a*b
  1. intro ab
  2. intro ac
  3. intro bb
  4. intro bc
  5. intro d
  6. intro N
  7. intro a
  8. intro b
  9. intro t
  10. intro ha
  11. intro hb
  12. intro ht
  13. cases ht
  14. cases ht_witness
  15. cases ht_witness_witness
  16. cases ht_witness_witness_witness
  17. cases ht_witness_witness_witness_right
  18. cases ht_witness_witness_witness_right_right
  19. have hk : x=0
  20. specialize add_left_cancel (N)
  21. specialize add_left_cancel (x)
  22. specialize add_left_cancel (0)
  23. apply add_left_cancel
  24. trans N
  25. exact ht_witness_witness_witness_left
  26. simp
  27. rewrite hk at ht_witness_witness_witness_right_right_left
  28. rewrite hk at ht_witness_witness_witness_right_right_left
  29. rewrite hk at ht_witness_witness_witness_right_right_left
  30. rewrite hk at ht_witness_witness_witness_right_right_left
  31. have hleft : x1=a
  32. specialize polynomial_zero_extended_entry_functional (ab)
  33. specialize polynomial_zero_extended_entry_functional (ac)
  34. specialize polynomial_zero_extended_entry_functional (S N)
  35. specialize polynomial_zero_extended_entry_functional (N)
  36. specialize polynomial_zero_extended_entry_functional (x1)
  37. specialize polynomial_zero_extended_entry_functional (a)
  38. apply polynomial_zero_extended_entry_functional
  39. exact ht_witness_witness_witness_right_left
  40. left
  41. split
  42. exists 0
  43. apply zero_add
  44. exact ha
  45. have hright : x2=b
  46. specialize polynomial_zero_extended_entry_functional (bb)
  47. specialize polynomial_zero_extended_entry_functional (bc)
  48. specialize polynomial_zero_extended_entry_functional (S d)
  49. specialize polynomial_zero_extended_entry_functional (0)
  50. specialize polynomial_zero_extended_entry_functional (x2)
  51. specialize polynomial_zero_extended_entry_functional (b)
  52. apply polynomial_zero_extended_entry_functional
  53. exact ht_witness_witness_witness_right_right_left
  54. left
  55. split
  56. exists d
  57. simp
  58. exact hb
  59. trans x1*x2
  60. exact ht_witness_witness_witness_right_right_right
  61. congr
  62. exact hleft
  63. exact hright
polynomial_diagonal_prefix_left_transport · unchanged support, not a new admission
forall ab ac L AB AC K bb bc M N i db dc. (exists pfc_gap_tri_prefix_old_length. pfc_gap_tri_prefix_old_length+(N)=(L)) -> (exists pfc_gap_tri_prefix_new_length. pfc_gap_tri_prefix_new_length+(N)=(K)) -> (forall mdr_i_pfp_tri_prefix_equal mdr_a_pfp_tri_prefix_equal. (exists mdr_gap_pfp_tri_prefix_equalb. mdr_gap_pfp_tri_prefix_equalb + S (mdr_i_pfp_tri_prefix_equal) = (N)) -> (((exists ff_h_mdr_pfp_tri_prefix_equalo. ff_h_mdr_pfp_tri_prefix_equalo + S (mdr_a_pfp_tri_prefix_equal) = S ((S (mdr_i_pfp_tri_prefix_equal)) * ac)) /\ exists ff_q_mdr_pfp_tri_prefix_equalo. ab = ff_q_mdr_pfp_tri_prefix_equalo * S ((S (mdr_i_pfp_tri_prefix_equal)) * ac) + (mdr_a_pfp_tri_prefix_equal))) -> (((exists ff_h_mdr_pfp_tri_prefix_equaln. ff_h_mdr_pfp_tri_prefix_equaln + S (mdr_a_pfp_tri_prefix_equal) = S ((S (mdr_i_pfp_tri_prefix_equal)) * AC)) /\ exists ff_q_mdr_pfp_tri_prefix_equaln. AB = ff_q_mdr_pfp_tri_prefix_equaln * S ((S (mdr_i_pfp_tri_prefix_equal)) * AC) + (mdr_a_pfp_tri_prefix_equal)))) -> (forall pfc_index_tri_prefix_old. (exists pfa_gap_tri_prefix_oldbound. pfa_gap_tri_prefix_oldbound + S (pfc_index_tri_prefix_old) = (N)) -> exists pfc_value_tri_prefix_old. ((((exists ff_h_pfp_tri_prefix_oldentry. ff_h_pfp_tri_prefix_oldentry + S (pfc_value_tri_prefix_old) = S ((S (pfc_index_tri_prefix_old)) * dc)) /\ exists ff_q_pfp_tri_prefix_oldentry. db = ff_q_pfp_tri_prefix_oldentry * S ((S (pfc_index_tri_prefix_old)) * dc) + (pfc_value_tri_prefix_old))) /\ ((exists pfc_complement_tri_prefix_oldterm pfc_left_tri_prefix_oldterm pfc_right_tri_prefix_oldterm. (((pfc_index_tri_prefix_old)+pfc_complement_tri_prefix_oldterm=(i)) /\ ((((((exists pfa_gap_tri_prefix_oldtermleftinside. pfa_gap_tri_prefix_oldtermleftinside + S (pfc_index_tri_prefix_old) = (L)) /\ ((((exists ff_h_pfp_tri_prefix_oldtermleftentry. ff_h_pfp_tri_prefix_oldtermleftentry + S (pfc_left_tri_prefix_oldterm) = S ((S (pfc_index_tri_prefix_old)) * ac)) /\ exists ff_q_pfp_tri_prefix_oldtermleftentry. ab = ff_q_pfp_tri_prefix_oldtermleftentry * S ((S (pfc_index_tri_prefix_old)) * ac) + (pfc_left_tri_prefix_oldterm)))))) \/ (((exists pfc_gap_tri_prefix_oldtermleftoutside. pfc_gap_tri_prefix_oldtermleftoutside+(L)=(pfc_index_tri_prefix_old)) /\ (((pfc_left_tri_prefix_oldterm)=0))))) /\ ((((((exists pfa_gap_tri_prefix_oldtermrightinside. pfa_gap_tri_prefix_oldtermrightinside + S (pfc_complement_tri_prefix_oldterm) = (M)) /\ ((((exists ff_h_pfp_tri_prefix_oldtermrightentry. ff_h_pfp_tri_prefix_oldtermrightentry + S (pfc_right_tri_prefix_oldterm) = S ((S (pfc_complement_tri_prefix_oldterm)) * bc)) /\ exists ff_q_pfp_tri_prefix_oldtermrightentry. bb = ff_q_pfp_tri_prefix_oldtermrightentry * S ((S (pfc_complement_tri_prefix_oldterm)) * bc) + (pfc_right_tri_prefix_oldterm)))))) \/ (((exists pfc_gap_tri_prefix_oldtermrightoutside. pfc_gap_tri_prefix_oldtermrightoutside+(M)=(pfc_complement_tri_prefix_oldterm)) /\ (((pfc_right_tri_prefix_oldterm)=0))))) /\ (((pfc_value_tri_prefix_old)=pfc_left_tri_prefix_oldterm*pfc_right_tri_prefix_oldterm))))))))))) -> (forall pfc_index_tri_prefix_new. (exists pfa_gap_tri_prefix_newbound. pfa_gap_tri_prefix_newbound + S (pfc_index_tri_prefix_new) = (N)) -> exists pfc_value_tri_prefix_new. ((((exists ff_h_pfp_tri_prefix_newentry. ff_h_pfp_tri_prefix_newentry + S (pfc_value_tri_prefix_new) = S ((S (pfc_index_tri_prefix_new)) * dc)) /\ exists ff_q_pfp_tri_prefix_newentry. db = ff_q_pfp_tri_prefix_newentry * S ((S (pfc_index_tri_prefix_new)) * dc) + (pfc_value_tri_prefix_new))) /\ ((exists pfc_complement_tri_prefix_newterm pfc_left_tri_prefix_newterm pfc_right_tri_prefix_newterm. (((pfc_index_tri_prefix_new)+pfc_complement_tri_prefix_newterm=(i)) /\ ((((((exists pfa_gap_tri_prefix_newtermleftinside. pfa_gap_tri_prefix_newtermleftinside + S (pfc_index_tri_prefix_new) = (K)) /\ ((((exists ff_h_pfp_tri_prefix_newtermleftentry. ff_h_pfp_tri_prefix_newtermleftentry + S (pfc_left_tri_prefix_newterm) = S ((S (pfc_index_tri_prefix_new)) * AC)) /\ exists ff_q_pfp_tri_prefix_newtermleftentry. AB = ff_q_pfp_tri_prefix_newtermleftentry * S ((S (pfc_index_tri_prefix_new)) * AC) + (pfc_left_tri_prefix_newterm)))))) \/ (((exists pfc_gap_tri_prefix_newtermleftoutside. pfc_gap_tri_prefix_newtermleftoutside+(K)=(pfc_index_tri_prefix_new)) /\ (((pfc_left_tri_prefix_newterm)=0))))) /\ ((((((exists pfa_gap_tri_prefix_newtermrightinside. pfa_gap_tri_prefix_newtermrightinside + S (pfc_complement_tri_prefix_newterm) = (M)) /\ ((((exists ff_h_pfp_tri_prefix_newtermrightentry. ff_h_pfp_tri_prefix_newtermrightentry + S (pfc_right_tri_prefix_newterm) = S ((S (pfc_complement_tri_prefix_newterm)) * bc)) /\ exists ff_q_pfp_tri_prefix_newtermrightentry. bb = ff_q_pfp_tri_prefix_newtermrightentry * S ((S (pfc_complement_tri_prefix_newterm)) * bc) + (pfc_right_tri_prefix_newterm)))))) \/ (((exists pfc_gap_tri_prefix_newtermrightoutside. pfc_gap_tri_prefix_newtermrightoutside+(M)=(pfc_complement_tri_prefix_newterm)) /\ (((pfc_right_tri_prefix_newterm)=0))))) /\ (((pfc_value_tri_prefix_new)=pfc_left_tri_prefix_newterm*pfc_right_tri_prefix_newterm)))))))))))
  1. intro ab
  2. intro ac
  3. intro L
  4. intro AB
  5. intro AC
  6. intro K
  7. intro bb
  8. intro bc
  9. intro M
  10. intro N
  11. intro i
  12. intro db
  13. intro dc
  14. intro hl
  15. intro hk
  16. intro he
  17. intro hd
  18. intro j
  19. intro hj
  20. have ht : exists t. ((((exists ff_h_pfp_tri_prefix_chosen_entry. ff_h_pfp_tri_prefix_chosen_entry + S (t) = S ((S (j)) * dc)) /\ exists ff_q_pfp_tri_prefix_chosen_entry. db = ff_q_pfp_tri_prefix_chosen_entry * S ((S (j)) * dc) + (t))) /\ ((exists pfc_complement_tri_prefix_chosen_term pfc_left_tri_prefix_chosen_term pfc_right_tri_prefix_chosen_term. (((j)+pfc_complement_tri_prefix_chosen_term=(i)) /\ ((((((exists pfa_gap_tri_prefix_chosen_termleftinside. pfa_gap_tri_prefix_chosen_termleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_tri_prefix_chosen_termleftentry. ff_h_pfp_tri_prefix_chosen_termleftentry + S (pfc_left_tri_prefix_chosen_term) = S ((S (j)) * ac)) /\ exists ff_q_pfp_tri_prefix_chosen_termleftentry. ab = ff_q_pfp_tri_prefix_chosen_termleftentry * S ((S (j)) * ac) + (pfc_left_tri_prefix_chosen_term)))))) \/ (((exists pfc_gap_tri_prefix_chosen_termleftoutside. pfc_gap_tri_prefix_chosen_termleftoutside+(L)=(j)) /\ (((pfc_left_tri_prefix_chosen_term)=0))))) /\ ((((((exists pfa_gap_tri_prefix_chosen_termrightinside. pfa_gap_tri_prefix_chosen_termrightinside + S (pfc_complement_tri_prefix_chosen_term) = (M)) /\ ((((exists ff_h_pfp_tri_prefix_chosen_termrightentry. ff_h_pfp_tri_prefix_chosen_termrightentry + S (pfc_right_tri_prefix_chosen_term) = S ((S (pfc_complement_tri_prefix_chosen_term)) * bc)) /\ exists ff_q_pfp_tri_prefix_chosen_termrightentry. bb = ff_q_pfp_tri_prefix_chosen_termrightentry * S ((S (pfc_complement_tri_prefix_chosen_term)) * bc) + (pfc_right_tri_prefix_chosen_term)))))) \/ (((exists pfc_gap_tri_prefix_chosen_termrightoutside. pfc_gap_tri_prefix_chosen_termrightoutside+(M)=(pfc_complement_tri_prefix_chosen_term)) /\ (((pfc_right_tri_prefix_chosen_term)=0))))) /\ (((t)=pfc_left_tri_prefix_chosen_term*pfc_right_tri_prefix_chosen_term))))))))))
  21. specialize hd (j)
  22. apply hd
  23. exact hj
  24. cases ht
  25. cases ht_witness
  26. exists x
  27. split
  28. exact ht_witness_left
  29. specialize polynomial_diagonal_left_prefix_transport (ab)
  30. specialize polynomial_diagonal_left_prefix_transport (ac)
  31. specialize polynomial_diagonal_left_prefix_transport (L)
  32. specialize polynomial_diagonal_left_prefix_transport (AB)
  33. specialize polynomial_diagonal_left_prefix_transport (AC)
  34. specialize polynomial_diagonal_left_prefix_transport (K)
  35. specialize polynomial_diagonal_left_prefix_transport (bb)
  36. specialize polynomial_diagonal_left_prefix_transport (bc)
  37. specialize polynomial_diagonal_left_prefix_transport (M)
  38. specialize polynomial_diagonal_left_prefix_transport (N)
  39. specialize polynomial_diagonal_left_prefix_transport (i)
  40. specialize polynomial_diagonal_left_prefix_transport (j)
  41. specialize polynomial_diagonal_left_prefix_transport (x)
  42. apply polynomial_diagonal_left_prefix_transport
  43. exact hl
  44. exact hk
  45. exact he
  46. exact hj
  47. exact ht_witness_right
polynomial_diagonal_sum_left_append · unchanged support, not a new admission
forall ab ac AB AC bb bc d N a b db dc eb ec u v. (forall mdr_i_pfp_tri_sum_equal mdr_a_pfp_tri_sum_equal. (exists mdr_gap_pfp_tri_sum_equalb. mdr_gap_pfp_tri_sum_equalb + S (mdr_i_pfp_tri_sum_equal) = (N)) -> (((exists ff_h_mdr_pfp_tri_sum_equalo. ff_h_mdr_pfp_tri_sum_equalo + S (mdr_a_pfp_tri_sum_equal) = S ((S (mdr_i_pfp_tri_sum_equal)) * ac)) /\ exists ff_q_mdr_pfp_tri_sum_equalo. ab = ff_q_mdr_pfp_tri_sum_equalo * S ((S (mdr_i_pfp_tri_sum_equal)) * ac) + (mdr_a_pfp_tri_sum_equal))) -> (((exists ff_h_mdr_pfp_tri_sum_equaln. ff_h_mdr_pfp_tri_sum_equaln + S (mdr_a_pfp_tri_sum_equal) = S ((S (mdr_i_pfp_tri_sum_equal)) * AC)) /\ exists ff_q_mdr_pfp_tri_sum_equaln. AB = ff_q_mdr_pfp_tri_sum_equaln * S ((S (mdr_i_pfp_tri_sum_equal)) * AC) + (mdr_a_pfp_tri_sum_equal)))) -> (((exists ff_h_pfp_tri_sum_appended. ff_h_pfp_tri_sum_appended + S (a) = S ((S (N)) * AC)) /\ exists ff_q_pfp_tri_sum_appended. AB = ff_q_pfp_tri_sum_appended * S ((S (N)) * AC) + (a))) -> (((exists ff_h_pfp_tri_sum_head. ff_h_pfp_tri_sum_head + S (b) = S ((S (0)) * bc)) /\ exists ff_q_pfp_tri_sum_head. bb = ff_q_pfp_tri_sum_head * S ((S (0)) * bc) + (b))) -> (forall pfc_index_tri_sum_old_table. (exists pfa_gap_tri_sum_old_tablebound. pfa_gap_tri_sum_old_tablebound + S (pfc_index_tri_sum_old_table) = (S N)) -> exists pfc_value_tri_sum_old_table. ((((exists ff_h_pfp_tri_sum_old_tableentry. ff_h_pfp_tri_sum_old_tableentry + S (pfc_value_tri_sum_old_table) = S ((S (pfc_index_tri_sum_old_table)) * dc)) /\ exists ff_q_pfp_tri_sum_old_tableentry. db = ff_q_pfp_tri_sum_old_tableentry * S ((S (pfc_index_tri_sum_old_table)) * dc) + (pfc_value_tri_sum_old_table))) /\ ((exists pfc_complement_tri_sum_old_tableterm pfc_left_tri_sum_old_tableterm pfc_right_tri_sum_old_tableterm. (((pfc_index_tri_sum_old_table)+pfc_complement_tri_sum_old_tableterm=(N)) /\ ((((((exists pfa_gap_tri_sum_old_tabletermleftinside. pfa_gap_tri_sum_old_tabletermleftinside + S (pfc_index_tri_sum_old_table) = (N)) /\ ((((exists ff_h_pfp_tri_sum_old_tabletermleftentry. ff_h_pfp_tri_sum_old_tabletermleftentry + S (pfc_left_tri_sum_old_tableterm) = S ((S (pfc_index_tri_sum_old_table)) * ac)) /\ exists ff_q_pfp_tri_sum_old_tabletermleftentry. ab = ff_q_pfp_tri_sum_old_tabletermleftentry * S ((S (pfc_index_tri_sum_old_table)) * ac) + (pfc_left_tri_sum_old_tableterm)))))) \/ (((exists pfc_gap_tri_sum_old_tabletermleftoutside. pfc_gap_tri_sum_old_tabletermleftoutside+(N)=(pfc_index_tri_sum_old_table)) /\ (((pfc_left_tri_sum_old_tableterm)=0))))) /\ ((((((exists pfa_gap_tri_sum_old_tabletermrightinside. pfa_gap_tri_sum_old_tabletermrightinside + S (pfc_complement_tri_sum_old_tableterm) = (S d)) /\ ((((exists ff_h_pfp_tri_sum_old_tabletermrightentry. ff_h_pfp_tri_sum_old_tabletermrightentry + S (pfc_right_tri_sum_old_tableterm) = S ((S (pfc_complement_tri_sum_old_tableterm)) * bc)) /\ exists ff_q_pfp_tri_sum_old_tabletermrightentry. bb = ff_q_pfp_tri_sum_old_tabletermrightentry * S ((S (pfc_complement_tri_sum_old_tableterm)) * bc) + (pfc_right_tri_sum_old_tableterm)))))) \/ (((exists pfc_gap_tri_sum_old_tabletermrightoutside. pfc_gap_tri_sum_old_tabletermrightoutside+(S d)=(pfc_complement_tri_sum_old_tableterm)) /\ (((pfc_right_tri_sum_old_tableterm)=0))))) /\ (((pfc_value_tri_sum_old_table)=pfc_left_tri_sum_old_tableterm*pfc_right_tri_sum_old_tableterm))))))))))) -> (exists fs_u_pfc_tri_sum_old_actual fs_v_pfc_tri_sum_old_actual. ((((exists fs_h_pfc_tri_sum_old_actual_body_start. fs_h_pfc_tri_sum_old_actual_body_start + S (0) = S ((S (0)) * fs_v_pfc_tri_sum_old_actual)) /\ exists fs_q_pfc_tri_sum_old_actual_body_start. fs_u_pfc_tri_sum_old_actual = fs_q_pfc_tri_sum_old_actual_body_start * S ((S (0)) * fs_v_pfc_tri_sum_old_actual) + (0))) /\ ((((exists fs_h_pfc_tri_sum_old_actual_body_terminal. fs_h_pfc_tri_sum_old_actual_body_terminal + S (u) = S ((S (S N)) * fs_v_pfc_tri_sum_old_actual)) /\ exists fs_q_pfc_tri_sum_old_actual_body_terminal. fs_u_pfc_tri_sum_old_actual = fs_q_pfc_tri_sum_old_actual_body_terminal * S ((S (S N)) * fs_v_pfc_tri_sum_old_actual) + (u))) /\ forall fs_i_pfc_tri_sum_old_actual_body_steps. (exists fs_lt_pfc_tri_sum_old_actual_body_steps_bound. fs_lt_pfc_tri_sum_old_actual_body_steps_bound + S fs_i_pfc_tri_sum_old_actual_body_steps = S N) -> exists fs_a_pfc_tri_sum_old_actual_body_steps fs_r_pfc_tri_sum_old_actual_body_steps fs_s_pfc_tri_sum_old_actual_body_steps. ((((exists fs_h_pfc_tri_sum_old_actual_body_steps_summand. fs_h_pfc_tri_sum_old_actual_body_steps_summand + S (fs_a_pfc_tri_sum_old_actual_body_steps) = S ((S (fs_i_pfc_tri_sum_old_actual_body_steps)) * dc)) /\ exists fs_q_pfc_tri_sum_old_actual_body_steps_summand. db = fs_q_pfc_tri_sum_old_actual_body_steps_summand * S ((S (fs_i_pfc_tri_sum_old_actual_body_steps)) * dc) + (fs_a_pfc_tri_sum_old_actual_body_steps))) /\ ((((exists fs_h_pfc_tri_sum_old_actual_body_steps_partial. fs_h_pfc_tri_sum_old_actual_body_steps_partial + S (fs_r_pfc_tri_sum_old_actual_body_steps) = S ((S (fs_i_pfc_tri_sum_old_actual_body_steps)) * fs_v_pfc_tri_sum_old_actual)) /\ exists fs_q_pfc_tri_sum_old_actual_body_steps_partial. fs_u_pfc_tri_sum_old_actual = fs_q_pfc_tri_sum_old_actual_body_steps_partial * S ((S (fs_i_pfc_tri_sum_old_actual_body_steps)) * fs_v_pfc_tri_sum_old_actual) + (fs_r_pfc_tri_sum_old_actual_body_steps))) /\ ((((exists fs_h_pfc_tri_sum_old_actual_body_steps_successor. fs_h_pfc_tri_sum_old_actual_body_steps_successor + S (fs_s_pfc_tri_sum_old_actual_body_steps) = S ((S (S fs_i_pfc_tri_sum_old_actual_body_steps)) * fs_v_pfc_tri_sum_old_actual)) /\ exists fs_q_pfc_tri_sum_old_actual_body_steps_successor. fs_u_pfc_tri_sum_old_actual = fs_q_pfc_tri_sum_old_actual_body_steps_successor * S ((S (S fs_i_pfc_tri_sum_old_actual_body_steps)) * fs_v_pfc_tri_sum_old_actual) + (fs_s_pfc_tri_sum_old_actual_body_steps))) /\ fs_s_pfc_tri_sum_old_actual_body_steps = fs_r_pfc_tri_sum_old_actual_body_steps + fs_a_pfc_tri_sum_old_actual_body_steps)))))) -> (forall pfc_index_tri_sum_new_table. (exists pfa_gap_tri_sum_new_tablebound. pfa_gap_tri_sum_new_tablebound + S (pfc_index_tri_sum_new_table) = (S N)) -> exists pfc_value_tri_sum_new_table. ((((exists ff_h_pfp_tri_sum_new_tableentry. ff_h_pfp_tri_sum_new_tableentry + S (pfc_value_tri_sum_new_table) = S ((S (pfc_index_tri_sum_new_table)) * ec)) /\ exists ff_q_pfp_tri_sum_new_tableentry. eb = ff_q_pfp_tri_sum_new_tableentry * S ((S (pfc_index_tri_sum_new_table)) * ec) + (pfc_value_tri_sum_new_table))) /\ ((exists pfc_complement_tri_sum_new_tableterm pfc_left_tri_sum_new_tableterm pfc_right_tri_sum_new_tableterm. (((pfc_index_tri_sum_new_table)+pfc_complement_tri_sum_new_tableterm=(N)) /\ ((((((exists pfa_gap_tri_sum_new_tabletermleftinside. pfa_gap_tri_sum_new_tabletermleftinside + S (pfc_index_tri_sum_new_table) = (S N)) /\ ((((exists ff_h_pfp_tri_sum_new_tabletermleftentry. ff_h_pfp_tri_sum_new_tabletermleftentry + S (pfc_left_tri_sum_new_tableterm) = S ((S (pfc_index_tri_sum_new_table)) * AC)) /\ exists ff_q_pfp_tri_sum_new_tabletermleftentry. AB = ff_q_pfp_tri_sum_new_tabletermleftentry * S ((S (pfc_index_tri_sum_new_table)) * AC) + (pfc_left_tri_sum_new_tableterm)))))) \/ (((exists pfc_gap_tri_sum_new_tabletermleftoutside. pfc_gap_tri_sum_new_tabletermleftoutside+(S N)=(pfc_index_tri_sum_new_table)) /\ (((pfc_left_tri_sum_new_tableterm)=0))))) /\ ((((((exists pfa_gap_tri_sum_new_tabletermrightinside. pfa_gap_tri_sum_new_tabletermrightinside + S (pfc_complement_tri_sum_new_tableterm) = (S d)) /\ ((((exists ff_h_pfp_tri_sum_new_tabletermrightentry. ff_h_pfp_tri_sum_new_tabletermrightentry + S (pfc_right_tri_sum_new_tableterm) = S ((S (pfc_complement_tri_sum_new_tableterm)) * bc)) /\ exists ff_q_pfp_tri_sum_new_tabletermrightentry. bb = ff_q_pfp_tri_sum_new_tabletermrightentry * S ((S (pfc_complement_tri_sum_new_tableterm)) * bc) + (pfc_right_tri_sum_new_tableterm)))))) \/ (((exists pfc_gap_tri_sum_new_tabletermrightoutside. pfc_gap_tri_sum_new_tabletermrightoutside+(S d)=(pfc_complement_tri_sum_new_tableterm)) /\ (((pfc_right_tri_sum_new_tableterm)=0))))) /\ (((pfc_value_tri_sum_new_table)=pfc_left_tri_sum_new_tableterm*pfc_right_tri_sum_new_tableterm))))))))))) -> (exists fs_u_pfc_tri_sum_new_actual fs_v_pfc_tri_sum_new_actual. ((((exists fs_h_pfc_tri_sum_new_actual_body_start. fs_h_pfc_tri_sum_new_actual_body_start + S (0) = S ((S (0)) * fs_v_pfc_tri_sum_new_actual)) /\ exists fs_q_pfc_tri_sum_new_actual_body_start. fs_u_pfc_tri_sum_new_actual = fs_q_pfc_tri_sum_new_actual_body_start * S ((S (0)) * fs_v_pfc_tri_sum_new_actual) + (0))) /\ ((((exists fs_h_pfc_tri_sum_new_actual_body_terminal. fs_h_pfc_tri_sum_new_actual_body_terminal + S (v) = S ((S (S N)) * fs_v_pfc_tri_sum_new_actual)) /\ exists fs_q_pfc_tri_sum_new_actual_body_terminal. fs_u_pfc_tri_sum_new_actual = fs_q_pfc_tri_sum_new_actual_body_terminal * S ((S (S N)) * fs_v_pfc_tri_sum_new_actual) + (v))) /\ forall fs_i_pfc_tri_sum_new_actual_body_steps. (exists fs_lt_pfc_tri_sum_new_actual_body_steps_bound. fs_lt_pfc_tri_sum_new_actual_body_steps_bound + S fs_i_pfc_tri_sum_new_actual_body_steps = S N) -> exists fs_a_pfc_tri_sum_new_actual_body_steps fs_r_pfc_tri_sum_new_actual_body_steps fs_s_pfc_tri_sum_new_actual_body_steps. ((((exists fs_h_pfc_tri_sum_new_actual_body_steps_summand. fs_h_pfc_tri_sum_new_actual_body_steps_summand + S (fs_a_pfc_tri_sum_new_actual_body_steps) = S ((S (fs_i_pfc_tri_sum_new_actual_body_steps)) * ec)) /\ exists fs_q_pfc_tri_sum_new_actual_body_steps_summand. eb = fs_q_pfc_tri_sum_new_actual_body_steps_summand * S ((S (fs_i_pfc_tri_sum_new_actual_body_steps)) * ec) + (fs_a_pfc_tri_sum_new_actual_body_steps))) /\ ((((exists fs_h_pfc_tri_sum_new_actual_body_steps_partial. fs_h_pfc_tri_sum_new_actual_body_steps_partial + S (fs_r_pfc_tri_sum_new_actual_body_steps) = S ((S (fs_i_pfc_tri_sum_new_actual_body_steps)) * fs_v_pfc_tri_sum_new_actual)) /\ exists fs_q_pfc_tri_sum_new_actual_body_steps_partial. fs_u_pfc_tri_sum_new_actual = fs_q_pfc_tri_sum_new_actual_body_steps_partial * S ((S (fs_i_pfc_tri_sum_new_actual_body_steps)) * fs_v_pfc_tri_sum_new_actual) + (fs_r_pfc_tri_sum_new_actual_body_steps))) /\ ((((exists fs_h_pfc_tri_sum_new_actual_body_steps_successor. fs_h_pfc_tri_sum_new_actual_body_steps_successor + S (fs_s_pfc_tri_sum_new_actual_body_steps) = S ((S (S fs_i_pfc_tri_sum_new_actual_body_steps)) * fs_v_pfc_tri_sum_new_actual)) /\ exists fs_q_pfc_tri_sum_new_actual_body_steps_successor. fs_u_pfc_tri_sum_new_actual = fs_q_pfc_tri_sum_new_actual_body_steps_successor * S ((S (S fs_i_pfc_tri_sum_new_actual_body_steps)) * fs_v_pfc_tri_sum_new_actual) + (fs_s_pfc_tri_sum_new_actual_body_steps))) /\ fs_s_pfc_tri_sum_new_actual_body_steps = fs_r_pfc_tri_sum_new_actual_body_steps + fs_a_pfc_tri_sum_new_actual_body_steps)))))) -> v=u+a*b
  1. intro ab
  2. intro ac
  3. intro AB
  4. intro AC
  5. intro bb
  6. intro bc
  7. intro d
  8. intro N
  9. intro a
  10. intro b
  11. intro db
  12. intro dc
  13. intro eb
  14. intro ec
  15. intro u
  16. intro v
  17. intro he
  18. intro ha
  19. intro hb
  20. intro hd
  21. intro hu
  22. intro hetable
  23. intro hv
  24. have hold : exists t s. ((((exists ff_h_pfp_tri_sum_old_last. ff_h_pfp_tri_sum_old_last + S (t) = S ((S (N)) * dc)) /\ exists ff_q_pfp_tri_sum_old_last. db = ff_q_pfp_tri_sum_old_last * S ((S (N)) * dc) + (t))) /\ (((exists fs_u_pfc_tri_sum_old_prefix fs_v_pfc_tri_sum_old_prefix. ((((exists fs_h_pfc_tri_sum_old_prefix_body_start. fs_h_pfc_tri_sum_old_prefix_body_start + S (0) = S ((S (0)) * fs_v_pfc_tri_sum_old_prefix)) /\ exists fs_q_pfc_tri_sum_old_prefix_body_start. fs_u_pfc_tri_sum_old_prefix = fs_q_pfc_tri_sum_old_prefix_body_start * S ((S (0)) * fs_v_pfc_tri_sum_old_prefix) + (0))) /\ ((((exists fs_h_pfc_tri_sum_old_prefix_body_terminal. fs_h_pfc_tri_sum_old_prefix_body_terminal + S (s) = S ((S (N)) * fs_v_pfc_tri_sum_old_prefix)) /\ exists fs_q_pfc_tri_sum_old_prefix_body_terminal. fs_u_pfc_tri_sum_old_prefix = fs_q_pfc_tri_sum_old_prefix_body_terminal * S ((S (N)) * fs_v_pfc_tri_sum_old_prefix) + (s))) /\ forall fs_i_pfc_tri_sum_old_prefix_body_steps. (exists fs_lt_pfc_tri_sum_old_prefix_body_steps_bound. fs_lt_pfc_tri_sum_old_prefix_body_steps_bound + S fs_i_pfc_tri_sum_old_prefix_body_steps = N) -> exists fs_a_pfc_tri_sum_old_prefix_body_steps fs_r_pfc_tri_sum_old_prefix_body_steps fs_s_pfc_tri_sum_old_prefix_body_steps. ((((exists fs_h_pfc_tri_sum_old_prefix_body_steps_summand. fs_h_pfc_tri_sum_old_prefix_body_steps_summand + S (fs_a_pfc_tri_sum_old_prefix_body_steps) = S ((S (fs_i_pfc_tri_sum_old_prefix_body_steps)) * dc)) /\ exists fs_q_pfc_tri_sum_old_prefix_body_steps_summand. db = fs_q_pfc_tri_sum_old_prefix_body_steps_summand * S ((S (fs_i_pfc_tri_sum_old_prefix_body_steps)) * dc) + (fs_a_pfc_tri_sum_old_prefix_body_steps))) /\ ((((exists fs_h_pfc_tri_sum_old_prefix_body_steps_partial. fs_h_pfc_tri_sum_old_prefix_body_steps_partial + S (fs_r_pfc_tri_sum_old_prefix_body_steps) = S ((S (fs_i_pfc_tri_sum_old_prefix_body_steps)) * fs_v_pfc_tri_sum_old_prefix)) /\ exists fs_q_pfc_tri_sum_old_prefix_body_steps_partial. fs_u_pfc_tri_sum_old_prefix = fs_q_pfc_tri_sum_old_prefix_body_steps_partial * S ((S (fs_i_pfc_tri_sum_old_prefix_body_steps)) * fs_v_pfc_tri_sum_old_prefix) + (fs_r_pfc_tri_sum_old_prefix_body_steps))) /\ ((((exists fs_h_pfc_tri_sum_old_prefix_body_steps_successor. fs_h_pfc_tri_sum_old_prefix_body_steps_successor + S (fs_s_pfc_tri_sum_old_prefix_body_steps) = S ((S (S fs_i_pfc_tri_sum_old_prefix_body_steps)) * fs_v_pfc_tri_sum_old_prefix)) /\ exists fs_q_pfc_tri_sum_old_prefix_body_steps_successor. fs_u_pfc_tri_sum_old_prefix = fs_q_pfc_tri_sum_old_prefix_body_steps_successor * S ((S (S fs_i_pfc_tri_sum_old_prefix_body_steps)) * fs_v_pfc_tri_sum_old_prefix) + (fs_s_pfc_tri_sum_old_prefix_body_steps))) /\ fs_s_pfc_tri_sum_old_prefix_body_steps = fs_r_pfc_tri_sum_old_prefix_body_steps + fs_a_pfc_tri_sum_old_prefix_body_steps)))))) /\ ((u=s+t)))))
  25. specialize beta_sum_succ_decompose (db)
  26. specialize beta_sum_succ_decompose (dc)
  27. specialize beta_sum_succ_decompose (N)
  28. specialize beta_sum_succ_decompose (u)
  29. apply beta_sum_succ_decompose
  30. exact hu
  31. cases hold
  32. cases hold_witness
  33. cases hold_witness_witness
  34. cases hold_witness_witness_right
  35. have hnew : exists t s. ((((exists ff_h_pfp_tri_sum_new_last. ff_h_pfp_tri_sum_new_last + S (t) = S ((S (N)) * ec)) /\ exists ff_q_pfp_tri_sum_new_last. eb = ff_q_pfp_tri_sum_new_last * S ((S (N)) * ec) + (t))) /\ (((exists fs_u_pfc_tri_sum_new_prefix fs_v_pfc_tri_sum_new_prefix. ((((exists fs_h_pfc_tri_sum_new_prefix_body_start. fs_h_pfc_tri_sum_new_prefix_body_start + S (0) = S ((S (0)) * fs_v_pfc_tri_sum_new_prefix)) /\ exists fs_q_pfc_tri_sum_new_prefix_body_start. fs_u_pfc_tri_sum_new_prefix = fs_q_pfc_tri_sum_new_prefix_body_start * S ((S (0)) * fs_v_pfc_tri_sum_new_prefix) + (0))) /\ ((((exists fs_h_pfc_tri_sum_new_prefix_body_terminal. fs_h_pfc_tri_sum_new_prefix_body_terminal + S (s) = S ((S (N)) * fs_v_pfc_tri_sum_new_prefix)) /\ exists fs_q_pfc_tri_sum_new_prefix_body_terminal. fs_u_pfc_tri_sum_new_prefix = fs_q_pfc_tri_sum_new_prefix_body_terminal * S ((S (N)) * fs_v_pfc_tri_sum_new_prefix) + (s))) /\ forall fs_i_pfc_tri_sum_new_prefix_body_steps. (exists fs_lt_pfc_tri_sum_new_prefix_body_steps_bound. fs_lt_pfc_tri_sum_new_prefix_body_steps_bound + S fs_i_pfc_tri_sum_new_prefix_body_steps = N) -> exists fs_a_pfc_tri_sum_new_prefix_body_steps fs_r_pfc_tri_sum_new_prefix_body_steps fs_s_pfc_tri_sum_new_prefix_body_steps. ((((exists fs_h_pfc_tri_sum_new_prefix_body_steps_summand. fs_h_pfc_tri_sum_new_prefix_body_steps_summand + S (fs_a_pfc_tri_sum_new_prefix_body_steps) = S ((S (fs_i_pfc_tri_sum_new_prefix_body_steps)) * ec)) /\ exists fs_q_pfc_tri_sum_new_prefix_body_steps_summand. eb = fs_q_pfc_tri_sum_new_prefix_body_steps_summand * S ((S (fs_i_pfc_tri_sum_new_prefix_body_steps)) * ec) + (fs_a_pfc_tri_sum_new_prefix_body_steps))) /\ ((((exists fs_h_pfc_tri_sum_new_prefix_body_steps_partial. fs_h_pfc_tri_sum_new_prefix_body_steps_partial + S (fs_r_pfc_tri_sum_new_prefix_body_steps) = S ((S (fs_i_pfc_tri_sum_new_prefix_body_steps)) * fs_v_pfc_tri_sum_new_prefix)) /\ exists fs_q_pfc_tri_sum_new_prefix_body_steps_partial. fs_u_pfc_tri_sum_new_prefix = fs_q_pfc_tri_sum_new_prefix_body_steps_partial * S ((S (fs_i_pfc_tri_sum_new_prefix_body_steps)) * fs_v_pfc_tri_sum_new_prefix) + (fs_r_pfc_tri_sum_new_prefix_body_steps))) /\ ((((exists fs_h_pfc_tri_sum_new_prefix_body_steps_successor. fs_h_pfc_tri_sum_new_prefix_body_steps_successor + S (fs_s_pfc_tri_sum_new_prefix_body_steps) = S ((S (S fs_i_pfc_tri_sum_new_prefix_body_steps)) * fs_v_pfc_tri_sum_new_prefix)) /\ exists fs_q_pfc_tri_sum_new_prefix_body_steps_successor. fs_u_pfc_tri_sum_new_prefix = fs_q_pfc_tri_sum_new_prefix_body_steps_successor * S ((S (S fs_i_pfc_tri_sum_new_prefix_body_steps)) * fs_v_pfc_tri_sum_new_prefix) + (fs_s_pfc_tri_sum_new_prefix_body_steps))) /\ fs_s_pfc_tri_sum_new_prefix_body_steps = fs_r_pfc_tri_sum_new_prefix_body_steps + fs_a_pfc_tri_sum_new_prefix_body_steps)))))) /\ ((v=s+t)))))
  36. specialize beta_sum_succ_decompose (eb)
  37. specialize beta_sum_succ_decompose (ec)
  38. specialize beta_sum_succ_decompose (N)
  39. specialize beta_sum_succ_decompose (v)
  40. apply beta_sum_succ_decompose
  41. exact hv
  42. cases hnew
  43. cases hnew_witness
  44. cases hnew_witness_witness
  45. cases hnew_witness_witness_right
  46. have hz : x=0
  47. specialize polynomial_diagonal_last_term_left_empty (ab)
  48. specialize polynomial_diagonal_last_term_left_empty (ac)
  49. specialize polynomial_diagonal_last_term_left_empty (bb)
  50. specialize polynomial_diagonal_last_term_left_empty (bc)
  51. specialize polynomial_diagonal_last_term_left_empty (S d)
  52. specialize polynomial_diagonal_last_term_left_empty (N)
  53. specialize polynomial_diagonal_last_term_left_empty (x)
  54. apply polynomial_diagonal_last_term_left_empty
  55. specialize polynomial_diagonal_prefix_entry (ab)
  56. specialize polynomial_diagonal_prefix_entry (ac)
  57. specialize polynomial_diagonal_prefix_entry (N)
  58. specialize polynomial_diagonal_prefix_entry (bb)
  59. specialize polynomial_diagonal_prefix_entry (bc)
  60. specialize polynomial_diagonal_prefix_entry (S d)
  61. specialize polynomial_diagonal_prefix_entry (N)
  62. specialize polynomial_diagonal_prefix_entry (db)
  63. specialize polynomial_diagonal_prefix_entry (dc)
  64. specialize polynomial_diagonal_prefix_entry (S N)
  65. specialize polynomial_diagonal_prefix_entry (N)
  66. specialize polynomial_diagonal_prefix_entry (x)
  67. apply polynomial_diagonal_prefix_entry
  68. exact hd
  69. specialize le_refl (S N)
  70. apply le_refl
  71. exact hold_witness_witness_left
  72. have ht : x2=a*b
  73. specialize polynomial_diagonal_last_term_left_append (AB)
  74. specialize polynomial_diagonal_last_term_left_append (AC)
  75. specialize polynomial_diagonal_last_term_left_append (bb)
  76. specialize polynomial_diagonal_last_term_left_append (bc)
  77. specialize polynomial_diagonal_last_term_left_append (d)
  78. specialize polynomial_diagonal_last_term_left_append (N)
  79. specialize polynomial_diagonal_last_term_left_append (a)
  80. specialize polynomial_diagonal_last_term_left_append (b)
  81. specialize polynomial_diagonal_last_term_left_append (x2)
  82. apply polynomial_diagonal_last_term_left_append
  83. exact ha
  84. exact hb
  85. specialize polynomial_diagonal_prefix_entry (AB)
  86. specialize polynomial_diagonal_prefix_entry (AC)
  87. specialize polynomial_diagonal_prefix_entry (S N)
  88. specialize polynomial_diagonal_prefix_entry (bb)
  89. specialize polynomial_diagonal_prefix_entry (bc)
  90. specialize polynomial_diagonal_prefix_entry (S d)
  91. specialize polynomial_diagonal_prefix_entry (N)
  92. specialize polynomial_diagonal_prefix_entry (eb)
  93. specialize polynomial_diagonal_prefix_entry (ec)
  94. specialize polynomial_diagonal_prefix_entry (S N)
  95. specialize polynomial_diagonal_prefix_entry (N)
  96. specialize polynomial_diagonal_prefix_entry (x2)
  97. apply polynomial_diagonal_prefix_entry
  98. exact hetable
  99. specialize le_refl (S N)
  100. apply le_refl
  101. exact hnew_witness_witness_left
  102. have hprefix : forall pfc_index_tri_sum_transported. (exists pfa_gap_tri_sum_transportedbound. pfa_gap_tri_sum_transportedbound + S (pfc_index_tri_sum_transported) = (N)) -> exists pfc_value_tri_sum_transported. ((((exists ff_h_pfp_tri_sum_transportedentry. ff_h_pfp_tri_sum_transportedentry + S (pfc_value_tri_sum_transported) = S ((S (pfc_index_tri_sum_transported)) * dc)) /\ exists ff_q_pfp_tri_sum_transportedentry. db = ff_q_pfp_tri_sum_transportedentry * S ((S (pfc_index_tri_sum_transported)) * dc) + (pfc_value_tri_sum_transported))) /\ ((exists pfc_complement_tri_sum_transportedterm pfc_left_tri_sum_transportedterm pfc_right_tri_sum_transportedterm. (((pfc_index_tri_sum_transported)+pfc_complement_tri_sum_transportedterm=(N)) /\ ((((((exists pfa_gap_tri_sum_transportedtermleftinside. pfa_gap_tri_sum_transportedtermleftinside + S (pfc_index_tri_sum_transported) = (S N)) /\ ((((exists ff_h_pfp_tri_sum_transportedtermleftentry. ff_h_pfp_tri_sum_transportedtermleftentry + S (pfc_left_tri_sum_transportedterm) = S ((S (pfc_index_tri_sum_transported)) * AC)) /\ exists ff_q_pfp_tri_sum_transportedtermleftentry. AB = ff_q_pfp_tri_sum_transportedtermleftentry * S ((S (pfc_index_tri_sum_transported)) * AC) + (pfc_left_tri_sum_transportedterm)))))) \/ (((exists pfc_gap_tri_sum_transportedtermleftoutside. pfc_gap_tri_sum_transportedtermleftoutside+(S N)=(pfc_index_tri_sum_transported)) /\ (((pfc_left_tri_sum_transportedterm)=0))))) /\ ((((((exists pfa_gap_tri_sum_transportedtermrightinside. pfa_gap_tri_sum_transportedtermrightinside + S (pfc_complement_tri_sum_transportedterm) = (S d)) /\ ((((exists ff_h_pfp_tri_sum_transportedtermrightentry. ff_h_pfp_tri_sum_transportedtermrightentry + S (pfc_right_tri_sum_transportedterm) = S ((S (pfc_complement_tri_sum_transportedterm)) * bc)) /\ exists ff_q_pfp_tri_sum_transportedtermrightentry. bb = ff_q_pfp_tri_sum_transportedtermrightentry * S ((S (pfc_complement_tri_sum_transportedterm)) * bc) + (pfc_right_tri_sum_transportedterm)))))) \/ (((exists pfc_gap_tri_sum_transportedtermrightoutside. pfc_gap_tri_sum_transportedtermrightoutside+(S d)=(pfc_complement_tri_sum_transportedterm)) /\ (((pfc_right_tri_sum_transportedterm)=0))))) /\ (((pfc_value_tri_sum_transported)=pfc_left_tri_sum_transportedterm*pfc_right_tri_sum_transportedterm))))))))))
  103. specialize polynomial_diagonal_prefix_left_transport (ab)
  104. specialize polynomial_diagonal_prefix_left_transport (ac)
  105. specialize polynomial_diagonal_prefix_left_transport (N)
  106. specialize polynomial_diagonal_prefix_left_transport (AB)
  107. specialize polynomial_diagonal_prefix_left_transport (AC)
  108. specialize polynomial_diagonal_prefix_left_transport (S N)
  109. specialize polynomial_diagonal_prefix_left_transport (bb)
  110. specialize polynomial_diagonal_prefix_left_transport (bc)
  111. specialize polynomial_diagonal_prefix_left_transport (S d)
  112. specialize polynomial_diagonal_prefix_left_transport (N)
  113. specialize polynomial_diagonal_prefix_left_transport (N)
  114. specialize polynomial_diagonal_prefix_left_transport (db)
  115. specialize polynomial_diagonal_prefix_left_transport (dc)
  116. apply polynomial_diagonal_prefix_left_transport
  117. specialize le_refl (N)
  118. apply le_refl
  119. specialize le_succ (N)
  120. specialize le_succ (N)
  121. apply le_succ
  122. specialize le_refl (N)
  123. apply le_refl
  124. exact he
  125. intro j
  126. intro hj
  127. specialize hd (j)
  128. apply hd
  129. specialize le_succ (S j)
  130. specialize le_succ (N)
  131. apply le_succ
  132. exact hj
  133. have hs : exists fs_u_pfc_tri_sum_same_prefix fs_v_pfc_tri_sum_same_prefix. ((((exists fs_h_pfc_tri_sum_same_prefix_body_start. fs_h_pfc_tri_sum_same_prefix_body_start + S (0) = S ((S (0)) * fs_v_pfc_tri_sum_same_prefix)) /\ exists fs_q_pfc_tri_sum_same_prefix_body_start. fs_u_pfc_tri_sum_same_prefix = fs_q_pfc_tri_sum_same_prefix_body_start * S ((S (0)) * fs_v_pfc_tri_sum_same_prefix) + (0))) /\ ((((exists fs_h_pfc_tri_sum_same_prefix_body_terminal. fs_h_pfc_tri_sum_same_prefix_body_terminal + S (x1) = S ((S (N)) * fs_v_pfc_tri_sum_same_prefix)) /\ exists fs_q_pfc_tri_sum_same_prefix_body_terminal. fs_u_pfc_tri_sum_same_prefix = fs_q_pfc_tri_sum_same_prefix_body_terminal * S ((S (N)) * fs_v_pfc_tri_sum_same_prefix) + (x1))) /\ forall fs_i_pfc_tri_sum_same_prefix_body_steps. (exists fs_lt_pfc_tri_sum_same_prefix_body_steps_bound. fs_lt_pfc_tri_sum_same_prefix_body_steps_bound + S fs_i_pfc_tri_sum_same_prefix_body_steps = N) -> exists fs_a_pfc_tri_sum_same_prefix_body_steps fs_r_pfc_tri_sum_same_prefix_body_steps fs_s_pfc_tri_sum_same_prefix_body_steps. ((((exists fs_h_pfc_tri_sum_same_prefix_body_steps_summand. fs_h_pfc_tri_sum_same_prefix_body_steps_summand + S (fs_a_pfc_tri_sum_same_prefix_body_steps) = S ((S (fs_i_pfc_tri_sum_same_prefix_body_steps)) * ec)) /\ exists fs_q_pfc_tri_sum_same_prefix_body_steps_summand. eb = fs_q_pfc_tri_sum_same_prefix_body_steps_summand * S ((S (fs_i_pfc_tri_sum_same_prefix_body_steps)) * ec) + (fs_a_pfc_tri_sum_same_prefix_body_steps))) /\ ((((exists fs_h_pfc_tri_sum_same_prefix_body_steps_partial. fs_h_pfc_tri_sum_same_prefix_body_steps_partial + S (fs_r_pfc_tri_sum_same_prefix_body_steps) = S ((S (fs_i_pfc_tri_sum_same_prefix_body_steps)) * fs_v_pfc_tri_sum_same_prefix)) /\ exists fs_q_pfc_tri_sum_same_prefix_body_steps_partial. fs_u_pfc_tri_sum_same_prefix = fs_q_pfc_tri_sum_same_prefix_body_steps_partial * S ((S (fs_i_pfc_tri_sum_same_prefix_body_steps)) * fs_v_pfc_tri_sum_same_prefix) + (fs_r_pfc_tri_sum_same_prefix_body_steps))) /\ ((((exists fs_h_pfc_tri_sum_same_prefix_body_steps_successor. fs_h_pfc_tri_sum_same_prefix_body_steps_successor + S (fs_s_pfc_tri_sum_same_prefix_body_steps) = S ((S (S fs_i_pfc_tri_sum_same_prefix_body_steps)) * fs_v_pfc_tri_sum_same_prefix)) /\ exists fs_q_pfc_tri_sum_same_prefix_body_steps_successor. fs_u_pfc_tri_sum_same_prefix = fs_q_pfc_tri_sum_same_prefix_body_steps_successor * S ((S (S fs_i_pfc_tri_sum_same_prefix_body_steps)) * fs_v_pfc_tri_sum_same_prefix) + (fs_s_pfc_tri_sum_same_prefix_body_steps))) /\ fs_s_pfc_tri_sum_same_prefix_body_steps = fs_r_pfc_tri_sum_same_prefix_body_steps + fs_a_pfc_tri_sum_same_prefix_body_steps)))))
  134. specialize beta_sum_transport_prefix (db)
  135. specialize beta_sum_transport_prefix (dc)
  136. specialize beta_sum_transport_prefix (eb)
  137. specialize beta_sum_transport_prefix (ec)
  138. specialize beta_sum_transport_prefix (N)
  139. specialize beta_sum_transport_prefix (x1)
  140. apply beta_sum_transport_prefix
  141. exact hold_witness_witness_right_left
  142. specialize polynomial_diagonal_prefix_functional (AB)
  143. specialize polynomial_diagonal_prefix_functional (AC)
  144. specialize polynomial_diagonal_prefix_functional (S N)
  145. specialize polynomial_diagonal_prefix_functional (bb)
  146. specialize polynomial_diagonal_prefix_functional (bc)
  147. specialize polynomial_diagonal_prefix_functional (S d)
  148. specialize polynomial_diagonal_prefix_functional (N)
  149. specialize polynomial_diagonal_prefix_functional (db)
  150. specialize polynomial_diagonal_prefix_functional (dc)
  151. specialize polynomial_diagonal_prefix_functional (eb)
  152. specialize polynomial_diagonal_prefix_functional (ec)
  153. specialize polynomial_diagonal_prefix_functional (N)
  154. apply polynomial_diagonal_prefix_functional
  155. exact hprefix
  156. intro j
  157. intro hj
  158. specialize hetable (j)
  159. apply hetable
  160. specialize le_succ (S j)
  161. specialize le_succ (N)
  162. apply le_succ
  163. exact hj
  164. have hbase : x1=x3
  165. specialize beta_sum_functional (eb)
  166. specialize beta_sum_functional (ec)
  167. specialize beta_sum_functional (N)
  168. specialize beta_sum_functional (x1)
  169. specialize beta_sum_functional (x3)
  170. apply beta_sum_functional
  171. exact hs
  172. exact hnew_witness_witness_right_left
  173. have huvalue : u=x1
  174. trans x1+x
  175. exact hold_witness_witness_right_right
  176. rewrite hz
  177. simp
  178. trans x3+x2
  179. exact hnew_witness_witness_right_right
  180. congr
  181. trans x1
  182. symm
  183. exact hbase
  184. symm
  185. exact huvalue
  186. exact ht
prime_field_convolution_coefficient_append · unchanged support, not a new admission
forall p ab ac AB AC bb bc d N a b c t r. (forall mdr_i_pfp_tri_append_prefix mdr_a_pfp_tri_append_prefix. (exists mdr_gap_pfp_tri_append_prefixb. mdr_gap_pfp_tri_append_prefixb + S (mdr_i_pfp_tri_append_prefix) = (N)) -> (((exists ff_h_mdr_pfp_tri_append_prefixo. ff_h_mdr_pfp_tri_append_prefixo + S (mdr_a_pfp_tri_append_prefix) = S ((S (mdr_i_pfp_tri_append_prefix)) * ac)) /\ exists ff_q_mdr_pfp_tri_append_prefixo. ab = ff_q_mdr_pfp_tri_append_prefixo * S ((S (mdr_i_pfp_tri_append_prefix)) * ac) + (mdr_a_pfp_tri_append_prefix))) -> (((exists ff_h_mdr_pfp_tri_append_prefixn. ff_h_mdr_pfp_tri_append_prefixn + S (mdr_a_pfp_tri_append_prefix) = S ((S (mdr_i_pfp_tri_append_prefix)) * AC)) /\ exists ff_q_mdr_pfp_tri_append_prefixn. AB = ff_q_mdr_pfp_tri_append_prefixn * S ((S (mdr_i_pfp_tri_append_prefix)) * AC) + (mdr_a_pfp_tri_append_prefix)))) -> (((exists ff_h_pfp_tri_append_actual_entry. ff_h_pfp_tri_append_actual_entry + S (a) = S ((S (N)) * AC)) /\ exists ff_q_pfp_tri_append_actual_entry. AB = ff_q_pfp_tri_append_actual_entry * S ((S (N)) * AC) + (a))) -> (((exists ff_h_pfp_tri_append_actual_head. ff_h_pfp_tri_append_actual_head + S (b) = S ((S (0)) * bc)) /\ exists ff_q_pfp_tri_append_actual_head. bb = ff_q_pfp_tri_append_actual_head * S ((S (0)) * bc) + (b))) -> (exists pfc_terms_code_tri_append_previous_coefficient pfc_terms_scale_tri_append_previous_coefficient pfc_natural_sum_tri_append_previous_coefficient. ((forall pfc_index_tri_append_previous_coefficientdiagonal. (exists pfa_gap_tri_append_previous_coefficientdiagonalbound. pfa_gap_tri_append_previous_coefficientdiagonalbound + S (pfc_index_tri_append_previous_coefficientdiagonal) = (S (N))) -> exists pfc_value_tri_append_previous_coefficientdiagonal. ((((exists ff_h_pfp_tri_append_previous_coefficientdiagonalentry. ff_h_pfp_tri_append_previous_coefficientdiagonalentry + S (pfc_value_tri_append_previous_coefficientdiagonal) = S ((S (pfc_index_tri_append_previous_coefficientdiagonal)) * pfc_terms_scale_tri_append_previous_coefficient)) /\ exists ff_q_pfp_tri_append_previous_coefficientdiagonalentry. pfc_terms_code_tri_append_previous_coefficient = ff_q_pfp_tri_append_previous_coefficientdiagonalentry * S ((S (pfc_index_tri_append_previous_coefficientdiagonal)) * pfc_terms_scale_tri_append_previous_coefficient) + (pfc_value_tri_append_previous_coefficientdiagonal))) /\ ((exists pfc_complement_tri_append_previous_coefficientdiagonalterm pfc_left_tri_append_previous_coefficientdiagonalterm pfc_right_tri_append_previous_coefficientdiagonalterm. (((pfc_index_tri_append_previous_coefficientdiagonal)+pfc_complement_tri_append_previous_coefficientdiagonalterm=(N)) /\ ((((((exists pfa_gap_tri_append_previous_coefficientdiagonaltermleftinside. pfa_gap_tri_append_previous_coefficientdiagonaltermleftinside + S (pfc_index_tri_append_previous_coefficientdiagonal) = (N)) /\ ((((exists ff_h_pfp_tri_append_previous_coefficientdiagonaltermleftentry. ff_h_pfp_tri_append_previous_coefficientdiagonaltermleftentry + S (pfc_left_tri_append_previous_coefficientdiagonalterm) = S ((S (pfc_index_tri_append_previous_coefficientdiagonal)) * ac)) /\ exists ff_q_pfp_tri_append_previous_coefficientdiagonaltermleftentry. ab = ff_q_pfp_tri_append_previous_coefficientdiagonaltermleftentry * S ((S (pfc_index_tri_append_previous_coefficientdiagonal)) * ac) + (pfc_left_tri_append_previous_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_tri_append_previous_coefficientdiagonaltermleftoutside. pfc_gap_tri_append_previous_coefficientdiagonaltermleftoutside+(N)=(pfc_index_tri_append_previous_coefficientdiagonal)) /\ (((pfc_left_tri_append_previous_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_tri_append_previous_coefficientdiagonaltermrightinside. pfa_gap_tri_append_previous_coefficientdiagonaltermrightinside + S (pfc_complement_tri_append_previous_coefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_tri_append_previous_coefficientdiagonaltermrightentry. ff_h_pfp_tri_append_previous_coefficientdiagonaltermrightentry + S (pfc_right_tri_append_previous_coefficientdiagonalterm) = S ((S (pfc_complement_tri_append_previous_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_tri_append_previous_coefficientdiagonaltermrightentry. bb = ff_q_pfp_tri_append_previous_coefficientdiagonaltermrightentry * S ((S (pfc_complement_tri_append_previous_coefficientdiagonalterm)) * bc) + (pfc_right_tri_append_previous_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_tri_append_previous_coefficientdiagonaltermrightoutside. pfc_gap_tri_append_previous_coefficientdiagonaltermrightoutside+(S d)=(pfc_complement_tri_append_previous_coefficientdiagonalterm)) /\ (((pfc_right_tri_append_previous_coefficientdiagonalterm)=0))))) /\ (((pfc_value_tri_append_previous_coefficientdiagonal)=pfc_left_tri_append_previous_coefficientdiagonalterm*pfc_right_tri_append_previous_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_tri_append_previous_coefficientsum fs_v_pfc_tri_append_previous_coefficientsum. ((((exists fs_h_pfc_tri_append_previous_coefficientsum_body_start. fs_h_pfc_tri_append_previous_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_tri_append_previous_coefficientsum)) /\ exists fs_q_pfc_tri_append_previous_coefficientsum_body_start. fs_u_pfc_tri_append_previous_coefficientsum = fs_q_pfc_tri_append_previous_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_tri_append_previous_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_tri_append_previous_coefficientsum_body_terminal. fs_h_pfc_tri_append_previous_coefficientsum_body_terminal + S (pfc_natural_sum_tri_append_previous_coefficient) = S ((S (S (N))) * fs_v_pfc_tri_append_previous_coefficientsum)) /\ exists fs_q_pfc_tri_append_previous_coefficientsum_body_terminal. fs_u_pfc_tri_append_previous_coefficientsum = fs_q_pfc_tri_append_previous_coefficientsum_body_terminal * S ((S (S (N))) * fs_v_pfc_tri_append_previous_coefficientsum) + (pfc_natural_sum_tri_append_previous_coefficient))) /\ forall fs_i_pfc_tri_append_previous_coefficientsum_body_steps. (exists fs_lt_pfc_tri_append_previous_coefficientsum_body_steps_bound. fs_lt_pfc_tri_append_previous_coefficientsum_body_steps_bound + S fs_i_pfc_tri_append_previous_coefficientsum_body_steps = S (N)) -> exists fs_a_pfc_tri_append_previous_coefficientsum_body_steps fs_r_pfc_tri_append_previous_coefficientsum_body_steps fs_s_pfc_tri_append_previous_coefficientsum_body_steps. ((((exists fs_h_pfc_tri_append_previous_coefficientsum_body_steps_summand. fs_h_pfc_tri_append_previous_coefficientsum_body_steps_summand + S (fs_a_pfc_tri_append_previous_coefficientsum_body_steps) = S ((S (fs_i_pfc_tri_append_previous_coefficientsum_body_steps)) * pfc_terms_scale_tri_append_previous_coefficient)) /\ exists fs_q_pfc_tri_append_previous_coefficientsum_body_steps_summand. pfc_terms_code_tri_append_previous_coefficient = fs_q_pfc_tri_append_previous_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_tri_append_previous_coefficientsum_body_steps)) * pfc_terms_scale_tri_append_previous_coefficient) + (fs_a_pfc_tri_append_previous_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_tri_append_previous_coefficientsum_body_steps_partial. fs_h_pfc_tri_append_previous_coefficientsum_body_steps_partial + S (fs_r_pfc_tri_append_previous_coefficientsum_body_steps) = S ((S (fs_i_pfc_tri_append_previous_coefficientsum_body_steps)) * fs_v_pfc_tri_append_previous_coefficientsum)) /\ exists fs_q_pfc_tri_append_previous_coefficientsum_body_steps_partial. fs_u_pfc_tri_append_previous_coefficientsum = fs_q_pfc_tri_append_previous_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_tri_append_previous_coefficientsum_body_steps)) * fs_v_pfc_tri_append_previous_coefficientsum) + (fs_r_pfc_tri_append_previous_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_tri_append_previous_coefficientsum_body_steps_successor. fs_h_pfc_tri_append_previous_coefficientsum_body_steps_successor + S (fs_s_pfc_tri_append_previous_coefficientsum_body_steps) = S ((S (S fs_i_pfc_tri_append_previous_coefficientsum_body_steps)) * fs_v_pfc_tri_append_previous_coefficientsum)) /\ exists fs_q_pfc_tri_append_previous_coefficientsum_body_steps_successor. fs_u_pfc_tri_append_previous_coefficientsum = fs_q_pfc_tri_append_previous_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_tri_append_previous_coefficientsum_body_steps)) * fs_v_pfc_tri_append_previous_coefficientsum) + (fs_s_pfc_tri_append_previous_coefficientsum_body_steps))) /\ fs_s_pfc_tri_append_previous_coefficientsum_body_steps = fs_r_pfc_tri_append_previous_coefficientsum_body_steps + fs_a_pfc_tri_append_previous_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_tri_append_previous_coefficientresiduebound. pfa_gap_tri_append_previous_coefficientresiduebound + S (c) = (p)) /\ ((exists pfa_offset_left_tri_append_previous_coefficientresiduecongruence pfa_offset_right_tri_append_previous_coefficientresiduecongruence. (pfc_natural_sum_tri_append_previous_coefficient) + (p) * pfa_offset_left_tri_append_previous_coefficientresiduecongruence = (c) + (p) * pfa_offset_right_tri_append_previous_coefficientresiduecongruence))))))))) -> (exists pfc_terms_code_tri_append_actual_coefficient pfc_terms_scale_tri_append_actual_coefficient pfc_natural_sum_tri_append_actual_coefficient. ((forall pfc_index_tri_append_actual_coefficientdiagonal. (exists pfa_gap_tri_append_actual_coefficientdiagonalbound. pfa_gap_tri_append_actual_coefficientdiagonalbound + S (pfc_index_tri_append_actual_coefficientdiagonal) = (S (N))) -> exists pfc_value_tri_append_actual_coefficientdiagonal. ((((exists ff_h_pfp_tri_append_actual_coefficientdiagonalentry. ff_h_pfp_tri_append_actual_coefficientdiagonalentry + S (pfc_value_tri_append_actual_coefficientdiagonal) = S ((S (pfc_index_tri_append_actual_coefficientdiagonal)) * pfc_terms_scale_tri_append_actual_coefficient)) /\ exists ff_q_pfp_tri_append_actual_coefficientdiagonalentry. pfc_terms_code_tri_append_actual_coefficient = ff_q_pfp_tri_append_actual_coefficientdiagonalentry * S ((S (pfc_index_tri_append_actual_coefficientdiagonal)) * pfc_terms_scale_tri_append_actual_coefficient) + (pfc_value_tri_append_actual_coefficientdiagonal))) /\ ((exists pfc_complement_tri_append_actual_coefficientdiagonalterm pfc_left_tri_append_actual_coefficientdiagonalterm pfc_right_tri_append_actual_coefficientdiagonalterm. (((pfc_index_tri_append_actual_coefficientdiagonal)+pfc_complement_tri_append_actual_coefficientdiagonalterm=(N)) /\ ((((((exists pfa_gap_tri_append_actual_coefficientdiagonaltermleftinside. pfa_gap_tri_append_actual_coefficientdiagonaltermleftinside + S (pfc_index_tri_append_actual_coefficientdiagonal) = (S N)) /\ ((((exists ff_h_pfp_tri_append_actual_coefficientdiagonaltermleftentry. ff_h_pfp_tri_append_actual_coefficientdiagonaltermleftentry + S (pfc_left_tri_append_actual_coefficientdiagonalterm) = S ((S (pfc_index_tri_append_actual_coefficientdiagonal)) * AC)) /\ exists ff_q_pfp_tri_append_actual_coefficientdiagonaltermleftentry. AB = ff_q_pfp_tri_append_actual_coefficientdiagonaltermleftentry * S ((S (pfc_index_tri_append_actual_coefficientdiagonal)) * AC) + (pfc_left_tri_append_actual_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_tri_append_actual_coefficientdiagonaltermleftoutside. pfc_gap_tri_append_actual_coefficientdiagonaltermleftoutside+(S N)=(pfc_index_tri_append_actual_coefficientdiagonal)) /\ (((pfc_left_tri_append_actual_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_tri_append_actual_coefficientdiagonaltermrightinside. pfa_gap_tri_append_actual_coefficientdiagonaltermrightinside + S (pfc_complement_tri_append_actual_coefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_tri_append_actual_coefficientdiagonaltermrightentry. ff_h_pfp_tri_append_actual_coefficientdiagonaltermrightentry + S (pfc_right_tri_append_actual_coefficientdiagonalterm) = S ((S (pfc_complement_tri_append_actual_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_tri_append_actual_coefficientdiagonaltermrightentry. bb = ff_q_pfp_tri_append_actual_coefficientdiagonaltermrightentry * S ((S (pfc_complement_tri_append_actual_coefficientdiagonalterm)) * bc) + (pfc_right_tri_append_actual_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_tri_append_actual_coefficientdiagonaltermrightoutside. pfc_gap_tri_append_actual_coefficientdiagonaltermrightoutside+(S d)=(pfc_complement_tri_append_actual_coefficientdiagonalterm)) /\ (((pfc_right_tri_append_actual_coefficientdiagonalterm)=0))))) /\ (((pfc_value_tri_append_actual_coefficientdiagonal)=pfc_left_tri_append_actual_coefficientdiagonalterm*pfc_right_tri_append_actual_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_tri_append_actual_coefficientsum fs_v_pfc_tri_append_actual_coefficientsum. ((((exists fs_h_pfc_tri_append_actual_coefficientsum_body_start. fs_h_pfc_tri_append_actual_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_tri_append_actual_coefficientsum)) /\ exists fs_q_pfc_tri_append_actual_coefficientsum_body_start. fs_u_pfc_tri_append_actual_coefficientsum = fs_q_pfc_tri_append_actual_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_tri_append_actual_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_tri_append_actual_coefficientsum_body_terminal. fs_h_pfc_tri_append_actual_coefficientsum_body_terminal + S (pfc_natural_sum_tri_append_actual_coefficient) = S ((S (S (N))) * fs_v_pfc_tri_append_actual_coefficientsum)) /\ exists fs_q_pfc_tri_append_actual_coefficientsum_body_terminal. fs_u_pfc_tri_append_actual_coefficientsum = fs_q_pfc_tri_append_actual_coefficientsum_body_terminal * S ((S (S (N))) * fs_v_pfc_tri_append_actual_coefficientsum) + (pfc_natural_sum_tri_append_actual_coefficient))) /\ forall fs_i_pfc_tri_append_actual_coefficientsum_body_steps. (exists fs_lt_pfc_tri_append_actual_coefficientsum_body_steps_bound. fs_lt_pfc_tri_append_actual_coefficientsum_body_steps_bound + S fs_i_pfc_tri_append_actual_coefficientsum_body_steps = S (N)) -> exists fs_a_pfc_tri_append_actual_coefficientsum_body_steps fs_r_pfc_tri_append_actual_coefficientsum_body_steps fs_s_pfc_tri_append_actual_coefficientsum_body_steps. ((((exists fs_h_pfc_tri_append_actual_coefficientsum_body_steps_summand. fs_h_pfc_tri_append_actual_coefficientsum_body_steps_summand + S (fs_a_pfc_tri_append_actual_coefficientsum_body_steps) = S ((S (fs_i_pfc_tri_append_actual_coefficientsum_body_steps)) * pfc_terms_scale_tri_append_actual_coefficient)) /\ exists fs_q_pfc_tri_append_actual_coefficientsum_body_steps_summand. pfc_terms_code_tri_append_actual_coefficient = fs_q_pfc_tri_append_actual_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_tri_append_actual_coefficientsum_body_steps)) * pfc_terms_scale_tri_append_actual_coefficient) + (fs_a_pfc_tri_append_actual_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_tri_append_actual_coefficientsum_body_steps_partial. fs_h_pfc_tri_append_actual_coefficientsum_body_steps_partial + S (fs_r_pfc_tri_append_actual_coefficientsum_body_steps) = S ((S (fs_i_pfc_tri_append_actual_coefficientsum_body_steps)) * fs_v_pfc_tri_append_actual_coefficientsum)) /\ exists fs_q_pfc_tri_append_actual_coefficientsum_body_steps_partial. fs_u_pfc_tri_append_actual_coefficientsum = fs_q_pfc_tri_append_actual_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_tri_append_actual_coefficientsum_body_steps)) * fs_v_pfc_tri_append_actual_coefficientsum) + (fs_r_pfc_tri_append_actual_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_tri_append_actual_coefficientsum_body_steps_successor. fs_h_pfc_tri_append_actual_coefficientsum_body_steps_successor + S (fs_s_pfc_tri_append_actual_coefficientsum_body_steps) = S ((S (S fs_i_pfc_tri_append_actual_coefficientsum_body_steps)) * fs_v_pfc_tri_append_actual_coefficientsum)) /\ exists fs_q_pfc_tri_append_actual_coefficientsum_body_steps_successor. fs_u_pfc_tri_append_actual_coefficientsum = fs_q_pfc_tri_append_actual_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_tri_append_actual_coefficientsum_body_steps)) * fs_v_pfc_tri_append_actual_coefficientsum) + (fs_s_pfc_tri_append_actual_coefficientsum_body_steps))) /\ fs_s_pfc_tri_append_actual_coefficientsum_body_steps = fs_r_pfc_tri_append_actual_coefficientsum_body_steps + fs_a_pfc_tri_append_actual_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_tri_append_actual_coefficientresiduebound. pfa_gap_tri_append_actual_coefficientresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_tri_append_actual_coefficientresiduecongruence pfa_offset_right_tri_append_actual_coefficientresiduecongruence. (pfc_natural_sum_tri_append_actual_coefficient) + (p) * pfa_offset_left_tri_append_actual_coefficientresiduecongruence = (r) + (p) * pfa_offset_right_tri_append_actual_coefficientresiduecongruence))))))))) -> (((exists pfa_gap_tri_append_actual_productleft. pfa_gap_tri_append_actual_productleft + S (a) = (p)) /\ (((exists pfa_gap_tri_append_actual_productright. pfa_gap_tri_append_actual_productright + S (b) = (p)) /\ ((((exists pfa_gap_tri_append_actual_productresultbound. pfa_gap_tri_append_actual_productresultbound + S (t) = (p)) /\ ((exists pfa_offset_left_tri_append_actual_productresultcongruence pfa_offset_right_tri_append_actual_productresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_tri_append_actual_productresultcongruence = (t) + (p) * pfa_offset_right_tri_append_actual_productresultcongruence))))))))) -> (((exists pfa_gap_tri_append_resultleft. pfa_gap_tri_append_resultleft + S (c) = (p)) /\ (((exists pfa_gap_tri_append_resultright. pfa_gap_tri_append_resultright + S (t) = (p)) /\ ((((exists pfa_gap_tri_append_resultresultbound. pfa_gap_tri_append_resultresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_tri_append_resultresultcongruence pfa_offset_right_tri_append_resultresultcongruence. ((c) + (t)) + (p) * pfa_offset_left_tri_append_resultresultcongruence = (r) + (p) * pfa_offset_right_tri_append_resultresultcongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro AB
  5. intro AC
  6. intro bb
  7. intro bc
  8. intro d
  9. intro N
  10. intro a
  11. intro b
  12. intro c
  13. intro t
  14. intro r
  15. intro he
  16. intro ha
  17. intro hb
  18. intro hc
  19. intro hr
  20. intro hm
  21. cases hc
  22. cases hc_witness
  23. cases hc_witness_witness
  24. cases hc_witness_witness_witness
  25. cases hc_witness_witness_witness_right
  26. cases hr
  27. cases hr_witness
  28. cases hr_witness_witness
  29. cases hr_witness_witness_witness
  30. cases hr_witness_witness_witness_right
  31. have hn : x5=x2+a*b
  32. specialize polynomial_diagonal_sum_left_append (ab)
  33. specialize polynomial_diagonal_sum_left_append (ac)
  34. specialize polynomial_diagonal_sum_left_append (AB)
  35. specialize polynomial_diagonal_sum_left_append (AC)
  36. specialize polynomial_diagonal_sum_left_append (bb)
  37. specialize polynomial_diagonal_sum_left_append (bc)
  38. specialize polynomial_diagonal_sum_left_append (d)
  39. specialize polynomial_diagonal_sum_left_append (N)
  40. specialize polynomial_diagonal_sum_left_append (a)
  41. specialize polynomial_diagonal_sum_left_append (b)
  42. specialize polynomial_diagonal_sum_left_append (x)
  43. specialize polynomial_diagonal_sum_left_append (x1)
  44. specialize polynomial_diagonal_sum_left_append (x3)
  45. specialize polynomial_diagonal_sum_left_append (x4)
  46. specialize polynomial_diagonal_sum_left_append (x2)
  47. specialize polynomial_diagonal_sum_left_append (x5)
  48. apply polynomial_diagonal_sum_left_append
  49. exact he
  50. exact ha
  51. exact hb
  52. exact hc_witness_witness_witness_left
  53. exact hc_witness_witness_witness_right_left
  54. exact hr_witness_witness_witness_left
  55. exact hr_witness_witness_witness_right_left
  56. cases hc_witness_witness_witness_right_right
  57. cases hr_witness_witness_witness_right_right
  58. cases hm
  59. cases hm_right
  60. cases hm_right_right
  61. rewrite hn at hr_witness_witness_witness_right_right_right
  62. split
  63. exact hc_witness_witness_witness_right_right_left
  64. split
  65. exact hm_right_right_left
  66. split
  67. exact hr_witness_witness_witness_right_right_left
  68. specialize mod_eq_trans (p)
  69. specialize mod_eq_trans (c+t)
  70. specialize mod_eq_trans (x2+a*b)
  71. specialize mod_eq_trans (r)
  72. apply mod_eq_trans
  73. specialize mod_eq_symm (p)
  74. specialize mod_eq_symm (x2+a*b)
  75. specialize mod_eq_symm (c+t)
  76. apply mod_eq_symm
  77. specialize mod_eq_add (p)
  78. specialize mod_eq_add (x2)
  79. specialize mod_eq_add (c)
  80. specialize mod_eq_add (a*b)
  81. specialize mod_eq_add (t)
  82. apply mod_eq_add
  83. exact hc_witness_witness_witness_right_right_right
  84. exact hm_right_right_right
  85. exact hr_witness_witness_witness_right_right_right
prime_field_add_functional · unchanged support, not a new admission
forall p a b c d. (((exists pfa_gap_addfirstleft. pfa_gap_addfirstleft + S (a) = (p)) /\ (((exists pfa_gap_addfirstright. pfa_gap_addfirstright + S (b) = (p)) /\ ((((exists pfa_gap_addfirstresultbound. pfa_gap_addfirstresultbound + S (c) = (p)) /\ ((exists pfa_offset_left_addfirstresultcongruence pfa_offset_right_addfirstresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_addfirstresultcongruence = (c) + (p) * pfa_offset_right_addfirstresultcongruence))))))))) -> (((exists pfa_gap_addsecondleft. pfa_gap_addsecondleft + S (a) = (p)) /\ (((exists pfa_gap_addsecondright. pfa_gap_addsecondright + S (b) = (p)) /\ ((((exists pfa_gap_addsecondresultbound. pfa_gap_addsecondresultbound + S (d) = (p)) /\ ((exists pfa_offset_left_addsecondresultcongruence pfa_offset_right_addsecondresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_addsecondresultcongruence = (d) + (p) * pfa_offset_right_addsecondresultcongruence))))))))) -> c = d
  1. intro p
  2. intro a
  3. intro b
  4. intro c
  5. intro d
  6. intro hc
  7. intro hd
  8. cases hc
  9. cases hc_right
  10. cases hd
  11. cases hd_right
  12. specialize binary_canonical_residue_functional (p)
  13. specialize binary_canonical_residue_functional (a + b)
  14. specialize binary_canonical_residue_functional (c)
  15. specialize binary_canonical_residue_functional (d)
  16. apply binary_canonical_residue_functional
  17. exact hc_right_right
  18. exact hd_right_right
prime_field_multiply_commutative · unchanged support, not a new admission
forall p a b c. (((exists pfa_gap_multiplycomm_sourceleft. pfa_gap_multiplycomm_sourceleft + S (a) = (p)) /\ (((exists pfa_gap_multiplycomm_sourceright. pfa_gap_multiplycomm_sourceright + S (b) = (p)) /\ ((((exists pfa_gap_multiplycomm_sourceresultbound. pfa_gap_multiplycomm_sourceresultbound + S (c) = (p)) /\ ((exists pfa_offset_left_multiplycomm_sourceresultcongruence pfa_offset_right_multiplycomm_sourceresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_multiplycomm_sourceresultcongruence = (c) + (p) * pfa_offset_right_multiplycomm_sourceresultcongruence))))))))) -> (((exists pfa_gap_multiplycomm_targetleft. pfa_gap_multiplycomm_targetleft + S (b) = (p)) /\ (((exists pfa_gap_multiplycomm_targetright. pfa_gap_multiplycomm_targetright + S (a) = (p)) /\ ((((exists pfa_gap_multiplycomm_targetresultbound. pfa_gap_multiplycomm_targetresultbound + S (c) = (p)) /\ ((exists pfa_offset_left_multiplycomm_targetresultcongruence pfa_offset_right_multiplycomm_targetresultcongruence. ((b) * (a)) + (p) * pfa_offset_left_multiplycomm_targetresultcongruence = (c) + (p) * pfa_offset_right_multiplycomm_targetresultcongruence)))))))))
  1. intro p
  2. intro a
  3. intro b
  4. intro c
  5. intro h
  6. cases h
  7. cases h_right
  8. split
  9. exact h_right_left
  10. split
  11. exact h_left
  12. specialize prime_field_residue_input_equal (p)
  13. specialize prime_field_residue_input_equal (b * a)
  14. specialize prime_field_residue_input_equal (a * b)
  15. specialize prime_field_residue_input_equal (c)
  16. apply prime_field_residue_input_equal
  17. specialize mul_comm (b)
  18. specialize mul_comm (a)
  19. apply mul_comm
  20. exact h_right_right
prime_field_polynomial_constant_right_coefficient · unchanged support, not a new admission
forall p ab ac L bb bc k i a r. (~((p) = 1) /\ forall pfa_factor_left_constant_coefficient_prime pfa_factor_right_constant_coefficient_prime. (p) = pfa_factor_left_constant_coefficient_prime * pfa_factor_right_constant_coefficient_prime -> pfa_factor_left_constant_coefficient_prime = 1 \/ pfa_factor_right_constant_coefficient_prime = 1) -> (forall fom_index_pfp_constant_coefficient_A. (exists fom_gap_pfp_constant_coefficient_A_index_bound. fom_gap_pfp_constant_coefficient_A_index_bound + S (fom_index_pfp_constant_coefficient_A) = L) -> exists fom_value_pfp_constant_coefficient_A. ((((exists fom_beta_height_pfp_constant_coefficient_A_entry. fom_beta_height_pfp_constant_coefficient_A_entry + S (fom_value_pfp_constant_coefficient_A) = S ((S (fom_index_pfp_constant_coefficient_A)) * ac)) /\ exists fom_beta_quotient_pfp_constant_coefficient_A_entry. ab = fom_beta_quotient_pfp_constant_coefficient_A_entry * S ((S (fom_index_pfp_constant_coefficient_A)) * ac) + (fom_value_pfp_constant_coefficient_A))) /\ (exists fom_gap_pfp_constant_coefficient_A_value_bound. fom_gap_pfp_constant_coefficient_A_value_bound + S (fom_value_pfp_constant_coefficient_A) = p))) -> (forall fom_index_pfp_constant_coefficient_B. (exists fom_gap_pfp_constant_coefficient_B_index_bound. fom_gap_pfp_constant_coefficient_B_index_bound + S (fom_index_pfp_constant_coefficient_B) = 1) -> exists fom_value_pfp_constant_coefficient_B. ((((exists fom_beta_height_pfp_constant_coefficient_B_entry. fom_beta_height_pfp_constant_coefficient_B_entry + S (fom_value_pfp_constant_coefficient_B) = S ((S (fom_index_pfp_constant_coefficient_B)) * bc)) /\ exists fom_beta_quotient_pfp_constant_coefficient_B_entry. bb = fom_beta_quotient_pfp_constant_coefficient_B_entry * S ((S (fom_index_pfp_constant_coefficient_B)) * bc) + (fom_value_pfp_constant_coefficient_B))) /\ (exists fom_gap_pfp_constant_coefficient_B_value_bound. fom_gap_pfp_constant_coefficient_B_value_bound + S (fom_value_pfp_constant_coefficient_B) = p))) -> (((exists ff_h_pfp_constant_coefficient_constant. ff_h_pfp_constant_coefficient_constant + S (k) = S ((S (0)) * bc)) /\ exists ff_q_pfp_constant_coefficient_constant. bb = ff_q_pfp_constant_coefficient_constant * S ((S (0)) * bc) + (k))) -> (exists pfa_gap_constant_coefficient_index. pfa_gap_constant_coefficient_index + S (i) = (L)) -> (((exists ff_h_pfp_constant_coefficient_entry. ff_h_pfp_constant_coefficient_entry + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_constant_coefficient_entry. ab = ff_q_pfp_constant_coefficient_entry * S ((S (i)) * ac) + (a))) -> (exists pfc_terms_code_constant_coefficient_actual pfc_terms_scale_constant_coefficient_actual pfc_natural_sum_constant_coefficient_actual. ((forall pfc_index_constant_coefficient_actualdiagonal. (exists pfa_gap_constant_coefficient_actualdiagonalbound. pfa_gap_constant_coefficient_actualdiagonalbound + S (pfc_index_constant_coefficient_actualdiagonal) = (S (i))) -> exists pfc_value_constant_coefficient_actualdiagonal. ((((exists ff_h_pfp_constant_coefficient_actualdiagonalentry. ff_h_pfp_constant_coefficient_actualdiagonalentry + S (pfc_value_constant_coefficient_actualdiagonal) = S ((S (pfc_index_constant_coefficient_actualdiagonal)) * pfc_terms_scale_constant_coefficient_actual)) /\ exists ff_q_pfp_constant_coefficient_actualdiagonalentry. pfc_terms_code_constant_coefficient_actual = ff_q_pfp_constant_coefficient_actualdiagonalentry * S ((S (pfc_index_constant_coefficient_actualdiagonal)) * pfc_terms_scale_constant_coefficient_actual) + (pfc_value_constant_coefficient_actualdiagonal))) /\ ((exists pfc_complement_constant_coefficient_actualdiagonalterm pfc_left_constant_coefficient_actualdiagonalterm pfc_right_constant_coefficient_actualdiagonalterm. (((pfc_index_constant_coefficient_actualdiagonal)+pfc_complement_constant_coefficient_actualdiagonalterm=(i)) /\ ((((((exists pfa_gap_constant_coefficient_actualdiagonaltermleftinside. pfa_gap_constant_coefficient_actualdiagonaltermleftinside + S (pfc_index_constant_coefficient_actualdiagonal) = (L)) /\ ((((exists ff_h_pfp_constant_coefficient_actualdiagonaltermleftentry. ff_h_pfp_constant_coefficient_actualdiagonaltermleftentry + S (pfc_left_constant_coefficient_actualdiagonalterm) = S ((S (pfc_index_constant_coefficient_actualdiagonal)) * ac)) /\ exists ff_q_pfp_constant_coefficient_actualdiagonaltermleftentry. ab = ff_q_pfp_constant_coefficient_actualdiagonaltermleftentry * S ((S (pfc_index_constant_coefficient_actualdiagonal)) * ac) + (pfc_left_constant_coefficient_actualdiagonalterm)))))) \/ (((exists pfc_gap_constant_coefficient_actualdiagonaltermleftoutside. pfc_gap_constant_coefficient_actualdiagonaltermleftoutside+(L)=(pfc_index_constant_coefficient_actualdiagonal)) /\ (((pfc_left_constant_coefficient_actualdiagonalterm)=0))))) /\ ((((((exists pfa_gap_constant_coefficient_actualdiagonaltermrightinside. pfa_gap_constant_coefficient_actualdiagonaltermrightinside + S (pfc_complement_constant_coefficient_actualdiagonalterm) = (1)) /\ ((((exists ff_h_pfp_constant_coefficient_actualdiagonaltermrightentry. ff_h_pfp_constant_coefficient_actualdiagonaltermrightentry + S (pfc_right_constant_coefficient_actualdiagonalterm) = S ((S (pfc_complement_constant_coefficient_actualdiagonalterm)) * bc)) /\ exists ff_q_pfp_constant_coefficient_actualdiagonaltermrightentry. bb = ff_q_pfp_constant_coefficient_actualdiagonaltermrightentry * S ((S (pfc_complement_constant_coefficient_actualdiagonalterm)) * bc) + (pfc_right_constant_coefficient_actualdiagonalterm)))))) \/ (((exists pfc_gap_constant_coefficient_actualdiagonaltermrightoutside. pfc_gap_constant_coefficient_actualdiagonaltermrightoutside+(1)=(pfc_complement_constant_coefficient_actualdiagonalterm)) /\ (((pfc_right_constant_coefficient_actualdiagonalterm)=0))))) /\ (((pfc_value_constant_coefficient_actualdiagonal)=pfc_left_constant_coefficient_actualdiagonalterm*pfc_right_constant_coefficient_actualdiagonalterm))))))))))) /\ (((exists fs_u_pfc_constant_coefficient_actualsum fs_v_pfc_constant_coefficient_actualsum. ((((exists fs_h_pfc_constant_coefficient_actualsum_body_start. fs_h_pfc_constant_coefficient_actualsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_constant_coefficient_actualsum)) /\ exists fs_q_pfc_constant_coefficient_actualsum_body_start. fs_u_pfc_constant_coefficient_actualsum = fs_q_pfc_constant_coefficient_actualsum_body_start * S ((S (0)) * fs_v_pfc_constant_coefficient_actualsum) + (0))) /\ ((((exists fs_h_pfc_constant_coefficient_actualsum_body_terminal. fs_h_pfc_constant_coefficient_actualsum_body_terminal + S (pfc_natural_sum_constant_coefficient_actual) = S ((S (S (i))) * fs_v_pfc_constant_coefficient_actualsum)) /\ exists fs_q_pfc_constant_coefficient_actualsum_body_terminal. fs_u_pfc_constant_coefficient_actualsum = fs_q_pfc_constant_coefficient_actualsum_body_terminal * S ((S (S (i))) * fs_v_pfc_constant_coefficient_actualsum) + (pfc_natural_sum_constant_coefficient_actual))) /\ forall fs_i_pfc_constant_coefficient_actualsum_body_steps. (exists fs_lt_pfc_constant_coefficient_actualsum_body_steps_bound. fs_lt_pfc_constant_coefficient_actualsum_body_steps_bound + S fs_i_pfc_constant_coefficient_actualsum_body_steps = S (i)) -> exists fs_a_pfc_constant_coefficient_actualsum_body_steps fs_r_pfc_constant_coefficient_actualsum_body_steps fs_s_pfc_constant_coefficient_actualsum_body_steps. ((((exists fs_h_pfc_constant_coefficient_actualsum_body_steps_summand. fs_h_pfc_constant_coefficient_actualsum_body_steps_summand + S (fs_a_pfc_constant_coefficient_actualsum_body_steps) = S ((S (fs_i_pfc_constant_coefficient_actualsum_body_steps)) * pfc_terms_scale_constant_coefficient_actual)) /\ exists fs_q_pfc_constant_coefficient_actualsum_body_steps_summand. pfc_terms_code_constant_coefficient_actual = fs_q_pfc_constant_coefficient_actualsum_body_steps_summand * S ((S (fs_i_pfc_constant_coefficient_actualsum_body_steps)) * pfc_terms_scale_constant_coefficient_actual) + (fs_a_pfc_constant_coefficient_actualsum_body_steps))) /\ ((((exists fs_h_pfc_constant_coefficient_actualsum_body_steps_partial. fs_h_pfc_constant_coefficient_actualsum_body_steps_partial + S (fs_r_pfc_constant_coefficient_actualsum_body_steps) = S ((S (fs_i_pfc_constant_coefficient_actualsum_body_steps)) * fs_v_pfc_constant_coefficient_actualsum)) /\ exists fs_q_pfc_constant_coefficient_actualsum_body_steps_partial. fs_u_pfc_constant_coefficient_actualsum = fs_q_pfc_constant_coefficient_actualsum_body_steps_partial * S ((S (fs_i_pfc_constant_coefficient_actualsum_body_steps)) * fs_v_pfc_constant_coefficient_actualsum) + (fs_r_pfc_constant_coefficient_actualsum_body_steps))) /\ ((((exists fs_h_pfc_constant_coefficient_actualsum_body_steps_successor. fs_h_pfc_constant_coefficient_actualsum_body_steps_successor + S (fs_s_pfc_constant_coefficient_actualsum_body_steps) = S ((S (S fs_i_pfc_constant_coefficient_actualsum_body_steps)) * fs_v_pfc_constant_coefficient_actualsum)) /\ exists fs_q_pfc_constant_coefficient_actualsum_body_steps_successor. fs_u_pfc_constant_coefficient_actualsum = fs_q_pfc_constant_coefficient_actualsum_body_steps_successor * S ((S (S fs_i_pfc_constant_coefficient_actualsum_body_steps)) * fs_v_pfc_constant_coefficient_actualsum) + (fs_s_pfc_constant_coefficient_actualsum_body_steps))) /\ fs_s_pfc_constant_coefficient_actualsum_body_steps = fs_r_pfc_constant_coefficient_actualsum_body_steps + fs_a_pfc_constant_coefficient_actualsum_body_steps)))))) /\ ((((exists pfa_gap_constant_coefficient_actualresiduebound. pfa_gap_constant_coefficient_actualresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_constant_coefficient_actualresiduecongruence pfa_offset_right_constant_coefficient_actualresiduecongruence. (pfc_natural_sum_constant_coefficient_actual) + (p) * pfa_offset_left_constant_coefficient_actualresiduecongruence = (r) + (p) * pfa_offset_right_constant_coefficient_actualresiduecongruence))))))))) -> (((exists pfa_gap_constant_coefficient_resultleft. pfa_gap_constant_coefficient_resultleft + S (k) = (p)) /\ (((exists pfa_gap_constant_coefficient_resultright. pfa_gap_constant_coefficient_resultright + S (a) = (p)) /\ ((((exists pfa_gap_constant_coefficient_resultresultbound. pfa_gap_constant_coefficient_resultresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_constant_coefficient_resultresultcongruence pfa_offset_right_constant_coefficient_resultresultcongruence. ((k) * (a)) + (p) * pfa_offset_left_constant_coefficient_resultresultcongruence = (r) + (p) * pfa_offset_right_constant_coefficient_resultresultcongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro k
  8. intro i
  9. intro a
  10. intro r
  11. intro hp
  12. intro hA
  13. intro hB
  14. intro hk
  15. intro hi
  16. intro ha
  17. intro hr
  18. have hp0 : ~(p=0)
  19. intro hpzero
  20. specialize prime_nonzero (p)
  21. apply prime_nonzero
  22. exact hp
  23. exact hpzero
  24. have hc : exists c. (exists pfc_terms_code_constant_old_coefficient pfc_terms_scale_constant_old_coefficient pfc_natural_sum_constant_old_coefficient. ((forall pfc_index_constant_old_coefficientdiagonal. (exists pfa_gap_constant_old_coefficientdiagonalbound. pfa_gap_constant_old_coefficientdiagonalbound + S (pfc_index_constant_old_coefficientdiagonal) = (S (i))) -> exists pfc_value_constant_old_coefficientdiagonal. ((((exists ff_h_pfp_constant_old_coefficientdiagonalentry. ff_h_pfp_constant_old_coefficientdiagonalentry + S (pfc_value_constant_old_coefficientdiagonal) = S ((S (pfc_index_constant_old_coefficientdiagonal)) * pfc_terms_scale_constant_old_coefficient)) /\ exists ff_q_pfp_constant_old_coefficientdiagonalentry. pfc_terms_code_constant_old_coefficient = ff_q_pfp_constant_old_coefficientdiagonalentry * S ((S (pfc_index_constant_old_coefficientdiagonal)) * pfc_terms_scale_constant_old_coefficient) + (pfc_value_constant_old_coefficientdiagonal))) /\ ((exists pfc_complement_constant_old_coefficientdiagonalterm pfc_left_constant_old_coefficientdiagonalterm pfc_right_constant_old_coefficientdiagonalterm. (((pfc_index_constant_old_coefficientdiagonal)+pfc_complement_constant_old_coefficientdiagonalterm=(i)) /\ ((((((exists pfa_gap_constant_old_coefficientdiagonaltermleftinside. pfa_gap_constant_old_coefficientdiagonaltermleftinside + S (pfc_index_constant_old_coefficientdiagonal) = (i)) /\ ((((exists ff_h_pfp_constant_old_coefficientdiagonaltermleftentry. ff_h_pfp_constant_old_coefficientdiagonaltermleftentry + S (pfc_left_constant_old_coefficientdiagonalterm) = S ((S (pfc_index_constant_old_coefficientdiagonal)) * ac)) /\ exists ff_q_pfp_constant_old_coefficientdiagonaltermleftentry. ab = ff_q_pfp_constant_old_coefficientdiagonaltermleftentry * S ((S (pfc_index_constant_old_coefficientdiagonal)) * ac) + (pfc_left_constant_old_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_constant_old_coefficientdiagonaltermleftoutside. pfc_gap_constant_old_coefficientdiagonaltermleftoutside+(i)=(pfc_index_constant_old_coefficientdiagonal)) /\ (((pfc_left_constant_old_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_constant_old_coefficientdiagonaltermrightinside. pfa_gap_constant_old_coefficientdiagonaltermrightinside + S (pfc_complement_constant_old_coefficientdiagonalterm) = (1)) /\ ((((exists ff_h_pfp_constant_old_coefficientdiagonaltermrightentry. ff_h_pfp_constant_old_coefficientdiagonaltermrightentry + S (pfc_right_constant_old_coefficientdiagonalterm) = S ((S (pfc_complement_constant_old_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_constant_old_coefficientdiagonaltermrightentry. bb = ff_q_pfp_constant_old_coefficientdiagonaltermrightentry * S ((S (pfc_complement_constant_old_coefficientdiagonalterm)) * bc) + (pfc_right_constant_old_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_constant_old_coefficientdiagonaltermrightoutside. pfc_gap_constant_old_coefficientdiagonaltermrightoutside+(1)=(pfc_complement_constant_old_coefficientdiagonalterm)) /\ (((pfc_right_constant_old_coefficientdiagonalterm)=0))))) /\ (((pfc_value_constant_old_coefficientdiagonal)=pfc_left_constant_old_coefficientdiagonalterm*pfc_right_constant_old_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_constant_old_coefficientsum fs_v_pfc_constant_old_coefficientsum. ((((exists fs_h_pfc_constant_old_coefficientsum_body_start. fs_h_pfc_constant_old_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_constant_old_coefficientsum)) /\ exists fs_q_pfc_constant_old_coefficientsum_body_start. fs_u_pfc_constant_old_coefficientsum = fs_q_pfc_constant_old_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_constant_old_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_constant_old_coefficientsum_body_terminal. fs_h_pfc_constant_old_coefficientsum_body_terminal + S (pfc_natural_sum_constant_old_coefficient) = S ((S (S (i))) * fs_v_pfc_constant_old_coefficientsum)) /\ exists fs_q_pfc_constant_old_coefficientsum_body_terminal. fs_u_pfc_constant_old_coefficientsum = fs_q_pfc_constant_old_coefficientsum_body_terminal * S ((S (S (i))) * fs_v_pfc_constant_old_coefficientsum) + (pfc_natural_sum_constant_old_coefficient))) /\ forall fs_i_pfc_constant_old_coefficientsum_body_steps. (exists fs_lt_pfc_constant_old_coefficientsum_body_steps_bound. fs_lt_pfc_constant_old_coefficientsum_body_steps_bound + S fs_i_pfc_constant_old_coefficientsum_body_steps = S (i)) -> exists fs_a_pfc_constant_old_coefficientsum_body_steps fs_r_pfc_constant_old_coefficientsum_body_steps fs_s_pfc_constant_old_coefficientsum_body_steps. ((((exists fs_h_pfc_constant_old_coefficientsum_body_steps_summand. fs_h_pfc_constant_old_coefficientsum_body_steps_summand + S (fs_a_pfc_constant_old_coefficientsum_body_steps) = S ((S (fs_i_pfc_constant_old_coefficientsum_body_steps)) * pfc_terms_scale_constant_old_coefficient)) /\ exists fs_q_pfc_constant_old_coefficientsum_body_steps_summand. pfc_terms_code_constant_old_coefficient = fs_q_pfc_constant_old_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_constant_old_coefficientsum_body_steps)) * pfc_terms_scale_constant_old_coefficient) + (fs_a_pfc_constant_old_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_constant_old_coefficientsum_body_steps_partial. fs_h_pfc_constant_old_coefficientsum_body_steps_partial + S (fs_r_pfc_constant_old_coefficientsum_body_steps) = S ((S (fs_i_pfc_constant_old_coefficientsum_body_steps)) * fs_v_pfc_constant_old_coefficientsum)) /\ exists fs_q_pfc_constant_old_coefficientsum_body_steps_partial. fs_u_pfc_constant_old_coefficientsum = fs_q_pfc_constant_old_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_constant_old_coefficientsum_body_steps)) * fs_v_pfc_constant_old_coefficientsum) + (fs_r_pfc_constant_old_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_constant_old_coefficientsum_body_steps_successor. fs_h_pfc_constant_old_coefficientsum_body_steps_successor + S (fs_s_pfc_constant_old_coefficientsum_body_steps) = S ((S (S fs_i_pfc_constant_old_coefficientsum_body_steps)) * fs_v_pfc_constant_old_coefficientsum)) /\ exists fs_q_pfc_constant_old_coefficientsum_body_steps_successor. fs_u_pfc_constant_old_coefficientsum = fs_q_pfc_constant_old_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_constant_old_coefficientsum_body_steps)) * fs_v_pfc_constant_old_coefficientsum) + (fs_s_pfc_constant_old_coefficientsum_body_steps))) /\ fs_s_pfc_constant_old_coefficientsum_body_steps = fs_r_pfc_constant_old_coefficientsum_body_steps + fs_a_pfc_constant_old_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_constant_old_coefficientresiduebound. pfa_gap_constant_old_coefficientresiduebound + S (c) = (p)) /\ ((exists pfa_offset_left_constant_old_coefficientresiduecongruence pfa_offset_right_constant_old_coefficientresiduecongruence. (pfc_natural_sum_constant_old_coefficient) + (p) * pfa_offset_left_constant_old_coefficientresiduecongruence = (c) + (p) * pfa_offset_right_constant_old_coefficientresiduecongruence)))))))))
  25. specialize prime_field_convolution_coefficient_exists (p)
  26. specialize prime_field_convolution_coefficient_exists (ab)
  27. specialize prime_field_convolution_coefficient_exists (ac)
  28. specialize prime_field_convolution_coefficient_exists (i)
  29. specialize prime_field_convolution_coefficient_exists (bb)
  30. specialize prime_field_convolution_coefficient_exists (bc)
  31. specialize prime_field_convolution_coefficient_exists (1)
  32. specialize prime_field_convolution_coefficient_exists (i)
  33. apply prime_field_convolution_coefficient_exists
  34. exact hp0
  35. cases hc
  36. have hc0 : x=0
  37. specialize prime_field_convolution_coefficient_zero_past_support (p)
  38. specialize prime_field_convolution_coefficient_zero_past_support (ab)
  39. specialize prime_field_convolution_coefficient_zero_past_support (ac)
  40. specialize prime_field_convolution_coefficient_zero_past_support (i)
  41. specialize prime_field_convolution_coefficient_zero_past_support (bb)
  42. specialize prime_field_convolution_coefficient_zero_past_support (bc)
  43. specialize prime_field_convolution_coefficient_zero_past_support (1)
  44. specialize prime_field_convolution_coefficient_zero_past_support (i)
  45. specialize prime_field_convolution_coefficient_zero_past_support (x)
  46. apply prime_field_convolution_coefficient_zero_past_support
  47. exact hp0
  48. exists 0
  49. simp [zero_add]
  50. exact hc_witness
  51. have hshort : exists pfc_terms_code_constant_short_coefficient pfc_terms_scale_constant_short_coefficient pfc_natural_sum_constant_short_coefficient. ((forall pfc_index_constant_short_coefficientdiagonal. (exists pfa_gap_constant_short_coefficientdiagonalbound. pfa_gap_constant_short_coefficientdiagonalbound + S (pfc_index_constant_short_coefficientdiagonal) = (S (i))) -> exists pfc_value_constant_short_coefficientdiagonal. ((((exists ff_h_pfp_constant_short_coefficientdiagonalentry. ff_h_pfp_constant_short_coefficientdiagonalentry + S (pfc_value_constant_short_coefficientdiagonal) = S ((S (pfc_index_constant_short_coefficientdiagonal)) * pfc_terms_scale_constant_short_coefficient)) /\ exists ff_q_pfp_constant_short_coefficientdiagonalentry. pfc_terms_code_constant_short_coefficient = ff_q_pfp_constant_short_coefficientdiagonalentry * S ((S (pfc_index_constant_short_coefficientdiagonal)) * pfc_terms_scale_constant_short_coefficient) + (pfc_value_constant_short_coefficientdiagonal))) /\ ((exists pfc_complement_constant_short_coefficientdiagonalterm pfc_left_constant_short_coefficientdiagonalterm pfc_right_constant_short_coefficientdiagonalterm. (((pfc_index_constant_short_coefficientdiagonal)+pfc_complement_constant_short_coefficientdiagonalterm=(i)) /\ ((((((exists pfa_gap_constant_short_coefficientdiagonaltermleftinside. pfa_gap_constant_short_coefficientdiagonaltermleftinside + S (pfc_index_constant_short_coefficientdiagonal) = (S i)) /\ ((((exists ff_h_pfp_constant_short_coefficientdiagonaltermleftentry. ff_h_pfp_constant_short_coefficientdiagonaltermleftentry + S (pfc_left_constant_short_coefficientdiagonalterm) = S ((S (pfc_index_constant_short_coefficientdiagonal)) * ac)) /\ exists ff_q_pfp_constant_short_coefficientdiagonaltermleftentry. ab = ff_q_pfp_constant_short_coefficientdiagonaltermleftentry * S ((S (pfc_index_constant_short_coefficientdiagonal)) * ac) + (pfc_left_constant_short_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_constant_short_coefficientdiagonaltermleftoutside. pfc_gap_constant_short_coefficientdiagonaltermleftoutside+(S i)=(pfc_index_constant_short_coefficientdiagonal)) /\ (((pfc_left_constant_short_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_constant_short_coefficientdiagonaltermrightinside. pfa_gap_constant_short_coefficientdiagonaltermrightinside + S (pfc_complement_constant_short_coefficientdiagonalterm) = (1)) /\ ((((exists ff_h_pfp_constant_short_coefficientdiagonaltermrightentry. ff_h_pfp_constant_short_coefficientdiagonaltermrightentry + S (pfc_right_constant_short_coefficientdiagonalterm) = S ((S (pfc_complement_constant_short_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_constant_short_coefficientdiagonaltermrightentry. bb = ff_q_pfp_constant_short_coefficientdiagonaltermrightentry * S ((S (pfc_complement_constant_short_coefficientdiagonalterm)) * bc) + (pfc_right_constant_short_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_constant_short_coefficientdiagonaltermrightoutside. pfc_gap_constant_short_coefficientdiagonaltermrightoutside+(1)=(pfc_complement_constant_short_coefficientdiagonalterm)) /\ (((pfc_right_constant_short_coefficientdiagonalterm)=0))))) /\ (((pfc_value_constant_short_coefficientdiagonal)=pfc_left_constant_short_coefficientdiagonalterm*pfc_right_constant_short_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_constant_short_coefficientsum fs_v_pfc_constant_short_coefficientsum. ((((exists fs_h_pfc_constant_short_coefficientsum_body_start. fs_h_pfc_constant_short_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_constant_short_coefficientsum)) /\ exists fs_q_pfc_constant_short_coefficientsum_body_start. fs_u_pfc_constant_short_coefficientsum = fs_q_pfc_constant_short_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_constant_short_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_constant_short_coefficientsum_body_terminal. fs_h_pfc_constant_short_coefficientsum_body_terminal + S (pfc_natural_sum_constant_short_coefficient) = S ((S (S (i))) * fs_v_pfc_constant_short_coefficientsum)) /\ exists fs_q_pfc_constant_short_coefficientsum_body_terminal. fs_u_pfc_constant_short_coefficientsum = fs_q_pfc_constant_short_coefficientsum_body_terminal * S ((S (S (i))) * fs_v_pfc_constant_short_coefficientsum) + (pfc_natural_sum_constant_short_coefficient))) /\ forall fs_i_pfc_constant_short_coefficientsum_body_steps. (exists fs_lt_pfc_constant_short_coefficientsum_body_steps_bound. fs_lt_pfc_constant_short_coefficientsum_body_steps_bound + S fs_i_pfc_constant_short_coefficientsum_body_steps = S (i)) -> exists fs_a_pfc_constant_short_coefficientsum_body_steps fs_r_pfc_constant_short_coefficientsum_body_steps fs_s_pfc_constant_short_coefficientsum_body_steps. ((((exists fs_h_pfc_constant_short_coefficientsum_body_steps_summand. fs_h_pfc_constant_short_coefficientsum_body_steps_summand + S (fs_a_pfc_constant_short_coefficientsum_body_steps) = S ((S (fs_i_pfc_constant_short_coefficientsum_body_steps)) * pfc_terms_scale_constant_short_coefficient)) /\ exists fs_q_pfc_constant_short_coefficientsum_body_steps_summand. pfc_terms_code_constant_short_coefficient = fs_q_pfc_constant_short_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_constant_short_coefficientsum_body_steps)) * pfc_terms_scale_constant_short_coefficient) + (fs_a_pfc_constant_short_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_constant_short_coefficientsum_body_steps_partial. fs_h_pfc_constant_short_coefficientsum_body_steps_partial + S (fs_r_pfc_constant_short_coefficientsum_body_steps) = S ((S (fs_i_pfc_constant_short_coefficientsum_body_steps)) * fs_v_pfc_constant_short_coefficientsum)) /\ exists fs_q_pfc_constant_short_coefficientsum_body_steps_partial. fs_u_pfc_constant_short_coefficientsum = fs_q_pfc_constant_short_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_constant_short_coefficientsum_body_steps)) * fs_v_pfc_constant_short_coefficientsum) + (fs_r_pfc_constant_short_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_constant_short_coefficientsum_body_steps_successor. fs_h_pfc_constant_short_coefficientsum_body_steps_successor + S (fs_s_pfc_constant_short_coefficientsum_body_steps) = S ((S (S fs_i_pfc_constant_short_coefficientsum_body_steps)) * fs_v_pfc_constant_short_coefficientsum)) /\ exists fs_q_pfc_constant_short_coefficientsum_body_steps_successor. fs_u_pfc_constant_short_coefficientsum = fs_q_pfc_constant_short_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_constant_short_coefficientsum_body_steps)) * fs_v_pfc_constant_short_coefficientsum) + (fs_s_pfc_constant_short_coefficientsum_body_steps))) /\ fs_s_pfc_constant_short_coefficientsum_body_steps = fs_r_pfc_constant_short_coefficientsum_body_steps + fs_a_pfc_constant_short_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_constant_short_coefficientresiduebound. pfa_gap_constant_short_coefficientresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_constant_short_coefficientresiduecongruence pfa_offset_right_constant_short_coefficientresiduecongruence. (pfc_natural_sum_constant_short_coefficient) + (p) * pfa_offset_left_constant_short_coefficientresiduecongruence = (r) + (p) * pfa_offset_right_constant_short_coefficientresiduecongruence))))))))
  52. specialize prime_field_convolution_coefficient_prefix_transport (p)
  53. specialize prime_field_convolution_coefficient_prefix_transport (ab)
  54. specialize prime_field_convolution_coefficient_prefix_transport (ac)
  55. specialize prime_field_convolution_coefficient_prefix_transport (L)
  56. specialize prime_field_convolution_coefficient_prefix_transport (ab)
  57. specialize prime_field_convolution_coefficient_prefix_transport (ac)
  58. specialize prime_field_convolution_coefficient_prefix_transport (S i)
  59. specialize prime_field_convolution_coefficient_prefix_transport (bb)
  60. specialize prime_field_convolution_coefficient_prefix_transport (bc)
  61. specialize prime_field_convolution_coefficient_prefix_transport (1)
  62. specialize prime_field_convolution_coefficient_prefix_transport (S i)
  63. specialize prime_field_convolution_coefficient_prefix_transport (i)
  64. specialize prime_field_convolution_coefficient_prefix_transport (r)
  65. apply prime_field_convolution_coefficient_prefix_transport
  66. exact hi
  67. specialize le_refl (S i)
  68. apply le_refl
  69. intro j
  70. intro z
  71. intro hj
  72. intro hz
  73. exact hz
  74. specialize le_refl (S i)
  75. apply le_refl
  76. exact hr
  77. have hm : exists z. (((exists pfa_gap_constant_chosen_productleft. pfa_gap_constant_chosen_productleft + S (a) = (p)) /\ (((exists pfa_gap_constant_chosen_productright. pfa_gap_constant_chosen_productright + S (k) = (p)) /\ ((((exists pfa_gap_constant_chosen_productresultbound. pfa_gap_constant_chosen_productresultbound + S (z) = (p)) /\ ((exists pfa_offset_left_constant_chosen_productresultcongruence pfa_offset_right_constant_chosen_productresultcongruence. ((a) * (k)) + (p) * pfa_offset_left_constant_chosen_productresultcongruence = (z) + (p) * pfa_offset_right_constant_chosen_productresultcongruence)))))))))
  78. specialize prime_field_multiply_exists (p)
  79. specialize prime_field_multiply_exists (a)
  80. specialize prime_field_multiply_exists (k)
  81. apply prime_field_multiply_exists
  82. exact hp
  83. specialize matrix_rank_bounded_prefix_value (ab)
  84. specialize matrix_rank_bounded_prefix_value (ac)
  85. specialize matrix_rank_bounded_prefix_value (L)
  86. specialize matrix_rank_bounded_prefix_value (p)
  87. specialize matrix_rank_bounded_prefix_value (i)
  88. specialize matrix_rank_bounded_prefix_value (a)
  89. apply matrix_rank_bounded_prefix_value
  90. exact hA
  91. exact hi
  92. exact ha
  93. specialize matrix_rank_bounded_prefix_value (bb)
  94. specialize matrix_rank_bounded_prefix_value (bc)
  95. specialize matrix_rank_bounded_prefix_value (1)
  96. specialize matrix_rank_bounded_prefix_value (p)
  97. specialize matrix_rank_bounded_prefix_value (0)
  98. specialize matrix_rank_bounded_prefix_value (k)
  99. apply matrix_rank_bounded_prefix_value
  100. exact hB
  101. exists 0
  102. simp [zero_add]
  103. exact hk
  104. cases hm
  105. have hs : ((exists pfa_gap_constant_actual_sumleft. pfa_gap_constant_actual_sumleft + S (x) = (p)) /\ (((exists pfa_gap_constant_actual_sumright. pfa_gap_constant_actual_sumright + S (x1) = (p)) /\ ((((exists pfa_gap_constant_actual_sumresultbound. pfa_gap_constant_actual_sumresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_constant_actual_sumresultcongruence pfa_offset_right_constant_actual_sumresultcongruence. ((x) + (x1)) + (p) * pfa_offset_left_constant_actual_sumresultcongruence = (r) + (p) * pfa_offset_right_constant_actual_sumresultcongruence))))))))
  106. specialize prime_field_convolution_coefficient_append (p)
  107. specialize prime_field_convolution_coefficient_append (ab)
  108. specialize prime_field_convolution_coefficient_append (ac)
  109. specialize prime_field_convolution_coefficient_append (ab)
  110. specialize prime_field_convolution_coefficient_append (ac)
  111. specialize prime_field_convolution_coefficient_append (bb)
  112. specialize prime_field_convolution_coefficient_append (bc)
  113. specialize prime_field_convolution_coefficient_append (0)
  114. specialize prime_field_convolution_coefficient_append (i)
  115. specialize prime_field_convolution_coefficient_append (a)
  116. specialize prime_field_convolution_coefficient_append (k)
  117. specialize prime_field_convolution_coefficient_append (x)
  118. specialize prime_field_convolution_coefficient_append (x1)
  119. specialize prime_field_convolution_coefficient_append (r)
  120. apply prime_field_convolution_coefficient_append
  121. intro j
  122. intro z
  123. intro hj
  124. intro hz
  125. exact hz
  126. exact ha
  127. exact hk
  128. exact hc_witness
  129. exact hshort
  130. exact hm_witness
  131. rewrite hc0 at hs
  132. rewrite hc0 at hs
  133. have heq : r=x1
  134. specialize prime_field_add_functional (p)
  135. specialize prime_field_add_functional (0)
  136. specialize prime_field_add_functional (x1)
  137. specialize prime_field_add_functional (r)
  138. specialize prime_field_add_functional (x1)
  139. apply prime_field_add_functional
  140. exact hs
  141. specialize prime_field_add_zero_left (p)
  142. specialize prime_field_add_zero_left (x1)
  143. apply prime_field_add_zero_left
  144. exact hp
  145. have hmc : ((exists pfa_gap_constant_product_copyleft. pfa_gap_constant_product_copyleft + S (a) = (p)) /\ (((exists pfa_gap_constant_product_copyright. pfa_gap_constant_product_copyright + S (k) = (p)) /\ ((((exists pfa_gap_constant_product_copyresultbound. pfa_gap_constant_product_copyresultbound + S (x1) = (p)) /\ ((exists pfa_offset_left_constant_product_copyresultcongruence pfa_offset_right_constant_product_copyresultcongruence. ((a) * (k)) + (p) * pfa_offset_left_constant_product_copyresultcongruence = (x1) + (p) * pfa_offset_right_constant_product_copyresultcongruence))))))))
  146. exact hm_witness
  147. cases hmc
  148. cases hmc_right
  149. cases hmc_right_right
  150. exact hmc_right_right_left
  151. rewrite heq
  152. rewrite heq
  153. specialize prime_field_multiply_commutative (p)
  154. specialize prime_field_multiply_commutative (a)
  155. specialize prime_field_multiply_commutative (k)
  156. specialize prime_field_multiply_commutative (x1)
  157. apply prime_field_multiply_commutative
  158. exact hm_witness
prime_field_polynomial_scale_to_constant_product · unchanged support, not a new admission
forall p k ab ac bb bc cb cc L. (~((p) = 1) /\ forall pfa_factor_left_constant_recover_prime pfa_factor_right_constant_recover_prime. (p) = pfa_factor_left_constant_recover_prime * pfa_factor_right_constant_recover_prime -> pfa_factor_left_constant_recover_prime = 1 \/ pfa_factor_right_constant_recover_prime = 1) -> (forall fom_index_pfp_constant_recover_constant. (exists fom_gap_pfp_constant_recover_constant_index_bound. fom_gap_pfp_constant_recover_constant_index_bound + S (fom_index_pfp_constant_recover_constant) = 1) -> exists fom_value_pfp_constant_recover_constant. ((((exists fom_beta_height_pfp_constant_recover_constant_entry. fom_beta_height_pfp_constant_recover_constant_entry + S (fom_value_pfp_constant_recover_constant) = S ((S (fom_index_pfp_constant_recover_constant)) * bc)) /\ exists fom_beta_quotient_pfp_constant_recover_constant_entry. bb = fom_beta_quotient_pfp_constant_recover_constant_entry * S ((S (fom_index_pfp_constant_recover_constant)) * bc) + (fom_value_pfp_constant_recover_constant))) /\ (exists fom_gap_pfp_constant_recover_constant_value_bound. fom_gap_pfp_constant_recover_constant_value_bound + S (fom_value_pfp_constant_recover_constant) = p))) -> (((exists ff_h_pfp_constant_recover_value. ff_h_pfp_constant_recover_value + S (k) = S ((S (0)) * bc)) /\ exists ff_q_pfp_constant_recover_value. bb = ff_q_pfp_constant_recover_value * S ((S (0)) * bc) + (k))) -> (((exists pfa_gap_constant_recover_scalescalar. pfa_gap_constant_recover_scalescalar + S (k) = (p)) /\ ((forall pfp_index_constant_recover_scale. (exists pfa_gap_constant_recover_scaleindex. pfa_gap_constant_recover_scaleindex + S (pfp_index_constant_recover_scale) = (L)) -> exists pfp_source_constant_recover_scale pfp_value_constant_recover_scale. ((((exists ff_h_pfp_constant_recover_scalesource. ff_h_pfp_constant_recover_scalesource + S (pfp_source_constant_recover_scale) = S ((S (pfp_index_constant_recover_scale)) * ac)) /\ exists ff_q_pfp_constant_recover_scalesource. ab = ff_q_pfp_constant_recover_scalesource * S ((S (pfp_index_constant_recover_scale)) * ac) + (pfp_source_constant_recover_scale))) /\ (((((exists ff_h_pfp_constant_recover_scaletarget. ff_h_pfp_constant_recover_scaletarget + S (pfp_value_constant_recover_scale) = S ((S (pfp_index_constant_recover_scale)) * cc)) /\ exists ff_q_pfp_constant_recover_scaletarget. cb = ff_q_pfp_constant_recover_scaletarget * S ((S (pfp_index_constant_recover_scale)) * cc) + (pfp_value_constant_recover_scale))) /\ ((((exists pfa_gap_constant_recover_scaleoperationleft. pfa_gap_constant_recover_scaleoperationleft + S (k) = (p)) /\ (((exists pfa_gap_constant_recover_scaleoperationright. pfa_gap_constant_recover_scaleoperationright + S (pfp_source_constant_recover_scale) = (p)) /\ ((((exists pfa_gap_constant_recover_scaleoperationresultbound. pfa_gap_constant_recover_scaleoperationresultbound + S (pfp_value_constant_recover_scale) = (p)) /\ ((exists pfa_offset_left_constant_recover_scaleoperationresultcongruence pfa_offset_right_constant_recover_scaleoperationresultcongruence. ((k) * (pfp_source_constant_recover_scale)) + (p) * pfa_offset_left_constant_recover_scaleoperationresultcongruence = (pfp_value_constant_recover_scale) + (p) * pfa_offset_right_constant_recover_scaleoperationresultcongruence))))))))))))))))) -> (((forall fom_index_pfp_constant_recover_productleft. (exists fom_gap_pfp_constant_recover_productleft_index_bound. fom_gap_pfp_constant_recover_productleft_index_bound + S (fom_index_pfp_constant_recover_productleft) = L) -> exists fom_value_pfp_constant_recover_productleft. ((((exists fom_beta_height_pfp_constant_recover_productleft_entry. fom_beta_height_pfp_constant_recover_productleft_entry + S (fom_value_pfp_constant_recover_productleft) = S ((S (fom_index_pfp_constant_recover_productleft)) * ac)) /\ exists fom_beta_quotient_pfp_constant_recover_productleft_entry. ab = fom_beta_quotient_pfp_constant_recover_productleft_entry * S ((S (fom_index_pfp_constant_recover_productleft)) * ac) + (fom_value_pfp_constant_recover_productleft))) /\ (exists fom_gap_pfp_constant_recover_productleft_value_bound. fom_gap_pfp_constant_recover_productleft_value_bound + S (fom_value_pfp_constant_recover_productleft) = p))) /\ (((forall fom_index_pfp_constant_recover_productright. (exists fom_gap_pfp_constant_recover_productright_index_bound. fom_gap_pfp_constant_recover_productright_index_bound + S (fom_index_pfp_constant_recover_productright) = 1) -> exists fom_value_pfp_constant_recover_productright. ((((exists fom_beta_height_pfp_constant_recover_productright_entry. fom_beta_height_pfp_constant_recover_productright_entry + S (fom_value_pfp_constant_recover_productright) = S ((S (fom_index_pfp_constant_recover_productright)) * bc)) /\ exists fom_beta_quotient_pfp_constant_recover_productright_entry. bb = fom_beta_quotient_pfp_constant_recover_productright_entry * S ((S (fom_index_pfp_constant_recover_productright)) * bc) + (fom_value_pfp_constant_recover_productright))) /\ (exists fom_gap_pfp_constant_recover_productright_value_bound. fom_gap_pfp_constant_recover_productright_value_bound + S (fom_value_pfp_constant_recover_productright) = p))) /\ (((((((L)=0 \/ (1)=0) /\ (((L)=0)))) \/ (((~((L)=0)) /\ (((~((1)=0)) /\ (((L)+(1)=S (L)))))))) /\ ((forall pfc_index_constant_recover_productcoefficients. (exists pfa_gap_constant_recover_productcoefficientsbound. pfa_gap_constant_recover_productcoefficientsbound + S (pfc_index_constant_recover_productcoefficients) = (L)) -> exists pfc_value_constant_recover_productcoefficients. ((((exists ff_h_pfp_constant_recover_productcoefficientsentry. ff_h_pfp_constant_recover_productcoefficientsentry + S (pfc_value_constant_recover_productcoefficients) = S ((S (pfc_index_constant_recover_productcoefficients)) * cc)) /\ exists ff_q_pfp_constant_recover_productcoefficientsentry. cb = ff_q_pfp_constant_recover_productcoefficientsentry * S ((S (pfc_index_constant_recover_productcoefficients)) * cc) + (pfc_value_constant_recover_productcoefficients))) /\ ((exists pfc_terms_code_constant_recover_productcoefficientscoefficient pfc_terms_scale_constant_recover_productcoefficientscoefficient pfc_natural_sum_constant_recover_productcoefficientscoefficient. ((forall pfc_index_constant_recover_productcoefficientscoefficientdiagonal. (exists pfa_gap_constant_recover_productcoefficientscoefficientdiagonalbound. pfa_gap_constant_recover_productcoefficientscoefficientdiagonalbound + S (pfc_index_constant_recover_productcoefficientscoefficientdiagonal) = (S (pfc_index_constant_recover_productcoefficients))) -> exists pfc_value_constant_recover_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_constant_recover_productcoefficientscoefficientdiagonalentry. ff_h_pfp_constant_recover_productcoefficientscoefficientdiagonalentry + S (pfc_value_constant_recover_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_constant_recover_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_constant_recover_productcoefficientscoefficient)) /\ exists ff_q_pfp_constant_recover_productcoefficientscoefficientdiagonalentry. pfc_terms_code_constant_recover_productcoefficientscoefficient = ff_q_pfp_constant_recover_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_constant_recover_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_constant_recover_productcoefficientscoefficient) + (pfc_value_constant_recover_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_constant_recover_productcoefficientscoefficientdiagonalterm pfc_left_constant_recover_productcoefficientscoefficientdiagonalterm pfc_right_constant_recover_productcoefficientscoefficientdiagonalterm. (((pfc_index_constant_recover_productcoefficientscoefficientdiagonal)+pfc_complement_constant_recover_productcoefficientscoefficientdiagonalterm=(pfc_index_constant_recover_productcoefficients)) /\ ((((((exists pfa_gap_constant_recover_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_constant_recover_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_constant_recover_productcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_constant_recover_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_constant_recover_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_constant_recover_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_constant_recover_productcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_constant_recover_productcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_constant_recover_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_constant_recover_productcoefficientscoefficientdiagonal)) * ac) + (pfc_left_constant_recover_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_constant_recover_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_constant_recover_productcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_constant_recover_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_constant_recover_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_constant_recover_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_constant_recover_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_constant_recover_productcoefficientscoefficientdiagonalterm) = (1)) /\ ((((exists ff_h_pfp_constant_recover_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_constant_recover_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_constant_recover_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_constant_recover_productcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_constant_recover_productcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_constant_recover_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_constant_recover_productcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_constant_recover_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_constant_recover_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_constant_recover_productcoefficientscoefficientdiagonaltermrightoutside+(1)=(pfc_complement_constant_recover_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_constant_recover_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_constant_recover_productcoefficientscoefficientdiagonal)=pfc_left_constant_recover_productcoefficientscoefficientdiagonalterm*pfc_right_constant_recover_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_constant_recover_productcoefficientscoefficientsum fs_v_pfc_constant_recover_productcoefficientscoefficientsum. ((((exists fs_h_pfc_constant_recover_productcoefficientscoefficientsum_body_start. fs_h_pfc_constant_recover_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_constant_recover_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_constant_recover_productcoefficientscoefficientsum_body_start. fs_u_pfc_constant_recover_productcoefficientscoefficientsum = fs_q_pfc_constant_recover_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_constant_recover_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_constant_recover_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_constant_recover_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_constant_recover_productcoefficientscoefficient) = S ((S (S (pfc_index_constant_recover_productcoefficients))) * fs_v_pfc_constant_recover_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_constant_recover_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_constant_recover_productcoefficientscoefficientsum = fs_q_pfc_constant_recover_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_constant_recover_productcoefficients))) * fs_v_pfc_constant_recover_productcoefficientscoefficientsum) + (pfc_natural_sum_constant_recover_productcoefficientscoefficient))) /\ forall fs_i_pfc_constant_recover_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_constant_recover_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_constant_recover_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_constant_recover_productcoefficientscoefficientsum_body_steps = S (pfc_index_constant_recover_productcoefficients)) -> exists fs_a_pfc_constant_recover_productcoefficientscoefficientsum_body_steps fs_r_pfc_constant_recover_productcoefficientscoefficientsum_body_steps fs_s_pfc_constant_recover_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_constant_recover_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_constant_recover_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_constant_recover_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_constant_recover_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_constant_recover_productcoefficientscoefficient)) /\ exists fs_q_pfc_constant_recover_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_constant_recover_productcoefficientscoefficient = fs_q_pfc_constant_recover_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_constant_recover_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_constant_recover_productcoefficientscoefficient) + (fs_a_pfc_constant_recover_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_constant_recover_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_constant_recover_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_constant_recover_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_constant_recover_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_constant_recover_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_constant_recover_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_constant_recover_productcoefficientscoefficientsum = fs_q_pfc_constant_recover_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_constant_recover_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_constant_recover_productcoefficientscoefficientsum) + (fs_r_pfc_constant_recover_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_constant_recover_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_constant_recover_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_constant_recover_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_constant_recover_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_constant_recover_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_constant_recover_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_constant_recover_productcoefficientscoefficientsum = fs_q_pfc_constant_recover_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_constant_recover_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_constant_recover_productcoefficientscoefficientsum) + (fs_s_pfc_constant_recover_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_constant_recover_productcoefficientscoefficientsum_body_steps = fs_r_pfc_constant_recover_productcoefficientscoefficientsum_body_steps + fs_a_pfc_constant_recover_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_constant_recover_productcoefficientscoefficientresiduebound. pfa_gap_constant_recover_productcoefficientscoefficientresiduebound + S (pfc_value_constant_recover_productcoefficients) = (p)) /\ ((exists pfa_offset_left_constant_recover_productcoefficientscoefficientresiduecongruence pfa_offset_right_constant_recover_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_constant_recover_productcoefficientscoefficient) + (p) * pfa_offset_left_constant_recover_productcoefficientscoefficientresiduecongruence = (pfc_value_constant_recover_productcoefficients) + (p) * pfa_offset_right_constant_recover_productcoefficientscoefficientresiduecongruence)))))))))))))))))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro cb
  8. intro cc
  9. intro L
  10. intro hp
  11. intro hB
  12. intro hk
  13. intro hs
  14. have hb : ((forall fom_index_pfp_constant_recover_A. (exists fom_gap_pfp_constant_recover_A_index_bound. fom_gap_pfp_constant_recover_A_index_bound + S (fom_index_pfp_constant_recover_A) = L) -> exists fom_value_pfp_constant_recover_A. ((((exists fom_beta_height_pfp_constant_recover_A_entry. fom_beta_height_pfp_constant_recover_A_entry + S (fom_value_pfp_constant_recover_A) = S ((S (fom_index_pfp_constant_recover_A)) * ac)) /\ exists fom_beta_quotient_pfp_constant_recover_A_entry. ab = fom_beta_quotient_pfp_constant_recover_A_entry * S ((S (fom_index_pfp_constant_recover_A)) * ac) + (fom_value_pfp_constant_recover_A))) /\ (exists fom_gap_pfp_constant_recover_A_value_bound. fom_gap_pfp_constant_recover_A_value_bound + S (fom_value_pfp_constant_recover_A) = p))) /\ ((forall fom_index_pfp_constant_recover_C. (exists fom_gap_pfp_constant_recover_C_index_bound. fom_gap_pfp_constant_recover_C_index_bound + S (fom_index_pfp_constant_recover_C) = L) -> exists fom_value_pfp_constant_recover_C. ((((exists fom_beta_height_pfp_constant_recover_C_entry. fom_beta_height_pfp_constant_recover_C_entry + S (fom_value_pfp_constant_recover_C) = S ((S (fom_index_pfp_constant_recover_C)) * cc)) /\ exists fom_beta_quotient_pfp_constant_recover_C_entry. cb = fom_beta_quotient_pfp_constant_recover_C_entry * S ((S (fom_index_pfp_constant_recover_C)) * cc) + (fom_value_pfp_constant_recover_C))) /\ (exists fom_gap_pfp_constant_recover_C_value_bound. fom_gap_pfp_constant_recover_C_value_bound + S (fom_value_pfp_constant_recover_C) = p)))))
  15. specialize prime_field_polynomial_scale_bounded (p)
  16. specialize prime_field_polynomial_scale_bounded (k)
  17. specialize prime_field_polynomial_scale_bounded (ab)
  18. specialize prime_field_polynomial_scale_bounded (ac)
  19. specialize prime_field_polynomial_scale_bounded (cb)
  20. specialize prime_field_polynomial_scale_bounded (cc)
  21. specialize prime_field_polynomial_scale_bounded (L)
  22. apply prime_field_polynomial_scale_bounded
  23. exact hs
  24. cases hb
  25. split
  26. exact hb_left
  27. split
  28. exact hB
  29. split
  30. have hz : L=0 \/ ~(L=0)
  31. specialize eq_decidable (L)
  32. specialize eq_decidable (0)
  33. apply eq_decidable
  34. cases hz
  35. left
  36. split
  37. left
  38. exact hz_left
  39. exact hz_left
  40. right
  41. split
  42. exact hz_right
  43. split
  44. intro hbad
  45. specialize succ_ne_zero (0)
  46. apply succ_ne_zero
  47. exact hbad
  48. simp
  49. intro i
  50. intro hi
  51. have hv : exists a r. (((((exists ff_h_pfp_constant_recover_source. ff_h_pfp_constant_recover_source + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_constant_recover_source. ab = ff_q_pfp_constant_recover_source * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_constant_recover_target. ff_h_pfp_constant_recover_target + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_constant_recover_target. cb = ff_q_pfp_constant_recover_target * S ((S (i)) * cc) + (r))) /\ ((((exists pfa_gap_constant_recover_mulleft. pfa_gap_constant_recover_mulleft + S (k) = (p)) /\ (((exists pfa_gap_constant_recover_mulright. pfa_gap_constant_recover_mulright + S (a) = (p)) /\ ((((exists pfa_gap_constant_recover_mulresultbound. pfa_gap_constant_recover_mulresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_constant_recover_mulresultcongruence pfa_offset_right_constant_recover_mulresultcongruence. ((k) * (a)) + (p) * pfa_offset_left_constant_recover_mulresultcongruence = (r) + (p) * pfa_offset_right_constant_recover_mulresultcongruence))))))))))))))
  52. cases hs
  53. specialize hs_right (i)
  54. apply hs_right
  55. exact hi
  56. cases hv
  57. cases hv_witness
  58. cases hv_witness_witness
  59. cases hv_witness_witness_right
  60. have hc : exists r. (exists pfc_terms_code_constant_recover_actual pfc_terms_scale_constant_recover_actual pfc_natural_sum_constant_recover_actual. ((forall pfc_index_constant_recover_actualdiagonal. (exists pfa_gap_constant_recover_actualdiagonalbound. pfa_gap_constant_recover_actualdiagonalbound + S (pfc_index_constant_recover_actualdiagonal) = (S (i))) -> exists pfc_value_constant_recover_actualdiagonal. ((((exists ff_h_pfp_constant_recover_actualdiagonalentry. ff_h_pfp_constant_recover_actualdiagonalentry + S (pfc_value_constant_recover_actualdiagonal) = S ((S (pfc_index_constant_recover_actualdiagonal)) * pfc_terms_scale_constant_recover_actual)) /\ exists ff_q_pfp_constant_recover_actualdiagonalentry. pfc_terms_code_constant_recover_actual = ff_q_pfp_constant_recover_actualdiagonalentry * S ((S (pfc_index_constant_recover_actualdiagonal)) * pfc_terms_scale_constant_recover_actual) + (pfc_value_constant_recover_actualdiagonal))) /\ ((exists pfc_complement_constant_recover_actualdiagonalterm pfc_left_constant_recover_actualdiagonalterm pfc_right_constant_recover_actualdiagonalterm. (((pfc_index_constant_recover_actualdiagonal)+pfc_complement_constant_recover_actualdiagonalterm=(i)) /\ ((((((exists pfa_gap_constant_recover_actualdiagonaltermleftinside. pfa_gap_constant_recover_actualdiagonaltermleftinside + S (pfc_index_constant_recover_actualdiagonal) = (L)) /\ ((((exists ff_h_pfp_constant_recover_actualdiagonaltermleftentry. ff_h_pfp_constant_recover_actualdiagonaltermleftentry + S (pfc_left_constant_recover_actualdiagonalterm) = S ((S (pfc_index_constant_recover_actualdiagonal)) * ac)) /\ exists ff_q_pfp_constant_recover_actualdiagonaltermleftentry. ab = ff_q_pfp_constant_recover_actualdiagonaltermleftentry * S ((S (pfc_index_constant_recover_actualdiagonal)) * ac) + (pfc_left_constant_recover_actualdiagonalterm)))))) \/ (((exists pfc_gap_constant_recover_actualdiagonaltermleftoutside. pfc_gap_constant_recover_actualdiagonaltermleftoutside+(L)=(pfc_index_constant_recover_actualdiagonal)) /\ (((pfc_left_constant_recover_actualdiagonalterm)=0))))) /\ ((((((exists pfa_gap_constant_recover_actualdiagonaltermrightinside. pfa_gap_constant_recover_actualdiagonaltermrightinside + S (pfc_complement_constant_recover_actualdiagonalterm) = (1)) /\ ((((exists ff_h_pfp_constant_recover_actualdiagonaltermrightentry. ff_h_pfp_constant_recover_actualdiagonaltermrightentry + S (pfc_right_constant_recover_actualdiagonalterm) = S ((S (pfc_complement_constant_recover_actualdiagonalterm)) * bc)) /\ exists ff_q_pfp_constant_recover_actualdiagonaltermrightentry. bb = ff_q_pfp_constant_recover_actualdiagonaltermrightentry * S ((S (pfc_complement_constant_recover_actualdiagonalterm)) * bc) + (pfc_right_constant_recover_actualdiagonalterm)))))) \/ (((exists pfc_gap_constant_recover_actualdiagonaltermrightoutside. pfc_gap_constant_recover_actualdiagonaltermrightoutside+(1)=(pfc_complement_constant_recover_actualdiagonalterm)) /\ (((pfc_right_constant_recover_actualdiagonalterm)=0))))) /\ (((pfc_value_constant_recover_actualdiagonal)=pfc_left_constant_recover_actualdiagonalterm*pfc_right_constant_recover_actualdiagonalterm))))))))))) /\ (((exists fs_u_pfc_constant_recover_actualsum fs_v_pfc_constant_recover_actualsum. ((((exists fs_h_pfc_constant_recover_actualsum_body_start. fs_h_pfc_constant_recover_actualsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_constant_recover_actualsum)) /\ exists fs_q_pfc_constant_recover_actualsum_body_start. fs_u_pfc_constant_recover_actualsum = fs_q_pfc_constant_recover_actualsum_body_start * S ((S (0)) * fs_v_pfc_constant_recover_actualsum) + (0))) /\ ((((exists fs_h_pfc_constant_recover_actualsum_body_terminal. fs_h_pfc_constant_recover_actualsum_body_terminal + S (pfc_natural_sum_constant_recover_actual) = S ((S (S (i))) * fs_v_pfc_constant_recover_actualsum)) /\ exists fs_q_pfc_constant_recover_actualsum_body_terminal. fs_u_pfc_constant_recover_actualsum = fs_q_pfc_constant_recover_actualsum_body_terminal * S ((S (S (i))) * fs_v_pfc_constant_recover_actualsum) + (pfc_natural_sum_constant_recover_actual))) /\ forall fs_i_pfc_constant_recover_actualsum_body_steps. (exists fs_lt_pfc_constant_recover_actualsum_body_steps_bound. fs_lt_pfc_constant_recover_actualsum_body_steps_bound + S fs_i_pfc_constant_recover_actualsum_body_steps = S (i)) -> exists fs_a_pfc_constant_recover_actualsum_body_steps fs_r_pfc_constant_recover_actualsum_body_steps fs_s_pfc_constant_recover_actualsum_body_steps. ((((exists fs_h_pfc_constant_recover_actualsum_body_steps_summand. fs_h_pfc_constant_recover_actualsum_body_steps_summand + S (fs_a_pfc_constant_recover_actualsum_body_steps) = S ((S (fs_i_pfc_constant_recover_actualsum_body_steps)) * pfc_terms_scale_constant_recover_actual)) /\ exists fs_q_pfc_constant_recover_actualsum_body_steps_summand. pfc_terms_code_constant_recover_actual = fs_q_pfc_constant_recover_actualsum_body_steps_summand * S ((S (fs_i_pfc_constant_recover_actualsum_body_steps)) * pfc_terms_scale_constant_recover_actual) + (fs_a_pfc_constant_recover_actualsum_body_steps))) /\ ((((exists fs_h_pfc_constant_recover_actualsum_body_steps_partial. fs_h_pfc_constant_recover_actualsum_body_steps_partial + S (fs_r_pfc_constant_recover_actualsum_body_steps) = S ((S (fs_i_pfc_constant_recover_actualsum_body_steps)) * fs_v_pfc_constant_recover_actualsum)) /\ exists fs_q_pfc_constant_recover_actualsum_body_steps_partial. fs_u_pfc_constant_recover_actualsum = fs_q_pfc_constant_recover_actualsum_body_steps_partial * S ((S (fs_i_pfc_constant_recover_actualsum_body_steps)) * fs_v_pfc_constant_recover_actualsum) + (fs_r_pfc_constant_recover_actualsum_body_steps))) /\ ((((exists fs_h_pfc_constant_recover_actualsum_body_steps_successor. fs_h_pfc_constant_recover_actualsum_body_steps_successor + S (fs_s_pfc_constant_recover_actualsum_body_steps) = S ((S (S fs_i_pfc_constant_recover_actualsum_body_steps)) * fs_v_pfc_constant_recover_actualsum)) /\ exists fs_q_pfc_constant_recover_actualsum_body_steps_successor. fs_u_pfc_constant_recover_actualsum = fs_q_pfc_constant_recover_actualsum_body_steps_successor * S ((S (S fs_i_pfc_constant_recover_actualsum_body_steps)) * fs_v_pfc_constant_recover_actualsum) + (fs_s_pfc_constant_recover_actualsum_body_steps))) /\ fs_s_pfc_constant_recover_actualsum_body_steps = fs_r_pfc_constant_recover_actualsum_body_steps + fs_a_pfc_constant_recover_actualsum_body_steps)))))) /\ ((((exists pfa_gap_constant_recover_actualresiduebound. pfa_gap_constant_recover_actualresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_constant_recover_actualresiduecongruence pfa_offset_right_constant_recover_actualresiduecongruence. (pfc_natural_sum_constant_recover_actual) + (p) * pfa_offset_left_constant_recover_actualresiduecongruence = (r) + (p) * pfa_offset_right_constant_recover_actualresiduecongruence)))))))))
  61. specialize prime_field_convolution_coefficient_exists (p)
  62. specialize prime_field_convolution_coefficient_exists (ab)
  63. specialize prime_field_convolution_coefficient_exists (ac)
  64. specialize prime_field_convolution_coefficient_exists (L)
  65. specialize prime_field_convolution_coefficient_exists (bb)
  66. specialize prime_field_convolution_coefficient_exists (bc)
  67. specialize prime_field_convolution_coefficient_exists (1)
  68. specialize prime_field_convolution_coefficient_exists (i)
  69. apply prime_field_convolution_coefficient_exists
  70. intro hpzero
  71. specialize prime_nonzero (p)
  72. apply prime_nonzero
  73. exact hp
  74. exact hpzero
  75. cases hc
  76. have heq : x2=x1
  77. specialize prime_field_multiply_functional (p)
  78. specialize prime_field_multiply_functional (k)
  79. specialize prime_field_multiply_functional (x)
  80. specialize prime_field_multiply_functional (x2)
  81. specialize prime_field_multiply_functional (x1)
  82. apply prime_field_multiply_functional
  83. specialize prime_field_polynomial_constant_right_coefficient (p)
  84. specialize prime_field_polynomial_constant_right_coefficient (ab)
  85. specialize prime_field_polynomial_constant_right_coefficient (ac)
  86. specialize prime_field_polynomial_constant_right_coefficient (L)
  87. specialize prime_field_polynomial_constant_right_coefficient (bb)
  88. specialize prime_field_polynomial_constant_right_coefficient (bc)
  89. specialize prime_field_polynomial_constant_right_coefficient (k)
  90. specialize prime_field_polynomial_constant_right_coefficient (i)
  91. specialize prime_field_polynomial_constant_right_coefficient (x)
  92. specialize prime_field_polynomial_constant_right_coefficient (x2)
  93. apply prime_field_polynomial_constant_right_coefficient
  94. exact hp
  95. exact hb_left
  96. exact hB
  97. exact hk
  98. exact hi
  99. exact hv_witness_witness_left
  100. exact hc_witness
  101. exact hv_witness_witness_right_right
  102. exists x1
  103. split
  104. exact hv_witness_witness_right_left
  105. rewrite heq at hc_witness
  106. rewrite heq at hc_witness
  107. exact hc_witness
polynomial_left_pad_zero_prefix · unchanged support, not a new admission
forall b c L t B C. (forall pfp_repeat_index_padded_zero_original. (exists pfa_gap_padded_zero_originalindex. pfa_gap_padded_zero_originalindex + S (pfp_repeat_index_padded_zero_original) = (L)) -> (((exists ff_h_pfp_padded_zero_originalentry. ff_h_pfp_padded_zero_originalentry + S (0) = S ((S (pfp_repeat_index_padded_zero_original)) * c)) /\ exists ff_q_pfp_padded_zero_originalentry. b = ff_q_pfp_padded_zero_originalentry * S ((S (pfp_repeat_index_padded_zero_original)) * c) + (0)))) -> (((forall pfp_repeat_index_padded_zero_datazeros. (exists pfa_gap_padded_zero_datazerosindex. pfa_gap_padded_zero_datazerosindex + S (pfp_repeat_index_padded_zero_datazeros) = (t)) -> (((exists ff_h_pfp_padded_zero_datazerosentry. ff_h_pfp_padded_zero_datazerosentry + S (0) = S ((S (pfp_repeat_index_padded_zero_datazeros)) * C)) /\ exists ff_q_pfp_padded_zero_datazerosentry. B = ff_q_pfp_padded_zero_datazerosentry * S ((S (pfp_repeat_index_padded_zero_datazeros)) * C) + (0)))) /\ ((forall pfrep_index_padded_zero_data pfrep_value_padded_zero_data. (exists pfa_gap_padded_zero_databound. pfa_gap_padded_zero_databound + S (pfrep_index_padded_zero_data) = (L)) -> (((exists ff_h_pfp_padded_zero_datainput. ff_h_pfp_padded_zero_datainput + S (pfrep_value_padded_zero_data) = S ((S (pfrep_index_padded_zero_data)) * c)) /\ exists ff_q_pfp_padded_zero_datainput. b = ff_q_pfp_padded_zero_datainput * S ((S (pfrep_index_padded_zero_data)) * c) + (pfrep_value_padded_zero_data))) -> (((exists ff_h_pfp_padded_zero_dataoutput. ff_h_pfp_padded_zero_dataoutput + S (pfrep_value_padded_zero_data) = S ((S ((t)+pfrep_index_padded_zero_data)) * C)) /\ exists ff_q_pfp_padded_zero_dataoutput. B = ff_q_pfp_padded_zero_dataoutput * S ((S ((t)+pfrep_index_padded_zero_data)) * C) + (pfrep_value_padded_zero_data))))))) -> (forall pfp_repeat_index_padded_zero_result. (exists pfa_gap_padded_zero_resultindex. pfa_gap_padded_zero_resultindex + S (pfp_repeat_index_padded_zero_result) = (t+L)) -> (((exists ff_h_pfp_padded_zero_resultentry. ff_h_pfp_padded_zero_resultentry + S (0) = S ((S (pfp_repeat_index_padded_zero_result)) * C)) /\ exists ff_q_pfp_padded_zero_resultentry. B = ff_q_pfp_padded_zero_resultentry * S ((S (pfp_repeat_index_padded_zero_result)) * C) + (0))))
  1. intro b
  2. intro c
  3. intro L
  4. intro t
  5. intro B
  6. intro C
  7. intro hz
  8. intro hpad
  9. intro i
  10. intro hi
  11. cases hpad
  12. have hc : (exists pfa_gap_padded_zero_before. pfa_gap_padded_zero_before + S (i) = (t)) \/ exists j. (((exists pfa_gap_padded_zero_inside. pfa_gap_padded_zero_inside + S (j) = (L)) /\ ((i=t+j))))
  13. specialize prime_field_polynomial_left_pad_index_cases (t)
  14. specialize prime_field_polynomial_left_pad_index_cases (L)
  15. specialize prime_field_polynomial_left_pad_index_cases (i)
  16. apply prime_field_polynomial_left_pad_index_cases
  17. exact hi
  18. cases hc
  19. specialize hpad_left (i)
  20. apply hpad_left
  21. exact hc_left
  22. cases hc_right
  23. cases hc_right_witness
  24. rewrite hc_right_witness_right
  25. rewrite hc_right_witness_right
  26. specialize hpad_right (x)
  27. specialize hpad_right (0)
  28. apply hpad_right
  29. exact hc_right_witness_left
  30. specialize hz (x)
  31. apply hz
  32. exact hc_right_witness_left
polynomial_product_length_left_padding_right · unchanged support, not a new admission
forall L M N t K. (((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) -> (~(L=0)) -> (~(M=0)) -> (((((L)=0 \/ (t+M)=0) /\ (((K)=0)))) \/ (((~((L)=0)) /\ (((~((t+M)=0)) /\ (((L)+(t+M)=S (K)))))))) -> (K=t+N)
  1. intro L
  2. intro M
  3. intro N
  4. intro t
  5. intro K
  6. intro hold
  7. intro hL
  8. intro hM
  9. intro hnew
  10. cases hold
  11. cases hold_left
  12. cases hold_left_left
  13. exfalso
  14. apply hL
  15. exact hold_left_left_left
  16. exfalso
  17. apply hM
  18. exact hold_left_left_right
  19. cases hold_right
  20. cases hold_right_right
  21. cases hnew
  22. cases hnew_left
  23. cases hnew_left_left
  24. exfalso
  25. apply hL
  26. exact hnew_left_left_left
  27. exfalso
  28. apply hM
  29. specialize add_eq_zero_right (t)
  30. specialize add_eq_zero_right (M)
  31. apply add_eq_zero_right
  32. exact hnew_left_left_right
  33. cases hnew_right
  34. cases hnew_right_right
  35. specialize succ_injective (K)
  36. specialize succ_injective (t+N)
  37. apply succ_injective
  38. trans (L)+(t+M)
  39. symm
  40. exact hnew_right_right_right
  41. trans t+(L+M)
  42. simp [add_assoc,add_comm]
  43. rewrite hold_right_right_right
  44. simp
polynomial_zero_extended_left_pad_before · unchanged support, not a new admission
forall b c L t B C i. (((forall pfp_repeat_index_before_paddingzeros. (exists pfa_gap_before_paddingzerosindex. pfa_gap_before_paddingzerosindex + S (pfp_repeat_index_before_paddingzeros) = (t)) -> (((exists ff_h_pfp_before_paddingzerosentry. ff_h_pfp_before_paddingzerosentry + S (0) = S ((S (pfp_repeat_index_before_paddingzeros)) * C)) /\ exists ff_q_pfp_before_paddingzerosentry. B = ff_q_pfp_before_paddingzerosentry * S ((S (pfp_repeat_index_before_paddingzeros)) * C) + (0)))) /\ ((forall pfrep_index_before_padding pfrep_value_before_padding. (exists pfa_gap_before_paddingbound. pfa_gap_before_paddingbound + S (pfrep_index_before_padding) = (L)) -> (((exists ff_h_pfp_before_paddinginput. ff_h_pfp_before_paddinginput + S (pfrep_value_before_padding) = S ((S (pfrep_index_before_padding)) * c)) /\ exists ff_q_pfp_before_paddinginput. b = ff_q_pfp_before_paddinginput * S ((S (pfrep_index_before_padding)) * c) + (pfrep_value_before_padding))) -> (((exists ff_h_pfp_before_paddingoutput. ff_h_pfp_before_paddingoutput + S (pfrep_value_before_padding) = S ((S ((t)+pfrep_index_before_padding)) * C)) /\ exists ff_q_pfp_before_paddingoutput. B = ff_q_pfp_before_paddingoutput * S ((S ((t)+pfrep_index_before_padding)) * C) + (pfrep_value_before_padding))))))) -> (exists pfa_gap_before_bound. pfa_gap_before_bound + S (i) = (t)) -> ((((exists pfa_gap_before_zeroinside. pfa_gap_before_zeroinside + S (i) = (t+L)) /\ ((((exists ff_h_pfp_before_zeroentry. ff_h_pfp_before_zeroentry + S (0) = S ((S (i)) * C)) /\ exists ff_q_pfp_before_zeroentry. B = ff_q_pfp_before_zeroentry * S ((S (i)) * C) + (0)))))) \/ (((exists pfc_gap_before_zerooutside. pfc_gap_before_zerooutside+(t+L)=(i)) /\ (((0)=0)))))
  1. intro b
  2. intro c
  3. intro L
  4. intro t
  5. intro B
  6. intro C
  7. intro i
  8. intro hpad
  9. intro hi
  10. cases hpad
  11. left
  12. split
  13. cases hi
  14. exists x+L
  15. trans (x+S i)+L
  16. simp [add_assoc,add_comm,add_succ_left]
  17. congr
  18. exact hi_witness
  19. refl
  20. specialize hpad_left (i)
  21. apply hpad_left
  22. exact hi
polynomial_diagonal_term_left_padding_zero_right · unchanged support, not a new admission
forall ab ac L bb bc M BB BC t i j z. (((forall pfp_repeat_index_zero_term_pad_rightzeros. (exists pfa_gap_zero_term_pad_rightzerosindex. pfa_gap_zero_term_pad_rightzerosindex + S (pfp_repeat_index_zero_term_pad_rightzeros) = (t)) -> (((exists ff_h_pfp_zero_term_pad_rightzerosentry. ff_h_pfp_zero_term_pad_rightzerosentry + S (0) = S ((S (pfp_repeat_index_zero_term_pad_rightzeros)) * BC)) /\ exists ff_q_pfp_zero_term_pad_rightzerosentry. BB = ff_q_pfp_zero_term_pad_rightzerosentry * S ((S (pfp_repeat_index_zero_term_pad_rightzeros)) * BC) + (0)))) /\ ((forall pfrep_index_zero_term_pad_right pfrep_value_zero_term_pad_right. (exists pfa_gap_zero_term_pad_rightbound. pfa_gap_zero_term_pad_rightbound + S (pfrep_index_zero_term_pad_right) = (M)) -> (((exists ff_h_pfp_zero_term_pad_rightinput. ff_h_pfp_zero_term_pad_rightinput + S (pfrep_value_zero_term_pad_right) = S ((S (pfrep_index_zero_term_pad_right)) * bc)) /\ exists ff_q_pfp_zero_term_pad_rightinput. bb = ff_q_pfp_zero_term_pad_rightinput * S ((S (pfrep_index_zero_term_pad_right)) * bc) + (pfrep_value_zero_term_pad_right))) -> (((exists ff_h_pfp_zero_term_pad_rightoutput. ff_h_pfp_zero_term_pad_rightoutput + S (pfrep_value_zero_term_pad_right) = S ((S ((t)+pfrep_index_zero_term_pad_right)) * BC)) /\ exists ff_q_pfp_zero_term_pad_rightoutput. BB = ff_q_pfp_zero_term_pad_rightoutput * S ((S ((t)+pfrep_index_zero_term_pad_right)) * BC) + (pfrep_value_zero_term_pad_right))))))) -> (exists pfa_gap_term_zero_right_bound. pfa_gap_term_zero_right_bound + S (i) = (t+j)) -> (exists pfc_complement_zero_term_actual_right pfc_left_zero_term_actual_right pfc_right_zero_term_actual_right. (((j)+pfc_complement_zero_term_actual_right=(i)) /\ ((((((exists pfa_gap_zero_term_actual_rightleftinside. pfa_gap_zero_term_actual_rightleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_zero_term_actual_rightleftentry. ff_h_pfp_zero_term_actual_rightleftentry + S (pfc_left_zero_term_actual_right) = S ((S (j)) * ac)) /\ exists ff_q_pfp_zero_term_actual_rightleftentry. ab = ff_q_pfp_zero_term_actual_rightleftentry * S ((S (j)) * ac) + (pfc_left_zero_term_actual_right)))))) \/ (((exists pfc_gap_zero_term_actual_rightleftoutside. pfc_gap_zero_term_actual_rightleftoutside+(L)=(j)) /\ (((pfc_left_zero_term_actual_right)=0))))) /\ ((((((exists pfa_gap_zero_term_actual_rightrightinside. pfa_gap_zero_term_actual_rightrightinside + S (pfc_complement_zero_term_actual_right) = (t+M)) /\ ((((exists ff_h_pfp_zero_term_actual_rightrightentry. ff_h_pfp_zero_term_actual_rightrightentry + S (pfc_right_zero_term_actual_right) = S ((S (pfc_complement_zero_term_actual_right)) * BC)) /\ exists ff_q_pfp_zero_term_actual_rightrightentry. BB = ff_q_pfp_zero_term_actual_rightrightentry * S ((S (pfc_complement_zero_term_actual_right)) * BC) + (pfc_right_zero_term_actual_right)))))) \/ (((exists pfc_gap_zero_term_actual_rightrightoutside. pfc_gap_zero_term_actual_rightrightoutside+(t+M)=(pfc_complement_zero_term_actual_right)) /\ (((pfc_right_zero_term_actual_right)=0))))) /\ (((z)=pfc_left_zero_term_actual_right*pfc_right_zero_term_actual_right)))))))) -> (z=0)
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro BB
  8. intro BC
  9. intro t
  10. intro i
  11. intro j
  12. intro z
  13. intro hpad
  14. intro hbound
  15. intro ht
  16. cases ht
  17. cases ht_witness
  18. cases ht_witness_witness
  19. cases ht_witness_witness_witness
  20. cases ht_witness_witness_witness_right
  21. cases ht_witness_witness_witness_right_right
  22. have hindex : exists pfa_gap_term_zero_complement. pfa_gap_term_zero_complement + S (x) = (t)
  23. cases hbound
  24. exists x3
  25. specialize add_right_cancel (x3+S x)
  26. specialize add_right_cancel (t)
  27. specialize add_right_cancel (j)
  28. apply add_right_cancel
  29. trans x3+S (j+x)
  30. simp [add_assoc,add_comm,add_succ_left]
  31. trans x3+S i
  32. congr
  33. refl
  34. congr
  35. exact ht_witness_witness_witness_left
  36. exact hbound_witness
  37. have hzero : x2=0
  38. specialize polynomial_zero_extended_entry_functional (BB)
  39. specialize polynomial_zero_extended_entry_functional (BC)
  40. specialize polynomial_zero_extended_entry_functional (t+M)
  41. specialize polynomial_zero_extended_entry_functional (x)
  42. specialize polynomial_zero_extended_entry_functional (x2)
  43. specialize polynomial_zero_extended_entry_functional (0)
  44. apply polynomial_zero_extended_entry_functional
  45. exact ht_witness_witness_witness_right_right_left
  46. specialize polynomial_zero_extended_left_pad_before (bb)
  47. specialize polynomial_zero_extended_left_pad_before (bc)
  48. specialize polynomial_zero_extended_left_pad_before (M)
  49. specialize polynomial_zero_extended_left_pad_before (t)
  50. specialize polynomial_zero_extended_left_pad_before (BB)
  51. specialize polynomial_zero_extended_left_pad_before (BC)
  52. specialize polynomial_zero_extended_left_pad_before (x)
  53. apply polynomial_zero_extended_left_pad_before
  54. exact hpad
  55. exact hindex
  56. trans x1*x2
  57. exact ht_witness_witness_witness_right_right_right
  58. rewrite hzero
  59. simp
prime_field_convolution_coefficient_before_left_padding_right · unchanged support, not a new admission
forall p ab ac L bb bc M BB BC t i r. (~(p=0)) -> (((forall pfp_repeat_index_before_coefficient_pad_rightzeros. (exists pfa_gap_before_coefficient_pad_rightzerosindex. pfa_gap_before_coefficient_pad_rightzerosindex + S (pfp_repeat_index_before_coefficient_pad_rightzeros) = (t)) -> (((exists ff_h_pfp_before_coefficient_pad_rightzerosentry. ff_h_pfp_before_coefficient_pad_rightzerosentry + S (0) = S ((S (pfp_repeat_index_before_coefficient_pad_rightzeros)) * BC)) /\ exists ff_q_pfp_before_coefficient_pad_rightzerosentry. BB = ff_q_pfp_before_coefficient_pad_rightzerosentry * S ((S (pfp_repeat_index_before_coefficient_pad_rightzeros)) * BC) + (0)))) /\ ((forall pfrep_index_before_coefficient_pad_right pfrep_value_before_coefficient_pad_right. (exists pfa_gap_before_coefficient_pad_rightbound. pfa_gap_before_coefficient_pad_rightbound + S (pfrep_index_before_coefficient_pad_right) = (M)) -> (((exists ff_h_pfp_before_coefficient_pad_rightinput. ff_h_pfp_before_coefficient_pad_rightinput + S (pfrep_value_before_coefficient_pad_right) = S ((S (pfrep_index_before_coefficient_pad_right)) * bc)) /\ exists ff_q_pfp_before_coefficient_pad_rightinput. bb = ff_q_pfp_before_coefficient_pad_rightinput * S ((S (pfrep_index_before_coefficient_pad_right)) * bc) + (pfrep_value_before_coefficient_pad_right))) -> (((exists ff_h_pfp_before_coefficient_pad_rightoutput. ff_h_pfp_before_coefficient_pad_rightoutput + S (pfrep_value_before_coefficient_pad_right) = S ((S ((t)+pfrep_index_before_coefficient_pad_right)) * BC)) /\ exists ff_q_pfp_before_coefficient_pad_rightoutput. BB = ff_q_pfp_before_coefficient_pad_rightoutput * S ((S ((t)+pfrep_index_before_coefficient_pad_right)) * BC) + (pfrep_value_before_coefficient_pad_right))))))) -> (exists pfa_gap_before_coefficient_index_right. pfa_gap_before_coefficient_index_right + S (i) = (t)) -> (exists pfc_terms_code_before_coefficient_actual_right pfc_terms_scale_before_coefficient_actual_right pfc_natural_sum_before_coefficient_actual_right. ((forall pfc_index_before_coefficient_actual_rightdiagonal. (exists pfa_gap_before_coefficient_actual_rightdiagonalbound. pfa_gap_before_coefficient_actual_rightdiagonalbound + S (pfc_index_before_coefficient_actual_rightdiagonal) = (S (i))) -> exists pfc_value_before_coefficient_actual_rightdiagonal. ((((exists ff_h_pfp_before_coefficient_actual_rightdiagonalentry. ff_h_pfp_before_coefficient_actual_rightdiagonalentry + S (pfc_value_before_coefficient_actual_rightdiagonal) = S ((S (pfc_index_before_coefficient_actual_rightdiagonal)) * pfc_terms_scale_before_coefficient_actual_right)) /\ exists ff_q_pfp_before_coefficient_actual_rightdiagonalentry. pfc_terms_code_before_coefficient_actual_right = ff_q_pfp_before_coefficient_actual_rightdiagonalentry * S ((S (pfc_index_before_coefficient_actual_rightdiagonal)) * pfc_terms_scale_before_coefficient_actual_right) + (pfc_value_before_coefficient_actual_rightdiagonal))) /\ ((exists pfc_complement_before_coefficient_actual_rightdiagonalterm pfc_left_before_coefficient_actual_rightdiagonalterm pfc_right_before_coefficient_actual_rightdiagonalterm. (((pfc_index_before_coefficient_actual_rightdiagonal)+pfc_complement_before_coefficient_actual_rightdiagonalterm=(i)) /\ ((((((exists pfa_gap_before_coefficient_actual_rightdiagonaltermleftinside. pfa_gap_before_coefficient_actual_rightdiagonaltermleftinside + S (pfc_index_before_coefficient_actual_rightdiagonal) = (L)) /\ ((((exists ff_h_pfp_before_coefficient_actual_rightdiagonaltermleftentry. ff_h_pfp_before_coefficient_actual_rightdiagonaltermleftentry + S (pfc_left_before_coefficient_actual_rightdiagonalterm) = S ((S (pfc_index_before_coefficient_actual_rightdiagonal)) * ac)) /\ exists ff_q_pfp_before_coefficient_actual_rightdiagonaltermleftentry. ab = ff_q_pfp_before_coefficient_actual_rightdiagonaltermleftentry * S ((S (pfc_index_before_coefficient_actual_rightdiagonal)) * ac) + (pfc_left_before_coefficient_actual_rightdiagonalterm)))))) \/ (((exists pfc_gap_before_coefficient_actual_rightdiagonaltermleftoutside. pfc_gap_before_coefficient_actual_rightdiagonaltermleftoutside+(L)=(pfc_index_before_coefficient_actual_rightdiagonal)) /\ (((pfc_left_before_coefficient_actual_rightdiagonalterm)=0))))) /\ ((((((exists pfa_gap_before_coefficient_actual_rightdiagonaltermrightinside. pfa_gap_before_coefficient_actual_rightdiagonaltermrightinside + S (pfc_complement_before_coefficient_actual_rightdiagonalterm) = (t+M)) /\ ((((exists ff_h_pfp_before_coefficient_actual_rightdiagonaltermrightentry. ff_h_pfp_before_coefficient_actual_rightdiagonaltermrightentry + S (pfc_right_before_coefficient_actual_rightdiagonalterm) = S ((S (pfc_complement_before_coefficient_actual_rightdiagonalterm)) * BC)) /\ exists ff_q_pfp_before_coefficient_actual_rightdiagonaltermrightentry. BB = ff_q_pfp_before_coefficient_actual_rightdiagonaltermrightentry * S ((S (pfc_complement_before_coefficient_actual_rightdiagonalterm)) * BC) + (pfc_right_before_coefficient_actual_rightdiagonalterm)))))) \/ (((exists pfc_gap_before_coefficient_actual_rightdiagonaltermrightoutside. pfc_gap_before_coefficient_actual_rightdiagonaltermrightoutside+(t+M)=(pfc_complement_before_coefficient_actual_rightdiagonalterm)) /\ (((pfc_right_before_coefficient_actual_rightdiagonalterm)=0))))) /\ (((pfc_value_before_coefficient_actual_rightdiagonal)=pfc_left_before_coefficient_actual_rightdiagonalterm*pfc_right_before_coefficient_actual_rightdiagonalterm))))))))))) /\ (((exists fs_u_pfc_before_coefficient_actual_rightsum fs_v_pfc_before_coefficient_actual_rightsum. ((((exists fs_h_pfc_before_coefficient_actual_rightsum_body_start. fs_h_pfc_before_coefficient_actual_rightsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_before_coefficient_actual_rightsum)) /\ exists fs_q_pfc_before_coefficient_actual_rightsum_body_start. fs_u_pfc_before_coefficient_actual_rightsum = fs_q_pfc_before_coefficient_actual_rightsum_body_start * S ((S (0)) * fs_v_pfc_before_coefficient_actual_rightsum) + (0))) /\ ((((exists fs_h_pfc_before_coefficient_actual_rightsum_body_terminal. fs_h_pfc_before_coefficient_actual_rightsum_body_terminal + S (pfc_natural_sum_before_coefficient_actual_right) = S ((S (S (i))) * fs_v_pfc_before_coefficient_actual_rightsum)) /\ exists fs_q_pfc_before_coefficient_actual_rightsum_body_terminal. fs_u_pfc_before_coefficient_actual_rightsum = fs_q_pfc_before_coefficient_actual_rightsum_body_terminal * S ((S (S (i))) * fs_v_pfc_before_coefficient_actual_rightsum) + (pfc_natural_sum_before_coefficient_actual_right))) /\ forall fs_i_pfc_before_coefficient_actual_rightsum_body_steps. (exists fs_lt_pfc_before_coefficient_actual_rightsum_body_steps_bound. fs_lt_pfc_before_coefficient_actual_rightsum_body_steps_bound + S fs_i_pfc_before_coefficient_actual_rightsum_body_steps = S (i)) -> exists fs_a_pfc_before_coefficient_actual_rightsum_body_steps fs_r_pfc_before_coefficient_actual_rightsum_body_steps fs_s_pfc_before_coefficient_actual_rightsum_body_steps. ((((exists fs_h_pfc_before_coefficient_actual_rightsum_body_steps_summand. fs_h_pfc_before_coefficient_actual_rightsum_body_steps_summand + S (fs_a_pfc_before_coefficient_actual_rightsum_body_steps) = S ((S (fs_i_pfc_before_coefficient_actual_rightsum_body_steps)) * pfc_terms_scale_before_coefficient_actual_right)) /\ exists fs_q_pfc_before_coefficient_actual_rightsum_body_steps_summand. pfc_terms_code_before_coefficient_actual_right = fs_q_pfc_before_coefficient_actual_rightsum_body_steps_summand * S ((S (fs_i_pfc_before_coefficient_actual_rightsum_body_steps)) * pfc_terms_scale_before_coefficient_actual_right) + (fs_a_pfc_before_coefficient_actual_rightsum_body_steps))) /\ ((((exists fs_h_pfc_before_coefficient_actual_rightsum_body_steps_partial. fs_h_pfc_before_coefficient_actual_rightsum_body_steps_partial + S (fs_r_pfc_before_coefficient_actual_rightsum_body_steps) = S ((S (fs_i_pfc_before_coefficient_actual_rightsum_body_steps)) * fs_v_pfc_before_coefficient_actual_rightsum)) /\ exists fs_q_pfc_before_coefficient_actual_rightsum_body_steps_partial. fs_u_pfc_before_coefficient_actual_rightsum = fs_q_pfc_before_coefficient_actual_rightsum_body_steps_partial * S ((S (fs_i_pfc_before_coefficient_actual_rightsum_body_steps)) * fs_v_pfc_before_coefficient_actual_rightsum) + (fs_r_pfc_before_coefficient_actual_rightsum_body_steps))) /\ ((((exists fs_h_pfc_before_coefficient_actual_rightsum_body_steps_successor. fs_h_pfc_before_coefficient_actual_rightsum_body_steps_successor + S (fs_s_pfc_before_coefficient_actual_rightsum_body_steps) = S ((S (S fs_i_pfc_before_coefficient_actual_rightsum_body_steps)) * fs_v_pfc_before_coefficient_actual_rightsum)) /\ exists fs_q_pfc_before_coefficient_actual_rightsum_body_steps_successor. fs_u_pfc_before_coefficient_actual_rightsum = fs_q_pfc_before_coefficient_actual_rightsum_body_steps_successor * S ((S (S fs_i_pfc_before_coefficient_actual_rightsum_body_steps)) * fs_v_pfc_before_coefficient_actual_rightsum) + (fs_s_pfc_before_coefficient_actual_rightsum_body_steps))) /\ fs_s_pfc_before_coefficient_actual_rightsum_body_steps = fs_r_pfc_before_coefficient_actual_rightsum_body_steps + fs_a_pfc_before_coefficient_actual_rightsum_body_steps)))))) /\ ((((exists pfa_gap_before_coefficient_actual_rightresiduebound. pfa_gap_before_coefficient_actual_rightresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_before_coefficient_actual_rightresiduecongruence pfa_offset_right_before_coefficient_actual_rightresiduecongruence. (pfc_natural_sum_before_coefficient_actual_right) + (p) * pfa_offset_left_before_coefficient_actual_rightresiduecongruence = (r) + (p) * pfa_offset_right_before_coefficient_actual_rightresiduecongruence))))))))) -> (r=0)
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro BB
  9. intro BC
  10. intro t
  11. intro i
  12. intro r
  13. intro hp
  14. intro hpad
  15. intro hi
  16. intro hc
  17. cases hc
  18. cases hc_witness
  19. cases hc_witness_witness
  20. cases hc_witness_witness_witness
  21. cases hc_witness_witness_witness_right
  22. have hz : forall pfp_repeat_index_before_coefficient_zero_diagonal_right. (exists pfa_gap_before_coefficient_zero_diagonal_rightindex. pfa_gap_before_coefficient_zero_diagonal_rightindex + S (pfp_repeat_index_before_coefficient_zero_diagonal_right) = (S i)) -> (((exists ff_h_pfp_before_coefficient_zero_diagonal_rightentry. ff_h_pfp_before_coefficient_zero_diagonal_rightentry + S (0) = S ((S (pfp_repeat_index_before_coefficient_zero_diagonal_right)) * x1)) /\ exists ff_q_pfp_before_coefficient_zero_diagonal_rightentry. x = ff_q_pfp_before_coefficient_zero_diagonal_rightentry * S ((S (pfp_repeat_index_before_coefficient_zero_diagonal_right)) * x1) + (0)))
  23. intro j
  24. intro hj
  25. have ht : exists z. ((((exists ff_h_pfp_before_coefficient_entry_right. ff_h_pfp_before_coefficient_entry_right + S (z) = S ((S (j)) * x1)) /\ exists ff_q_pfp_before_coefficient_entry_right. x = ff_q_pfp_before_coefficient_entry_right * S ((S (j)) * x1) + (z))) /\ ((exists pfc_complement_before_coefficient_term_right pfc_left_before_coefficient_term_right pfc_right_before_coefficient_term_right. (((j)+pfc_complement_before_coefficient_term_right=(i)) /\ ((((((exists pfa_gap_before_coefficient_term_rightleftinside. pfa_gap_before_coefficient_term_rightleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_before_coefficient_term_rightleftentry. ff_h_pfp_before_coefficient_term_rightleftentry + S (pfc_left_before_coefficient_term_right) = S ((S (j)) * ac)) /\ exists ff_q_pfp_before_coefficient_term_rightleftentry. ab = ff_q_pfp_before_coefficient_term_rightleftentry * S ((S (j)) * ac) + (pfc_left_before_coefficient_term_right)))))) \/ (((exists pfc_gap_before_coefficient_term_rightleftoutside. pfc_gap_before_coefficient_term_rightleftoutside+(L)=(j)) /\ (((pfc_left_before_coefficient_term_right)=0))))) /\ ((((((exists pfa_gap_before_coefficient_term_rightrightinside. pfa_gap_before_coefficient_term_rightrightinside + S (pfc_complement_before_coefficient_term_right) = (t+M)) /\ ((((exists ff_h_pfp_before_coefficient_term_rightrightentry. ff_h_pfp_before_coefficient_term_rightrightentry + S (pfc_right_before_coefficient_term_right) = S ((S (pfc_complement_before_coefficient_term_right)) * BC)) /\ exists ff_q_pfp_before_coefficient_term_rightrightentry. BB = ff_q_pfp_before_coefficient_term_rightrightentry * S ((S (pfc_complement_before_coefficient_term_right)) * BC) + (pfc_right_before_coefficient_term_right)))))) \/ (((exists pfc_gap_before_coefficient_term_rightrightoutside. pfc_gap_before_coefficient_term_rightrightoutside+(t+M)=(pfc_complement_before_coefficient_term_right)) /\ (((pfc_right_before_coefficient_term_right)=0))))) /\ (((z)=pfc_left_before_coefficient_term_right*pfc_right_before_coefficient_term_right))))))))))
  26. specialize hc_witness_witness_witness_left (j)
  27. apply hc_witness_witness_witness_left
  28. exact hj
  29. cases ht
  30. cases ht_witness
  31. have heq : x3=0
  32. specialize polynomial_diagonal_term_left_padding_zero_right (ab)
  33. specialize polynomial_diagonal_term_left_padding_zero_right (ac)
  34. specialize polynomial_diagonal_term_left_padding_zero_right (L)
  35. specialize polynomial_diagonal_term_left_padding_zero_right (bb)
  36. specialize polynomial_diagonal_term_left_padding_zero_right (bc)
  37. specialize polynomial_diagonal_term_left_padding_zero_right (M)
  38. specialize polynomial_diagonal_term_left_padding_zero_right (BB)
  39. specialize polynomial_diagonal_term_left_padding_zero_right (BC)
  40. specialize polynomial_diagonal_term_left_padding_zero_right (t)
  41. specialize polynomial_diagonal_term_left_padding_zero_right (i)
  42. specialize polynomial_diagonal_term_left_padding_zero_right (j)
  43. specialize polynomial_diagonal_term_left_padding_zero_right (x3)
  44. apply polynomial_diagonal_term_left_padding_zero_right
  45. exact hpad
  46. specialize le_trans (S i)
  47. specialize le_trans (t)
  48. specialize le_trans (t+j)
  49. apply le_trans
  50. exact hi
  51. specialize le_add_right (t)
  52. specialize le_add_right (j)
  53. apply le_add_right
  54. exact ht_witness_right
  55. rewrite heq at ht_witness_left
  56. rewrite heq at ht_witness_left
  57. exact ht_witness_left
  58. have hsum : x2=0
  59. trans (S i)*0
  60. specialize beta_repeat_sum_exact (x)
  61. specialize beta_repeat_sum_exact (x1)
  62. specialize beta_repeat_sum_exact (0)
  63. specialize beta_repeat_sum_exact (S i)
  64. specialize beta_repeat_sum_exact (x2)
  65. apply beta_repeat_sum_exact
  66. exact hz
  67. exact hc_witness_witness_witness_right_left
  68. simp
  69. rewrite hsum at hc_witness_witness_witness_right_right
  70. specialize prime_field_residue_bounded_value (p)
  71. specialize prime_field_residue_bounded_value (0)
  72. specialize prime_field_residue_bounded_value (r)
  73. apply prime_field_residue_bounded_value
  74. specialize one_le_of_ne_zero (p)
  75. apply one_le_of_ne_zero
  76. exact hp
  77. exact hc_witness_witness_witness_right_right
polynomial_zero_extended_left_pad_shift · unchanged support, not a new admission
forall b c L t B C i a. (((forall pfp_repeat_index_shift_paddingzeros. (exists pfa_gap_shift_paddingzerosindex. pfa_gap_shift_paddingzerosindex + S (pfp_repeat_index_shift_paddingzeros) = (t)) -> (((exists ff_h_pfp_shift_paddingzerosentry. ff_h_pfp_shift_paddingzerosentry + S (0) = S ((S (pfp_repeat_index_shift_paddingzeros)) * C)) /\ exists ff_q_pfp_shift_paddingzerosentry. B = ff_q_pfp_shift_paddingzerosentry * S ((S (pfp_repeat_index_shift_paddingzeros)) * C) + (0)))) /\ ((forall pfrep_index_shift_padding pfrep_value_shift_padding. (exists pfa_gap_shift_paddingbound. pfa_gap_shift_paddingbound + S (pfrep_index_shift_padding) = (L)) -> (((exists ff_h_pfp_shift_paddinginput. ff_h_pfp_shift_paddinginput + S (pfrep_value_shift_padding) = S ((S (pfrep_index_shift_padding)) * c)) /\ exists ff_q_pfp_shift_paddinginput. b = ff_q_pfp_shift_paddinginput * S ((S (pfrep_index_shift_padding)) * c) + (pfrep_value_shift_padding))) -> (((exists ff_h_pfp_shift_paddingoutput. ff_h_pfp_shift_paddingoutput + S (pfrep_value_shift_padding) = S ((S ((t)+pfrep_index_shift_padding)) * C)) /\ exists ff_q_pfp_shift_paddingoutput. B = ff_q_pfp_shift_paddingoutput * S ((S ((t)+pfrep_index_shift_padding)) * C) + (pfrep_value_shift_padding))))))) -> ((((exists pfa_gap_shift_originalinside. pfa_gap_shift_originalinside + S (i) = (L)) /\ ((((exists ff_h_pfp_shift_originalentry. ff_h_pfp_shift_originalentry + S (a) = S ((S (i)) * c)) /\ exists ff_q_pfp_shift_originalentry. b = ff_q_pfp_shift_originalentry * S ((S (i)) * c) + (a)))))) \/ (((exists pfc_gap_shift_originaloutside. pfc_gap_shift_originaloutside+(L)=(i)) /\ (((a)=0))))) -> ((((exists pfa_gap_shift_resultinside. pfa_gap_shift_resultinside + S (t+i) = (t+L)) /\ ((((exists ff_h_pfp_shift_resultentry. ff_h_pfp_shift_resultentry + S (a) = S ((S (t+i)) * C)) /\ exists ff_q_pfp_shift_resultentry. B = ff_q_pfp_shift_resultentry * S ((S (t+i)) * C) + (a)))))) \/ (((exists pfc_gap_shift_resultoutside. pfc_gap_shift_resultoutside+(t+L)=(t+i)) /\ (((a)=0)))))
  1. intro b
  2. intro c
  3. intro L
  4. intro t
  5. intro B
  6. intro C
  7. intro i
  8. intro a
  9. intro hpad
  10. intro hvalue
  11. cases hpad
  12. cases hvalue
  13. cases hvalue_left
  14. left
  15. split
  16. specialize matrix_recursive_lt_add_left (i)
  17. specialize matrix_recursive_lt_add_left (L)
  18. specialize matrix_recursive_lt_add_left (t)
  19. apply matrix_recursive_lt_add_left
  20. exact hvalue_left_left
  21. specialize hpad_right (i)
  22. specialize hpad_right (a)
  23. apply hpad_right
  24. exact hvalue_left_left
  25. exact hvalue_left_right
  26. cases hvalue_right
  27. right
  28. split
  29. specialize add_le_add_left (L)
  30. specialize add_le_add_left (i)
  31. specialize add_le_add_left (t)
  32. apply add_le_add_left
  33. exact hvalue_right_left
  34. exact hvalue_right_right
polynomial_diagonal_term_left_padding_right · unchanged support, not a new admission
forall ab ac L bb bc M BB BC t i j z. (((forall pfp_repeat_index_term_padding_rightzeros. (exists pfa_gap_term_padding_rightzerosindex. pfa_gap_term_padding_rightzerosindex + S (pfp_repeat_index_term_padding_rightzeros) = (t)) -> (((exists ff_h_pfp_term_padding_rightzerosentry. ff_h_pfp_term_padding_rightzerosentry + S (0) = S ((S (pfp_repeat_index_term_padding_rightzeros)) * BC)) /\ exists ff_q_pfp_term_padding_rightzerosentry. BB = ff_q_pfp_term_padding_rightzerosentry * S ((S (pfp_repeat_index_term_padding_rightzeros)) * BC) + (0)))) /\ ((forall pfrep_index_term_padding_right pfrep_value_term_padding_right. (exists pfa_gap_term_padding_rightbound. pfa_gap_term_padding_rightbound + S (pfrep_index_term_padding_right) = (M)) -> (((exists ff_h_pfp_term_padding_rightinput. ff_h_pfp_term_padding_rightinput + S (pfrep_value_term_padding_right) = S ((S (pfrep_index_term_padding_right)) * bc)) /\ exists ff_q_pfp_term_padding_rightinput. bb = ff_q_pfp_term_padding_rightinput * S ((S (pfrep_index_term_padding_right)) * bc) + (pfrep_value_term_padding_right))) -> (((exists ff_h_pfp_term_padding_rightoutput. ff_h_pfp_term_padding_rightoutput + S (pfrep_value_term_padding_right) = S ((S ((t)+pfrep_index_term_padding_right)) * BC)) /\ exists ff_q_pfp_term_padding_rightoutput. BB = ff_q_pfp_term_padding_rightoutput * S ((S ((t)+pfrep_index_term_padding_right)) * BC) + (pfrep_value_term_padding_right))))))) -> (exists pfc_complement_term_original_right pfc_left_term_original_right pfc_right_term_original_right. (((j)+pfc_complement_term_original_right=(i)) /\ ((((((exists pfa_gap_term_original_rightleftinside. pfa_gap_term_original_rightleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_original_rightleftentry. ff_h_pfp_term_original_rightleftentry + S (pfc_left_term_original_right) = S ((S (j)) * ac)) /\ exists ff_q_pfp_term_original_rightleftentry. ab = ff_q_pfp_term_original_rightleftentry * S ((S (j)) * ac) + (pfc_left_term_original_right)))))) \/ (((exists pfc_gap_term_original_rightleftoutside. pfc_gap_term_original_rightleftoutside+(L)=(j)) /\ (((pfc_left_term_original_right)=0))))) /\ ((((((exists pfa_gap_term_original_rightrightinside. pfa_gap_term_original_rightrightinside + S (pfc_complement_term_original_right) = (M)) /\ ((((exists ff_h_pfp_term_original_rightrightentry. ff_h_pfp_term_original_rightrightentry + S (pfc_right_term_original_right) = S ((S (pfc_complement_term_original_right)) * bc)) /\ exists ff_q_pfp_term_original_rightrightentry. bb = ff_q_pfp_term_original_rightrightentry * S ((S (pfc_complement_term_original_right)) * bc) + (pfc_right_term_original_right)))))) \/ (((exists pfc_gap_term_original_rightrightoutside. pfc_gap_term_original_rightrightoutside+(M)=(pfc_complement_term_original_right)) /\ (((pfc_right_term_original_right)=0))))) /\ (((z)=pfc_left_term_original_right*pfc_right_term_original_right)))))))) -> (exists pfc_complement_term_shifted_right pfc_left_term_shifted_right pfc_right_term_shifted_right. (((j)+pfc_complement_term_shifted_right=(t+i)) /\ ((((((exists pfa_gap_term_shifted_rightleftinside. pfa_gap_term_shifted_rightleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_shifted_rightleftentry. ff_h_pfp_term_shifted_rightleftentry + S (pfc_left_term_shifted_right) = S ((S (j)) * ac)) /\ exists ff_q_pfp_term_shifted_rightleftentry. ab = ff_q_pfp_term_shifted_rightleftentry * S ((S (j)) * ac) + (pfc_left_term_shifted_right)))))) \/ (((exists pfc_gap_term_shifted_rightleftoutside. pfc_gap_term_shifted_rightleftoutside+(L)=(j)) /\ (((pfc_left_term_shifted_right)=0))))) /\ ((((((exists pfa_gap_term_shifted_rightrightinside. pfa_gap_term_shifted_rightrightinside + S (pfc_complement_term_shifted_right) = (t+M)) /\ ((((exists ff_h_pfp_term_shifted_rightrightentry. ff_h_pfp_term_shifted_rightrightentry + S (pfc_right_term_shifted_right) = S ((S (pfc_complement_term_shifted_right)) * BC)) /\ exists ff_q_pfp_term_shifted_rightrightentry. BB = ff_q_pfp_term_shifted_rightrightentry * S ((S (pfc_complement_term_shifted_right)) * BC) + (pfc_right_term_shifted_right)))))) \/ (((exists pfc_gap_term_shifted_rightrightoutside. pfc_gap_term_shifted_rightrightoutside+(t+M)=(pfc_complement_term_shifted_right)) /\ (((pfc_right_term_shifted_right)=0))))) /\ (((z)=pfc_left_term_shifted_right*pfc_right_term_shifted_right))))))))
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro BB
  8. intro BC
  9. intro t
  10. intro i
  11. intro j
  12. intro z
  13. intro hp
  14. intro ht
  15. cases ht
  16. cases ht_witness
  17. cases ht_witness_witness
  18. cases ht_witness_witness_witness
  19. cases ht_witness_witness_witness_right
  20. cases ht_witness_witness_witness_right_right
  21. exists t+x
  22. exists x1
  23. exists x2
  24. split
  25. trans t+(j+x)
  26. simp [add_assoc,add_comm]
  27. congr
  28. refl
  29. exact ht_witness_witness_witness_left
  30. split
  31. exact ht_witness_witness_witness_right_left
  32. split
  33. specialize polynomial_zero_extended_left_pad_shift (bb)
  34. specialize polynomial_zero_extended_left_pad_shift (bc)
  35. specialize polynomial_zero_extended_left_pad_shift (M)
  36. specialize polynomial_zero_extended_left_pad_shift (t)
  37. specialize polynomial_zero_extended_left_pad_shift (BB)
  38. specialize polynomial_zero_extended_left_pad_shift (BC)
  39. specialize polynomial_zero_extended_left_pad_shift (x)
  40. specialize polynomial_zero_extended_left_pad_shift (x2)
  41. apply polynomial_zero_extended_left_pad_shift
  42. exact hp
  43. exact ht_witness_witness_witness_right_right_left
  44. exact ht_witness_witness_witness_right_right_right
polynomial_diagonal_left_padding_right · unchanged support, not a new admission
forall ab ac L bb bc M BB BC t i db dc eb ec. (((forall pfp_repeat_index_diagonal_actual_padding_rightzeros. (exists pfa_gap_diagonal_actual_padding_rightzerosindex. pfa_gap_diagonal_actual_padding_rightzerosindex + S (pfp_repeat_index_diagonal_actual_padding_rightzeros) = (t)) -> (((exists ff_h_pfp_diagonal_actual_padding_rightzerosentry. ff_h_pfp_diagonal_actual_padding_rightzerosentry + S (0) = S ((S (pfp_repeat_index_diagonal_actual_padding_rightzeros)) * BC)) /\ exists ff_q_pfp_diagonal_actual_padding_rightzerosentry. BB = ff_q_pfp_diagonal_actual_padding_rightzerosentry * S ((S (pfp_repeat_index_diagonal_actual_padding_rightzeros)) * BC) + (0)))) /\ ((forall pfrep_index_diagonal_actual_padding_right pfrep_value_diagonal_actual_padding_right. (exists pfa_gap_diagonal_actual_padding_rightbound. pfa_gap_diagonal_actual_padding_rightbound + S (pfrep_index_diagonal_actual_padding_right) = (M)) -> (((exists ff_h_pfp_diagonal_actual_padding_rightinput. ff_h_pfp_diagonal_actual_padding_rightinput + S (pfrep_value_diagonal_actual_padding_right) = S ((S (pfrep_index_diagonal_actual_padding_right)) * bc)) /\ exists ff_q_pfp_diagonal_actual_padding_rightinput. bb = ff_q_pfp_diagonal_actual_padding_rightinput * S ((S (pfrep_index_diagonal_actual_padding_right)) * bc) + (pfrep_value_diagonal_actual_padding_right))) -> (((exists ff_h_pfp_diagonal_actual_padding_rightoutput. ff_h_pfp_diagonal_actual_padding_rightoutput + S (pfrep_value_diagonal_actual_padding_right) = S ((S ((t)+pfrep_index_diagonal_actual_padding_right)) * BC)) /\ exists ff_q_pfp_diagonal_actual_padding_rightoutput. BB = ff_q_pfp_diagonal_actual_padding_rightoutput * S ((S ((t)+pfrep_index_diagonal_actual_padding_right)) * BC) + (pfrep_value_diagonal_actual_padding_right))))))) -> (forall pfc_index_diagonal_pad_old_right. (exists pfa_gap_diagonal_pad_old_rightbound. pfa_gap_diagonal_pad_old_rightbound + S (pfc_index_diagonal_pad_old_right) = (S i)) -> exists pfc_value_diagonal_pad_old_right. ((((exists ff_h_pfp_diagonal_pad_old_rightentry. ff_h_pfp_diagonal_pad_old_rightentry + S (pfc_value_diagonal_pad_old_right) = S ((S (pfc_index_diagonal_pad_old_right)) * dc)) /\ exists ff_q_pfp_diagonal_pad_old_rightentry. db = ff_q_pfp_diagonal_pad_old_rightentry * S ((S (pfc_index_diagonal_pad_old_right)) * dc) + (pfc_value_diagonal_pad_old_right))) /\ ((exists pfc_complement_diagonal_pad_old_rightterm pfc_left_diagonal_pad_old_rightterm pfc_right_diagonal_pad_old_rightterm. (((pfc_index_diagonal_pad_old_right)+pfc_complement_diagonal_pad_old_rightterm=(i)) /\ ((((((exists pfa_gap_diagonal_pad_old_righttermleftinside. pfa_gap_diagonal_pad_old_righttermleftinside + S (pfc_index_diagonal_pad_old_right) = (L)) /\ ((((exists ff_h_pfp_diagonal_pad_old_righttermleftentry. ff_h_pfp_diagonal_pad_old_righttermleftentry + S (pfc_left_diagonal_pad_old_rightterm) = S ((S (pfc_index_diagonal_pad_old_right)) * ac)) /\ exists ff_q_pfp_diagonal_pad_old_righttermleftentry. ab = ff_q_pfp_diagonal_pad_old_righttermleftentry * S ((S (pfc_index_diagonal_pad_old_right)) * ac) + (pfc_left_diagonal_pad_old_rightterm)))))) \/ (((exists pfc_gap_diagonal_pad_old_righttermleftoutside. pfc_gap_diagonal_pad_old_righttermleftoutside+(L)=(pfc_index_diagonal_pad_old_right)) /\ (((pfc_left_diagonal_pad_old_rightterm)=0))))) /\ ((((((exists pfa_gap_diagonal_pad_old_righttermrightinside. pfa_gap_diagonal_pad_old_righttermrightinside + S (pfc_complement_diagonal_pad_old_rightterm) = (M)) /\ ((((exists ff_h_pfp_diagonal_pad_old_righttermrightentry. ff_h_pfp_diagonal_pad_old_righttermrightentry + S (pfc_right_diagonal_pad_old_rightterm) = S ((S (pfc_complement_diagonal_pad_old_rightterm)) * bc)) /\ exists ff_q_pfp_diagonal_pad_old_righttermrightentry. bb = ff_q_pfp_diagonal_pad_old_righttermrightentry * S ((S (pfc_complement_diagonal_pad_old_rightterm)) * bc) + (pfc_right_diagonal_pad_old_rightterm)))))) \/ (((exists pfc_gap_diagonal_pad_old_righttermrightoutside. pfc_gap_diagonal_pad_old_righttermrightoutside+(M)=(pfc_complement_diagonal_pad_old_rightterm)) /\ (((pfc_right_diagonal_pad_old_rightterm)=0))))) /\ (((pfc_value_diagonal_pad_old_right)=pfc_left_diagonal_pad_old_rightterm*pfc_right_diagonal_pad_old_rightterm))))))))))) -> (forall pfc_index_diagonal_pad_new_right. (exists pfa_gap_diagonal_pad_new_rightbound. pfa_gap_diagonal_pad_new_rightbound + S (pfc_index_diagonal_pad_new_right) = (S (t+i))) -> exists pfc_value_diagonal_pad_new_right. ((((exists ff_h_pfp_diagonal_pad_new_rightentry. ff_h_pfp_diagonal_pad_new_rightentry + S (pfc_value_diagonal_pad_new_right) = S ((S (pfc_index_diagonal_pad_new_right)) * ec)) /\ exists ff_q_pfp_diagonal_pad_new_rightentry. eb = ff_q_pfp_diagonal_pad_new_rightentry * S ((S (pfc_index_diagonal_pad_new_right)) * ec) + (pfc_value_diagonal_pad_new_right))) /\ ((exists pfc_complement_diagonal_pad_new_rightterm pfc_left_diagonal_pad_new_rightterm pfc_right_diagonal_pad_new_rightterm. (((pfc_index_diagonal_pad_new_right)+pfc_complement_diagonal_pad_new_rightterm=(t+i)) /\ ((((((exists pfa_gap_diagonal_pad_new_righttermleftinside. pfa_gap_diagonal_pad_new_righttermleftinside + S (pfc_index_diagonal_pad_new_right) = (L)) /\ ((((exists ff_h_pfp_diagonal_pad_new_righttermleftentry. ff_h_pfp_diagonal_pad_new_righttermleftentry + S (pfc_left_diagonal_pad_new_rightterm) = S ((S (pfc_index_diagonal_pad_new_right)) * ac)) /\ exists ff_q_pfp_diagonal_pad_new_righttermleftentry. ab = ff_q_pfp_diagonal_pad_new_righttermleftentry * S ((S (pfc_index_diagonal_pad_new_right)) * ac) + (pfc_left_diagonal_pad_new_rightterm)))))) \/ (((exists pfc_gap_diagonal_pad_new_righttermleftoutside. pfc_gap_diagonal_pad_new_righttermleftoutside+(L)=(pfc_index_diagonal_pad_new_right)) /\ (((pfc_left_diagonal_pad_new_rightterm)=0))))) /\ ((((((exists pfa_gap_diagonal_pad_new_righttermrightinside. pfa_gap_diagonal_pad_new_righttermrightinside + S (pfc_complement_diagonal_pad_new_rightterm) = (t+M)) /\ ((((exists ff_h_pfp_diagonal_pad_new_righttermrightentry. ff_h_pfp_diagonal_pad_new_righttermrightentry + S (pfc_right_diagonal_pad_new_rightterm) = S ((S (pfc_complement_diagonal_pad_new_rightterm)) * BC)) /\ exists ff_q_pfp_diagonal_pad_new_righttermrightentry. BB = ff_q_pfp_diagonal_pad_new_righttermrightentry * S ((S (pfc_complement_diagonal_pad_new_rightterm)) * BC) + (pfc_right_diagonal_pad_new_rightterm)))))) \/ (((exists pfc_gap_diagonal_pad_new_righttermrightoutside. pfc_gap_diagonal_pad_new_righttermrightoutside+(t+M)=(pfc_complement_diagonal_pad_new_rightterm)) /\ (((pfc_right_diagonal_pad_new_rightterm)=0))))) /\ (((pfc_value_diagonal_pad_new_right)=pfc_left_diagonal_pad_new_rightterm*pfc_right_diagonal_pad_new_rightterm))))))))))) -> (((forall mdr_i_pfp_diagonal_pad_result_equal mdr_a_pfp_diagonal_pad_result_equal. (exists mdr_gap_pfp_diagonal_pad_result_equalb. mdr_gap_pfp_diagonal_pad_result_equalb + S (mdr_i_pfp_diagonal_pad_result_equal) = (S i)) -> (((exists ff_h_mdr_pfp_diagonal_pad_result_equalo. ff_h_mdr_pfp_diagonal_pad_result_equalo + S (mdr_a_pfp_diagonal_pad_result_equal) = S ((S (mdr_i_pfp_diagonal_pad_result_equal)) * dc)) /\ exists ff_q_mdr_pfp_diagonal_pad_result_equalo. db = ff_q_mdr_pfp_diagonal_pad_result_equalo * S ((S (mdr_i_pfp_diagonal_pad_result_equal)) * dc) + (mdr_a_pfp_diagonal_pad_result_equal))) -> (((exists ff_h_mdr_pfp_diagonal_pad_result_equaln. ff_h_mdr_pfp_diagonal_pad_result_equaln + S (mdr_a_pfp_diagonal_pad_result_equal) = S ((S (mdr_i_pfp_diagonal_pad_result_equal)) * ec)) /\ exists ff_q_mdr_pfp_diagonal_pad_result_equaln. eb = ff_q_mdr_pfp_diagonal_pad_result_equaln * S ((S (mdr_i_pfp_diagonal_pad_result_equal)) * ec) + (mdr_a_pfp_diagonal_pad_result_equal)))) /\ ((forall pfpad_tail_index_diagonal_pad_result_tail. (exists pfa_gap_diagonal_pad_result_tailbound. pfa_gap_diagonal_pad_result_tailbound + S (pfpad_tail_index_diagonal_pad_result_tail) = (t)) -> (((exists ff_h_pfp_diagonal_pad_result_tailzero. ff_h_pfp_diagonal_pad_result_tailzero + S (0) = S ((S ((S i)+pfpad_tail_index_diagonal_pad_result_tail)) * ec)) /\ exists ff_q_pfp_diagonal_pad_result_tailzero. eb = ff_q_pfp_diagonal_pad_result_tailzero * S ((S ((S i)+pfpad_tail_index_diagonal_pad_result_tail)) * ec) + (0)))))))
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro BB
  8. intro BC
  9. intro t
  10. intro i
  11. intro db
  12. intro dc
  13. intro eb
  14. intro ec
  15. intro hpad
  16. intro hold
  17. intro hnew
  18. split
  19. intro j
  20. intro a
  21. intro hj
  22. intro ha
  23. have hterm : exists pfc_complement_diagonal_copy_old pfc_left_diagonal_copy_old pfc_right_diagonal_copy_old. (((j)+pfc_complement_diagonal_copy_old=(i)) /\ ((((((exists pfa_gap_diagonal_copy_oldleftinside. pfa_gap_diagonal_copy_oldleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_diagonal_copy_oldleftentry. ff_h_pfp_diagonal_copy_oldleftentry + S (pfc_left_diagonal_copy_old) = S ((S (j)) * ac)) /\ exists ff_q_pfp_diagonal_copy_oldleftentry. ab = ff_q_pfp_diagonal_copy_oldleftentry * S ((S (j)) * ac) + (pfc_left_diagonal_copy_old)))))) \/ (((exists pfc_gap_diagonal_copy_oldleftoutside. pfc_gap_diagonal_copy_oldleftoutside+(L)=(j)) /\ (((pfc_left_diagonal_copy_old)=0))))) /\ ((((((exists pfa_gap_diagonal_copy_oldrightinside. pfa_gap_diagonal_copy_oldrightinside + S (pfc_complement_diagonal_copy_old) = (M)) /\ ((((exists ff_h_pfp_diagonal_copy_oldrightentry. ff_h_pfp_diagonal_copy_oldrightentry + S (pfc_right_diagonal_copy_old) = S ((S (pfc_complement_diagonal_copy_old)) * bc)) /\ exists ff_q_pfp_diagonal_copy_oldrightentry. bb = ff_q_pfp_diagonal_copy_oldrightentry * S ((S (pfc_complement_diagonal_copy_old)) * bc) + (pfc_right_diagonal_copy_old)))))) \/ (((exists pfc_gap_diagonal_copy_oldrightoutside. pfc_gap_diagonal_copy_oldrightoutside+(M)=(pfc_complement_diagonal_copy_old)) /\ (((pfc_right_diagonal_copy_old)=0))))) /\ (((a)=pfc_left_diagonal_copy_old*pfc_right_diagonal_copy_old)))))))
  24. specialize polynomial_diagonal_prefix_entry (ab)
  25. specialize polynomial_diagonal_prefix_entry (ac)
  26. specialize polynomial_diagonal_prefix_entry (L)
  27. specialize polynomial_diagonal_prefix_entry (bb)
  28. specialize polynomial_diagonal_prefix_entry (bc)
  29. specialize polynomial_diagonal_prefix_entry (M)
  30. specialize polynomial_diagonal_prefix_entry (i)
  31. specialize polynomial_diagonal_prefix_entry (db)
  32. specialize polynomial_diagonal_prefix_entry (dc)
  33. specialize polynomial_diagonal_prefix_entry (S i)
  34. specialize polynomial_diagonal_prefix_entry (j)
  35. specialize polynomial_diagonal_prefix_entry (a)
  36. apply polynomial_diagonal_prefix_entry
  37. exact hold
  38. exact hj
  39. exact ha
  40. have hv : exists z. ((((exists ff_h_pfp_diagonal_copy_entry. ff_h_pfp_diagonal_copy_entry + S (z) = S ((S (j)) * ec)) /\ exists ff_q_pfp_diagonal_copy_entry. eb = ff_q_pfp_diagonal_copy_entry * S ((S (j)) * ec) + (z))) /\ ((exists pfc_complement_diagonal_copy_actual pfc_left_diagonal_copy_actual pfc_right_diagonal_copy_actual. (((j)+pfc_complement_diagonal_copy_actual=(t+i)) /\ ((((((exists pfa_gap_diagonal_copy_actualleftinside. pfa_gap_diagonal_copy_actualleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_diagonal_copy_actualleftentry. ff_h_pfp_diagonal_copy_actualleftentry + S (pfc_left_diagonal_copy_actual) = S ((S (j)) * ac)) /\ exists ff_q_pfp_diagonal_copy_actualleftentry. ab = ff_q_pfp_diagonal_copy_actualleftentry * S ((S (j)) * ac) + (pfc_left_diagonal_copy_actual)))))) \/ (((exists pfc_gap_diagonal_copy_actualleftoutside. pfc_gap_diagonal_copy_actualleftoutside+(L)=(j)) /\ (((pfc_left_diagonal_copy_actual)=0))))) /\ ((((((exists pfa_gap_diagonal_copy_actualrightinside. pfa_gap_diagonal_copy_actualrightinside + S (pfc_complement_diagonal_copy_actual) = (t+M)) /\ ((((exists ff_h_pfp_diagonal_copy_actualrightentry. ff_h_pfp_diagonal_copy_actualrightentry + S (pfc_right_diagonal_copy_actual) = S ((S (pfc_complement_diagonal_copy_actual)) * BC)) /\ exists ff_q_pfp_diagonal_copy_actualrightentry. BB = ff_q_pfp_diagonal_copy_actualrightentry * S ((S (pfc_complement_diagonal_copy_actual)) * BC) + (pfc_right_diagonal_copy_actual)))))) \/ (((exists pfc_gap_diagonal_copy_actualrightoutside. pfc_gap_diagonal_copy_actualrightoutside+(t+M)=(pfc_complement_diagonal_copy_actual)) /\ (((pfc_right_diagonal_copy_actual)=0))))) /\ (((z)=pfc_left_diagonal_copy_actual*pfc_right_diagonal_copy_actual))))))))))
  41. specialize hnew (j)
  42. apply hnew
  43. specialize le_trans (S j)
  44. specialize le_trans (S i)
  45. specialize le_trans (S (t+i))
  46. apply le_trans
  47. exact hj
  48. specialize succ_le_succ (i)
  49. specialize succ_le_succ (t+i)
  50. apply succ_le_succ
  51. specialize le_add_left (i)
  52. specialize le_add_left (t)
  53. apply le_add_left
  54. cases hv
  55. cases hv_witness
  56. have heq : x=a
  57. specialize polynomial_diagonal_term_functional (ab)
  58. specialize polynomial_diagonal_term_functional (ac)
  59. specialize polynomial_diagonal_term_functional (L)
  60. specialize polynomial_diagonal_term_functional (BB)
  61. specialize polynomial_diagonal_term_functional (BC)
  62. specialize polynomial_diagonal_term_functional (t+M)
  63. specialize polynomial_diagonal_term_functional (t+i)
  64. specialize polynomial_diagonal_term_functional (j)
  65. specialize polynomial_diagonal_term_functional (x)
  66. specialize polynomial_diagonal_term_functional (a)
  67. apply polynomial_diagonal_term_functional
  68. exact hv_witness_right
  69. specialize polynomial_diagonal_term_left_padding_right (ab)
  70. specialize polynomial_diagonal_term_left_padding_right (ac)
  71. specialize polynomial_diagonal_term_left_padding_right (L)
  72. specialize polynomial_diagonal_term_left_padding_right (bb)
  73. specialize polynomial_diagonal_term_left_padding_right (bc)
  74. specialize polynomial_diagonal_term_left_padding_right (M)
  75. specialize polynomial_diagonal_term_left_padding_right (BB)
  76. specialize polynomial_diagonal_term_left_padding_right (BC)
  77. specialize polynomial_diagonal_term_left_padding_right (t)
  78. specialize polynomial_diagonal_term_left_padding_right (i)
  79. specialize polynomial_diagonal_term_left_padding_right (j)
  80. specialize polynomial_diagonal_term_left_padding_right (a)
  81. apply polynomial_diagonal_term_left_padding_right
  82. exact hpad
  83. exact hterm
  84. rewrite heq at hv_witness_left
  85. rewrite heq at hv_witness_left
  86. exact hv_witness_left
  87. intro j
  88. intro hj
  89. have hv : exists z. ((((exists ff_h_pfp_diagonal_tail_entry. ff_h_pfp_diagonal_tail_entry + S (z) = S ((S (S i+j)) * ec)) /\ exists ff_q_pfp_diagonal_tail_entry. eb = ff_q_pfp_diagonal_tail_entry * S ((S (S i+j)) * ec) + (z))) /\ ((exists pfc_complement_diagonal_tail_actual pfc_left_diagonal_tail_actual pfc_right_diagonal_tail_actual. (((S i+j)+pfc_complement_diagonal_tail_actual=(t+i)) /\ ((((((exists pfa_gap_diagonal_tail_actualleftinside. pfa_gap_diagonal_tail_actualleftinside + S (S i+j) = (L)) /\ ((((exists ff_h_pfp_diagonal_tail_actualleftentry. ff_h_pfp_diagonal_tail_actualleftentry + S (pfc_left_diagonal_tail_actual) = S ((S (S i+j)) * ac)) /\ exists ff_q_pfp_diagonal_tail_actualleftentry. ab = ff_q_pfp_diagonal_tail_actualleftentry * S ((S (S i+j)) * ac) + (pfc_left_diagonal_tail_actual)))))) \/ (((exists pfc_gap_diagonal_tail_actualleftoutside. pfc_gap_diagonal_tail_actualleftoutside+(L)=(S i+j)) /\ (((pfc_left_diagonal_tail_actual)=0))))) /\ ((((((exists pfa_gap_diagonal_tail_actualrightinside. pfa_gap_diagonal_tail_actualrightinside + S (pfc_complement_diagonal_tail_actual) = (t+M)) /\ ((((exists ff_h_pfp_diagonal_tail_actualrightentry. ff_h_pfp_diagonal_tail_actualrightentry + S (pfc_right_diagonal_tail_actual) = S ((S (pfc_complement_diagonal_tail_actual)) * BC)) /\ exists ff_q_pfp_diagonal_tail_actualrightentry. BB = ff_q_pfp_diagonal_tail_actualrightentry * S ((S (pfc_complement_diagonal_tail_actual)) * BC) + (pfc_right_diagonal_tail_actual)))))) \/ (((exists pfc_gap_diagonal_tail_actualrightoutside. pfc_gap_diagonal_tail_actualrightoutside+(t+M)=(pfc_complement_diagonal_tail_actual)) /\ (((pfc_right_diagonal_tail_actual)=0))))) /\ (((z)=pfc_left_diagonal_tail_actual*pfc_right_diagonal_tail_actual))))))))))
  90. specialize hnew (S i+j)
  91. apply hnew
  92. have hlength : S i+t=S (t+i)
  93. simp [add_succ_left,add_comm]
  94. have hbound : exists pfa_gap_diagonal_tail_bound. pfa_gap_diagonal_tail_bound + S (S i+j) = (S i+t)
  95. specialize matrix_recursive_lt_add_left (j)
  96. specialize matrix_recursive_lt_add_left (t)
  97. specialize matrix_recursive_lt_add_left (S i)
  98. apply matrix_recursive_lt_add_left
  99. exact hj
  100. rewrite hlength at hbound
  101. exact hbound
  102. cases hv
  103. cases hv_witness
  104. have hz : x=0
  105. specialize polynomial_diagonal_term_left_padding_zero_right (ab)
  106. specialize polynomial_diagonal_term_left_padding_zero_right (ac)
  107. specialize polynomial_diagonal_term_left_padding_zero_right (L)
  108. specialize polynomial_diagonal_term_left_padding_zero_right (bb)
  109. specialize polynomial_diagonal_term_left_padding_zero_right (bc)
  110. specialize polynomial_diagonal_term_left_padding_zero_right (M)
  111. specialize polynomial_diagonal_term_left_padding_zero_right (BB)
  112. specialize polynomial_diagonal_term_left_padding_zero_right (BC)
  113. specialize polynomial_diagonal_term_left_padding_zero_right (t)
  114. specialize polynomial_diagonal_term_left_padding_zero_right (t+i)
  115. specialize polynomial_diagonal_term_left_padding_zero_right (S i+j)
  116. specialize polynomial_diagonal_term_left_padding_zero_right (x)
  117. apply polynomial_diagonal_term_left_padding_zero_right
  118. exact hpad
  119. specialize matrix_recursive_lt_add_left (i)
  120. specialize matrix_recursive_lt_add_left (S i+j)
  121. specialize matrix_recursive_lt_add_left (t)
  122. apply matrix_recursive_lt_add_left
  123. exists j
  124. specialize add_comm (j)
  125. specialize add_comm (S i)
  126. apply add_comm
  127. exact hv_witness_right
  128. rewrite hz at hv_witness_left
  129. rewrite hz at hv_witness_left
  130. exact hv_witness_left
polynomial_zero_tail_natural_sum_invariant · unchanged support, not a new admission
forall b c B C L t n m. (forall mdr_i_pfp_sum_tail_equal mdr_a_pfp_sum_tail_equal. (exists mdr_gap_pfp_sum_tail_equalb. mdr_gap_pfp_sum_tail_equalb + S (mdr_i_pfp_sum_tail_equal) = (L)) -> (((exists ff_h_mdr_pfp_sum_tail_equalo. ff_h_mdr_pfp_sum_tail_equalo + S (mdr_a_pfp_sum_tail_equal) = S ((S (mdr_i_pfp_sum_tail_equal)) * c)) /\ exists ff_q_mdr_pfp_sum_tail_equalo. b = ff_q_mdr_pfp_sum_tail_equalo * S ((S (mdr_i_pfp_sum_tail_equal)) * c) + (mdr_a_pfp_sum_tail_equal))) -> (((exists ff_h_mdr_pfp_sum_tail_equaln. ff_h_mdr_pfp_sum_tail_equaln + S (mdr_a_pfp_sum_tail_equal) = S ((S (mdr_i_pfp_sum_tail_equal)) * C)) /\ exists ff_q_mdr_pfp_sum_tail_equaln. B = ff_q_mdr_pfp_sum_tail_equaln * S ((S (mdr_i_pfp_sum_tail_equal)) * C) + (mdr_a_pfp_sum_tail_equal)))) -> (forall pfpad_tail_index_sum_tail_zero. (exists pfa_gap_sum_tail_zerobound. pfa_gap_sum_tail_zerobound + S (pfpad_tail_index_sum_tail_zero) = (t)) -> (((exists ff_h_pfp_sum_tail_zerozero. ff_h_pfp_sum_tail_zerozero + S (0) = S ((S ((L)+pfpad_tail_index_sum_tail_zero)) * C)) /\ exists ff_q_pfp_sum_tail_zerozero. B = ff_q_pfp_sum_tail_zerozero * S ((S ((L)+pfpad_tail_index_sum_tail_zero)) * C) + (0)))) -> (exists fs_u_pfc_sum_tail_original fs_v_pfc_sum_tail_original. ((((exists fs_h_pfc_sum_tail_original_body_start. fs_h_pfc_sum_tail_original_body_start + S (0) = S ((S (0)) * fs_v_pfc_sum_tail_original)) /\ exists fs_q_pfc_sum_tail_original_body_start. fs_u_pfc_sum_tail_original = fs_q_pfc_sum_tail_original_body_start * S ((S (0)) * fs_v_pfc_sum_tail_original) + (0))) /\ ((((exists fs_h_pfc_sum_tail_original_body_terminal. fs_h_pfc_sum_tail_original_body_terminal + S (n) = S ((S (L)) * fs_v_pfc_sum_tail_original)) /\ exists fs_q_pfc_sum_tail_original_body_terminal. fs_u_pfc_sum_tail_original = fs_q_pfc_sum_tail_original_body_terminal * S ((S (L)) * fs_v_pfc_sum_tail_original) + (n))) /\ forall fs_i_pfc_sum_tail_original_body_steps. (exists fs_lt_pfc_sum_tail_original_body_steps_bound. fs_lt_pfc_sum_tail_original_body_steps_bound + S fs_i_pfc_sum_tail_original_body_steps = L) -> exists fs_a_pfc_sum_tail_original_body_steps fs_r_pfc_sum_tail_original_body_steps fs_s_pfc_sum_tail_original_body_steps. ((((exists fs_h_pfc_sum_tail_original_body_steps_summand. fs_h_pfc_sum_tail_original_body_steps_summand + S (fs_a_pfc_sum_tail_original_body_steps) = S ((S (fs_i_pfc_sum_tail_original_body_steps)) * c)) /\ exists fs_q_pfc_sum_tail_original_body_steps_summand. b = fs_q_pfc_sum_tail_original_body_steps_summand * S ((S (fs_i_pfc_sum_tail_original_body_steps)) * c) + (fs_a_pfc_sum_tail_original_body_steps))) /\ ((((exists fs_h_pfc_sum_tail_original_body_steps_partial. fs_h_pfc_sum_tail_original_body_steps_partial + S (fs_r_pfc_sum_tail_original_body_steps) = S ((S (fs_i_pfc_sum_tail_original_body_steps)) * fs_v_pfc_sum_tail_original)) /\ exists fs_q_pfc_sum_tail_original_body_steps_partial. fs_u_pfc_sum_tail_original = fs_q_pfc_sum_tail_original_body_steps_partial * S ((S (fs_i_pfc_sum_tail_original_body_steps)) * fs_v_pfc_sum_tail_original) + (fs_r_pfc_sum_tail_original_body_steps))) /\ ((((exists fs_h_pfc_sum_tail_original_body_steps_successor. fs_h_pfc_sum_tail_original_body_steps_successor + S (fs_s_pfc_sum_tail_original_body_steps) = S ((S (S fs_i_pfc_sum_tail_original_body_steps)) * fs_v_pfc_sum_tail_original)) /\ exists fs_q_pfc_sum_tail_original_body_steps_successor. fs_u_pfc_sum_tail_original = fs_q_pfc_sum_tail_original_body_steps_successor * S ((S (S fs_i_pfc_sum_tail_original_body_steps)) * fs_v_pfc_sum_tail_original) + (fs_s_pfc_sum_tail_original_body_steps))) /\ fs_s_pfc_sum_tail_original_body_steps = fs_r_pfc_sum_tail_original_body_steps + fs_a_pfc_sum_tail_original_body_steps)))))) -> (exists fs_u_pfc_sum_tail_actual fs_v_pfc_sum_tail_actual. ((((exists fs_h_pfc_sum_tail_actual_body_start. fs_h_pfc_sum_tail_actual_body_start + S (0) = S ((S (0)) * fs_v_pfc_sum_tail_actual)) /\ exists fs_q_pfc_sum_tail_actual_body_start. fs_u_pfc_sum_tail_actual = fs_q_pfc_sum_tail_actual_body_start * S ((S (0)) * fs_v_pfc_sum_tail_actual) + (0))) /\ ((((exists fs_h_pfc_sum_tail_actual_body_terminal. fs_h_pfc_sum_tail_actual_body_terminal + S (m) = S ((S (L+t)) * fs_v_pfc_sum_tail_actual)) /\ exists fs_q_pfc_sum_tail_actual_body_terminal. fs_u_pfc_sum_tail_actual = fs_q_pfc_sum_tail_actual_body_terminal * S ((S (L+t)) * fs_v_pfc_sum_tail_actual) + (m))) /\ forall fs_i_pfc_sum_tail_actual_body_steps. (exists fs_lt_pfc_sum_tail_actual_body_steps_bound. fs_lt_pfc_sum_tail_actual_body_steps_bound + S fs_i_pfc_sum_tail_actual_body_steps = L+t) -> exists fs_a_pfc_sum_tail_actual_body_steps fs_r_pfc_sum_tail_actual_body_steps fs_s_pfc_sum_tail_actual_body_steps. ((((exists fs_h_pfc_sum_tail_actual_body_steps_summand. fs_h_pfc_sum_tail_actual_body_steps_summand + S (fs_a_pfc_sum_tail_actual_body_steps) = S ((S (fs_i_pfc_sum_tail_actual_body_steps)) * C)) /\ exists fs_q_pfc_sum_tail_actual_body_steps_summand. B = fs_q_pfc_sum_tail_actual_body_steps_summand * S ((S (fs_i_pfc_sum_tail_actual_body_steps)) * C) + (fs_a_pfc_sum_tail_actual_body_steps))) /\ ((((exists fs_h_pfc_sum_tail_actual_body_steps_partial. fs_h_pfc_sum_tail_actual_body_steps_partial + S (fs_r_pfc_sum_tail_actual_body_steps) = S ((S (fs_i_pfc_sum_tail_actual_body_steps)) * fs_v_pfc_sum_tail_actual)) /\ exists fs_q_pfc_sum_tail_actual_body_steps_partial. fs_u_pfc_sum_tail_actual = fs_q_pfc_sum_tail_actual_body_steps_partial * S ((S (fs_i_pfc_sum_tail_actual_body_steps)) * fs_v_pfc_sum_tail_actual) + (fs_r_pfc_sum_tail_actual_body_steps))) /\ ((((exists fs_h_pfc_sum_tail_actual_body_steps_successor. fs_h_pfc_sum_tail_actual_body_steps_successor + S (fs_s_pfc_sum_tail_actual_body_steps) = S ((S (S fs_i_pfc_sum_tail_actual_body_steps)) * fs_v_pfc_sum_tail_actual)) /\ exists fs_q_pfc_sum_tail_actual_body_steps_successor. fs_u_pfc_sum_tail_actual = fs_q_pfc_sum_tail_actual_body_steps_successor * S ((S (S fs_i_pfc_sum_tail_actual_body_steps)) * fs_v_pfc_sum_tail_actual) + (fs_s_pfc_sum_tail_actual_body_steps))) /\ fs_s_pfc_sum_tail_actual_body_steps = fs_r_pfc_sum_tail_actual_body_steps + fs_a_pfc_sum_tail_actual_body_steps)))))) -> (m=n)
  1. intro b
  2. intro c
  3. intro B
  4. intro C
  5. intro L
  6. induction t
  7. intro n
  8. intro m
  9. intro he
  10. intro hz
  11. intro hs
  12. intro ht
  13. have hlength : L+0=L
  14. simp
  15. rewrite hlength at ht
  16. rewrite hlength at ht
  17. rewrite hlength at ht
  18. specialize beta_sum_functional (B)
  19. specialize beta_sum_functional (C)
  20. specialize beta_sum_functional (L)
  21. specialize beta_sum_functional (m)
  22. specialize beta_sum_functional (n)
  23. apply beta_sum_functional
  24. exact ht
  25. specialize beta_sum_transport_prefix (b)
  26. specialize beta_sum_transport_prefix (c)
  27. specialize beta_sum_transport_prefix (B)
  28. specialize beta_sum_transport_prefix (C)
  29. specialize beta_sum_transport_prefix (L)
  30. specialize beta_sum_transport_prefix (n)
  31. apply beta_sum_transport_prefix
  32. exact hs
  33. exact he
  34. intro n
  35. intro m
  36. intro he
  37. intro hz
  38. intro hs
  39. intro ht
  40. have hlength : L+S t=S (L+t)
  41. simp
  42. rewrite hlength at ht
  43. rewrite hlength at ht
  44. rewrite hlength at ht
  45. have hd : exists a u. ((((exists ff_h_pfp_sum_tail_decompositionentry. ff_h_pfp_sum_tail_decompositionentry + S (a) = S ((S (L+t)) * C)) /\ exists ff_q_pfp_sum_tail_decompositionentry. B = ff_q_pfp_sum_tail_decompositionentry * S ((S (L+t)) * C) + (a))) /\ (((exists fs_u_pfc_sum_tail_decompositionprefix fs_v_pfc_sum_tail_decompositionprefix. ((((exists fs_h_pfc_sum_tail_decompositionprefix_body_start. fs_h_pfc_sum_tail_decompositionprefix_body_start + S (0) = S ((S (0)) * fs_v_pfc_sum_tail_decompositionprefix)) /\ exists fs_q_pfc_sum_tail_decompositionprefix_body_start. fs_u_pfc_sum_tail_decompositionprefix = fs_q_pfc_sum_tail_decompositionprefix_body_start * S ((S (0)) * fs_v_pfc_sum_tail_decompositionprefix) + (0))) /\ ((((exists fs_h_pfc_sum_tail_decompositionprefix_body_terminal. fs_h_pfc_sum_tail_decompositionprefix_body_terminal + S (u) = S ((S (L+t)) * fs_v_pfc_sum_tail_decompositionprefix)) /\ exists fs_q_pfc_sum_tail_decompositionprefix_body_terminal. fs_u_pfc_sum_tail_decompositionprefix = fs_q_pfc_sum_tail_decompositionprefix_body_terminal * S ((S (L+t)) * fs_v_pfc_sum_tail_decompositionprefix) + (u))) /\ forall fs_i_pfc_sum_tail_decompositionprefix_body_steps. (exists fs_lt_pfc_sum_tail_decompositionprefix_body_steps_bound. fs_lt_pfc_sum_tail_decompositionprefix_body_steps_bound + S fs_i_pfc_sum_tail_decompositionprefix_body_steps = L+t) -> exists fs_a_pfc_sum_tail_decompositionprefix_body_steps fs_r_pfc_sum_tail_decompositionprefix_body_steps fs_s_pfc_sum_tail_decompositionprefix_body_steps. ((((exists fs_h_pfc_sum_tail_decompositionprefix_body_steps_summand. fs_h_pfc_sum_tail_decompositionprefix_body_steps_summand + S (fs_a_pfc_sum_tail_decompositionprefix_body_steps) = S ((S (fs_i_pfc_sum_tail_decompositionprefix_body_steps)) * C)) /\ exists fs_q_pfc_sum_tail_decompositionprefix_body_steps_summand. B = fs_q_pfc_sum_tail_decompositionprefix_body_steps_summand * S ((S (fs_i_pfc_sum_tail_decompositionprefix_body_steps)) * C) + (fs_a_pfc_sum_tail_decompositionprefix_body_steps))) /\ ((((exists fs_h_pfc_sum_tail_decompositionprefix_body_steps_partial. fs_h_pfc_sum_tail_decompositionprefix_body_steps_partial + S (fs_r_pfc_sum_tail_decompositionprefix_body_steps) = S ((S (fs_i_pfc_sum_tail_decompositionprefix_body_steps)) * fs_v_pfc_sum_tail_decompositionprefix)) /\ exists fs_q_pfc_sum_tail_decompositionprefix_body_steps_partial. fs_u_pfc_sum_tail_decompositionprefix = fs_q_pfc_sum_tail_decompositionprefix_body_steps_partial * S ((S (fs_i_pfc_sum_tail_decompositionprefix_body_steps)) * fs_v_pfc_sum_tail_decompositionprefix) + (fs_r_pfc_sum_tail_decompositionprefix_body_steps))) /\ ((((exists fs_h_pfc_sum_tail_decompositionprefix_body_steps_successor. fs_h_pfc_sum_tail_decompositionprefix_body_steps_successor + S (fs_s_pfc_sum_tail_decompositionprefix_body_steps) = S ((S (S fs_i_pfc_sum_tail_decompositionprefix_body_steps)) * fs_v_pfc_sum_tail_decompositionprefix)) /\ exists fs_q_pfc_sum_tail_decompositionprefix_body_steps_successor. fs_u_pfc_sum_tail_decompositionprefix = fs_q_pfc_sum_tail_decompositionprefix_body_steps_successor * S ((S (S fs_i_pfc_sum_tail_decompositionprefix_body_steps)) * fs_v_pfc_sum_tail_decompositionprefix) + (fs_s_pfc_sum_tail_decompositionprefix_body_steps))) /\ fs_s_pfc_sum_tail_decompositionprefix_body_steps = fs_r_pfc_sum_tail_decompositionprefix_body_steps + fs_a_pfc_sum_tail_decompositionprefix_body_steps)))))) /\ (((m)=u+a)))))
  46. specialize beta_sum_succ_decompose (B)
  47. specialize beta_sum_succ_decompose (C)
  48. specialize beta_sum_succ_decompose (L+t)
  49. specialize beta_sum_succ_decompose (m)
  50. apply beta_sum_succ_decompose
  51. exact ht
  52. cases hd
  53. cases hd_witness
  54. cases hd_witness_witness
  55. cases hd_witness_witness_right
  56. have hprefix : x1=n
  57. specialize IH (n)
  58. specialize IH (x1)
  59. apply IH
  60. exact he
  61. intro i
  62. intro hi
  63. specialize hz (i)
  64. apply hz
  65. specialize le_succ (S i)
  66. specialize le_succ (t)
  67. apply le_succ
  68. exact hi
  69. exact hs
  70. exact hd_witness_witness_right_left
  71. have hzero : x=0
  72. specialize beta_at_unique (B)
  73. specialize beta_at_unique (C)
  74. specialize beta_at_unique (L+t)
  75. specialize beta_at_unique (x)
  76. specialize beta_at_unique (0)
  77. apply beta_at_unique
  78. exact hd_witness_witness_left
  79. specialize hz (t)
  80. apply hz
  81. specialize le_refl (S t)
  82. apply le_refl
  83. trans x1+x
  84. exact hd_witness_witness_right_right
  85. trans x1
  86. rewrite hzero
  87. simp
  88. exact hprefix
prime_field_convolution_coefficient_left_padding_right · unchanged support, not a new admission
forall p ab ac L bb bc M BB BC t i r. (((forall pfp_repeat_index_coefficient_padding_rightzeros. (exists pfa_gap_coefficient_padding_rightzerosindex. pfa_gap_coefficient_padding_rightzerosindex + S (pfp_repeat_index_coefficient_padding_rightzeros) = (t)) -> (((exists ff_h_pfp_coefficient_padding_rightzerosentry. ff_h_pfp_coefficient_padding_rightzerosentry + S (0) = S ((S (pfp_repeat_index_coefficient_padding_rightzeros)) * BC)) /\ exists ff_q_pfp_coefficient_padding_rightzerosentry. BB = ff_q_pfp_coefficient_padding_rightzerosentry * S ((S (pfp_repeat_index_coefficient_padding_rightzeros)) * BC) + (0)))) /\ ((forall pfrep_index_coefficient_padding_right pfrep_value_coefficient_padding_right. (exists pfa_gap_coefficient_padding_rightbound. pfa_gap_coefficient_padding_rightbound + S (pfrep_index_coefficient_padding_right) = (M)) -> (((exists ff_h_pfp_coefficient_padding_rightinput. ff_h_pfp_coefficient_padding_rightinput + S (pfrep_value_coefficient_padding_right) = S ((S (pfrep_index_coefficient_padding_right)) * bc)) /\ exists ff_q_pfp_coefficient_padding_rightinput. bb = ff_q_pfp_coefficient_padding_rightinput * S ((S (pfrep_index_coefficient_padding_right)) * bc) + (pfrep_value_coefficient_padding_right))) -> (((exists ff_h_pfp_coefficient_padding_rightoutput. ff_h_pfp_coefficient_padding_rightoutput + S (pfrep_value_coefficient_padding_right) = S ((S ((t)+pfrep_index_coefficient_padding_right)) * BC)) /\ exists ff_q_pfp_coefficient_padding_rightoutput. BB = ff_q_pfp_coefficient_padding_rightoutput * S ((S ((t)+pfrep_index_coefficient_padding_right)) * BC) + (pfrep_value_coefficient_padding_right))))))) -> (exists pfc_terms_code_coefficient_original_right pfc_terms_scale_coefficient_original_right pfc_natural_sum_coefficient_original_right. ((forall pfc_index_coefficient_original_rightdiagonal. (exists pfa_gap_coefficient_original_rightdiagonalbound. pfa_gap_coefficient_original_rightdiagonalbound + S (pfc_index_coefficient_original_rightdiagonal) = (S (i))) -> exists pfc_value_coefficient_original_rightdiagonal. ((((exists ff_h_pfp_coefficient_original_rightdiagonalentry. ff_h_pfp_coefficient_original_rightdiagonalentry + S (pfc_value_coefficient_original_rightdiagonal) = S ((S (pfc_index_coefficient_original_rightdiagonal)) * pfc_terms_scale_coefficient_original_right)) /\ exists ff_q_pfp_coefficient_original_rightdiagonalentry. pfc_terms_code_coefficient_original_right = ff_q_pfp_coefficient_original_rightdiagonalentry * S ((S (pfc_index_coefficient_original_rightdiagonal)) * pfc_terms_scale_coefficient_original_right) + (pfc_value_coefficient_original_rightdiagonal))) /\ ((exists pfc_complement_coefficient_original_rightdiagonalterm pfc_left_coefficient_original_rightdiagonalterm pfc_right_coefficient_original_rightdiagonalterm. (((pfc_index_coefficient_original_rightdiagonal)+pfc_complement_coefficient_original_rightdiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_original_rightdiagonaltermleftinside. pfa_gap_coefficient_original_rightdiagonaltermleftinside + S (pfc_index_coefficient_original_rightdiagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_original_rightdiagonaltermleftentry. ff_h_pfp_coefficient_original_rightdiagonaltermleftentry + S (pfc_left_coefficient_original_rightdiagonalterm) = S ((S (pfc_index_coefficient_original_rightdiagonal)) * ac)) /\ exists ff_q_pfp_coefficient_original_rightdiagonaltermleftentry. ab = ff_q_pfp_coefficient_original_rightdiagonaltermleftentry * S ((S (pfc_index_coefficient_original_rightdiagonal)) * ac) + (pfc_left_coefficient_original_rightdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_original_rightdiagonaltermleftoutside. pfc_gap_coefficient_original_rightdiagonaltermleftoutside+(L)=(pfc_index_coefficient_original_rightdiagonal)) /\ (((pfc_left_coefficient_original_rightdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_original_rightdiagonaltermrightinside. pfa_gap_coefficient_original_rightdiagonaltermrightinside + S (pfc_complement_coefficient_original_rightdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_original_rightdiagonaltermrightentry. ff_h_pfp_coefficient_original_rightdiagonaltermrightentry + S (pfc_right_coefficient_original_rightdiagonalterm) = S ((S (pfc_complement_coefficient_original_rightdiagonalterm)) * bc)) /\ exists ff_q_pfp_coefficient_original_rightdiagonaltermrightentry. bb = ff_q_pfp_coefficient_original_rightdiagonaltermrightentry * S ((S (pfc_complement_coefficient_original_rightdiagonalterm)) * bc) + (pfc_right_coefficient_original_rightdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_original_rightdiagonaltermrightoutside. pfc_gap_coefficient_original_rightdiagonaltermrightoutside+(M)=(pfc_complement_coefficient_original_rightdiagonalterm)) /\ (((pfc_right_coefficient_original_rightdiagonalterm)=0))))) /\ (((pfc_value_coefficient_original_rightdiagonal)=pfc_left_coefficient_original_rightdiagonalterm*pfc_right_coefficient_original_rightdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_original_rightsum fs_v_pfc_coefficient_original_rightsum. ((((exists fs_h_pfc_coefficient_original_rightsum_body_start. fs_h_pfc_coefficient_original_rightsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_original_rightsum)) /\ exists fs_q_pfc_coefficient_original_rightsum_body_start. fs_u_pfc_coefficient_original_rightsum = fs_q_pfc_coefficient_original_rightsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_original_rightsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_original_rightsum_body_terminal. fs_h_pfc_coefficient_original_rightsum_body_terminal + S (pfc_natural_sum_coefficient_original_right) = S ((S (S (i))) * fs_v_pfc_coefficient_original_rightsum)) /\ exists fs_q_pfc_coefficient_original_rightsum_body_terminal. fs_u_pfc_coefficient_original_rightsum = fs_q_pfc_coefficient_original_rightsum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_original_rightsum) + (pfc_natural_sum_coefficient_original_right))) /\ forall fs_i_pfc_coefficient_original_rightsum_body_steps. (exists fs_lt_pfc_coefficient_original_rightsum_body_steps_bound. fs_lt_pfc_coefficient_original_rightsum_body_steps_bound + S fs_i_pfc_coefficient_original_rightsum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_original_rightsum_body_steps fs_r_pfc_coefficient_original_rightsum_body_steps fs_s_pfc_coefficient_original_rightsum_body_steps. ((((exists fs_h_pfc_coefficient_original_rightsum_body_steps_summand. fs_h_pfc_coefficient_original_rightsum_body_steps_summand + S (fs_a_pfc_coefficient_original_rightsum_body_steps) = S ((S (fs_i_pfc_coefficient_original_rightsum_body_steps)) * pfc_terms_scale_coefficient_original_right)) /\ exists fs_q_pfc_coefficient_original_rightsum_body_steps_summand. pfc_terms_code_coefficient_original_right = fs_q_pfc_coefficient_original_rightsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_original_rightsum_body_steps)) * pfc_terms_scale_coefficient_original_right) + (fs_a_pfc_coefficient_original_rightsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_original_rightsum_body_steps_partial. fs_h_pfc_coefficient_original_rightsum_body_steps_partial + S (fs_r_pfc_coefficient_original_rightsum_body_steps) = S ((S (fs_i_pfc_coefficient_original_rightsum_body_steps)) * fs_v_pfc_coefficient_original_rightsum)) /\ exists fs_q_pfc_coefficient_original_rightsum_body_steps_partial. fs_u_pfc_coefficient_original_rightsum = fs_q_pfc_coefficient_original_rightsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_original_rightsum_body_steps)) * fs_v_pfc_coefficient_original_rightsum) + (fs_r_pfc_coefficient_original_rightsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_original_rightsum_body_steps_successor. fs_h_pfc_coefficient_original_rightsum_body_steps_successor + S (fs_s_pfc_coefficient_original_rightsum_body_steps) = S ((S (S fs_i_pfc_coefficient_original_rightsum_body_steps)) * fs_v_pfc_coefficient_original_rightsum)) /\ exists fs_q_pfc_coefficient_original_rightsum_body_steps_successor. fs_u_pfc_coefficient_original_rightsum = fs_q_pfc_coefficient_original_rightsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_original_rightsum_body_steps)) * fs_v_pfc_coefficient_original_rightsum) + (fs_s_pfc_coefficient_original_rightsum_body_steps))) /\ fs_s_pfc_coefficient_original_rightsum_body_steps = fs_r_pfc_coefficient_original_rightsum_body_steps + fs_a_pfc_coefficient_original_rightsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_original_rightresiduebound. pfa_gap_coefficient_original_rightresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_coefficient_original_rightresiduecongruence pfa_offset_right_coefficient_original_rightresiduecongruence. (pfc_natural_sum_coefficient_original_right) + (p) * pfa_offset_left_coefficient_original_rightresiduecongruence = (r) + (p) * pfa_offset_right_coefficient_original_rightresiduecongruence))))))))) -> (exists pfc_terms_code_coefficient_shifted_right pfc_terms_scale_coefficient_shifted_right pfc_natural_sum_coefficient_shifted_right. ((forall pfc_index_coefficient_shifted_rightdiagonal. (exists pfa_gap_coefficient_shifted_rightdiagonalbound. pfa_gap_coefficient_shifted_rightdiagonalbound + S (pfc_index_coefficient_shifted_rightdiagonal) = (S (t+i))) -> exists pfc_value_coefficient_shifted_rightdiagonal. ((((exists ff_h_pfp_coefficient_shifted_rightdiagonalentry. ff_h_pfp_coefficient_shifted_rightdiagonalentry + S (pfc_value_coefficient_shifted_rightdiagonal) = S ((S (pfc_index_coefficient_shifted_rightdiagonal)) * pfc_terms_scale_coefficient_shifted_right)) /\ exists ff_q_pfp_coefficient_shifted_rightdiagonalentry. pfc_terms_code_coefficient_shifted_right = ff_q_pfp_coefficient_shifted_rightdiagonalentry * S ((S (pfc_index_coefficient_shifted_rightdiagonal)) * pfc_terms_scale_coefficient_shifted_right) + (pfc_value_coefficient_shifted_rightdiagonal))) /\ ((exists pfc_complement_coefficient_shifted_rightdiagonalterm pfc_left_coefficient_shifted_rightdiagonalterm pfc_right_coefficient_shifted_rightdiagonalterm. (((pfc_index_coefficient_shifted_rightdiagonal)+pfc_complement_coefficient_shifted_rightdiagonalterm=(t+i)) /\ ((((((exists pfa_gap_coefficient_shifted_rightdiagonaltermleftinside. pfa_gap_coefficient_shifted_rightdiagonaltermleftinside + S (pfc_index_coefficient_shifted_rightdiagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_shifted_rightdiagonaltermleftentry. ff_h_pfp_coefficient_shifted_rightdiagonaltermleftentry + S (pfc_left_coefficient_shifted_rightdiagonalterm) = S ((S (pfc_index_coefficient_shifted_rightdiagonal)) * ac)) /\ exists ff_q_pfp_coefficient_shifted_rightdiagonaltermleftentry. ab = ff_q_pfp_coefficient_shifted_rightdiagonaltermleftentry * S ((S (pfc_index_coefficient_shifted_rightdiagonal)) * ac) + (pfc_left_coefficient_shifted_rightdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_shifted_rightdiagonaltermleftoutside. pfc_gap_coefficient_shifted_rightdiagonaltermleftoutside+(L)=(pfc_index_coefficient_shifted_rightdiagonal)) /\ (((pfc_left_coefficient_shifted_rightdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_shifted_rightdiagonaltermrightinside. pfa_gap_coefficient_shifted_rightdiagonaltermrightinside + S (pfc_complement_coefficient_shifted_rightdiagonalterm) = (t+M)) /\ ((((exists ff_h_pfp_coefficient_shifted_rightdiagonaltermrightentry. ff_h_pfp_coefficient_shifted_rightdiagonaltermrightentry + S (pfc_right_coefficient_shifted_rightdiagonalterm) = S ((S (pfc_complement_coefficient_shifted_rightdiagonalterm)) * BC)) /\ exists ff_q_pfp_coefficient_shifted_rightdiagonaltermrightentry. BB = ff_q_pfp_coefficient_shifted_rightdiagonaltermrightentry * S ((S (pfc_complement_coefficient_shifted_rightdiagonalterm)) * BC) + (pfc_right_coefficient_shifted_rightdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_shifted_rightdiagonaltermrightoutside. pfc_gap_coefficient_shifted_rightdiagonaltermrightoutside+(t+M)=(pfc_complement_coefficient_shifted_rightdiagonalterm)) /\ (((pfc_right_coefficient_shifted_rightdiagonalterm)=0))))) /\ (((pfc_value_coefficient_shifted_rightdiagonal)=pfc_left_coefficient_shifted_rightdiagonalterm*pfc_right_coefficient_shifted_rightdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_shifted_rightsum fs_v_pfc_coefficient_shifted_rightsum. ((((exists fs_h_pfc_coefficient_shifted_rightsum_body_start. fs_h_pfc_coefficient_shifted_rightsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_shifted_rightsum)) /\ exists fs_q_pfc_coefficient_shifted_rightsum_body_start. fs_u_pfc_coefficient_shifted_rightsum = fs_q_pfc_coefficient_shifted_rightsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_shifted_rightsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_shifted_rightsum_body_terminal. fs_h_pfc_coefficient_shifted_rightsum_body_terminal + S (pfc_natural_sum_coefficient_shifted_right) = S ((S (S (t+i))) * fs_v_pfc_coefficient_shifted_rightsum)) /\ exists fs_q_pfc_coefficient_shifted_rightsum_body_terminal. fs_u_pfc_coefficient_shifted_rightsum = fs_q_pfc_coefficient_shifted_rightsum_body_terminal * S ((S (S (t+i))) * fs_v_pfc_coefficient_shifted_rightsum) + (pfc_natural_sum_coefficient_shifted_right))) /\ forall fs_i_pfc_coefficient_shifted_rightsum_body_steps. (exists fs_lt_pfc_coefficient_shifted_rightsum_body_steps_bound. fs_lt_pfc_coefficient_shifted_rightsum_body_steps_bound + S fs_i_pfc_coefficient_shifted_rightsum_body_steps = S (t+i)) -> exists fs_a_pfc_coefficient_shifted_rightsum_body_steps fs_r_pfc_coefficient_shifted_rightsum_body_steps fs_s_pfc_coefficient_shifted_rightsum_body_steps. ((((exists fs_h_pfc_coefficient_shifted_rightsum_body_steps_summand. fs_h_pfc_coefficient_shifted_rightsum_body_steps_summand + S (fs_a_pfc_coefficient_shifted_rightsum_body_steps) = S ((S (fs_i_pfc_coefficient_shifted_rightsum_body_steps)) * pfc_terms_scale_coefficient_shifted_right)) /\ exists fs_q_pfc_coefficient_shifted_rightsum_body_steps_summand. pfc_terms_code_coefficient_shifted_right = fs_q_pfc_coefficient_shifted_rightsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_shifted_rightsum_body_steps)) * pfc_terms_scale_coefficient_shifted_right) + (fs_a_pfc_coefficient_shifted_rightsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_shifted_rightsum_body_steps_partial. fs_h_pfc_coefficient_shifted_rightsum_body_steps_partial + S (fs_r_pfc_coefficient_shifted_rightsum_body_steps) = S ((S (fs_i_pfc_coefficient_shifted_rightsum_body_steps)) * fs_v_pfc_coefficient_shifted_rightsum)) /\ exists fs_q_pfc_coefficient_shifted_rightsum_body_steps_partial. fs_u_pfc_coefficient_shifted_rightsum = fs_q_pfc_coefficient_shifted_rightsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_shifted_rightsum_body_steps)) * fs_v_pfc_coefficient_shifted_rightsum) + (fs_r_pfc_coefficient_shifted_rightsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_shifted_rightsum_body_steps_successor. fs_h_pfc_coefficient_shifted_rightsum_body_steps_successor + S (fs_s_pfc_coefficient_shifted_rightsum_body_steps) = S ((S (S fs_i_pfc_coefficient_shifted_rightsum_body_steps)) * fs_v_pfc_coefficient_shifted_rightsum)) /\ exists fs_q_pfc_coefficient_shifted_rightsum_body_steps_successor. fs_u_pfc_coefficient_shifted_rightsum = fs_q_pfc_coefficient_shifted_rightsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_shifted_rightsum_body_steps)) * fs_v_pfc_coefficient_shifted_rightsum) + (fs_s_pfc_coefficient_shifted_rightsum_body_steps))) /\ fs_s_pfc_coefficient_shifted_rightsum_body_steps = fs_r_pfc_coefficient_shifted_rightsum_body_steps + fs_a_pfc_coefficient_shifted_rightsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_shifted_rightresiduebound. pfa_gap_coefficient_shifted_rightresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_coefficient_shifted_rightresiduecongruence pfa_offset_right_coefficient_shifted_rightresiduecongruence. (pfc_natural_sum_coefficient_shifted_right) + (p) * pfa_offset_left_coefficient_shifted_rightresiduecongruence = (r) + (p) * pfa_offset_right_coefficient_shifted_rightresiduecongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro BB
  9. intro BC
  10. intro t
  11. intro i
  12. intro r
  13. intro hpad
  14. intro hc
  15. cases hc
  16. cases hc_witness
  17. cases hc_witness_witness
  18. cases hc_witness_witness_witness
  19. cases hc_witness_witness_witness_right
  20. have hd : exists eb ec. forall pfc_index_coefficient_padded_diagonal_right. (exists pfa_gap_coefficient_padded_diagonal_rightbound. pfa_gap_coefficient_padded_diagonal_rightbound + S (pfc_index_coefficient_padded_diagonal_right) = (S (t+i))) -> exists pfc_value_coefficient_padded_diagonal_right. ((((exists ff_h_pfp_coefficient_padded_diagonal_rightentry. ff_h_pfp_coefficient_padded_diagonal_rightentry + S (pfc_value_coefficient_padded_diagonal_right) = S ((S (pfc_index_coefficient_padded_diagonal_right)) * ec)) /\ exists ff_q_pfp_coefficient_padded_diagonal_rightentry. eb = ff_q_pfp_coefficient_padded_diagonal_rightentry * S ((S (pfc_index_coefficient_padded_diagonal_right)) * ec) + (pfc_value_coefficient_padded_diagonal_right))) /\ ((exists pfc_complement_coefficient_padded_diagonal_rightterm pfc_left_coefficient_padded_diagonal_rightterm pfc_right_coefficient_padded_diagonal_rightterm. (((pfc_index_coefficient_padded_diagonal_right)+pfc_complement_coefficient_padded_diagonal_rightterm=(t+i)) /\ ((((((exists pfa_gap_coefficient_padded_diagonal_righttermleftinside. pfa_gap_coefficient_padded_diagonal_righttermleftinside + S (pfc_index_coefficient_padded_diagonal_right) = (L)) /\ ((((exists ff_h_pfp_coefficient_padded_diagonal_righttermleftentry. ff_h_pfp_coefficient_padded_diagonal_righttermleftentry + S (pfc_left_coefficient_padded_diagonal_rightterm) = S ((S (pfc_index_coefficient_padded_diagonal_right)) * ac)) /\ exists ff_q_pfp_coefficient_padded_diagonal_righttermleftentry. ab = ff_q_pfp_coefficient_padded_diagonal_righttermleftentry * S ((S (pfc_index_coefficient_padded_diagonal_right)) * ac) + (pfc_left_coefficient_padded_diagonal_rightterm)))))) \/ (((exists pfc_gap_coefficient_padded_diagonal_righttermleftoutside. pfc_gap_coefficient_padded_diagonal_righttermleftoutside+(L)=(pfc_index_coefficient_padded_diagonal_right)) /\ (((pfc_left_coefficient_padded_diagonal_rightterm)=0))))) /\ ((((((exists pfa_gap_coefficient_padded_diagonal_righttermrightinside. pfa_gap_coefficient_padded_diagonal_righttermrightinside + S (pfc_complement_coefficient_padded_diagonal_rightterm) = (t+M)) /\ ((((exists ff_h_pfp_coefficient_padded_diagonal_righttermrightentry. ff_h_pfp_coefficient_padded_diagonal_righttermrightentry + S (pfc_right_coefficient_padded_diagonal_rightterm) = S ((S (pfc_complement_coefficient_padded_diagonal_rightterm)) * BC)) /\ exists ff_q_pfp_coefficient_padded_diagonal_righttermrightentry. BB = ff_q_pfp_coefficient_padded_diagonal_righttermrightentry * S ((S (pfc_complement_coefficient_padded_diagonal_rightterm)) * BC) + (pfc_right_coefficient_padded_diagonal_rightterm)))))) \/ (((exists pfc_gap_coefficient_padded_diagonal_righttermrightoutside. pfc_gap_coefficient_padded_diagonal_righttermrightoutside+(t+M)=(pfc_complement_coefficient_padded_diagonal_rightterm)) /\ (((pfc_right_coefficient_padded_diagonal_rightterm)=0))))) /\ (((pfc_value_coefficient_padded_diagonal_right)=pfc_left_coefficient_padded_diagonal_rightterm*pfc_right_coefficient_padded_diagonal_rightterm))))))))))
  21. specialize polynomial_diagonal_prefix_exists (ab)
  22. specialize polynomial_diagonal_prefix_exists (ac)
  23. specialize polynomial_diagonal_prefix_exists (L)
  24. specialize polynomial_diagonal_prefix_exists (BB)
  25. specialize polynomial_diagonal_prefix_exists (BC)
  26. specialize polynomial_diagonal_prefix_exists (t+M)
  27. specialize polynomial_diagonal_prefix_exists (t+i)
  28. apply polynomial_diagonal_prefix_exists
  29. cases hd
  30. cases hd_witness
  31. have hs : exists n. exists fs_u_pfc_coefficient_padded_sum_right fs_v_pfc_coefficient_padded_sum_right. ((((exists fs_h_pfc_coefficient_padded_sum_right_body_start. fs_h_pfc_coefficient_padded_sum_right_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_padded_sum_right)) /\ exists fs_q_pfc_coefficient_padded_sum_right_body_start. fs_u_pfc_coefficient_padded_sum_right = fs_q_pfc_coefficient_padded_sum_right_body_start * S ((S (0)) * fs_v_pfc_coefficient_padded_sum_right) + (0))) /\ ((((exists fs_h_pfc_coefficient_padded_sum_right_body_terminal. fs_h_pfc_coefficient_padded_sum_right_body_terminal + S (n) = S ((S (S (t+i))) * fs_v_pfc_coefficient_padded_sum_right)) /\ exists fs_q_pfc_coefficient_padded_sum_right_body_terminal. fs_u_pfc_coefficient_padded_sum_right = fs_q_pfc_coefficient_padded_sum_right_body_terminal * S ((S (S (t+i))) * fs_v_pfc_coefficient_padded_sum_right) + (n))) /\ forall fs_i_pfc_coefficient_padded_sum_right_body_steps. (exists fs_lt_pfc_coefficient_padded_sum_right_body_steps_bound. fs_lt_pfc_coefficient_padded_sum_right_body_steps_bound + S fs_i_pfc_coefficient_padded_sum_right_body_steps = S (t+i)) -> exists fs_a_pfc_coefficient_padded_sum_right_body_steps fs_r_pfc_coefficient_padded_sum_right_body_steps fs_s_pfc_coefficient_padded_sum_right_body_steps. ((((exists fs_h_pfc_coefficient_padded_sum_right_body_steps_summand. fs_h_pfc_coefficient_padded_sum_right_body_steps_summand + S (fs_a_pfc_coefficient_padded_sum_right_body_steps) = S ((S (fs_i_pfc_coefficient_padded_sum_right_body_steps)) * x4)) /\ exists fs_q_pfc_coefficient_padded_sum_right_body_steps_summand. x3 = fs_q_pfc_coefficient_padded_sum_right_body_steps_summand * S ((S (fs_i_pfc_coefficient_padded_sum_right_body_steps)) * x4) + (fs_a_pfc_coefficient_padded_sum_right_body_steps))) /\ ((((exists fs_h_pfc_coefficient_padded_sum_right_body_steps_partial. fs_h_pfc_coefficient_padded_sum_right_body_steps_partial + S (fs_r_pfc_coefficient_padded_sum_right_body_steps) = S ((S (fs_i_pfc_coefficient_padded_sum_right_body_steps)) * fs_v_pfc_coefficient_padded_sum_right)) /\ exists fs_q_pfc_coefficient_padded_sum_right_body_steps_partial. fs_u_pfc_coefficient_padded_sum_right = fs_q_pfc_coefficient_padded_sum_right_body_steps_partial * S ((S (fs_i_pfc_coefficient_padded_sum_right_body_steps)) * fs_v_pfc_coefficient_padded_sum_right) + (fs_r_pfc_coefficient_padded_sum_right_body_steps))) /\ ((((exists fs_h_pfc_coefficient_padded_sum_right_body_steps_successor. fs_h_pfc_coefficient_padded_sum_right_body_steps_successor + S (fs_s_pfc_coefficient_padded_sum_right_body_steps) = S ((S (S fs_i_pfc_coefficient_padded_sum_right_body_steps)) * fs_v_pfc_coefficient_padded_sum_right)) /\ exists fs_q_pfc_coefficient_padded_sum_right_body_steps_successor. fs_u_pfc_coefficient_padded_sum_right = fs_q_pfc_coefficient_padded_sum_right_body_steps_successor * S ((S (S fs_i_pfc_coefficient_padded_sum_right_body_steps)) * fs_v_pfc_coefficient_padded_sum_right) + (fs_s_pfc_coefficient_padded_sum_right_body_steps))) /\ fs_s_pfc_coefficient_padded_sum_right_body_steps = fs_r_pfc_coefficient_padded_sum_right_body_steps + fs_a_pfc_coefficient_padded_sum_right_body_steps)))))
  32. specialize beta_sum_exists (x3)
  33. specialize beta_sum_exists (x4)
  34. specialize beta_sum_exists (S (t+i))
  35. apply beta_sum_exists
  36. cases hs
  37. have hdata : ((forall mdr_i_pfp_coefficient_diagonal_equal mdr_a_pfp_coefficient_diagonal_equal. (exists mdr_gap_pfp_coefficient_diagonal_equalb. mdr_gap_pfp_coefficient_diagonal_equalb + S (mdr_i_pfp_coefficient_diagonal_equal) = (S i)) -> (((exists ff_h_mdr_pfp_coefficient_diagonal_equalo. ff_h_mdr_pfp_coefficient_diagonal_equalo + S (mdr_a_pfp_coefficient_diagonal_equal) = S ((S (mdr_i_pfp_coefficient_diagonal_equal)) * x1)) /\ exists ff_q_mdr_pfp_coefficient_diagonal_equalo. x = ff_q_mdr_pfp_coefficient_diagonal_equalo * S ((S (mdr_i_pfp_coefficient_diagonal_equal)) * x1) + (mdr_a_pfp_coefficient_diagonal_equal))) -> (((exists ff_h_mdr_pfp_coefficient_diagonal_equaln. ff_h_mdr_pfp_coefficient_diagonal_equaln + S (mdr_a_pfp_coefficient_diagonal_equal) = S ((S (mdr_i_pfp_coefficient_diagonal_equal)) * x4)) /\ exists ff_q_mdr_pfp_coefficient_diagonal_equaln. x3 = ff_q_mdr_pfp_coefficient_diagonal_equaln * S ((S (mdr_i_pfp_coefficient_diagonal_equal)) * x4) + (mdr_a_pfp_coefficient_diagonal_equal)))) /\ ((forall pfpad_tail_index_coefficient_diagonal_tail. (exists pfa_gap_coefficient_diagonal_tailbound. pfa_gap_coefficient_diagonal_tailbound + S (pfpad_tail_index_coefficient_diagonal_tail) = (t)) -> (((exists ff_h_pfp_coefficient_diagonal_tailzero. ff_h_pfp_coefficient_diagonal_tailzero + S (0) = S ((S ((S i)+pfpad_tail_index_coefficient_diagonal_tail)) * x4)) /\ exists ff_q_pfp_coefficient_diagonal_tailzero. x3 = ff_q_pfp_coefficient_diagonal_tailzero * S ((S ((S i)+pfpad_tail_index_coefficient_diagonal_tail)) * x4) + (0))))))
  38. specialize polynomial_diagonal_left_padding_right (ab)
  39. specialize polynomial_diagonal_left_padding_right (ac)
  40. specialize polynomial_diagonal_left_padding_right (L)
  41. specialize polynomial_diagonal_left_padding_right (bb)
  42. specialize polynomial_diagonal_left_padding_right (bc)
  43. specialize polynomial_diagonal_left_padding_right (M)
  44. specialize polynomial_diagonal_left_padding_right (BB)
  45. specialize polynomial_diagonal_left_padding_right (BC)
  46. specialize polynomial_diagonal_left_padding_right (t)
  47. specialize polynomial_diagonal_left_padding_right (i)
  48. specialize polynomial_diagonal_left_padding_right (x)
  49. specialize polynomial_diagonal_left_padding_right (x1)
  50. specialize polynomial_diagonal_left_padding_right (x3)
  51. specialize polynomial_diagonal_left_padding_right (x4)
  52. apply polynomial_diagonal_left_padding_right
  53. exact hpad
  54. exact hc_witness_witness_witness_left
  55. exact hd_witness_witness
  56. have heq : x5=x2
  57. cases hdata
  58. specialize polynomial_zero_tail_natural_sum_invariant (x)
  59. specialize polynomial_zero_tail_natural_sum_invariant (x1)
  60. specialize polynomial_zero_tail_natural_sum_invariant (x3)
  61. specialize polynomial_zero_tail_natural_sum_invariant (x4)
  62. specialize polynomial_zero_tail_natural_sum_invariant (S i)
  63. specialize polynomial_zero_tail_natural_sum_invariant (t)
  64. specialize polynomial_zero_tail_natural_sum_invariant (x2)
  65. specialize polynomial_zero_tail_natural_sum_invariant (x5)
  66. apply polynomial_zero_tail_natural_sum_invariant
  67. exact hdata_left
  68. exact hdata_right
  69. exact hc_witness_witness_witness_right_left
  70. have hlength : S i+t=S (t+i)
  71. simp [add_succ_left,add_comm]
  72. rewrite hlength
  73. rewrite hlength
  74. rewrite hlength
  75. exact hs_witness
  76. exists x3
  77. exists x4
  78. exists x2
  79. split
  80. exact hd_witness_witness
  81. split
  82. rewrite heq at hs_witness
  83. rewrite heq at hs_witness
  84. exact hs_witness
  85. exact hc_witness_witness_witness_right_right
prime_field_polynomial_convolution_left_padding_nonempty_right · unchanged support, not a new admission
forall p ab ac L bb bc M cb cc N BB BC t CB CC K. (~(p=0)) -> (~(L=0)) -> (~(M=0)) -> (((forall pfp_repeat_index_nonempty_factor_padding_rightzeros. (exists pfa_gap_nonempty_factor_padding_rightzerosindex. pfa_gap_nonempty_factor_padding_rightzerosindex + S (pfp_repeat_index_nonempty_factor_padding_rightzeros) = (t)) -> (((exists ff_h_pfp_nonempty_factor_padding_rightzerosentry. ff_h_pfp_nonempty_factor_padding_rightzerosentry + S (0) = S ((S (pfp_repeat_index_nonempty_factor_padding_rightzeros)) * BC)) /\ exists ff_q_pfp_nonempty_factor_padding_rightzerosentry. BB = ff_q_pfp_nonempty_factor_padding_rightzerosentry * S ((S (pfp_repeat_index_nonempty_factor_padding_rightzeros)) * BC) + (0)))) /\ ((forall pfrep_index_nonempty_factor_padding_right pfrep_value_nonempty_factor_padding_right. (exists pfa_gap_nonempty_factor_padding_rightbound. pfa_gap_nonempty_factor_padding_rightbound + S (pfrep_index_nonempty_factor_padding_right) = (M)) -> (((exists ff_h_pfp_nonempty_factor_padding_rightinput. ff_h_pfp_nonempty_factor_padding_rightinput + S (pfrep_value_nonempty_factor_padding_right) = S ((S (pfrep_index_nonempty_factor_padding_right)) * bc)) /\ exists ff_q_pfp_nonempty_factor_padding_rightinput. bb = ff_q_pfp_nonempty_factor_padding_rightinput * S ((S (pfrep_index_nonempty_factor_padding_right)) * bc) + (pfrep_value_nonempty_factor_padding_right))) -> (((exists ff_h_pfp_nonempty_factor_padding_rightoutput. ff_h_pfp_nonempty_factor_padding_rightoutput + S (pfrep_value_nonempty_factor_padding_right) = S ((S ((t)+pfrep_index_nonempty_factor_padding_right)) * BC)) /\ exists ff_q_pfp_nonempty_factor_padding_rightoutput. BB = ff_q_pfp_nonempty_factor_padding_rightoutput * S ((S ((t)+pfrep_index_nonempty_factor_padding_right)) * BC) + (pfrep_value_nonempty_factor_padding_right))))))) -> (((forall fom_index_pfp_nonempty_old_rightleft. (exists fom_gap_pfp_nonempty_old_rightleft_index_bound. fom_gap_pfp_nonempty_old_rightleft_index_bound + S (fom_index_pfp_nonempty_old_rightleft) = L) -> exists fom_value_pfp_nonempty_old_rightleft. ((((exists fom_beta_height_pfp_nonempty_old_rightleft_entry. fom_beta_height_pfp_nonempty_old_rightleft_entry + S (fom_value_pfp_nonempty_old_rightleft) = S ((S (fom_index_pfp_nonempty_old_rightleft)) * ac)) /\ exists fom_beta_quotient_pfp_nonempty_old_rightleft_entry. ab = fom_beta_quotient_pfp_nonempty_old_rightleft_entry * S ((S (fom_index_pfp_nonempty_old_rightleft)) * ac) + (fom_value_pfp_nonempty_old_rightleft))) /\ (exists fom_gap_pfp_nonempty_old_rightleft_value_bound. fom_gap_pfp_nonempty_old_rightleft_value_bound + S (fom_value_pfp_nonempty_old_rightleft) = p))) /\ (((forall fom_index_pfp_nonempty_old_rightright. (exists fom_gap_pfp_nonempty_old_rightright_index_bound. fom_gap_pfp_nonempty_old_rightright_index_bound + S (fom_index_pfp_nonempty_old_rightright) = M) -> exists fom_value_pfp_nonempty_old_rightright. ((((exists fom_beta_height_pfp_nonempty_old_rightright_entry. fom_beta_height_pfp_nonempty_old_rightright_entry + S (fom_value_pfp_nonempty_old_rightright) = S ((S (fom_index_pfp_nonempty_old_rightright)) * bc)) /\ exists fom_beta_quotient_pfp_nonempty_old_rightright_entry. bb = fom_beta_quotient_pfp_nonempty_old_rightright_entry * S ((S (fom_index_pfp_nonempty_old_rightright)) * bc) + (fom_value_pfp_nonempty_old_rightright))) /\ (exists fom_gap_pfp_nonempty_old_rightright_value_bound. fom_gap_pfp_nonempty_old_rightright_value_bound + S (fom_value_pfp_nonempty_old_rightright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_nonempty_old_rightcoefficients. (exists pfa_gap_nonempty_old_rightcoefficientsbound. pfa_gap_nonempty_old_rightcoefficientsbound + S (pfc_index_nonempty_old_rightcoefficients) = (N)) -> exists pfc_value_nonempty_old_rightcoefficients. ((((exists ff_h_pfp_nonempty_old_rightcoefficientsentry. ff_h_pfp_nonempty_old_rightcoefficientsentry + S (pfc_value_nonempty_old_rightcoefficients) = S ((S (pfc_index_nonempty_old_rightcoefficients)) * cc)) /\ exists ff_q_pfp_nonempty_old_rightcoefficientsentry. cb = ff_q_pfp_nonempty_old_rightcoefficientsentry * S ((S (pfc_index_nonempty_old_rightcoefficients)) * cc) + (pfc_value_nonempty_old_rightcoefficients))) /\ ((exists pfc_terms_code_nonempty_old_rightcoefficientscoefficient pfc_terms_scale_nonempty_old_rightcoefficientscoefficient pfc_natural_sum_nonempty_old_rightcoefficientscoefficient. ((forall pfc_index_nonempty_old_rightcoefficientscoefficientdiagonal. (exists pfa_gap_nonempty_old_rightcoefficientscoefficientdiagonalbound. pfa_gap_nonempty_old_rightcoefficientscoefficientdiagonalbound + S (pfc_index_nonempty_old_rightcoefficientscoefficientdiagonal) = (S (pfc_index_nonempty_old_rightcoefficients))) -> exists pfc_value_nonempty_old_rightcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_nonempty_old_rightcoefficientscoefficientdiagonalentry. ff_h_pfp_nonempty_old_rightcoefficientscoefficientdiagonalentry + S (pfc_value_nonempty_old_rightcoefficientscoefficientdiagonal) = S ((S (pfc_index_nonempty_old_rightcoefficientscoefficientdiagonal)) * pfc_terms_scale_nonempty_old_rightcoefficientscoefficient)) /\ exists ff_q_pfp_nonempty_old_rightcoefficientscoefficientdiagonalentry. pfc_terms_code_nonempty_old_rightcoefficientscoefficient = ff_q_pfp_nonempty_old_rightcoefficientscoefficientdiagonalentry * S ((S (pfc_index_nonempty_old_rightcoefficientscoefficientdiagonal)) * pfc_terms_scale_nonempty_old_rightcoefficientscoefficient) + (pfc_value_nonempty_old_rightcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_nonempty_old_rightcoefficientscoefficientdiagonalterm pfc_left_nonempty_old_rightcoefficientscoefficientdiagonalterm pfc_right_nonempty_old_rightcoefficientscoefficientdiagonalterm. (((pfc_index_nonempty_old_rightcoefficientscoefficientdiagonal)+pfc_complement_nonempty_old_rightcoefficientscoefficientdiagonalterm=(pfc_index_nonempty_old_rightcoefficients)) /\ ((((((exists pfa_gap_nonempty_old_rightcoefficientscoefficientdiagonaltermleftinside. pfa_gap_nonempty_old_rightcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_nonempty_old_rightcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_nonempty_old_rightcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_nonempty_old_rightcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_nonempty_old_rightcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_nonempty_old_rightcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_nonempty_old_rightcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_nonempty_old_rightcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_nonempty_old_rightcoefficientscoefficientdiagonal)) * ac) + (pfc_left_nonempty_old_rightcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_old_rightcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_nonempty_old_rightcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_nonempty_old_rightcoefficientscoefficientdiagonal)) /\ (((pfc_left_nonempty_old_rightcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_nonempty_old_rightcoefficientscoefficientdiagonaltermrightinside. pfa_gap_nonempty_old_rightcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_nonempty_old_rightcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_nonempty_old_rightcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_nonempty_old_rightcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_nonempty_old_rightcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_nonempty_old_rightcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_nonempty_old_rightcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_nonempty_old_rightcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_nonempty_old_rightcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_nonempty_old_rightcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_old_rightcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_nonempty_old_rightcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_nonempty_old_rightcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_nonempty_old_rightcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_nonempty_old_rightcoefficientscoefficientdiagonal)=pfc_left_nonempty_old_rightcoefficientscoefficientdiagonalterm*pfc_right_nonempty_old_rightcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_nonempty_old_rightcoefficientscoefficientsum fs_v_pfc_nonempty_old_rightcoefficientscoefficientsum. ((((exists fs_h_pfc_nonempty_old_rightcoefficientscoefficientsum_body_start. fs_h_pfc_nonempty_old_rightcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_nonempty_old_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_old_rightcoefficientscoefficientsum_body_start. fs_u_pfc_nonempty_old_rightcoefficientscoefficientsum = fs_q_pfc_nonempty_old_rightcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_nonempty_old_rightcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_nonempty_old_rightcoefficientscoefficientsum_body_terminal. fs_h_pfc_nonempty_old_rightcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_nonempty_old_rightcoefficientscoefficient) = S ((S (S (pfc_index_nonempty_old_rightcoefficients))) * fs_v_pfc_nonempty_old_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_old_rightcoefficientscoefficientsum_body_terminal. fs_u_pfc_nonempty_old_rightcoefficientscoefficientsum = fs_q_pfc_nonempty_old_rightcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_nonempty_old_rightcoefficients))) * fs_v_pfc_nonempty_old_rightcoefficientscoefficientsum) + (pfc_natural_sum_nonempty_old_rightcoefficientscoefficient))) /\ forall fs_i_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps = S (pfc_index_nonempty_old_rightcoefficients)) -> exists fs_a_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps fs_r_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps fs_s_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_nonempty_old_rightcoefficientscoefficient)) /\ exists fs_q_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_nonempty_old_rightcoefficientscoefficient = fs_q_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_nonempty_old_rightcoefficientscoefficient) + (fs_a_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_old_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_nonempty_old_rightcoefficientscoefficientsum = fs_q_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_old_rightcoefficientscoefficientsum) + (fs_r_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_old_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_nonempty_old_rightcoefficientscoefficientsum = fs_q_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_old_rightcoefficientscoefficientsum) + (fs_s_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps = fs_r_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps + fs_a_pfc_nonempty_old_rightcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_nonempty_old_rightcoefficientscoefficientresiduebound. pfa_gap_nonempty_old_rightcoefficientscoefficientresiduebound + S (pfc_value_nonempty_old_rightcoefficients) = (p)) /\ ((exists pfa_offset_left_nonempty_old_rightcoefficientscoefficientresiduecongruence pfa_offset_right_nonempty_old_rightcoefficientscoefficientresiduecongruence. (pfc_natural_sum_nonempty_old_rightcoefficientscoefficient) + (p) * pfa_offset_left_nonempty_old_rightcoefficientscoefficientresiduecongruence = (pfc_value_nonempty_old_rightcoefficients) + (p) * pfa_offset_right_nonempty_old_rightcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_nonempty_new_rightleft. (exists fom_gap_pfp_nonempty_new_rightleft_index_bound. fom_gap_pfp_nonempty_new_rightleft_index_bound + S (fom_index_pfp_nonempty_new_rightleft) = L) -> exists fom_value_pfp_nonempty_new_rightleft. ((((exists fom_beta_height_pfp_nonempty_new_rightleft_entry. fom_beta_height_pfp_nonempty_new_rightleft_entry + S (fom_value_pfp_nonempty_new_rightleft) = S ((S (fom_index_pfp_nonempty_new_rightleft)) * ac)) /\ exists fom_beta_quotient_pfp_nonempty_new_rightleft_entry. ab = fom_beta_quotient_pfp_nonempty_new_rightleft_entry * S ((S (fom_index_pfp_nonempty_new_rightleft)) * ac) + (fom_value_pfp_nonempty_new_rightleft))) /\ (exists fom_gap_pfp_nonempty_new_rightleft_value_bound. fom_gap_pfp_nonempty_new_rightleft_value_bound + S (fom_value_pfp_nonempty_new_rightleft) = p))) /\ (((forall fom_index_pfp_nonempty_new_rightright. (exists fom_gap_pfp_nonempty_new_rightright_index_bound. fom_gap_pfp_nonempty_new_rightright_index_bound + S (fom_index_pfp_nonempty_new_rightright) = t+M) -> exists fom_value_pfp_nonempty_new_rightright. ((((exists fom_beta_height_pfp_nonempty_new_rightright_entry. fom_beta_height_pfp_nonempty_new_rightright_entry + S (fom_value_pfp_nonempty_new_rightright) = S ((S (fom_index_pfp_nonempty_new_rightright)) * BC)) /\ exists fom_beta_quotient_pfp_nonempty_new_rightright_entry. BB = fom_beta_quotient_pfp_nonempty_new_rightright_entry * S ((S (fom_index_pfp_nonempty_new_rightright)) * BC) + (fom_value_pfp_nonempty_new_rightright))) /\ (exists fom_gap_pfp_nonempty_new_rightright_value_bound. fom_gap_pfp_nonempty_new_rightright_value_bound + S (fom_value_pfp_nonempty_new_rightright) = p))) /\ (((((((L)=0 \/ (t+M)=0) /\ (((K)=0)))) \/ (((~((L)=0)) /\ (((~((t+M)=0)) /\ (((L)+(t+M)=S (K)))))))) /\ ((forall pfc_index_nonempty_new_rightcoefficients. (exists pfa_gap_nonempty_new_rightcoefficientsbound. pfa_gap_nonempty_new_rightcoefficientsbound + S (pfc_index_nonempty_new_rightcoefficients) = (K)) -> exists pfc_value_nonempty_new_rightcoefficients. ((((exists ff_h_pfp_nonempty_new_rightcoefficientsentry. ff_h_pfp_nonempty_new_rightcoefficientsentry + S (pfc_value_nonempty_new_rightcoefficients) = S ((S (pfc_index_nonempty_new_rightcoefficients)) * CC)) /\ exists ff_q_pfp_nonempty_new_rightcoefficientsentry. CB = ff_q_pfp_nonempty_new_rightcoefficientsentry * S ((S (pfc_index_nonempty_new_rightcoefficients)) * CC) + (pfc_value_nonempty_new_rightcoefficients))) /\ ((exists pfc_terms_code_nonempty_new_rightcoefficientscoefficient pfc_terms_scale_nonempty_new_rightcoefficientscoefficient pfc_natural_sum_nonempty_new_rightcoefficientscoefficient. ((forall pfc_index_nonempty_new_rightcoefficientscoefficientdiagonal. (exists pfa_gap_nonempty_new_rightcoefficientscoefficientdiagonalbound. pfa_gap_nonempty_new_rightcoefficientscoefficientdiagonalbound + S (pfc_index_nonempty_new_rightcoefficientscoefficientdiagonal) = (S (pfc_index_nonempty_new_rightcoefficients))) -> exists pfc_value_nonempty_new_rightcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_nonempty_new_rightcoefficientscoefficientdiagonalentry. ff_h_pfp_nonempty_new_rightcoefficientscoefficientdiagonalentry + S (pfc_value_nonempty_new_rightcoefficientscoefficientdiagonal) = S ((S (pfc_index_nonempty_new_rightcoefficientscoefficientdiagonal)) * pfc_terms_scale_nonempty_new_rightcoefficientscoefficient)) /\ exists ff_q_pfp_nonempty_new_rightcoefficientscoefficientdiagonalentry. pfc_terms_code_nonempty_new_rightcoefficientscoefficient = ff_q_pfp_nonempty_new_rightcoefficientscoefficientdiagonalentry * S ((S (pfc_index_nonempty_new_rightcoefficientscoefficientdiagonal)) * pfc_terms_scale_nonempty_new_rightcoefficientscoefficient) + (pfc_value_nonempty_new_rightcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_nonempty_new_rightcoefficientscoefficientdiagonalterm pfc_left_nonempty_new_rightcoefficientscoefficientdiagonalterm pfc_right_nonempty_new_rightcoefficientscoefficientdiagonalterm. (((pfc_index_nonempty_new_rightcoefficientscoefficientdiagonal)+pfc_complement_nonempty_new_rightcoefficientscoefficientdiagonalterm=(pfc_index_nonempty_new_rightcoefficients)) /\ ((((((exists pfa_gap_nonempty_new_rightcoefficientscoefficientdiagonaltermleftinside. pfa_gap_nonempty_new_rightcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_nonempty_new_rightcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_nonempty_new_rightcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_nonempty_new_rightcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_nonempty_new_rightcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_nonempty_new_rightcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_nonempty_new_rightcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_nonempty_new_rightcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_nonempty_new_rightcoefficientscoefficientdiagonal)) * ac) + (pfc_left_nonempty_new_rightcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_new_rightcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_nonempty_new_rightcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_nonempty_new_rightcoefficientscoefficientdiagonal)) /\ (((pfc_left_nonempty_new_rightcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_nonempty_new_rightcoefficientscoefficientdiagonaltermrightinside. pfa_gap_nonempty_new_rightcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_nonempty_new_rightcoefficientscoefficientdiagonalterm) = (t+M)) /\ ((((exists ff_h_pfp_nonempty_new_rightcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_nonempty_new_rightcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_nonempty_new_rightcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_nonempty_new_rightcoefficientscoefficientdiagonalterm)) * BC)) /\ exists ff_q_pfp_nonempty_new_rightcoefficientscoefficientdiagonaltermrightentry. BB = ff_q_pfp_nonempty_new_rightcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_nonempty_new_rightcoefficientscoefficientdiagonalterm)) * BC) + (pfc_right_nonempty_new_rightcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_new_rightcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_nonempty_new_rightcoefficientscoefficientdiagonaltermrightoutside+(t+M)=(pfc_complement_nonempty_new_rightcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_nonempty_new_rightcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_nonempty_new_rightcoefficientscoefficientdiagonal)=pfc_left_nonempty_new_rightcoefficientscoefficientdiagonalterm*pfc_right_nonempty_new_rightcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_nonempty_new_rightcoefficientscoefficientsum fs_v_pfc_nonempty_new_rightcoefficientscoefficientsum. ((((exists fs_h_pfc_nonempty_new_rightcoefficientscoefficientsum_body_start. fs_h_pfc_nonempty_new_rightcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_nonempty_new_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_new_rightcoefficientscoefficientsum_body_start. fs_u_pfc_nonempty_new_rightcoefficientscoefficientsum = fs_q_pfc_nonempty_new_rightcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_nonempty_new_rightcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_nonempty_new_rightcoefficientscoefficientsum_body_terminal. fs_h_pfc_nonempty_new_rightcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_nonempty_new_rightcoefficientscoefficient) = S ((S (S (pfc_index_nonempty_new_rightcoefficients))) * fs_v_pfc_nonempty_new_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_new_rightcoefficientscoefficientsum_body_terminal. fs_u_pfc_nonempty_new_rightcoefficientscoefficientsum = fs_q_pfc_nonempty_new_rightcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_nonempty_new_rightcoefficients))) * fs_v_pfc_nonempty_new_rightcoefficientscoefficientsum) + (pfc_natural_sum_nonempty_new_rightcoefficientscoefficient))) /\ forall fs_i_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps = S (pfc_index_nonempty_new_rightcoefficients)) -> exists fs_a_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps fs_r_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps fs_s_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_nonempty_new_rightcoefficientscoefficient)) /\ exists fs_q_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_nonempty_new_rightcoefficientscoefficient = fs_q_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_nonempty_new_rightcoefficientscoefficient) + (fs_a_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_new_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_nonempty_new_rightcoefficientscoefficientsum = fs_q_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_new_rightcoefficientscoefficientsum) + (fs_r_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_new_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_nonempty_new_rightcoefficientscoefficientsum = fs_q_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_new_rightcoefficientscoefficientsum) + (fs_s_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps = fs_r_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps + fs_a_pfc_nonempty_new_rightcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_nonempty_new_rightcoefficientscoefficientresiduebound. pfa_gap_nonempty_new_rightcoefficientscoefficientresiduebound + S (pfc_value_nonempty_new_rightcoefficients) = (p)) /\ ((exists pfa_offset_left_nonempty_new_rightcoefficientscoefficientresiduecongruence pfa_offset_right_nonempty_new_rightcoefficientscoefficientresiduecongruence. (pfc_natural_sum_nonempty_new_rightcoefficientscoefficient) + (p) * pfa_offset_left_nonempty_new_rightcoefficientscoefficientresiduecongruence = (pfc_value_nonempty_new_rightcoefficients) + (p) * pfa_offset_right_nonempty_new_rightcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((K=t+N) /\ ((((forall pfp_repeat_index_nonempty_product_padding_rightzeros. (exists pfa_gap_nonempty_product_padding_rightzerosindex. pfa_gap_nonempty_product_padding_rightzerosindex + S (pfp_repeat_index_nonempty_product_padding_rightzeros) = (t)) -> (((exists ff_h_pfp_nonempty_product_padding_rightzerosentry. ff_h_pfp_nonempty_product_padding_rightzerosentry + S (0) = S ((S (pfp_repeat_index_nonempty_product_padding_rightzeros)) * CC)) /\ exists ff_q_pfp_nonempty_product_padding_rightzerosentry. CB = ff_q_pfp_nonempty_product_padding_rightzerosentry * S ((S (pfp_repeat_index_nonempty_product_padding_rightzeros)) * CC) + (0)))) /\ ((forall pfrep_index_nonempty_product_padding_right pfrep_value_nonempty_product_padding_right. (exists pfa_gap_nonempty_product_padding_rightbound. pfa_gap_nonempty_product_padding_rightbound + S (pfrep_index_nonempty_product_padding_right) = (N)) -> (((exists ff_h_pfp_nonempty_product_padding_rightinput. ff_h_pfp_nonempty_product_padding_rightinput + S (pfrep_value_nonempty_product_padding_right) = S ((S (pfrep_index_nonempty_product_padding_right)) * cc)) /\ exists ff_q_pfp_nonempty_product_padding_rightinput. cb = ff_q_pfp_nonempty_product_padding_rightinput * S ((S (pfrep_index_nonempty_product_padding_right)) * cc) + (pfrep_value_nonempty_product_padding_right))) -> (((exists ff_h_pfp_nonempty_product_padding_rightoutput. ff_h_pfp_nonempty_product_padding_rightoutput + S (pfrep_value_nonempty_product_padding_right) = S ((S ((t)+pfrep_index_nonempty_product_padding_right)) * CC)) /\ exists ff_q_pfp_nonempty_product_padding_rightoutput. CB = ff_q_pfp_nonempty_product_padding_rightoutput * S ((S ((t)+pfrep_index_nonempty_product_padding_right)) * CC) + (pfrep_value_nonempty_product_padding_right))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro cb
  9. intro cc
  10. intro N
  11. intro BB
  12. intro BC
  13. intro t
  14. intro CB
  15. intro CC
  16. intro K
  17. intro hp
  18. intro hL
  19. intro hM
  20. intro hpad
  21. intro hc
  22. intro hn
  23. cases hc
  24. cases hc_right
  25. cases hc_right_right
  26. cases hn
  27. cases hn_right
  28. cases hn_right_right
  29. have hlength : K=t+N
  30. specialize polynomial_product_length_left_padding_right (L)
  31. specialize polynomial_product_length_left_padding_right (M)
  32. specialize polynomial_product_length_left_padding_right (N)
  33. specialize polynomial_product_length_left_padding_right (t)
  34. specialize polynomial_product_length_left_padding_right (K)
  35. apply polynomial_product_length_left_padding_right
  36. exact hc_right_right_left
  37. exact hL
  38. exact hM
  39. exact hn_right_right_left
  40. split
  41. exact hlength
  42. split
  43. intro i
  44. intro hi
  45. have hv : exists r. ((((exists ff_h_pfp_nonempty_zero_entry_right. ff_h_pfp_nonempty_zero_entry_right + S (r) = S ((S (i)) * CC)) /\ exists ff_q_pfp_nonempty_zero_entry_right. CB = ff_q_pfp_nonempty_zero_entry_right * S ((S (i)) * CC) + (r))) /\ ((exists pfc_terms_code_nonempty_zero_coefficient_right pfc_terms_scale_nonempty_zero_coefficient_right pfc_natural_sum_nonempty_zero_coefficient_right. ((forall pfc_index_nonempty_zero_coefficient_rightdiagonal. (exists pfa_gap_nonempty_zero_coefficient_rightdiagonalbound. pfa_gap_nonempty_zero_coefficient_rightdiagonalbound + S (pfc_index_nonempty_zero_coefficient_rightdiagonal) = (S (i))) -> exists pfc_value_nonempty_zero_coefficient_rightdiagonal. ((((exists ff_h_pfp_nonempty_zero_coefficient_rightdiagonalentry. ff_h_pfp_nonempty_zero_coefficient_rightdiagonalentry + S (pfc_value_nonempty_zero_coefficient_rightdiagonal) = S ((S (pfc_index_nonempty_zero_coefficient_rightdiagonal)) * pfc_terms_scale_nonempty_zero_coefficient_right)) /\ exists ff_q_pfp_nonempty_zero_coefficient_rightdiagonalentry. pfc_terms_code_nonempty_zero_coefficient_right = ff_q_pfp_nonempty_zero_coefficient_rightdiagonalentry * S ((S (pfc_index_nonempty_zero_coefficient_rightdiagonal)) * pfc_terms_scale_nonempty_zero_coefficient_right) + (pfc_value_nonempty_zero_coefficient_rightdiagonal))) /\ ((exists pfc_complement_nonempty_zero_coefficient_rightdiagonalterm pfc_left_nonempty_zero_coefficient_rightdiagonalterm pfc_right_nonempty_zero_coefficient_rightdiagonalterm. (((pfc_index_nonempty_zero_coefficient_rightdiagonal)+pfc_complement_nonempty_zero_coefficient_rightdiagonalterm=(i)) /\ ((((((exists pfa_gap_nonempty_zero_coefficient_rightdiagonaltermleftinside. pfa_gap_nonempty_zero_coefficient_rightdiagonaltermleftinside + S (pfc_index_nonempty_zero_coefficient_rightdiagonal) = (L)) /\ ((((exists ff_h_pfp_nonempty_zero_coefficient_rightdiagonaltermleftentry. ff_h_pfp_nonempty_zero_coefficient_rightdiagonaltermleftentry + S (pfc_left_nonempty_zero_coefficient_rightdiagonalterm) = S ((S (pfc_index_nonempty_zero_coefficient_rightdiagonal)) * ac)) /\ exists ff_q_pfp_nonempty_zero_coefficient_rightdiagonaltermleftentry. ab = ff_q_pfp_nonempty_zero_coefficient_rightdiagonaltermleftentry * S ((S (pfc_index_nonempty_zero_coefficient_rightdiagonal)) * ac) + (pfc_left_nonempty_zero_coefficient_rightdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_zero_coefficient_rightdiagonaltermleftoutside. pfc_gap_nonempty_zero_coefficient_rightdiagonaltermleftoutside+(L)=(pfc_index_nonempty_zero_coefficient_rightdiagonal)) /\ (((pfc_left_nonempty_zero_coefficient_rightdiagonalterm)=0))))) /\ ((((((exists pfa_gap_nonempty_zero_coefficient_rightdiagonaltermrightinside. pfa_gap_nonempty_zero_coefficient_rightdiagonaltermrightinside + S (pfc_complement_nonempty_zero_coefficient_rightdiagonalterm) = (t+M)) /\ ((((exists ff_h_pfp_nonempty_zero_coefficient_rightdiagonaltermrightentry. ff_h_pfp_nonempty_zero_coefficient_rightdiagonaltermrightentry + S (pfc_right_nonempty_zero_coefficient_rightdiagonalterm) = S ((S (pfc_complement_nonempty_zero_coefficient_rightdiagonalterm)) * BC)) /\ exists ff_q_pfp_nonempty_zero_coefficient_rightdiagonaltermrightentry. BB = ff_q_pfp_nonempty_zero_coefficient_rightdiagonaltermrightentry * S ((S (pfc_complement_nonempty_zero_coefficient_rightdiagonalterm)) * BC) + (pfc_right_nonempty_zero_coefficient_rightdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_zero_coefficient_rightdiagonaltermrightoutside. pfc_gap_nonempty_zero_coefficient_rightdiagonaltermrightoutside+(t+M)=(pfc_complement_nonempty_zero_coefficient_rightdiagonalterm)) /\ (((pfc_right_nonempty_zero_coefficient_rightdiagonalterm)=0))))) /\ (((pfc_value_nonempty_zero_coefficient_rightdiagonal)=pfc_left_nonempty_zero_coefficient_rightdiagonalterm*pfc_right_nonempty_zero_coefficient_rightdiagonalterm))))))))))) /\ (((exists fs_u_pfc_nonempty_zero_coefficient_rightsum fs_v_pfc_nonempty_zero_coefficient_rightsum. ((((exists fs_h_pfc_nonempty_zero_coefficient_rightsum_body_start. fs_h_pfc_nonempty_zero_coefficient_rightsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_nonempty_zero_coefficient_rightsum)) /\ exists fs_q_pfc_nonempty_zero_coefficient_rightsum_body_start. fs_u_pfc_nonempty_zero_coefficient_rightsum = fs_q_pfc_nonempty_zero_coefficient_rightsum_body_start * S ((S (0)) * fs_v_pfc_nonempty_zero_coefficient_rightsum) + (0))) /\ ((((exists fs_h_pfc_nonempty_zero_coefficient_rightsum_body_terminal. fs_h_pfc_nonempty_zero_coefficient_rightsum_body_terminal + S (pfc_natural_sum_nonempty_zero_coefficient_right) = S ((S (S (i))) * fs_v_pfc_nonempty_zero_coefficient_rightsum)) /\ exists fs_q_pfc_nonempty_zero_coefficient_rightsum_body_terminal. fs_u_pfc_nonempty_zero_coefficient_rightsum = fs_q_pfc_nonempty_zero_coefficient_rightsum_body_terminal * S ((S (S (i))) * fs_v_pfc_nonempty_zero_coefficient_rightsum) + (pfc_natural_sum_nonempty_zero_coefficient_right))) /\ forall fs_i_pfc_nonempty_zero_coefficient_rightsum_body_steps. (exists fs_lt_pfc_nonempty_zero_coefficient_rightsum_body_steps_bound. fs_lt_pfc_nonempty_zero_coefficient_rightsum_body_steps_bound + S fs_i_pfc_nonempty_zero_coefficient_rightsum_body_steps = S (i)) -> exists fs_a_pfc_nonempty_zero_coefficient_rightsum_body_steps fs_r_pfc_nonempty_zero_coefficient_rightsum_body_steps fs_s_pfc_nonempty_zero_coefficient_rightsum_body_steps. ((((exists fs_h_pfc_nonempty_zero_coefficient_rightsum_body_steps_summand. fs_h_pfc_nonempty_zero_coefficient_rightsum_body_steps_summand + S (fs_a_pfc_nonempty_zero_coefficient_rightsum_body_steps) = S ((S (fs_i_pfc_nonempty_zero_coefficient_rightsum_body_steps)) * pfc_terms_scale_nonempty_zero_coefficient_right)) /\ exists fs_q_pfc_nonempty_zero_coefficient_rightsum_body_steps_summand. pfc_terms_code_nonempty_zero_coefficient_right = fs_q_pfc_nonempty_zero_coefficient_rightsum_body_steps_summand * S ((S (fs_i_pfc_nonempty_zero_coefficient_rightsum_body_steps)) * pfc_terms_scale_nonempty_zero_coefficient_right) + (fs_a_pfc_nonempty_zero_coefficient_rightsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_zero_coefficient_rightsum_body_steps_partial. fs_h_pfc_nonempty_zero_coefficient_rightsum_body_steps_partial + S (fs_r_pfc_nonempty_zero_coefficient_rightsum_body_steps) = S ((S (fs_i_pfc_nonempty_zero_coefficient_rightsum_body_steps)) * fs_v_pfc_nonempty_zero_coefficient_rightsum)) /\ exists fs_q_pfc_nonempty_zero_coefficient_rightsum_body_steps_partial. fs_u_pfc_nonempty_zero_coefficient_rightsum = fs_q_pfc_nonempty_zero_coefficient_rightsum_body_steps_partial * S ((S (fs_i_pfc_nonempty_zero_coefficient_rightsum_body_steps)) * fs_v_pfc_nonempty_zero_coefficient_rightsum) + (fs_r_pfc_nonempty_zero_coefficient_rightsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_zero_coefficient_rightsum_body_steps_successor. fs_h_pfc_nonempty_zero_coefficient_rightsum_body_steps_successor + S (fs_s_pfc_nonempty_zero_coefficient_rightsum_body_steps) = S ((S (S fs_i_pfc_nonempty_zero_coefficient_rightsum_body_steps)) * fs_v_pfc_nonempty_zero_coefficient_rightsum)) /\ exists fs_q_pfc_nonempty_zero_coefficient_rightsum_body_steps_successor. fs_u_pfc_nonempty_zero_coefficient_rightsum = fs_q_pfc_nonempty_zero_coefficient_rightsum_body_steps_successor * S ((S (S fs_i_pfc_nonempty_zero_coefficient_rightsum_body_steps)) * fs_v_pfc_nonempty_zero_coefficient_rightsum) + (fs_s_pfc_nonempty_zero_coefficient_rightsum_body_steps))) /\ fs_s_pfc_nonempty_zero_coefficient_rightsum_body_steps = fs_r_pfc_nonempty_zero_coefficient_rightsum_body_steps + fs_a_pfc_nonempty_zero_coefficient_rightsum_body_steps)))))) /\ ((((exists pfa_gap_nonempty_zero_coefficient_rightresiduebound. pfa_gap_nonempty_zero_coefficient_rightresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_nonempty_zero_coefficient_rightresiduecongruence pfa_offset_right_nonempty_zero_coefficient_rightresiduecongruence. (pfc_natural_sum_nonempty_zero_coefficient_right) + (p) * pfa_offset_left_nonempty_zero_coefficient_rightresiduecongruence = (r) + (p) * pfa_offset_right_nonempty_zero_coefficient_rightresiduecongruence)))))))))))
  46. specialize hn_right_right_right (i)
  47. apply hn_right_right_right
  48. specialize le_trans (S i)
  49. specialize le_trans (t)
  50. specialize le_trans (K)
  51. apply le_trans
  52. exact hi
  53. rewrite hlength
  54. specialize le_add_right (t)
  55. specialize le_add_right (N)
  56. apply le_add_right
  57. cases hv
  58. cases hv_witness
  59. have hzero : x=0
  60. specialize prime_field_convolution_coefficient_before_left_padding_right (p)
  61. specialize prime_field_convolution_coefficient_before_left_padding_right (ab)
  62. specialize prime_field_convolution_coefficient_before_left_padding_right (ac)
  63. specialize prime_field_convolution_coefficient_before_left_padding_right (L)
  64. specialize prime_field_convolution_coefficient_before_left_padding_right (bb)
  65. specialize prime_field_convolution_coefficient_before_left_padding_right (bc)
  66. specialize prime_field_convolution_coefficient_before_left_padding_right (M)
  67. specialize prime_field_convolution_coefficient_before_left_padding_right (BB)
  68. specialize prime_field_convolution_coefficient_before_left_padding_right (BC)
  69. specialize prime_field_convolution_coefficient_before_left_padding_right (t)
  70. specialize prime_field_convolution_coefficient_before_left_padding_right (i)
  71. specialize prime_field_convolution_coefficient_before_left_padding_right (x)
  72. apply prime_field_convolution_coefficient_before_left_padding_right
  73. exact hp
  74. exact hpad
  75. exact hi
  76. exact hv_witness_right
  77. rewrite hzero at hv_witness_left
  78. rewrite hzero at hv_witness_left
  79. exact hv_witness_left
  80. intro i
  81. intro a
  82. intro hi
  83. intro ha
  84. have hcoefficient : exists pfc_terms_code_nonempty_original_coefficient_right pfc_terms_scale_nonempty_original_coefficient_right pfc_natural_sum_nonempty_original_coefficient_right. ((forall pfc_index_nonempty_original_coefficient_rightdiagonal. (exists pfa_gap_nonempty_original_coefficient_rightdiagonalbound. pfa_gap_nonempty_original_coefficient_rightdiagonalbound + S (pfc_index_nonempty_original_coefficient_rightdiagonal) = (S (i))) -> exists pfc_value_nonempty_original_coefficient_rightdiagonal. ((((exists ff_h_pfp_nonempty_original_coefficient_rightdiagonalentry. ff_h_pfp_nonempty_original_coefficient_rightdiagonalentry + S (pfc_value_nonempty_original_coefficient_rightdiagonal) = S ((S (pfc_index_nonempty_original_coefficient_rightdiagonal)) * pfc_terms_scale_nonempty_original_coefficient_right)) /\ exists ff_q_pfp_nonempty_original_coefficient_rightdiagonalentry. pfc_terms_code_nonempty_original_coefficient_right = ff_q_pfp_nonempty_original_coefficient_rightdiagonalentry * S ((S (pfc_index_nonempty_original_coefficient_rightdiagonal)) * pfc_terms_scale_nonempty_original_coefficient_right) + (pfc_value_nonempty_original_coefficient_rightdiagonal))) /\ ((exists pfc_complement_nonempty_original_coefficient_rightdiagonalterm pfc_left_nonempty_original_coefficient_rightdiagonalterm pfc_right_nonempty_original_coefficient_rightdiagonalterm. (((pfc_index_nonempty_original_coefficient_rightdiagonal)+pfc_complement_nonempty_original_coefficient_rightdiagonalterm=(i)) /\ ((((((exists pfa_gap_nonempty_original_coefficient_rightdiagonaltermleftinside. pfa_gap_nonempty_original_coefficient_rightdiagonaltermleftinside + S (pfc_index_nonempty_original_coefficient_rightdiagonal) = (L)) /\ ((((exists ff_h_pfp_nonempty_original_coefficient_rightdiagonaltermleftentry. ff_h_pfp_nonempty_original_coefficient_rightdiagonaltermleftentry + S (pfc_left_nonempty_original_coefficient_rightdiagonalterm) = S ((S (pfc_index_nonempty_original_coefficient_rightdiagonal)) * ac)) /\ exists ff_q_pfp_nonempty_original_coefficient_rightdiagonaltermleftentry. ab = ff_q_pfp_nonempty_original_coefficient_rightdiagonaltermleftentry * S ((S (pfc_index_nonempty_original_coefficient_rightdiagonal)) * ac) + (pfc_left_nonempty_original_coefficient_rightdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_original_coefficient_rightdiagonaltermleftoutside. pfc_gap_nonempty_original_coefficient_rightdiagonaltermleftoutside+(L)=(pfc_index_nonempty_original_coefficient_rightdiagonal)) /\ (((pfc_left_nonempty_original_coefficient_rightdiagonalterm)=0))))) /\ ((((((exists pfa_gap_nonempty_original_coefficient_rightdiagonaltermrightinside. pfa_gap_nonempty_original_coefficient_rightdiagonaltermrightinside + S (pfc_complement_nonempty_original_coefficient_rightdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_nonempty_original_coefficient_rightdiagonaltermrightentry. ff_h_pfp_nonempty_original_coefficient_rightdiagonaltermrightentry + S (pfc_right_nonempty_original_coefficient_rightdiagonalterm) = S ((S (pfc_complement_nonempty_original_coefficient_rightdiagonalterm)) * bc)) /\ exists ff_q_pfp_nonempty_original_coefficient_rightdiagonaltermrightentry. bb = ff_q_pfp_nonempty_original_coefficient_rightdiagonaltermrightentry * S ((S (pfc_complement_nonempty_original_coefficient_rightdiagonalterm)) * bc) + (pfc_right_nonempty_original_coefficient_rightdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_original_coefficient_rightdiagonaltermrightoutside. pfc_gap_nonempty_original_coefficient_rightdiagonaltermrightoutside+(M)=(pfc_complement_nonempty_original_coefficient_rightdiagonalterm)) /\ (((pfc_right_nonempty_original_coefficient_rightdiagonalterm)=0))))) /\ (((pfc_value_nonempty_original_coefficient_rightdiagonal)=pfc_left_nonempty_original_coefficient_rightdiagonalterm*pfc_right_nonempty_original_coefficient_rightdiagonalterm))))))))))) /\ (((exists fs_u_pfc_nonempty_original_coefficient_rightsum fs_v_pfc_nonempty_original_coefficient_rightsum. ((((exists fs_h_pfc_nonempty_original_coefficient_rightsum_body_start. fs_h_pfc_nonempty_original_coefficient_rightsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_nonempty_original_coefficient_rightsum)) /\ exists fs_q_pfc_nonempty_original_coefficient_rightsum_body_start. fs_u_pfc_nonempty_original_coefficient_rightsum = fs_q_pfc_nonempty_original_coefficient_rightsum_body_start * S ((S (0)) * fs_v_pfc_nonempty_original_coefficient_rightsum) + (0))) /\ ((((exists fs_h_pfc_nonempty_original_coefficient_rightsum_body_terminal. fs_h_pfc_nonempty_original_coefficient_rightsum_body_terminal + S (pfc_natural_sum_nonempty_original_coefficient_right) = S ((S (S (i))) * fs_v_pfc_nonempty_original_coefficient_rightsum)) /\ exists fs_q_pfc_nonempty_original_coefficient_rightsum_body_terminal. fs_u_pfc_nonempty_original_coefficient_rightsum = fs_q_pfc_nonempty_original_coefficient_rightsum_body_terminal * S ((S (S (i))) * fs_v_pfc_nonempty_original_coefficient_rightsum) + (pfc_natural_sum_nonempty_original_coefficient_right))) /\ forall fs_i_pfc_nonempty_original_coefficient_rightsum_body_steps. (exists fs_lt_pfc_nonempty_original_coefficient_rightsum_body_steps_bound. fs_lt_pfc_nonempty_original_coefficient_rightsum_body_steps_bound + S fs_i_pfc_nonempty_original_coefficient_rightsum_body_steps = S (i)) -> exists fs_a_pfc_nonempty_original_coefficient_rightsum_body_steps fs_r_pfc_nonempty_original_coefficient_rightsum_body_steps fs_s_pfc_nonempty_original_coefficient_rightsum_body_steps. ((((exists fs_h_pfc_nonempty_original_coefficient_rightsum_body_steps_summand. fs_h_pfc_nonempty_original_coefficient_rightsum_body_steps_summand + S (fs_a_pfc_nonempty_original_coefficient_rightsum_body_steps) = S ((S (fs_i_pfc_nonempty_original_coefficient_rightsum_body_steps)) * pfc_terms_scale_nonempty_original_coefficient_right)) /\ exists fs_q_pfc_nonempty_original_coefficient_rightsum_body_steps_summand. pfc_terms_code_nonempty_original_coefficient_right = fs_q_pfc_nonempty_original_coefficient_rightsum_body_steps_summand * S ((S (fs_i_pfc_nonempty_original_coefficient_rightsum_body_steps)) * pfc_terms_scale_nonempty_original_coefficient_right) + (fs_a_pfc_nonempty_original_coefficient_rightsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_original_coefficient_rightsum_body_steps_partial. fs_h_pfc_nonempty_original_coefficient_rightsum_body_steps_partial + S (fs_r_pfc_nonempty_original_coefficient_rightsum_body_steps) = S ((S (fs_i_pfc_nonempty_original_coefficient_rightsum_body_steps)) * fs_v_pfc_nonempty_original_coefficient_rightsum)) /\ exists fs_q_pfc_nonempty_original_coefficient_rightsum_body_steps_partial. fs_u_pfc_nonempty_original_coefficient_rightsum = fs_q_pfc_nonempty_original_coefficient_rightsum_body_steps_partial * S ((S (fs_i_pfc_nonempty_original_coefficient_rightsum_body_steps)) * fs_v_pfc_nonempty_original_coefficient_rightsum) + (fs_r_pfc_nonempty_original_coefficient_rightsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_original_coefficient_rightsum_body_steps_successor. fs_h_pfc_nonempty_original_coefficient_rightsum_body_steps_successor + S (fs_s_pfc_nonempty_original_coefficient_rightsum_body_steps) = S ((S (S fs_i_pfc_nonempty_original_coefficient_rightsum_body_steps)) * fs_v_pfc_nonempty_original_coefficient_rightsum)) /\ exists fs_q_pfc_nonempty_original_coefficient_rightsum_body_steps_successor. fs_u_pfc_nonempty_original_coefficient_rightsum = fs_q_pfc_nonempty_original_coefficient_rightsum_body_steps_successor * S ((S (S fs_i_pfc_nonempty_original_coefficient_rightsum_body_steps)) * fs_v_pfc_nonempty_original_coefficient_rightsum) + (fs_s_pfc_nonempty_original_coefficient_rightsum_body_steps))) /\ fs_s_pfc_nonempty_original_coefficient_rightsum_body_steps = fs_r_pfc_nonempty_original_coefficient_rightsum_body_steps + fs_a_pfc_nonempty_original_coefficient_rightsum_body_steps)))))) /\ ((((exists pfa_gap_nonempty_original_coefficient_rightresiduebound. pfa_gap_nonempty_original_coefficient_rightresiduebound + S (a) = (p)) /\ ((exists pfa_offset_left_nonempty_original_coefficient_rightresiduecongruence pfa_offset_right_nonempty_original_coefficient_rightresiduecongruence. (pfc_natural_sum_nonempty_original_coefficient_right) + (p) * pfa_offset_left_nonempty_original_coefficient_rightresiduecongruence = (a) + (p) * pfa_offset_right_nonempty_original_coefficient_rightresiduecongruence))))))))
  85. specialize prime_field_convolution_prefix_entry (p)
  86. specialize prime_field_convolution_prefix_entry (ab)
  87. specialize prime_field_convolution_prefix_entry (ac)
  88. specialize prime_field_convolution_prefix_entry (L)
  89. specialize prime_field_convolution_prefix_entry (bb)
  90. specialize prime_field_convolution_prefix_entry (bc)
  91. specialize prime_field_convolution_prefix_entry (M)
  92. specialize prime_field_convolution_prefix_entry (cb)
  93. specialize prime_field_convolution_prefix_entry (cc)
  94. specialize prime_field_convolution_prefix_entry (N)
  95. specialize prime_field_convolution_prefix_entry (i)
  96. specialize prime_field_convolution_prefix_entry (a)
  97. apply prime_field_convolution_prefix_entry
  98. exact hc_right_right_right
  99. exact hi
  100. exact ha
  101. have hv : exists r. ((((exists ff_h_pfp_nonempty_shifted_entry_right. ff_h_pfp_nonempty_shifted_entry_right + S (r) = S ((S (t+i)) * CC)) /\ exists ff_q_pfp_nonempty_shifted_entry_right. CB = ff_q_pfp_nonempty_shifted_entry_right * S ((S (t+i)) * CC) + (r))) /\ ((exists pfc_terms_code_nonempty_shifted_coefficient_right pfc_terms_scale_nonempty_shifted_coefficient_right pfc_natural_sum_nonempty_shifted_coefficient_right. ((forall pfc_index_nonempty_shifted_coefficient_rightdiagonal. (exists pfa_gap_nonempty_shifted_coefficient_rightdiagonalbound. pfa_gap_nonempty_shifted_coefficient_rightdiagonalbound + S (pfc_index_nonempty_shifted_coefficient_rightdiagonal) = (S (t+i))) -> exists pfc_value_nonempty_shifted_coefficient_rightdiagonal. ((((exists ff_h_pfp_nonempty_shifted_coefficient_rightdiagonalentry. ff_h_pfp_nonempty_shifted_coefficient_rightdiagonalentry + S (pfc_value_nonempty_shifted_coefficient_rightdiagonal) = S ((S (pfc_index_nonempty_shifted_coefficient_rightdiagonal)) * pfc_terms_scale_nonempty_shifted_coefficient_right)) /\ exists ff_q_pfp_nonempty_shifted_coefficient_rightdiagonalentry. pfc_terms_code_nonempty_shifted_coefficient_right = ff_q_pfp_nonempty_shifted_coefficient_rightdiagonalentry * S ((S (pfc_index_nonempty_shifted_coefficient_rightdiagonal)) * pfc_terms_scale_nonempty_shifted_coefficient_right) + (pfc_value_nonempty_shifted_coefficient_rightdiagonal))) /\ ((exists pfc_complement_nonempty_shifted_coefficient_rightdiagonalterm pfc_left_nonempty_shifted_coefficient_rightdiagonalterm pfc_right_nonempty_shifted_coefficient_rightdiagonalterm. (((pfc_index_nonempty_shifted_coefficient_rightdiagonal)+pfc_complement_nonempty_shifted_coefficient_rightdiagonalterm=(t+i)) /\ ((((((exists pfa_gap_nonempty_shifted_coefficient_rightdiagonaltermleftinside. pfa_gap_nonempty_shifted_coefficient_rightdiagonaltermleftinside + S (pfc_index_nonempty_shifted_coefficient_rightdiagonal) = (L)) /\ ((((exists ff_h_pfp_nonempty_shifted_coefficient_rightdiagonaltermleftentry. ff_h_pfp_nonempty_shifted_coefficient_rightdiagonaltermleftentry + S (pfc_left_nonempty_shifted_coefficient_rightdiagonalterm) = S ((S (pfc_index_nonempty_shifted_coefficient_rightdiagonal)) * ac)) /\ exists ff_q_pfp_nonempty_shifted_coefficient_rightdiagonaltermleftentry. ab = ff_q_pfp_nonempty_shifted_coefficient_rightdiagonaltermleftentry * S ((S (pfc_index_nonempty_shifted_coefficient_rightdiagonal)) * ac) + (pfc_left_nonempty_shifted_coefficient_rightdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_shifted_coefficient_rightdiagonaltermleftoutside. pfc_gap_nonempty_shifted_coefficient_rightdiagonaltermleftoutside+(L)=(pfc_index_nonempty_shifted_coefficient_rightdiagonal)) /\ (((pfc_left_nonempty_shifted_coefficient_rightdiagonalterm)=0))))) /\ ((((((exists pfa_gap_nonempty_shifted_coefficient_rightdiagonaltermrightinside. pfa_gap_nonempty_shifted_coefficient_rightdiagonaltermrightinside + S (pfc_complement_nonempty_shifted_coefficient_rightdiagonalterm) = (t+M)) /\ ((((exists ff_h_pfp_nonempty_shifted_coefficient_rightdiagonaltermrightentry. ff_h_pfp_nonempty_shifted_coefficient_rightdiagonaltermrightentry + S (pfc_right_nonempty_shifted_coefficient_rightdiagonalterm) = S ((S (pfc_complement_nonempty_shifted_coefficient_rightdiagonalterm)) * BC)) /\ exists ff_q_pfp_nonempty_shifted_coefficient_rightdiagonaltermrightentry. BB = ff_q_pfp_nonempty_shifted_coefficient_rightdiagonaltermrightentry * S ((S (pfc_complement_nonempty_shifted_coefficient_rightdiagonalterm)) * BC) + (pfc_right_nonempty_shifted_coefficient_rightdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_shifted_coefficient_rightdiagonaltermrightoutside. pfc_gap_nonempty_shifted_coefficient_rightdiagonaltermrightoutside+(t+M)=(pfc_complement_nonempty_shifted_coefficient_rightdiagonalterm)) /\ (((pfc_right_nonempty_shifted_coefficient_rightdiagonalterm)=0))))) /\ (((pfc_value_nonempty_shifted_coefficient_rightdiagonal)=pfc_left_nonempty_shifted_coefficient_rightdiagonalterm*pfc_right_nonempty_shifted_coefficient_rightdiagonalterm))))))))))) /\ (((exists fs_u_pfc_nonempty_shifted_coefficient_rightsum fs_v_pfc_nonempty_shifted_coefficient_rightsum. ((((exists fs_h_pfc_nonempty_shifted_coefficient_rightsum_body_start. fs_h_pfc_nonempty_shifted_coefficient_rightsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_nonempty_shifted_coefficient_rightsum)) /\ exists fs_q_pfc_nonempty_shifted_coefficient_rightsum_body_start. fs_u_pfc_nonempty_shifted_coefficient_rightsum = fs_q_pfc_nonempty_shifted_coefficient_rightsum_body_start * S ((S (0)) * fs_v_pfc_nonempty_shifted_coefficient_rightsum) + (0))) /\ ((((exists fs_h_pfc_nonempty_shifted_coefficient_rightsum_body_terminal. fs_h_pfc_nonempty_shifted_coefficient_rightsum_body_terminal + S (pfc_natural_sum_nonempty_shifted_coefficient_right) = S ((S (S (t+i))) * fs_v_pfc_nonempty_shifted_coefficient_rightsum)) /\ exists fs_q_pfc_nonempty_shifted_coefficient_rightsum_body_terminal. fs_u_pfc_nonempty_shifted_coefficient_rightsum = fs_q_pfc_nonempty_shifted_coefficient_rightsum_body_terminal * S ((S (S (t+i))) * fs_v_pfc_nonempty_shifted_coefficient_rightsum) + (pfc_natural_sum_nonempty_shifted_coefficient_right))) /\ forall fs_i_pfc_nonempty_shifted_coefficient_rightsum_body_steps. (exists fs_lt_pfc_nonempty_shifted_coefficient_rightsum_body_steps_bound. fs_lt_pfc_nonempty_shifted_coefficient_rightsum_body_steps_bound + S fs_i_pfc_nonempty_shifted_coefficient_rightsum_body_steps = S (t+i)) -> exists fs_a_pfc_nonempty_shifted_coefficient_rightsum_body_steps fs_r_pfc_nonempty_shifted_coefficient_rightsum_body_steps fs_s_pfc_nonempty_shifted_coefficient_rightsum_body_steps. ((((exists fs_h_pfc_nonempty_shifted_coefficient_rightsum_body_steps_summand. fs_h_pfc_nonempty_shifted_coefficient_rightsum_body_steps_summand + S (fs_a_pfc_nonempty_shifted_coefficient_rightsum_body_steps) = S ((S (fs_i_pfc_nonempty_shifted_coefficient_rightsum_body_steps)) * pfc_terms_scale_nonempty_shifted_coefficient_right)) /\ exists fs_q_pfc_nonempty_shifted_coefficient_rightsum_body_steps_summand. pfc_terms_code_nonempty_shifted_coefficient_right = fs_q_pfc_nonempty_shifted_coefficient_rightsum_body_steps_summand * S ((S (fs_i_pfc_nonempty_shifted_coefficient_rightsum_body_steps)) * pfc_terms_scale_nonempty_shifted_coefficient_right) + (fs_a_pfc_nonempty_shifted_coefficient_rightsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_shifted_coefficient_rightsum_body_steps_partial. fs_h_pfc_nonempty_shifted_coefficient_rightsum_body_steps_partial + S (fs_r_pfc_nonempty_shifted_coefficient_rightsum_body_steps) = S ((S (fs_i_pfc_nonempty_shifted_coefficient_rightsum_body_steps)) * fs_v_pfc_nonempty_shifted_coefficient_rightsum)) /\ exists fs_q_pfc_nonempty_shifted_coefficient_rightsum_body_steps_partial. fs_u_pfc_nonempty_shifted_coefficient_rightsum = fs_q_pfc_nonempty_shifted_coefficient_rightsum_body_steps_partial * S ((S (fs_i_pfc_nonempty_shifted_coefficient_rightsum_body_steps)) * fs_v_pfc_nonempty_shifted_coefficient_rightsum) + (fs_r_pfc_nonempty_shifted_coefficient_rightsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_shifted_coefficient_rightsum_body_steps_successor. fs_h_pfc_nonempty_shifted_coefficient_rightsum_body_steps_successor + S (fs_s_pfc_nonempty_shifted_coefficient_rightsum_body_steps) = S ((S (S fs_i_pfc_nonempty_shifted_coefficient_rightsum_body_steps)) * fs_v_pfc_nonempty_shifted_coefficient_rightsum)) /\ exists fs_q_pfc_nonempty_shifted_coefficient_rightsum_body_steps_successor. fs_u_pfc_nonempty_shifted_coefficient_rightsum = fs_q_pfc_nonempty_shifted_coefficient_rightsum_body_steps_successor * S ((S (S fs_i_pfc_nonempty_shifted_coefficient_rightsum_body_steps)) * fs_v_pfc_nonempty_shifted_coefficient_rightsum) + (fs_s_pfc_nonempty_shifted_coefficient_rightsum_body_steps))) /\ fs_s_pfc_nonempty_shifted_coefficient_rightsum_body_steps = fs_r_pfc_nonempty_shifted_coefficient_rightsum_body_steps + fs_a_pfc_nonempty_shifted_coefficient_rightsum_body_steps)))))) /\ ((((exists pfa_gap_nonempty_shifted_coefficient_rightresiduebound. pfa_gap_nonempty_shifted_coefficient_rightresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_nonempty_shifted_coefficient_rightresiduecongruence pfa_offset_right_nonempty_shifted_coefficient_rightresiduecongruence. (pfc_natural_sum_nonempty_shifted_coefficient_right) + (p) * pfa_offset_left_nonempty_shifted_coefficient_rightresiduecongruence = (r) + (p) * pfa_offset_right_nonempty_shifted_coefficient_rightresiduecongruence)))))))))))
  102. specialize hn_right_right_right (t+i)
  103. apply hn_right_right_right
  104. rewrite hlength
  105. specialize matrix_recursive_lt_add_left (i)
  106. specialize matrix_recursive_lt_add_left (N)
  107. specialize matrix_recursive_lt_add_left (t)
  108. apply matrix_recursive_lt_add_left
  109. exact hi
  110. cases hv
  111. cases hv_witness
  112. have heq : x=a
  113. specialize prime_field_convolution_coefficient_functional (p)
  114. specialize prime_field_convolution_coefficient_functional (ab)
  115. specialize prime_field_convolution_coefficient_functional (ac)
  116. specialize prime_field_convolution_coefficient_functional (L)
  117. specialize prime_field_convolution_coefficient_functional (BB)
  118. specialize prime_field_convolution_coefficient_functional (BC)
  119. specialize prime_field_convolution_coefficient_functional (t+M)
  120. specialize prime_field_convolution_coefficient_functional (t+i)
  121. specialize prime_field_convolution_coefficient_functional (x)
  122. specialize prime_field_convolution_coefficient_functional (a)
  123. apply prime_field_convolution_coefficient_functional
  124. exact hv_witness_right
  125. specialize prime_field_convolution_coefficient_left_padding_right (p)
  126. specialize prime_field_convolution_coefficient_left_padding_right (ab)
  127. specialize prime_field_convolution_coefficient_left_padding_right (ac)
  128. specialize prime_field_convolution_coefficient_left_padding_right (L)
  129. specialize prime_field_convolution_coefficient_left_padding_right (bb)
  130. specialize prime_field_convolution_coefficient_left_padding_right (bc)
  131. specialize prime_field_convolution_coefficient_left_padding_right (M)
  132. specialize prime_field_convolution_coefficient_left_padding_right (BB)
  133. specialize prime_field_convolution_coefficient_left_padding_right (BC)
  134. specialize prime_field_convolution_coefficient_left_padding_right (t)
  135. specialize prime_field_convolution_coefficient_left_padding_right (i)
  136. specialize prime_field_convolution_coefficient_left_padding_right (a)
  137. apply prime_field_convolution_coefficient_left_padding_right
  138. exact hpad
  139. exact hcoefficient
  140. rewrite heq at hv_witness_left
  141. rewrite heq at hv_witness_left
  142. exact hv_witness_left
prime_field_polynomial_convolution_left_padding_equivalent_right · unchanged support, not a new admission
forall p ab ac L bb bc M cb cc N BB BC t CB CC K. (~(p=0)) -> (((forall pfp_repeat_index_product_factor_padding_rightzeros. (exists pfa_gap_product_factor_padding_rightzerosindex. pfa_gap_product_factor_padding_rightzerosindex + S (pfp_repeat_index_product_factor_padding_rightzeros) = (t)) -> (((exists ff_h_pfp_product_factor_padding_rightzerosentry. ff_h_pfp_product_factor_padding_rightzerosentry + S (0) = S ((S (pfp_repeat_index_product_factor_padding_rightzeros)) * BC)) /\ exists ff_q_pfp_product_factor_padding_rightzerosentry. BB = ff_q_pfp_product_factor_padding_rightzerosentry * S ((S (pfp_repeat_index_product_factor_padding_rightzeros)) * BC) + (0)))) /\ ((forall pfrep_index_product_factor_padding_right pfrep_value_product_factor_padding_right. (exists pfa_gap_product_factor_padding_rightbound. pfa_gap_product_factor_padding_rightbound + S (pfrep_index_product_factor_padding_right) = (M)) -> (((exists ff_h_pfp_product_factor_padding_rightinput. ff_h_pfp_product_factor_padding_rightinput + S (pfrep_value_product_factor_padding_right) = S ((S (pfrep_index_product_factor_padding_right)) * bc)) /\ exists ff_q_pfp_product_factor_padding_rightinput. bb = ff_q_pfp_product_factor_padding_rightinput * S ((S (pfrep_index_product_factor_padding_right)) * bc) + (pfrep_value_product_factor_padding_right))) -> (((exists ff_h_pfp_product_factor_padding_rightoutput. ff_h_pfp_product_factor_padding_rightoutput + S (pfrep_value_product_factor_padding_right) = S ((S ((t)+pfrep_index_product_factor_padding_right)) * BC)) /\ exists ff_q_pfp_product_factor_padding_rightoutput. BB = ff_q_pfp_product_factor_padding_rightoutput * S ((S ((t)+pfrep_index_product_factor_padding_right)) * BC) + (pfrep_value_product_factor_padding_right))))))) -> (((forall fom_index_pfp_product_original_rightleft. (exists fom_gap_pfp_product_original_rightleft_index_bound. fom_gap_pfp_product_original_rightleft_index_bound + S (fom_index_pfp_product_original_rightleft) = L) -> exists fom_value_pfp_product_original_rightleft. ((((exists fom_beta_height_pfp_product_original_rightleft_entry. fom_beta_height_pfp_product_original_rightleft_entry + S (fom_value_pfp_product_original_rightleft) = S ((S (fom_index_pfp_product_original_rightleft)) * ac)) /\ exists fom_beta_quotient_pfp_product_original_rightleft_entry. ab = fom_beta_quotient_pfp_product_original_rightleft_entry * S ((S (fom_index_pfp_product_original_rightleft)) * ac) + (fom_value_pfp_product_original_rightleft))) /\ (exists fom_gap_pfp_product_original_rightleft_value_bound. fom_gap_pfp_product_original_rightleft_value_bound + S (fom_value_pfp_product_original_rightleft) = p))) /\ (((forall fom_index_pfp_product_original_rightright. (exists fom_gap_pfp_product_original_rightright_index_bound. fom_gap_pfp_product_original_rightright_index_bound + S (fom_index_pfp_product_original_rightright) = M) -> exists fom_value_pfp_product_original_rightright. ((((exists fom_beta_height_pfp_product_original_rightright_entry. fom_beta_height_pfp_product_original_rightright_entry + S (fom_value_pfp_product_original_rightright) = S ((S (fom_index_pfp_product_original_rightright)) * bc)) /\ exists fom_beta_quotient_pfp_product_original_rightright_entry. bb = fom_beta_quotient_pfp_product_original_rightright_entry * S ((S (fom_index_pfp_product_original_rightright)) * bc) + (fom_value_pfp_product_original_rightright))) /\ (exists fom_gap_pfp_product_original_rightright_value_bound. fom_gap_pfp_product_original_rightright_value_bound + S (fom_value_pfp_product_original_rightright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_product_original_rightcoefficients. (exists pfa_gap_product_original_rightcoefficientsbound. pfa_gap_product_original_rightcoefficientsbound + S (pfc_index_product_original_rightcoefficients) = (N)) -> exists pfc_value_product_original_rightcoefficients. ((((exists ff_h_pfp_product_original_rightcoefficientsentry. ff_h_pfp_product_original_rightcoefficientsentry + S (pfc_value_product_original_rightcoefficients) = S ((S (pfc_index_product_original_rightcoefficients)) * cc)) /\ exists ff_q_pfp_product_original_rightcoefficientsentry. cb = ff_q_pfp_product_original_rightcoefficientsentry * S ((S (pfc_index_product_original_rightcoefficients)) * cc) + (pfc_value_product_original_rightcoefficients))) /\ ((exists pfc_terms_code_product_original_rightcoefficientscoefficient pfc_terms_scale_product_original_rightcoefficientscoefficient pfc_natural_sum_product_original_rightcoefficientscoefficient. ((forall pfc_index_product_original_rightcoefficientscoefficientdiagonal. (exists pfa_gap_product_original_rightcoefficientscoefficientdiagonalbound. pfa_gap_product_original_rightcoefficientscoefficientdiagonalbound + S (pfc_index_product_original_rightcoefficientscoefficientdiagonal) = (S (pfc_index_product_original_rightcoefficients))) -> exists pfc_value_product_original_rightcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_product_original_rightcoefficientscoefficientdiagonalentry. ff_h_pfp_product_original_rightcoefficientscoefficientdiagonalentry + S (pfc_value_product_original_rightcoefficientscoefficientdiagonal) = S ((S (pfc_index_product_original_rightcoefficientscoefficientdiagonal)) * pfc_terms_scale_product_original_rightcoefficientscoefficient)) /\ exists ff_q_pfp_product_original_rightcoefficientscoefficientdiagonalentry. pfc_terms_code_product_original_rightcoefficientscoefficient = ff_q_pfp_product_original_rightcoefficientscoefficientdiagonalentry * S ((S (pfc_index_product_original_rightcoefficientscoefficientdiagonal)) * pfc_terms_scale_product_original_rightcoefficientscoefficient) + (pfc_value_product_original_rightcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_product_original_rightcoefficientscoefficientdiagonalterm pfc_left_product_original_rightcoefficientscoefficientdiagonalterm pfc_right_product_original_rightcoefficientscoefficientdiagonalterm. (((pfc_index_product_original_rightcoefficientscoefficientdiagonal)+pfc_complement_product_original_rightcoefficientscoefficientdiagonalterm=(pfc_index_product_original_rightcoefficients)) /\ ((((((exists pfa_gap_product_original_rightcoefficientscoefficientdiagonaltermleftinside. pfa_gap_product_original_rightcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_product_original_rightcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_product_original_rightcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_product_original_rightcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_product_original_rightcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_product_original_rightcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_product_original_rightcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_product_original_rightcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_product_original_rightcoefficientscoefficientdiagonal)) * ac) + (pfc_left_product_original_rightcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_product_original_rightcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_product_original_rightcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_product_original_rightcoefficientscoefficientdiagonal)) /\ (((pfc_left_product_original_rightcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_product_original_rightcoefficientscoefficientdiagonaltermrightinside. pfa_gap_product_original_rightcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_product_original_rightcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_product_original_rightcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_product_original_rightcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_product_original_rightcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_product_original_rightcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_product_original_rightcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_product_original_rightcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_product_original_rightcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_product_original_rightcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_product_original_rightcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_product_original_rightcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_product_original_rightcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_product_original_rightcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_product_original_rightcoefficientscoefficientdiagonal)=pfc_left_product_original_rightcoefficientscoefficientdiagonalterm*pfc_right_product_original_rightcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_product_original_rightcoefficientscoefficientsum fs_v_pfc_product_original_rightcoefficientscoefficientsum. ((((exists fs_h_pfc_product_original_rightcoefficientscoefficientsum_body_start. fs_h_pfc_product_original_rightcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_product_original_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_original_rightcoefficientscoefficientsum_body_start. fs_u_pfc_product_original_rightcoefficientscoefficientsum = fs_q_pfc_product_original_rightcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_product_original_rightcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_product_original_rightcoefficientscoefficientsum_body_terminal. fs_h_pfc_product_original_rightcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_product_original_rightcoefficientscoefficient) = S ((S (S (pfc_index_product_original_rightcoefficients))) * fs_v_pfc_product_original_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_original_rightcoefficientscoefficientsum_body_terminal. fs_u_pfc_product_original_rightcoefficientscoefficientsum = fs_q_pfc_product_original_rightcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_product_original_rightcoefficients))) * fs_v_pfc_product_original_rightcoefficientscoefficientsum) + (pfc_natural_sum_product_original_rightcoefficientscoefficient))) /\ forall fs_i_pfc_product_original_rightcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_product_original_rightcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_product_original_rightcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_product_original_rightcoefficientscoefficientsum_body_steps = S (pfc_index_product_original_rightcoefficients)) -> exists fs_a_pfc_product_original_rightcoefficientscoefficientsum_body_steps fs_r_pfc_product_original_rightcoefficientscoefficientsum_body_steps fs_s_pfc_product_original_rightcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_product_original_rightcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_product_original_rightcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_product_original_rightcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_product_original_rightcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_product_original_rightcoefficientscoefficient)) /\ exists fs_q_pfc_product_original_rightcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_product_original_rightcoefficientscoefficient = fs_q_pfc_product_original_rightcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_product_original_rightcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_product_original_rightcoefficientscoefficient) + (fs_a_pfc_product_original_rightcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_product_original_rightcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_product_original_rightcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_product_original_rightcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_product_original_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_original_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_original_rightcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_product_original_rightcoefficientscoefficientsum = fs_q_pfc_product_original_rightcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_product_original_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_original_rightcoefficientscoefficientsum) + (fs_r_pfc_product_original_rightcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_product_original_rightcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_product_original_rightcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_product_original_rightcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_product_original_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_original_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_original_rightcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_product_original_rightcoefficientscoefficientsum = fs_q_pfc_product_original_rightcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_product_original_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_original_rightcoefficientscoefficientsum) + (fs_s_pfc_product_original_rightcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_product_original_rightcoefficientscoefficientsum_body_steps = fs_r_pfc_product_original_rightcoefficientscoefficientsum_body_steps + fs_a_pfc_product_original_rightcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_product_original_rightcoefficientscoefficientresiduebound. pfa_gap_product_original_rightcoefficientscoefficientresiduebound + S (pfc_value_product_original_rightcoefficients) = (p)) /\ ((exists pfa_offset_left_product_original_rightcoefficientscoefficientresiduecongruence pfa_offset_right_product_original_rightcoefficientscoefficientresiduecongruence. (pfc_natural_sum_product_original_rightcoefficientscoefficient) + (p) * pfa_offset_left_product_original_rightcoefficientscoefficientresiduecongruence = (pfc_value_product_original_rightcoefficients) + (p) * pfa_offset_right_product_original_rightcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_product_padded_rightleft. (exists fom_gap_pfp_product_padded_rightleft_index_bound. fom_gap_pfp_product_padded_rightleft_index_bound + S (fom_index_pfp_product_padded_rightleft) = L) -> exists fom_value_pfp_product_padded_rightleft. ((((exists fom_beta_height_pfp_product_padded_rightleft_entry. fom_beta_height_pfp_product_padded_rightleft_entry + S (fom_value_pfp_product_padded_rightleft) = S ((S (fom_index_pfp_product_padded_rightleft)) * ac)) /\ exists fom_beta_quotient_pfp_product_padded_rightleft_entry. ab = fom_beta_quotient_pfp_product_padded_rightleft_entry * S ((S (fom_index_pfp_product_padded_rightleft)) * ac) + (fom_value_pfp_product_padded_rightleft))) /\ (exists fom_gap_pfp_product_padded_rightleft_value_bound. fom_gap_pfp_product_padded_rightleft_value_bound + S (fom_value_pfp_product_padded_rightleft) = p))) /\ (((forall fom_index_pfp_product_padded_rightright. (exists fom_gap_pfp_product_padded_rightright_index_bound. fom_gap_pfp_product_padded_rightright_index_bound + S (fom_index_pfp_product_padded_rightright) = t+M) -> exists fom_value_pfp_product_padded_rightright. ((((exists fom_beta_height_pfp_product_padded_rightright_entry. fom_beta_height_pfp_product_padded_rightright_entry + S (fom_value_pfp_product_padded_rightright) = S ((S (fom_index_pfp_product_padded_rightright)) * BC)) /\ exists fom_beta_quotient_pfp_product_padded_rightright_entry. BB = fom_beta_quotient_pfp_product_padded_rightright_entry * S ((S (fom_index_pfp_product_padded_rightright)) * BC) + (fom_value_pfp_product_padded_rightright))) /\ (exists fom_gap_pfp_product_padded_rightright_value_bound. fom_gap_pfp_product_padded_rightright_value_bound + S (fom_value_pfp_product_padded_rightright) = p))) /\ (((((((L)=0 \/ (t+M)=0) /\ (((K)=0)))) \/ (((~((L)=0)) /\ (((~((t+M)=0)) /\ (((L)+(t+M)=S (K)))))))) /\ ((forall pfc_index_product_padded_rightcoefficients. (exists pfa_gap_product_padded_rightcoefficientsbound. pfa_gap_product_padded_rightcoefficientsbound + S (pfc_index_product_padded_rightcoefficients) = (K)) -> exists pfc_value_product_padded_rightcoefficients. ((((exists ff_h_pfp_product_padded_rightcoefficientsentry. ff_h_pfp_product_padded_rightcoefficientsentry + S (pfc_value_product_padded_rightcoefficients) = S ((S (pfc_index_product_padded_rightcoefficients)) * CC)) /\ exists ff_q_pfp_product_padded_rightcoefficientsentry. CB = ff_q_pfp_product_padded_rightcoefficientsentry * S ((S (pfc_index_product_padded_rightcoefficients)) * CC) + (pfc_value_product_padded_rightcoefficients))) /\ ((exists pfc_terms_code_product_padded_rightcoefficientscoefficient pfc_terms_scale_product_padded_rightcoefficientscoefficient pfc_natural_sum_product_padded_rightcoefficientscoefficient. ((forall pfc_index_product_padded_rightcoefficientscoefficientdiagonal. (exists pfa_gap_product_padded_rightcoefficientscoefficientdiagonalbound. pfa_gap_product_padded_rightcoefficientscoefficientdiagonalbound + S (pfc_index_product_padded_rightcoefficientscoefficientdiagonal) = (S (pfc_index_product_padded_rightcoefficients))) -> exists pfc_value_product_padded_rightcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_product_padded_rightcoefficientscoefficientdiagonalentry. ff_h_pfp_product_padded_rightcoefficientscoefficientdiagonalentry + S (pfc_value_product_padded_rightcoefficientscoefficientdiagonal) = S ((S (pfc_index_product_padded_rightcoefficientscoefficientdiagonal)) * pfc_terms_scale_product_padded_rightcoefficientscoefficient)) /\ exists ff_q_pfp_product_padded_rightcoefficientscoefficientdiagonalentry. pfc_terms_code_product_padded_rightcoefficientscoefficient = ff_q_pfp_product_padded_rightcoefficientscoefficientdiagonalentry * S ((S (pfc_index_product_padded_rightcoefficientscoefficientdiagonal)) * pfc_terms_scale_product_padded_rightcoefficientscoefficient) + (pfc_value_product_padded_rightcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_product_padded_rightcoefficientscoefficientdiagonalterm pfc_left_product_padded_rightcoefficientscoefficientdiagonalterm pfc_right_product_padded_rightcoefficientscoefficientdiagonalterm. (((pfc_index_product_padded_rightcoefficientscoefficientdiagonal)+pfc_complement_product_padded_rightcoefficientscoefficientdiagonalterm=(pfc_index_product_padded_rightcoefficients)) /\ ((((((exists pfa_gap_product_padded_rightcoefficientscoefficientdiagonaltermleftinside. pfa_gap_product_padded_rightcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_product_padded_rightcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_product_padded_rightcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_product_padded_rightcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_product_padded_rightcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_product_padded_rightcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_product_padded_rightcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_product_padded_rightcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_product_padded_rightcoefficientscoefficientdiagonal)) * ac) + (pfc_left_product_padded_rightcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_product_padded_rightcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_product_padded_rightcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_product_padded_rightcoefficientscoefficientdiagonal)) /\ (((pfc_left_product_padded_rightcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_product_padded_rightcoefficientscoefficientdiagonaltermrightinside. pfa_gap_product_padded_rightcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_product_padded_rightcoefficientscoefficientdiagonalterm) = (t+M)) /\ ((((exists ff_h_pfp_product_padded_rightcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_product_padded_rightcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_product_padded_rightcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_product_padded_rightcoefficientscoefficientdiagonalterm)) * BC)) /\ exists ff_q_pfp_product_padded_rightcoefficientscoefficientdiagonaltermrightentry. BB = ff_q_pfp_product_padded_rightcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_product_padded_rightcoefficientscoefficientdiagonalterm)) * BC) + (pfc_right_product_padded_rightcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_product_padded_rightcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_product_padded_rightcoefficientscoefficientdiagonaltermrightoutside+(t+M)=(pfc_complement_product_padded_rightcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_product_padded_rightcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_product_padded_rightcoefficientscoefficientdiagonal)=pfc_left_product_padded_rightcoefficientscoefficientdiagonalterm*pfc_right_product_padded_rightcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_product_padded_rightcoefficientscoefficientsum fs_v_pfc_product_padded_rightcoefficientscoefficientsum. ((((exists fs_h_pfc_product_padded_rightcoefficientscoefficientsum_body_start. fs_h_pfc_product_padded_rightcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_product_padded_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_padded_rightcoefficientscoefficientsum_body_start. fs_u_pfc_product_padded_rightcoefficientscoefficientsum = fs_q_pfc_product_padded_rightcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_product_padded_rightcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_product_padded_rightcoefficientscoefficientsum_body_terminal. fs_h_pfc_product_padded_rightcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_product_padded_rightcoefficientscoefficient) = S ((S (S (pfc_index_product_padded_rightcoefficients))) * fs_v_pfc_product_padded_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_padded_rightcoefficientscoefficientsum_body_terminal. fs_u_pfc_product_padded_rightcoefficientscoefficientsum = fs_q_pfc_product_padded_rightcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_product_padded_rightcoefficients))) * fs_v_pfc_product_padded_rightcoefficientscoefficientsum) + (pfc_natural_sum_product_padded_rightcoefficientscoefficient))) /\ forall fs_i_pfc_product_padded_rightcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_product_padded_rightcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_product_padded_rightcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_product_padded_rightcoefficientscoefficientsum_body_steps = S (pfc_index_product_padded_rightcoefficients)) -> exists fs_a_pfc_product_padded_rightcoefficientscoefficientsum_body_steps fs_r_pfc_product_padded_rightcoefficientscoefficientsum_body_steps fs_s_pfc_product_padded_rightcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_product_padded_rightcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_product_padded_rightcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_product_padded_rightcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_product_padded_rightcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_product_padded_rightcoefficientscoefficient)) /\ exists fs_q_pfc_product_padded_rightcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_product_padded_rightcoefficientscoefficient = fs_q_pfc_product_padded_rightcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_product_padded_rightcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_product_padded_rightcoefficientscoefficient) + (fs_a_pfc_product_padded_rightcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_product_padded_rightcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_product_padded_rightcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_product_padded_rightcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_product_padded_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_padded_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_padded_rightcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_product_padded_rightcoefficientscoefficientsum = fs_q_pfc_product_padded_rightcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_product_padded_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_padded_rightcoefficientscoefficientsum) + (fs_r_pfc_product_padded_rightcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_product_padded_rightcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_product_padded_rightcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_product_padded_rightcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_product_padded_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_padded_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_padded_rightcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_product_padded_rightcoefficientscoefficientsum = fs_q_pfc_product_padded_rightcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_product_padded_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_padded_rightcoefficientscoefficientsum) + (fs_s_pfc_product_padded_rightcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_product_padded_rightcoefficientscoefficientsum_body_steps = fs_r_pfc_product_padded_rightcoefficientscoefficientsum_body_steps + fs_a_pfc_product_padded_rightcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_product_padded_rightcoefficientscoefficientresiduebound. pfa_gap_product_padded_rightcoefficientscoefficientresiduebound + S (pfc_value_product_padded_rightcoefficients) = (p)) /\ ((exists pfa_offset_left_product_padded_rightcoefficientscoefficientresiduecongruence pfa_offset_right_product_padded_rightcoefficientscoefficientresiduecongruence. (pfc_natural_sum_product_padded_rightcoefficientscoefficient) + (p) * pfa_offset_left_product_padded_rightcoefficientscoefficientresiduecongruence = (pfc_value_product_padded_rightcoefficients) + (p) * pfa_offset_right_product_padded_rightcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (forall pfrep_power_product_equivalent_right pfrep_left_product_equivalent_right pfrep_right_product_equivalent_right. ((exists pfrep_position_product_equivalent_rightfirst. ((pfrep_position_product_equivalent_rightfirst+S (pfrep_power_product_equivalent_right)=(N)) /\ ((((exists ff_h_pfp_product_equivalent_rightfirstentry. ff_h_pfp_product_equivalent_rightfirstentry + S (pfrep_left_product_equivalent_right) = S ((S (pfrep_position_product_equivalent_rightfirst)) * cc)) /\ exists ff_q_pfp_product_equivalent_rightfirstentry. cb = ff_q_pfp_product_equivalent_rightfirstentry * S ((S (pfrep_position_product_equivalent_rightfirst)) * cc) + (pfrep_left_product_equivalent_right)))))) \/ (((exists pfrep_gap_product_equivalent_rightfirstoutside. pfrep_gap_product_equivalent_rightfirstoutside+(N)=(pfrep_power_product_equivalent_right)) /\ (((pfrep_left_product_equivalent_right)=0))))) -> ((exists pfrep_position_product_equivalent_rightsecond. ((pfrep_position_product_equivalent_rightsecond+S (pfrep_power_product_equivalent_right)=(K)) /\ ((((exists ff_h_pfp_product_equivalent_rightsecondentry. ff_h_pfp_product_equivalent_rightsecondentry + S (pfrep_right_product_equivalent_right) = S ((S (pfrep_position_product_equivalent_rightsecond)) * CC)) /\ exists ff_q_pfp_product_equivalent_rightsecondentry. CB = ff_q_pfp_product_equivalent_rightsecondentry * S ((S (pfrep_position_product_equivalent_rightsecond)) * CC) + (pfrep_right_product_equivalent_right)))))) \/ (((exists pfrep_gap_product_equivalent_rightsecondoutside. pfrep_gap_product_equivalent_rightsecondoutside+(K)=(pfrep_power_product_equivalent_right)) /\ (((pfrep_right_product_equivalent_right)=0))))) -> pfrep_left_product_equivalent_right=pfrep_right_product_equivalent_right)
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro cb
  9. intro cc
  10. intro N
  11. intro BB
  12. intro BC
  13. intro t
  14. intro CB
  15. intro CC
  16. intro K
  17. intro hp
  18. intro hpad
  19. intro hc
  20. intro hn
  21. have hL : L=0 \/ ~(L=0)
  22. specialize eq_decidable (L)
  23. specialize eq_decidable (0)
  24. apply eq_decidable
  25. cases hL
  26. have hz : forall pfp_repeat_index_empty_factor_zero_rightleft. (exists pfa_gap_empty_factor_zero_rightleftindex. pfa_gap_empty_factor_zero_rightleftindex + S (pfp_repeat_index_empty_factor_zero_rightleft) = (L)) -> (((exists ff_h_pfp_empty_factor_zero_rightleftentry. ff_h_pfp_empty_factor_zero_rightleftentry + S (0) = S ((S (pfp_repeat_index_empty_factor_zero_rightleft)) * ac)) /\ exists ff_q_pfp_empty_factor_zero_rightleftentry. ab = ff_q_pfp_empty_factor_zero_rightleftentry * S ((S (pfp_repeat_index_empty_factor_zero_rightleft)) * ac) + (0)))
  27. intro j
  28. intro hj
  29. rewrite hL_left at hj
  30. exfalso
  31. specialize matrix_rank_no_index_below_zero (j)
  32. apply matrix_rank_no_index_below_zero
  33. exact hj
  34. have hc0 : forall pfp_repeat_index_empty_original_product_rightleft. (exists pfa_gap_empty_original_product_rightleftindex. pfa_gap_empty_original_product_rightleftindex + S (pfp_repeat_index_empty_original_product_rightleft) = (N)) -> (((exists ff_h_pfp_empty_original_product_rightleftentry. ff_h_pfp_empty_original_product_rightleftentry + S (0) = S ((S (pfp_repeat_index_empty_original_product_rightleft)) * cc)) /\ exists ff_q_pfp_empty_original_product_rightleftentry. cb = ff_q_pfp_empty_original_product_rightleftentry * S ((S (pfp_repeat_index_empty_original_product_rightleft)) * cc) + (0)))
  35. specialize prime_field_polynomial_convolution_zero_left (p)
  36. specialize prime_field_polynomial_convolution_zero_left (ab)
  37. specialize prime_field_polynomial_convolution_zero_left (ac)
  38. specialize prime_field_polynomial_convolution_zero_left (L)
  39. specialize prime_field_polynomial_convolution_zero_left (bb)
  40. specialize prime_field_polynomial_convolution_zero_left (bc)
  41. specialize prime_field_polynomial_convolution_zero_left (M)
  42. specialize prime_field_polynomial_convolution_zero_left (cb)
  43. specialize prime_field_polynomial_convolution_zero_left (cc)
  44. specialize prime_field_polynomial_convolution_zero_left (N)
  45. apply prime_field_polynomial_convolution_zero_left
  46. exact hp
  47. exact hz
  48. exact hc
  49. have hn0 : forall pfp_repeat_index_empty_padded_product_rightleft. (exists pfa_gap_empty_padded_product_rightleftindex. pfa_gap_empty_padded_product_rightleftindex + S (pfp_repeat_index_empty_padded_product_rightleft) = (K)) -> (((exists ff_h_pfp_empty_padded_product_rightleftentry. ff_h_pfp_empty_padded_product_rightleftentry + S (0) = S ((S (pfp_repeat_index_empty_padded_product_rightleft)) * CC)) /\ exists ff_q_pfp_empty_padded_product_rightleftentry. CB = ff_q_pfp_empty_padded_product_rightleftentry * S ((S (pfp_repeat_index_empty_padded_product_rightleft)) * CC) + (0)))
  50. specialize prime_field_polynomial_convolution_zero_left (p)
  51. specialize prime_field_polynomial_convolution_zero_left (ab)
  52. specialize prime_field_polynomial_convolution_zero_left (ac)
  53. specialize prime_field_polynomial_convolution_zero_left (L)
  54. specialize prime_field_polynomial_convolution_zero_left (BB)
  55. specialize prime_field_polynomial_convolution_zero_left (BC)
  56. specialize prime_field_polynomial_convolution_zero_left (t+M)
  57. specialize prime_field_polynomial_convolution_zero_left (CB)
  58. specialize prime_field_polynomial_convolution_zero_left (CC)
  59. specialize prime_field_polynomial_convolution_zero_left (K)
  60. apply prime_field_polynomial_convolution_zero_left
  61. exact hp
  62. exact hz
  63. exact hn
  64. have hec : forall pfrep_power_empty_first_equivalence_rightleft pfrep_left_empty_first_equivalence_rightleft pfrep_right_empty_first_equivalence_rightleft. ((exists pfrep_position_empty_first_equivalence_rightleftfirst. ((pfrep_position_empty_first_equivalence_rightleftfirst+S (pfrep_power_empty_first_equivalence_rightleft)=(N)) /\ ((((exists ff_h_pfp_empty_first_equivalence_rightleftfirstentry. ff_h_pfp_empty_first_equivalence_rightleftfirstentry + S (pfrep_left_empty_first_equivalence_rightleft) = S ((S (pfrep_position_empty_first_equivalence_rightleftfirst)) * cc)) /\ exists ff_q_pfp_empty_first_equivalence_rightleftfirstentry. cb = ff_q_pfp_empty_first_equivalence_rightleftfirstentry * S ((S (pfrep_position_empty_first_equivalence_rightleftfirst)) * cc) + (pfrep_left_empty_first_equivalence_rightleft)))))) \/ (((exists pfrep_gap_empty_first_equivalence_rightleftfirstoutside. pfrep_gap_empty_first_equivalence_rightleftfirstoutside+(N)=(pfrep_power_empty_first_equivalence_rightleft)) /\ (((pfrep_left_empty_first_equivalence_rightleft)=0))))) -> ((exists pfrep_position_empty_first_equivalence_rightleftsecond. ((pfrep_position_empty_first_equivalence_rightleftsecond+S (pfrep_power_empty_first_equivalence_rightleft)=(0)) /\ ((((exists ff_h_pfp_empty_first_equivalence_rightleftsecondentry. ff_h_pfp_empty_first_equivalence_rightleftsecondentry + S (pfrep_right_empty_first_equivalence_rightleft) = S ((S (pfrep_position_empty_first_equivalence_rightleftsecond)) * 0)) /\ exists ff_q_pfp_empty_first_equivalence_rightleftsecondentry. 0 = ff_q_pfp_empty_first_equivalence_rightleftsecondentry * S ((S (pfrep_position_empty_first_equivalence_rightleftsecond)) * 0) + (pfrep_right_empty_first_equivalence_rightleft)))))) \/ (((exists pfrep_gap_empty_first_equivalence_rightleftsecondoutside. pfrep_gap_empty_first_equivalence_rightleftsecondoutside+(0)=(pfrep_power_empty_first_equivalence_rightleft)) /\ (((pfrep_right_empty_first_equivalence_rightleft)=0))))) -> pfrep_left_empty_first_equivalence_rightleft=pfrep_right_empty_first_equivalence_rightleft
  65. specialize prime_field_polynomial_zero_prefix_equivalent_empty (cb)
  66. specialize prime_field_polynomial_zero_prefix_equivalent_empty (cc)
  67. specialize prime_field_polynomial_zero_prefix_equivalent_empty (N)
  68. apply prime_field_polynomial_zero_prefix_equivalent_empty
  69. exact hc0
  70. have hen : forall pfrep_power_empty_second_equivalence_rightleft pfrep_left_empty_second_equivalence_rightleft pfrep_right_empty_second_equivalence_rightleft. ((exists pfrep_position_empty_second_equivalence_rightleftfirst. ((pfrep_position_empty_second_equivalence_rightleftfirst+S (pfrep_power_empty_second_equivalence_rightleft)=(K)) /\ ((((exists ff_h_pfp_empty_second_equivalence_rightleftfirstentry. ff_h_pfp_empty_second_equivalence_rightleftfirstentry + S (pfrep_left_empty_second_equivalence_rightleft) = S ((S (pfrep_position_empty_second_equivalence_rightleftfirst)) * CC)) /\ exists ff_q_pfp_empty_second_equivalence_rightleftfirstentry. CB = ff_q_pfp_empty_second_equivalence_rightleftfirstentry * S ((S (pfrep_position_empty_second_equivalence_rightleftfirst)) * CC) + (pfrep_left_empty_second_equivalence_rightleft)))))) \/ (((exists pfrep_gap_empty_second_equivalence_rightleftfirstoutside. pfrep_gap_empty_second_equivalence_rightleftfirstoutside+(K)=(pfrep_power_empty_second_equivalence_rightleft)) /\ (((pfrep_left_empty_second_equivalence_rightleft)=0))))) -> ((exists pfrep_position_empty_second_equivalence_rightleftsecond. ((pfrep_position_empty_second_equivalence_rightleftsecond+S (pfrep_power_empty_second_equivalence_rightleft)=(0)) /\ ((((exists ff_h_pfp_empty_second_equivalence_rightleftsecondentry. ff_h_pfp_empty_second_equivalence_rightleftsecondentry + S (pfrep_right_empty_second_equivalence_rightleft) = S ((S (pfrep_position_empty_second_equivalence_rightleftsecond)) * 0)) /\ exists ff_q_pfp_empty_second_equivalence_rightleftsecondentry. 0 = ff_q_pfp_empty_second_equivalence_rightleftsecondentry * S ((S (pfrep_position_empty_second_equivalence_rightleftsecond)) * 0) + (pfrep_right_empty_second_equivalence_rightleft)))))) \/ (((exists pfrep_gap_empty_second_equivalence_rightleftsecondoutside. pfrep_gap_empty_second_equivalence_rightleftsecondoutside+(0)=(pfrep_power_empty_second_equivalence_rightleft)) /\ (((pfrep_right_empty_second_equivalence_rightleft)=0))))) -> pfrep_left_empty_second_equivalence_rightleft=pfrep_right_empty_second_equivalence_rightleft
  71. specialize prime_field_polynomial_zero_prefix_equivalent_empty (CB)
  72. specialize prime_field_polynomial_zero_prefix_equivalent_empty (CC)
  73. specialize prime_field_polynomial_zero_prefix_equivalent_empty (K)
  74. apply prime_field_polynomial_zero_prefix_equivalent_empty
  75. exact hn0
  76. specialize prime_field_polynomial_equivalent_transitive (cb)
  77. specialize prime_field_polynomial_equivalent_transitive (cc)
  78. specialize prime_field_polynomial_equivalent_transitive (N)
  79. specialize prime_field_polynomial_equivalent_transitive (0)
  80. specialize prime_field_polynomial_equivalent_transitive (0)
  81. specialize prime_field_polynomial_equivalent_transitive (0)
  82. specialize prime_field_polynomial_equivalent_transitive (CB)
  83. specialize prime_field_polynomial_equivalent_transitive (CC)
  84. specialize prime_field_polynomial_equivalent_transitive (K)
  85. apply prime_field_polynomial_equivalent_transitive
  86. exact hec
  87. specialize prime_field_polynomial_equivalent_symmetric (CB)
  88. specialize prime_field_polynomial_equivalent_symmetric (CC)
  89. specialize prime_field_polynomial_equivalent_symmetric (K)
  90. specialize prime_field_polynomial_equivalent_symmetric (0)
  91. specialize prime_field_polynomial_equivalent_symmetric (0)
  92. specialize prime_field_polynomial_equivalent_symmetric (0)
  93. apply prime_field_polynomial_equivalent_symmetric
  94. exact hen
  95. have hM : M=0 \/ ~(M=0)
  96. specialize eq_decidable (M)
  97. specialize eq_decidable (0)
  98. apply eq_decidable
  99. cases hM
  100. have hz : forall pfp_repeat_index_empty_factor_zero_rightright. (exists pfa_gap_empty_factor_zero_rightrightindex. pfa_gap_empty_factor_zero_rightrightindex + S (pfp_repeat_index_empty_factor_zero_rightright) = (M)) -> (((exists ff_h_pfp_empty_factor_zero_rightrightentry. ff_h_pfp_empty_factor_zero_rightrightentry + S (0) = S ((S (pfp_repeat_index_empty_factor_zero_rightright)) * bc)) /\ exists ff_q_pfp_empty_factor_zero_rightrightentry. bb = ff_q_pfp_empty_factor_zero_rightrightentry * S ((S (pfp_repeat_index_empty_factor_zero_rightright)) * bc) + (0)))
  101. intro j
  102. intro hj
  103. rewrite hM_left at hj
  104. exfalso
  105. specialize matrix_rank_no_index_below_zero (j)
  106. apply matrix_rank_no_index_below_zero
  107. exact hj
  108. have hc0 : forall pfp_repeat_index_empty_original_product_rightright. (exists pfa_gap_empty_original_product_rightrightindex. pfa_gap_empty_original_product_rightrightindex + S (pfp_repeat_index_empty_original_product_rightright) = (N)) -> (((exists ff_h_pfp_empty_original_product_rightrightentry. ff_h_pfp_empty_original_product_rightrightentry + S (0) = S ((S (pfp_repeat_index_empty_original_product_rightright)) * cc)) /\ exists ff_q_pfp_empty_original_product_rightrightentry. cb = ff_q_pfp_empty_original_product_rightrightentry * S ((S (pfp_repeat_index_empty_original_product_rightright)) * cc) + (0)))
  109. specialize prime_field_polynomial_convolution_zero_right (p)
  110. specialize prime_field_polynomial_convolution_zero_right (ab)
  111. specialize prime_field_polynomial_convolution_zero_right (ac)
  112. specialize prime_field_polynomial_convolution_zero_right (L)
  113. specialize prime_field_polynomial_convolution_zero_right (bb)
  114. specialize prime_field_polynomial_convolution_zero_right (bc)
  115. specialize prime_field_polynomial_convolution_zero_right (M)
  116. specialize prime_field_polynomial_convolution_zero_right (cb)
  117. specialize prime_field_polynomial_convolution_zero_right (cc)
  118. specialize prime_field_polynomial_convolution_zero_right (N)
  119. apply prime_field_polynomial_convolution_zero_right
  120. exact hp
  121. exact hz
  122. exact hc
  123. have hn0 : forall pfp_repeat_index_empty_padded_product_rightright. (exists pfa_gap_empty_padded_product_rightrightindex. pfa_gap_empty_padded_product_rightrightindex + S (pfp_repeat_index_empty_padded_product_rightright) = (K)) -> (((exists ff_h_pfp_empty_padded_product_rightrightentry. ff_h_pfp_empty_padded_product_rightrightentry + S (0) = S ((S (pfp_repeat_index_empty_padded_product_rightright)) * CC)) /\ exists ff_q_pfp_empty_padded_product_rightrightentry. CB = ff_q_pfp_empty_padded_product_rightrightentry * S ((S (pfp_repeat_index_empty_padded_product_rightright)) * CC) + (0)))
  124. specialize prime_field_polynomial_convolution_zero_right (p)
  125. specialize prime_field_polynomial_convolution_zero_right (ab)
  126. specialize prime_field_polynomial_convolution_zero_right (ac)
  127. specialize prime_field_polynomial_convolution_zero_right (L)
  128. specialize prime_field_polynomial_convolution_zero_right (BB)
  129. specialize prime_field_polynomial_convolution_zero_right (BC)
  130. specialize prime_field_polynomial_convolution_zero_right (t+M)
  131. specialize prime_field_polynomial_convolution_zero_right (CB)
  132. specialize prime_field_polynomial_convolution_zero_right (CC)
  133. specialize prime_field_polynomial_convolution_zero_right (K)
  134. apply prime_field_polynomial_convolution_zero_right
  135. exact hp
  136. specialize polynomial_left_pad_zero_prefix (bb)
  137. specialize polynomial_left_pad_zero_prefix (bc)
  138. specialize polynomial_left_pad_zero_prefix (M)
  139. specialize polynomial_left_pad_zero_prefix (t)
  140. specialize polynomial_left_pad_zero_prefix (BB)
  141. specialize polynomial_left_pad_zero_prefix (BC)
  142. apply polynomial_left_pad_zero_prefix
  143. exact hz
  144. exact hpad
  145. exact hn
  146. have hec : forall pfrep_power_empty_first_equivalence_rightright pfrep_left_empty_first_equivalence_rightright pfrep_right_empty_first_equivalence_rightright. ((exists pfrep_position_empty_first_equivalence_rightrightfirst. ((pfrep_position_empty_first_equivalence_rightrightfirst+S (pfrep_power_empty_first_equivalence_rightright)=(N)) /\ ((((exists ff_h_pfp_empty_first_equivalence_rightrightfirstentry. ff_h_pfp_empty_first_equivalence_rightrightfirstentry + S (pfrep_left_empty_first_equivalence_rightright) = S ((S (pfrep_position_empty_first_equivalence_rightrightfirst)) * cc)) /\ exists ff_q_pfp_empty_first_equivalence_rightrightfirstentry. cb = ff_q_pfp_empty_first_equivalence_rightrightfirstentry * S ((S (pfrep_position_empty_first_equivalence_rightrightfirst)) * cc) + (pfrep_left_empty_first_equivalence_rightright)))))) \/ (((exists pfrep_gap_empty_first_equivalence_rightrightfirstoutside. pfrep_gap_empty_first_equivalence_rightrightfirstoutside+(N)=(pfrep_power_empty_first_equivalence_rightright)) /\ (((pfrep_left_empty_first_equivalence_rightright)=0))))) -> ((exists pfrep_position_empty_first_equivalence_rightrightsecond. ((pfrep_position_empty_first_equivalence_rightrightsecond+S (pfrep_power_empty_first_equivalence_rightright)=(0)) /\ ((((exists ff_h_pfp_empty_first_equivalence_rightrightsecondentry. ff_h_pfp_empty_first_equivalence_rightrightsecondentry + S (pfrep_right_empty_first_equivalence_rightright) = S ((S (pfrep_position_empty_first_equivalence_rightrightsecond)) * 0)) /\ exists ff_q_pfp_empty_first_equivalence_rightrightsecondentry. 0 = ff_q_pfp_empty_first_equivalence_rightrightsecondentry * S ((S (pfrep_position_empty_first_equivalence_rightrightsecond)) * 0) + (pfrep_right_empty_first_equivalence_rightright)))))) \/ (((exists pfrep_gap_empty_first_equivalence_rightrightsecondoutside. pfrep_gap_empty_first_equivalence_rightrightsecondoutside+(0)=(pfrep_power_empty_first_equivalence_rightright)) /\ (((pfrep_right_empty_first_equivalence_rightright)=0))))) -> pfrep_left_empty_first_equivalence_rightright=pfrep_right_empty_first_equivalence_rightright
  147. specialize prime_field_polynomial_zero_prefix_equivalent_empty (cb)
  148. specialize prime_field_polynomial_zero_prefix_equivalent_empty (cc)
  149. specialize prime_field_polynomial_zero_prefix_equivalent_empty (N)
  150. apply prime_field_polynomial_zero_prefix_equivalent_empty
  151. exact hc0
  152. have hen : forall pfrep_power_empty_second_equivalence_rightright pfrep_left_empty_second_equivalence_rightright pfrep_right_empty_second_equivalence_rightright. ((exists pfrep_position_empty_second_equivalence_rightrightfirst. ((pfrep_position_empty_second_equivalence_rightrightfirst+S (pfrep_power_empty_second_equivalence_rightright)=(K)) /\ ((((exists ff_h_pfp_empty_second_equivalence_rightrightfirstentry. ff_h_pfp_empty_second_equivalence_rightrightfirstentry + S (pfrep_left_empty_second_equivalence_rightright) = S ((S (pfrep_position_empty_second_equivalence_rightrightfirst)) * CC)) /\ exists ff_q_pfp_empty_second_equivalence_rightrightfirstentry. CB = ff_q_pfp_empty_second_equivalence_rightrightfirstentry * S ((S (pfrep_position_empty_second_equivalence_rightrightfirst)) * CC) + (pfrep_left_empty_second_equivalence_rightright)))))) \/ (((exists pfrep_gap_empty_second_equivalence_rightrightfirstoutside. pfrep_gap_empty_second_equivalence_rightrightfirstoutside+(K)=(pfrep_power_empty_second_equivalence_rightright)) /\ (((pfrep_left_empty_second_equivalence_rightright)=0))))) -> ((exists pfrep_position_empty_second_equivalence_rightrightsecond. ((pfrep_position_empty_second_equivalence_rightrightsecond+S (pfrep_power_empty_second_equivalence_rightright)=(0)) /\ ((((exists ff_h_pfp_empty_second_equivalence_rightrightsecondentry. ff_h_pfp_empty_second_equivalence_rightrightsecondentry + S (pfrep_right_empty_second_equivalence_rightright) = S ((S (pfrep_position_empty_second_equivalence_rightrightsecond)) * 0)) /\ exists ff_q_pfp_empty_second_equivalence_rightrightsecondentry. 0 = ff_q_pfp_empty_second_equivalence_rightrightsecondentry * S ((S (pfrep_position_empty_second_equivalence_rightrightsecond)) * 0) + (pfrep_right_empty_second_equivalence_rightright)))))) \/ (((exists pfrep_gap_empty_second_equivalence_rightrightsecondoutside. pfrep_gap_empty_second_equivalence_rightrightsecondoutside+(0)=(pfrep_power_empty_second_equivalence_rightright)) /\ (((pfrep_right_empty_second_equivalence_rightright)=0))))) -> pfrep_left_empty_second_equivalence_rightright=pfrep_right_empty_second_equivalence_rightright
  153. specialize prime_field_polynomial_zero_prefix_equivalent_empty (CB)
  154. specialize prime_field_polynomial_zero_prefix_equivalent_empty (CC)
  155. specialize prime_field_polynomial_zero_prefix_equivalent_empty (K)
  156. apply prime_field_polynomial_zero_prefix_equivalent_empty
  157. exact hn0
  158. specialize prime_field_polynomial_equivalent_transitive (cb)
  159. specialize prime_field_polynomial_equivalent_transitive (cc)
  160. specialize prime_field_polynomial_equivalent_transitive (N)
  161. specialize prime_field_polynomial_equivalent_transitive (0)
  162. specialize prime_field_polynomial_equivalent_transitive (0)
  163. specialize prime_field_polynomial_equivalent_transitive (0)
  164. specialize prime_field_polynomial_equivalent_transitive (CB)
  165. specialize prime_field_polynomial_equivalent_transitive (CC)
  166. specialize prime_field_polynomial_equivalent_transitive (K)
  167. apply prime_field_polynomial_equivalent_transitive
  168. exact hec
  169. specialize prime_field_polynomial_equivalent_symmetric (CB)
  170. specialize prime_field_polynomial_equivalent_symmetric (CC)
  171. specialize prime_field_polynomial_equivalent_symmetric (K)
  172. specialize prime_field_polynomial_equivalent_symmetric (0)
  173. specialize prime_field_polynomial_equivalent_symmetric (0)
  174. specialize prime_field_polynomial_equivalent_symmetric (0)
  175. apply prime_field_polynomial_equivalent_symmetric
  176. exact hen
  177. have hd : ((K=t+N) /\ ((((forall pfp_repeat_index_product_equivalent_padding_rightzeros. (exists pfa_gap_product_equivalent_padding_rightzerosindex. pfa_gap_product_equivalent_padding_rightzerosindex + S (pfp_repeat_index_product_equivalent_padding_rightzeros) = (t)) -> (((exists ff_h_pfp_product_equivalent_padding_rightzerosentry. ff_h_pfp_product_equivalent_padding_rightzerosentry + S (0) = S ((S (pfp_repeat_index_product_equivalent_padding_rightzeros)) * CC)) /\ exists ff_q_pfp_product_equivalent_padding_rightzerosentry. CB = ff_q_pfp_product_equivalent_padding_rightzerosentry * S ((S (pfp_repeat_index_product_equivalent_padding_rightzeros)) * CC) + (0)))) /\ ((forall pfrep_index_product_equivalent_padding_right pfrep_value_product_equivalent_padding_right. (exists pfa_gap_product_equivalent_padding_rightbound. pfa_gap_product_equivalent_padding_rightbound + S (pfrep_index_product_equivalent_padding_right) = (N)) -> (((exists ff_h_pfp_product_equivalent_padding_rightinput. ff_h_pfp_product_equivalent_padding_rightinput + S (pfrep_value_product_equivalent_padding_right) = S ((S (pfrep_index_product_equivalent_padding_right)) * cc)) /\ exists ff_q_pfp_product_equivalent_padding_rightinput. cb = ff_q_pfp_product_equivalent_padding_rightinput * S ((S (pfrep_index_product_equivalent_padding_right)) * cc) + (pfrep_value_product_equivalent_padding_right))) -> (((exists ff_h_pfp_product_equivalent_padding_rightoutput. ff_h_pfp_product_equivalent_padding_rightoutput + S (pfrep_value_product_equivalent_padding_right) = S ((S ((t)+pfrep_index_product_equivalent_padding_right)) * CC)) /\ exists ff_q_pfp_product_equivalent_padding_rightoutput. CB = ff_q_pfp_product_equivalent_padding_rightoutput * S ((S ((t)+pfrep_index_product_equivalent_padding_right)) * CC) + (pfrep_value_product_equivalent_padding_right)))))))))
  178. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (p)
  179. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (ab)
  180. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (ac)
  181. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (L)
  182. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (bb)
  183. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (bc)
  184. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (M)
  185. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (cb)
  186. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (cc)
  187. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (N)
  188. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (BB)
  189. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (BC)
  190. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (t)
  191. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (CB)
  192. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (CC)
  193. specialize prime_field_polynomial_convolution_left_padding_nonempty_right (K)
  194. apply prime_field_polynomial_convolution_left_padding_nonempty_right
  195. exact hp
  196. exact hL_right
  197. exact hM_right
  198. exact hpad
  199. exact hc
  200. exact hn
  201. cases hd
  202. rewrite hd_left
  203. rewrite hd_left
  204. specialize prime_field_polynomial_left_pad_equivalent (cb)
  205. specialize prime_field_polynomial_left_pad_equivalent (cc)
  206. specialize prime_field_polynomial_left_pad_equivalent (N)
  207. specialize prime_field_polynomial_left_pad_equivalent (t)
  208. specialize prime_field_polynomial_left_pad_equivalent (CB)
  209. specialize prime_field_polynomial_left_pad_equivalent (CC)
  210. apply prime_field_polynomial_left_pad_equivalent
  211. exact hd_right
prime_field_polynomial_equivalent_implies_equal_same_length · unchanged support, not a new admission
forall b c d e L. (forall pfrep_power_equivalent_to_equal_input pfrep_left_equivalent_to_equal_input pfrep_right_equivalent_to_equal_input. ((exists pfrep_position_equivalent_to_equal_inputfirst. ((pfrep_position_equivalent_to_equal_inputfirst+S (pfrep_power_equivalent_to_equal_input)=(L)) /\ ((((exists ff_h_pfp_equivalent_to_equal_inputfirstentry. ff_h_pfp_equivalent_to_equal_inputfirstentry + S (pfrep_left_equivalent_to_equal_input) = S ((S (pfrep_position_equivalent_to_equal_inputfirst)) * c)) /\ exists ff_q_pfp_equivalent_to_equal_inputfirstentry. b = ff_q_pfp_equivalent_to_equal_inputfirstentry * S ((S (pfrep_position_equivalent_to_equal_inputfirst)) * c) + (pfrep_left_equivalent_to_equal_input)))))) \/ (((exists pfrep_gap_equivalent_to_equal_inputfirstoutside. pfrep_gap_equivalent_to_equal_inputfirstoutside+(L)=(pfrep_power_equivalent_to_equal_input)) /\ (((pfrep_left_equivalent_to_equal_input)=0))))) -> ((exists pfrep_position_equivalent_to_equal_inputsecond. ((pfrep_position_equivalent_to_equal_inputsecond+S (pfrep_power_equivalent_to_equal_input)=(L)) /\ ((((exists ff_h_pfp_equivalent_to_equal_inputsecondentry. ff_h_pfp_equivalent_to_equal_inputsecondentry + S (pfrep_right_equivalent_to_equal_input) = S ((S (pfrep_position_equivalent_to_equal_inputsecond)) * e)) /\ exists ff_q_pfp_equivalent_to_equal_inputsecondentry. d = ff_q_pfp_equivalent_to_equal_inputsecondentry * S ((S (pfrep_position_equivalent_to_equal_inputsecond)) * e) + (pfrep_right_equivalent_to_equal_input)))))) \/ (((exists pfrep_gap_equivalent_to_equal_inputsecondoutside. pfrep_gap_equivalent_to_equal_inputsecondoutside+(L)=(pfrep_power_equivalent_to_equal_input)) /\ (((pfrep_right_equivalent_to_equal_input)=0))))) -> pfrep_left_equivalent_to_equal_input=pfrep_right_equivalent_to_equal_input) -> (forall mdr_i_pfp_equivalent_to_equal_result mdr_a_pfp_equivalent_to_equal_result. (exists mdr_gap_pfp_equivalent_to_equal_resultb. mdr_gap_pfp_equivalent_to_equal_resultb + S (mdr_i_pfp_equivalent_to_equal_result) = (L)) -> (((exists ff_h_mdr_pfp_equivalent_to_equal_resulto. ff_h_mdr_pfp_equivalent_to_equal_resulto + S (mdr_a_pfp_equivalent_to_equal_result) = S ((S (mdr_i_pfp_equivalent_to_equal_result)) * c)) /\ exists ff_q_mdr_pfp_equivalent_to_equal_resulto. b = ff_q_mdr_pfp_equivalent_to_equal_resulto * S ((S (mdr_i_pfp_equivalent_to_equal_result)) * c) + (mdr_a_pfp_equivalent_to_equal_result))) -> (((exists ff_h_mdr_pfp_equivalent_to_equal_resultn. ff_h_mdr_pfp_equivalent_to_equal_resultn + S (mdr_a_pfp_equivalent_to_equal_result) = S ((S (mdr_i_pfp_equivalent_to_equal_result)) * e)) /\ exists ff_q_mdr_pfp_equivalent_to_equal_resultn. d = ff_q_mdr_pfp_equivalent_to_equal_resultn * S ((S (mdr_i_pfp_equivalent_to_equal_result)) * e) + (mdr_a_pfp_equivalent_to_equal_result))))
  1. intro b
  2. intro c
  3. intro d
  4. intro e
  5. intro L
  6. intro he
  7. intro i
  8. intro a
  9. intro hi
  10. intro ha
  11. cases hi
  12. have hs : i+S x=L
  13. trans x+S i
  14. simp [add_comm]
  15. exact hi_witness
  16. have hv : exists r. (((exists ff_h_pfp_equivalent_to_equal_lookup. ff_h_pfp_equivalent_to_equal_lookup + S (r) = S ((S (i)) * e)) /\ exists ff_q_pfp_equivalent_to_equal_lookup. d = ff_q_pfp_equivalent_to_equal_lookup * S ((S (i)) * e) + (r)))
  17. specialize beta_at_exists (d)
  18. specialize beta_at_exists (e)
  19. specialize beta_at_exists (i)
  20. apply beta_at_exists
  21. cases hv
  22. have heq : a=x1
  23. specialize he (x)
  24. specialize he (a)
  25. specialize he (x1)
  26. apply he
  27. left
  28. exists i
  29. split
  30. exact hs
  31. exact ha
  32. left
  33. exists i
  34. split
  35. exact hs
  36. exact hv_witness
  37. rewrite heq
  38. rewrite heq
  39. exact hv_witness
prime_field_polynomial_left_pad_transport · unchanged support, not a new admission
forall b c B C L t d e D E. (forall mdr_i_pfp_pad_transport_input mdr_a_pfp_pad_transport_input. (exists mdr_gap_pfp_pad_transport_inputb. mdr_gap_pfp_pad_transport_inputb + S (mdr_i_pfp_pad_transport_input) = (L)) -> (((exists ff_h_mdr_pfp_pad_transport_inputo. ff_h_mdr_pfp_pad_transport_inputo + S (mdr_a_pfp_pad_transport_input) = S ((S (mdr_i_pfp_pad_transport_input)) * c)) /\ exists ff_q_mdr_pfp_pad_transport_inputo. b = ff_q_mdr_pfp_pad_transport_inputo * S ((S (mdr_i_pfp_pad_transport_input)) * c) + (mdr_a_pfp_pad_transport_input))) -> (((exists ff_h_mdr_pfp_pad_transport_inputn. ff_h_mdr_pfp_pad_transport_inputn + S (mdr_a_pfp_pad_transport_input) = S ((S (mdr_i_pfp_pad_transport_input)) * C)) /\ exists ff_q_mdr_pfp_pad_transport_inputn. B = ff_q_mdr_pfp_pad_transport_inputn * S ((S (mdr_i_pfp_pad_transport_input)) * C) + (mdr_a_pfp_pad_transport_input)))) -> (forall mdr_i_pfp_pad_transport_output mdr_a_pfp_pad_transport_output. (exists mdr_gap_pfp_pad_transport_outputb. mdr_gap_pfp_pad_transport_outputb + S (mdr_i_pfp_pad_transport_output) = (t+L)) -> (((exists ff_h_mdr_pfp_pad_transport_outputo. ff_h_mdr_pfp_pad_transport_outputo + S (mdr_a_pfp_pad_transport_output) = S ((S (mdr_i_pfp_pad_transport_output)) * e)) /\ exists ff_q_mdr_pfp_pad_transport_outputo. d = ff_q_mdr_pfp_pad_transport_outputo * S ((S (mdr_i_pfp_pad_transport_output)) * e) + (mdr_a_pfp_pad_transport_output))) -> (((exists ff_h_mdr_pfp_pad_transport_outputn. ff_h_mdr_pfp_pad_transport_outputn + S (mdr_a_pfp_pad_transport_output) = S ((S (mdr_i_pfp_pad_transport_output)) * E)) /\ exists ff_q_mdr_pfp_pad_transport_outputn. D = ff_q_mdr_pfp_pad_transport_outputn * S ((S (mdr_i_pfp_pad_transport_output)) * E) + (mdr_a_pfp_pad_transport_output)))) -> (((forall pfp_repeat_index_pad_transport_oldzeros. (exists pfa_gap_pad_transport_oldzerosindex. pfa_gap_pad_transport_oldzerosindex + S (pfp_repeat_index_pad_transport_oldzeros) = (t)) -> (((exists ff_h_pfp_pad_transport_oldzerosentry. ff_h_pfp_pad_transport_oldzerosentry + S (0) = S ((S (pfp_repeat_index_pad_transport_oldzeros)) * e)) /\ exists ff_q_pfp_pad_transport_oldzerosentry. d = ff_q_pfp_pad_transport_oldzerosentry * S ((S (pfp_repeat_index_pad_transport_oldzeros)) * e) + (0)))) /\ ((forall pfrep_index_pad_transport_old pfrep_value_pad_transport_old. (exists pfa_gap_pad_transport_oldbound. pfa_gap_pad_transport_oldbound + S (pfrep_index_pad_transport_old) = (L)) -> (((exists ff_h_pfp_pad_transport_oldinput. ff_h_pfp_pad_transport_oldinput + S (pfrep_value_pad_transport_old) = S ((S (pfrep_index_pad_transport_old)) * c)) /\ exists ff_q_pfp_pad_transport_oldinput. b = ff_q_pfp_pad_transport_oldinput * S ((S (pfrep_index_pad_transport_old)) * c) + (pfrep_value_pad_transport_old))) -> (((exists ff_h_pfp_pad_transport_oldoutput. ff_h_pfp_pad_transport_oldoutput + S (pfrep_value_pad_transport_old) = S ((S ((t)+pfrep_index_pad_transport_old)) * e)) /\ exists ff_q_pfp_pad_transport_oldoutput. d = ff_q_pfp_pad_transport_oldoutput * S ((S ((t)+pfrep_index_pad_transport_old)) * e) + (pfrep_value_pad_transport_old))))))) -> (((forall pfp_repeat_index_pad_transport_newzeros. (exists pfa_gap_pad_transport_newzerosindex. pfa_gap_pad_transport_newzerosindex + S (pfp_repeat_index_pad_transport_newzeros) = (t)) -> (((exists ff_h_pfp_pad_transport_newzerosentry. ff_h_pfp_pad_transport_newzerosentry + S (0) = S ((S (pfp_repeat_index_pad_transport_newzeros)) * E)) /\ exists ff_q_pfp_pad_transport_newzerosentry. D = ff_q_pfp_pad_transport_newzerosentry * S ((S (pfp_repeat_index_pad_transport_newzeros)) * E) + (0)))) /\ ((forall pfrep_index_pad_transport_new pfrep_value_pad_transport_new. (exists pfa_gap_pad_transport_newbound. pfa_gap_pad_transport_newbound + S (pfrep_index_pad_transport_new) = (L)) -> (((exists ff_h_pfp_pad_transport_newinput. ff_h_pfp_pad_transport_newinput + S (pfrep_value_pad_transport_new) = S ((S (pfrep_index_pad_transport_new)) * C)) /\ exists ff_q_pfp_pad_transport_newinput. B = ff_q_pfp_pad_transport_newinput * S ((S (pfrep_index_pad_transport_new)) * C) + (pfrep_value_pad_transport_new))) -> (((exists ff_h_pfp_pad_transport_newoutput. ff_h_pfp_pad_transport_newoutput + S (pfrep_value_pad_transport_new) = S ((S ((t)+pfrep_index_pad_transport_new)) * E)) /\ exists ff_q_pfp_pad_transport_newoutput. D = ff_q_pfp_pad_transport_newoutput * S ((S ((t)+pfrep_index_pad_transport_new)) * E) + (pfrep_value_pad_transport_new)))))))
  1. intro b
  2. intro c
  3. intro B
  4. intro C
  5. intro L
  6. intro t
  7. intro d
  8. intro e
  9. intro D
  10. intro E
  11. intro hi
  12. intro ho
  13. intro h
  14. cases h
  15. have hr : forall mdr_i_pfp_pad_transport_reverse mdr_a_pfp_pad_transport_reverse. (exists mdr_gap_pfp_pad_transport_reverseb. mdr_gap_pfp_pad_transport_reverseb + S (mdr_i_pfp_pad_transport_reverse) = (L)) -> (((exists ff_h_mdr_pfp_pad_transport_reverseo. ff_h_mdr_pfp_pad_transport_reverseo + S (mdr_a_pfp_pad_transport_reverse) = S ((S (mdr_i_pfp_pad_transport_reverse)) * C)) /\ exists ff_q_mdr_pfp_pad_transport_reverseo. B = ff_q_mdr_pfp_pad_transport_reverseo * S ((S (mdr_i_pfp_pad_transport_reverse)) * C) + (mdr_a_pfp_pad_transport_reverse))) -> (((exists ff_h_mdr_pfp_pad_transport_reversen. ff_h_mdr_pfp_pad_transport_reversen + S (mdr_a_pfp_pad_transport_reverse) = S ((S (mdr_i_pfp_pad_transport_reverse)) * c)) /\ exists ff_q_mdr_pfp_pad_transport_reversen. b = ff_q_mdr_pfp_pad_transport_reversen * S ((S (mdr_i_pfp_pad_transport_reverse)) * c) + (mdr_a_pfp_pad_transport_reverse)))
  16. specialize matrix_rank_prefix_equality_symmetric (b)
  17. specialize matrix_rank_prefix_equality_symmetric (c)
  18. specialize matrix_rank_prefix_equality_symmetric (B)
  19. specialize matrix_rank_prefix_equality_symmetric (C)
  20. specialize matrix_rank_prefix_equality_symmetric (L)
  21. apply matrix_rank_prefix_equality_symmetric
  22. exact hi
  23. split
  24. intro i
  25. intro hindex
  26. specialize ho (i)
  27. specialize ho (0)
  28. apply ho
  29. specialize lt_of_lt_of_le (i)
  30. specialize lt_of_lt_of_le (t)
  31. specialize lt_of_lt_of_le (t+L)
  32. apply lt_of_lt_of_le
  33. exact hindex
  34. specialize le_add_right (t)
  35. specialize le_add_right (L)
  36. apply le_add_right
  37. specialize h_left (i)
  38. apply h_left
  39. exact hindex
  40. intro i
  41. intro a
  42. intro hindex
  43. intro ha
  44. specialize ho (t+i)
  45. specialize ho (a)
  46. apply ho
  47. specialize matrix_recursive_lt_add_left (i)
  48. specialize matrix_recursive_lt_add_left (L)
  49. specialize matrix_recursive_lt_add_left (t)
  50. apply matrix_recursive_lt_add_left
  51. exact hindex
  52. specialize h_right (i)
  53. specialize h_right (a)
  54. apply h_right
  55. exact hindex
  56. specialize hr (i)
  57. specialize hr (a)
  58. apply hr
  59. exact hindex
  60. exact ha
prime_field_polynomial_equivalent_implies_left_pad · unchanged support, not a new admission
forall b c L t d e. (forall pfrep_power_converse_input pfrep_left_converse_input pfrep_right_converse_input. ((exists pfrep_position_converse_inputfirst. ((pfrep_position_converse_inputfirst+S (pfrep_power_converse_input)=(L)) /\ ((((exists ff_h_pfp_converse_inputfirstentry. ff_h_pfp_converse_inputfirstentry + S (pfrep_left_converse_input) = S ((S (pfrep_position_converse_inputfirst)) * c)) /\ exists ff_q_pfp_converse_inputfirstentry. b = ff_q_pfp_converse_inputfirstentry * S ((S (pfrep_position_converse_inputfirst)) * c) + (pfrep_left_converse_input)))))) \/ (((exists pfrep_gap_converse_inputfirstoutside. pfrep_gap_converse_inputfirstoutside+(L)=(pfrep_power_converse_input)) /\ (((pfrep_left_converse_input)=0))))) -> ((exists pfrep_position_converse_inputsecond. ((pfrep_position_converse_inputsecond+S (pfrep_power_converse_input)=(t+L)) /\ ((((exists ff_h_pfp_converse_inputsecondentry. ff_h_pfp_converse_inputsecondentry + S (pfrep_right_converse_input) = S ((S (pfrep_position_converse_inputsecond)) * e)) /\ exists ff_q_pfp_converse_inputsecondentry. d = ff_q_pfp_converse_inputsecondentry * S ((S (pfrep_position_converse_inputsecond)) * e) + (pfrep_right_converse_input)))))) \/ (((exists pfrep_gap_converse_inputsecondoutside. pfrep_gap_converse_inputsecondoutside+(t+L)=(pfrep_power_converse_input)) /\ (((pfrep_right_converse_input)=0))))) -> pfrep_left_converse_input=pfrep_right_converse_input) -> (((forall pfp_repeat_index_converse_resultzeros. (exists pfa_gap_converse_resultzerosindex. pfa_gap_converse_resultzerosindex + S (pfp_repeat_index_converse_resultzeros) = (t)) -> (((exists ff_h_pfp_converse_resultzerosentry. ff_h_pfp_converse_resultzerosentry + S (0) = S ((S (pfp_repeat_index_converse_resultzeros)) * e)) /\ exists ff_q_pfp_converse_resultzerosentry. d = ff_q_pfp_converse_resultzerosentry * S ((S (pfp_repeat_index_converse_resultzeros)) * e) + (0)))) /\ ((forall pfrep_index_converse_result pfrep_value_converse_result. (exists pfa_gap_converse_resultbound. pfa_gap_converse_resultbound + S (pfrep_index_converse_result) = (L)) -> (((exists ff_h_pfp_converse_resultinput. ff_h_pfp_converse_resultinput + S (pfrep_value_converse_result) = S ((S (pfrep_index_converse_result)) * c)) /\ exists ff_q_pfp_converse_resultinput. b = ff_q_pfp_converse_resultinput * S ((S (pfrep_index_converse_result)) * c) + (pfrep_value_converse_result))) -> (((exists ff_h_pfp_converse_resultoutput. ff_h_pfp_converse_resultoutput + S (pfrep_value_converse_result) = S ((S ((t)+pfrep_index_converse_result)) * e)) /\ exists ff_q_pfp_converse_resultoutput. d = ff_q_pfp_converse_resultoutput * S ((S ((t)+pfrep_index_converse_result)) * e) + (pfrep_value_converse_result)))))))
  1. intro b
  2. intro c
  3. intro L
  4. intro t
  5. intro d
  6. intro e
  7. intro he
  8. have hp : exists B C. (((forall pfp_repeat_index_converse_constructedzeros. (exists pfa_gap_converse_constructedzerosindex. pfa_gap_converse_constructedzerosindex + S (pfp_repeat_index_converse_constructedzeros) = (t)) -> (((exists ff_h_pfp_converse_constructedzerosentry. ff_h_pfp_converse_constructedzerosentry + S (0) = S ((S (pfp_repeat_index_converse_constructedzeros)) * C)) /\ exists ff_q_pfp_converse_constructedzerosentry. B = ff_q_pfp_converse_constructedzerosentry * S ((S (pfp_repeat_index_converse_constructedzeros)) * C) + (0)))) /\ ((forall pfrep_index_converse_constructed pfrep_value_converse_constructed. (exists pfa_gap_converse_constructedbound. pfa_gap_converse_constructedbound + S (pfrep_index_converse_constructed) = (L)) -> (((exists ff_h_pfp_converse_constructedinput. ff_h_pfp_converse_constructedinput + S (pfrep_value_converse_constructed) = S ((S (pfrep_index_converse_constructed)) * c)) /\ exists ff_q_pfp_converse_constructedinput. b = ff_q_pfp_converse_constructedinput * S ((S (pfrep_index_converse_constructed)) * c) + (pfrep_value_converse_constructed))) -> (((exists ff_h_pfp_converse_constructedoutput. ff_h_pfp_converse_constructedoutput + S (pfrep_value_converse_constructed) = S ((S ((t)+pfrep_index_converse_constructed)) * C)) /\ exists ff_q_pfp_converse_constructedoutput. B = ff_q_pfp_converse_constructedoutput * S ((S ((t)+pfrep_index_converse_constructed)) * C) + (pfrep_value_converse_constructed)))))))
  9. specialize prime_field_polynomial_left_pad_exists (b)
  10. specialize prime_field_polynomial_left_pad_exists (c)
  11. specialize prime_field_polynomial_left_pad_exists (t)
  12. specialize prime_field_polynomial_left_pad_exists (L)
  13. apply prime_field_polynomial_left_pad_exists
  14. cases hp
  15. cases hp_witness
  16. have hs : forall pfrep_power_converse_source pfrep_left_converse_source pfrep_right_converse_source. ((exists pfrep_position_converse_sourcefirst. ((pfrep_position_converse_sourcefirst+S (pfrep_power_converse_source)=(L)) /\ ((((exists ff_h_pfp_converse_sourcefirstentry. ff_h_pfp_converse_sourcefirstentry + S (pfrep_left_converse_source) = S ((S (pfrep_position_converse_sourcefirst)) * c)) /\ exists ff_q_pfp_converse_sourcefirstentry. b = ff_q_pfp_converse_sourcefirstentry * S ((S (pfrep_position_converse_sourcefirst)) * c) + (pfrep_left_converse_source)))))) \/ (((exists pfrep_gap_converse_sourcefirstoutside. pfrep_gap_converse_sourcefirstoutside+(L)=(pfrep_power_converse_source)) /\ (((pfrep_left_converse_source)=0))))) -> ((exists pfrep_position_converse_sourcesecond. ((pfrep_position_converse_sourcesecond+S (pfrep_power_converse_source)=(t+L)) /\ ((((exists ff_h_pfp_converse_sourcesecondentry. ff_h_pfp_converse_sourcesecondentry + S (pfrep_right_converse_source) = S ((S (pfrep_position_converse_sourcesecond)) * x1)) /\ exists ff_q_pfp_converse_sourcesecondentry. x = ff_q_pfp_converse_sourcesecondentry * S ((S (pfrep_position_converse_sourcesecond)) * x1) + (pfrep_right_converse_source)))))) \/ (((exists pfrep_gap_converse_sourcesecondoutside. pfrep_gap_converse_sourcesecondoutside+(t+L)=(pfrep_power_converse_source)) /\ (((pfrep_right_converse_source)=0))))) -> pfrep_left_converse_source=pfrep_right_converse_source
  17. specialize prime_field_polynomial_left_pad_equivalent (b)
  18. specialize prime_field_polynomial_left_pad_equivalent (c)
  19. specialize prime_field_polynomial_left_pad_equivalent (L)
  20. specialize prime_field_polynomial_left_pad_equivalent (t)
  21. specialize prime_field_polynomial_left_pad_equivalent (x)
  22. specialize prime_field_polynomial_left_pad_equivalent (x1)
  23. apply prime_field_polynomial_left_pad_equivalent
  24. exact hp_witness_witness
  25. have hr : forall pfrep_power_converse_reverse pfrep_left_converse_reverse pfrep_right_converse_reverse. ((exists pfrep_position_converse_reversefirst. ((pfrep_position_converse_reversefirst+S (pfrep_power_converse_reverse)=(t+L)) /\ ((((exists ff_h_pfp_converse_reversefirstentry. ff_h_pfp_converse_reversefirstentry + S (pfrep_left_converse_reverse) = S ((S (pfrep_position_converse_reversefirst)) * x1)) /\ exists ff_q_pfp_converse_reversefirstentry. x = ff_q_pfp_converse_reversefirstentry * S ((S (pfrep_position_converse_reversefirst)) * x1) + (pfrep_left_converse_reverse)))))) \/ (((exists pfrep_gap_converse_reversefirstoutside. pfrep_gap_converse_reversefirstoutside+(t+L)=(pfrep_power_converse_reverse)) /\ (((pfrep_left_converse_reverse)=0))))) -> ((exists pfrep_position_converse_reversesecond. ((pfrep_position_converse_reversesecond+S (pfrep_power_converse_reverse)=(L)) /\ ((((exists ff_h_pfp_converse_reversesecondentry. ff_h_pfp_converse_reversesecondentry + S (pfrep_right_converse_reverse) = S ((S (pfrep_position_converse_reversesecond)) * c)) /\ exists ff_q_pfp_converse_reversesecondentry. b = ff_q_pfp_converse_reversesecondentry * S ((S (pfrep_position_converse_reversesecond)) * c) + (pfrep_right_converse_reverse)))))) \/ (((exists pfrep_gap_converse_reversesecondoutside. pfrep_gap_converse_reversesecondoutside+(L)=(pfrep_power_converse_reverse)) /\ (((pfrep_right_converse_reverse)=0))))) -> pfrep_left_converse_reverse=pfrep_right_converse_reverse
  26. specialize prime_field_polynomial_equivalent_symmetric (b)
  27. specialize prime_field_polynomial_equivalent_symmetric (c)
  28. specialize prime_field_polynomial_equivalent_symmetric (L)
  29. specialize prime_field_polynomial_equivalent_symmetric (x)
  30. specialize prime_field_polynomial_equivalent_symmetric (x1)
  31. specialize prime_field_polynomial_equivalent_symmetric (t+L)
  32. apply prime_field_polynomial_equivalent_symmetric
  33. exact hs
  34. have ht : forall pfrep_power_converse_target pfrep_left_converse_target pfrep_right_converse_target. ((exists pfrep_position_converse_targetfirst. ((pfrep_position_converse_targetfirst+S (pfrep_power_converse_target)=(t+L)) /\ ((((exists ff_h_pfp_converse_targetfirstentry. ff_h_pfp_converse_targetfirstentry + S (pfrep_left_converse_target) = S ((S (pfrep_position_converse_targetfirst)) * x1)) /\ exists ff_q_pfp_converse_targetfirstentry. x = ff_q_pfp_converse_targetfirstentry * S ((S (pfrep_position_converse_targetfirst)) * x1) + (pfrep_left_converse_target)))))) \/ (((exists pfrep_gap_converse_targetfirstoutside. pfrep_gap_converse_targetfirstoutside+(t+L)=(pfrep_power_converse_target)) /\ (((pfrep_left_converse_target)=0))))) -> ((exists pfrep_position_converse_targetsecond. ((pfrep_position_converse_targetsecond+S (pfrep_power_converse_target)=(t+L)) /\ ((((exists ff_h_pfp_converse_targetsecondentry. ff_h_pfp_converse_targetsecondentry + S (pfrep_right_converse_target) = S ((S (pfrep_position_converse_targetsecond)) * e)) /\ exists ff_q_pfp_converse_targetsecondentry. d = ff_q_pfp_converse_targetsecondentry * S ((S (pfrep_position_converse_targetsecond)) * e) + (pfrep_right_converse_target)))))) \/ (((exists pfrep_gap_converse_targetsecondoutside. pfrep_gap_converse_targetsecondoutside+(t+L)=(pfrep_power_converse_target)) /\ (((pfrep_right_converse_target)=0))))) -> pfrep_left_converse_target=pfrep_right_converse_target
  35. specialize prime_field_polynomial_equivalent_transitive (x)
  36. specialize prime_field_polynomial_equivalent_transitive (x1)
  37. specialize prime_field_polynomial_equivalent_transitive (t+L)
  38. specialize prime_field_polynomial_equivalent_transitive (b)
  39. specialize prime_field_polynomial_equivalent_transitive (c)
  40. specialize prime_field_polynomial_equivalent_transitive (L)
  41. specialize prime_field_polynomial_equivalent_transitive (d)
  42. specialize prime_field_polynomial_equivalent_transitive (e)
  43. specialize prime_field_polynomial_equivalent_transitive (t+L)
  44. apply prime_field_polynomial_equivalent_transitive
  45. exact hr
  46. exact he
  47. have hv : forall mdr_i_pfp_converse_values mdr_a_pfp_converse_values. (exists mdr_gap_pfp_converse_valuesb. mdr_gap_pfp_converse_valuesb + S (mdr_i_pfp_converse_values) = (t+L)) -> (((exists ff_h_mdr_pfp_converse_valueso. ff_h_mdr_pfp_converse_valueso + S (mdr_a_pfp_converse_values) = S ((S (mdr_i_pfp_converse_values)) * x1)) /\ exists ff_q_mdr_pfp_converse_valueso. x = ff_q_mdr_pfp_converse_valueso * S ((S (mdr_i_pfp_converse_values)) * x1) + (mdr_a_pfp_converse_values))) -> (((exists ff_h_mdr_pfp_converse_valuesn. ff_h_mdr_pfp_converse_valuesn + S (mdr_a_pfp_converse_values) = S ((S (mdr_i_pfp_converse_values)) * e)) /\ exists ff_q_mdr_pfp_converse_valuesn. d = ff_q_mdr_pfp_converse_valuesn * S ((S (mdr_i_pfp_converse_values)) * e) + (mdr_a_pfp_converse_values)))
  48. specialize prime_field_polynomial_equivalent_implies_equal_same_length (x)
  49. specialize prime_field_polynomial_equivalent_implies_equal_same_length (x1)
  50. specialize prime_field_polynomial_equivalent_implies_equal_same_length (d)
  51. specialize prime_field_polynomial_equivalent_implies_equal_same_length (e)
  52. specialize prime_field_polynomial_equivalent_implies_equal_same_length (t+L)
  53. apply prime_field_polynomial_equivalent_implies_equal_same_length
  54. exact ht
  55. specialize prime_field_polynomial_left_pad_transport (b)
  56. specialize prime_field_polynomial_left_pad_transport (c)
  57. specialize prime_field_polynomial_left_pad_transport (b)
  58. specialize prime_field_polynomial_left_pad_transport (c)
  59. specialize prime_field_polynomial_left_pad_transport (L)
  60. specialize prime_field_polynomial_left_pad_transport (t)
  61. specialize prime_field_polynomial_left_pad_transport (x)
  62. specialize prime_field_polynomial_left_pad_transport (x1)
  63. specialize prime_field_polynomial_left_pad_transport (d)
  64. specialize prime_field_polynomial_left_pad_transport (e)
  65. apply prime_field_polynomial_left_pad_transport
  66. intro i
  67. intro a
  68. intro hi
  69. intro ha
  70. exact ha
  71. exact hv
  72. exact hp_witness_witness
prime_field_polynomial_add_left_pad_transport · unchanged support, not a new admission
forall p ab ac bb bc cb cc L t AB AC BB BC CB CC. (~((p) = 1) /\ forall pfa_factor_left_pad_operation_prime pfa_factor_right_pad_operation_prime. (p) = pfa_factor_left_pad_operation_prime * pfa_factor_right_pad_operation_prime -> pfa_factor_left_pad_operation_prime = 1 \/ pfa_factor_right_pad_operation_prime = 1) -> (forall pfp_index_pad_operation_old. (exists pfa_gap_pad_operation_oldindex. pfa_gap_pad_operation_oldindex + S (pfp_index_pad_operation_old) = (L)) -> exists pfp_left_pad_operation_old pfp_right_pad_operation_old pfp_value_pad_operation_old. ((((exists ff_h_pfp_pad_operation_oldleft. ff_h_pfp_pad_operation_oldleft + S (pfp_left_pad_operation_old) = S ((S (pfp_index_pad_operation_old)) * ac)) /\ exists ff_q_pfp_pad_operation_oldleft. ab = ff_q_pfp_pad_operation_oldleft * S ((S (pfp_index_pad_operation_old)) * ac) + (pfp_left_pad_operation_old))) /\ (((((exists ff_h_pfp_pad_operation_oldright. ff_h_pfp_pad_operation_oldright + S (pfp_right_pad_operation_old) = S ((S (pfp_index_pad_operation_old)) * bc)) /\ exists ff_q_pfp_pad_operation_oldright. bb = ff_q_pfp_pad_operation_oldright * S ((S (pfp_index_pad_operation_old)) * bc) + (pfp_right_pad_operation_old))) /\ (((((exists ff_h_pfp_pad_operation_oldtarget. ff_h_pfp_pad_operation_oldtarget + S (pfp_value_pad_operation_old) = S ((S (pfp_index_pad_operation_old)) * cc)) /\ exists ff_q_pfp_pad_operation_oldtarget. cb = ff_q_pfp_pad_operation_oldtarget * S ((S (pfp_index_pad_operation_old)) * cc) + (pfp_value_pad_operation_old))) /\ ((((exists pfa_gap_pad_operation_oldoperationleft. pfa_gap_pad_operation_oldoperationleft + S (pfp_left_pad_operation_old) = (p)) /\ (((exists pfa_gap_pad_operation_oldoperationright. pfa_gap_pad_operation_oldoperationright + S (pfp_right_pad_operation_old) = (p)) /\ ((((exists pfa_gap_pad_operation_oldoperationresultbound. pfa_gap_pad_operation_oldoperationresultbound + S (pfp_value_pad_operation_old) = (p)) /\ ((exists pfa_offset_left_pad_operation_oldoperationresultcongruence pfa_offset_right_pad_operation_oldoperationresultcongruence. ((pfp_left_pad_operation_old) + (pfp_right_pad_operation_old)) + (p) * pfa_offset_left_pad_operation_oldoperationresultcongruence = (pfp_value_pad_operation_old) + (p) * pfa_offset_right_pad_operation_oldoperationresultcongruence)))))))))))))))) -> (((forall pfp_repeat_index_pad_operation_abzeros. (exists pfa_gap_pad_operation_abzerosindex. pfa_gap_pad_operation_abzerosindex + S (pfp_repeat_index_pad_operation_abzeros) = (t)) -> (((exists ff_h_pfp_pad_operation_abzerosentry. ff_h_pfp_pad_operation_abzerosentry + S (0) = S ((S (pfp_repeat_index_pad_operation_abzeros)) * AC)) /\ exists ff_q_pfp_pad_operation_abzerosentry. AB = ff_q_pfp_pad_operation_abzerosentry * S ((S (pfp_repeat_index_pad_operation_abzeros)) * AC) + (0)))) /\ ((forall pfrep_index_pad_operation_ab pfrep_value_pad_operation_ab. (exists pfa_gap_pad_operation_abbound. pfa_gap_pad_operation_abbound + S (pfrep_index_pad_operation_ab) = (L)) -> (((exists ff_h_pfp_pad_operation_abinput. ff_h_pfp_pad_operation_abinput + S (pfrep_value_pad_operation_ab) = S ((S (pfrep_index_pad_operation_ab)) * ac)) /\ exists ff_q_pfp_pad_operation_abinput. ab = ff_q_pfp_pad_operation_abinput * S ((S (pfrep_index_pad_operation_ab)) * ac) + (pfrep_value_pad_operation_ab))) -> (((exists ff_h_pfp_pad_operation_aboutput. ff_h_pfp_pad_operation_aboutput + S (pfrep_value_pad_operation_ab) = S ((S ((t)+pfrep_index_pad_operation_ab)) * AC)) /\ exists ff_q_pfp_pad_operation_aboutput. AB = ff_q_pfp_pad_operation_aboutput * S ((S ((t)+pfrep_index_pad_operation_ab)) * AC) + (pfrep_value_pad_operation_ab))))))) -> (((forall pfp_repeat_index_pad_operation_bbzeros. (exists pfa_gap_pad_operation_bbzerosindex. pfa_gap_pad_operation_bbzerosindex + S (pfp_repeat_index_pad_operation_bbzeros) = (t)) -> (((exists ff_h_pfp_pad_operation_bbzerosentry. ff_h_pfp_pad_operation_bbzerosentry + S (0) = S ((S (pfp_repeat_index_pad_operation_bbzeros)) * BC)) /\ exists ff_q_pfp_pad_operation_bbzerosentry. BB = ff_q_pfp_pad_operation_bbzerosentry * S ((S (pfp_repeat_index_pad_operation_bbzeros)) * BC) + (0)))) /\ ((forall pfrep_index_pad_operation_bb pfrep_value_pad_operation_bb. (exists pfa_gap_pad_operation_bbbound. pfa_gap_pad_operation_bbbound + S (pfrep_index_pad_operation_bb) = (L)) -> (((exists ff_h_pfp_pad_operation_bbinput. ff_h_pfp_pad_operation_bbinput + S (pfrep_value_pad_operation_bb) = S ((S (pfrep_index_pad_operation_bb)) * bc)) /\ exists ff_q_pfp_pad_operation_bbinput. bb = ff_q_pfp_pad_operation_bbinput * S ((S (pfrep_index_pad_operation_bb)) * bc) + (pfrep_value_pad_operation_bb))) -> (((exists ff_h_pfp_pad_operation_bboutput. ff_h_pfp_pad_operation_bboutput + S (pfrep_value_pad_operation_bb) = S ((S ((t)+pfrep_index_pad_operation_bb)) * BC)) /\ exists ff_q_pfp_pad_operation_bboutput. BB = ff_q_pfp_pad_operation_bboutput * S ((S ((t)+pfrep_index_pad_operation_bb)) * BC) + (pfrep_value_pad_operation_bb))))))) -> (((forall pfp_repeat_index_pad_operation_cbzeros. (exists pfa_gap_pad_operation_cbzerosindex. pfa_gap_pad_operation_cbzerosindex + S (pfp_repeat_index_pad_operation_cbzeros) = (t)) -> (((exists ff_h_pfp_pad_operation_cbzerosentry. ff_h_pfp_pad_operation_cbzerosentry + S (0) = S ((S (pfp_repeat_index_pad_operation_cbzeros)) * CC)) /\ exists ff_q_pfp_pad_operation_cbzerosentry. CB = ff_q_pfp_pad_operation_cbzerosentry * S ((S (pfp_repeat_index_pad_operation_cbzeros)) * CC) + (0)))) /\ ((forall pfrep_index_pad_operation_cb pfrep_value_pad_operation_cb. (exists pfa_gap_pad_operation_cbbound. pfa_gap_pad_operation_cbbound + S (pfrep_index_pad_operation_cb) = (L)) -> (((exists ff_h_pfp_pad_operation_cbinput. ff_h_pfp_pad_operation_cbinput + S (pfrep_value_pad_operation_cb) = S ((S (pfrep_index_pad_operation_cb)) * cc)) /\ exists ff_q_pfp_pad_operation_cbinput. cb = ff_q_pfp_pad_operation_cbinput * S ((S (pfrep_index_pad_operation_cb)) * cc) + (pfrep_value_pad_operation_cb))) -> (((exists ff_h_pfp_pad_operation_cboutput. ff_h_pfp_pad_operation_cboutput + S (pfrep_value_pad_operation_cb) = S ((S ((t)+pfrep_index_pad_operation_cb)) * CC)) /\ exists ff_q_pfp_pad_operation_cboutput. CB = ff_q_pfp_pad_operation_cboutput * S ((S ((t)+pfrep_index_pad_operation_cb)) * CC) + (pfrep_value_pad_operation_cb))))))) -> (forall pfp_index_pad_operation_new. (exists pfa_gap_pad_operation_newindex. pfa_gap_pad_operation_newindex + S (pfp_index_pad_operation_new) = (t+L)) -> exists pfp_left_pad_operation_new pfp_right_pad_operation_new pfp_value_pad_operation_new. ((((exists ff_h_pfp_pad_operation_newleft. ff_h_pfp_pad_operation_newleft + S (pfp_left_pad_operation_new) = S ((S (pfp_index_pad_operation_new)) * AC)) /\ exists ff_q_pfp_pad_operation_newleft. AB = ff_q_pfp_pad_operation_newleft * S ((S (pfp_index_pad_operation_new)) * AC) + (pfp_left_pad_operation_new))) /\ (((((exists ff_h_pfp_pad_operation_newright. ff_h_pfp_pad_operation_newright + S (pfp_right_pad_operation_new) = S ((S (pfp_index_pad_operation_new)) * BC)) /\ exists ff_q_pfp_pad_operation_newright. BB = ff_q_pfp_pad_operation_newright * S ((S (pfp_index_pad_operation_new)) * BC) + (pfp_right_pad_operation_new))) /\ (((((exists ff_h_pfp_pad_operation_newtarget. ff_h_pfp_pad_operation_newtarget + S (pfp_value_pad_operation_new) = S ((S (pfp_index_pad_operation_new)) * CC)) /\ exists ff_q_pfp_pad_operation_newtarget. CB = ff_q_pfp_pad_operation_newtarget * S ((S (pfp_index_pad_operation_new)) * CC) + (pfp_value_pad_operation_new))) /\ ((((exists pfa_gap_pad_operation_newoperationleft. pfa_gap_pad_operation_newoperationleft + S (pfp_left_pad_operation_new) = (p)) /\ (((exists pfa_gap_pad_operation_newoperationright. pfa_gap_pad_operation_newoperationright + S (pfp_right_pad_operation_new) = (p)) /\ ((((exists pfa_gap_pad_operation_newoperationresultbound. pfa_gap_pad_operation_newoperationresultbound + S (pfp_value_pad_operation_new) = (p)) /\ ((exists pfa_offset_left_pad_operation_newoperationresultcongruence pfa_offset_right_pad_operation_newoperationresultcongruence. ((pfp_left_pad_operation_new) + (pfp_right_pad_operation_new)) + (p) * pfa_offset_left_pad_operation_newoperationresultcongruence = (pfp_value_pad_operation_new) + (p) * pfa_offset_right_pad_operation_newoperationresultcongruence))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro t
  10. intro AB
  11. intro AC
  12. intro BB
  13. intro BC
  14. intro CB
  15. intro CC
  16. intro hp
  17. intro hop
  18. intro h0
  19. intro h1
  20. intro h2
  21. cases h0
  22. cases h1
  23. cases h2
  24. intro i
  25. intro hi
  26. have hc : (exists pfa_gap_pad_operation_zero. pfa_gap_pad_operation_zero + S (i) = (t)) \/ exists j. (((exists pfa_gap_pad_operation_source. pfa_gap_pad_operation_source + S (j) = (L)) /\ ((i=t+j))))
  27. specialize prime_field_polynomial_left_pad_index_cases (t)
  28. specialize prime_field_polynomial_left_pad_index_cases (L)
  29. specialize prime_field_polynomial_left_pad_index_cases (i)
  30. apply prime_field_polynomial_left_pad_index_cases
  31. exact hi
  32. cases hc
  33. exists 0
  34. exists 0
  35. exists 0
  36. split
  37. specialize h0_left (i)
  38. apply h0_left
  39. exact hc_left
  40. split
  41. specialize h1_left (i)
  42. apply h1_left
  43. exact hc_left
  44. split
  45. specialize h2_left (i)
  46. apply h2_left
  47. exact hc_left
  48. specialize prime_field_add_zero_right (p)
  49. specialize prime_field_add_zero_right (0)
  50. apply prime_field_add_zero_right
  51. exact hp
  52. specialize prime_field_zero_below_prime (p)
  53. apply prime_field_zero_below_prime
  54. exact hp
  55. cases hc_right
  56. cases hc_right_witness
  57. have hv : exists a b r. (((((exists ff_h_pfp_pad_operation_a. ff_h_pfp_pad_operation_a + S (a) = S ((S (x)) * ac)) /\ exists ff_q_pfp_pad_operation_a. ab = ff_q_pfp_pad_operation_a * S ((S (x)) * ac) + (a))) /\ (((((exists ff_h_pfp_pad_operation_b. ff_h_pfp_pad_operation_b + S (b) = S ((S (x)) * bc)) /\ exists ff_q_pfp_pad_operation_b. bb = ff_q_pfp_pad_operation_b * S ((S (x)) * bc) + (b))) /\ (((((exists ff_h_pfp_pad_operation_r. ff_h_pfp_pad_operation_r + S (r) = S ((S (x)) * cc)) /\ exists ff_q_pfp_pad_operation_r. cb = ff_q_pfp_pad_operation_r * S ((S (x)) * cc) + (r))) /\ ((((exists pfa_gap_pad_operation_pointleft. pfa_gap_pad_operation_pointleft + S (a) = (p)) /\ (((exists pfa_gap_pad_operation_pointright. pfa_gap_pad_operation_pointright + S (b) = (p)) /\ ((((exists pfa_gap_pad_operation_pointresultbound. pfa_gap_pad_operation_pointresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_pad_operation_pointresultcongruence pfa_offset_right_pad_operation_pointresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_pad_operation_pointresultcongruence = (r) + (p) * pfa_offset_right_pad_operation_pointresultcongruence))))))))))))))))
  58. specialize hop (x)
  59. apply hop
  60. exact hc_right_witness_left
  61. cases hv
  62. cases hv_witness
  63. cases hv_witness_witness
  64. cases hv_witness_witness_witness
  65. cases hv_witness_witness_witness_right
  66. cases hv_witness_witness_witness_right_right
  67. exists x1
  68. exists x2
  69. exists x3
  70. split
  71. rewrite hc_right_witness_right
  72. rewrite hc_right_witness_right
  73. specialize h0_right (x)
  74. specialize h0_right (x1)
  75. apply h0_right
  76. exact hc_right_witness_left
  77. exact hv_witness_witness_witness_left
  78. split
  79. rewrite hc_right_witness_right
  80. rewrite hc_right_witness_right
  81. specialize h1_right (x)
  82. specialize h1_right (x2)
  83. apply h1_right
  84. exact hc_right_witness_left
  85. exact hv_witness_witness_witness_right_left
  86. split
  87. rewrite hc_right_witness_right
  88. rewrite hc_right_witness_right
  89. specialize h2_right (x)
  90. specialize h2_right (x3)
  91. apply h2_right
  92. exact hc_right_witness_left
  93. exact hv_witness_witness_witness_right_right_left
  94. exact hv_witness_witness_witness_right_right_right
prime_field_polynomial_add_functional · unchanged support, not a new admission
forall p ab ac bb bc cb cc db dc l. (forall pfp_index_add_functional_first. (exists pfa_gap_add_functional_firstindex. pfa_gap_add_functional_firstindex + S (pfp_index_add_functional_first) = (l)) -> exists pfp_left_add_functional_first pfp_right_add_functional_first pfp_value_add_functional_first. ((((exists ff_h_pfp_add_functional_firstleft. ff_h_pfp_add_functional_firstleft + S (pfp_left_add_functional_first) = S ((S (pfp_index_add_functional_first)) * ac)) /\ exists ff_q_pfp_add_functional_firstleft. ab = ff_q_pfp_add_functional_firstleft * S ((S (pfp_index_add_functional_first)) * ac) + (pfp_left_add_functional_first))) /\ (((((exists ff_h_pfp_add_functional_firstright. ff_h_pfp_add_functional_firstright + S (pfp_right_add_functional_first) = S ((S (pfp_index_add_functional_first)) * bc)) /\ exists ff_q_pfp_add_functional_firstright. bb = ff_q_pfp_add_functional_firstright * S ((S (pfp_index_add_functional_first)) * bc) + (pfp_right_add_functional_first))) /\ (((((exists ff_h_pfp_add_functional_firsttarget. ff_h_pfp_add_functional_firsttarget + S (pfp_value_add_functional_first) = S ((S (pfp_index_add_functional_first)) * cc)) /\ exists ff_q_pfp_add_functional_firsttarget. cb = ff_q_pfp_add_functional_firsttarget * S ((S (pfp_index_add_functional_first)) * cc) + (pfp_value_add_functional_first))) /\ ((((exists pfa_gap_add_functional_firstoperationleft. pfa_gap_add_functional_firstoperationleft + S (pfp_left_add_functional_first) = (p)) /\ (((exists pfa_gap_add_functional_firstoperationright. pfa_gap_add_functional_firstoperationright + S (pfp_right_add_functional_first) = (p)) /\ ((((exists pfa_gap_add_functional_firstoperationresultbound. pfa_gap_add_functional_firstoperationresultbound + S (pfp_value_add_functional_first) = (p)) /\ ((exists pfa_offset_left_add_functional_firstoperationresultcongruence pfa_offset_right_add_functional_firstoperationresultcongruence. ((pfp_left_add_functional_first) + (pfp_right_add_functional_first)) + (p) * pfa_offset_left_add_functional_firstoperationresultcongruence = (pfp_value_add_functional_first) + (p) * pfa_offset_right_add_functional_firstoperationresultcongruence)))))))))))))))) -> (forall pfp_index_add_functional_second. (exists pfa_gap_add_functional_secondindex. pfa_gap_add_functional_secondindex + S (pfp_index_add_functional_second) = (l)) -> exists pfp_left_add_functional_second pfp_right_add_functional_second pfp_value_add_functional_second. ((((exists ff_h_pfp_add_functional_secondleft. ff_h_pfp_add_functional_secondleft + S (pfp_left_add_functional_second) = S ((S (pfp_index_add_functional_second)) * ac)) /\ exists ff_q_pfp_add_functional_secondleft. ab = ff_q_pfp_add_functional_secondleft * S ((S (pfp_index_add_functional_second)) * ac) + (pfp_left_add_functional_second))) /\ (((((exists ff_h_pfp_add_functional_secondright. ff_h_pfp_add_functional_secondright + S (pfp_right_add_functional_second) = S ((S (pfp_index_add_functional_second)) * bc)) /\ exists ff_q_pfp_add_functional_secondright. bb = ff_q_pfp_add_functional_secondright * S ((S (pfp_index_add_functional_second)) * bc) + (pfp_right_add_functional_second))) /\ (((((exists ff_h_pfp_add_functional_secondtarget. ff_h_pfp_add_functional_secondtarget + S (pfp_value_add_functional_second) = S ((S (pfp_index_add_functional_second)) * dc)) /\ exists ff_q_pfp_add_functional_secondtarget. db = ff_q_pfp_add_functional_secondtarget * S ((S (pfp_index_add_functional_second)) * dc) + (pfp_value_add_functional_second))) /\ ((((exists pfa_gap_add_functional_secondoperationleft. pfa_gap_add_functional_secondoperationleft + S (pfp_left_add_functional_second) = (p)) /\ (((exists pfa_gap_add_functional_secondoperationright. pfa_gap_add_functional_secondoperationright + S (pfp_right_add_functional_second) = (p)) /\ ((((exists pfa_gap_add_functional_secondoperationresultbound. pfa_gap_add_functional_secondoperationresultbound + S (pfp_value_add_functional_second) = (p)) /\ ((exists pfa_offset_left_add_functional_secondoperationresultcongruence pfa_offset_right_add_functional_secondoperationresultcongruence. ((pfp_left_add_functional_second) + (pfp_right_add_functional_second)) + (p) * pfa_offset_left_add_functional_secondoperationresultcongruence = (pfp_value_add_functional_second) + (p) * pfa_offset_right_add_functional_secondoperationresultcongruence)))))))))))))))) -> (forall mdr_i_pfp_add_functional_result mdr_a_pfp_add_functional_result. (exists mdr_gap_pfp_add_functional_resultb. mdr_gap_pfp_add_functional_resultb + S (mdr_i_pfp_add_functional_result) = (l)) -> (((exists ff_h_mdr_pfp_add_functional_resulto. ff_h_mdr_pfp_add_functional_resulto + S (mdr_a_pfp_add_functional_result) = S ((S (mdr_i_pfp_add_functional_result)) * cc)) /\ exists ff_q_mdr_pfp_add_functional_resulto. cb = ff_q_mdr_pfp_add_functional_resulto * S ((S (mdr_i_pfp_add_functional_result)) * cc) + (mdr_a_pfp_add_functional_result))) -> (((exists ff_h_mdr_pfp_add_functional_resultn. ff_h_mdr_pfp_add_functional_resultn + S (mdr_a_pfp_add_functional_result) = S ((S (mdr_i_pfp_add_functional_result)) * dc)) /\ exists ff_q_mdr_pfp_add_functional_resultn. db = ff_q_mdr_pfp_add_functional_resultn * S ((S (mdr_i_pfp_add_functional_result)) * dc) + (mdr_a_pfp_add_functional_result))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro db
  9. intro dc
  10. intro l
  11. intro hc
  12. intro hd
  13. intro i
  14. intro r
  15. intro hi
  16. intro hr
  17. have ha : exists a. (((exists ff_h_pfp_add_functional_a. ff_h_pfp_add_functional_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_add_functional_a. ab = ff_q_pfp_add_functional_a * S ((S (i)) * ac) + (a)))
  18. specialize beta_at_exists (ab)
  19. specialize beta_at_exists (ac)
  20. specialize beta_at_exists (i)
  21. apply beta_at_exists
  22. cases ha
  23. have hb : exists b. (((exists ff_h_pfp_add_functional_b. ff_h_pfp_add_functional_b + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_add_functional_b. bb = ff_q_pfp_add_functional_b * S ((S (i)) * bc) + (b)))
  24. specialize beta_at_exists (bb)
  25. specialize beta_at_exists (bc)
  26. specialize beta_at_exists (i)
  27. apply beta_at_exists
  28. cases hb
  29. have hs : exists s. (((exists ff_h_pfp_add_functional_s. ff_h_pfp_add_functional_s + S (s) = S ((S (i)) * dc)) /\ exists ff_q_pfp_add_functional_s. db = ff_q_pfp_add_functional_s * S ((S (i)) * dc) + (s)))
  30. specialize beta_at_exists (db)
  31. specialize beta_at_exists (dc)
  32. specialize beta_at_exists (i)
  33. apply beta_at_exists
  34. cases hs
  35. have heq : r=x2
  36. specialize prime_field_add_functional (p)
  37. specialize prime_field_add_functional (x)
  38. specialize prime_field_add_functional (x1)
  39. specialize prime_field_add_functional (r)
  40. specialize prime_field_add_functional (x2)
  41. apply prime_field_add_functional
  42. specialize prime_field_polynomial_add_entry (p)
  43. specialize prime_field_polynomial_add_entry (ab)
  44. specialize prime_field_polynomial_add_entry (ac)
  45. specialize prime_field_polynomial_add_entry (bb)
  46. specialize prime_field_polynomial_add_entry (bc)
  47. specialize prime_field_polynomial_add_entry (cb)
  48. specialize prime_field_polynomial_add_entry (cc)
  49. specialize prime_field_polynomial_add_entry (l)
  50. specialize prime_field_polynomial_add_entry (i)
  51. specialize prime_field_polynomial_add_entry (x)
  52. specialize prime_field_polynomial_add_entry (x1)
  53. specialize prime_field_polynomial_add_entry (r)
  54. apply prime_field_polynomial_add_entry
  55. exact hc
  56. exact hi
  57. exact ha_witness
  58. exact hb_witness
  59. exact hr
  60. specialize prime_field_polynomial_add_entry (p)
  61. specialize prime_field_polynomial_add_entry (ab)
  62. specialize prime_field_polynomial_add_entry (ac)
  63. specialize prime_field_polynomial_add_entry (bb)
  64. specialize prime_field_polynomial_add_entry (bc)
  65. specialize prime_field_polynomial_add_entry (db)
  66. specialize prime_field_polynomial_add_entry (dc)
  67. specialize prime_field_polynomial_add_entry (l)
  68. specialize prime_field_polynomial_add_entry (i)
  69. specialize prime_field_polynomial_add_entry (x)
  70. specialize prime_field_polynomial_add_entry (x1)
  71. specialize prime_field_polynomial_add_entry (x2)
  72. apply prime_field_polynomial_add_entry
  73. exact hd
  74. exact hi
  75. exact ha_witness
  76. exact hb_witness
  77. exact hs_witness
  78. rewrite heq
  79. rewrite heq
  80. exact hs_witness
prime_field_polynomial_add_left_pad_output · unchanged support, not a new admission
forall p ab ac bb bc cb cc L t AB AC BB BC CB CC. (~((p) = 1) /\ forall pfa_factor_left_add_output_prime pfa_factor_right_add_output_prime. (p) = pfa_factor_left_add_output_prime * pfa_factor_right_add_output_prime -> pfa_factor_left_add_output_prime = 1 \/ pfa_factor_right_add_output_prime = 1) -> (forall pfp_index_add_output_original. (exists pfa_gap_add_output_originalindex. pfa_gap_add_output_originalindex + S (pfp_index_add_output_original) = (L)) -> exists pfp_left_add_output_original pfp_right_add_output_original pfp_value_add_output_original. ((((exists ff_h_pfp_add_output_originalleft. ff_h_pfp_add_output_originalleft + S (pfp_left_add_output_original) = S ((S (pfp_index_add_output_original)) * ac)) /\ exists ff_q_pfp_add_output_originalleft. ab = ff_q_pfp_add_output_originalleft * S ((S (pfp_index_add_output_original)) * ac) + (pfp_left_add_output_original))) /\ (((((exists ff_h_pfp_add_output_originalright. ff_h_pfp_add_output_originalright + S (pfp_right_add_output_original) = S ((S (pfp_index_add_output_original)) * bc)) /\ exists ff_q_pfp_add_output_originalright. bb = ff_q_pfp_add_output_originalright * S ((S (pfp_index_add_output_original)) * bc) + (pfp_right_add_output_original))) /\ (((((exists ff_h_pfp_add_output_originaltarget. ff_h_pfp_add_output_originaltarget + S (pfp_value_add_output_original) = S ((S (pfp_index_add_output_original)) * cc)) /\ exists ff_q_pfp_add_output_originaltarget. cb = ff_q_pfp_add_output_originaltarget * S ((S (pfp_index_add_output_original)) * cc) + (pfp_value_add_output_original))) /\ ((((exists pfa_gap_add_output_originaloperationleft. pfa_gap_add_output_originaloperationleft + S (pfp_left_add_output_original) = (p)) /\ (((exists pfa_gap_add_output_originaloperationright. pfa_gap_add_output_originaloperationright + S (pfp_right_add_output_original) = (p)) /\ ((((exists pfa_gap_add_output_originaloperationresultbound. pfa_gap_add_output_originaloperationresultbound + S (pfp_value_add_output_original) = (p)) /\ ((exists pfa_offset_left_add_output_originaloperationresultcongruence pfa_offset_right_add_output_originaloperationresultcongruence. ((pfp_left_add_output_original) + (pfp_right_add_output_original)) + (p) * pfa_offset_left_add_output_originaloperationresultcongruence = (pfp_value_add_output_original) + (p) * pfa_offset_right_add_output_originaloperationresultcongruence)))))))))))))))) -> (((forall pfp_repeat_index_add_output_leftzeros. (exists pfa_gap_add_output_leftzerosindex. pfa_gap_add_output_leftzerosindex + S (pfp_repeat_index_add_output_leftzeros) = (t)) -> (((exists ff_h_pfp_add_output_leftzerosentry. ff_h_pfp_add_output_leftzerosentry + S (0) = S ((S (pfp_repeat_index_add_output_leftzeros)) * AC)) /\ exists ff_q_pfp_add_output_leftzerosentry. AB = ff_q_pfp_add_output_leftzerosentry * S ((S (pfp_repeat_index_add_output_leftzeros)) * AC) + (0)))) /\ ((forall pfrep_index_add_output_left pfrep_value_add_output_left. (exists pfa_gap_add_output_leftbound. pfa_gap_add_output_leftbound + S (pfrep_index_add_output_left) = (L)) -> (((exists ff_h_pfp_add_output_leftinput. ff_h_pfp_add_output_leftinput + S (pfrep_value_add_output_left) = S ((S (pfrep_index_add_output_left)) * ac)) /\ exists ff_q_pfp_add_output_leftinput. ab = ff_q_pfp_add_output_leftinput * S ((S (pfrep_index_add_output_left)) * ac) + (pfrep_value_add_output_left))) -> (((exists ff_h_pfp_add_output_leftoutput. ff_h_pfp_add_output_leftoutput + S (pfrep_value_add_output_left) = S ((S ((t)+pfrep_index_add_output_left)) * AC)) /\ exists ff_q_pfp_add_output_leftoutput. AB = ff_q_pfp_add_output_leftoutput * S ((S ((t)+pfrep_index_add_output_left)) * AC) + (pfrep_value_add_output_left))))))) -> (((forall pfp_repeat_index_add_output_rightzeros. (exists pfa_gap_add_output_rightzerosindex. pfa_gap_add_output_rightzerosindex + S (pfp_repeat_index_add_output_rightzeros) = (t)) -> (((exists ff_h_pfp_add_output_rightzerosentry. ff_h_pfp_add_output_rightzerosentry + S (0) = S ((S (pfp_repeat_index_add_output_rightzeros)) * BC)) /\ exists ff_q_pfp_add_output_rightzerosentry. BB = ff_q_pfp_add_output_rightzerosentry * S ((S (pfp_repeat_index_add_output_rightzeros)) * BC) + (0)))) /\ ((forall pfrep_index_add_output_right pfrep_value_add_output_right. (exists pfa_gap_add_output_rightbound. pfa_gap_add_output_rightbound + S (pfrep_index_add_output_right) = (L)) -> (((exists ff_h_pfp_add_output_rightinput. ff_h_pfp_add_output_rightinput + S (pfrep_value_add_output_right) = S ((S (pfrep_index_add_output_right)) * bc)) /\ exists ff_q_pfp_add_output_rightinput. bb = ff_q_pfp_add_output_rightinput * S ((S (pfrep_index_add_output_right)) * bc) + (pfrep_value_add_output_right))) -> (((exists ff_h_pfp_add_output_rightoutput. ff_h_pfp_add_output_rightoutput + S (pfrep_value_add_output_right) = S ((S ((t)+pfrep_index_add_output_right)) * BC)) /\ exists ff_q_pfp_add_output_rightoutput. BB = ff_q_pfp_add_output_rightoutput * S ((S ((t)+pfrep_index_add_output_right)) * BC) + (pfrep_value_add_output_right))))))) -> (forall pfp_index_add_output_padded. (exists pfa_gap_add_output_paddedindex. pfa_gap_add_output_paddedindex + S (pfp_index_add_output_padded) = (t+L)) -> exists pfp_left_add_output_padded pfp_right_add_output_padded pfp_value_add_output_padded. ((((exists ff_h_pfp_add_output_paddedleft. ff_h_pfp_add_output_paddedleft + S (pfp_left_add_output_padded) = S ((S (pfp_index_add_output_padded)) * AC)) /\ exists ff_q_pfp_add_output_paddedleft. AB = ff_q_pfp_add_output_paddedleft * S ((S (pfp_index_add_output_padded)) * AC) + (pfp_left_add_output_padded))) /\ (((((exists ff_h_pfp_add_output_paddedright. ff_h_pfp_add_output_paddedright + S (pfp_right_add_output_padded) = S ((S (pfp_index_add_output_padded)) * BC)) /\ exists ff_q_pfp_add_output_paddedright. BB = ff_q_pfp_add_output_paddedright * S ((S (pfp_index_add_output_padded)) * BC) + (pfp_right_add_output_padded))) /\ (((((exists ff_h_pfp_add_output_paddedtarget. ff_h_pfp_add_output_paddedtarget + S (pfp_value_add_output_padded) = S ((S (pfp_index_add_output_padded)) * CC)) /\ exists ff_q_pfp_add_output_paddedtarget. CB = ff_q_pfp_add_output_paddedtarget * S ((S (pfp_index_add_output_padded)) * CC) + (pfp_value_add_output_padded))) /\ ((((exists pfa_gap_add_output_paddedoperationleft. pfa_gap_add_output_paddedoperationleft + S (pfp_left_add_output_padded) = (p)) /\ (((exists pfa_gap_add_output_paddedoperationright. pfa_gap_add_output_paddedoperationright + S (pfp_right_add_output_padded) = (p)) /\ ((((exists pfa_gap_add_output_paddedoperationresultbound. pfa_gap_add_output_paddedoperationresultbound + S (pfp_value_add_output_padded) = (p)) /\ ((exists pfa_offset_left_add_output_paddedoperationresultcongruence pfa_offset_right_add_output_paddedoperationresultcongruence. ((pfp_left_add_output_padded) + (pfp_right_add_output_padded)) + (p) * pfa_offset_left_add_output_paddedoperationresultcongruence = (pfp_value_add_output_padded) + (p) * pfa_offset_right_add_output_paddedoperationresultcongruence)))))))))))))))) -> (((forall pfp_repeat_index_add_output_resultzeros. (exists pfa_gap_add_output_resultzerosindex. pfa_gap_add_output_resultzerosindex + S (pfp_repeat_index_add_output_resultzeros) = (t)) -> (((exists ff_h_pfp_add_output_resultzerosentry. ff_h_pfp_add_output_resultzerosentry + S (0) = S ((S (pfp_repeat_index_add_output_resultzeros)) * CC)) /\ exists ff_q_pfp_add_output_resultzerosentry. CB = ff_q_pfp_add_output_resultzerosentry * S ((S (pfp_repeat_index_add_output_resultzeros)) * CC) + (0)))) /\ ((forall pfrep_index_add_output_result pfrep_value_add_output_result. (exists pfa_gap_add_output_resultbound. pfa_gap_add_output_resultbound + S (pfrep_index_add_output_result) = (L)) -> (((exists ff_h_pfp_add_output_resultinput. ff_h_pfp_add_output_resultinput + S (pfrep_value_add_output_result) = S ((S (pfrep_index_add_output_result)) * cc)) /\ exists ff_q_pfp_add_output_resultinput. cb = ff_q_pfp_add_output_resultinput * S ((S (pfrep_index_add_output_result)) * cc) + (pfrep_value_add_output_result))) -> (((exists ff_h_pfp_add_output_resultoutput. ff_h_pfp_add_output_resultoutput + S (pfrep_value_add_output_result) = S ((S ((t)+pfrep_index_add_output_result)) * CC)) /\ exists ff_q_pfp_add_output_resultoutput. CB = ff_q_pfp_add_output_resultoutput * S ((S ((t)+pfrep_index_add_output_result)) * CC) + (pfrep_value_add_output_result)))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro t
  10. intro AB
  11. intro AC
  12. intro BB
  13. intro BC
  14. intro CB
  15. intro CC
  16. intro hp
  17. intro ho
  18. intro hA
  19. intro hB
  20. intro hn
  21. have hd : exists db dc. (((forall pfp_repeat_index_add_output_constructedzeros. (exists pfa_gap_add_output_constructedzerosindex. pfa_gap_add_output_constructedzerosindex + S (pfp_repeat_index_add_output_constructedzeros) = (t)) -> (((exists ff_h_pfp_add_output_constructedzerosentry. ff_h_pfp_add_output_constructedzerosentry + S (0) = S ((S (pfp_repeat_index_add_output_constructedzeros)) * dc)) /\ exists ff_q_pfp_add_output_constructedzerosentry. db = ff_q_pfp_add_output_constructedzerosentry * S ((S (pfp_repeat_index_add_output_constructedzeros)) * dc) + (0)))) /\ ((forall pfrep_index_add_output_constructed pfrep_value_add_output_constructed. (exists pfa_gap_add_output_constructedbound. pfa_gap_add_output_constructedbound + S (pfrep_index_add_output_constructed) = (L)) -> (((exists ff_h_pfp_add_output_constructedinput. ff_h_pfp_add_output_constructedinput + S (pfrep_value_add_output_constructed) = S ((S (pfrep_index_add_output_constructed)) * cc)) /\ exists ff_q_pfp_add_output_constructedinput. cb = ff_q_pfp_add_output_constructedinput * S ((S (pfrep_index_add_output_constructed)) * cc) + (pfrep_value_add_output_constructed))) -> (((exists ff_h_pfp_add_output_constructedoutput. ff_h_pfp_add_output_constructedoutput + S (pfrep_value_add_output_constructed) = S ((S ((t)+pfrep_index_add_output_constructed)) * dc)) /\ exists ff_q_pfp_add_output_constructedoutput. db = ff_q_pfp_add_output_constructedoutput * S ((S ((t)+pfrep_index_add_output_constructed)) * dc) + (pfrep_value_add_output_constructed)))))))
  22. specialize prime_field_polynomial_left_pad_exists (cb)
  23. specialize prime_field_polynomial_left_pad_exists (cc)
  24. specialize prime_field_polynomial_left_pad_exists (t)
  25. specialize prime_field_polynomial_left_pad_exists (L)
  26. apply prime_field_polynomial_left_pad_exists
  27. cases hd
  28. cases hd_witness
  29. have hm : forall pfp_index_add_output_middle. (exists pfa_gap_add_output_middleindex. pfa_gap_add_output_middleindex + S (pfp_index_add_output_middle) = (t+L)) -> exists pfp_left_add_output_middle pfp_right_add_output_middle pfp_value_add_output_middle. ((((exists ff_h_pfp_add_output_middleleft. ff_h_pfp_add_output_middleleft + S (pfp_left_add_output_middle) = S ((S (pfp_index_add_output_middle)) * AC)) /\ exists ff_q_pfp_add_output_middleleft. AB = ff_q_pfp_add_output_middleleft * S ((S (pfp_index_add_output_middle)) * AC) + (pfp_left_add_output_middle))) /\ (((((exists ff_h_pfp_add_output_middleright. ff_h_pfp_add_output_middleright + S (pfp_right_add_output_middle) = S ((S (pfp_index_add_output_middle)) * BC)) /\ exists ff_q_pfp_add_output_middleright. BB = ff_q_pfp_add_output_middleright * S ((S (pfp_index_add_output_middle)) * BC) + (pfp_right_add_output_middle))) /\ (((((exists ff_h_pfp_add_output_middletarget. ff_h_pfp_add_output_middletarget + S (pfp_value_add_output_middle) = S ((S (pfp_index_add_output_middle)) * x1)) /\ exists ff_q_pfp_add_output_middletarget. x = ff_q_pfp_add_output_middletarget * S ((S (pfp_index_add_output_middle)) * x1) + (pfp_value_add_output_middle))) /\ ((((exists pfa_gap_add_output_middleoperationleft. pfa_gap_add_output_middleoperationleft + S (pfp_left_add_output_middle) = (p)) /\ (((exists pfa_gap_add_output_middleoperationright. pfa_gap_add_output_middleoperationright + S (pfp_right_add_output_middle) = (p)) /\ ((((exists pfa_gap_add_output_middleoperationresultbound. pfa_gap_add_output_middleoperationresultbound + S (pfp_value_add_output_middle) = (p)) /\ ((exists pfa_offset_left_add_output_middleoperationresultcongruence pfa_offset_right_add_output_middleoperationresultcongruence. ((pfp_left_add_output_middle) + (pfp_right_add_output_middle)) + (p) * pfa_offset_left_add_output_middleoperationresultcongruence = (pfp_value_add_output_middle) + (p) * pfa_offset_right_add_output_middleoperationresultcongruence)))))))))))))))
  30. specialize prime_field_polynomial_add_left_pad_transport (p)
  31. specialize prime_field_polynomial_add_left_pad_transport (ab)
  32. specialize prime_field_polynomial_add_left_pad_transport (ac)
  33. specialize prime_field_polynomial_add_left_pad_transport (bb)
  34. specialize prime_field_polynomial_add_left_pad_transport (bc)
  35. specialize prime_field_polynomial_add_left_pad_transport (cb)
  36. specialize prime_field_polynomial_add_left_pad_transport (cc)
  37. specialize prime_field_polynomial_add_left_pad_transport (L)
  38. specialize prime_field_polynomial_add_left_pad_transport (t)
  39. specialize prime_field_polynomial_add_left_pad_transport (AB)
  40. specialize prime_field_polynomial_add_left_pad_transport (AC)
  41. specialize prime_field_polynomial_add_left_pad_transport (BB)
  42. specialize prime_field_polynomial_add_left_pad_transport (BC)
  43. specialize prime_field_polynomial_add_left_pad_transport (x)
  44. specialize prime_field_polynomial_add_left_pad_transport (x1)
  45. apply prime_field_polynomial_add_left_pad_transport
  46. exact hp
  47. exact ho
  48. exact hA
  49. exact hB
  50. exact hd_witness_witness
  51. have he : forall mdr_i_pfp_add_output_values mdr_a_pfp_add_output_values. (exists mdr_gap_pfp_add_output_valuesb. mdr_gap_pfp_add_output_valuesb + S (mdr_i_pfp_add_output_values) = (t+L)) -> (((exists ff_h_mdr_pfp_add_output_valueso. ff_h_mdr_pfp_add_output_valueso + S (mdr_a_pfp_add_output_values) = S ((S (mdr_i_pfp_add_output_values)) * x1)) /\ exists ff_q_mdr_pfp_add_output_valueso. x = ff_q_mdr_pfp_add_output_valueso * S ((S (mdr_i_pfp_add_output_values)) * x1) + (mdr_a_pfp_add_output_values))) -> (((exists ff_h_mdr_pfp_add_output_valuesn. ff_h_mdr_pfp_add_output_valuesn + S (mdr_a_pfp_add_output_values) = S ((S (mdr_i_pfp_add_output_values)) * CC)) /\ exists ff_q_mdr_pfp_add_output_valuesn. CB = ff_q_mdr_pfp_add_output_valuesn * S ((S (mdr_i_pfp_add_output_values)) * CC) + (mdr_a_pfp_add_output_values)))
  52. specialize prime_field_polynomial_add_functional (p)
  53. specialize prime_field_polynomial_add_functional (AB)
  54. specialize prime_field_polynomial_add_functional (AC)
  55. specialize prime_field_polynomial_add_functional (BB)
  56. specialize prime_field_polynomial_add_functional (BC)
  57. specialize prime_field_polynomial_add_functional (x)
  58. specialize prime_field_polynomial_add_functional (x1)
  59. specialize prime_field_polynomial_add_functional (CB)
  60. specialize prime_field_polynomial_add_functional (CC)
  61. specialize prime_field_polynomial_add_functional (t+L)
  62. apply prime_field_polynomial_add_functional
  63. exact hm
  64. exact hn
  65. specialize prime_field_polynomial_left_pad_transport (cb)
  66. specialize prime_field_polynomial_left_pad_transport (cc)
  67. specialize prime_field_polynomial_left_pad_transport (cb)
  68. specialize prime_field_polynomial_left_pad_transport (cc)
  69. specialize prime_field_polynomial_left_pad_transport (L)
  70. specialize prime_field_polynomial_left_pad_transport (t)
  71. specialize prime_field_polynomial_left_pad_transport (x)
  72. specialize prime_field_polynomial_left_pad_transport (x1)
  73. specialize prime_field_polynomial_left_pad_transport (CB)
  74. specialize prime_field_polynomial_left_pad_transport (CC)
  75. apply prime_field_polynomial_left_pad_transport
  76. intro i
  77. intro a
  78. intro hi
  79. intro ha
  80. exact ha
  81. exact he
  82. exact hd_witness_witness
prime_field_polynomial_add_equivalent_congruent · unchanged support, not a new admission
forall p ab ac bb bc cb cc L AB AC BB BC CB CC K. (~((p) = 1) /\ forall pfa_factor_left_add_congruent_prime pfa_factor_right_add_congruent_prime. (p) = pfa_factor_left_add_congruent_prime * pfa_factor_right_add_congruent_prime -> pfa_factor_left_add_congruent_prime = 1 \/ pfa_factor_right_add_congruent_prime = 1) -> (forall pfrep_power_add_congruent_first pfrep_left_add_congruent_first pfrep_right_add_congruent_first. ((exists pfrep_position_add_congruent_firstfirst. ((pfrep_position_add_congruent_firstfirst+S (pfrep_power_add_congruent_first)=(L)) /\ ((((exists ff_h_pfp_add_congruent_firstfirstentry. ff_h_pfp_add_congruent_firstfirstentry + S (pfrep_left_add_congruent_first) = S ((S (pfrep_position_add_congruent_firstfirst)) * ac)) /\ exists ff_q_pfp_add_congruent_firstfirstentry. ab = ff_q_pfp_add_congruent_firstfirstentry * S ((S (pfrep_position_add_congruent_firstfirst)) * ac) + (pfrep_left_add_congruent_first)))))) \/ (((exists pfrep_gap_add_congruent_firstfirstoutside. pfrep_gap_add_congruent_firstfirstoutside+(L)=(pfrep_power_add_congruent_first)) /\ (((pfrep_left_add_congruent_first)=0))))) -> ((exists pfrep_position_add_congruent_firstsecond. ((pfrep_position_add_congruent_firstsecond+S (pfrep_power_add_congruent_first)=(K)) /\ ((((exists ff_h_pfp_add_congruent_firstsecondentry. ff_h_pfp_add_congruent_firstsecondentry + S (pfrep_right_add_congruent_first) = S ((S (pfrep_position_add_congruent_firstsecond)) * AC)) /\ exists ff_q_pfp_add_congruent_firstsecondentry. AB = ff_q_pfp_add_congruent_firstsecondentry * S ((S (pfrep_position_add_congruent_firstsecond)) * AC) + (pfrep_right_add_congruent_first)))))) \/ (((exists pfrep_gap_add_congruent_firstsecondoutside. pfrep_gap_add_congruent_firstsecondoutside+(K)=(pfrep_power_add_congruent_first)) /\ (((pfrep_right_add_congruent_first)=0))))) -> pfrep_left_add_congruent_first=pfrep_right_add_congruent_first) -> (forall pfrep_power_add_congruent_second pfrep_left_add_congruent_second pfrep_right_add_congruent_second. ((exists pfrep_position_add_congruent_secondfirst. ((pfrep_position_add_congruent_secondfirst+S (pfrep_power_add_congruent_second)=(L)) /\ ((((exists ff_h_pfp_add_congruent_secondfirstentry. ff_h_pfp_add_congruent_secondfirstentry + S (pfrep_left_add_congruent_second) = S ((S (pfrep_position_add_congruent_secondfirst)) * bc)) /\ exists ff_q_pfp_add_congruent_secondfirstentry. bb = ff_q_pfp_add_congruent_secondfirstentry * S ((S (pfrep_position_add_congruent_secondfirst)) * bc) + (pfrep_left_add_congruent_second)))))) \/ (((exists pfrep_gap_add_congruent_secondfirstoutside. pfrep_gap_add_congruent_secondfirstoutside+(L)=(pfrep_power_add_congruent_second)) /\ (((pfrep_left_add_congruent_second)=0))))) -> ((exists pfrep_position_add_congruent_secondsecond. ((pfrep_position_add_congruent_secondsecond+S (pfrep_power_add_congruent_second)=(K)) /\ ((((exists ff_h_pfp_add_congruent_secondsecondentry. ff_h_pfp_add_congruent_secondsecondentry + S (pfrep_right_add_congruent_second) = S ((S (pfrep_position_add_congruent_secondsecond)) * BC)) /\ exists ff_q_pfp_add_congruent_secondsecondentry. BB = ff_q_pfp_add_congruent_secondsecondentry * S ((S (pfrep_position_add_congruent_secondsecond)) * BC) + (pfrep_right_add_congruent_second)))))) \/ (((exists pfrep_gap_add_congruent_secondsecondoutside. pfrep_gap_add_congruent_secondsecondoutside+(K)=(pfrep_power_add_congruent_second)) /\ (((pfrep_right_add_congruent_second)=0))))) -> pfrep_left_add_congruent_second=pfrep_right_add_congruent_second) -> (forall pfp_index_add_congruent_original. (exists pfa_gap_add_congruent_originalindex. pfa_gap_add_congruent_originalindex + S (pfp_index_add_congruent_original) = (L)) -> exists pfp_left_add_congruent_original pfp_right_add_congruent_original pfp_value_add_congruent_original. ((((exists ff_h_pfp_add_congruent_originalleft. ff_h_pfp_add_congruent_originalleft + S (pfp_left_add_congruent_original) = S ((S (pfp_index_add_congruent_original)) * ac)) /\ exists ff_q_pfp_add_congruent_originalleft. ab = ff_q_pfp_add_congruent_originalleft * S ((S (pfp_index_add_congruent_original)) * ac) + (pfp_left_add_congruent_original))) /\ (((((exists ff_h_pfp_add_congruent_originalright. ff_h_pfp_add_congruent_originalright + S (pfp_right_add_congruent_original) = S ((S (pfp_index_add_congruent_original)) * bc)) /\ exists ff_q_pfp_add_congruent_originalright. bb = ff_q_pfp_add_congruent_originalright * S ((S (pfp_index_add_congruent_original)) * bc) + (pfp_right_add_congruent_original))) /\ (((((exists ff_h_pfp_add_congruent_originaltarget. ff_h_pfp_add_congruent_originaltarget + S (pfp_value_add_congruent_original) = S ((S (pfp_index_add_congruent_original)) * cc)) /\ exists ff_q_pfp_add_congruent_originaltarget. cb = ff_q_pfp_add_congruent_originaltarget * S ((S (pfp_index_add_congruent_original)) * cc) + (pfp_value_add_congruent_original))) /\ ((((exists pfa_gap_add_congruent_originaloperationleft. pfa_gap_add_congruent_originaloperationleft + S (pfp_left_add_congruent_original) = (p)) /\ (((exists pfa_gap_add_congruent_originaloperationright. pfa_gap_add_congruent_originaloperationright + S (pfp_right_add_congruent_original) = (p)) /\ ((((exists pfa_gap_add_congruent_originaloperationresultbound. pfa_gap_add_congruent_originaloperationresultbound + S (pfp_value_add_congruent_original) = (p)) /\ ((exists pfa_offset_left_add_congruent_originaloperationresultcongruence pfa_offset_right_add_congruent_originaloperationresultcongruence. ((pfp_left_add_congruent_original) + (pfp_right_add_congruent_original)) + (p) * pfa_offset_left_add_congruent_originaloperationresultcongruence = (pfp_value_add_congruent_original) + (p) * pfa_offset_right_add_congruent_originaloperationresultcongruence)))))))))))))))) -> (forall pfp_index_add_congruent_other. (exists pfa_gap_add_congruent_otherindex. pfa_gap_add_congruent_otherindex + S (pfp_index_add_congruent_other) = (K)) -> exists pfp_left_add_congruent_other pfp_right_add_congruent_other pfp_value_add_congruent_other. ((((exists ff_h_pfp_add_congruent_otherleft. ff_h_pfp_add_congruent_otherleft + S (pfp_left_add_congruent_other) = S ((S (pfp_index_add_congruent_other)) * AC)) /\ exists ff_q_pfp_add_congruent_otherleft. AB = ff_q_pfp_add_congruent_otherleft * S ((S (pfp_index_add_congruent_other)) * AC) + (pfp_left_add_congruent_other))) /\ (((((exists ff_h_pfp_add_congruent_otherright. ff_h_pfp_add_congruent_otherright + S (pfp_right_add_congruent_other) = S ((S (pfp_index_add_congruent_other)) * BC)) /\ exists ff_q_pfp_add_congruent_otherright. BB = ff_q_pfp_add_congruent_otherright * S ((S (pfp_index_add_congruent_other)) * BC) + (pfp_right_add_congruent_other))) /\ (((((exists ff_h_pfp_add_congruent_othertarget. ff_h_pfp_add_congruent_othertarget + S (pfp_value_add_congruent_other) = S ((S (pfp_index_add_congruent_other)) * CC)) /\ exists ff_q_pfp_add_congruent_othertarget. CB = ff_q_pfp_add_congruent_othertarget * S ((S (pfp_index_add_congruent_other)) * CC) + (pfp_value_add_congruent_other))) /\ ((((exists pfa_gap_add_congruent_otheroperationleft. pfa_gap_add_congruent_otheroperationleft + S (pfp_left_add_congruent_other) = (p)) /\ (((exists pfa_gap_add_congruent_otheroperationright. pfa_gap_add_congruent_otheroperationright + S (pfp_right_add_congruent_other) = (p)) /\ ((((exists pfa_gap_add_congruent_otheroperationresultbound. pfa_gap_add_congruent_otheroperationresultbound + S (pfp_value_add_congruent_other) = (p)) /\ ((exists pfa_offset_left_add_congruent_otheroperationresultcongruence pfa_offset_right_add_congruent_otheroperationresultcongruence. ((pfp_left_add_congruent_other) + (pfp_right_add_congruent_other)) + (p) * pfa_offset_left_add_congruent_otheroperationresultcongruence = (pfp_value_add_congruent_other) + (p) * pfa_offset_right_add_congruent_otheroperationresultcongruence)))))))))))))))) -> (forall pfrep_power_add_congruent_result pfrep_left_add_congruent_result pfrep_right_add_congruent_result. ((exists pfrep_position_add_congruent_resultfirst. ((pfrep_position_add_congruent_resultfirst+S (pfrep_power_add_congruent_result)=(L)) /\ ((((exists ff_h_pfp_add_congruent_resultfirstentry. ff_h_pfp_add_congruent_resultfirstentry + S (pfrep_left_add_congruent_result) = S ((S (pfrep_position_add_congruent_resultfirst)) * cc)) /\ exists ff_q_pfp_add_congruent_resultfirstentry. cb = ff_q_pfp_add_congruent_resultfirstentry * S ((S (pfrep_position_add_congruent_resultfirst)) * cc) + (pfrep_left_add_congruent_result)))))) \/ (((exists pfrep_gap_add_congruent_resultfirstoutside. pfrep_gap_add_congruent_resultfirstoutside+(L)=(pfrep_power_add_congruent_result)) /\ (((pfrep_left_add_congruent_result)=0))))) -> ((exists pfrep_position_add_congruent_resultsecond. ((pfrep_position_add_congruent_resultsecond+S (pfrep_power_add_congruent_result)=(K)) /\ ((((exists ff_h_pfp_add_congruent_resultsecondentry. ff_h_pfp_add_congruent_resultsecondentry + S (pfrep_right_add_congruent_result) = S ((S (pfrep_position_add_congruent_resultsecond)) * CC)) /\ exists ff_q_pfp_add_congruent_resultsecondentry. CB = ff_q_pfp_add_congruent_resultsecondentry * S ((S (pfrep_position_add_congruent_resultsecond)) * CC) + (pfrep_right_add_congruent_result)))))) \/ (((exists pfrep_gap_add_congruent_resultsecondoutside. pfrep_gap_add_congruent_resultsecondoutside+(K)=(pfrep_power_add_congruent_result)) /\ (((pfrep_right_add_congruent_result)=0))))) -> pfrep_left_add_congruent_result=pfrep_right_add_congruent_result)
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro AB
  10. intro AC
  11. intro BB
  12. intro BC
  13. intro CB
  14. intro CC
  15. intro K
  16. intro hp
  17. intro hA
  18. intro hB
  19. intro ho
  20. intro hn
  21. have horder : L<=K \/ K<=L
  22. specialize le_total (L)
  23. specialize le_total (K)
  24. apply le_total
  25. cases horder
  26. cases horder_left
  27. rewrite <- horder_left_witness at hA
  28. rewrite <- horder_left_witness at hA
  29. rewrite <- horder_left_witness at hB
  30. rewrite <- horder_left_witness at hB
  31. rewrite <- horder_left_witness at hn
  32. rewrite <- horder_left_witness
  33. rewrite <- horder_left_witness
  34. have hpadA : ((forall pfp_repeat_index_add_congruent_forward_hpadAzeros. (exists pfa_gap_add_congruent_forward_hpadAzerosindex. pfa_gap_add_congruent_forward_hpadAzerosindex + S (pfp_repeat_index_add_congruent_forward_hpadAzeros) = (x)) -> (((exists ff_h_pfp_add_congruent_forward_hpadAzerosentry. ff_h_pfp_add_congruent_forward_hpadAzerosentry + S (0) = S ((S (pfp_repeat_index_add_congruent_forward_hpadAzeros)) * AC)) /\ exists ff_q_pfp_add_congruent_forward_hpadAzerosentry. AB = ff_q_pfp_add_congruent_forward_hpadAzerosentry * S ((S (pfp_repeat_index_add_congruent_forward_hpadAzeros)) * AC) + (0)))) /\ ((forall pfrep_index_add_congruent_forward_hpadA pfrep_value_add_congruent_forward_hpadA. (exists pfa_gap_add_congruent_forward_hpadAbound. pfa_gap_add_congruent_forward_hpadAbound + S (pfrep_index_add_congruent_forward_hpadA) = (L)) -> (((exists ff_h_pfp_add_congruent_forward_hpadAinput. ff_h_pfp_add_congruent_forward_hpadAinput + S (pfrep_value_add_congruent_forward_hpadA) = S ((S (pfrep_index_add_congruent_forward_hpadA)) * ac)) /\ exists ff_q_pfp_add_congruent_forward_hpadAinput. ab = ff_q_pfp_add_congruent_forward_hpadAinput * S ((S (pfrep_index_add_congruent_forward_hpadA)) * ac) + (pfrep_value_add_congruent_forward_hpadA))) -> (((exists ff_h_pfp_add_congruent_forward_hpadAoutput. ff_h_pfp_add_congruent_forward_hpadAoutput + S (pfrep_value_add_congruent_forward_hpadA) = S ((S ((x)+pfrep_index_add_congruent_forward_hpadA)) * AC)) /\ exists ff_q_pfp_add_congruent_forward_hpadAoutput. AB = ff_q_pfp_add_congruent_forward_hpadAoutput * S ((S ((x)+pfrep_index_add_congruent_forward_hpadA)) * AC) + (pfrep_value_add_congruent_forward_hpadA))))))
  35. specialize prime_field_polynomial_equivalent_implies_left_pad (ab)
  36. specialize prime_field_polynomial_equivalent_implies_left_pad (ac)
  37. specialize prime_field_polynomial_equivalent_implies_left_pad (L)
  38. specialize prime_field_polynomial_equivalent_implies_left_pad (x)
  39. specialize prime_field_polynomial_equivalent_implies_left_pad (AB)
  40. specialize prime_field_polynomial_equivalent_implies_left_pad (AC)
  41. apply prime_field_polynomial_equivalent_implies_left_pad
  42. exact hA
  43. have hpadB : ((forall pfp_repeat_index_add_congruent_forward_hpadBzeros. (exists pfa_gap_add_congruent_forward_hpadBzerosindex. pfa_gap_add_congruent_forward_hpadBzerosindex + S (pfp_repeat_index_add_congruent_forward_hpadBzeros) = (x)) -> (((exists ff_h_pfp_add_congruent_forward_hpadBzerosentry. ff_h_pfp_add_congruent_forward_hpadBzerosentry + S (0) = S ((S (pfp_repeat_index_add_congruent_forward_hpadBzeros)) * BC)) /\ exists ff_q_pfp_add_congruent_forward_hpadBzerosentry. BB = ff_q_pfp_add_congruent_forward_hpadBzerosentry * S ((S (pfp_repeat_index_add_congruent_forward_hpadBzeros)) * BC) + (0)))) /\ ((forall pfrep_index_add_congruent_forward_hpadB pfrep_value_add_congruent_forward_hpadB. (exists pfa_gap_add_congruent_forward_hpadBbound. pfa_gap_add_congruent_forward_hpadBbound + S (pfrep_index_add_congruent_forward_hpadB) = (L)) -> (((exists ff_h_pfp_add_congruent_forward_hpadBinput. ff_h_pfp_add_congruent_forward_hpadBinput + S (pfrep_value_add_congruent_forward_hpadB) = S ((S (pfrep_index_add_congruent_forward_hpadB)) * bc)) /\ exists ff_q_pfp_add_congruent_forward_hpadBinput. bb = ff_q_pfp_add_congruent_forward_hpadBinput * S ((S (pfrep_index_add_congruent_forward_hpadB)) * bc) + (pfrep_value_add_congruent_forward_hpadB))) -> (((exists ff_h_pfp_add_congruent_forward_hpadBoutput. ff_h_pfp_add_congruent_forward_hpadBoutput + S (pfrep_value_add_congruent_forward_hpadB) = S ((S ((x)+pfrep_index_add_congruent_forward_hpadB)) * BC)) /\ exists ff_q_pfp_add_congruent_forward_hpadBoutput. BB = ff_q_pfp_add_congruent_forward_hpadBoutput * S ((S ((x)+pfrep_index_add_congruent_forward_hpadB)) * BC) + (pfrep_value_add_congruent_forward_hpadB))))))
  44. specialize prime_field_polynomial_equivalent_implies_left_pad (bb)
  45. specialize prime_field_polynomial_equivalent_implies_left_pad (bc)
  46. specialize prime_field_polynomial_equivalent_implies_left_pad (L)
  47. specialize prime_field_polynomial_equivalent_implies_left_pad (x)
  48. specialize prime_field_polynomial_equivalent_implies_left_pad (BB)
  49. specialize prime_field_polynomial_equivalent_implies_left_pad (BC)
  50. apply prime_field_polynomial_equivalent_implies_left_pad
  51. exact hB
  52. specialize prime_field_polynomial_left_pad_equivalent (cb)
  53. specialize prime_field_polynomial_left_pad_equivalent (cc)
  54. specialize prime_field_polynomial_left_pad_equivalent (L)
  55. specialize prime_field_polynomial_left_pad_equivalent (x)
  56. specialize prime_field_polynomial_left_pad_equivalent (CB)
  57. specialize prime_field_polynomial_left_pad_equivalent (CC)
  58. apply prime_field_polynomial_left_pad_equivalent
  59. specialize prime_field_polynomial_add_left_pad_output (p)
  60. specialize prime_field_polynomial_add_left_pad_output (ab)
  61. specialize prime_field_polynomial_add_left_pad_output (ac)
  62. specialize prime_field_polynomial_add_left_pad_output (bb)
  63. specialize prime_field_polynomial_add_left_pad_output (bc)
  64. specialize prime_field_polynomial_add_left_pad_output (cb)
  65. specialize prime_field_polynomial_add_left_pad_output (cc)
  66. specialize prime_field_polynomial_add_left_pad_output (L)
  67. specialize prime_field_polynomial_add_left_pad_output (x)
  68. specialize prime_field_polynomial_add_left_pad_output (AB)
  69. specialize prime_field_polynomial_add_left_pad_output (AC)
  70. specialize prime_field_polynomial_add_left_pad_output (BB)
  71. specialize prime_field_polynomial_add_left_pad_output (BC)
  72. specialize prime_field_polynomial_add_left_pad_output (CB)
  73. specialize prime_field_polynomial_add_left_pad_output (CC)
  74. apply prime_field_polynomial_add_left_pad_output
  75. exact hp
  76. exact ho
  77. exact hpadA
  78. exact hpadB
  79. exact hn
  80. cases horder_right
  81. rewrite <- horder_right_witness at hA
  82. rewrite <- horder_right_witness at hA
  83. rewrite <- horder_right_witness at hB
  84. rewrite <- horder_right_witness at hB
  85. rewrite <- horder_right_witness at ho
  86. rewrite <- horder_right_witness
  87. rewrite <- horder_right_witness
  88. have hpadA : ((forall pfp_repeat_index_add_congruent_reverse_hpadAzeros. (exists pfa_gap_add_congruent_reverse_hpadAzerosindex. pfa_gap_add_congruent_reverse_hpadAzerosindex + S (pfp_repeat_index_add_congruent_reverse_hpadAzeros) = (x)) -> (((exists ff_h_pfp_add_congruent_reverse_hpadAzerosentry. ff_h_pfp_add_congruent_reverse_hpadAzerosentry + S (0) = S ((S (pfp_repeat_index_add_congruent_reverse_hpadAzeros)) * ac)) /\ exists ff_q_pfp_add_congruent_reverse_hpadAzerosentry. ab = ff_q_pfp_add_congruent_reverse_hpadAzerosentry * S ((S (pfp_repeat_index_add_congruent_reverse_hpadAzeros)) * ac) + (0)))) /\ ((forall pfrep_index_add_congruent_reverse_hpadA pfrep_value_add_congruent_reverse_hpadA. (exists pfa_gap_add_congruent_reverse_hpadAbound. pfa_gap_add_congruent_reverse_hpadAbound + S (pfrep_index_add_congruent_reverse_hpadA) = (K)) -> (((exists ff_h_pfp_add_congruent_reverse_hpadAinput. ff_h_pfp_add_congruent_reverse_hpadAinput + S (pfrep_value_add_congruent_reverse_hpadA) = S ((S (pfrep_index_add_congruent_reverse_hpadA)) * AC)) /\ exists ff_q_pfp_add_congruent_reverse_hpadAinput. AB = ff_q_pfp_add_congruent_reverse_hpadAinput * S ((S (pfrep_index_add_congruent_reverse_hpadA)) * AC) + (pfrep_value_add_congruent_reverse_hpadA))) -> (((exists ff_h_pfp_add_congruent_reverse_hpadAoutput. ff_h_pfp_add_congruent_reverse_hpadAoutput + S (pfrep_value_add_congruent_reverse_hpadA) = S ((S ((x)+pfrep_index_add_congruent_reverse_hpadA)) * ac)) /\ exists ff_q_pfp_add_congruent_reverse_hpadAoutput. ab = ff_q_pfp_add_congruent_reverse_hpadAoutput * S ((S ((x)+pfrep_index_add_congruent_reverse_hpadA)) * ac) + (pfrep_value_add_congruent_reverse_hpadA))))))
  89. specialize prime_field_polynomial_equivalent_implies_left_pad (AB)
  90. specialize prime_field_polynomial_equivalent_implies_left_pad (AC)
  91. specialize prime_field_polynomial_equivalent_implies_left_pad (K)
  92. specialize prime_field_polynomial_equivalent_implies_left_pad (x)
  93. specialize prime_field_polynomial_equivalent_implies_left_pad (ab)
  94. specialize prime_field_polynomial_equivalent_implies_left_pad (ac)
  95. apply prime_field_polynomial_equivalent_implies_left_pad
  96. specialize prime_field_polynomial_equivalent_symmetric (ab)
  97. specialize prime_field_polynomial_equivalent_symmetric (ac)
  98. specialize prime_field_polynomial_equivalent_symmetric (x+K)
  99. specialize prime_field_polynomial_equivalent_symmetric (AB)
  100. specialize prime_field_polynomial_equivalent_symmetric (AC)
  101. specialize prime_field_polynomial_equivalent_symmetric (K)
  102. apply prime_field_polynomial_equivalent_symmetric
  103. exact hA
  104. have hpadB : ((forall pfp_repeat_index_add_congruent_reverse_hpadBzeros. (exists pfa_gap_add_congruent_reverse_hpadBzerosindex. pfa_gap_add_congruent_reverse_hpadBzerosindex + S (pfp_repeat_index_add_congruent_reverse_hpadBzeros) = (x)) -> (((exists ff_h_pfp_add_congruent_reverse_hpadBzerosentry. ff_h_pfp_add_congruent_reverse_hpadBzerosentry + S (0) = S ((S (pfp_repeat_index_add_congruent_reverse_hpadBzeros)) * bc)) /\ exists ff_q_pfp_add_congruent_reverse_hpadBzerosentry. bb = ff_q_pfp_add_congruent_reverse_hpadBzerosentry * S ((S (pfp_repeat_index_add_congruent_reverse_hpadBzeros)) * bc) + (0)))) /\ ((forall pfrep_index_add_congruent_reverse_hpadB pfrep_value_add_congruent_reverse_hpadB. (exists pfa_gap_add_congruent_reverse_hpadBbound. pfa_gap_add_congruent_reverse_hpadBbound + S (pfrep_index_add_congruent_reverse_hpadB) = (K)) -> (((exists ff_h_pfp_add_congruent_reverse_hpadBinput. ff_h_pfp_add_congruent_reverse_hpadBinput + S (pfrep_value_add_congruent_reverse_hpadB) = S ((S (pfrep_index_add_congruent_reverse_hpadB)) * BC)) /\ exists ff_q_pfp_add_congruent_reverse_hpadBinput. BB = ff_q_pfp_add_congruent_reverse_hpadBinput * S ((S (pfrep_index_add_congruent_reverse_hpadB)) * BC) + (pfrep_value_add_congruent_reverse_hpadB))) -> (((exists ff_h_pfp_add_congruent_reverse_hpadBoutput. ff_h_pfp_add_congruent_reverse_hpadBoutput + S (pfrep_value_add_congruent_reverse_hpadB) = S ((S ((x)+pfrep_index_add_congruent_reverse_hpadB)) * bc)) /\ exists ff_q_pfp_add_congruent_reverse_hpadBoutput. bb = ff_q_pfp_add_congruent_reverse_hpadBoutput * S ((S ((x)+pfrep_index_add_congruent_reverse_hpadB)) * bc) + (pfrep_value_add_congruent_reverse_hpadB))))))
  105. specialize prime_field_polynomial_equivalent_implies_left_pad (BB)
  106. specialize prime_field_polynomial_equivalent_implies_left_pad (BC)
  107. specialize prime_field_polynomial_equivalent_implies_left_pad (K)
  108. specialize prime_field_polynomial_equivalent_implies_left_pad (x)
  109. specialize prime_field_polynomial_equivalent_implies_left_pad (bb)
  110. specialize prime_field_polynomial_equivalent_implies_left_pad (bc)
  111. apply prime_field_polynomial_equivalent_implies_left_pad
  112. specialize prime_field_polynomial_equivalent_symmetric (bb)
  113. specialize prime_field_polynomial_equivalent_symmetric (bc)
  114. specialize prime_field_polynomial_equivalent_symmetric (x+K)
  115. specialize prime_field_polynomial_equivalent_symmetric (BB)
  116. specialize prime_field_polynomial_equivalent_symmetric (BC)
  117. specialize prime_field_polynomial_equivalent_symmetric (K)
  118. apply prime_field_polynomial_equivalent_symmetric
  119. exact hB
  120. specialize prime_field_polynomial_equivalent_symmetric (CB)
  121. specialize prime_field_polynomial_equivalent_symmetric (CC)
  122. specialize prime_field_polynomial_equivalent_symmetric (K)
  123. specialize prime_field_polynomial_equivalent_symmetric (cb)
  124. specialize prime_field_polynomial_equivalent_symmetric (cc)
  125. specialize prime_field_polynomial_equivalent_symmetric (x+K)
  126. apply prime_field_polynomial_equivalent_symmetric
  127. specialize prime_field_polynomial_left_pad_equivalent (CB)
  128. specialize prime_field_polynomial_left_pad_equivalent (CC)
  129. specialize prime_field_polynomial_left_pad_equivalent (K)
  130. specialize prime_field_polynomial_left_pad_equivalent (x)
  131. specialize prime_field_polynomial_left_pad_equivalent (cb)
  132. specialize prime_field_polynomial_left_pad_equivalent (cc)
  133. apply prime_field_polynomial_left_pad_equivalent
  134. specialize prime_field_polynomial_add_left_pad_output (p)
  135. specialize prime_field_polynomial_add_left_pad_output (AB)
  136. specialize prime_field_polynomial_add_left_pad_output (AC)
  137. specialize prime_field_polynomial_add_left_pad_output (BB)
  138. specialize prime_field_polynomial_add_left_pad_output (BC)
  139. specialize prime_field_polynomial_add_left_pad_output (CB)
  140. specialize prime_field_polynomial_add_left_pad_output (CC)
  141. specialize prime_field_polynomial_add_left_pad_output (K)
  142. specialize prime_field_polynomial_add_left_pad_output (x)
  143. specialize prime_field_polynomial_add_left_pad_output (ab)
  144. specialize prime_field_polynomial_add_left_pad_output (ac)
  145. specialize prime_field_polynomial_add_left_pad_output (bb)
  146. specialize prime_field_polynomial_add_left_pad_output (bc)
  147. specialize prime_field_polynomial_add_left_pad_output (cb)
  148. specialize prime_field_polynomial_add_left_pad_output (cc)
  149. apply prime_field_polynomial_add_left_pad_output
  150. exact hp
  151. exact hn
  152. exact hpadA
  153. exact hpadB
  154. exact ho
prime_field_polynomial_convolution_equivalent_congruent_right · unchanged support, not a new admission
forall p ab ac L bb bc M cb cc N BB BC H CB CC K. (~(p=0)) -> (forall pfrep_power_congruent_factor_right pfrep_left_congruent_factor_right pfrep_right_congruent_factor_right. ((exists pfrep_position_congruent_factor_rightfirst. ((pfrep_position_congruent_factor_rightfirst+S (pfrep_power_congruent_factor_right)=(M)) /\ ((((exists ff_h_pfp_congruent_factor_rightfirstentry. ff_h_pfp_congruent_factor_rightfirstentry + S (pfrep_left_congruent_factor_right) = S ((S (pfrep_position_congruent_factor_rightfirst)) * bc)) /\ exists ff_q_pfp_congruent_factor_rightfirstentry. bb = ff_q_pfp_congruent_factor_rightfirstentry * S ((S (pfrep_position_congruent_factor_rightfirst)) * bc) + (pfrep_left_congruent_factor_right)))))) \/ (((exists pfrep_gap_congruent_factor_rightfirstoutside. pfrep_gap_congruent_factor_rightfirstoutside+(M)=(pfrep_power_congruent_factor_right)) /\ (((pfrep_left_congruent_factor_right)=0))))) -> ((exists pfrep_position_congruent_factor_rightsecond. ((pfrep_position_congruent_factor_rightsecond+S (pfrep_power_congruent_factor_right)=(H)) /\ ((((exists ff_h_pfp_congruent_factor_rightsecondentry. ff_h_pfp_congruent_factor_rightsecondentry + S (pfrep_right_congruent_factor_right) = S ((S (pfrep_position_congruent_factor_rightsecond)) * BC)) /\ exists ff_q_pfp_congruent_factor_rightsecondentry. BB = ff_q_pfp_congruent_factor_rightsecondentry * S ((S (pfrep_position_congruent_factor_rightsecond)) * BC) + (pfrep_right_congruent_factor_right)))))) \/ (((exists pfrep_gap_congruent_factor_rightsecondoutside. pfrep_gap_congruent_factor_rightsecondoutside+(H)=(pfrep_power_congruent_factor_right)) /\ (((pfrep_right_congruent_factor_right)=0))))) -> pfrep_left_congruent_factor_right=pfrep_right_congruent_factor_right) -> (((forall fom_index_pfp_congruent_original_rightleft. (exists fom_gap_pfp_congruent_original_rightleft_index_bound. fom_gap_pfp_congruent_original_rightleft_index_bound + S (fom_index_pfp_congruent_original_rightleft) = L) -> exists fom_value_pfp_congruent_original_rightleft. ((((exists fom_beta_height_pfp_congruent_original_rightleft_entry. fom_beta_height_pfp_congruent_original_rightleft_entry + S (fom_value_pfp_congruent_original_rightleft) = S ((S (fom_index_pfp_congruent_original_rightleft)) * ac)) /\ exists fom_beta_quotient_pfp_congruent_original_rightleft_entry. ab = fom_beta_quotient_pfp_congruent_original_rightleft_entry * S ((S (fom_index_pfp_congruent_original_rightleft)) * ac) + (fom_value_pfp_congruent_original_rightleft))) /\ (exists fom_gap_pfp_congruent_original_rightleft_value_bound. fom_gap_pfp_congruent_original_rightleft_value_bound + S (fom_value_pfp_congruent_original_rightleft) = p))) /\ (((forall fom_index_pfp_congruent_original_rightright. (exists fom_gap_pfp_congruent_original_rightright_index_bound. fom_gap_pfp_congruent_original_rightright_index_bound + S (fom_index_pfp_congruent_original_rightright) = M) -> exists fom_value_pfp_congruent_original_rightright. ((((exists fom_beta_height_pfp_congruent_original_rightright_entry. fom_beta_height_pfp_congruent_original_rightright_entry + S (fom_value_pfp_congruent_original_rightright) = S ((S (fom_index_pfp_congruent_original_rightright)) * bc)) /\ exists fom_beta_quotient_pfp_congruent_original_rightright_entry. bb = fom_beta_quotient_pfp_congruent_original_rightright_entry * S ((S (fom_index_pfp_congruent_original_rightright)) * bc) + (fom_value_pfp_congruent_original_rightright))) /\ (exists fom_gap_pfp_congruent_original_rightright_value_bound. fom_gap_pfp_congruent_original_rightright_value_bound + S (fom_value_pfp_congruent_original_rightright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_congruent_original_rightcoefficients. (exists pfa_gap_congruent_original_rightcoefficientsbound. pfa_gap_congruent_original_rightcoefficientsbound + S (pfc_index_congruent_original_rightcoefficients) = (N)) -> exists pfc_value_congruent_original_rightcoefficients. ((((exists ff_h_pfp_congruent_original_rightcoefficientsentry. ff_h_pfp_congruent_original_rightcoefficientsentry + S (pfc_value_congruent_original_rightcoefficients) = S ((S (pfc_index_congruent_original_rightcoefficients)) * cc)) /\ exists ff_q_pfp_congruent_original_rightcoefficientsentry. cb = ff_q_pfp_congruent_original_rightcoefficientsentry * S ((S (pfc_index_congruent_original_rightcoefficients)) * cc) + (pfc_value_congruent_original_rightcoefficients))) /\ ((exists pfc_terms_code_congruent_original_rightcoefficientscoefficient pfc_terms_scale_congruent_original_rightcoefficientscoefficient pfc_natural_sum_congruent_original_rightcoefficientscoefficient. ((forall pfc_index_congruent_original_rightcoefficientscoefficientdiagonal. (exists pfa_gap_congruent_original_rightcoefficientscoefficientdiagonalbound. pfa_gap_congruent_original_rightcoefficientscoefficientdiagonalbound + S (pfc_index_congruent_original_rightcoefficientscoefficientdiagonal) = (S (pfc_index_congruent_original_rightcoefficients))) -> exists pfc_value_congruent_original_rightcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_congruent_original_rightcoefficientscoefficientdiagonalentry. ff_h_pfp_congruent_original_rightcoefficientscoefficientdiagonalentry + S (pfc_value_congruent_original_rightcoefficientscoefficientdiagonal) = S ((S (pfc_index_congruent_original_rightcoefficientscoefficientdiagonal)) * pfc_terms_scale_congruent_original_rightcoefficientscoefficient)) /\ exists ff_q_pfp_congruent_original_rightcoefficientscoefficientdiagonalentry. pfc_terms_code_congruent_original_rightcoefficientscoefficient = ff_q_pfp_congruent_original_rightcoefficientscoefficientdiagonalentry * S ((S (pfc_index_congruent_original_rightcoefficientscoefficientdiagonal)) * pfc_terms_scale_congruent_original_rightcoefficientscoefficient) + (pfc_value_congruent_original_rightcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_congruent_original_rightcoefficientscoefficientdiagonalterm pfc_left_congruent_original_rightcoefficientscoefficientdiagonalterm pfc_right_congruent_original_rightcoefficientscoefficientdiagonalterm. (((pfc_index_congruent_original_rightcoefficientscoefficientdiagonal)+pfc_complement_congruent_original_rightcoefficientscoefficientdiagonalterm=(pfc_index_congruent_original_rightcoefficients)) /\ ((((((exists pfa_gap_congruent_original_rightcoefficientscoefficientdiagonaltermleftinside. pfa_gap_congruent_original_rightcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_congruent_original_rightcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_congruent_original_rightcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_congruent_original_rightcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_congruent_original_rightcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_congruent_original_rightcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_congruent_original_rightcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_congruent_original_rightcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_congruent_original_rightcoefficientscoefficientdiagonal)) * ac) + (pfc_left_congruent_original_rightcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_congruent_original_rightcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_congruent_original_rightcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_congruent_original_rightcoefficientscoefficientdiagonal)) /\ (((pfc_left_congruent_original_rightcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_congruent_original_rightcoefficientscoefficientdiagonaltermrightinside. pfa_gap_congruent_original_rightcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_congruent_original_rightcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_congruent_original_rightcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_congruent_original_rightcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_congruent_original_rightcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_congruent_original_rightcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_congruent_original_rightcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_congruent_original_rightcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_congruent_original_rightcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_congruent_original_rightcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_congruent_original_rightcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_congruent_original_rightcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_congruent_original_rightcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_congruent_original_rightcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_congruent_original_rightcoefficientscoefficientdiagonal)=pfc_left_congruent_original_rightcoefficientscoefficientdiagonalterm*pfc_right_congruent_original_rightcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_congruent_original_rightcoefficientscoefficientsum fs_v_pfc_congruent_original_rightcoefficientscoefficientsum. ((((exists fs_h_pfc_congruent_original_rightcoefficientscoefficientsum_body_start. fs_h_pfc_congruent_original_rightcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_congruent_original_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_original_rightcoefficientscoefficientsum_body_start. fs_u_pfc_congruent_original_rightcoefficientscoefficientsum = fs_q_pfc_congruent_original_rightcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_congruent_original_rightcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_congruent_original_rightcoefficientscoefficientsum_body_terminal. fs_h_pfc_congruent_original_rightcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_congruent_original_rightcoefficientscoefficient) = S ((S (S (pfc_index_congruent_original_rightcoefficients))) * fs_v_pfc_congruent_original_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_original_rightcoefficientscoefficientsum_body_terminal. fs_u_pfc_congruent_original_rightcoefficientscoefficientsum = fs_q_pfc_congruent_original_rightcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_congruent_original_rightcoefficients))) * fs_v_pfc_congruent_original_rightcoefficientscoefficientsum) + (pfc_natural_sum_congruent_original_rightcoefficientscoefficient))) /\ forall fs_i_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps = S (pfc_index_congruent_original_rightcoefficients)) -> exists fs_a_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps fs_r_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps fs_s_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_congruent_original_rightcoefficientscoefficient)) /\ exists fs_q_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_congruent_original_rightcoefficientscoefficient = fs_q_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_congruent_original_rightcoefficientscoefficient) + (fs_a_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_original_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_congruent_original_rightcoefficientscoefficientsum = fs_q_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_original_rightcoefficientscoefficientsum) + (fs_r_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_original_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_congruent_original_rightcoefficientscoefficientsum = fs_q_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_original_rightcoefficientscoefficientsum) + (fs_s_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps = fs_r_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps + fs_a_pfc_congruent_original_rightcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_congruent_original_rightcoefficientscoefficientresiduebound. pfa_gap_congruent_original_rightcoefficientscoefficientresiduebound + S (pfc_value_congruent_original_rightcoefficients) = (p)) /\ ((exists pfa_offset_left_congruent_original_rightcoefficientscoefficientresiduecongruence pfa_offset_right_congruent_original_rightcoefficientscoefficientresiduecongruence. (pfc_natural_sum_congruent_original_rightcoefficientscoefficient) + (p) * pfa_offset_left_congruent_original_rightcoefficientscoefficientresiduecongruence = (pfc_value_congruent_original_rightcoefficients) + (p) * pfa_offset_right_congruent_original_rightcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_congruent_other_rightleft. (exists fom_gap_pfp_congruent_other_rightleft_index_bound. fom_gap_pfp_congruent_other_rightleft_index_bound + S (fom_index_pfp_congruent_other_rightleft) = L) -> exists fom_value_pfp_congruent_other_rightleft. ((((exists fom_beta_height_pfp_congruent_other_rightleft_entry. fom_beta_height_pfp_congruent_other_rightleft_entry + S (fom_value_pfp_congruent_other_rightleft) = S ((S (fom_index_pfp_congruent_other_rightleft)) * ac)) /\ exists fom_beta_quotient_pfp_congruent_other_rightleft_entry. ab = fom_beta_quotient_pfp_congruent_other_rightleft_entry * S ((S (fom_index_pfp_congruent_other_rightleft)) * ac) + (fom_value_pfp_congruent_other_rightleft))) /\ (exists fom_gap_pfp_congruent_other_rightleft_value_bound. fom_gap_pfp_congruent_other_rightleft_value_bound + S (fom_value_pfp_congruent_other_rightleft) = p))) /\ (((forall fom_index_pfp_congruent_other_rightright. (exists fom_gap_pfp_congruent_other_rightright_index_bound. fom_gap_pfp_congruent_other_rightright_index_bound + S (fom_index_pfp_congruent_other_rightright) = H) -> exists fom_value_pfp_congruent_other_rightright. ((((exists fom_beta_height_pfp_congruent_other_rightright_entry. fom_beta_height_pfp_congruent_other_rightright_entry + S (fom_value_pfp_congruent_other_rightright) = S ((S (fom_index_pfp_congruent_other_rightright)) * BC)) /\ exists fom_beta_quotient_pfp_congruent_other_rightright_entry. BB = fom_beta_quotient_pfp_congruent_other_rightright_entry * S ((S (fom_index_pfp_congruent_other_rightright)) * BC) + (fom_value_pfp_congruent_other_rightright))) /\ (exists fom_gap_pfp_congruent_other_rightright_value_bound. fom_gap_pfp_congruent_other_rightright_value_bound + S (fom_value_pfp_congruent_other_rightright) = p))) /\ (((((((L)=0 \/ (H)=0) /\ (((K)=0)))) \/ (((~((L)=0)) /\ (((~((H)=0)) /\ (((L)+(H)=S (K)))))))) /\ ((forall pfc_index_congruent_other_rightcoefficients. (exists pfa_gap_congruent_other_rightcoefficientsbound. pfa_gap_congruent_other_rightcoefficientsbound + S (pfc_index_congruent_other_rightcoefficients) = (K)) -> exists pfc_value_congruent_other_rightcoefficients. ((((exists ff_h_pfp_congruent_other_rightcoefficientsentry. ff_h_pfp_congruent_other_rightcoefficientsentry + S (pfc_value_congruent_other_rightcoefficients) = S ((S (pfc_index_congruent_other_rightcoefficients)) * CC)) /\ exists ff_q_pfp_congruent_other_rightcoefficientsentry. CB = ff_q_pfp_congruent_other_rightcoefficientsentry * S ((S (pfc_index_congruent_other_rightcoefficients)) * CC) + (pfc_value_congruent_other_rightcoefficients))) /\ ((exists pfc_terms_code_congruent_other_rightcoefficientscoefficient pfc_terms_scale_congruent_other_rightcoefficientscoefficient pfc_natural_sum_congruent_other_rightcoefficientscoefficient. ((forall pfc_index_congruent_other_rightcoefficientscoefficientdiagonal. (exists pfa_gap_congruent_other_rightcoefficientscoefficientdiagonalbound. pfa_gap_congruent_other_rightcoefficientscoefficientdiagonalbound + S (pfc_index_congruent_other_rightcoefficientscoefficientdiagonal) = (S (pfc_index_congruent_other_rightcoefficients))) -> exists pfc_value_congruent_other_rightcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_congruent_other_rightcoefficientscoefficientdiagonalentry. ff_h_pfp_congruent_other_rightcoefficientscoefficientdiagonalentry + S (pfc_value_congruent_other_rightcoefficientscoefficientdiagonal) = S ((S (pfc_index_congruent_other_rightcoefficientscoefficientdiagonal)) * pfc_terms_scale_congruent_other_rightcoefficientscoefficient)) /\ exists ff_q_pfp_congruent_other_rightcoefficientscoefficientdiagonalentry. pfc_terms_code_congruent_other_rightcoefficientscoefficient = ff_q_pfp_congruent_other_rightcoefficientscoefficientdiagonalentry * S ((S (pfc_index_congruent_other_rightcoefficientscoefficientdiagonal)) * pfc_terms_scale_congruent_other_rightcoefficientscoefficient) + (pfc_value_congruent_other_rightcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_congruent_other_rightcoefficientscoefficientdiagonalterm pfc_left_congruent_other_rightcoefficientscoefficientdiagonalterm pfc_right_congruent_other_rightcoefficientscoefficientdiagonalterm. (((pfc_index_congruent_other_rightcoefficientscoefficientdiagonal)+pfc_complement_congruent_other_rightcoefficientscoefficientdiagonalterm=(pfc_index_congruent_other_rightcoefficients)) /\ ((((((exists pfa_gap_congruent_other_rightcoefficientscoefficientdiagonaltermleftinside. pfa_gap_congruent_other_rightcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_congruent_other_rightcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_congruent_other_rightcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_congruent_other_rightcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_congruent_other_rightcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_congruent_other_rightcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_congruent_other_rightcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_congruent_other_rightcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_congruent_other_rightcoefficientscoefficientdiagonal)) * ac) + (pfc_left_congruent_other_rightcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_congruent_other_rightcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_congruent_other_rightcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_congruent_other_rightcoefficientscoefficientdiagonal)) /\ (((pfc_left_congruent_other_rightcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_congruent_other_rightcoefficientscoefficientdiagonaltermrightinside. pfa_gap_congruent_other_rightcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_congruent_other_rightcoefficientscoefficientdiagonalterm) = (H)) /\ ((((exists ff_h_pfp_congruent_other_rightcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_congruent_other_rightcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_congruent_other_rightcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_congruent_other_rightcoefficientscoefficientdiagonalterm)) * BC)) /\ exists ff_q_pfp_congruent_other_rightcoefficientscoefficientdiagonaltermrightentry. BB = ff_q_pfp_congruent_other_rightcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_congruent_other_rightcoefficientscoefficientdiagonalterm)) * BC) + (pfc_right_congruent_other_rightcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_congruent_other_rightcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_congruent_other_rightcoefficientscoefficientdiagonaltermrightoutside+(H)=(pfc_complement_congruent_other_rightcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_congruent_other_rightcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_congruent_other_rightcoefficientscoefficientdiagonal)=pfc_left_congruent_other_rightcoefficientscoefficientdiagonalterm*pfc_right_congruent_other_rightcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_congruent_other_rightcoefficientscoefficientsum fs_v_pfc_congruent_other_rightcoefficientscoefficientsum. ((((exists fs_h_pfc_congruent_other_rightcoefficientscoefficientsum_body_start. fs_h_pfc_congruent_other_rightcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_congruent_other_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_other_rightcoefficientscoefficientsum_body_start. fs_u_pfc_congruent_other_rightcoefficientscoefficientsum = fs_q_pfc_congruent_other_rightcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_congruent_other_rightcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_congruent_other_rightcoefficientscoefficientsum_body_terminal. fs_h_pfc_congruent_other_rightcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_congruent_other_rightcoefficientscoefficient) = S ((S (S (pfc_index_congruent_other_rightcoefficients))) * fs_v_pfc_congruent_other_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_other_rightcoefficientscoefficientsum_body_terminal. fs_u_pfc_congruent_other_rightcoefficientscoefficientsum = fs_q_pfc_congruent_other_rightcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_congruent_other_rightcoefficients))) * fs_v_pfc_congruent_other_rightcoefficientscoefficientsum) + (pfc_natural_sum_congruent_other_rightcoefficientscoefficient))) /\ forall fs_i_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps = S (pfc_index_congruent_other_rightcoefficients)) -> exists fs_a_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps fs_r_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps fs_s_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_congruent_other_rightcoefficientscoefficient)) /\ exists fs_q_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_congruent_other_rightcoefficientscoefficient = fs_q_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_congruent_other_rightcoefficientscoefficient) + (fs_a_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_other_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_congruent_other_rightcoefficientscoefficientsum = fs_q_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_other_rightcoefficientscoefficientsum) + (fs_r_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_other_rightcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_congruent_other_rightcoefficientscoefficientsum = fs_q_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_other_rightcoefficientscoefficientsum) + (fs_s_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps = fs_r_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps + fs_a_pfc_congruent_other_rightcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_congruent_other_rightcoefficientscoefficientresiduebound. pfa_gap_congruent_other_rightcoefficientscoefficientresiduebound + S (pfc_value_congruent_other_rightcoefficients) = (p)) /\ ((exists pfa_offset_left_congruent_other_rightcoefficientscoefficientresiduecongruence pfa_offset_right_congruent_other_rightcoefficientscoefficientresiduecongruence. (pfc_natural_sum_congruent_other_rightcoefficientscoefficient) + (p) * pfa_offset_left_congruent_other_rightcoefficientscoefficientresiduecongruence = (pfc_value_congruent_other_rightcoefficients) + (p) * pfa_offset_right_congruent_other_rightcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (forall pfrep_power_congruent_output_right pfrep_left_congruent_output_right pfrep_right_congruent_output_right. ((exists pfrep_position_congruent_output_rightfirst. ((pfrep_position_congruent_output_rightfirst+S (pfrep_power_congruent_output_right)=(N)) /\ ((((exists ff_h_pfp_congruent_output_rightfirstentry. ff_h_pfp_congruent_output_rightfirstentry + S (pfrep_left_congruent_output_right) = S ((S (pfrep_position_congruent_output_rightfirst)) * cc)) /\ exists ff_q_pfp_congruent_output_rightfirstentry. cb = ff_q_pfp_congruent_output_rightfirstentry * S ((S (pfrep_position_congruent_output_rightfirst)) * cc) + (pfrep_left_congruent_output_right)))))) \/ (((exists pfrep_gap_congruent_output_rightfirstoutside. pfrep_gap_congruent_output_rightfirstoutside+(N)=(pfrep_power_congruent_output_right)) /\ (((pfrep_left_congruent_output_right)=0))))) -> ((exists pfrep_position_congruent_output_rightsecond. ((pfrep_position_congruent_output_rightsecond+S (pfrep_power_congruent_output_right)=(K)) /\ ((((exists ff_h_pfp_congruent_output_rightsecondentry. ff_h_pfp_congruent_output_rightsecondentry + S (pfrep_right_congruent_output_right) = S ((S (pfrep_position_congruent_output_rightsecond)) * CC)) /\ exists ff_q_pfp_congruent_output_rightsecondentry. CB = ff_q_pfp_congruent_output_rightsecondentry * S ((S (pfrep_position_congruent_output_rightsecond)) * CC) + (pfrep_right_congruent_output_right)))))) \/ (((exists pfrep_gap_congruent_output_rightsecondoutside. pfrep_gap_congruent_output_rightsecondoutside+(K)=(pfrep_power_congruent_output_right)) /\ (((pfrep_right_congruent_output_right)=0))))) -> pfrep_left_congruent_output_right=pfrep_right_congruent_output_right)
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro cb
  9. intro cc
  10. intro N
  11. intro BB
  12. intro BC
  13. intro H
  14. intro CB
  15. intro CC
  16. intro K
  17. intro hp
  18. intro he
  19. intro hc
  20. intro hd
  21. have horder : (exists pfc_gap_congruent_forward_right. pfc_gap_congruent_forward_right+(M)=(H)) \/ (exists pfc_gap_congruent_backward_right. pfc_gap_congruent_backward_right+(H)=(M))
  22. specialize le_total (M)
  23. specialize le_total (H)
  24. apply le_total
  25. cases horder
  26. cases horder_left
  27. have hpadding : ((forall pfp_repeat_index_congruent_padding_rightzeros. (exists pfa_gap_congruent_padding_rightzerosindex. pfa_gap_congruent_padding_rightzerosindex + S (pfp_repeat_index_congruent_padding_rightzeros) = (x)) -> (((exists ff_h_pfp_congruent_padding_rightzerosentry. ff_h_pfp_congruent_padding_rightzerosentry + S (0) = S ((S (pfp_repeat_index_congruent_padding_rightzeros)) * BC)) /\ exists ff_q_pfp_congruent_padding_rightzerosentry. BB = ff_q_pfp_congruent_padding_rightzerosentry * S ((S (pfp_repeat_index_congruent_padding_rightzeros)) * BC) + (0)))) /\ ((forall pfrep_index_congruent_padding_right pfrep_value_congruent_padding_right. (exists pfa_gap_congruent_padding_rightbound. pfa_gap_congruent_padding_rightbound + S (pfrep_index_congruent_padding_right) = (M)) -> (((exists ff_h_pfp_congruent_padding_rightinput. ff_h_pfp_congruent_padding_rightinput + S (pfrep_value_congruent_padding_right) = S ((S (pfrep_index_congruent_padding_right)) * bc)) /\ exists ff_q_pfp_congruent_padding_rightinput. bb = ff_q_pfp_congruent_padding_rightinput * S ((S (pfrep_index_congruent_padding_right)) * bc) + (pfrep_value_congruent_padding_right))) -> (((exists ff_h_pfp_congruent_padding_rightoutput. ff_h_pfp_congruent_padding_rightoutput + S (pfrep_value_congruent_padding_right) = S ((S ((x)+pfrep_index_congruent_padding_right)) * BC)) /\ exists ff_q_pfp_congruent_padding_rightoutput. BB = ff_q_pfp_congruent_padding_rightoutput * S ((S ((x)+pfrep_index_congruent_padding_right)) * BC) + (pfrep_value_congruent_padding_right))))))
  28. specialize prime_field_polynomial_equivalent_implies_left_pad (bb)
  29. specialize prime_field_polynomial_equivalent_implies_left_pad (bc)
  30. specialize prime_field_polynomial_equivalent_implies_left_pad (M)
  31. specialize prime_field_polynomial_equivalent_implies_left_pad (x)
  32. specialize prime_field_polynomial_equivalent_implies_left_pad (BB)
  33. specialize prime_field_polynomial_equivalent_implies_left_pad (BC)
  34. apply prime_field_polynomial_equivalent_implies_left_pad
  35. rewrite horder_left_witness
  36. rewrite horder_left_witness
  37. exact he
  38. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (p)
  39. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (ab)
  40. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (ac)
  41. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (L)
  42. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (bb)
  43. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (bc)
  44. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (M)
  45. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (cb)
  46. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (cc)
  47. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (N)
  48. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (BB)
  49. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (BC)
  50. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (x)
  51. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (CB)
  52. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (CC)
  53. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (K)
  54. apply prime_field_polynomial_convolution_left_padding_equivalent_right
  55. exact hp
  56. exact hpadding
  57. exact hc
  58. rewrite horder_left_witness
  59. rewrite horder_left_witness
  60. rewrite horder_left_witness
  61. rewrite horder_left_witness
  62. rewrite horder_left_witness
  63. rewrite horder_left_witness
  64. exact hd
  65. cases horder_right
  66. have hpadding : ((forall pfp_repeat_index_congruent_padding_rightzeros. (exists pfa_gap_congruent_padding_rightzerosindex. pfa_gap_congruent_padding_rightzerosindex + S (pfp_repeat_index_congruent_padding_rightzeros) = (x)) -> (((exists ff_h_pfp_congruent_padding_rightzerosentry. ff_h_pfp_congruent_padding_rightzerosentry + S (0) = S ((S (pfp_repeat_index_congruent_padding_rightzeros)) * bc)) /\ exists ff_q_pfp_congruent_padding_rightzerosentry. bb = ff_q_pfp_congruent_padding_rightzerosentry * S ((S (pfp_repeat_index_congruent_padding_rightzeros)) * bc) + (0)))) /\ ((forall pfrep_index_congruent_padding_right pfrep_value_congruent_padding_right. (exists pfa_gap_congruent_padding_rightbound. pfa_gap_congruent_padding_rightbound + S (pfrep_index_congruent_padding_right) = (H)) -> (((exists ff_h_pfp_congruent_padding_rightinput. ff_h_pfp_congruent_padding_rightinput + S (pfrep_value_congruent_padding_right) = S ((S (pfrep_index_congruent_padding_right)) * BC)) /\ exists ff_q_pfp_congruent_padding_rightinput. BB = ff_q_pfp_congruent_padding_rightinput * S ((S (pfrep_index_congruent_padding_right)) * BC) + (pfrep_value_congruent_padding_right))) -> (((exists ff_h_pfp_congruent_padding_rightoutput. ff_h_pfp_congruent_padding_rightoutput + S (pfrep_value_congruent_padding_right) = S ((S ((x)+pfrep_index_congruent_padding_right)) * bc)) /\ exists ff_q_pfp_congruent_padding_rightoutput. bb = ff_q_pfp_congruent_padding_rightoutput * S ((S ((x)+pfrep_index_congruent_padding_right)) * bc) + (pfrep_value_congruent_padding_right))))))
  67. specialize prime_field_polynomial_equivalent_implies_left_pad (BB)
  68. specialize prime_field_polynomial_equivalent_implies_left_pad (BC)
  69. specialize prime_field_polynomial_equivalent_implies_left_pad (H)
  70. specialize prime_field_polynomial_equivalent_implies_left_pad (x)
  71. specialize prime_field_polynomial_equivalent_implies_left_pad (bb)
  72. specialize prime_field_polynomial_equivalent_implies_left_pad (bc)
  73. apply prime_field_polynomial_equivalent_implies_left_pad
  74. rewrite horder_right_witness
  75. rewrite horder_right_witness
  76. specialize prime_field_polynomial_equivalent_symmetric (bb)
  77. specialize prime_field_polynomial_equivalent_symmetric (bc)
  78. specialize prime_field_polynomial_equivalent_symmetric (M)
  79. specialize prime_field_polynomial_equivalent_symmetric (BB)
  80. specialize prime_field_polynomial_equivalent_symmetric (BC)
  81. specialize prime_field_polynomial_equivalent_symmetric (H)
  82. apply prime_field_polynomial_equivalent_symmetric
  83. exact he
  84. specialize prime_field_polynomial_equivalent_symmetric (CB)
  85. specialize prime_field_polynomial_equivalent_symmetric (CC)
  86. specialize prime_field_polynomial_equivalent_symmetric (K)
  87. specialize prime_field_polynomial_equivalent_symmetric (cb)
  88. specialize prime_field_polynomial_equivalent_symmetric (cc)
  89. specialize prime_field_polynomial_equivalent_symmetric (N)
  90. apply prime_field_polynomial_equivalent_symmetric
  91. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (p)
  92. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (ab)
  93. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (ac)
  94. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (L)
  95. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (BB)
  96. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (BC)
  97. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (H)
  98. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (CB)
  99. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (CC)
  100. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (K)
  101. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (bb)
  102. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (bc)
  103. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (x)
  104. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (cb)
  105. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (cc)
  106. specialize prime_field_polynomial_convolution_left_padding_equivalent_right (N)
  107. apply prime_field_polynomial_convolution_left_padding_equivalent_right
  108. exact hp
  109. exact hpadding
  110. exact hd
  111. rewrite horder_right_witness
  112. rewrite horder_right_witness
  113. rewrite horder_right_witness
  114. rewrite horder_right_witness
  115. rewrite horder_right_witness
  116. rewrite horder_right_witness
  117. exact hc
prime_field_polynomial_convolution_empty · unchanged support, not a new admission
forall p ab ac L bb bc M cb cc. (forall fom_index_pfp_convolution_empty_left. (exists fom_gap_pfp_convolution_empty_left_index_bound. fom_gap_pfp_convolution_empty_left_index_bound + S (fom_index_pfp_convolution_empty_left) = L) -> exists fom_value_pfp_convolution_empty_left. ((((exists fom_beta_height_pfp_convolution_empty_left_entry. fom_beta_height_pfp_convolution_empty_left_entry + S (fom_value_pfp_convolution_empty_left) = S ((S (fom_index_pfp_convolution_empty_left)) * ac)) /\ exists fom_beta_quotient_pfp_convolution_empty_left_entry. ab = fom_beta_quotient_pfp_convolution_empty_left_entry * S ((S (fom_index_pfp_convolution_empty_left)) * ac) + (fom_value_pfp_convolution_empty_left))) /\ (exists fom_gap_pfp_convolution_empty_left_value_bound. fom_gap_pfp_convolution_empty_left_value_bound + S (fom_value_pfp_convolution_empty_left) = p))) -> (forall fom_index_pfp_convolution_empty_right. (exists fom_gap_pfp_convolution_empty_right_index_bound. fom_gap_pfp_convolution_empty_right_index_bound + S (fom_index_pfp_convolution_empty_right) = M) -> exists fom_value_pfp_convolution_empty_right. ((((exists fom_beta_height_pfp_convolution_empty_right_entry. fom_beta_height_pfp_convolution_empty_right_entry + S (fom_value_pfp_convolution_empty_right) = S ((S (fom_index_pfp_convolution_empty_right)) * bc)) /\ exists fom_beta_quotient_pfp_convolution_empty_right_entry. bb = fom_beta_quotient_pfp_convolution_empty_right_entry * S ((S (fom_index_pfp_convolution_empty_right)) * bc) + (fom_value_pfp_convolution_empty_right))) /\ (exists fom_gap_pfp_convolution_empty_right_value_bound. fom_gap_pfp_convolution_empty_right_value_bound + S (fom_value_pfp_convolution_empty_right) = p))) -> (L=0 \/ M=0) -> (((forall fom_index_pfp_convolution_empty_resultleft. (exists fom_gap_pfp_convolution_empty_resultleft_index_bound. fom_gap_pfp_convolution_empty_resultleft_index_bound + S (fom_index_pfp_convolution_empty_resultleft) = L) -> exists fom_value_pfp_convolution_empty_resultleft. ((((exists fom_beta_height_pfp_convolution_empty_resultleft_entry. fom_beta_height_pfp_convolution_empty_resultleft_entry + S (fom_value_pfp_convolution_empty_resultleft) = S ((S (fom_index_pfp_convolution_empty_resultleft)) * ac)) /\ exists fom_beta_quotient_pfp_convolution_empty_resultleft_entry. ab = fom_beta_quotient_pfp_convolution_empty_resultleft_entry * S ((S (fom_index_pfp_convolution_empty_resultleft)) * ac) + (fom_value_pfp_convolution_empty_resultleft))) /\ (exists fom_gap_pfp_convolution_empty_resultleft_value_bound. fom_gap_pfp_convolution_empty_resultleft_value_bound + S (fom_value_pfp_convolution_empty_resultleft) = p))) /\ (((forall fom_index_pfp_convolution_empty_resultright. (exists fom_gap_pfp_convolution_empty_resultright_index_bound. fom_gap_pfp_convolution_empty_resultright_index_bound + S (fom_index_pfp_convolution_empty_resultright) = M) -> exists fom_value_pfp_convolution_empty_resultright. ((((exists fom_beta_height_pfp_convolution_empty_resultright_entry. fom_beta_height_pfp_convolution_empty_resultright_entry + S (fom_value_pfp_convolution_empty_resultright) = S ((S (fom_index_pfp_convolution_empty_resultright)) * bc)) /\ exists fom_beta_quotient_pfp_convolution_empty_resultright_entry. bb = fom_beta_quotient_pfp_convolution_empty_resultright_entry * S ((S (fom_index_pfp_convolution_empty_resultright)) * bc) + (fom_value_pfp_convolution_empty_resultright))) /\ (exists fom_gap_pfp_convolution_empty_resultright_value_bound. fom_gap_pfp_convolution_empty_resultright_value_bound + S (fom_value_pfp_convolution_empty_resultright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((0)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (0)))))))) /\ ((forall pfc_index_convolution_empty_resultcoefficients. (exists pfa_gap_convolution_empty_resultcoefficientsbound. pfa_gap_convolution_empty_resultcoefficientsbound + S (pfc_index_convolution_empty_resultcoefficients) = (0)) -> exists pfc_value_convolution_empty_resultcoefficients. ((((exists ff_h_pfp_convolution_empty_resultcoefficientsentry. ff_h_pfp_convolution_empty_resultcoefficientsentry + S (pfc_value_convolution_empty_resultcoefficients) = S ((S (pfc_index_convolution_empty_resultcoefficients)) * cc)) /\ exists ff_q_pfp_convolution_empty_resultcoefficientsentry. cb = ff_q_pfp_convolution_empty_resultcoefficientsentry * S ((S (pfc_index_convolution_empty_resultcoefficients)) * cc) + (pfc_value_convolution_empty_resultcoefficients))) /\ ((exists pfc_terms_code_convolution_empty_resultcoefficientscoefficient pfc_terms_scale_convolution_empty_resultcoefficientscoefficient pfc_natural_sum_convolution_empty_resultcoefficientscoefficient. ((forall pfc_index_convolution_empty_resultcoefficientscoefficientdiagonal. (exists pfa_gap_convolution_empty_resultcoefficientscoefficientdiagonalbound. pfa_gap_convolution_empty_resultcoefficientscoefficientdiagonalbound + S (pfc_index_convolution_empty_resultcoefficientscoefficientdiagonal) = (S (pfc_index_convolution_empty_resultcoefficients))) -> exists pfc_value_convolution_empty_resultcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_convolution_empty_resultcoefficientscoefficientdiagonalentry. ff_h_pfp_convolution_empty_resultcoefficientscoefficientdiagonalentry + S (pfc_value_convolution_empty_resultcoefficientscoefficientdiagonal) = S ((S (pfc_index_convolution_empty_resultcoefficientscoefficientdiagonal)) * pfc_terms_scale_convolution_empty_resultcoefficientscoefficient)) /\ exists ff_q_pfp_convolution_empty_resultcoefficientscoefficientdiagonalentry. pfc_terms_code_convolution_empty_resultcoefficientscoefficient = ff_q_pfp_convolution_empty_resultcoefficientscoefficientdiagonalentry * S ((S (pfc_index_convolution_empty_resultcoefficientscoefficientdiagonal)) * pfc_terms_scale_convolution_empty_resultcoefficientscoefficient) + (pfc_value_convolution_empty_resultcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_convolution_empty_resultcoefficientscoefficientdiagonalterm pfc_left_convolution_empty_resultcoefficientscoefficientdiagonalterm pfc_right_convolution_empty_resultcoefficientscoefficientdiagonalterm. (((pfc_index_convolution_empty_resultcoefficientscoefficientdiagonal)+pfc_complement_convolution_empty_resultcoefficientscoefficientdiagonalterm=(pfc_index_convolution_empty_resultcoefficients)) /\ ((((((exists pfa_gap_convolution_empty_resultcoefficientscoefficientdiagonaltermleftinside. pfa_gap_convolution_empty_resultcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_convolution_empty_resultcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_convolution_empty_resultcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_convolution_empty_resultcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_convolution_empty_resultcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_convolution_empty_resultcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_convolution_empty_resultcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_convolution_empty_resultcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_convolution_empty_resultcoefficientscoefficientdiagonal)) * ac) + (pfc_left_convolution_empty_resultcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_empty_resultcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_convolution_empty_resultcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_convolution_empty_resultcoefficientscoefficientdiagonal)) /\ (((pfc_left_convolution_empty_resultcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_convolution_empty_resultcoefficientscoefficientdiagonaltermrightinside. pfa_gap_convolution_empty_resultcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_convolution_empty_resultcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_convolution_empty_resultcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_convolution_empty_resultcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_convolution_empty_resultcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_convolution_empty_resultcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_convolution_empty_resultcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_convolution_empty_resultcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_convolution_empty_resultcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_convolution_empty_resultcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_empty_resultcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_convolution_empty_resultcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_convolution_empty_resultcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_convolution_empty_resultcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_convolution_empty_resultcoefficientscoefficientdiagonal)=pfc_left_convolution_empty_resultcoefficientscoefficientdiagonalterm*pfc_right_convolution_empty_resultcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_convolution_empty_resultcoefficientscoefficientsum fs_v_pfc_convolution_empty_resultcoefficientscoefficientsum. ((((exists fs_h_pfc_convolution_empty_resultcoefficientscoefficientsum_body_start. fs_h_pfc_convolution_empty_resultcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_convolution_empty_resultcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_empty_resultcoefficientscoefficientsum_body_start. fs_u_pfc_convolution_empty_resultcoefficientscoefficientsum = fs_q_pfc_convolution_empty_resultcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_convolution_empty_resultcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_convolution_empty_resultcoefficientscoefficientsum_body_terminal. fs_h_pfc_convolution_empty_resultcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_convolution_empty_resultcoefficientscoefficient) = S ((S (S (pfc_index_convolution_empty_resultcoefficients))) * fs_v_pfc_convolution_empty_resultcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_empty_resultcoefficientscoefficientsum_body_terminal. fs_u_pfc_convolution_empty_resultcoefficientscoefficientsum = fs_q_pfc_convolution_empty_resultcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_convolution_empty_resultcoefficients))) * fs_v_pfc_convolution_empty_resultcoefficientscoefficientsum) + (pfc_natural_sum_convolution_empty_resultcoefficientscoefficient))) /\ forall fs_i_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps = S (pfc_index_convolution_empty_resultcoefficients)) -> exists fs_a_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps fs_r_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps fs_s_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_convolution_empty_resultcoefficientscoefficient)) /\ exists fs_q_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_convolution_empty_resultcoefficientscoefficient = fs_q_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_convolution_empty_resultcoefficientscoefficient) + (fs_a_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_empty_resultcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_convolution_empty_resultcoefficientscoefficientsum = fs_q_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_empty_resultcoefficientscoefficientsum) + (fs_r_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_empty_resultcoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_convolution_empty_resultcoefficientscoefficientsum = fs_q_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_empty_resultcoefficientscoefficientsum) + (fs_s_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps = fs_r_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps + fs_a_pfc_convolution_empty_resultcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_convolution_empty_resultcoefficientscoefficientresiduebound. pfa_gap_convolution_empty_resultcoefficientscoefficientresiduebound + S (pfc_value_convolution_empty_resultcoefficients) = (p)) /\ ((exists pfa_offset_left_convolution_empty_resultcoefficientscoefficientresiduecongruence pfa_offset_right_convolution_empty_resultcoefficientscoefficientresiduecongruence. (pfc_natural_sum_convolution_empty_resultcoefficientscoefficient) + (p) * pfa_offset_left_convolution_empty_resultcoefficientscoefficientresiduecongruence = (pfc_value_convolution_empty_resultcoefficients) + (p) * pfa_offset_right_convolution_empty_resultcoefficientscoefficientresiduecongruence)))))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro cb
  9. intro cc
  10. intro ha
  11. intro hb
  12. intro hempty
  13. split
  14. exact ha
  15. split
  16. exact hb
  17. split
  18. left
  19. split
  20. exact hempty
  21. refl
  22. intro i
  23. intro hi
  24. exfalso
  25. specialize lt_not_le (i)
  26. specialize lt_not_le (0)
  27. apply lt_not_le
  28. exact hi
  29. specialize zero_le (i)
  30. apply zero_le
prime_field_polynomial_convolution_entry · unchanged support, not a new admission
forall p ab ac L bb bc M cb cc N i r. (((forall fom_index_pfp_convolution_entry_sourceleft. (exists fom_gap_pfp_convolution_entry_sourceleft_index_bound. fom_gap_pfp_convolution_entry_sourceleft_index_bound + S (fom_index_pfp_convolution_entry_sourceleft) = L) -> exists fom_value_pfp_convolution_entry_sourceleft. ((((exists fom_beta_height_pfp_convolution_entry_sourceleft_entry. fom_beta_height_pfp_convolution_entry_sourceleft_entry + S (fom_value_pfp_convolution_entry_sourceleft) = S ((S (fom_index_pfp_convolution_entry_sourceleft)) * ac)) /\ exists fom_beta_quotient_pfp_convolution_entry_sourceleft_entry. ab = fom_beta_quotient_pfp_convolution_entry_sourceleft_entry * S ((S (fom_index_pfp_convolution_entry_sourceleft)) * ac) + (fom_value_pfp_convolution_entry_sourceleft))) /\ (exists fom_gap_pfp_convolution_entry_sourceleft_value_bound. fom_gap_pfp_convolution_entry_sourceleft_value_bound + S (fom_value_pfp_convolution_entry_sourceleft) = p))) /\ (((forall fom_index_pfp_convolution_entry_sourceright. (exists fom_gap_pfp_convolution_entry_sourceright_index_bound. fom_gap_pfp_convolution_entry_sourceright_index_bound + S (fom_index_pfp_convolution_entry_sourceright) = M) -> exists fom_value_pfp_convolution_entry_sourceright. ((((exists fom_beta_height_pfp_convolution_entry_sourceright_entry. fom_beta_height_pfp_convolution_entry_sourceright_entry + S (fom_value_pfp_convolution_entry_sourceright) = S ((S (fom_index_pfp_convolution_entry_sourceright)) * bc)) /\ exists fom_beta_quotient_pfp_convolution_entry_sourceright_entry. bb = fom_beta_quotient_pfp_convolution_entry_sourceright_entry * S ((S (fom_index_pfp_convolution_entry_sourceright)) * bc) + (fom_value_pfp_convolution_entry_sourceright))) /\ (exists fom_gap_pfp_convolution_entry_sourceright_value_bound. fom_gap_pfp_convolution_entry_sourceright_value_bound + S (fom_value_pfp_convolution_entry_sourceright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_convolution_entry_sourcecoefficients. (exists pfa_gap_convolution_entry_sourcecoefficientsbound. pfa_gap_convolution_entry_sourcecoefficientsbound + S (pfc_index_convolution_entry_sourcecoefficients) = (N)) -> exists pfc_value_convolution_entry_sourcecoefficients. ((((exists ff_h_pfp_convolution_entry_sourcecoefficientsentry. ff_h_pfp_convolution_entry_sourcecoefficientsentry + S (pfc_value_convolution_entry_sourcecoefficients) = S ((S (pfc_index_convolution_entry_sourcecoefficients)) * cc)) /\ exists ff_q_pfp_convolution_entry_sourcecoefficientsentry. cb = ff_q_pfp_convolution_entry_sourcecoefficientsentry * S ((S (pfc_index_convolution_entry_sourcecoefficients)) * cc) + (pfc_value_convolution_entry_sourcecoefficients))) /\ ((exists pfc_terms_code_convolution_entry_sourcecoefficientscoefficient pfc_terms_scale_convolution_entry_sourcecoefficientscoefficient pfc_natural_sum_convolution_entry_sourcecoefficientscoefficient. ((forall pfc_index_convolution_entry_sourcecoefficientscoefficientdiagonal. (exists pfa_gap_convolution_entry_sourcecoefficientscoefficientdiagonalbound. pfa_gap_convolution_entry_sourcecoefficientscoefficientdiagonalbound + S (pfc_index_convolution_entry_sourcecoefficientscoefficientdiagonal) = (S (pfc_index_convolution_entry_sourcecoefficients))) -> exists pfc_value_convolution_entry_sourcecoefficientscoefficientdiagonal. ((((exists ff_h_pfp_convolution_entry_sourcecoefficientscoefficientdiagonalentry. ff_h_pfp_convolution_entry_sourcecoefficientscoefficientdiagonalentry + S (pfc_value_convolution_entry_sourcecoefficientscoefficientdiagonal) = S ((S (pfc_index_convolution_entry_sourcecoefficientscoefficientdiagonal)) * pfc_terms_scale_convolution_entry_sourcecoefficientscoefficient)) /\ exists ff_q_pfp_convolution_entry_sourcecoefficientscoefficientdiagonalentry. pfc_terms_code_convolution_entry_sourcecoefficientscoefficient = ff_q_pfp_convolution_entry_sourcecoefficientscoefficientdiagonalentry * S ((S (pfc_index_convolution_entry_sourcecoefficientscoefficientdiagonal)) * pfc_terms_scale_convolution_entry_sourcecoefficientscoefficient) + (pfc_value_convolution_entry_sourcecoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_convolution_entry_sourcecoefficientscoefficientdiagonalterm pfc_left_convolution_entry_sourcecoefficientscoefficientdiagonalterm pfc_right_convolution_entry_sourcecoefficientscoefficientdiagonalterm. (((pfc_index_convolution_entry_sourcecoefficientscoefficientdiagonal)+pfc_complement_convolution_entry_sourcecoefficientscoefficientdiagonalterm=(pfc_index_convolution_entry_sourcecoefficients)) /\ ((((((exists pfa_gap_convolution_entry_sourcecoefficientscoefficientdiagonaltermleftinside. pfa_gap_convolution_entry_sourcecoefficientscoefficientdiagonaltermleftinside + S (pfc_index_convolution_entry_sourcecoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_convolution_entry_sourcecoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_convolution_entry_sourcecoefficientscoefficientdiagonaltermleftentry + S (pfc_left_convolution_entry_sourcecoefficientscoefficientdiagonalterm) = S ((S (pfc_index_convolution_entry_sourcecoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_convolution_entry_sourcecoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_convolution_entry_sourcecoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_convolution_entry_sourcecoefficientscoefficientdiagonal)) * ac) + (pfc_left_convolution_entry_sourcecoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_entry_sourcecoefficientscoefficientdiagonaltermleftoutside. pfc_gap_convolution_entry_sourcecoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_convolution_entry_sourcecoefficientscoefficientdiagonal)) /\ (((pfc_left_convolution_entry_sourcecoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_convolution_entry_sourcecoefficientscoefficientdiagonaltermrightinside. pfa_gap_convolution_entry_sourcecoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_convolution_entry_sourcecoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_convolution_entry_sourcecoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_convolution_entry_sourcecoefficientscoefficientdiagonaltermrightentry + S (pfc_right_convolution_entry_sourcecoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_convolution_entry_sourcecoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_convolution_entry_sourcecoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_convolution_entry_sourcecoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_convolution_entry_sourcecoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_convolution_entry_sourcecoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_convolution_entry_sourcecoefficientscoefficientdiagonaltermrightoutside. pfc_gap_convolution_entry_sourcecoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_convolution_entry_sourcecoefficientscoefficientdiagonalterm)) /\ (((pfc_right_convolution_entry_sourcecoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_convolution_entry_sourcecoefficientscoefficientdiagonal)=pfc_left_convolution_entry_sourcecoefficientscoefficientdiagonalterm*pfc_right_convolution_entry_sourcecoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_convolution_entry_sourcecoefficientscoefficientsum fs_v_pfc_convolution_entry_sourcecoefficientscoefficientsum. ((((exists fs_h_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_start. fs_h_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_convolution_entry_sourcecoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_start. fs_u_pfc_convolution_entry_sourcecoefficientscoefficientsum = fs_q_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_convolution_entry_sourcecoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_terminal. fs_h_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_convolution_entry_sourcecoefficientscoefficient) = S ((S (S (pfc_index_convolution_entry_sourcecoefficients))) * fs_v_pfc_convolution_entry_sourcecoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_terminal. fs_u_pfc_convolution_entry_sourcecoefficientscoefficientsum = fs_q_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_convolution_entry_sourcecoefficients))) * fs_v_pfc_convolution_entry_sourcecoefficientscoefficientsum) + (pfc_natural_sum_convolution_entry_sourcecoefficientscoefficient))) /\ forall fs_i_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps = S (pfc_index_convolution_entry_sourcecoefficients)) -> exists fs_a_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps fs_r_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps fs_s_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps_summand. fs_h_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps)) * pfc_terms_scale_convolution_entry_sourcecoefficientscoefficient)) /\ exists fs_q_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps_summand. pfc_terms_code_convolution_entry_sourcecoefficientscoefficient = fs_q_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps)) * pfc_terms_scale_convolution_entry_sourcecoefficientscoefficient) + (fs_a_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps_partial. fs_h_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_entry_sourcecoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps_partial. fs_u_pfc_convolution_entry_sourcecoefficientscoefficientsum = fs_q_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_entry_sourcecoefficientscoefficientsum) + (fs_r_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps_successor. fs_h_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_entry_sourcecoefficientscoefficientsum)) /\ exists fs_q_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps_successor. fs_u_pfc_convolution_entry_sourcecoefficientscoefficientsum = fs_q_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps)) * fs_v_pfc_convolution_entry_sourcecoefficientscoefficientsum) + (fs_s_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps = fs_r_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps + fs_a_pfc_convolution_entry_sourcecoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_convolution_entry_sourcecoefficientscoefficientresiduebound. pfa_gap_convolution_entry_sourcecoefficientscoefficientresiduebound + S (pfc_value_convolution_entry_sourcecoefficients) = (p)) /\ ((exists pfa_offset_left_convolution_entry_sourcecoefficientscoefficientresiduecongruence pfa_offset_right_convolution_entry_sourcecoefficientscoefficientresiduecongruence. (pfc_natural_sum_convolution_entry_sourcecoefficientscoefficient) + (p) * pfa_offset_left_convolution_entry_sourcecoefficientscoefficientresiduecongruence = (pfc_value_convolution_entry_sourcecoefficients) + (p) * pfa_offset_right_convolution_entry_sourcecoefficientscoefficientresiduecongruence))))))))))))))))))) -> (exists pfa_gap_convolution_entry_bound. pfa_gap_convolution_entry_bound + S (i) = (N)) -> (((exists ff_h_pfp_convolution_entry_given. ff_h_pfp_convolution_entry_given + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_convolution_entry_given. cb = ff_q_pfp_convolution_entry_given * S ((S (i)) * cc) + (r))) -> (exists pfc_terms_code_convolution_entry_result pfc_terms_scale_convolution_entry_result pfc_natural_sum_convolution_entry_result. ((forall pfc_index_convolution_entry_resultdiagonal. (exists pfa_gap_convolution_entry_resultdiagonalbound. pfa_gap_convolution_entry_resultdiagonalbound + S (pfc_index_convolution_entry_resultdiagonal) = (S (i))) -> exists pfc_value_convolution_entry_resultdiagonal. ((((exists ff_h_pfp_convolution_entry_resultdiagonalentry. ff_h_pfp_convolution_entry_resultdiagonalentry + S (pfc_value_convolution_entry_resultdiagonal) = S ((S (pfc_index_convolution_entry_resultdiagonal)) * pfc_terms_scale_convolution_entry_result)) /\ exists ff_q_pfp_convolution_entry_resultdiagonalentry. pfc_terms_code_convolution_entry_result = ff_q_pfp_convolution_entry_resultdiagonalentry * S ((S (pfc_index_convolution_entry_resultdiagonal)) * pfc_terms_scale_convolution_entry_result) + (pfc_value_convolution_entry_resultdiagonal))) /\ ((exists pfc_complement_convolution_entry_resultdiagonalterm pfc_left_convolution_entry_resultdiagonalterm pfc_right_convolution_entry_resultdiagonalterm. (((pfc_index_convolution_entry_resultdiagonal)+pfc_complement_convolution_entry_resultdiagonalterm=(i)) /\ ((((((exists pfa_gap_convolution_entry_resultdiagonaltermleftinside. pfa_gap_convolution_entry_resultdiagonaltermleftinside + S (pfc_index_convolution_entry_resultdiagonal) = (L)) /\ ((((exists ff_h_pfp_convolution_entry_resultdiagonaltermleftentry. ff_h_pfp_convolution_entry_resultdiagonaltermleftentry + S (pfc_left_convolution_entry_resultdiagonalterm) = S ((S (pfc_index_convolution_entry_resultdiagonal)) * ac)) /\ exists ff_q_pfp_convolution_entry_resultdiagonaltermleftentry. ab = ff_q_pfp_convolution_entry_resultdiagonaltermleftentry * S ((S (pfc_index_convolution_entry_resultdiagonal)) * ac) + (pfc_left_convolution_entry_resultdiagonalterm)))))) \/ (((exists pfc_gap_convolution_entry_resultdiagonaltermleftoutside. pfc_gap_convolution_entry_resultdiagonaltermleftoutside+(L)=(pfc_index_convolution_entry_resultdiagonal)) /\ (((pfc_left_convolution_entry_resultdiagonalterm)=0))))) /\ ((((((exists pfa_gap_convolution_entry_resultdiagonaltermrightinside. pfa_gap_convolution_entry_resultdiagonaltermrightinside + S (pfc_complement_convolution_entry_resultdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_convolution_entry_resultdiagonaltermrightentry. ff_h_pfp_convolution_entry_resultdiagonaltermrightentry + S (pfc_right_convolution_entry_resultdiagonalterm) = S ((S (pfc_complement_convolution_entry_resultdiagonalterm)) * bc)) /\ exists ff_q_pfp_convolution_entry_resultdiagonaltermrightentry. bb = ff_q_pfp_convolution_entry_resultdiagonaltermrightentry * S ((S (pfc_complement_convolution_entry_resultdiagonalterm)) * bc) + (pfc_right_convolution_entry_resultdiagonalterm)))))) \/ (((exists pfc_gap_convolution_entry_resultdiagonaltermrightoutside. pfc_gap_convolution_entry_resultdiagonaltermrightoutside+(M)=(pfc_complement_convolution_entry_resultdiagonalterm)) /\ (((pfc_right_convolution_entry_resultdiagonalterm)=0))))) /\ (((pfc_value_convolution_entry_resultdiagonal)=pfc_left_convolution_entry_resultdiagonalterm*pfc_right_convolution_entry_resultdiagonalterm))))))))))) /\ (((exists fs_u_pfc_convolution_entry_resultsum fs_v_pfc_convolution_entry_resultsum. ((((exists fs_h_pfc_convolution_entry_resultsum_body_start. fs_h_pfc_convolution_entry_resultsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_convolution_entry_resultsum)) /\ exists fs_q_pfc_convolution_entry_resultsum_body_start. fs_u_pfc_convolution_entry_resultsum = fs_q_pfc_convolution_entry_resultsum_body_start * S ((S (0)) * fs_v_pfc_convolution_entry_resultsum) + (0))) /\ ((((exists fs_h_pfc_convolution_entry_resultsum_body_terminal. fs_h_pfc_convolution_entry_resultsum_body_terminal + S (pfc_natural_sum_convolution_entry_result) = S ((S (S (i))) * fs_v_pfc_convolution_entry_resultsum)) /\ exists fs_q_pfc_convolution_entry_resultsum_body_terminal. fs_u_pfc_convolution_entry_resultsum = fs_q_pfc_convolution_entry_resultsum_body_terminal * S ((S (S (i))) * fs_v_pfc_convolution_entry_resultsum) + (pfc_natural_sum_convolution_entry_result))) /\ forall fs_i_pfc_convolution_entry_resultsum_body_steps. (exists fs_lt_pfc_convolution_entry_resultsum_body_steps_bound. fs_lt_pfc_convolution_entry_resultsum_body_steps_bound + S fs_i_pfc_convolution_entry_resultsum_body_steps = S (i)) -> exists fs_a_pfc_convolution_entry_resultsum_body_steps fs_r_pfc_convolution_entry_resultsum_body_steps fs_s_pfc_convolution_entry_resultsum_body_steps. ((((exists fs_h_pfc_convolution_entry_resultsum_body_steps_summand. fs_h_pfc_convolution_entry_resultsum_body_steps_summand + S (fs_a_pfc_convolution_entry_resultsum_body_steps) = S ((S (fs_i_pfc_convolution_entry_resultsum_body_steps)) * pfc_terms_scale_convolution_entry_result)) /\ exists fs_q_pfc_convolution_entry_resultsum_body_steps_summand. pfc_terms_code_convolution_entry_result = fs_q_pfc_convolution_entry_resultsum_body_steps_summand * S ((S (fs_i_pfc_convolution_entry_resultsum_body_steps)) * pfc_terms_scale_convolution_entry_result) + (fs_a_pfc_convolution_entry_resultsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_entry_resultsum_body_steps_partial. fs_h_pfc_convolution_entry_resultsum_body_steps_partial + S (fs_r_pfc_convolution_entry_resultsum_body_steps) = S ((S (fs_i_pfc_convolution_entry_resultsum_body_steps)) * fs_v_pfc_convolution_entry_resultsum)) /\ exists fs_q_pfc_convolution_entry_resultsum_body_steps_partial. fs_u_pfc_convolution_entry_resultsum = fs_q_pfc_convolution_entry_resultsum_body_steps_partial * S ((S (fs_i_pfc_convolution_entry_resultsum_body_steps)) * fs_v_pfc_convolution_entry_resultsum) + (fs_r_pfc_convolution_entry_resultsum_body_steps))) /\ ((((exists fs_h_pfc_convolution_entry_resultsum_body_steps_successor. fs_h_pfc_convolution_entry_resultsum_body_steps_successor + S (fs_s_pfc_convolution_entry_resultsum_body_steps) = S ((S (S fs_i_pfc_convolution_entry_resultsum_body_steps)) * fs_v_pfc_convolution_entry_resultsum)) /\ exists fs_q_pfc_convolution_entry_resultsum_body_steps_successor. fs_u_pfc_convolution_entry_resultsum = fs_q_pfc_convolution_entry_resultsum_body_steps_successor * S ((S (S fs_i_pfc_convolution_entry_resultsum_body_steps)) * fs_v_pfc_convolution_entry_resultsum) + (fs_s_pfc_convolution_entry_resultsum_body_steps))) /\ fs_s_pfc_convolution_entry_resultsum_body_steps = fs_r_pfc_convolution_entry_resultsum_body_steps + fs_a_pfc_convolution_entry_resultsum_body_steps)))))) /\ ((((exists pfa_gap_convolution_entry_resultresiduebound. pfa_gap_convolution_entry_resultresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_convolution_entry_resultresiduecongruence pfa_offset_right_convolution_entry_resultresiduecongruence. (pfc_natural_sum_convolution_entry_result) + (p) * pfa_offset_left_convolution_entry_resultresiduecongruence = (r) + (p) * pfa_offset_right_convolution_entry_resultresiduecongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro cb
  9. intro cc
  10. intro N
  11. intro i
  12. intro r
  13. intro h
  14. intro hi
  15. intro hr
  16. cases h
  17. cases h_right
  18. cases h_right_right
  19. specialize prime_field_convolution_prefix_entry (p)
  20. specialize prime_field_convolution_prefix_entry (ab)
  21. specialize prime_field_convolution_prefix_entry (ac)
  22. specialize prime_field_convolution_prefix_entry (L)
  23. specialize prime_field_convolution_prefix_entry (bb)
  24. specialize prime_field_convolution_prefix_entry (bc)
  25. specialize prime_field_convolution_prefix_entry (M)
  26. specialize prime_field_convolution_prefix_entry (cb)
  27. specialize prime_field_convolution_prefix_entry (cc)
  28. specialize prime_field_convolution_prefix_entry (N)
  29. specialize prime_field_convolution_prefix_entry (i)
  30. specialize prime_field_convolution_prefix_entry (r)
  31. apply prime_field_convolution_prefix_entry
  32. exact h_right_right_right
  33. exact hi
  34. exact hr
prime_field_polynomial_repeat_coefficients · unchanged support, not a new admission
forall p b c a l. (exists pfa_gap_constant_bound. pfa_gap_constant_bound + S (a) = (p)) -> (forall pfp_repeat_index_constant_repeat. (exists pfa_gap_constant_repeatindex. pfa_gap_constant_repeatindex + S (pfp_repeat_index_constant_repeat) = (l)) -> (((exists ff_h_pfp_constant_repeatentry. ff_h_pfp_constant_repeatentry + S (a) = S ((S (pfp_repeat_index_constant_repeat)) * c)) /\ exists ff_q_pfp_constant_repeatentry. b = ff_q_pfp_constant_repeatentry * S ((S (pfp_repeat_index_constant_repeat)) * c) + (a)))) -> (forall fom_index_pfp_constant_result. (exists fom_gap_pfp_constant_result_index_bound. fom_gap_pfp_constant_result_index_bound + S (fom_index_pfp_constant_result) = l) -> exists fom_value_pfp_constant_result. ((((exists fom_beta_height_pfp_constant_result_entry. fom_beta_height_pfp_constant_result_entry + S (fom_value_pfp_constant_result) = S ((S (fom_index_pfp_constant_result)) * c)) /\ exists fom_beta_quotient_pfp_constant_result_entry. b = fom_beta_quotient_pfp_constant_result_entry * S ((S (fom_index_pfp_constant_result)) * c) + (fom_value_pfp_constant_result))) /\ (exists fom_gap_pfp_constant_result_value_bound. fom_gap_pfp_constant_result_value_bound + S (fom_value_pfp_constant_result) = p)))
  1. intro p
  2. intro b
  3. intro c
  4. intro a
  5. intro l
  6. intro ha
  7. intro hr
  8. intro i
  9. intro hi
  10. exists a
  11. split
  12. specialize hr (i)
  13. apply hr
  14. exact hi
  15. exact ha
prime_field_polynomial_repeat_exists · unchanged support, not a new admission
forall p a l. (exists pfa_gap_repeat_domain. pfa_gap_repeat_domain + S (a) = (p)) -> exists b c. ((forall fom_index_pfp_repeat_table. (exists fom_gap_pfp_repeat_table_index_bound. fom_gap_pfp_repeat_table_index_bound + S (fom_index_pfp_repeat_table) = l) -> exists fom_value_pfp_repeat_table. ((((exists fom_beta_height_pfp_repeat_table_entry. fom_beta_height_pfp_repeat_table_entry + S (fom_value_pfp_repeat_table) = S ((S (fom_index_pfp_repeat_table)) * c)) /\ exists fom_beta_quotient_pfp_repeat_table_entry. b = fom_beta_quotient_pfp_repeat_table_entry * S ((S (fom_index_pfp_repeat_table)) * c) + (fom_value_pfp_repeat_table))) /\ (exists fom_gap_pfp_repeat_table_value_bound. fom_gap_pfp_repeat_table_value_bound + S (fom_value_pfp_repeat_table) = p))) /\ ((forall pfp_repeat_index_repeat_value. (exists pfa_gap_repeat_valueindex. pfa_gap_repeat_valueindex + S (pfp_repeat_index_repeat_value) = (l)) -> (((exists ff_h_pfp_repeat_valueentry. ff_h_pfp_repeat_valueentry + S (a) = S ((S (pfp_repeat_index_repeat_value)) * c)) /\ exists ff_q_pfp_repeat_valueentry. b = ff_q_pfp_repeat_valueentry * S ((S (pfp_repeat_index_repeat_value)) * c) + (a))))))
  1. intro p
  2. intro a
  3. intro l
  4. intro ha
  5. have hr : exists b c. (forall pfp_repeat_index_repeat_chosen. (exists pfa_gap_repeat_chosenindex. pfa_gap_repeat_chosenindex + S (pfp_repeat_index_repeat_chosen) = (l)) -> (((exists ff_h_pfp_repeat_chosenentry. ff_h_pfp_repeat_chosenentry + S (a) = S ((S (pfp_repeat_index_repeat_chosen)) * c)) /\ exists ff_q_pfp_repeat_chosenentry. b = ff_q_pfp_repeat_chosenentry * S ((S (pfp_repeat_index_repeat_chosen)) * c) + (a))))
  6. specialize beta_repeat_exists (a)
  7. specialize beta_repeat_exists (l)
  8. apply beta_repeat_exists
  9. cases hr
  10. cases hr_witness
  11. exists x
  12. exists x1
  13. split
  14. specialize prime_field_polynomial_repeat_coefficients (p)
  15. specialize prime_field_polynomial_repeat_coefficients (x)
  16. specialize prime_field_polynomial_repeat_coefficients (x1)
  17. specialize prime_field_polynomial_repeat_coefficients (a)
  18. specialize prime_field_polynomial_repeat_coefficients (l)
  19. apply prime_field_polynomial_repeat_coefficients
  20. exact ha
  21. exact hr_witness_witness
  22. exact hr_witness_witness
prime_field_polynomial_add_commutative · unchanged support, not a new admission
forall p ab ac bb bc cb cc l. (forall pfp_index_add_comm_old. (exists pfa_gap_add_comm_oldindex. pfa_gap_add_comm_oldindex + S (pfp_index_add_comm_old) = (l)) -> exists pfp_left_add_comm_old pfp_right_add_comm_old pfp_value_add_comm_old. ((((exists ff_h_pfp_add_comm_oldleft. ff_h_pfp_add_comm_oldleft + S (pfp_left_add_comm_old) = S ((S (pfp_index_add_comm_old)) * ac)) /\ exists ff_q_pfp_add_comm_oldleft. ab = ff_q_pfp_add_comm_oldleft * S ((S (pfp_index_add_comm_old)) * ac) + (pfp_left_add_comm_old))) /\ (((((exists ff_h_pfp_add_comm_oldright. ff_h_pfp_add_comm_oldright + S (pfp_right_add_comm_old) = S ((S (pfp_index_add_comm_old)) * bc)) /\ exists ff_q_pfp_add_comm_oldright. bb = ff_q_pfp_add_comm_oldright * S ((S (pfp_index_add_comm_old)) * bc) + (pfp_right_add_comm_old))) /\ (((((exists ff_h_pfp_add_comm_oldtarget. ff_h_pfp_add_comm_oldtarget + S (pfp_value_add_comm_old) = S ((S (pfp_index_add_comm_old)) * cc)) /\ exists ff_q_pfp_add_comm_oldtarget. cb = ff_q_pfp_add_comm_oldtarget * S ((S (pfp_index_add_comm_old)) * cc) + (pfp_value_add_comm_old))) /\ ((((exists pfa_gap_add_comm_oldoperationleft. pfa_gap_add_comm_oldoperationleft + S (pfp_left_add_comm_old) = (p)) /\ (((exists pfa_gap_add_comm_oldoperationright. pfa_gap_add_comm_oldoperationright + S (pfp_right_add_comm_old) = (p)) /\ ((((exists pfa_gap_add_comm_oldoperationresultbound. pfa_gap_add_comm_oldoperationresultbound + S (pfp_value_add_comm_old) = (p)) /\ ((exists pfa_offset_left_add_comm_oldoperationresultcongruence pfa_offset_right_add_comm_oldoperationresultcongruence. ((pfp_left_add_comm_old) + (pfp_right_add_comm_old)) + (p) * pfa_offset_left_add_comm_oldoperationresultcongruence = (pfp_value_add_comm_old) + (p) * pfa_offset_right_add_comm_oldoperationresultcongruence)))))))))))))))) -> (forall pfp_index_add_comm_new. (exists pfa_gap_add_comm_newindex. pfa_gap_add_comm_newindex + S (pfp_index_add_comm_new) = (l)) -> exists pfp_left_add_comm_new pfp_right_add_comm_new pfp_value_add_comm_new. ((((exists ff_h_pfp_add_comm_newleft. ff_h_pfp_add_comm_newleft + S (pfp_left_add_comm_new) = S ((S (pfp_index_add_comm_new)) * bc)) /\ exists ff_q_pfp_add_comm_newleft. bb = ff_q_pfp_add_comm_newleft * S ((S (pfp_index_add_comm_new)) * bc) + (pfp_left_add_comm_new))) /\ (((((exists ff_h_pfp_add_comm_newright. ff_h_pfp_add_comm_newright + S (pfp_right_add_comm_new) = S ((S (pfp_index_add_comm_new)) * ac)) /\ exists ff_q_pfp_add_comm_newright. ab = ff_q_pfp_add_comm_newright * S ((S (pfp_index_add_comm_new)) * ac) + (pfp_right_add_comm_new))) /\ (((((exists ff_h_pfp_add_comm_newtarget. ff_h_pfp_add_comm_newtarget + S (pfp_value_add_comm_new) = S ((S (pfp_index_add_comm_new)) * cc)) /\ exists ff_q_pfp_add_comm_newtarget. cb = ff_q_pfp_add_comm_newtarget * S ((S (pfp_index_add_comm_new)) * cc) + (pfp_value_add_comm_new))) /\ ((((exists pfa_gap_add_comm_newoperationleft. pfa_gap_add_comm_newoperationleft + S (pfp_left_add_comm_new) = (p)) /\ (((exists pfa_gap_add_comm_newoperationright. pfa_gap_add_comm_newoperationright + S (pfp_right_add_comm_new) = (p)) /\ ((((exists pfa_gap_add_comm_newoperationresultbound. pfa_gap_add_comm_newoperationresultbound + S (pfp_value_add_comm_new) = (p)) /\ ((exists pfa_offset_left_add_comm_newoperationresultcongruence pfa_offset_right_add_comm_newoperationresultcongruence. ((pfp_left_add_comm_new) + (pfp_right_add_comm_new)) + (p) * pfa_offset_left_add_comm_newoperationresultcongruence = (pfp_value_add_comm_new) + (p) * pfa_offset_right_add_comm_newoperationresultcongruence))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro l
  9. intro h
  10. intro i
  11. intro hi
  12. have hv : exists a b r. ((((exists ff_h_pfp_add_comm_chosen_a. ff_h_pfp_add_comm_chosen_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_add_comm_chosen_a. ab = ff_q_pfp_add_comm_chosen_a * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_add_comm_chosen_b. ff_h_pfp_add_comm_chosen_b + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_add_comm_chosen_b. bb = ff_q_pfp_add_comm_chosen_b * S ((S (i)) * bc) + (b))) /\ (((((exists ff_h_pfp_add_comm_chosen_r. ff_h_pfp_add_comm_chosen_r + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_add_comm_chosen_r. cb = ff_q_pfp_add_comm_chosen_r * S ((S (i)) * cc) + (r))) /\ ((((exists pfa_gap_add_comm_operationleft. pfa_gap_add_comm_operationleft + S (a) = (p)) /\ (((exists pfa_gap_add_comm_operationright. pfa_gap_add_comm_operationright + S (b) = (p)) /\ ((((exists pfa_gap_add_comm_operationresultbound. pfa_gap_add_comm_operationresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_add_comm_operationresultcongruence pfa_offset_right_add_comm_operationresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_add_comm_operationresultcongruence = (r) + (p) * pfa_offset_right_add_comm_operationresultcongruence)))))))))))))))
  13. specialize h (i)
  14. apply h
  15. exact hi
  16. cases hv
  17. cases hv_witness
  18. cases hv_witness_witness
  19. cases hv_witness_witness_witness
  20. cases hv_witness_witness_witness_right
  21. cases hv_witness_witness_witness_right_right
  22. exists x1
  23. exists x
  24. exists x2
  25. split
  26. exact hv_witness_witness_witness_right_left
  27. split
  28. exact hv_witness_witness_witness_left
  29. split
  30. exact hv_witness_witness_witness_right_right_left
  31. specialize prime_field_add_commutative (p)
  32. specialize prime_field_add_commutative (x)
  33. specialize prime_field_add_commutative (x1)
  34. specialize prime_field_add_commutative (x2)
  35. apply prime_field_add_commutative
  36. exact hv_witness_witness_witness_right_right_right
prime_field_polynomial_add_transport · unchanged support, not a new admission
forall p ab ac bb bc cb cc AB AC BB BC CB CC l. (forall mdr_i_pfp_add_transport_a mdr_a_pfp_add_transport_a. (exists mdr_gap_pfp_add_transport_ab. mdr_gap_pfp_add_transport_ab + S (mdr_i_pfp_add_transport_a) = (l)) -> (((exists ff_h_mdr_pfp_add_transport_ao. ff_h_mdr_pfp_add_transport_ao + S (mdr_a_pfp_add_transport_a) = S ((S (mdr_i_pfp_add_transport_a)) * ac)) /\ exists ff_q_mdr_pfp_add_transport_ao. ab = ff_q_mdr_pfp_add_transport_ao * S ((S (mdr_i_pfp_add_transport_a)) * ac) + (mdr_a_pfp_add_transport_a))) -> (((exists ff_h_mdr_pfp_add_transport_an. ff_h_mdr_pfp_add_transport_an + S (mdr_a_pfp_add_transport_a) = S ((S (mdr_i_pfp_add_transport_a)) * AC)) /\ exists ff_q_mdr_pfp_add_transport_an. AB = ff_q_mdr_pfp_add_transport_an * S ((S (mdr_i_pfp_add_transport_a)) * AC) + (mdr_a_pfp_add_transport_a)))) -> (forall mdr_i_pfp_add_transport_b mdr_a_pfp_add_transport_b. (exists mdr_gap_pfp_add_transport_bb. mdr_gap_pfp_add_transport_bb + S (mdr_i_pfp_add_transport_b) = (l)) -> (((exists ff_h_mdr_pfp_add_transport_bo. ff_h_mdr_pfp_add_transport_bo + S (mdr_a_pfp_add_transport_b) = S ((S (mdr_i_pfp_add_transport_b)) * bc)) /\ exists ff_q_mdr_pfp_add_transport_bo. bb = ff_q_mdr_pfp_add_transport_bo * S ((S (mdr_i_pfp_add_transport_b)) * bc) + (mdr_a_pfp_add_transport_b))) -> (((exists ff_h_mdr_pfp_add_transport_bn. ff_h_mdr_pfp_add_transport_bn + S (mdr_a_pfp_add_transport_b) = S ((S (mdr_i_pfp_add_transport_b)) * BC)) /\ exists ff_q_mdr_pfp_add_transport_bn. BB = ff_q_mdr_pfp_add_transport_bn * S ((S (mdr_i_pfp_add_transport_b)) * BC) + (mdr_a_pfp_add_transport_b)))) -> (forall mdr_i_pfp_add_transport_c mdr_a_pfp_add_transport_c. (exists mdr_gap_pfp_add_transport_cb. mdr_gap_pfp_add_transport_cb + S (mdr_i_pfp_add_transport_c) = (l)) -> (((exists ff_h_mdr_pfp_add_transport_co. ff_h_mdr_pfp_add_transport_co + S (mdr_a_pfp_add_transport_c) = S ((S (mdr_i_pfp_add_transport_c)) * cc)) /\ exists ff_q_mdr_pfp_add_transport_co. cb = ff_q_mdr_pfp_add_transport_co * S ((S (mdr_i_pfp_add_transport_c)) * cc) + (mdr_a_pfp_add_transport_c))) -> (((exists ff_h_mdr_pfp_add_transport_cn. ff_h_mdr_pfp_add_transport_cn + S (mdr_a_pfp_add_transport_c) = S ((S (mdr_i_pfp_add_transport_c)) * CC)) /\ exists ff_q_mdr_pfp_add_transport_cn. CB = ff_q_mdr_pfp_add_transport_cn * S ((S (mdr_i_pfp_add_transport_c)) * CC) + (mdr_a_pfp_add_transport_c)))) -> (forall pfp_index_add_transport_old. (exists pfa_gap_add_transport_oldindex. pfa_gap_add_transport_oldindex + S (pfp_index_add_transport_old) = (l)) -> exists pfp_left_add_transport_old pfp_right_add_transport_old pfp_value_add_transport_old. ((((exists ff_h_pfp_add_transport_oldleft. ff_h_pfp_add_transport_oldleft + S (pfp_left_add_transport_old) = S ((S (pfp_index_add_transport_old)) * ac)) /\ exists ff_q_pfp_add_transport_oldleft. ab = ff_q_pfp_add_transport_oldleft * S ((S (pfp_index_add_transport_old)) * ac) + (pfp_left_add_transport_old))) /\ (((((exists ff_h_pfp_add_transport_oldright. ff_h_pfp_add_transport_oldright + S (pfp_right_add_transport_old) = S ((S (pfp_index_add_transport_old)) * bc)) /\ exists ff_q_pfp_add_transport_oldright. bb = ff_q_pfp_add_transport_oldright * S ((S (pfp_index_add_transport_old)) * bc) + (pfp_right_add_transport_old))) /\ (((((exists ff_h_pfp_add_transport_oldtarget. ff_h_pfp_add_transport_oldtarget + S (pfp_value_add_transport_old) = S ((S (pfp_index_add_transport_old)) * cc)) /\ exists ff_q_pfp_add_transport_oldtarget. cb = ff_q_pfp_add_transport_oldtarget * S ((S (pfp_index_add_transport_old)) * cc) + (pfp_value_add_transport_old))) /\ ((((exists pfa_gap_add_transport_oldoperationleft. pfa_gap_add_transport_oldoperationleft + S (pfp_left_add_transport_old) = (p)) /\ (((exists pfa_gap_add_transport_oldoperationright. pfa_gap_add_transport_oldoperationright + S (pfp_right_add_transport_old) = (p)) /\ ((((exists pfa_gap_add_transport_oldoperationresultbound. pfa_gap_add_transport_oldoperationresultbound + S (pfp_value_add_transport_old) = (p)) /\ ((exists pfa_offset_left_add_transport_oldoperationresultcongruence pfa_offset_right_add_transport_oldoperationresultcongruence. ((pfp_left_add_transport_old) + (pfp_right_add_transport_old)) + (p) * pfa_offset_left_add_transport_oldoperationresultcongruence = (pfp_value_add_transport_old) + (p) * pfa_offset_right_add_transport_oldoperationresultcongruence)))))))))))))))) -> (forall pfp_index_add_transport_new. (exists pfa_gap_add_transport_newindex. pfa_gap_add_transport_newindex + S (pfp_index_add_transport_new) = (l)) -> exists pfp_left_add_transport_new pfp_right_add_transport_new pfp_value_add_transport_new. ((((exists ff_h_pfp_add_transport_newleft. ff_h_pfp_add_transport_newleft + S (pfp_left_add_transport_new) = S ((S (pfp_index_add_transport_new)) * AC)) /\ exists ff_q_pfp_add_transport_newleft. AB = ff_q_pfp_add_transport_newleft * S ((S (pfp_index_add_transport_new)) * AC) + (pfp_left_add_transport_new))) /\ (((((exists ff_h_pfp_add_transport_newright. ff_h_pfp_add_transport_newright + S (pfp_right_add_transport_new) = S ((S (pfp_index_add_transport_new)) * BC)) /\ exists ff_q_pfp_add_transport_newright. BB = ff_q_pfp_add_transport_newright * S ((S (pfp_index_add_transport_new)) * BC) + (pfp_right_add_transport_new))) /\ (((((exists ff_h_pfp_add_transport_newtarget. ff_h_pfp_add_transport_newtarget + S (pfp_value_add_transport_new) = S ((S (pfp_index_add_transport_new)) * CC)) /\ exists ff_q_pfp_add_transport_newtarget. CB = ff_q_pfp_add_transport_newtarget * S ((S (pfp_index_add_transport_new)) * CC) + (pfp_value_add_transport_new))) /\ ((((exists pfa_gap_add_transport_newoperationleft. pfa_gap_add_transport_newoperationleft + S (pfp_left_add_transport_new) = (p)) /\ (((exists pfa_gap_add_transport_newoperationright. pfa_gap_add_transport_newoperationright + S (pfp_right_add_transport_new) = (p)) /\ ((((exists pfa_gap_add_transport_newoperationresultbound. pfa_gap_add_transport_newoperationresultbound + S (pfp_value_add_transport_new) = (p)) /\ ((exists pfa_offset_left_add_transport_newoperationresultcongruence pfa_offset_right_add_transport_newoperationresultcongruence. ((pfp_left_add_transport_new) + (pfp_right_add_transport_new)) + (p) * pfa_offset_left_add_transport_newoperationresultcongruence = (pfp_value_add_transport_new) + (p) * pfa_offset_right_add_transport_newoperationresultcongruence))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro AB
  9. intro AC
  10. intro BB
  11. intro BC
  12. intro CB
  13. intro CC
  14. intro l
  15. intro ha
  16. intro hb
  17. intro hc
  18. intro h
  19. intro i
  20. intro hi
  21. have hv : exists a b r. ((((exists ff_h_pfp_add_transport_chosen_a. ff_h_pfp_add_transport_chosen_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_add_transport_chosen_a. ab = ff_q_pfp_add_transport_chosen_a * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_add_transport_chosen_b. ff_h_pfp_add_transport_chosen_b + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_add_transport_chosen_b. bb = ff_q_pfp_add_transport_chosen_b * S ((S (i)) * bc) + (b))) /\ (((((exists ff_h_pfp_add_transport_chosen_r. ff_h_pfp_add_transport_chosen_r + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_add_transport_chosen_r. cb = ff_q_pfp_add_transport_chosen_r * S ((S (i)) * cc) + (r))) /\ ((((exists pfa_gap_add_transport_operationleft. pfa_gap_add_transport_operationleft + S (a) = (p)) /\ (((exists pfa_gap_add_transport_operationright. pfa_gap_add_transport_operationright + S (b) = (p)) /\ ((((exists pfa_gap_add_transport_operationresultbound. pfa_gap_add_transport_operationresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_add_transport_operationresultcongruence pfa_offset_right_add_transport_operationresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_add_transport_operationresultcongruence = (r) + (p) * pfa_offset_right_add_transport_operationresultcongruence)))))))))))))))
  22. specialize h (i)
  23. apply h
  24. exact hi
  25. cases hv
  26. cases hv_witness
  27. cases hv_witness_witness
  28. cases hv_witness_witness_witness
  29. cases hv_witness_witness_witness_right
  30. cases hv_witness_witness_witness_right_right
  31. exists x
  32. exists x1
  33. exists x2
  34. split
  35. specialize ha (i)
  36. specialize ha (x)
  37. apply ha
  38. exact hi
  39. exact hv_witness_witness_witness_left
  40. split
  41. specialize hb (i)
  42. specialize hb (x1)
  43. apply hb
  44. exact hi
  45. exact hv_witness_witness_witness_right_left
  46. split
  47. specialize hc (i)
  48. specialize hc (x2)
  49. apply hc
  50. exact hi
  51. exact hv_witness_witness_witness_right_right_left
  52. exact hv_witness_witness_witness_right_right_right
prime_field_polynomial_subtract_recover_add · unchanged support, not a new admission
forall p ab ac bb bc rb rc l. (forall pfs_index_sub_bridge_old_recover_add. (exists pfa_gap_sub_bridge_old_recover_addindex. pfa_gap_sub_bridge_old_recover_addindex + S (pfs_index_sub_bridge_old_recover_add) = (l)) -> exists pfs_left_sub_bridge_old_recover_add pfs_right_sub_bridge_old_recover_add pfs_result_sub_bridge_old_recover_add. ((((exists ff_h_pfp_sub_bridge_old_recover_addleft. ff_h_pfp_sub_bridge_old_recover_addleft + S (pfs_left_sub_bridge_old_recover_add) = S ((S (pfs_index_sub_bridge_old_recover_add)) * ac)) /\ exists ff_q_pfp_sub_bridge_old_recover_addleft. ab = ff_q_pfp_sub_bridge_old_recover_addleft * S ((S (pfs_index_sub_bridge_old_recover_add)) * ac) + (pfs_left_sub_bridge_old_recover_add))) /\ (((((exists ff_h_pfp_sub_bridge_old_recover_addright. ff_h_pfp_sub_bridge_old_recover_addright + S (pfs_right_sub_bridge_old_recover_add) = S ((S (pfs_index_sub_bridge_old_recover_add)) * bc)) /\ exists ff_q_pfp_sub_bridge_old_recover_addright. bb = ff_q_pfp_sub_bridge_old_recover_addright * S ((S (pfs_index_sub_bridge_old_recover_add)) * bc) + (pfs_right_sub_bridge_old_recover_add))) /\ (((((exists ff_h_pfp_sub_bridge_old_recover_addresult. ff_h_pfp_sub_bridge_old_recover_addresult + S (pfs_result_sub_bridge_old_recover_add) = S ((S (pfs_index_sub_bridge_old_recover_add)) * rc)) /\ exists ff_q_pfp_sub_bridge_old_recover_addresult. rb = ff_q_pfp_sub_bridge_old_recover_addresult * S ((S (pfs_index_sub_bridge_old_recover_add)) * rc) + (pfs_result_sub_bridge_old_recover_add))) /\ ((((exists pfa_gap_sub_bridge_old_recover_addoperationleft. pfa_gap_sub_bridge_old_recover_addoperationleft + S (pfs_right_sub_bridge_old_recover_add) = (p)) /\ (((exists pfa_gap_sub_bridge_old_recover_addoperationright. pfa_gap_sub_bridge_old_recover_addoperationright + S (pfs_result_sub_bridge_old_recover_add) = (p)) /\ ((((exists pfa_gap_sub_bridge_old_recover_addoperationresultbound. pfa_gap_sub_bridge_old_recover_addoperationresultbound + S (pfs_left_sub_bridge_old_recover_add) = (p)) /\ ((exists pfa_offset_left_sub_bridge_old_recover_addoperationresultcongruence pfa_offset_right_sub_bridge_old_recover_addoperationresultcongruence. ((pfs_right_sub_bridge_old_recover_add) + (pfs_result_sub_bridge_old_recover_add)) + (p) * pfa_offset_left_sub_bridge_old_recover_addoperationresultcongruence = (pfs_left_sub_bridge_old_recover_add) + (p) * pfa_offset_right_sub_bridge_old_recover_addoperationresultcongruence)))))))))))))))) -> (forall pfp_index_sub_bridge_new_recover_add. (exists pfa_gap_sub_bridge_new_recover_addindex. pfa_gap_sub_bridge_new_recover_addindex + S (pfp_index_sub_bridge_new_recover_add) = (l)) -> exists pfp_left_sub_bridge_new_recover_add pfp_right_sub_bridge_new_recover_add pfp_value_sub_bridge_new_recover_add. ((((exists ff_h_pfp_sub_bridge_new_recover_addleft. ff_h_pfp_sub_bridge_new_recover_addleft + S (pfp_left_sub_bridge_new_recover_add) = S ((S (pfp_index_sub_bridge_new_recover_add)) * bc)) /\ exists ff_q_pfp_sub_bridge_new_recover_addleft. bb = ff_q_pfp_sub_bridge_new_recover_addleft * S ((S (pfp_index_sub_bridge_new_recover_add)) * bc) + (pfp_left_sub_bridge_new_recover_add))) /\ (((((exists ff_h_pfp_sub_bridge_new_recover_addright. ff_h_pfp_sub_bridge_new_recover_addright + S (pfp_right_sub_bridge_new_recover_add) = S ((S (pfp_index_sub_bridge_new_recover_add)) * rc)) /\ exists ff_q_pfp_sub_bridge_new_recover_addright. rb = ff_q_pfp_sub_bridge_new_recover_addright * S ((S (pfp_index_sub_bridge_new_recover_add)) * rc) + (pfp_right_sub_bridge_new_recover_add))) /\ (((((exists ff_h_pfp_sub_bridge_new_recover_addtarget. ff_h_pfp_sub_bridge_new_recover_addtarget + S (pfp_value_sub_bridge_new_recover_add) = S ((S (pfp_index_sub_bridge_new_recover_add)) * ac)) /\ exists ff_q_pfp_sub_bridge_new_recover_addtarget. ab = ff_q_pfp_sub_bridge_new_recover_addtarget * S ((S (pfp_index_sub_bridge_new_recover_add)) * ac) + (pfp_value_sub_bridge_new_recover_add))) /\ ((((exists pfa_gap_sub_bridge_new_recover_addoperationleft. pfa_gap_sub_bridge_new_recover_addoperationleft + S (pfp_left_sub_bridge_new_recover_add) = (p)) /\ (((exists pfa_gap_sub_bridge_new_recover_addoperationright. pfa_gap_sub_bridge_new_recover_addoperationright + S (pfp_right_sub_bridge_new_recover_add) = (p)) /\ ((((exists pfa_gap_sub_bridge_new_recover_addoperationresultbound. pfa_gap_sub_bridge_new_recover_addoperationresultbound + S (pfp_value_sub_bridge_new_recover_add) = (p)) /\ ((exists pfa_offset_left_sub_bridge_new_recover_addoperationresultcongruence pfa_offset_right_sub_bridge_new_recover_addoperationresultcongruence. ((pfp_left_sub_bridge_new_recover_add) + (pfp_right_sub_bridge_new_recover_add)) + (p) * pfa_offset_left_sub_bridge_new_recover_addoperationresultcongruence = (pfp_value_sub_bridge_new_recover_add) + (p) * pfa_offset_right_sub_bridge_new_recover_addoperationresultcongruence))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro rb
  7. intro rc
  8. intro l
  9. intro h
  10. intro i
  11. intro hi
  12. have hv : exists a b r. (((((exists ff_h_pfp_sub_bridge_recover_adda. ff_h_pfp_sub_bridge_recover_adda + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_sub_bridge_recover_adda. ab = ff_q_pfp_sub_bridge_recover_adda * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_sub_bridge_recover_addb. ff_h_pfp_sub_bridge_recover_addb + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_sub_bridge_recover_addb. bb = ff_q_pfp_sub_bridge_recover_addb * S ((S (i)) * bc) + (b))) /\ (((((exists ff_h_pfp_sub_bridge_recover_addr. ff_h_pfp_sub_bridge_recover_addr + S (r) = S ((S (i)) * rc)) /\ exists ff_q_pfp_sub_bridge_recover_addr. rb = ff_q_pfp_sub_bridge_recover_addr * S ((S (i)) * rc) + (r))) /\ ((((exists pfa_gap_sub_bridge_recover_addvalueleft. pfa_gap_sub_bridge_recover_addvalueleft + S (b) = (p)) /\ (((exists pfa_gap_sub_bridge_recover_addvalueright. pfa_gap_sub_bridge_recover_addvalueright + S (r) = (p)) /\ ((((exists pfa_gap_sub_bridge_recover_addvalueresultbound. pfa_gap_sub_bridge_recover_addvalueresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_sub_bridge_recover_addvalueresultcongruence pfa_offset_right_sub_bridge_recover_addvalueresultcongruence. ((b) + (r)) + (p) * pfa_offset_left_sub_bridge_recover_addvalueresultcongruence = (a) + (p) * pfa_offset_right_sub_bridge_recover_addvalueresultcongruence))))))))))))))))
  13. specialize h (i)
  14. apply h
  15. exact hi
  16. cases hv
  17. cases hv_witness
  18. cases hv_witness_witness
  19. cases hv_witness_witness_witness
  20. cases hv_witness_witness_witness_right
  21. cases hv_witness_witness_witness_right_right
  22. exists x1
  23. exists x2
  24. exists x
  25. split
  26. exact hv_witness_witness_witness_right_left
  27. split
  28. exact hv_witness_witness_witness_right_right_left
  29. split
  30. exact hv_witness_witness_witness_left
  31. exact hv_witness_witness_witness_right_right_right
prime_field_polynomial_subtract_empty · unchanged support, not a new admission
forall p ab ac bb bc rb rc. forall pfs_index_subtract_empty. (exists pfa_gap_subtract_emptyindex. pfa_gap_subtract_emptyindex + S (pfs_index_subtract_empty) = (0)) -> exists pfs_left_subtract_empty pfs_right_subtract_empty pfs_result_subtract_empty. ((((exists ff_h_pfp_subtract_emptyleft. ff_h_pfp_subtract_emptyleft + S (pfs_left_subtract_empty) = S ((S (pfs_index_subtract_empty)) * ac)) /\ exists ff_q_pfp_subtract_emptyleft. ab = ff_q_pfp_subtract_emptyleft * S ((S (pfs_index_subtract_empty)) * ac) + (pfs_left_subtract_empty))) /\ (((((exists ff_h_pfp_subtract_emptyright. ff_h_pfp_subtract_emptyright + S (pfs_right_subtract_empty) = S ((S (pfs_index_subtract_empty)) * bc)) /\ exists ff_q_pfp_subtract_emptyright. bb = ff_q_pfp_subtract_emptyright * S ((S (pfs_index_subtract_empty)) * bc) + (pfs_right_subtract_empty))) /\ (((((exists ff_h_pfp_subtract_emptyresult. ff_h_pfp_subtract_emptyresult + S (pfs_result_subtract_empty) = S ((S (pfs_index_subtract_empty)) * rc)) /\ exists ff_q_pfp_subtract_emptyresult. rb = ff_q_pfp_subtract_emptyresult * S ((S (pfs_index_subtract_empty)) * rc) + (pfs_result_subtract_empty))) /\ ((((exists pfa_gap_subtract_emptyoperationleft. pfa_gap_subtract_emptyoperationleft + S (pfs_right_subtract_empty) = (p)) /\ (((exists pfa_gap_subtract_emptyoperationright. pfa_gap_subtract_emptyoperationright + S (pfs_result_subtract_empty) = (p)) /\ ((((exists pfa_gap_subtract_emptyoperationresultbound. pfa_gap_subtract_emptyoperationresultbound + S (pfs_left_subtract_empty) = (p)) /\ ((exists pfa_offset_left_subtract_emptyoperationresultcongruence pfa_offset_right_subtract_emptyoperationresultcongruence. ((pfs_right_subtract_empty) + (pfs_result_subtract_empty)) + (p) * pfa_offset_left_subtract_emptyoperationresultcongruence = (pfs_left_subtract_empty) + (p) * pfa_offset_right_subtract_emptyoperationresultcongruence)))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro rb
  7. intro rc
  8. intro i
  9. intro hi
  10. exfalso
  11. specialize lt_not_le (i)
  12. specialize lt_not_le (0)
  13. apply lt_not_le
  14. exact hi
  15. specialize zero_le (i)
  16. apply zero_le
prime_field_negate_exists · unchanged support, not a new admission
forall p a. (~((p) = 1) /\ forall pfa_factor_left_negate_domain pfa_factor_right_negate_domain. (p) = pfa_factor_left_negate_domain * pfa_factor_right_negate_domain -> pfa_factor_left_negate_domain = 1 \/ pfa_factor_right_negate_domain = 1) -> (exists pfa_gap_negate_input. pfa_gap_negate_input + S (a) = (p)) -> exists b. (((exists pfa_gap_negate_existsadditionleft. pfa_gap_negate_existsadditionleft + S (a) = (p)) /\ (((exists pfa_gap_negate_existsadditionright. pfa_gap_negate_existsadditionright + S (b) = (p)) /\ ((((exists pfa_gap_negate_existsadditionresultbound. pfa_gap_negate_existsadditionresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_negate_existsadditionresultcongruence pfa_offset_right_negate_existsadditionresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_negate_existsadditionresultcongruence = (0) + (p) * pfa_offset_right_negate_existsadditionresultcongruence)))))))))
  1. intro p
  2. intro a
  3. intro hp
  4. intro ha
  5. have hf : exists q n r. (0 + p * n = (a + p * q) + r /\ (exists pfa_gap_negate_floor. pfa_gap_negate_floor + S (r) = (p)))
  6. specialize signed_integer_floor_exists (0)
  7. specialize signed_integer_floor_exists (a)
  8. specialize signed_integer_floor_exists (p)
  9. apply signed_integer_floor_exists
  10. intro hz
  11. specialize prime_nonzero (p)
  12. apply prime_nonzero
  13. exact hp
  14. exact hz
  15. cases hf
  16. cases hf_witness
  17. cases hf_witness_witness
  18. cases hf_witness_witness_witness
  19. exists x2
  20. split
  21. exact ha
  22. split
  23. exact hf_witness_witness_witness_right
  24. split
  25. specialize prime_field_zero_below_prime (p)
  26. apply prime_field_zero_below_prime
  27. exact hp
  28. exists x
  29. exists x1
  30. trans (a + p * x) + x2
  31. simp [add_assoc, add_comm]
  32. symm
  33. exact hf_witness_witness_witness_left
prime_field_add_exists · unchanged support, not a new admission
forall p a b. (~((p) = 1) /\ forall pfa_factor_left_adddomain pfa_factor_right_adddomain. (p) = pfa_factor_left_adddomain * pfa_factor_right_adddomain -> pfa_factor_left_adddomain = 1 \/ pfa_factor_right_adddomain = 1) -> (exists pfa_gap_addleft. pfa_gap_addleft + S (a) = (p)) -> (exists pfa_gap_addright. pfa_gap_addright + S (b) = (p)) -> exists c. (((exists pfa_gap_addexistsleft. pfa_gap_addexistsleft + S (a) = (p)) /\ (((exists pfa_gap_addexistsright. pfa_gap_addexistsright + S (b) = (p)) /\ ((((exists pfa_gap_addexistsresultbound. pfa_gap_addexistsresultbound + S (c) = (p)) /\ ((exists pfa_offset_left_addexistsresultcongruence pfa_offset_right_addexistsresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_addexistsresultcongruence = (c) + (p) * pfa_offset_right_addexistsresultcongruence)))))))))
  1. intro p
  2. intro a
  3. intro b
  4. intro hp
  5. intro ha
  6. intro hb
  7. have hr : exists c. (((exists pfa_gap_addresiduebound. pfa_gap_addresiduebound + S (c) = (p)) /\ ((exists pfa_offset_left_addresiduecongruence pfa_offset_right_addresiduecongruence. (a + b) + (p) * pfa_offset_left_addresiduecongruence = (c) + (p) * pfa_offset_right_addresiduecongruence))))
  8. specialize hensel_canonical_residue_exists (p)
  9. specialize hensel_canonical_residue_exists (a + b)
  10. apply hensel_canonical_residue_exists
  11. intro hz
  12. specialize prime_nonzero (p)
  13. apply prime_nonzero
  14. exact hp
  15. exact hz
  16. cases hr
  17. exists x
  18. split
  19. exact ha
  20. split
  21. exact hb
  22. exact hr_witness
prime_field_add_associative · unchanged support, not a new admission
forall p a b c x y u v. (((exists pfa_gap_addassoc_firstleft. pfa_gap_addassoc_firstleft + S (a) = (p)) /\ (((exists pfa_gap_addassoc_firstright. pfa_gap_addassoc_firstright + S (b) = (p)) /\ ((((exists pfa_gap_addassoc_firstresultbound. pfa_gap_addassoc_firstresultbound + S (x) = (p)) /\ ((exists pfa_offset_left_addassoc_firstresultcongruence pfa_offset_right_addassoc_firstresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_addassoc_firstresultcongruence = (x) + (p) * pfa_offset_right_addassoc_firstresultcongruence))))))))) -> (((exists pfa_gap_addassoc_leftleft. pfa_gap_addassoc_leftleft + S (x) = (p)) /\ (((exists pfa_gap_addassoc_leftright. pfa_gap_addassoc_leftright + S (c) = (p)) /\ ((((exists pfa_gap_addassoc_leftresultbound. pfa_gap_addassoc_leftresultbound + S (u) = (p)) /\ ((exists pfa_offset_left_addassoc_leftresultcongruence pfa_offset_right_addassoc_leftresultcongruence. ((x) + (c)) + (p) * pfa_offset_left_addassoc_leftresultcongruence = (u) + (p) * pfa_offset_right_addassoc_leftresultcongruence))))))))) -> (((exists pfa_gap_addassoc_secondleft. pfa_gap_addassoc_secondleft + S (b) = (p)) /\ (((exists pfa_gap_addassoc_secondright. pfa_gap_addassoc_secondright + S (c) = (p)) /\ ((((exists pfa_gap_addassoc_secondresultbound. pfa_gap_addassoc_secondresultbound + S (y) = (p)) /\ ((exists pfa_offset_left_addassoc_secondresultcongruence pfa_offset_right_addassoc_secondresultcongruence. ((b) + (c)) + (p) * pfa_offset_left_addassoc_secondresultcongruence = (y) + (p) * pfa_offset_right_addassoc_secondresultcongruence))))))))) -> (((exists pfa_gap_addassoc_rightleft. pfa_gap_addassoc_rightleft + S (a) = (p)) /\ (((exists pfa_gap_addassoc_rightright. pfa_gap_addassoc_rightright + S (y) = (p)) /\ ((((exists pfa_gap_addassoc_rightresultbound. pfa_gap_addassoc_rightresultbound + S (v) = (p)) /\ ((exists pfa_offset_left_addassoc_rightresultcongruence pfa_offset_right_addassoc_rightresultcongruence. ((a) + (y)) + (p) * pfa_offset_left_addassoc_rightresultcongruence = (v) + (p) * pfa_offset_right_addassoc_rightresultcongruence))))))))) -> u = v
  1. intro p
  2. intro a
  3. intro b
  4. intro c
  5. intro x
  6. intro y
  7. intro u
  8. intro v
  9. intro hfirst
  10. intro hleft
  11. intro hsecond
  12. intro hright
  13. cases hfirst
  14. cases hfirst_right
  15. cases hfirst_right_right
  16. cases hleft
  17. cases hleft_right
  18. cases hleft_right_right
  19. cases hsecond
  20. cases hsecond_right
  21. cases hsecond_right_right
  22. cases hright
  23. cases hright_right
  24. cases hright_right_right
  25. have hl : ((exists pfa_gap_addassoc_raw_leftbound. pfa_gap_addassoc_raw_leftbound + S (u) = (p)) /\ ((exists pfa_offset_left_addassoc_raw_leftcongruence pfa_offset_right_addassoc_raw_leftcongruence. ((a + b) + c) + (p) * pfa_offset_left_addassoc_raw_leftcongruence = (u) + (p) * pfa_offset_right_addassoc_raw_leftcongruence)))
  26. split
  27. exact hleft_right_right_left
  28. specialize mod_eq_trans (p)
  29. specialize mod_eq_trans ((a + b) + c)
  30. specialize mod_eq_trans (x + c)
  31. specialize mod_eq_trans (u)
  32. apply mod_eq_trans
  33. specialize mod_eq_add (p)
  34. specialize mod_eq_add (a + b)
  35. specialize mod_eq_add (x)
  36. specialize mod_eq_add (c)
  37. specialize mod_eq_add (c)
  38. apply mod_eq_add
  39. exact hfirst_right_right_right
  40. specialize mod_eq_refl (p)
  41. specialize mod_eq_refl (c)
  42. apply mod_eq_refl
  43. exact hleft_right_right_right
  44. have hr : ((exists pfa_gap_addassoc_raw_rightbound. pfa_gap_addassoc_raw_rightbound + S (v) = (p)) /\ ((exists pfa_offset_left_addassoc_raw_rightcongruence pfa_offset_right_addassoc_raw_rightcongruence. (a + (b + c)) + (p) * pfa_offset_left_addassoc_raw_rightcongruence = (v) + (p) * pfa_offset_right_addassoc_raw_rightcongruence)))
  45. split
  46. exact hright_right_right_left
  47. specialize mod_eq_trans (p)
  48. specialize mod_eq_trans (a + (b + c))
  49. specialize mod_eq_trans (a + y)
  50. specialize mod_eq_trans (v)
  51. apply mod_eq_trans
  52. specialize mod_eq_add (p)
  53. specialize mod_eq_add (a)
  54. specialize mod_eq_add (a)
  55. specialize mod_eq_add (b + c)
  56. specialize mod_eq_add (y)
  57. apply mod_eq_add
  58. specialize mod_eq_refl (p)
  59. specialize mod_eq_refl (a)
  60. apply mod_eq_refl
  61. exact hsecond_right_right_right
  62. exact hright_right_right_right
  63. specialize binary_canonical_residue_functional (p)
  64. specialize binary_canonical_residue_functional ((a + b) + c)
  65. specialize binary_canonical_residue_functional (u)
  66. specialize binary_canonical_residue_functional (v)
  67. apply binary_canonical_residue_functional
  68. exact hl
  69. specialize prime_field_residue_input_equal (p)
  70. specialize prime_field_residue_input_equal ((a + b) + c)
  71. specialize prime_field_residue_input_equal (a + (b + c))
  72. specialize prime_field_residue_input_equal (v)
  73. apply prime_field_residue_input_equal
  74. specialize add_assoc (a)
  75. specialize add_assoc (b)
  76. specialize add_assoc (c)
  77. apply add_assoc
  78. exact hr
prime_field_subtract_exists · unchanged support, not a new admission
forall p a b. (~((p) = 1) /\ forall pfa_factor_left_scalar_prime pfa_factor_right_scalar_prime. (p) = pfa_factor_left_scalar_prime * pfa_factor_right_scalar_prime -> pfa_factor_left_scalar_prime = 1 \/ pfa_factor_right_scalar_prime = 1) -> (exists pfa_gap_scalar_left. pfa_gap_scalar_left + S (a) = (p)) -> (exists pfa_gap_scalar_right. pfa_gap_scalar_right + S (b) = (p)) -> exists r. (((exists pfa_gap_scalar_subtractleft. pfa_gap_scalar_subtractleft + S (b) = (p)) /\ (((exists pfa_gap_scalar_subtractright. pfa_gap_scalar_subtractright + S (r) = (p)) /\ ((((exists pfa_gap_scalar_subtractresultbound. pfa_gap_scalar_subtractresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_scalar_subtractresultcongruence pfa_offset_right_scalar_subtractresultcongruence. ((b) + (r)) + (p) * pfa_offset_left_scalar_subtractresultcongruence = (a) + (p) * pfa_offset_right_scalar_subtractresultcongruence)))))))))
  1. intro p
  2. intro a
  3. intro b
  4. intro hp
  5. intro ha
  6. intro hb
  7. have hn : exists n. (((exists pfa_gap_scalar_negadditionleft. pfa_gap_scalar_negadditionleft + S (b) = (p)) /\ (((exists pfa_gap_scalar_negadditionright. pfa_gap_scalar_negadditionright + S (n) = (p)) /\ ((((exists pfa_gap_scalar_negadditionresultbound. pfa_gap_scalar_negadditionresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_scalar_negadditionresultcongruence pfa_offset_right_scalar_negadditionresultcongruence. ((b) + (n)) + (p) * pfa_offset_left_scalar_negadditionresultcongruence = (0) + (p) * pfa_offset_right_scalar_negadditionresultcongruence)))))))))
  8. specialize prime_field_negate_exists (p)
  9. specialize prime_field_negate_exists (b)
  10. apply prime_field_negate_exists
  11. exact hp
  12. exact hb
  13. cases hn
  14. have hnb : exists pfa_gap_scalar_neg_bound. pfa_gap_scalar_neg_bound + S (x) = (p)
  15. cases hn_witness
  16. cases hn_witness_right
  17. exact hn_witness_right_left
  18. have hr : exists r. (((exists pfa_gap_scalar_resultleft. pfa_gap_scalar_resultleft + S (x) = (p)) /\ (((exists pfa_gap_scalar_resultright. pfa_gap_scalar_resultright + S (a) = (p)) /\ ((((exists pfa_gap_scalar_resultresultbound. pfa_gap_scalar_resultresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_scalar_resultresultcongruence pfa_offset_right_scalar_resultresultcongruence. ((x) + (a)) + (p) * pfa_offset_left_scalar_resultresultcongruence = (r) + (p) * pfa_offset_right_scalar_resultresultcongruence)))))))))
  19. specialize prime_field_add_exists (p)
  20. specialize prime_field_add_exists (x)
  21. specialize prime_field_add_exists (a)
  22. apply prime_field_add_exists
  23. exact hp
  24. exact hnb
  25. exact ha
  26. cases hr
  27. have hrb : exists pfa_gap_scalar_result_bound. pfa_gap_scalar_result_bound + S (x1) = (p)
  28. cases hr_witness
  29. cases hr_witness_right
  30. cases hr_witness_right_right
  31. exact hr_witness_right_right_left
  32. have ht : exists t. (((exists pfa_gap_scalar_check_sumleft. pfa_gap_scalar_check_sumleft + S (b) = (p)) /\ (((exists pfa_gap_scalar_check_sumright. pfa_gap_scalar_check_sumright + S (x1) = (p)) /\ ((((exists pfa_gap_scalar_check_sumresultbound. pfa_gap_scalar_check_sumresultbound + S (t) = (p)) /\ ((exists pfa_offset_left_scalar_check_sumresultcongruence pfa_offset_right_scalar_check_sumresultcongruence. ((b) + (x1)) + (p) * pfa_offset_left_scalar_check_sumresultcongruence = (t) + (p) * pfa_offset_right_scalar_check_sumresultcongruence)))))))))
  33. specialize prime_field_add_exists (p)
  34. specialize prime_field_add_exists (b)
  35. specialize prime_field_add_exists (x1)
  36. apply prime_field_add_exists
  37. exact hp
  38. exact hb
  39. exact hrb
  40. cases ht
  41. have heq : a=x2
  42. specialize prime_field_add_associative (p)
  43. specialize prime_field_add_associative (b)
  44. specialize prime_field_add_associative (x)
  45. specialize prime_field_add_associative (a)
  46. specialize prime_field_add_associative (0)
  47. specialize prime_field_add_associative (x1)
  48. specialize prime_field_add_associative (a)
  49. specialize prime_field_add_associative (x2)
  50. apply prime_field_add_associative
  51. exact hn_witness
  52. specialize prime_field_add_zero_left (p)
  53. specialize prime_field_add_zero_left (a)
  54. apply prime_field_add_zero_left
  55. exact hp
  56. exact ha
  57. exact hr_witness
  58. exact ht_witness
  59. exists x1
  60. rewrite heq
  61. rewrite heq
  62. exact ht_witness
prime_field_polynomial_subtract_exists · unchanged support, not a new admission
forall p ab ac bb bc l. (~((p) = 1) /\ forall pfa_factor_left_subtract_exists_prime pfa_factor_right_subtract_exists_prime. (p) = pfa_factor_left_subtract_exists_prime * pfa_factor_right_subtract_exists_prime -> pfa_factor_left_subtract_exists_prime = 1 \/ pfa_factor_right_subtract_exists_prime = 1) -> (forall fom_index_pfp_subtract_exists_ab. (exists fom_gap_pfp_subtract_exists_ab_index_bound. fom_gap_pfp_subtract_exists_ab_index_bound + S (fom_index_pfp_subtract_exists_ab) = l) -> exists fom_value_pfp_subtract_exists_ab. ((((exists fom_beta_height_pfp_subtract_exists_ab_entry. fom_beta_height_pfp_subtract_exists_ab_entry + S (fom_value_pfp_subtract_exists_ab) = S ((S (fom_index_pfp_subtract_exists_ab)) * ac)) /\ exists fom_beta_quotient_pfp_subtract_exists_ab_entry. ab = fom_beta_quotient_pfp_subtract_exists_ab_entry * S ((S (fom_index_pfp_subtract_exists_ab)) * ac) + (fom_value_pfp_subtract_exists_ab))) /\ (exists fom_gap_pfp_subtract_exists_ab_value_bound. fom_gap_pfp_subtract_exists_ab_value_bound + S (fom_value_pfp_subtract_exists_ab) = p))) -> (forall fom_index_pfp_subtract_exists_bb. (exists fom_gap_pfp_subtract_exists_bb_index_bound. fom_gap_pfp_subtract_exists_bb_index_bound + S (fom_index_pfp_subtract_exists_bb) = l) -> exists fom_value_pfp_subtract_exists_bb. ((((exists fom_beta_height_pfp_subtract_exists_bb_entry. fom_beta_height_pfp_subtract_exists_bb_entry + S (fom_value_pfp_subtract_exists_bb) = S ((S (fom_index_pfp_subtract_exists_bb)) * bc)) /\ exists fom_beta_quotient_pfp_subtract_exists_bb_entry. bb = fom_beta_quotient_pfp_subtract_exists_bb_entry * S ((S (fom_index_pfp_subtract_exists_bb)) * bc) + (fom_value_pfp_subtract_exists_bb))) /\ (exists fom_gap_pfp_subtract_exists_bb_value_bound. fom_gap_pfp_subtract_exists_bb_value_bound + S (fom_value_pfp_subtract_exists_bb) = p))) -> exists rb rc. (forall pfs_index_subtract_exists_result. (exists pfa_gap_subtract_exists_resultindex. pfa_gap_subtract_exists_resultindex + S (pfs_index_subtract_exists_result) = (l)) -> exists pfs_left_subtract_exists_result pfs_right_subtract_exists_result pfs_result_subtract_exists_result. ((((exists ff_h_pfp_subtract_exists_resultleft. ff_h_pfp_subtract_exists_resultleft + S (pfs_left_subtract_exists_result) = S ((S (pfs_index_subtract_exists_result)) * ac)) /\ exists ff_q_pfp_subtract_exists_resultleft. ab = ff_q_pfp_subtract_exists_resultleft * S ((S (pfs_index_subtract_exists_result)) * ac) + (pfs_left_subtract_exists_result))) /\ (((((exists ff_h_pfp_subtract_exists_resultright. ff_h_pfp_subtract_exists_resultright + S (pfs_right_subtract_exists_result) = S ((S (pfs_index_subtract_exists_result)) * bc)) /\ exists ff_q_pfp_subtract_exists_resultright. bb = ff_q_pfp_subtract_exists_resultright * S ((S (pfs_index_subtract_exists_result)) * bc) + (pfs_right_subtract_exists_result))) /\ (((((exists ff_h_pfp_subtract_exists_resultresult. ff_h_pfp_subtract_exists_resultresult + S (pfs_result_subtract_exists_result) = S ((S (pfs_index_subtract_exists_result)) * rc)) /\ exists ff_q_pfp_subtract_exists_resultresult. rb = ff_q_pfp_subtract_exists_resultresult * S ((S (pfs_index_subtract_exists_result)) * rc) + (pfs_result_subtract_exists_result))) /\ ((((exists pfa_gap_subtract_exists_resultoperationleft. pfa_gap_subtract_exists_resultoperationleft + S (pfs_right_subtract_exists_result) = (p)) /\ (((exists pfa_gap_subtract_exists_resultoperationright. pfa_gap_subtract_exists_resultoperationright + S (pfs_result_subtract_exists_result) = (p)) /\ ((((exists pfa_gap_subtract_exists_resultoperationresultbound. pfa_gap_subtract_exists_resultoperationresultbound + S (pfs_left_subtract_exists_result) = (p)) /\ ((exists pfa_offset_left_subtract_exists_resultoperationresultcongruence pfa_offset_right_subtract_exists_resultoperationresultcongruence. ((pfs_right_subtract_exists_result) + (pfs_result_subtract_exists_result)) + (p) * pfa_offset_left_subtract_exists_resultoperationresultcongruence = (pfs_left_subtract_exists_result) + (p) * pfa_offset_right_subtract_exists_resultoperationresultcongruence))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro l
  7. intro hp
  8. induction l
  9. intro ha
  10. intro hb
  11. exists 0
  12. exists 0
  13. specialize prime_field_polynomial_subtract_empty (p)
  14. specialize prime_field_polynomial_subtract_empty (ab)
  15. specialize prime_field_polynomial_subtract_empty (ac)
  16. specialize prime_field_polynomial_subtract_empty (bb)
  17. specialize prime_field_polynomial_subtract_empty (bc)
  18. specialize prime_field_polynomial_subtract_empty (0)
  19. specialize prime_field_polynomial_subtract_empty (0)
  20. apply prime_field_polynomial_subtract_empty
  21. intro ha
  22. intro hb
  23. have hold : exists rb rc. (forall pfs_index_subtract_old. (exists pfa_gap_subtract_oldindex. pfa_gap_subtract_oldindex + S (pfs_index_subtract_old) = (l)) -> exists pfs_left_subtract_old pfs_right_subtract_old pfs_result_subtract_old. ((((exists ff_h_pfp_subtract_oldleft. ff_h_pfp_subtract_oldleft + S (pfs_left_subtract_old) = S ((S (pfs_index_subtract_old)) * ac)) /\ exists ff_q_pfp_subtract_oldleft. ab = ff_q_pfp_subtract_oldleft * S ((S (pfs_index_subtract_old)) * ac) + (pfs_left_subtract_old))) /\ (((((exists ff_h_pfp_subtract_oldright. ff_h_pfp_subtract_oldright + S (pfs_right_subtract_old) = S ((S (pfs_index_subtract_old)) * bc)) /\ exists ff_q_pfp_subtract_oldright. bb = ff_q_pfp_subtract_oldright * S ((S (pfs_index_subtract_old)) * bc) + (pfs_right_subtract_old))) /\ (((((exists ff_h_pfp_subtract_oldresult. ff_h_pfp_subtract_oldresult + S (pfs_result_subtract_old) = S ((S (pfs_index_subtract_old)) * rc)) /\ exists ff_q_pfp_subtract_oldresult. rb = ff_q_pfp_subtract_oldresult * S ((S (pfs_index_subtract_old)) * rc) + (pfs_result_subtract_old))) /\ ((((exists pfa_gap_subtract_oldoperationleft. pfa_gap_subtract_oldoperationleft + S (pfs_right_subtract_old) = (p)) /\ (((exists pfa_gap_subtract_oldoperationright. pfa_gap_subtract_oldoperationright + S (pfs_result_subtract_old) = (p)) /\ ((((exists pfa_gap_subtract_oldoperationresultbound. pfa_gap_subtract_oldoperationresultbound + S (pfs_left_subtract_old) = (p)) /\ ((exists pfa_offset_left_subtract_oldoperationresultcongruence pfa_offset_right_subtract_oldoperationresultcongruence. ((pfs_right_subtract_old) + (pfs_result_subtract_old)) + (p) * pfa_offset_left_subtract_oldoperationresultcongruence = (pfs_left_subtract_old) + (p) * pfa_offset_right_subtract_oldoperationresultcongruence))))))))))))))))
  24. apply IH
  25. intro j
  26. intro hj
  27. specialize ha (j)
  28. apply ha
  29. specialize le_succ (S j)
  30. specialize le_succ (l)
  31. apply le_succ
  32. exact hj
  33. intro j
  34. intro hj
  35. specialize hb (j)
  36. apply hb
  37. specialize le_succ (S j)
  38. specialize le_succ (l)
  39. apply le_succ
  40. exact hj
  41. cases hold
  42. cases hold_witness
  43. have hsource0 : exists a. ((((exists ff_h_pfp_subtract_last_source0. ff_h_pfp_subtract_last_source0 + S (a) = S ((S (l)) * ac)) /\ exists ff_q_pfp_subtract_last_source0. ab = ff_q_pfp_subtract_last_source0 * S ((S (l)) * ac) + (a))) /\ ((exists pfa_gap_subtract_last_bound0. pfa_gap_subtract_last_bound0 + S (a) = (p))))
  44. specialize ha (l)
  45. apply ha
  46. exists 0
  47. apply zero_add
  48. cases hsource0
  49. cases hsource0_witness
  50. have hsource1 : exists a. ((((exists ff_h_pfp_subtract_last_source1. ff_h_pfp_subtract_last_source1 + S (a) = S ((S (l)) * bc)) /\ exists ff_q_pfp_subtract_last_source1. bb = ff_q_pfp_subtract_last_source1 * S ((S (l)) * bc) + (a))) /\ ((exists pfa_gap_subtract_last_bound1. pfa_gap_subtract_last_bound1 + S (a) = (p))))
  51. specialize hb (l)
  52. apply hb
  53. exists 0
  54. apply zero_add
  55. cases hsource1
  56. cases hsource1_witness
  57. have hvalue : exists r. (((exists pfa_gap_subtract_last_valueleft. pfa_gap_subtract_last_valueleft + S (x3) = (p)) /\ (((exists pfa_gap_subtract_last_valueright. pfa_gap_subtract_last_valueright + S (r) = (p)) /\ ((((exists pfa_gap_subtract_last_valueresultbound. pfa_gap_subtract_last_valueresultbound + S (x2) = (p)) /\ ((exists pfa_offset_left_subtract_last_valueresultcongruence pfa_offset_right_subtract_last_valueresultcongruence. ((x3) + (r)) + (p) * pfa_offset_left_subtract_last_valueresultcongruence = (x2) + (p) * pfa_offset_right_subtract_last_valueresultcongruence)))))))))
  58. specialize prime_field_subtract_exists (p)
  59. specialize prime_field_subtract_exists (x2)
  60. specialize prime_field_subtract_exists (x3)
  61. apply prime_field_subtract_exists
  62. exact hp
  63. exact hsource0_witness_right
  64. exact hsource1_witness_right
  65. cases hvalue
  66. have hnew : exists db dc. (((((exists ff_h_pfp_subtract_append. ff_h_pfp_subtract_append + S (x4) = S ((S (l)) * dc)) /\ exists ff_q_pfp_subtract_append. db = ff_q_pfp_subtract_append * S ((S (l)) * dc) + (x4))) /\ ((forall mdr_i_pfp_subtract_preserve mdr_a_pfp_subtract_preserve. (exists mdr_gap_pfp_subtract_preserveb. mdr_gap_pfp_subtract_preserveb + S (mdr_i_pfp_subtract_preserve) = (l)) -> (((exists ff_h_mdr_pfp_subtract_preserveo. ff_h_mdr_pfp_subtract_preserveo + S (mdr_a_pfp_subtract_preserve) = S ((S (mdr_i_pfp_subtract_preserve)) * x1)) /\ exists ff_q_mdr_pfp_subtract_preserveo. x = ff_q_mdr_pfp_subtract_preserveo * S ((S (mdr_i_pfp_subtract_preserve)) * x1) + (mdr_a_pfp_subtract_preserve))) -> (((exists ff_h_mdr_pfp_subtract_preserven. ff_h_mdr_pfp_subtract_preserven + S (mdr_a_pfp_subtract_preserve) = S ((S (mdr_i_pfp_subtract_preserve)) * dc)) /\ exists ff_q_mdr_pfp_subtract_preserven. db = ff_q_mdr_pfp_subtract_preserven * S ((S (mdr_i_pfp_subtract_preserve)) * dc) + (mdr_a_pfp_subtract_preserve)))))))
  67. specialize beta_prefix_extend (l)
  68. specialize beta_prefix_extend (x)
  69. specialize beta_prefix_extend (x1)
  70. specialize beta_prefix_extend (x4)
  71. apply beta_prefix_extend
  72. cases hnew
  73. cases hnew_witness
  74. cases hnew_witness_witness
  75. exists x5
  76. exists x6
  77. intro j
  78. intro hj
  79. have hcase : j=l \/ (exists pfa_gap_subtract_index_case. pfa_gap_subtract_index_case + S (j) = (l))
  80. specialize finite_lt_succ_eq_or_lt (l)
  81. specialize finite_lt_succ_eq_or_lt (j)
  82. apply finite_lt_succ_eq_or_lt
  83. exact hj
  84. cases hcase
  85. exists x2
  86. exists x3
  87. exists x4
  88. split
  89. rewrite hcase_left
  90. rewrite hcase_left
  91. exact hsource0_witness_left
  92. split
  93. rewrite hcase_left
  94. rewrite hcase_left
  95. exact hsource1_witness_left
  96. split
  97. rewrite hcase_left
  98. rewrite hcase_left
  99. exact hnew_witness_witness_left
  100. exact hvalue_witness
  101. have hprevious : exists v0 v1 v2. (((((exists ff_h_pfp_subtract_previous0. ff_h_pfp_subtract_previous0 + S (v0) = S ((S (j)) * ac)) /\ exists ff_q_pfp_subtract_previous0. ab = ff_q_pfp_subtract_previous0 * S ((S (j)) * ac) + (v0))) /\ (((((exists ff_h_pfp_subtract_previous1. ff_h_pfp_subtract_previous1 + S (v1) = S ((S (j)) * bc)) /\ exists ff_q_pfp_subtract_previous1. bb = ff_q_pfp_subtract_previous1 * S ((S (j)) * bc) + (v1))) /\ (((((exists ff_h_pfp_subtract_previous2. ff_h_pfp_subtract_previous2 + S (v2) = S ((S (j)) * x1)) /\ exists ff_q_pfp_subtract_previous2. x = ff_q_pfp_subtract_previous2 * S ((S (j)) * x1) + (v2))) /\ ((((exists pfa_gap_subtract_previousoperationleft. pfa_gap_subtract_previousoperationleft + S (v1) = (p)) /\ (((exists pfa_gap_subtract_previousoperationright. pfa_gap_subtract_previousoperationright + S (v2) = (p)) /\ ((((exists pfa_gap_subtract_previousoperationresultbound. pfa_gap_subtract_previousoperationresultbound + S (v0) = (p)) /\ ((exists pfa_offset_left_subtract_previousoperationresultcongruence pfa_offset_right_subtract_previousoperationresultcongruence. ((v1) + (v2)) + (p) * pfa_offset_left_subtract_previousoperationresultcongruence = (v0) + (p) * pfa_offset_right_subtract_previousoperationresultcongruence))))))))))))))))
  102. specialize hold_witness_witness (j)
  103. apply hold_witness_witness
  104. exact hcase_right
  105. cases hprevious
  106. cases hprevious_witness
  107. cases hprevious_witness_witness
  108. cases hprevious_witness_witness_witness
  109. cases hprevious_witness_witness_witness_right
  110. cases hprevious_witness_witness_witness_right_right
  111. exists x7
  112. exists x8
  113. exists x9
  114. split
  115. exact hprevious_witness_witness_witness_left
  116. split
  117. exact hprevious_witness_witness_witness_right_left
  118. split
  119. specialize hnew_witness_witness_right (j)
  120. specialize hnew_witness_witness_right (x9)
  121. apply hnew_witness_witness_right
  122. exact hcase_right
  123. exact hprevious_witness_witness_witness_right_right_left
  124. exact hprevious_witness_witness_witness_right_right_right
prime_field_add_cancel_left · unchanged support, not a new admission
forall p a b c z. (((exists pfa_gap_cancel_add_firstleft. pfa_gap_cancel_add_firstleft + S (a) = (p)) /\ (((exists pfa_gap_cancel_add_firstright. pfa_gap_cancel_add_firstright + S (b) = (p)) /\ ((((exists pfa_gap_cancel_add_firstresultbound. pfa_gap_cancel_add_firstresultbound + S (z) = (p)) /\ ((exists pfa_offset_left_cancel_add_firstresultcongruence pfa_offset_right_cancel_add_firstresultcongruence. ((a) + (b)) + (p) * pfa_offset_left_cancel_add_firstresultcongruence = (z) + (p) * pfa_offset_right_cancel_add_firstresultcongruence))))))))) -> (((exists pfa_gap_cancel_add_secondleft. pfa_gap_cancel_add_secondleft + S (a) = (p)) /\ (((exists pfa_gap_cancel_add_secondright. pfa_gap_cancel_add_secondright + S (c) = (p)) /\ ((((exists pfa_gap_cancel_add_secondresultbound. pfa_gap_cancel_add_secondresultbound + S (z) = (p)) /\ ((exists pfa_offset_left_cancel_add_secondresultcongruence pfa_offset_right_cancel_add_secondresultcongruence. ((a) + (c)) + (p) * pfa_offset_left_cancel_add_secondresultcongruence = (z) + (p) * pfa_offset_right_cancel_add_secondresultcongruence))))))))) -> b = c
  1. intro p
  2. intro a
  3. intro b
  4. intro c
  5. intro z
  6. intro hb
  7. intro hc
  8. cases hb
  9. cases hb_right
  10. cases hb_right_right
  11. cases hc
  12. cases hc_right
  13. cases hc_right_right
  14. specialize mod_eq_bounded_unique (p)
  15. specialize mod_eq_bounded_unique (b)
  16. specialize mod_eq_bounded_unique (c)
  17. apply mod_eq_bounded_unique
  18. exact hb_right_left
  19. exact hc_right_left
  20. specialize mod_eq_add_cancel_left (p)
  21. specialize mod_eq_add_cancel_left (a)
  22. specialize mod_eq_add_cancel_left (b)
  23. specialize mod_eq_add_cancel_left (c)
  24. apply mod_eq_add_cancel_left
  25. specialize mod_eq_trans (p)
  26. specialize mod_eq_trans (a + b)
  27. specialize mod_eq_trans (z)
  28. specialize mod_eq_trans (a + c)
  29. apply mod_eq_trans
  30. exact hb_right_right_right
  31. specialize mod_eq_symm (p)
  32. specialize mod_eq_symm (a + c)
  33. specialize mod_eq_symm (z)
  34. apply mod_eq_symm
  35. exact hc_right_right_right
prime_field_polynomial_subtract_entry · unchanged support, not a new admission
forall p ab ac bb bc rb rc l i a b r. (forall pfs_index_subtract_entry_graph. (exists pfa_gap_subtract_entry_graphindex. pfa_gap_subtract_entry_graphindex + S (pfs_index_subtract_entry_graph) = (l)) -> exists pfs_left_subtract_entry_graph pfs_right_subtract_entry_graph pfs_result_subtract_entry_graph. ((((exists ff_h_pfp_subtract_entry_graphleft. ff_h_pfp_subtract_entry_graphleft + S (pfs_left_subtract_entry_graph) = S ((S (pfs_index_subtract_entry_graph)) * ac)) /\ exists ff_q_pfp_subtract_entry_graphleft. ab = ff_q_pfp_subtract_entry_graphleft * S ((S (pfs_index_subtract_entry_graph)) * ac) + (pfs_left_subtract_entry_graph))) /\ (((((exists ff_h_pfp_subtract_entry_graphright. ff_h_pfp_subtract_entry_graphright + S (pfs_right_subtract_entry_graph) = S ((S (pfs_index_subtract_entry_graph)) * bc)) /\ exists ff_q_pfp_subtract_entry_graphright. bb = ff_q_pfp_subtract_entry_graphright * S ((S (pfs_index_subtract_entry_graph)) * bc) + (pfs_right_subtract_entry_graph))) /\ (((((exists ff_h_pfp_subtract_entry_graphresult. ff_h_pfp_subtract_entry_graphresult + S (pfs_result_subtract_entry_graph) = S ((S (pfs_index_subtract_entry_graph)) * rc)) /\ exists ff_q_pfp_subtract_entry_graphresult. rb = ff_q_pfp_subtract_entry_graphresult * S ((S (pfs_index_subtract_entry_graph)) * rc) + (pfs_result_subtract_entry_graph))) /\ ((((exists pfa_gap_subtract_entry_graphoperationleft. pfa_gap_subtract_entry_graphoperationleft + S (pfs_right_subtract_entry_graph) = (p)) /\ (((exists pfa_gap_subtract_entry_graphoperationright. pfa_gap_subtract_entry_graphoperationright + S (pfs_result_subtract_entry_graph) = (p)) /\ ((((exists pfa_gap_subtract_entry_graphoperationresultbound. pfa_gap_subtract_entry_graphoperationresultbound + S (pfs_left_subtract_entry_graph) = (p)) /\ ((exists pfa_offset_left_subtract_entry_graphoperationresultcongruence pfa_offset_right_subtract_entry_graphoperationresultcongruence. ((pfs_right_subtract_entry_graph) + (pfs_result_subtract_entry_graph)) + (p) * pfa_offset_left_subtract_entry_graphoperationresultcongruence = (pfs_left_subtract_entry_graph) + (p) * pfa_offset_right_subtract_entry_graphoperationresultcongruence)))))))))))))))) -> (exists pfa_gap_subtract_entry_index. pfa_gap_subtract_entry_index + S (i) = (l)) -> (((exists ff_h_pfp_subtract_entry_a. ff_h_pfp_subtract_entry_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_subtract_entry_a. ab = ff_q_pfp_subtract_entry_a * S ((S (i)) * ac) + (a))) -> (((exists ff_h_pfp_subtract_entry_b. ff_h_pfp_subtract_entry_b + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_subtract_entry_b. bb = ff_q_pfp_subtract_entry_b * S ((S (i)) * bc) + (b))) -> (((exists ff_h_pfp_subtract_entry_r. ff_h_pfp_subtract_entry_r + S (r) = S ((S (i)) * rc)) /\ exists ff_q_pfp_subtract_entry_r. rb = ff_q_pfp_subtract_entry_r * S ((S (i)) * rc) + (r))) -> (((exists pfa_gap_subtract_entry_resultleft. pfa_gap_subtract_entry_resultleft + S (b) = (p)) /\ (((exists pfa_gap_subtract_entry_resultright. pfa_gap_subtract_entry_resultright + S (r) = (p)) /\ ((((exists pfa_gap_subtract_entry_resultresultbound. pfa_gap_subtract_entry_resultresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_subtract_entry_resultresultcongruence pfa_offset_right_subtract_entry_resultresultcongruence. ((b) + (r)) + (p) * pfa_offset_left_subtract_entry_resultresultcongruence = (a) + (p) * pfa_offset_right_subtract_entry_resultresultcongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro rb
  7. intro rc
  8. intro l
  9. intro i
  10. intro a
  11. intro b
  12. intro r
  13. intro h
  14. intro hi
  15. intro ha
  16. intro hb
  17. intro hr
  18. have hv : exists u0 u1 u2. (((((exists ff_h_pfp_subtract_entry_chosen0. ff_h_pfp_subtract_entry_chosen0 + S (u0) = S ((S (i)) * ac)) /\ exists ff_q_pfp_subtract_entry_chosen0. ab = ff_q_pfp_subtract_entry_chosen0 * S ((S (i)) * ac) + (u0))) /\ (((((exists ff_h_pfp_subtract_entry_chosen1. ff_h_pfp_subtract_entry_chosen1 + S (u1) = S ((S (i)) * bc)) /\ exists ff_q_pfp_subtract_entry_chosen1. bb = ff_q_pfp_subtract_entry_chosen1 * S ((S (i)) * bc) + (u1))) /\ (((((exists ff_h_pfp_subtract_entry_chosen2. ff_h_pfp_subtract_entry_chosen2 + S (u2) = S ((S (i)) * rc)) /\ exists ff_q_pfp_subtract_entry_chosen2. rb = ff_q_pfp_subtract_entry_chosen2 * S ((S (i)) * rc) + (u2))) /\ ((((exists pfa_gap_subtract_entry_chosenoperationleft. pfa_gap_subtract_entry_chosenoperationleft + S (u1) = (p)) /\ (((exists pfa_gap_subtract_entry_chosenoperationright. pfa_gap_subtract_entry_chosenoperationright + S (u2) = (p)) /\ ((((exists pfa_gap_subtract_entry_chosenoperationresultbound. pfa_gap_subtract_entry_chosenoperationresultbound + S (u0) = (p)) /\ ((exists pfa_offset_left_subtract_entry_chosenoperationresultcongruence pfa_offset_right_subtract_entry_chosenoperationresultcongruence. ((u1) + (u2)) + (p) * pfa_offset_left_subtract_entry_chosenoperationresultcongruence = (u0) + (p) * pfa_offset_right_subtract_entry_chosenoperationresultcongruence))))))))))))))))
  19. specialize h (i)
  20. apply h
  21. exact hi
  22. cases hv
  23. cases hv_witness
  24. cases hv_witness_witness
  25. cases hv_witness_witness_witness
  26. cases hv_witness_witness_witness_right
  27. cases hv_witness_witness_witness_right_right
  28. have heq0 : x=a
  29. specialize beta_at_unique (ab)
  30. specialize beta_at_unique (ac)
  31. specialize beta_at_unique (i)
  32. specialize beta_at_unique (x)
  33. specialize beta_at_unique (a)
  34. apply beta_at_unique
  35. exact hv_witness_witness_witness_left
  36. exact ha
  37. rewrite heq0 at hv_witness_witness_witness_right_right_right
  38. rewrite heq0 at hv_witness_witness_witness_right_right_right
  39. have heq1 : x1=b
  40. specialize beta_at_unique (bb)
  41. specialize beta_at_unique (bc)
  42. specialize beta_at_unique (i)
  43. specialize beta_at_unique (x1)
  44. specialize beta_at_unique (b)
  45. apply beta_at_unique
  46. exact hv_witness_witness_witness_right_left
  47. exact hb
  48. rewrite heq1 at hv_witness_witness_witness_right_right_right
  49. rewrite heq1 at hv_witness_witness_witness_right_right_right
  50. have heq2 : x2=r
  51. specialize beta_at_unique (rb)
  52. specialize beta_at_unique (rc)
  53. specialize beta_at_unique (i)
  54. specialize beta_at_unique (x2)
  55. specialize beta_at_unique (r)
  56. apply beta_at_unique
  57. exact hv_witness_witness_witness_right_right_left
  58. exact hr
  59. rewrite heq2 at hv_witness_witness_witness_right_right_right
  60. rewrite heq2 at hv_witness_witness_witness_right_right_right
  61. exact hv_witness_witness_witness_right_right_right
prime_field_polynomial_subtract_functional · unchanged support, not a new admission
forall p ab ac bb bc rb rc db dc l. (forall pfs_index_subtract_functional_first. (exists pfa_gap_subtract_functional_firstindex. pfa_gap_subtract_functional_firstindex + S (pfs_index_subtract_functional_first) = (l)) -> exists pfs_left_subtract_functional_first pfs_right_subtract_functional_first pfs_result_subtract_functional_first. ((((exists ff_h_pfp_subtract_functional_firstleft. ff_h_pfp_subtract_functional_firstleft + S (pfs_left_subtract_functional_first) = S ((S (pfs_index_subtract_functional_first)) * ac)) /\ exists ff_q_pfp_subtract_functional_firstleft. ab = ff_q_pfp_subtract_functional_firstleft * S ((S (pfs_index_subtract_functional_first)) * ac) + (pfs_left_subtract_functional_first))) /\ (((((exists ff_h_pfp_subtract_functional_firstright. ff_h_pfp_subtract_functional_firstright + S (pfs_right_subtract_functional_first) = S ((S (pfs_index_subtract_functional_first)) * bc)) /\ exists ff_q_pfp_subtract_functional_firstright. bb = ff_q_pfp_subtract_functional_firstright * S ((S (pfs_index_subtract_functional_first)) * bc) + (pfs_right_subtract_functional_first))) /\ (((((exists ff_h_pfp_subtract_functional_firstresult. ff_h_pfp_subtract_functional_firstresult + S (pfs_result_subtract_functional_first) = S ((S (pfs_index_subtract_functional_first)) * rc)) /\ exists ff_q_pfp_subtract_functional_firstresult. rb = ff_q_pfp_subtract_functional_firstresult * S ((S (pfs_index_subtract_functional_first)) * rc) + (pfs_result_subtract_functional_first))) /\ ((((exists pfa_gap_subtract_functional_firstoperationleft. pfa_gap_subtract_functional_firstoperationleft + S (pfs_right_subtract_functional_first) = (p)) /\ (((exists pfa_gap_subtract_functional_firstoperationright. pfa_gap_subtract_functional_firstoperationright + S (pfs_result_subtract_functional_first) = (p)) /\ ((((exists pfa_gap_subtract_functional_firstoperationresultbound. pfa_gap_subtract_functional_firstoperationresultbound + S (pfs_left_subtract_functional_first) = (p)) /\ ((exists pfa_offset_left_subtract_functional_firstoperationresultcongruence pfa_offset_right_subtract_functional_firstoperationresultcongruence. ((pfs_right_subtract_functional_first) + (pfs_result_subtract_functional_first)) + (p) * pfa_offset_left_subtract_functional_firstoperationresultcongruence = (pfs_left_subtract_functional_first) + (p) * pfa_offset_right_subtract_functional_firstoperationresultcongruence)))))))))))))))) -> (forall pfs_index_subtract_functional_second. (exists pfa_gap_subtract_functional_secondindex. pfa_gap_subtract_functional_secondindex + S (pfs_index_subtract_functional_second) = (l)) -> exists pfs_left_subtract_functional_second pfs_right_subtract_functional_second pfs_result_subtract_functional_second. ((((exists ff_h_pfp_subtract_functional_secondleft. ff_h_pfp_subtract_functional_secondleft + S (pfs_left_subtract_functional_second) = S ((S (pfs_index_subtract_functional_second)) * ac)) /\ exists ff_q_pfp_subtract_functional_secondleft. ab = ff_q_pfp_subtract_functional_secondleft * S ((S (pfs_index_subtract_functional_second)) * ac) + (pfs_left_subtract_functional_second))) /\ (((((exists ff_h_pfp_subtract_functional_secondright. ff_h_pfp_subtract_functional_secondright + S (pfs_right_subtract_functional_second) = S ((S (pfs_index_subtract_functional_second)) * bc)) /\ exists ff_q_pfp_subtract_functional_secondright. bb = ff_q_pfp_subtract_functional_secondright * S ((S (pfs_index_subtract_functional_second)) * bc) + (pfs_right_subtract_functional_second))) /\ (((((exists ff_h_pfp_subtract_functional_secondresult. ff_h_pfp_subtract_functional_secondresult + S (pfs_result_subtract_functional_second) = S ((S (pfs_index_subtract_functional_second)) * dc)) /\ exists ff_q_pfp_subtract_functional_secondresult. db = ff_q_pfp_subtract_functional_secondresult * S ((S (pfs_index_subtract_functional_second)) * dc) + (pfs_result_subtract_functional_second))) /\ ((((exists pfa_gap_subtract_functional_secondoperationleft. pfa_gap_subtract_functional_secondoperationleft + S (pfs_right_subtract_functional_second) = (p)) /\ (((exists pfa_gap_subtract_functional_secondoperationright. pfa_gap_subtract_functional_secondoperationright + S (pfs_result_subtract_functional_second) = (p)) /\ ((((exists pfa_gap_subtract_functional_secondoperationresultbound. pfa_gap_subtract_functional_secondoperationresultbound + S (pfs_left_subtract_functional_second) = (p)) /\ ((exists pfa_offset_left_subtract_functional_secondoperationresultcongruence pfa_offset_right_subtract_functional_secondoperationresultcongruence. ((pfs_right_subtract_functional_second) + (pfs_result_subtract_functional_second)) + (p) * pfa_offset_left_subtract_functional_secondoperationresultcongruence = (pfs_left_subtract_functional_second) + (p) * pfa_offset_right_subtract_functional_secondoperationresultcongruence)))))))))))))))) -> (forall mdr_i_pfp_subtract_functional_result mdr_a_pfp_subtract_functional_result. (exists mdr_gap_pfp_subtract_functional_resultb. mdr_gap_pfp_subtract_functional_resultb + S (mdr_i_pfp_subtract_functional_result) = (l)) -> (((exists ff_h_mdr_pfp_subtract_functional_resulto. ff_h_mdr_pfp_subtract_functional_resulto + S (mdr_a_pfp_subtract_functional_result) = S ((S (mdr_i_pfp_subtract_functional_result)) * rc)) /\ exists ff_q_mdr_pfp_subtract_functional_resulto. rb = ff_q_mdr_pfp_subtract_functional_resulto * S ((S (mdr_i_pfp_subtract_functional_result)) * rc) + (mdr_a_pfp_subtract_functional_result))) -> (((exists ff_h_mdr_pfp_subtract_functional_resultn. ff_h_mdr_pfp_subtract_functional_resultn + S (mdr_a_pfp_subtract_functional_result) = S ((S (mdr_i_pfp_subtract_functional_result)) * dc)) /\ exists ff_q_mdr_pfp_subtract_functional_resultn. db = ff_q_mdr_pfp_subtract_functional_resultn * S ((S (mdr_i_pfp_subtract_functional_result)) * dc) + (mdr_a_pfp_subtract_functional_result))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro rb
  7. intro rc
  8. intro db
  9. intro dc
  10. intro l
  11. intro hfirst
  12. intro hsecond
  13. intro i
  14. intro r
  15. intro hi
  16. intro hr
  17. have hchosen0 : exists v. (((exists ff_h_pfp_subtract_functional0. ff_h_pfp_subtract_functional0 + S (v) = S ((S (i)) * ac)) /\ exists ff_q_pfp_subtract_functional0. ab = ff_q_pfp_subtract_functional0 * S ((S (i)) * ac) + (v)))
  18. specialize beta_at_exists (ab)
  19. specialize beta_at_exists (ac)
  20. specialize beta_at_exists (i)
  21. apply beta_at_exists
  22. cases hchosen0
  23. have hchosen1 : exists v. (((exists ff_h_pfp_subtract_functional1. ff_h_pfp_subtract_functional1 + S (v) = S ((S (i)) * bc)) /\ exists ff_q_pfp_subtract_functional1. bb = ff_q_pfp_subtract_functional1 * S ((S (i)) * bc) + (v)))
  24. specialize beta_at_exists (bb)
  25. specialize beta_at_exists (bc)
  26. specialize beta_at_exists (i)
  27. apply beta_at_exists
  28. cases hchosen1
  29. have hchosen2 : exists v. (((exists ff_h_pfp_subtract_functional2. ff_h_pfp_subtract_functional2 + S (v) = S ((S (i)) * dc)) /\ exists ff_q_pfp_subtract_functional2. db = ff_q_pfp_subtract_functional2 * S ((S (i)) * dc) + (v)))
  30. specialize beta_at_exists (db)
  31. specialize beta_at_exists (dc)
  32. specialize beta_at_exists (i)
  33. apply beta_at_exists
  34. cases hchosen2
  35. have heq : r=x2
  36. specialize prime_field_add_cancel_left (p)
  37. specialize prime_field_add_cancel_left (x1)
  38. specialize prime_field_add_cancel_left (r)
  39. specialize prime_field_add_cancel_left (x2)
  40. specialize prime_field_add_cancel_left (x)
  41. apply prime_field_add_cancel_left
  42. specialize prime_field_polynomial_subtract_entry (p)
  43. specialize prime_field_polynomial_subtract_entry (ab)
  44. specialize prime_field_polynomial_subtract_entry (ac)
  45. specialize prime_field_polynomial_subtract_entry (bb)
  46. specialize prime_field_polynomial_subtract_entry (bc)
  47. specialize prime_field_polynomial_subtract_entry (rb)
  48. specialize prime_field_polynomial_subtract_entry (rc)
  49. specialize prime_field_polynomial_subtract_entry (l)
  50. specialize prime_field_polynomial_subtract_entry (i)
  51. specialize prime_field_polynomial_subtract_entry (x)
  52. specialize prime_field_polynomial_subtract_entry (x1)
  53. specialize prime_field_polynomial_subtract_entry (r)
  54. apply prime_field_polynomial_subtract_entry
  55. exact hfirst
  56. exact hi
  57. exact hchosen0_witness
  58. exact hchosen1_witness
  59. exact hr
  60. specialize prime_field_polynomial_subtract_entry (p)
  61. specialize prime_field_polynomial_subtract_entry (ab)
  62. specialize prime_field_polynomial_subtract_entry (ac)
  63. specialize prime_field_polynomial_subtract_entry (bb)
  64. specialize prime_field_polynomial_subtract_entry (bc)
  65. specialize prime_field_polynomial_subtract_entry (db)
  66. specialize prime_field_polynomial_subtract_entry (dc)
  67. specialize prime_field_polynomial_subtract_entry (l)
  68. specialize prime_field_polynomial_subtract_entry (i)
  69. specialize prime_field_polynomial_subtract_entry (x)
  70. specialize prime_field_polynomial_subtract_entry (x1)
  71. specialize prime_field_polynomial_subtract_entry (x2)
  72. apply prime_field_polynomial_subtract_entry
  73. exact hsecond
  74. exact hi
  75. exact hchosen0_witness
  76. exact hchosen1_witness
  77. exact hchosen2_witness
  78. rewrite heq
  79. rewrite heq
  80. exact hchosen2_witness
prime_field_polynomial_subtract_from_add · unchanged support, not a new admission
forall p ab ac bb bc rb rc l. (forall pfp_index_sub_bridge_old_from_add. (exists pfa_gap_sub_bridge_old_from_addindex. pfa_gap_sub_bridge_old_from_addindex + S (pfp_index_sub_bridge_old_from_add) = (l)) -> exists pfp_left_sub_bridge_old_from_add pfp_right_sub_bridge_old_from_add pfp_value_sub_bridge_old_from_add. ((((exists ff_h_pfp_sub_bridge_old_from_addleft. ff_h_pfp_sub_bridge_old_from_addleft + S (pfp_left_sub_bridge_old_from_add) = S ((S (pfp_index_sub_bridge_old_from_add)) * bc)) /\ exists ff_q_pfp_sub_bridge_old_from_addleft. bb = ff_q_pfp_sub_bridge_old_from_addleft * S ((S (pfp_index_sub_bridge_old_from_add)) * bc) + (pfp_left_sub_bridge_old_from_add))) /\ (((((exists ff_h_pfp_sub_bridge_old_from_addright. ff_h_pfp_sub_bridge_old_from_addright + S (pfp_right_sub_bridge_old_from_add) = S ((S (pfp_index_sub_bridge_old_from_add)) * rc)) /\ exists ff_q_pfp_sub_bridge_old_from_addright. rb = ff_q_pfp_sub_bridge_old_from_addright * S ((S (pfp_index_sub_bridge_old_from_add)) * rc) + (pfp_right_sub_bridge_old_from_add))) /\ (((((exists ff_h_pfp_sub_bridge_old_from_addtarget. ff_h_pfp_sub_bridge_old_from_addtarget + S (pfp_value_sub_bridge_old_from_add) = S ((S (pfp_index_sub_bridge_old_from_add)) * ac)) /\ exists ff_q_pfp_sub_bridge_old_from_addtarget. ab = ff_q_pfp_sub_bridge_old_from_addtarget * S ((S (pfp_index_sub_bridge_old_from_add)) * ac) + (pfp_value_sub_bridge_old_from_add))) /\ ((((exists pfa_gap_sub_bridge_old_from_addoperationleft. pfa_gap_sub_bridge_old_from_addoperationleft + S (pfp_left_sub_bridge_old_from_add) = (p)) /\ (((exists pfa_gap_sub_bridge_old_from_addoperationright. pfa_gap_sub_bridge_old_from_addoperationright + S (pfp_right_sub_bridge_old_from_add) = (p)) /\ ((((exists pfa_gap_sub_bridge_old_from_addoperationresultbound. pfa_gap_sub_bridge_old_from_addoperationresultbound + S (pfp_value_sub_bridge_old_from_add) = (p)) /\ ((exists pfa_offset_left_sub_bridge_old_from_addoperationresultcongruence pfa_offset_right_sub_bridge_old_from_addoperationresultcongruence. ((pfp_left_sub_bridge_old_from_add) + (pfp_right_sub_bridge_old_from_add)) + (p) * pfa_offset_left_sub_bridge_old_from_addoperationresultcongruence = (pfp_value_sub_bridge_old_from_add) + (p) * pfa_offset_right_sub_bridge_old_from_addoperationresultcongruence)))))))))))))))) -> (forall pfs_index_sub_bridge_new_from_add. (exists pfa_gap_sub_bridge_new_from_addindex. pfa_gap_sub_bridge_new_from_addindex + S (pfs_index_sub_bridge_new_from_add) = (l)) -> exists pfs_left_sub_bridge_new_from_add pfs_right_sub_bridge_new_from_add pfs_result_sub_bridge_new_from_add. ((((exists ff_h_pfp_sub_bridge_new_from_addleft. ff_h_pfp_sub_bridge_new_from_addleft + S (pfs_left_sub_bridge_new_from_add) = S ((S (pfs_index_sub_bridge_new_from_add)) * ac)) /\ exists ff_q_pfp_sub_bridge_new_from_addleft. ab = ff_q_pfp_sub_bridge_new_from_addleft * S ((S (pfs_index_sub_bridge_new_from_add)) * ac) + (pfs_left_sub_bridge_new_from_add))) /\ (((((exists ff_h_pfp_sub_bridge_new_from_addright. ff_h_pfp_sub_bridge_new_from_addright + S (pfs_right_sub_bridge_new_from_add) = S ((S (pfs_index_sub_bridge_new_from_add)) * bc)) /\ exists ff_q_pfp_sub_bridge_new_from_addright. bb = ff_q_pfp_sub_bridge_new_from_addright * S ((S (pfs_index_sub_bridge_new_from_add)) * bc) + (pfs_right_sub_bridge_new_from_add))) /\ (((((exists ff_h_pfp_sub_bridge_new_from_addresult. ff_h_pfp_sub_bridge_new_from_addresult + S (pfs_result_sub_bridge_new_from_add) = S ((S (pfs_index_sub_bridge_new_from_add)) * rc)) /\ exists ff_q_pfp_sub_bridge_new_from_addresult. rb = ff_q_pfp_sub_bridge_new_from_addresult * S ((S (pfs_index_sub_bridge_new_from_add)) * rc) + (pfs_result_sub_bridge_new_from_add))) /\ ((((exists pfa_gap_sub_bridge_new_from_addoperationleft. pfa_gap_sub_bridge_new_from_addoperationleft + S (pfs_right_sub_bridge_new_from_add) = (p)) /\ (((exists pfa_gap_sub_bridge_new_from_addoperationright. pfa_gap_sub_bridge_new_from_addoperationright + S (pfs_result_sub_bridge_new_from_add) = (p)) /\ ((((exists pfa_gap_sub_bridge_new_from_addoperationresultbound. pfa_gap_sub_bridge_new_from_addoperationresultbound + S (pfs_left_sub_bridge_new_from_add) = (p)) /\ ((exists pfa_offset_left_sub_bridge_new_from_addoperationresultcongruence pfa_offset_right_sub_bridge_new_from_addoperationresultcongruence. ((pfs_right_sub_bridge_new_from_add) + (pfs_result_sub_bridge_new_from_add)) + (p) * pfa_offset_left_sub_bridge_new_from_addoperationresultcongruence = (pfs_left_sub_bridge_new_from_add) + (p) * pfa_offset_right_sub_bridge_new_from_addoperationresultcongruence))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro rb
  7. intro rc
  8. intro l
  9. intro h
  10. intro i
  11. intro hi
  12. have hv : exists b r a. (((((exists ff_h_pfp_sub_bridge_from_addb. ff_h_pfp_sub_bridge_from_addb + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_sub_bridge_from_addb. bb = ff_q_pfp_sub_bridge_from_addb * S ((S (i)) * bc) + (b))) /\ (((((exists ff_h_pfp_sub_bridge_from_addr. ff_h_pfp_sub_bridge_from_addr + S (r) = S ((S (i)) * rc)) /\ exists ff_q_pfp_sub_bridge_from_addr. rb = ff_q_pfp_sub_bridge_from_addr * S ((S (i)) * rc) + (r))) /\ (((((exists ff_h_pfp_sub_bridge_from_adda. ff_h_pfp_sub_bridge_from_adda + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_sub_bridge_from_adda. ab = ff_q_pfp_sub_bridge_from_adda * S ((S (i)) * ac) + (a))) /\ ((((exists pfa_gap_sub_bridge_from_addvalueleft. pfa_gap_sub_bridge_from_addvalueleft + S (b) = (p)) /\ (((exists pfa_gap_sub_bridge_from_addvalueright. pfa_gap_sub_bridge_from_addvalueright + S (r) = (p)) /\ ((((exists pfa_gap_sub_bridge_from_addvalueresultbound. pfa_gap_sub_bridge_from_addvalueresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_sub_bridge_from_addvalueresultcongruence pfa_offset_right_sub_bridge_from_addvalueresultcongruence. ((b) + (r)) + (p) * pfa_offset_left_sub_bridge_from_addvalueresultcongruence = (a) + (p) * pfa_offset_right_sub_bridge_from_addvalueresultcongruence))))))))))))))))
  13. specialize h (i)
  14. apply h
  15. exact hi
  16. cases hv
  17. cases hv_witness
  18. cases hv_witness_witness
  19. cases hv_witness_witness_witness
  20. cases hv_witness_witness_witness_right
  21. cases hv_witness_witness_witness_right_right
  22. exists x2
  23. exists x
  24. exists x1
  25. split
  26. exact hv_witness_witness_witness_right_right_left
  27. split
  28. exact hv_witness_witness_witness_left
  29. split
  30. exact hv_witness_witness_witness_right_left
  31. exact hv_witness_witness_witness_right_right_right
prime_field_polynomial_add_associative · unchanged support, not a new admission
forall p ab ac bb bc cb cc xb xc yb yc ub uc vb vc l. (forall pfp_index_assoc_ab. (exists pfa_gap_assoc_abindex. pfa_gap_assoc_abindex + S (pfp_index_assoc_ab) = (l)) -> exists pfp_left_assoc_ab pfp_right_assoc_ab pfp_value_assoc_ab. ((((exists ff_h_pfp_assoc_ableft. ff_h_pfp_assoc_ableft + S (pfp_left_assoc_ab) = S ((S (pfp_index_assoc_ab)) * ac)) /\ exists ff_q_pfp_assoc_ableft. ab = ff_q_pfp_assoc_ableft * S ((S (pfp_index_assoc_ab)) * ac) + (pfp_left_assoc_ab))) /\ (((((exists ff_h_pfp_assoc_abright. ff_h_pfp_assoc_abright + S (pfp_right_assoc_ab) = S ((S (pfp_index_assoc_ab)) * bc)) /\ exists ff_q_pfp_assoc_abright. bb = ff_q_pfp_assoc_abright * S ((S (pfp_index_assoc_ab)) * bc) + (pfp_right_assoc_ab))) /\ (((((exists ff_h_pfp_assoc_abtarget. ff_h_pfp_assoc_abtarget + S (pfp_value_assoc_ab) = S ((S (pfp_index_assoc_ab)) * xc)) /\ exists ff_q_pfp_assoc_abtarget. xb = ff_q_pfp_assoc_abtarget * S ((S (pfp_index_assoc_ab)) * xc) + (pfp_value_assoc_ab))) /\ ((((exists pfa_gap_assoc_aboperationleft. pfa_gap_assoc_aboperationleft + S (pfp_left_assoc_ab) = (p)) /\ (((exists pfa_gap_assoc_aboperationright. pfa_gap_assoc_aboperationright + S (pfp_right_assoc_ab) = (p)) /\ ((((exists pfa_gap_assoc_aboperationresultbound. pfa_gap_assoc_aboperationresultbound + S (pfp_value_assoc_ab) = (p)) /\ ((exists pfa_offset_left_assoc_aboperationresultcongruence pfa_offset_right_assoc_aboperationresultcongruence. ((pfp_left_assoc_ab) + (pfp_right_assoc_ab)) + (p) * pfa_offset_left_assoc_aboperationresultcongruence = (pfp_value_assoc_ab) + (p) * pfa_offset_right_assoc_aboperationresultcongruence)))))))))))))))) -> (forall pfp_index_assoc_left. (exists pfa_gap_assoc_leftindex. pfa_gap_assoc_leftindex + S (pfp_index_assoc_left) = (l)) -> exists pfp_left_assoc_left pfp_right_assoc_left pfp_value_assoc_left. ((((exists ff_h_pfp_assoc_leftleft. ff_h_pfp_assoc_leftleft + S (pfp_left_assoc_left) = S ((S (pfp_index_assoc_left)) * xc)) /\ exists ff_q_pfp_assoc_leftleft. xb = ff_q_pfp_assoc_leftleft * S ((S (pfp_index_assoc_left)) * xc) + (pfp_left_assoc_left))) /\ (((((exists ff_h_pfp_assoc_leftright. ff_h_pfp_assoc_leftright + S (pfp_right_assoc_left) = S ((S (pfp_index_assoc_left)) * cc)) /\ exists ff_q_pfp_assoc_leftright. cb = ff_q_pfp_assoc_leftright * S ((S (pfp_index_assoc_left)) * cc) + (pfp_right_assoc_left))) /\ (((((exists ff_h_pfp_assoc_lefttarget. ff_h_pfp_assoc_lefttarget + S (pfp_value_assoc_left) = S ((S (pfp_index_assoc_left)) * uc)) /\ exists ff_q_pfp_assoc_lefttarget. ub = ff_q_pfp_assoc_lefttarget * S ((S (pfp_index_assoc_left)) * uc) + (pfp_value_assoc_left))) /\ ((((exists pfa_gap_assoc_leftoperationleft. pfa_gap_assoc_leftoperationleft + S (pfp_left_assoc_left) = (p)) /\ (((exists pfa_gap_assoc_leftoperationright. pfa_gap_assoc_leftoperationright + S (pfp_right_assoc_left) = (p)) /\ ((((exists pfa_gap_assoc_leftoperationresultbound. pfa_gap_assoc_leftoperationresultbound + S (pfp_value_assoc_left) = (p)) /\ ((exists pfa_offset_left_assoc_leftoperationresultcongruence pfa_offset_right_assoc_leftoperationresultcongruence. ((pfp_left_assoc_left) + (pfp_right_assoc_left)) + (p) * pfa_offset_left_assoc_leftoperationresultcongruence = (pfp_value_assoc_left) + (p) * pfa_offset_right_assoc_leftoperationresultcongruence)))))))))))))))) -> (forall pfp_index_assoc_bc. (exists pfa_gap_assoc_bcindex. pfa_gap_assoc_bcindex + S (pfp_index_assoc_bc) = (l)) -> exists pfp_left_assoc_bc pfp_right_assoc_bc pfp_value_assoc_bc. ((((exists ff_h_pfp_assoc_bcleft. ff_h_pfp_assoc_bcleft + S (pfp_left_assoc_bc) = S ((S (pfp_index_assoc_bc)) * bc)) /\ exists ff_q_pfp_assoc_bcleft. bb = ff_q_pfp_assoc_bcleft * S ((S (pfp_index_assoc_bc)) * bc) + (pfp_left_assoc_bc))) /\ (((((exists ff_h_pfp_assoc_bcright. ff_h_pfp_assoc_bcright + S (pfp_right_assoc_bc) = S ((S (pfp_index_assoc_bc)) * cc)) /\ exists ff_q_pfp_assoc_bcright. cb = ff_q_pfp_assoc_bcright * S ((S (pfp_index_assoc_bc)) * cc) + (pfp_right_assoc_bc))) /\ (((((exists ff_h_pfp_assoc_bctarget. ff_h_pfp_assoc_bctarget + S (pfp_value_assoc_bc) = S ((S (pfp_index_assoc_bc)) * yc)) /\ exists ff_q_pfp_assoc_bctarget. yb = ff_q_pfp_assoc_bctarget * S ((S (pfp_index_assoc_bc)) * yc) + (pfp_value_assoc_bc))) /\ ((((exists pfa_gap_assoc_bcoperationleft. pfa_gap_assoc_bcoperationleft + S (pfp_left_assoc_bc) = (p)) /\ (((exists pfa_gap_assoc_bcoperationright. pfa_gap_assoc_bcoperationright + S (pfp_right_assoc_bc) = (p)) /\ ((((exists pfa_gap_assoc_bcoperationresultbound. pfa_gap_assoc_bcoperationresultbound + S (pfp_value_assoc_bc) = (p)) /\ ((exists pfa_offset_left_assoc_bcoperationresultcongruence pfa_offset_right_assoc_bcoperationresultcongruence. ((pfp_left_assoc_bc) + (pfp_right_assoc_bc)) + (p) * pfa_offset_left_assoc_bcoperationresultcongruence = (pfp_value_assoc_bc) + (p) * pfa_offset_right_assoc_bcoperationresultcongruence)))))))))))))))) -> (forall pfp_index_assoc_right. (exists pfa_gap_assoc_rightindex. pfa_gap_assoc_rightindex + S (pfp_index_assoc_right) = (l)) -> exists pfp_left_assoc_right pfp_right_assoc_right pfp_value_assoc_right. ((((exists ff_h_pfp_assoc_rightleft. ff_h_pfp_assoc_rightleft + S (pfp_left_assoc_right) = S ((S (pfp_index_assoc_right)) * ac)) /\ exists ff_q_pfp_assoc_rightleft. ab = ff_q_pfp_assoc_rightleft * S ((S (pfp_index_assoc_right)) * ac) + (pfp_left_assoc_right))) /\ (((((exists ff_h_pfp_assoc_rightright. ff_h_pfp_assoc_rightright + S (pfp_right_assoc_right) = S ((S (pfp_index_assoc_right)) * yc)) /\ exists ff_q_pfp_assoc_rightright. yb = ff_q_pfp_assoc_rightright * S ((S (pfp_index_assoc_right)) * yc) + (pfp_right_assoc_right))) /\ (((((exists ff_h_pfp_assoc_righttarget. ff_h_pfp_assoc_righttarget + S (pfp_value_assoc_right) = S ((S (pfp_index_assoc_right)) * vc)) /\ exists ff_q_pfp_assoc_righttarget. vb = ff_q_pfp_assoc_righttarget * S ((S (pfp_index_assoc_right)) * vc) + (pfp_value_assoc_right))) /\ ((((exists pfa_gap_assoc_rightoperationleft. pfa_gap_assoc_rightoperationleft + S (pfp_left_assoc_right) = (p)) /\ (((exists pfa_gap_assoc_rightoperationright. pfa_gap_assoc_rightoperationright + S (pfp_right_assoc_right) = (p)) /\ ((((exists pfa_gap_assoc_rightoperationresultbound. pfa_gap_assoc_rightoperationresultbound + S (pfp_value_assoc_right) = (p)) /\ ((exists pfa_offset_left_assoc_rightoperationresultcongruence pfa_offset_right_assoc_rightoperationresultcongruence. ((pfp_left_assoc_right) + (pfp_right_assoc_right)) + (p) * pfa_offset_left_assoc_rightoperationresultcongruence = (pfp_value_assoc_right) + (p) * pfa_offset_right_assoc_rightoperationresultcongruence)))))))))))))))) -> (forall mdr_i_pfp_assoc_result mdr_a_pfp_assoc_result. (exists mdr_gap_pfp_assoc_resultb. mdr_gap_pfp_assoc_resultb + S (mdr_i_pfp_assoc_result) = (l)) -> (((exists ff_h_mdr_pfp_assoc_resulto. ff_h_mdr_pfp_assoc_resulto + S (mdr_a_pfp_assoc_result) = S ((S (mdr_i_pfp_assoc_result)) * uc)) /\ exists ff_q_mdr_pfp_assoc_resulto. ub = ff_q_mdr_pfp_assoc_resulto * S ((S (mdr_i_pfp_assoc_result)) * uc) + (mdr_a_pfp_assoc_result))) -> (((exists ff_h_mdr_pfp_assoc_resultn. ff_h_mdr_pfp_assoc_resultn + S (mdr_a_pfp_assoc_result) = S ((S (mdr_i_pfp_assoc_result)) * vc)) /\ exists ff_q_mdr_pfp_assoc_resultn. vb = ff_q_mdr_pfp_assoc_resultn * S ((S (mdr_i_pfp_assoc_result)) * vc) + (mdr_a_pfp_assoc_result))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro xb
  9. intro xc
  10. intro yb
  11. intro yc
  12. intro ub
  13. intro uc
  14. intro vb
  15. intro vc
  16. intro l
  17. intro hab
  18. intro hleft
  19. intro hbc
  20. intro hright
  21. intro i
  22. intro r
  23. intro hi
  24. intro hr
  25. have entry_a : exists z. (((exists ff_h_pfp_assoc_choicea. ff_h_pfp_assoc_choicea + S (z) = S ((S (i)) * ac)) /\ exists ff_q_pfp_assoc_choicea. ab = ff_q_pfp_assoc_choicea * S ((S (i)) * ac) + (z)))
  26. specialize beta_at_exists (ab)
  27. specialize beta_at_exists (ac)
  28. specialize beta_at_exists (i)
  29. apply beta_at_exists
  30. cases entry_a
  31. have entry_b : exists z. (((exists ff_h_pfp_assoc_choiceb. ff_h_pfp_assoc_choiceb + S (z) = S ((S (i)) * bc)) /\ exists ff_q_pfp_assoc_choiceb. bb = ff_q_pfp_assoc_choiceb * S ((S (i)) * bc) + (z)))
  32. specialize beta_at_exists (bb)
  33. specialize beta_at_exists (bc)
  34. specialize beta_at_exists (i)
  35. apply beta_at_exists
  36. cases entry_b
  37. have entry_c : exists z. (((exists ff_h_pfp_assoc_choicec. ff_h_pfp_assoc_choicec + S (z) = S ((S (i)) * cc)) /\ exists ff_q_pfp_assoc_choicec. cb = ff_q_pfp_assoc_choicec * S ((S (i)) * cc) + (z)))
  38. specialize beta_at_exists (cb)
  39. specialize beta_at_exists (cc)
  40. specialize beta_at_exists (i)
  41. apply beta_at_exists
  42. cases entry_c
  43. have entry_x : exists z. (((exists ff_h_pfp_assoc_choicex. ff_h_pfp_assoc_choicex + S (z) = S ((S (i)) * xc)) /\ exists ff_q_pfp_assoc_choicex. xb = ff_q_pfp_assoc_choicex * S ((S (i)) * xc) + (z)))
  44. specialize beta_at_exists (xb)
  45. specialize beta_at_exists (xc)
  46. specialize beta_at_exists (i)
  47. apply beta_at_exists
  48. cases entry_x
  49. have entry_y : exists z. (((exists ff_h_pfp_assoc_choicey. ff_h_pfp_assoc_choicey + S (z) = S ((S (i)) * yc)) /\ exists ff_q_pfp_assoc_choicey. yb = ff_q_pfp_assoc_choicey * S ((S (i)) * yc) + (z)))
  50. specialize beta_at_exists (yb)
  51. specialize beta_at_exists (yc)
  52. specialize beta_at_exists (i)
  53. apply beta_at_exists
  54. cases entry_y
  55. have entry_v : exists z. (((exists ff_h_pfp_assoc_choicev. ff_h_pfp_assoc_choicev + S (z) = S ((S (i)) * vc)) /\ exists ff_q_pfp_assoc_choicev. vb = ff_q_pfp_assoc_choicev * S ((S (i)) * vc) + (z)))
  56. specialize beta_at_exists (vb)
  57. specialize beta_at_exists (vc)
  58. specialize beta_at_exists (i)
  59. apply beta_at_exists
  60. cases entry_v
  61. have heq : r=x5
  62. specialize prime_field_add_associative (p)
  63. specialize prime_field_add_associative (x)
  64. specialize prime_field_add_associative (x1)
  65. specialize prime_field_add_associative (x2)
  66. specialize prime_field_add_associative (x3)
  67. specialize prime_field_add_associative (x4)
  68. specialize prime_field_add_associative (r)
  69. specialize prime_field_add_associative (x5)
  70. apply prime_field_add_associative
  71. specialize prime_field_polynomial_add_entry (p)
  72. specialize prime_field_polynomial_add_entry (ab)
  73. specialize prime_field_polynomial_add_entry (ac)
  74. specialize prime_field_polynomial_add_entry (bb)
  75. specialize prime_field_polynomial_add_entry (bc)
  76. specialize prime_field_polynomial_add_entry (xb)
  77. specialize prime_field_polynomial_add_entry (xc)
  78. specialize prime_field_polynomial_add_entry (l)
  79. specialize prime_field_polynomial_add_entry (i)
  80. specialize prime_field_polynomial_add_entry (x)
  81. specialize prime_field_polynomial_add_entry (x1)
  82. specialize prime_field_polynomial_add_entry (x3)
  83. apply prime_field_polynomial_add_entry
  84. exact hab
  85. exact hi
  86. exact entry_a_witness
  87. exact entry_b_witness
  88. exact entry_x_witness
  89. specialize prime_field_polynomial_add_entry (p)
  90. specialize prime_field_polynomial_add_entry (xb)
  91. specialize prime_field_polynomial_add_entry (xc)
  92. specialize prime_field_polynomial_add_entry (cb)
  93. specialize prime_field_polynomial_add_entry (cc)
  94. specialize prime_field_polynomial_add_entry (ub)
  95. specialize prime_field_polynomial_add_entry (uc)
  96. specialize prime_field_polynomial_add_entry (l)
  97. specialize prime_field_polynomial_add_entry (i)
  98. specialize prime_field_polynomial_add_entry (x3)
  99. specialize prime_field_polynomial_add_entry (x2)
  100. specialize prime_field_polynomial_add_entry (r)
  101. apply prime_field_polynomial_add_entry
  102. exact hleft
  103. exact hi
  104. exact entry_x_witness
  105. exact entry_c_witness
  106. exact hr
  107. specialize prime_field_polynomial_add_entry (p)
  108. specialize prime_field_polynomial_add_entry (bb)
  109. specialize prime_field_polynomial_add_entry (bc)
  110. specialize prime_field_polynomial_add_entry (cb)
  111. specialize prime_field_polynomial_add_entry (cc)
  112. specialize prime_field_polynomial_add_entry (yb)
  113. specialize prime_field_polynomial_add_entry (yc)
  114. specialize prime_field_polynomial_add_entry (l)
  115. specialize prime_field_polynomial_add_entry (i)
  116. specialize prime_field_polynomial_add_entry (x1)
  117. specialize prime_field_polynomial_add_entry (x2)
  118. specialize prime_field_polynomial_add_entry (x4)
  119. apply prime_field_polynomial_add_entry
  120. exact hbc
  121. exact hi
  122. exact entry_b_witness
  123. exact entry_c_witness
  124. exact entry_y_witness
  125. specialize prime_field_polynomial_add_entry (p)
  126. specialize prime_field_polynomial_add_entry (ab)
  127. specialize prime_field_polynomial_add_entry (ac)
  128. specialize prime_field_polynomial_add_entry (yb)
  129. specialize prime_field_polynomial_add_entry (yc)
  130. specialize prime_field_polynomial_add_entry (vb)
  131. specialize prime_field_polynomial_add_entry (vc)
  132. specialize prime_field_polynomial_add_entry (l)
  133. specialize prime_field_polynomial_add_entry (i)
  134. specialize prime_field_polynomial_add_entry (x)
  135. specialize prime_field_polynomial_add_entry (x4)
  136. specialize prime_field_polynomial_add_entry (x5)
  137. apply prime_field_polynomial_add_entry
  138. exact hright
  139. exact hi
  140. exact entry_a_witness
  141. exact entry_y_witness
  142. exact entry_v_witness
  143. rewrite heq
  144. rewrite heq
  145. exact entry_v_witness
prime_field_polynomial_suffix_bounded · unchanged support, not a new admission
forall p b c L t d e M. L=t+M -> (forall fom_index_pfp_suffix_input_coefficients. (exists fom_gap_pfp_suffix_input_coefficients_index_bound. fom_gap_pfp_suffix_input_coefficients_index_bound + S (fom_index_pfp_suffix_input_coefficients) = L) -> exists fom_value_pfp_suffix_input_coefficients. ((((exists fom_beta_height_pfp_suffix_input_coefficients_entry. fom_beta_height_pfp_suffix_input_coefficients_entry + S (fom_value_pfp_suffix_input_coefficients) = S ((S (fom_index_pfp_suffix_input_coefficients)) * c)) /\ exists fom_beta_quotient_pfp_suffix_input_coefficients_entry. b = fom_beta_quotient_pfp_suffix_input_coefficients_entry * S ((S (fom_index_pfp_suffix_input_coefficients)) * c) + (fom_value_pfp_suffix_input_coefficients))) /\ (exists fom_gap_pfp_suffix_input_coefficients_value_bound. fom_gap_pfp_suffix_input_coefficients_value_bound + S (fom_value_pfp_suffix_input_coefficients) = p))) -> (forall pftrim_index_suffix_bounded pftrim_value_suffix_bounded. (exists pfa_gap_suffix_boundedbound. pfa_gap_suffix_boundedbound + S (pftrim_index_suffix_bounded) = (M)) -> (((exists ff_h_pfp_suffix_boundedsource. ff_h_pfp_suffix_boundedsource + S (pftrim_value_suffix_bounded) = S ((S ((t)+pftrim_index_suffix_bounded)) * c)) /\ exists ff_q_pfp_suffix_boundedsource. b = ff_q_pfp_suffix_boundedsource * S ((S ((t)+pftrim_index_suffix_bounded)) * c) + (pftrim_value_suffix_bounded))) -> (((exists ff_h_pfp_suffix_boundedoutput. ff_h_pfp_suffix_boundedoutput + S (pftrim_value_suffix_bounded) = S ((S (pftrim_index_suffix_bounded)) * e)) /\ exists ff_q_pfp_suffix_boundedoutput. d = ff_q_pfp_suffix_boundedoutput * S ((S (pftrim_index_suffix_bounded)) * e) + (pftrim_value_suffix_bounded)))) -> (forall fom_index_pfp_suffix_output_coefficients. (exists fom_gap_pfp_suffix_output_coefficients_index_bound. fom_gap_pfp_suffix_output_coefficients_index_bound + S (fom_index_pfp_suffix_output_coefficients) = M) -> exists fom_value_pfp_suffix_output_coefficients. ((((exists fom_beta_height_pfp_suffix_output_coefficients_entry. fom_beta_height_pfp_suffix_output_coefficients_entry + S (fom_value_pfp_suffix_output_coefficients) = S ((S (fom_index_pfp_suffix_output_coefficients)) * e)) /\ exists fom_beta_quotient_pfp_suffix_output_coefficients_entry. d = fom_beta_quotient_pfp_suffix_output_coefficients_entry * S ((S (fom_index_pfp_suffix_output_coefficients)) * e) + (fom_value_pfp_suffix_output_coefficients))) /\ (exists fom_gap_pfp_suffix_output_coefficients_value_bound. fom_gap_pfp_suffix_output_coefficients_value_bound + S (fom_value_pfp_suffix_output_coefficients) = p)))
  1. intro p
  2. intro b
  3. intro c
  4. intro L
  5. intro t
  6. intro d
  7. intro e
  8. intro M
  9. intro hlen
  10. intro hc
  11. intro hs
  12. intro i
  13. intro hi
  14. have hshift : exists pfa_gap_suffix_shift_bound. pfa_gap_suffix_shift_bound + S (t+i) = (L)
  15. rewrite hlen
  16. specialize matrix_recursive_lt_add_left (i)
  17. specialize matrix_recursive_lt_add_left (M)
  18. specialize matrix_recursive_lt_add_left (t)
  19. apply matrix_recursive_lt_add_left
  20. exact hi
  21. have ha : exists a. ((((exists ff_h_pfp_suffix_bounded_source. ff_h_pfp_suffix_bounded_source + S (a) = S ((S (t+i)) * c)) /\ exists ff_q_pfp_suffix_bounded_source. b = ff_q_pfp_suffix_bounded_source * S ((S (t+i)) * c) + (a))) /\ ((exists pfa_gap_suffix_bounded_value. pfa_gap_suffix_bounded_value + S (a) = (p))))
  22. specialize hc (t+i)
  23. apply hc
  24. exact hshift
  25. cases ha
  26. cases ha_witness
  27. exists x
  28. split
  29. specialize hs (i)
  30. specialize hs (x)
  31. apply hs
  32. exact hi
  33. exact ha_witness_left
  34. exact ha_witness_right
prime_field_polynomial_trim_output_coefficients · unchanged support, not a new admission
forall p b c L t d e M. ((((L)=(t)+(M)) /\ (((forall fom_index_pfp_trim_bounded_sourceinput. (exists fom_gap_pfp_trim_bounded_sourceinput_index_bound. fom_gap_pfp_trim_bounded_sourceinput_index_bound + S (fom_index_pfp_trim_bounded_sourceinput) = L) -> exists fom_value_pfp_trim_bounded_sourceinput. ((((exists fom_beta_height_pfp_trim_bounded_sourceinput_entry. fom_beta_height_pfp_trim_bounded_sourceinput_entry + S (fom_value_pfp_trim_bounded_sourceinput) = S ((S (fom_index_pfp_trim_bounded_sourceinput)) * c)) /\ exists fom_beta_quotient_pfp_trim_bounded_sourceinput_entry. b = fom_beta_quotient_pfp_trim_bounded_sourceinput_entry * S ((S (fom_index_pfp_trim_bounded_sourceinput)) * c) + (fom_value_pfp_trim_bounded_sourceinput))) /\ (exists fom_gap_pfp_trim_bounded_sourceinput_value_bound. fom_gap_pfp_trim_bounded_sourceinput_value_bound + S (fom_value_pfp_trim_bounded_sourceinput) = p))) /\ (((forall pfp_repeat_index_trim_bounded_sourceremoved. (exists pfa_gap_trim_bounded_sourceremovedindex. pfa_gap_trim_bounded_sourceremovedindex + S (pfp_repeat_index_trim_bounded_sourceremoved) = (t)) -> (((exists ff_h_pfp_trim_bounded_sourceremovedentry. ff_h_pfp_trim_bounded_sourceremovedentry + S (0) = S ((S (pfp_repeat_index_trim_bounded_sourceremoved)) * c)) /\ exists ff_q_pfp_trim_bounded_sourceremovedentry. b = ff_q_pfp_trim_bounded_sourceremovedentry * S ((S (pfp_repeat_index_trim_bounded_sourceremoved)) * c) + (0)))) /\ (((forall pftrim_index_trim_bounded_sourcesuffix pftrim_value_trim_bounded_sourcesuffix. (exists pfa_gap_trim_bounded_sourcesuffixbound. pfa_gap_trim_bounded_sourcesuffixbound + S (pftrim_index_trim_bounded_sourcesuffix) = (M)) -> (((exists ff_h_pfp_trim_bounded_sourcesuffixsource. ff_h_pfp_trim_bounded_sourcesuffixsource + S (pftrim_value_trim_bounded_sourcesuffix) = S ((S ((t)+pftrim_index_trim_bounded_sourcesuffix)) * c)) /\ exists ff_q_pfp_trim_bounded_sourcesuffixsource. b = ff_q_pfp_trim_bounded_sourcesuffixsource * S ((S ((t)+pftrim_index_trim_bounded_sourcesuffix)) * c) + (pftrim_value_trim_bounded_sourcesuffix))) -> (((exists ff_h_pfp_trim_bounded_sourcesuffixoutput. ff_h_pfp_trim_bounded_sourcesuffixoutput + S (pftrim_value_trim_bounded_sourcesuffix) = S ((S (pftrim_index_trim_bounded_sourcesuffix)) * e)) /\ exists ff_q_pfp_trim_bounded_sourcesuffixoutput. d = ff_q_pfp_trim_bounded_sourcesuffixoutput * S ((S (pftrim_index_trim_bounded_sourcesuffix)) * e) + (pftrim_value_trim_bounded_sourcesuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_trim_bounded_sourcenormal. ((((exists ff_h_pfp_trim_bounded_sourcenormalentry. ff_h_pfp_trim_bounded_sourcenormalentry + S (pftrim_leading_trim_bounded_sourcenormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_trim_bounded_sourcenormalentry. d = ff_q_pfp_trim_bounded_sourcenormalentry * S ((S (0)) * e) + (pftrim_leading_trim_bounded_sourcenormal))) /\ ((~(pftrim_leading_trim_bounded_sourcenormal=0))))))))))))))) -> (forall fom_index_pfp_trim_bounded_result. (exists fom_gap_pfp_trim_bounded_result_index_bound. fom_gap_pfp_trim_bounded_result_index_bound + S (fom_index_pfp_trim_bounded_result) = M) -> exists fom_value_pfp_trim_bounded_result. ((((exists fom_beta_height_pfp_trim_bounded_result_entry. fom_beta_height_pfp_trim_bounded_result_entry + S (fom_value_pfp_trim_bounded_result) = S ((S (fom_index_pfp_trim_bounded_result)) * e)) /\ exists fom_beta_quotient_pfp_trim_bounded_result_entry. d = fom_beta_quotient_pfp_trim_bounded_result_entry * S ((S (fom_index_pfp_trim_bounded_result)) * e) + (fom_value_pfp_trim_bounded_result))) /\ (exists fom_gap_pfp_trim_bounded_result_value_bound. fom_gap_pfp_trim_bounded_result_value_bound + S (fom_value_pfp_trim_bounded_result) = p)))
  1. intro p
  2. intro b
  3. intro c
  4. intro L
  5. intro t
  6. intro d
  7. intro e
  8. intro M
  9. intro h
  10. cases h
  11. cases h_right
  12. cases h_right_right
  13. cases h_right_right_right
  14. specialize prime_field_polynomial_suffix_bounded (p)
  15. specialize prime_field_polynomial_suffix_bounded (b)
  16. specialize prime_field_polynomial_suffix_bounded (c)
  17. specialize prime_field_polynomial_suffix_bounded (L)
  18. specialize prime_field_polynomial_suffix_bounded (t)
  19. specialize prime_field_polynomial_suffix_bounded (d)
  20. specialize prime_field_polynomial_suffix_bounded (e)
  21. specialize prime_field_polynomial_suffix_bounded (M)
  22. apply prime_field_polynomial_suffix_bounded
  23. exact h_left
  24. exact h_right_left
  25. exact h_right_right_right_left
prime_field_polynomial_zero_suffix_left_pad · unchanged support, not a new admission
forall b c L t d e. (forall pfp_repeat_index_suffix_to_pad_zero. (exists pfa_gap_suffix_to_pad_zeroindex. pfa_gap_suffix_to_pad_zeroindex + S (pfp_repeat_index_suffix_to_pad_zero) = (t)) -> (((exists ff_h_pfp_suffix_to_pad_zeroentry. ff_h_pfp_suffix_to_pad_zeroentry + S (0) = S ((S (pfp_repeat_index_suffix_to_pad_zero)) * e)) /\ exists ff_q_pfp_suffix_to_pad_zeroentry. d = ff_q_pfp_suffix_to_pad_zeroentry * S ((S (pfp_repeat_index_suffix_to_pad_zero)) * e) + (0)))) -> (forall pftrim_index_suffix_to_pad_suffix pftrim_value_suffix_to_pad_suffix. (exists pfa_gap_suffix_to_pad_suffixbound. pfa_gap_suffix_to_pad_suffixbound + S (pftrim_index_suffix_to_pad_suffix) = (L)) -> (((exists ff_h_pfp_suffix_to_pad_suffixsource. ff_h_pfp_suffix_to_pad_suffixsource + S (pftrim_value_suffix_to_pad_suffix) = S ((S ((t)+pftrim_index_suffix_to_pad_suffix)) * e)) /\ exists ff_q_pfp_suffix_to_pad_suffixsource. d = ff_q_pfp_suffix_to_pad_suffixsource * S ((S ((t)+pftrim_index_suffix_to_pad_suffix)) * e) + (pftrim_value_suffix_to_pad_suffix))) -> (((exists ff_h_pfp_suffix_to_pad_suffixoutput. ff_h_pfp_suffix_to_pad_suffixoutput + S (pftrim_value_suffix_to_pad_suffix) = S ((S (pftrim_index_suffix_to_pad_suffix)) * c)) /\ exists ff_q_pfp_suffix_to_pad_suffixoutput. b = ff_q_pfp_suffix_to_pad_suffixoutput * S ((S (pftrim_index_suffix_to_pad_suffix)) * c) + (pftrim_value_suffix_to_pad_suffix)))) -> (((forall pfp_repeat_index_suffix_to_pad_resultzeros. (exists pfa_gap_suffix_to_pad_resultzerosindex. pfa_gap_suffix_to_pad_resultzerosindex + S (pfp_repeat_index_suffix_to_pad_resultzeros) = (t)) -> (((exists ff_h_pfp_suffix_to_pad_resultzerosentry. ff_h_pfp_suffix_to_pad_resultzerosentry + S (0) = S ((S (pfp_repeat_index_suffix_to_pad_resultzeros)) * e)) /\ exists ff_q_pfp_suffix_to_pad_resultzerosentry. d = ff_q_pfp_suffix_to_pad_resultzerosentry * S ((S (pfp_repeat_index_suffix_to_pad_resultzeros)) * e) + (0)))) /\ ((forall pfrep_index_suffix_to_pad_result pfrep_value_suffix_to_pad_result. (exists pfa_gap_suffix_to_pad_resultbound. pfa_gap_suffix_to_pad_resultbound + S (pfrep_index_suffix_to_pad_result) = (L)) -> (((exists ff_h_pfp_suffix_to_pad_resultinput. ff_h_pfp_suffix_to_pad_resultinput + S (pfrep_value_suffix_to_pad_result) = S ((S (pfrep_index_suffix_to_pad_result)) * c)) /\ exists ff_q_pfp_suffix_to_pad_resultinput. b = ff_q_pfp_suffix_to_pad_resultinput * S ((S (pfrep_index_suffix_to_pad_result)) * c) + (pfrep_value_suffix_to_pad_result))) -> (((exists ff_h_pfp_suffix_to_pad_resultoutput. ff_h_pfp_suffix_to_pad_resultoutput + S (pfrep_value_suffix_to_pad_result) = S ((S ((t)+pfrep_index_suffix_to_pad_result)) * e)) /\ exists ff_q_pfp_suffix_to_pad_resultoutput. d = ff_q_pfp_suffix_to_pad_resultoutput * S ((S ((t)+pfrep_index_suffix_to_pad_result)) * e) + (pfrep_value_suffix_to_pad_result)))))))
  1. intro b
  2. intro c
  3. intro L
  4. intro t
  5. intro d
  6. intro e
  7. intro hz
  8. intro hs
  9. split
  10. exact hz
  11. intro i
  12. intro a
  13. intro hi
  14. intro ha
  15. have hv : exists r. (((exists ff_h_pfp_suffix_to_pad_choice. ff_h_pfp_suffix_to_pad_choice + S (r) = S ((S (t+i)) * e)) /\ exists ff_q_pfp_suffix_to_pad_choice. d = ff_q_pfp_suffix_to_pad_choice * S ((S (t+i)) * e) + (r)))
  16. specialize beta_at_exists (d)
  17. specialize beta_at_exists (e)
  18. specialize beta_at_exists (t+i)
  19. apply beta_at_exists
  20. cases hv
  21. have heq : x=a
  22. specialize beta_at_unique (b)
  23. specialize beta_at_unique (c)
  24. specialize beta_at_unique (i)
  25. specialize beta_at_unique (x)
  26. specialize beta_at_unique (a)
  27. apply beta_at_unique
  28. specialize hs (i)
  29. specialize hs (x)
  30. apply hs
  31. exact hi
  32. exact hv_witness
  33. exact ha
  34. rewrite heq at hv_witness
  35. rewrite heq at hv_witness
  36. exact hv_witness
prime_field_polynomial_trim_left_pad · unchanged support, not a new admission
forall p b c L t d e M. ((((L)=(t)+(M)) /\ (((forall fom_index_pfp_trim_to_pad_sourceinput. (exists fom_gap_pfp_trim_to_pad_sourceinput_index_bound. fom_gap_pfp_trim_to_pad_sourceinput_index_bound + S (fom_index_pfp_trim_to_pad_sourceinput) = L) -> exists fom_value_pfp_trim_to_pad_sourceinput. ((((exists fom_beta_height_pfp_trim_to_pad_sourceinput_entry. fom_beta_height_pfp_trim_to_pad_sourceinput_entry + S (fom_value_pfp_trim_to_pad_sourceinput) = S ((S (fom_index_pfp_trim_to_pad_sourceinput)) * c)) /\ exists fom_beta_quotient_pfp_trim_to_pad_sourceinput_entry. b = fom_beta_quotient_pfp_trim_to_pad_sourceinput_entry * S ((S (fom_index_pfp_trim_to_pad_sourceinput)) * c) + (fom_value_pfp_trim_to_pad_sourceinput))) /\ (exists fom_gap_pfp_trim_to_pad_sourceinput_value_bound. fom_gap_pfp_trim_to_pad_sourceinput_value_bound + S (fom_value_pfp_trim_to_pad_sourceinput) = p))) /\ (((forall pfp_repeat_index_trim_to_pad_sourceremoved. (exists pfa_gap_trim_to_pad_sourceremovedindex. pfa_gap_trim_to_pad_sourceremovedindex + S (pfp_repeat_index_trim_to_pad_sourceremoved) = (t)) -> (((exists ff_h_pfp_trim_to_pad_sourceremovedentry. ff_h_pfp_trim_to_pad_sourceremovedentry + S (0) = S ((S (pfp_repeat_index_trim_to_pad_sourceremoved)) * c)) /\ exists ff_q_pfp_trim_to_pad_sourceremovedentry. b = ff_q_pfp_trim_to_pad_sourceremovedentry * S ((S (pfp_repeat_index_trim_to_pad_sourceremoved)) * c) + (0)))) /\ (((forall pftrim_index_trim_to_pad_sourcesuffix pftrim_value_trim_to_pad_sourcesuffix. (exists pfa_gap_trim_to_pad_sourcesuffixbound. pfa_gap_trim_to_pad_sourcesuffixbound + S (pftrim_index_trim_to_pad_sourcesuffix) = (M)) -> (((exists ff_h_pfp_trim_to_pad_sourcesuffixsource. ff_h_pfp_trim_to_pad_sourcesuffixsource + S (pftrim_value_trim_to_pad_sourcesuffix) = S ((S ((t)+pftrim_index_trim_to_pad_sourcesuffix)) * c)) /\ exists ff_q_pfp_trim_to_pad_sourcesuffixsource. b = ff_q_pfp_trim_to_pad_sourcesuffixsource * S ((S ((t)+pftrim_index_trim_to_pad_sourcesuffix)) * c) + (pftrim_value_trim_to_pad_sourcesuffix))) -> (((exists ff_h_pfp_trim_to_pad_sourcesuffixoutput. ff_h_pfp_trim_to_pad_sourcesuffixoutput + S (pftrim_value_trim_to_pad_sourcesuffix) = S ((S (pftrim_index_trim_to_pad_sourcesuffix)) * e)) /\ exists ff_q_pfp_trim_to_pad_sourcesuffixoutput. d = ff_q_pfp_trim_to_pad_sourcesuffixoutput * S ((S (pftrim_index_trim_to_pad_sourcesuffix)) * e) + (pftrim_value_trim_to_pad_sourcesuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_trim_to_pad_sourcenormal. ((((exists ff_h_pfp_trim_to_pad_sourcenormalentry. ff_h_pfp_trim_to_pad_sourcenormalentry + S (pftrim_leading_trim_to_pad_sourcenormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_trim_to_pad_sourcenormalentry. d = ff_q_pfp_trim_to_pad_sourcenormalentry * S ((S (0)) * e) + (pftrim_leading_trim_to_pad_sourcenormal))) /\ ((~(pftrim_leading_trim_to_pad_sourcenormal=0))))))))))))))) -> (((forall pfp_repeat_index_trim_to_pad_resultzeros. (exists pfa_gap_trim_to_pad_resultzerosindex. pfa_gap_trim_to_pad_resultzerosindex + S (pfp_repeat_index_trim_to_pad_resultzeros) = (t)) -> (((exists ff_h_pfp_trim_to_pad_resultzerosentry. ff_h_pfp_trim_to_pad_resultzerosentry + S (0) = S ((S (pfp_repeat_index_trim_to_pad_resultzeros)) * c)) /\ exists ff_q_pfp_trim_to_pad_resultzerosentry. b = ff_q_pfp_trim_to_pad_resultzerosentry * S ((S (pfp_repeat_index_trim_to_pad_resultzeros)) * c) + (0)))) /\ ((forall pfrep_index_trim_to_pad_result pfrep_value_trim_to_pad_result. (exists pfa_gap_trim_to_pad_resultbound. pfa_gap_trim_to_pad_resultbound + S (pfrep_index_trim_to_pad_result) = (M)) -> (((exists ff_h_pfp_trim_to_pad_resultinput. ff_h_pfp_trim_to_pad_resultinput + S (pfrep_value_trim_to_pad_result) = S ((S (pfrep_index_trim_to_pad_result)) * e)) /\ exists ff_q_pfp_trim_to_pad_resultinput. d = ff_q_pfp_trim_to_pad_resultinput * S ((S (pfrep_index_trim_to_pad_result)) * e) + (pfrep_value_trim_to_pad_result))) -> (((exists ff_h_pfp_trim_to_pad_resultoutput. ff_h_pfp_trim_to_pad_resultoutput + S (pfrep_value_trim_to_pad_result) = S ((S ((t)+pfrep_index_trim_to_pad_result)) * c)) /\ exists ff_q_pfp_trim_to_pad_resultoutput. b = ff_q_pfp_trim_to_pad_resultoutput * S ((S ((t)+pfrep_index_trim_to_pad_result)) * c) + (pfrep_value_trim_to_pad_result)))))))
  1. intro p
  2. intro b
  3. intro c
  4. intro L
  5. intro t
  6. intro d
  7. intro e
  8. intro M
  9. intro h
  10. cases h
  11. cases h_right
  12. cases h_right_right
  13. cases h_right_right_right
  14. specialize prime_field_polynomial_zero_suffix_left_pad (d)
  15. specialize prime_field_polynomial_zero_suffix_left_pad (e)
  16. specialize prime_field_polynomial_zero_suffix_left_pad (M)
  17. specialize prime_field_polynomial_zero_suffix_left_pad (t)
  18. specialize prime_field_polynomial_zero_suffix_left_pad (b)
  19. specialize prime_field_polynomial_zero_suffix_left_pad (c)
  20. apply prime_field_polynomial_zero_suffix_left_pad
  21. exact h_right_right_left
  22. exact h_right_right_right_left
prime_field_polynomial_trim_equivalent · unchanged support, not a new admission
forall p b c L t d e M. ((((L)=(t)+(M)) /\ (((forall fom_index_pfp_trim_equivalence_sourceinput. (exists fom_gap_pfp_trim_equivalence_sourceinput_index_bound. fom_gap_pfp_trim_equivalence_sourceinput_index_bound + S (fom_index_pfp_trim_equivalence_sourceinput) = L) -> exists fom_value_pfp_trim_equivalence_sourceinput. ((((exists fom_beta_height_pfp_trim_equivalence_sourceinput_entry. fom_beta_height_pfp_trim_equivalence_sourceinput_entry + S (fom_value_pfp_trim_equivalence_sourceinput) = S ((S (fom_index_pfp_trim_equivalence_sourceinput)) * c)) /\ exists fom_beta_quotient_pfp_trim_equivalence_sourceinput_entry. b = fom_beta_quotient_pfp_trim_equivalence_sourceinput_entry * S ((S (fom_index_pfp_trim_equivalence_sourceinput)) * c) + (fom_value_pfp_trim_equivalence_sourceinput))) /\ (exists fom_gap_pfp_trim_equivalence_sourceinput_value_bound. fom_gap_pfp_trim_equivalence_sourceinput_value_bound + S (fom_value_pfp_trim_equivalence_sourceinput) = p))) /\ (((forall pfp_repeat_index_trim_equivalence_sourceremoved. (exists pfa_gap_trim_equivalence_sourceremovedindex. pfa_gap_trim_equivalence_sourceremovedindex + S (pfp_repeat_index_trim_equivalence_sourceremoved) = (t)) -> (((exists ff_h_pfp_trim_equivalence_sourceremovedentry. ff_h_pfp_trim_equivalence_sourceremovedentry + S (0) = S ((S (pfp_repeat_index_trim_equivalence_sourceremoved)) * c)) /\ exists ff_q_pfp_trim_equivalence_sourceremovedentry. b = ff_q_pfp_trim_equivalence_sourceremovedentry * S ((S (pfp_repeat_index_trim_equivalence_sourceremoved)) * c) + (0)))) /\ (((forall pftrim_index_trim_equivalence_sourcesuffix pftrim_value_trim_equivalence_sourcesuffix. (exists pfa_gap_trim_equivalence_sourcesuffixbound. pfa_gap_trim_equivalence_sourcesuffixbound + S (pftrim_index_trim_equivalence_sourcesuffix) = (M)) -> (((exists ff_h_pfp_trim_equivalence_sourcesuffixsource. ff_h_pfp_trim_equivalence_sourcesuffixsource + S (pftrim_value_trim_equivalence_sourcesuffix) = S ((S ((t)+pftrim_index_trim_equivalence_sourcesuffix)) * c)) /\ exists ff_q_pfp_trim_equivalence_sourcesuffixsource. b = ff_q_pfp_trim_equivalence_sourcesuffixsource * S ((S ((t)+pftrim_index_trim_equivalence_sourcesuffix)) * c) + (pftrim_value_trim_equivalence_sourcesuffix))) -> (((exists ff_h_pfp_trim_equivalence_sourcesuffixoutput. ff_h_pfp_trim_equivalence_sourcesuffixoutput + S (pftrim_value_trim_equivalence_sourcesuffix) = S ((S (pftrim_index_trim_equivalence_sourcesuffix)) * e)) /\ exists ff_q_pfp_trim_equivalence_sourcesuffixoutput. d = ff_q_pfp_trim_equivalence_sourcesuffixoutput * S ((S (pftrim_index_trim_equivalence_sourcesuffix)) * e) + (pftrim_value_trim_equivalence_sourcesuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_trim_equivalence_sourcenormal. ((((exists ff_h_pfp_trim_equivalence_sourcenormalentry. ff_h_pfp_trim_equivalence_sourcenormalentry + S (pftrim_leading_trim_equivalence_sourcenormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_trim_equivalence_sourcenormalentry. d = ff_q_pfp_trim_equivalence_sourcenormalentry * S ((S (0)) * e) + (pftrim_leading_trim_equivalence_sourcenormal))) /\ ((~(pftrim_leading_trim_equivalence_sourcenormal=0))))))))))))))) -> (forall pfrep_power_trim_equivalence_result pfrep_left_trim_equivalence_result pfrep_right_trim_equivalence_result. ((exists pfrep_position_trim_equivalence_resultfirst. ((pfrep_position_trim_equivalence_resultfirst+S (pfrep_power_trim_equivalence_result)=(L)) /\ ((((exists ff_h_pfp_trim_equivalence_resultfirstentry. ff_h_pfp_trim_equivalence_resultfirstentry + S (pfrep_left_trim_equivalence_result) = S ((S (pfrep_position_trim_equivalence_resultfirst)) * c)) /\ exists ff_q_pfp_trim_equivalence_resultfirstentry. b = ff_q_pfp_trim_equivalence_resultfirstentry * S ((S (pfrep_position_trim_equivalence_resultfirst)) * c) + (pfrep_left_trim_equivalence_result)))))) \/ (((exists pfrep_gap_trim_equivalence_resultfirstoutside. pfrep_gap_trim_equivalence_resultfirstoutside+(L)=(pfrep_power_trim_equivalence_result)) /\ (((pfrep_left_trim_equivalence_result)=0))))) -> ((exists pfrep_position_trim_equivalence_resultsecond. ((pfrep_position_trim_equivalence_resultsecond+S (pfrep_power_trim_equivalence_result)=(M)) /\ ((((exists ff_h_pfp_trim_equivalence_resultsecondentry. ff_h_pfp_trim_equivalence_resultsecondentry + S (pfrep_right_trim_equivalence_result) = S ((S (pfrep_position_trim_equivalence_resultsecond)) * e)) /\ exists ff_q_pfp_trim_equivalence_resultsecondentry. d = ff_q_pfp_trim_equivalence_resultsecondentry * S ((S (pfrep_position_trim_equivalence_resultsecond)) * e) + (pfrep_right_trim_equivalence_result)))))) \/ (((exists pfrep_gap_trim_equivalence_resultsecondoutside. pfrep_gap_trim_equivalence_resultsecondoutside+(M)=(pfrep_power_trim_equivalence_result)) /\ (((pfrep_right_trim_equivalence_result)=0))))) -> pfrep_left_trim_equivalence_result=pfrep_right_trim_equivalence_result)
  1. intro p
  2. intro b
  3. intro c
  4. intro L
  5. intro t
  6. intro d
  7. intro e
  8. intro M
  9. intro h
  10. have hc : (((L)=(t)+(M)) /\ (((forall fom_index_pfp_trim_equivalence_copyinput. (exists fom_gap_pfp_trim_equivalence_copyinput_index_bound. fom_gap_pfp_trim_equivalence_copyinput_index_bound + S (fom_index_pfp_trim_equivalence_copyinput) = L) -> exists fom_value_pfp_trim_equivalence_copyinput. ((((exists fom_beta_height_pfp_trim_equivalence_copyinput_entry. fom_beta_height_pfp_trim_equivalence_copyinput_entry + S (fom_value_pfp_trim_equivalence_copyinput) = S ((S (fom_index_pfp_trim_equivalence_copyinput)) * c)) /\ exists fom_beta_quotient_pfp_trim_equivalence_copyinput_entry. b = fom_beta_quotient_pfp_trim_equivalence_copyinput_entry * S ((S (fom_index_pfp_trim_equivalence_copyinput)) * c) + (fom_value_pfp_trim_equivalence_copyinput))) /\ (exists fom_gap_pfp_trim_equivalence_copyinput_value_bound. fom_gap_pfp_trim_equivalence_copyinput_value_bound + S (fom_value_pfp_trim_equivalence_copyinput) = p))) /\ (((forall pfp_repeat_index_trim_equivalence_copyremoved. (exists pfa_gap_trim_equivalence_copyremovedindex. pfa_gap_trim_equivalence_copyremovedindex + S (pfp_repeat_index_trim_equivalence_copyremoved) = (t)) -> (((exists ff_h_pfp_trim_equivalence_copyremovedentry. ff_h_pfp_trim_equivalence_copyremovedentry + S (0) = S ((S (pfp_repeat_index_trim_equivalence_copyremoved)) * c)) /\ exists ff_q_pfp_trim_equivalence_copyremovedentry. b = ff_q_pfp_trim_equivalence_copyremovedentry * S ((S (pfp_repeat_index_trim_equivalence_copyremoved)) * c) + (0)))) /\ (((forall pftrim_index_trim_equivalence_copysuffix pftrim_value_trim_equivalence_copysuffix. (exists pfa_gap_trim_equivalence_copysuffixbound. pfa_gap_trim_equivalence_copysuffixbound + S (pftrim_index_trim_equivalence_copysuffix) = (M)) -> (((exists ff_h_pfp_trim_equivalence_copysuffixsource. ff_h_pfp_trim_equivalence_copysuffixsource + S (pftrim_value_trim_equivalence_copysuffix) = S ((S ((t)+pftrim_index_trim_equivalence_copysuffix)) * c)) /\ exists ff_q_pfp_trim_equivalence_copysuffixsource. b = ff_q_pfp_trim_equivalence_copysuffixsource * S ((S ((t)+pftrim_index_trim_equivalence_copysuffix)) * c) + (pftrim_value_trim_equivalence_copysuffix))) -> (((exists ff_h_pfp_trim_equivalence_copysuffixoutput. ff_h_pfp_trim_equivalence_copysuffixoutput + S (pftrim_value_trim_equivalence_copysuffix) = S ((S (pftrim_index_trim_equivalence_copysuffix)) * e)) /\ exists ff_q_pfp_trim_equivalence_copysuffixoutput. d = ff_q_pfp_trim_equivalence_copysuffixoutput * S ((S (pftrim_index_trim_equivalence_copysuffix)) * e) + (pftrim_value_trim_equivalence_copysuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_trim_equivalence_copynormal. ((((exists ff_h_pfp_trim_equivalence_copynormalentry. ff_h_pfp_trim_equivalence_copynormalentry + S (pftrim_leading_trim_equivalence_copynormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_trim_equivalence_copynormalentry. d = ff_q_pfp_trim_equivalence_copynormalentry * S ((S (0)) * e) + (pftrim_leading_trim_equivalence_copynormal))) /\ ((~(pftrim_leading_trim_equivalence_copynormal=0))))))))))))))
  11. exact h
  12. cases hc
  13. cases hc_right
  14. cases hc_right_right
  15. cases hc_right_right_right
  16. rewrite hc_left
  17. rewrite hc_left
  18. specialize prime_field_polynomial_equivalent_symmetric (d)
  19. specialize prime_field_polynomial_equivalent_symmetric (e)
  20. specialize prime_field_polynomial_equivalent_symmetric (M)
  21. specialize prime_field_polynomial_equivalent_symmetric (b)
  22. specialize prime_field_polynomial_equivalent_symmetric (c)
  23. specialize prime_field_polynomial_equivalent_symmetric (t+M)
  24. apply prime_field_polynomial_equivalent_symmetric
  25. specialize prime_field_polynomial_left_pad_equivalent (d)
  26. specialize prime_field_polynomial_left_pad_equivalent (e)
  27. specialize prime_field_polynomial_left_pad_equivalent (M)
  28. specialize prime_field_polynomial_left_pad_equivalent (t)
  29. specialize prime_field_polynomial_left_pad_equivalent (b)
  30. specialize prime_field_polynomial_left_pad_equivalent (c)
  31. apply prime_field_polynomial_left_pad_equivalent
  32. specialize prime_field_polynomial_trim_left_pad (p)
  33. specialize prime_field_polynomial_trim_left_pad (b)
  34. specialize prime_field_polynomial_trim_left_pad (c)
  35. specialize prime_field_polynomial_trim_left_pad (L)
  36. specialize prime_field_polynomial_trim_left_pad (t)
  37. specialize prime_field_polynomial_trim_left_pad (d)
  38. specialize prime_field_polynomial_trim_left_pad (e)
  39. specialize prime_field_polynomial_trim_left_pad (M)
  40. apply prime_field_polynomial_trim_left_pad
  41. exact h
prime_field_convolution_prefix_empty_left_zero · unchanged support, not a new admission
forall p qb qc bb bc M pb pc L. ~(p=0) -> (forall pfc_index_division_empty_product_source. (exists pfa_gap_division_empty_product_sourcebound. pfa_gap_division_empty_product_sourcebound + S (pfc_index_division_empty_product_source) = (L)) -> exists pfc_value_division_empty_product_source. ((((exists ff_h_pfp_division_empty_product_sourceentry. ff_h_pfp_division_empty_product_sourceentry + S (pfc_value_division_empty_product_source) = S ((S (pfc_index_division_empty_product_source)) * pc)) /\ exists ff_q_pfp_division_empty_product_sourceentry. pb = ff_q_pfp_division_empty_product_sourceentry * S ((S (pfc_index_division_empty_product_source)) * pc) + (pfc_value_division_empty_product_source))) /\ ((exists pfc_terms_code_division_empty_product_sourcecoefficient pfc_terms_scale_division_empty_product_sourcecoefficient pfc_natural_sum_division_empty_product_sourcecoefficient. ((forall pfc_index_division_empty_product_sourcecoefficientdiagonal. (exists pfa_gap_division_empty_product_sourcecoefficientdiagonalbound. pfa_gap_division_empty_product_sourcecoefficientdiagonalbound + S (pfc_index_division_empty_product_sourcecoefficientdiagonal) = (S (pfc_index_division_empty_product_source))) -> exists pfc_value_division_empty_product_sourcecoefficientdiagonal. ((((exists ff_h_pfp_division_empty_product_sourcecoefficientdiagonalentry. ff_h_pfp_division_empty_product_sourcecoefficientdiagonalentry + S (pfc_value_division_empty_product_sourcecoefficientdiagonal) = S ((S (pfc_index_division_empty_product_sourcecoefficientdiagonal)) * pfc_terms_scale_division_empty_product_sourcecoefficient)) /\ exists ff_q_pfp_division_empty_product_sourcecoefficientdiagonalentry. pfc_terms_code_division_empty_product_sourcecoefficient = ff_q_pfp_division_empty_product_sourcecoefficientdiagonalentry * S ((S (pfc_index_division_empty_product_sourcecoefficientdiagonal)) * pfc_terms_scale_division_empty_product_sourcecoefficient) + (pfc_value_division_empty_product_sourcecoefficientdiagonal))) /\ ((exists pfc_complement_division_empty_product_sourcecoefficientdiagonalterm pfc_left_division_empty_product_sourcecoefficientdiagonalterm pfc_right_division_empty_product_sourcecoefficientdiagonalterm. (((pfc_index_division_empty_product_sourcecoefficientdiagonal)+pfc_complement_division_empty_product_sourcecoefficientdiagonalterm=(pfc_index_division_empty_product_source)) /\ ((((((exists pfa_gap_division_empty_product_sourcecoefficientdiagonaltermleftinside. pfa_gap_division_empty_product_sourcecoefficientdiagonaltermleftinside + S (pfc_index_division_empty_product_sourcecoefficientdiagonal) = (0)) /\ ((((exists ff_h_pfp_division_empty_product_sourcecoefficientdiagonaltermleftentry. ff_h_pfp_division_empty_product_sourcecoefficientdiagonaltermleftentry + S (pfc_left_division_empty_product_sourcecoefficientdiagonalterm) = S ((S (pfc_index_division_empty_product_sourcecoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_empty_product_sourcecoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_empty_product_sourcecoefficientdiagonaltermleftentry * S ((S (pfc_index_division_empty_product_sourcecoefficientdiagonal)) * qc) + (pfc_left_division_empty_product_sourcecoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_empty_product_sourcecoefficientdiagonaltermleftoutside. pfc_gap_division_empty_product_sourcecoefficientdiagonaltermleftoutside+(0)=(pfc_index_division_empty_product_sourcecoefficientdiagonal)) /\ (((pfc_left_division_empty_product_sourcecoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_empty_product_sourcecoefficientdiagonaltermrightinside. pfa_gap_division_empty_product_sourcecoefficientdiagonaltermrightinside + S (pfc_complement_division_empty_product_sourcecoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_empty_product_sourcecoefficientdiagonaltermrightentry. ff_h_pfp_division_empty_product_sourcecoefficientdiagonaltermrightentry + S (pfc_right_division_empty_product_sourcecoefficientdiagonalterm) = S ((S (pfc_complement_division_empty_product_sourcecoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_empty_product_sourcecoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_empty_product_sourcecoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_empty_product_sourcecoefficientdiagonalterm)) * bc) + (pfc_right_division_empty_product_sourcecoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_empty_product_sourcecoefficientdiagonaltermrightoutside. pfc_gap_division_empty_product_sourcecoefficientdiagonaltermrightoutside+(M)=(pfc_complement_division_empty_product_sourcecoefficientdiagonalterm)) /\ (((pfc_right_division_empty_product_sourcecoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_empty_product_sourcecoefficientdiagonal)=pfc_left_division_empty_product_sourcecoefficientdiagonalterm*pfc_right_division_empty_product_sourcecoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_empty_product_sourcecoefficientsum fs_v_pfc_division_empty_product_sourcecoefficientsum. ((((exists fs_h_pfc_division_empty_product_sourcecoefficientsum_body_start. fs_h_pfc_division_empty_product_sourcecoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_empty_product_sourcecoefficientsum)) /\ exists fs_q_pfc_division_empty_product_sourcecoefficientsum_body_start. fs_u_pfc_division_empty_product_sourcecoefficientsum = fs_q_pfc_division_empty_product_sourcecoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_empty_product_sourcecoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_empty_product_sourcecoefficientsum_body_terminal. fs_h_pfc_division_empty_product_sourcecoefficientsum_body_terminal + S (pfc_natural_sum_division_empty_product_sourcecoefficient) = S ((S (S (pfc_index_division_empty_product_source))) * fs_v_pfc_division_empty_product_sourcecoefficientsum)) /\ exists fs_q_pfc_division_empty_product_sourcecoefficientsum_body_terminal. fs_u_pfc_division_empty_product_sourcecoefficientsum = fs_q_pfc_division_empty_product_sourcecoefficientsum_body_terminal * S ((S (S (pfc_index_division_empty_product_source))) * fs_v_pfc_division_empty_product_sourcecoefficientsum) + (pfc_natural_sum_division_empty_product_sourcecoefficient))) /\ forall fs_i_pfc_division_empty_product_sourcecoefficientsum_body_steps. (exists fs_lt_pfc_division_empty_product_sourcecoefficientsum_body_steps_bound. fs_lt_pfc_division_empty_product_sourcecoefficientsum_body_steps_bound + S fs_i_pfc_division_empty_product_sourcecoefficientsum_body_steps = S (pfc_index_division_empty_product_source)) -> exists fs_a_pfc_division_empty_product_sourcecoefficientsum_body_steps fs_r_pfc_division_empty_product_sourcecoefficientsum_body_steps fs_s_pfc_division_empty_product_sourcecoefficientsum_body_steps. ((((exists fs_h_pfc_division_empty_product_sourcecoefficientsum_body_steps_summand. fs_h_pfc_division_empty_product_sourcecoefficientsum_body_steps_summand + S (fs_a_pfc_division_empty_product_sourcecoefficientsum_body_steps) = S ((S (fs_i_pfc_division_empty_product_sourcecoefficientsum_body_steps)) * pfc_terms_scale_division_empty_product_sourcecoefficient)) /\ exists fs_q_pfc_division_empty_product_sourcecoefficientsum_body_steps_summand. pfc_terms_code_division_empty_product_sourcecoefficient = fs_q_pfc_division_empty_product_sourcecoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_empty_product_sourcecoefficientsum_body_steps)) * pfc_terms_scale_division_empty_product_sourcecoefficient) + (fs_a_pfc_division_empty_product_sourcecoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_empty_product_sourcecoefficientsum_body_steps_partial. fs_h_pfc_division_empty_product_sourcecoefficientsum_body_steps_partial + S (fs_r_pfc_division_empty_product_sourcecoefficientsum_body_steps) = S ((S (fs_i_pfc_division_empty_product_sourcecoefficientsum_body_steps)) * fs_v_pfc_division_empty_product_sourcecoefficientsum)) /\ exists fs_q_pfc_division_empty_product_sourcecoefficientsum_body_steps_partial. fs_u_pfc_division_empty_product_sourcecoefficientsum = fs_q_pfc_division_empty_product_sourcecoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_empty_product_sourcecoefficientsum_body_steps)) * fs_v_pfc_division_empty_product_sourcecoefficientsum) + (fs_r_pfc_division_empty_product_sourcecoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_empty_product_sourcecoefficientsum_body_steps_successor. fs_h_pfc_division_empty_product_sourcecoefficientsum_body_steps_successor + S (fs_s_pfc_division_empty_product_sourcecoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_empty_product_sourcecoefficientsum_body_steps)) * fs_v_pfc_division_empty_product_sourcecoefficientsum)) /\ exists fs_q_pfc_division_empty_product_sourcecoefficientsum_body_steps_successor. fs_u_pfc_division_empty_product_sourcecoefficientsum = fs_q_pfc_division_empty_product_sourcecoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_empty_product_sourcecoefficientsum_body_steps)) * fs_v_pfc_division_empty_product_sourcecoefficientsum) + (fs_s_pfc_division_empty_product_sourcecoefficientsum_body_steps))) /\ fs_s_pfc_division_empty_product_sourcecoefficientsum_body_steps = fs_r_pfc_division_empty_product_sourcecoefficientsum_body_steps + fs_a_pfc_division_empty_product_sourcecoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_empty_product_sourcecoefficientresiduebound. pfa_gap_division_empty_product_sourcecoefficientresiduebound + S (pfc_value_division_empty_product_source) = (p)) /\ ((exists pfa_offset_left_division_empty_product_sourcecoefficientresiduecongruence pfa_offset_right_division_empty_product_sourcecoefficientresiduecongruence. (pfc_natural_sum_division_empty_product_sourcecoefficient) + (p) * pfa_offset_left_division_empty_product_sourcecoefficientresiduecongruence = (pfc_value_division_empty_product_source) + (p) * pfa_offset_right_division_empty_product_sourcecoefficientresiduecongruence)))))))))))) -> (forall pfp_repeat_index_division_empty_product_result. (exists pfa_gap_division_empty_product_resultindex. pfa_gap_division_empty_product_resultindex + S (pfp_repeat_index_division_empty_product_result) = (L)) -> (((exists ff_h_pfp_division_empty_product_resultentry. ff_h_pfp_division_empty_product_resultentry + S (0) = S ((S (pfp_repeat_index_division_empty_product_result)) * pc)) /\ exists ff_q_pfp_division_empty_product_resultentry. pb = ff_q_pfp_division_empty_product_resultentry * S ((S (pfp_repeat_index_division_empty_product_result)) * pc) + (0))))
  1. intro p
  2. intro qb
  3. intro qc
  4. intro bb
  5. intro bc
  6. intro M
  7. intro pb
  8. intro pc
  9. intro L
  10. intro hp
  11. intro h
  12. intro i
  13. intro hi
  14. have hv : exists r. ((((exists ff_h_pfp_division_empty_product_entry. ff_h_pfp_division_empty_product_entry + S (r) = S ((S (i)) * pc)) /\ exists ff_q_pfp_division_empty_product_entry. pb = ff_q_pfp_division_empty_product_entry * S ((S (i)) * pc) + (r))) /\ ((exists pfc_terms_code_division_empty_product_coefficient pfc_terms_scale_division_empty_product_coefficient pfc_natural_sum_division_empty_product_coefficient. ((forall pfc_index_division_empty_product_coefficientdiagonal. (exists pfa_gap_division_empty_product_coefficientdiagonalbound. pfa_gap_division_empty_product_coefficientdiagonalbound + S (pfc_index_division_empty_product_coefficientdiagonal) = (S (i))) -> exists pfc_value_division_empty_product_coefficientdiagonal. ((((exists ff_h_pfp_division_empty_product_coefficientdiagonalentry. ff_h_pfp_division_empty_product_coefficientdiagonalentry + S (pfc_value_division_empty_product_coefficientdiagonal) = S ((S (pfc_index_division_empty_product_coefficientdiagonal)) * pfc_terms_scale_division_empty_product_coefficient)) /\ exists ff_q_pfp_division_empty_product_coefficientdiagonalentry. pfc_terms_code_division_empty_product_coefficient = ff_q_pfp_division_empty_product_coefficientdiagonalentry * S ((S (pfc_index_division_empty_product_coefficientdiagonal)) * pfc_terms_scale_division_empty_product_coefficient) + (pfc_value_division_empty_product_coefficientdiagonal))) /\ ((exists pfc_complement_division_empty_product_coefficientdiagonalterm pfc_left_division_empty_product_coefficientdiagonalterm pfc_right_division_empty_product_coefficientdiagonalterm. (((pfc_index_division_empty_product_coefficientdiagonal)+pfc_complement_division_empty_product_coefficientdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_empty_product_coefficientdiagonaltermleftinside. pfa_gap_division_empty_product_coefficientdiagonaltermleftinside + S (pfc_index_division_empty_product_coefficientdiagonal) = (0)) /\ ((((exists ff_h_pfp_division_empty_product_coefficientdiagonaltermleftentry. ff_h_pfp_division_empty_product_coefficientdiagonaltermleftentry + S (pfc_left_division_empty_product_coefficientdiagonalterm) = S ((S (pfc_index_division_empty_product_coefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_empty_product_coefficientdiagonaltermleftentry. qb = ff_q_pfp_division_empty_product_coefficientdiagonaltermleftentry * S ((S (pfc_index_division_empty_product_coefficientdiagonal)) * qc) + (pfc_left_division_empty_product_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_empty_product_coefficientdiagonaltermleftoutside. pfc_gap_division_empty_product_coefficientdiagonaltermleftoutside+(0)=(pfc_index_division_empty_product_coefficientdiagonal)) /\ (((pfc_left_division_empty_product_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_empty_product_coefficientdiagonaltermrightinside. pfa_gap_division_empty_product_coefficientdiagonaltermrightinside + S (pfc_complement_division_empty_product_coefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_empty_product_coefficientdiagonaltermrightentry. ff_h_pfp_division_empty_product_coefficientdiagonaltermrightentry + S (pfc_right_division_empty_product_coefficientdiagonalterm) = S ((S (pfc_complement_division_empty_product_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_empty_product_coefficientdiagonaltermrightentry. bb = ff_q_pfp_division_empty_product_coefficientdiagonaltermrightentry * S ((S (pfc_complement_division_empty_product_coefficientdiagonalterm)) * bc) + (pfc_right_division_empty_product_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_empty_product_coefficientdiagonaltermrightoutside. pfc_gap_division_empty_product_coefficientdiagonaltermrightoutside+(M)=(pfc_complement_division_empty_product_coefficientdiagonalterm)) /\ (((pfc_right_division_empty_product_coefficientdiagonalterm)=0))))) /\ (((pfc_value_division_empty_product_coefficientdiagonal)=pfc_left_division_empty_product_coefficientdiagonalterm*pfc_right_division_empty_product_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_empty_product_coefficientsum fs_v_pfc_division_empty_product_coefficientsum. ((((exists fs_h_pfc_division_empty_product_coefficientsum_body_start. fs_h_pfc_division_empty_product_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_empty_product_coefficientsum)) /\ exists fs_q_pfc_division_empty_product_coefficientsum_body_start. fs_u_pfc_division_empty_product_coefficientsum = fs_q_pfc_division_empty_product_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_empty_product_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_empty_product_coefficientsum_body_terminal. fs_h_pfc_division_empty_product_coefficientsum_body_terminal + S (pfc_natural_sum_division_empty_product_coefficient) = S ((S (S (i))) * fs_v_pfc_division_empty_product_coefficientsum)) /\ exists fs_q_pfc_division_empty_product_coefficientsum_body_terminal. fs_u_pfc_division_empty_product_coefficientsum = fs_q_pfc_division_empty_product_coefficientsum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_empty_product_coefficientsum) + (pfc_natural_sum_division_empty_product_coefficient))) /\ forall fs_i_pfc_division_empty_product_coefficientsum_body_steps. (exists fs_lt_pfc_division_empty_product_coefficientsum_body_steps_bound. fs_lt_pfc_division_empty_product_coefficientsum_body_steps_bound + S fs_i_pfc_division_empty_product_coefficientsum_body_steps = S (i)) -> exists fs_a_pfc_division_empty_product_coefficientsum_body_steps fs_r_pfc_division_empty_product_coefficientsum_body_steps fs_s_pfc_division_empty_product_coefficientsum_body_steps. ((((exists fs_h_pfc_division_empty_product_coefficientsum_body_steps_summand. fs_h_pfc_division_empty_product_coefficientsum_body_steps_summand + S (fs_a_pfc_division_empty_product_coefficientsum_body_steps) = S ((S (fs_i_pfc_division_empty_product_coefficientsum_body_steps)) * pfc_terms_scale_division_empty_product_coefficient)) /\ exists fs_q_pfc_division_empty_product_coefficientsum_body_steps_summand. pfc_terms_code_division_empty_product_coefficient = fs_q_pfc_division_empty_product_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_empty_product_coefficientsum_body_steps)) * pfc_terms_scale_division_empty_product_coefficient) + (fs_a_pfc_division_empty_product_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_empty_product_coefficientsum_body_steps_partial. fs_h_pfc_division_empty_product_coefficientsum_body_steps_partial + S (fs_r_pfc_division_empty_product_coefficientsum_body_steps) = S ((S (fs_i_pfc_division_empty_product_coefficientsum_body_steps)) * fs_v_pfc_division_empty_product_coefficientsum)) /\ exists fs_q_pfc_division_empty_product_coefficientsum_body_steps_partial. fs_u_pfc_division_empty_product_coefficientsum = fs_q_pfc_division_empty_product_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_empty_product_coefficientsum_body_steps)) * fs_v_pfc_division_empty_product_coefficientsum) + (fs_r_pfc_division_empty_product_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_empty_product_coefficientsum_body_steps_successor. fs_h_pfc_division_empty_product_coefficientsum_body_steps_successor + S (fs_s_pfc_division_empty_product_coefficientsum_body_steps) = S ((S (S fs_i_pfc_division_empty_product_coefficientsum_body_steps)) * fs_v_pfc_division_empty_product_coefficientsum)) /\ exists fs_q_pfc_division_empty_product_coefficientsum_body_steps_successor. fs_u_pfc_division_empty_product_coefficientsum = fs_q_pfc_division_empty_product_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_empty_product_coefficientsum_body_steps)) * fs_v_pfc_division_empty_product_coefficientsum) + (fs_s_pfc_division_empty_product_coefficientsum_body_steps))) /\ fs_s_pfc_division_empty_product_coefficientsum_body_steps = fs_r_pfc_division_empty_product_coefficientsum_body_steps + fs_a_pfc_division_empty_product_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_empty_product_coefficientresiduebound. pfa_gap_division_empty_product_coefficientresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_division_empty_product_coefficientresiduecongruence pfa_offset_right_division_empty_product_coefficientresiduecongruence. (pfc_natural_sum_division_empty_product_coefficient) + (p) * pfa_offset_left_division_empty_product_coefficientresiduecongruence = (r) + (p) * pfa_offset_right_division_empty_product_coefficientresiduecongruence)))))))))))
  15. specialize h (i)
  16. apply h
  17. exact hi
  18. cases hv
  19. cases hv_witness
  20. have hz : x=0
  21. specialize prime_field_convolution_coefficient_zero_left (p)
  22. specialize prime_field_convolution_coefficient_zero_left (qb)
  23. specialize prime_field_convolution_coefficient_zero_left (qc)
  24. specialize prime_field_convolution_coefficient_zero_left (0)
  25. specialize prime_field_convolution_coefficient_zero_left (bb)
  26. specialize prime_field_convolution_coefficient_zero_left (bc)
  27. specialize prime_field_convolution_coefficient_zero_left (M)
  28. specialize prime_field_convolution_coefficient_zero_left (i)
  29. specialize prime_field_convolution_coefficient_zero_left (x)
  30. apply prime_field_convolution_coefficient_zero_left
  31. exact hp
  32. intro j
  33. intro hj
  34. exfalso
  35. specialize lt_not_le (j)
  36. specialize lt_not_le (0)
  37. apply lt_not_le
  38. exact hj
  39. specialize zero_le (j)
  40. apply zero_le
  41. exact hv_witness_right
  42. rewrite hz at hv_witness_left
  43. rewrite hz at hv_witness_left
  44. exact hv_witness_left
prime_field_polynomial_quotient_prefix_bounded · unchanged support, not a new admission
forall p k ab ac bb bc M qb qc N. (forall pfd_index_division_bound_source. (exists pfa_gap_division_bound_sourcebound. pfa_gap_division_bound_sourcebound + S (pfd_index_division_bound_source) = (N)) -> exists pfd_value_division_bound_source. ((((exists ff_h_pfp_division_bound_sourceentry. ff_h_pfp_division_bound_sourceentry + S (pfd_value_division_bound_source) = S ((S (pfd_index_division_bound_source)) * qc)) /\ exists ff_q_pfp_division_bound_sourceentry. qb = ff_q_pfp_division_bound_sourceentry * S ((S (pfd_index_division_bound_source)) * qc) + (pfd_value_division_bound_source))) /\ ((exists pfd_input_division_bound_sourcestep pfd_previous_division_bound_sourcestep pfd_difference_division_bound_sourcestep. ((((exists ff_h_pfp_division_bound_sourcestepinput. ff_h_pfp_division_bound_sourcestepinput + S (pfd_input_division_bound_sourcestep) = S ((S (pfd_index_division_bound_source)) * ac)) /\ exists ff_q_pfp_division_bound_sourcestepinput. ab = ff_q_pfp_division_bound_sourcestepinput * S ((S (pfd_index_division_bound_source)) * ac) + (pfd_input_division_bound_sourcestep))) /\ (((exists pfc_terms_code_division_bound_sourcestepprevious pfc_terms_scale_division_bound_sourcestepprevious pfc_natural_sum_division_bound_sourcestepprevious. ((forall pfc_index_division_bound_sourcesteppreviousdiagonal. (exists pfa_gap_division_bound_sourcesteppreviousdiagonalbound. pfa_gap_division_bound_sourcesteppreviousdiagonalbound + S (pfc_index_division_bound_sourcesteppreviousdiagonal) = (S (pfd_index_division_bound_source))) -> exists pfc_value_division_bound_sourcesteppreviousdiagonal. ((((exists ff_h_pfp_division_bound_sourcesteppreviousdiagonalentry. ff_h_pfp_division_bound_sourcesteppreviousdiagonalentry + S (pfc_value_division_bound_sourcesteppreviousdiagonal) = S ((S (pfc_index_division_bound_sourcesteppreviousdiagonal)) * pfc_terms_scale_division_bound_sourcestepprevious)) /\ exists ff_q_pfp_division_bound_sourcesteppreviousdiagonalentry. pfc_terms_code_division_bound_sourcestepprevious = ff_q_pfp_division_bound_sourcesteppreviousdiagonalentry * S ((S (pfc_index_division_bound_sourcesteppreviousdiagonal)) * pfc_terms_scale_division_bound_sourcestepprevious) + (pfc_value_division_bound_sourcesteppreviousdiagonal))) /\ ((exists pfc_complement_division_bound_sourcesteppreviousdiagonalterm pfc_left_division_bound_sourcesteppreviousdiagonalterm pfc_right_division_bound_sourcesteppreviousdiagonalterm. (((pfc_index_division_bound_sourcesteppreviousdiagonal)+pfc_complement_division_bound_sourcesteppreviousdiagonalterm=(pfd_index_division_bound_source)) /\ ((((((exists pfa_gap_division_bound_sourcesteppreviousdiagonaltermleftinside. pfa_gap_division_bound_sourcesteppreviousdiagonaltermleftinside + S (pfc_index_division_bound_sourcesteppreviousdiagonal) = (pfd_index_division_bound_source)) /\ ((((exists ff_h_pfp_division_bound_sourcesteppreviousdiagonaltermleftentry. ff_h_pfp_division_bound_sourcesteppreviousdiagonaltermleftentry + S (pfc_left_division_bound_sourcesteppreviousdiagonalterm) = S ((S (pfc_index_division_bound_sourcesteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_bound_sourcesteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_bound_sourcesteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_bound_sourcesteppreviousdiagonal)) * qc) + (pfc_left_division_bound_sourcesteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_bound_sourcesteppreviousdiagonaltermleftoutside. pfc_gap_division_bound_sourcesteppreviousdiagonaltermleftoutside+(pfd_index_division_bound_source)=(pfc_index_division_bound_sourcesteppreviousdiagonal)) /\ (((pfc_left_division_bound_sourcesteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_bound_sourcesteppreviousdiagonaltermrightinside. pfa_gap_division_bound_sourcesteppreviousdiagonaltermrightinside + S (pfc_complement_division_bound_sourcesteppreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_bound_sourcesteppreviousdiagonaltermrightentry. ff_h_pfp_division_bound_sourcesteppreviousdiagonaltermrightentry + S (pfc_right_division_bound_sourcesteppreviousdiagonalterm) = S ((S (pfc_complement_division_bound_sourcesteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_bound_sourcesteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_bound_sourcesteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_bound_sourcesteppreviousdiagonalterm)) * bc) + (pfc_right_division_bound_sourcesteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_bound_sourcesteppreviousdiagonaltermrightoutside. pfc_gap_division_bound_sourcesteppreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_bound_sourcesteppreviousdiagonalterm)) /\ (((pfc_right_division_bound_sourcesteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_bound_sourcesteppreviousdiagonal)=pfc_left_division_bound_sourcesteppreviousdiagonalterm*pfc_right_division_bound_sourcesteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_bound_sourcestepprevioussum fs_v_pfc_division_bound_sourcestepprevioussum. ((((exists fs_h_pfc_division_bound_sourcestepprevioussum_body_start. fs_h_pfc_division_bound_sourcestepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_bound_sourcestepprevioussum)) /\ exists fs_q_pfc_division_bound_sourcestepprevioussum_body_start. fs_u_pfc_division_bound_sourcestepprevioussum = fs_q_pfc_division_bound_sourcestepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_bound_sourcestepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_bound_sourcestepprevioussum_body_terminal. fs_h_pfc_division_bound_sourcestepprevioussum_body_terminal + S (pfc_natural_sum_division_bound_sourcestepprevious) = S ((S (S (pfd_index_division_bound_source))) * fs_v_pfc_division_bound_sourcestepprevioussum)) /\ exists fs_q_pfc_division_bound_sourcestepprevioussum_body_terminal. fs_u_pfc_division_bound_sourcestepprevioussum = fs_q_pfc_division_bound_sourcestepprevioussum_body_terminal * S ((S (S (pfd_index_division_bound_source))) * fs_v_pfc_division_bound_sourcestepprevioussum) + (pfc_natural_sum_division_bound_sourcestepprevious))) /\ forall fs_i_pfc_division_bound_sourcestepprevioussum_body_steps. (exists fs_lt_pfc_division_bound_sourcestepprevioussum_body_steps_bound. fs_lt_pfc_division_bound_sourcestepprevioussum_body_steps_bound + S fs_i_pfc_division_bound_sourcestepprevioussum_body_steps = S (pfd_index_division_bound_source)) -> exists fs_a_pfc_division_bound_sourcestepprevioussum_body_steps fs_r_pfc_division_bound_sourcestepprevioussum_body_steps fs_s_pfc_division_bound_sourcestepprevioussum_body_steps. ((((exists fs_h_pfc_division_bound_sourcestepprevioussum_body_steps_summand. fs_h_pfc_division_bound_sourcestepprevioussum_body_steps_summand + S (fs_a_pfc_division_bound_sourcestepprevioussum_body_steps) = S ((S (fs_i_pfc_division_bound_sourcestepprevioussum_body_steps)) * pfc_terms_scale_division_bound_sourcestepprevious)) /\ exists fs_q_pfc_division_bound_sourcestepprevioussum_body_steps_summand. pfc_terms_code_division_bound_sourcestepprevious = fs_q_pfc_division_bound_sourcestepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_bound_sourcestepprevioussum_body_steps)) * pfc_terms_scale_division_bound_sourcestepprevious) + (fs_a_pfc_division_bound_sourcestepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_bound_sourcestepprevioussum_body_steps_partial. fs_h_pfc_division_bound_sourcestepprevioussum_body_steps_partial + S (fs_r_pfc_division_bound_sourcestepprevioussum_body_steps) = S ((S (fs_i_pfc_division_bound_sourcestepprevioussum_body_steps)) * fs_v_pfc_division_bound_sourcestepprevioussum)) /\ exists fs_q_pfc_division_bound_sourcestepprevioussum_body_steps_partial. fs_u_pfc_division_bound_sourcestepprevioussum = fs_q_pfc_division_bound_sourcestepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_bound_sourcestepprevioussum_body_steps)) * fs_v_pfc_division_bound_sourcestepprevioussum) + (fs_r_pfc_division_bound_sourcestepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_bound_sourcestepprevioussum_body_steps_successor. fs_h_pfc_division_bound_sourcestepprevioussum_body_steps_successor + S (fs_s_pfc_division_bound_sourcestepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_bound_sourcestepprevioussum_body_steps)) * fs_v_pfc_division_bound_sourcestepprevioussum)) /\ exists fs_q_pfc_division_bound_sourcestepprevioussum_body_steps_successor. fs_u_pfc_division_bound_sourcestepprevioussum = fs_q_pfc_division_bound_sourcestepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_bound_sourcestepprevioussum_body_steps)) * fs_v_pfc_division_bound_sourcestepprevioussum) + (fs_s_pfc_division_bound_sourcestepprevioussum_body_steps))) /\ fs_s_pfc_division_bound_sourcestepprevioussum_body_steps = fs_r_pfc_division_bound_sourcestepprevioussum_body_steps + fs_a_pfc_division_bound_sourcestepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_bound_sourcesteppreviousresiduebound. pfa_gap_division_bound_sourcesteppreviousresiduebound + S (pfd_previous_division_bound_sourcestep) = (p)) /\ ((exists pfa_offset_left_division_bound_sourcesteppreviousresiduecongruence pfa_offset_right_division_bound_sourcesteppreviousresiduecongruence. (pfc_natural_sum_division_bound_sourcestepprevious) + (p) * pfa_offset_left_division_bound_sourcesteppreviousresiduecongruence = (pfd_previous_division_bound_sourcestep) + (p) * pfa_offset_right_division_bound_sourcesteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_bound_sourcestepsubtractleft. pfa_gap_division_bound_sourcestepsubtractleft + S (pfd_previous_division_bound_sourcestep) = (p)) /\ (((exists pfa_gap_division_bound_sourcestepsubtractright. pfa_gap_division_bound_sourcestepsubtractright + S (pfd_difference_division_bound_sourcestep) = (p)) /\ ((((exists pfa_gap_division_bound_sourcestepsubtractresultbound. pfa_gap_division_bound_sourcestepsubtractresultbound + S (pfd_input_division_bound_sourcestep) = (p)) /\ ((exists pfa_offset_left_division_bound_sourcestepsubtractresultcongruence pfa_offset_right_division_bound_sourcestepsubtractresultcongruence. ((pfd_previous_division_bound_sourcestep) + (pfd_difference_division_bound_sourcestep)) + (p) * pfa_offset_left_division_bound_sourcestepsubtractresultcongruence = (pfd_input_division_bound_sourcestep) + (p) * pfa_offset_right_division_bound_sourcestepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_bound_sourcestepmultiplyleft. pfa_gap_division_bound_sourcestepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_bound_sourcestepmultiplyright. pfa_gap_division_bound_sourcestepmultiplyright + S (pfd_difference_division_bound_sourcestep) = (p)) /\ ((((exists pfa_gap_division_bound_sourcestepmultiplyresultbound. pfa_gap_division_bound_sourcestepmultiplyresultbound + S (pfd_value_division_bound_source) = (p)) /\ ((exists pfa_offset_left_division_bound_sourcestepmultiplyresultcongruence pfa_offset_right_division_bound_sourcestepmultiplyresultcongruence. ((k) * (pfd_difference_division_bound_sourcestep)) + (p) * pfa_offset_left_division_bound_sourcestepmultiplyresultcongruence = (pfd_value_division_bound_source) + (p) * pfa_offset_right_division_bound_sourcestepmultiplyresultcongruence))))))))))))))))))) -> (forall fom_index_pfp_division_bound_result. (exists fom_gap_pfp_division_bound_result_index_bound. fom_gap_pfp_division_bound_result_index_bound + S (fom_index_pfp_division_bound_result) = N) -> exists fom_value_pfp_division_bound_result. ((((exists fom_beta_height_pfp_division_bound_result_entry. fom_beta_height_pfp_division_bound_result_entry + S (fom_value_pfp_division_bound_result) = S ((S (fom_index_pfp_division_bound_result)) * qc)) /\ exists fom_beta_quotient_pfp_division_bound_result_entry. qb = fom_beta_quotient_pfp_division_bound_result_entry * S ((S (fom_index_pfp_division_bound_result)) * qc) + (fom_value_pfp_division_bound_result))) /\ (exists fom_gap_pfp_division_bound_result_value_bound. fom_gap_pfp_division_bound_result_value_bound + S (fom_value_pfp_division_bound_result) = p)))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro M
  8. intro qb
  9. intro qc
  10. intro N
  11. intro h
  12. intro i
  13. intro hi
  14. have hv : exists q. ((((exists ff_h_pfp_division_bound_entry. ff_h_pfp_division_bound_entry + S (q) = S ((S (i)) * qc)) /\ exists ff_q_pfp_division_bound_entry. qb = ff_q_pfp_division_bound_entry * S ((S (i)) * qc) + (q))) /\ ((exists pfd_input_division_bound_step pfd_previous_division_bound_step pfd_difference_division_bound_step. ((((exists ff_h_pfp_division_bound_stepinput. ff_h_pfp_division_bound_stepinput + S (pfd_input_division_bound_step) = S ((S (i)) * ac)) /\ exists ff_q_pfp_division_bound_stepinput. ab = ff_q_pfp_division_bound_stepinput * S ((S (i)) * ac) + (pfd_input_division_bound_step))) /\ (((exists pfc_terms_code_division_bound_stepprevious pfc_terms_scale_division_bound_stepprevious pfc_natural_sum_division_bound_stepprevious. ((forall pfc_index_division_bound_steppreviousdiagonal. (exists pfa_gap_division_bound_steppreviousdiagonalbound. pfa_gap_division_bound_steppreviousdiagonalbound + S (pfc_index_division_bound_steppreviousdiagonal) = (S (i))) -> exists pfc_value_division_bound_steppreviousdiagonal. ((((exists ff_h_pfp_division_bound_steppreviousdiagonalentry. ff_h_pfp_division_bound_steppreviousdiagonalentry + S (pfc_value_division_bound_steppreviousdiagonal) = S ((S (pfc_index_division_bound_steppreviousdiagonal)) * pfc_terms_scale_division_bound_stepprevious)) /\ exists ff_q_pfp_division_bound_steppreviousdiagonalentry. pfc_terms_code_division_bound_stepprevious = ff_q_pfp_division_bound_steppreviousdiagonalentry * S ((S (pfc_index_division_bound_steppreviousdiagonal)) * pfc_terms_scale_division_bound_stepprevious) + (pfc_value_division_bound_steppreviousdiagonal))) /\ ((exists pfc_complement_division_bound_steppreviousdiagonalterm pfc_left_division_bound_steppreviousdiagonalterm pfc_right_division_bound_steppreviousdiagonalterm. (((pfc_index_division_bound_steppreviousdiagonal)+pfc_complement_division_bound_steppreviousdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_bound_steppreviousdiagonaltermleftinside. pfa_gap_division_bound_steppreviousdiagonaltermleftinside + S (pfc_index_division_bound_steppreviousdiagonal) = (i)) /\ ((((exists ff_h_pfp_division_bound_steppreviousdiagonaltermleftentry. ff_h_pfp_division_bound_steppreviousdiagonaltermleftentry + S (pfc_left_division_bound_steppreviousdiagonalterm) = S ((S (pfc_index_division_bound_steppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_bound_steppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_bound_steppreviousdiagonaltermleftentry * S ((S (pfc_index_division_bound_steppreviousdiagonal)) * qc) + (pfc_left_division_bound_steppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_bound_steppreviousdiagonaltermleftoutside. pfc_gap_division_bound_steppreviousdiagonaltermleftoutside+(i)=(pfc_index_division_bound_steppreviousdiagonal)) /\ (((pfc_left_division_bound_steppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_bound_steppreviousdiagonaltermrightinside. pfa_gap_division_bound_steppreviousdiagonaltermrightinside + S (pfc_complement_division_bound_steppreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_bound_steppreviousdiagonaltermrightentry. ff_h_pfp_division_bound_steppreviousdiagonaltermrightentry + S (pfc_right_division_bound_steppreviousdiagonalterm) = S ((S (pfc_complement_division_bound_steppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_bound_steppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_bound_steppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_bound_steppreviousdiagonalterm)) * bc) + (pfc_right_division_bound_steppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_bound_steppreviousdiagonaltermrightoutside. pfc_gap_division_bound_steppreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_bound_steppreviousdiagonalterm)) /\ (((pfc_right_division_bound_steppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_bound_steppreviousdiagonal)=pfc_left_division_bound_steppreviousdiagonalterm*pfc_right_division_bound_steppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_bound_stepprevioussum fs_v_pfc_division_bound_stepprevioussum. ((((exists fs_h_pfc_division_bound_stepprevioussum_body_start. fs_h_pfc_division_bound_stepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_bound_stepprevioussum)) /\ exists fs_q_pfc_division_bound_stepprevioussum_body_start. fs_u_pfc_division_bound_stepprevioussum = fs_q_pfc_division_bound_stepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_bound_stepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_bound_stepprevioussum_body_terminal. fs_h_pfc_division_bound_stepprevioussum_body_terminal + S (pfc_natural_sum_division_bound_stepprevious) = S ((S (S (i))) * fs_v_pfc_division_bound_stepprevioussum)) /\ exists fs_q_pfc_division_bound_stepprevioussum_body_terminal. fs_u_pfc_division_bound_stepprevioussum = fs_q_pfc_division_bound_stepprevioussum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_bound_stepprevioussum) + (pfc_natural_sum_division_bound_stepprevious))) /\ forall fs_i_pfc_division_bound_stepprevioussum_body_steps. (exists fs_lt_pfc_division_bound_stepprevioussum_body_steps_bound. fs_lt_pfc_division_bound_stepprevioussum_body_steps_bound + S fs_i_pfc_division_bound_stepprevioussum_body_steps = S (i)) -> exists fs_a_pfc_division_bound_stepprevioussum_body_steps fs_r_pfc_division_bound_stepprevioussum_body_steps fs_s_pfc_division_bound_stepprevioussum_body_steps. ((((exists fs_h_pfc_division_bound_stepprevioussum_body_steps_summand. fs_h_pfc_division_bound_stepprevioussum_body_steps_summand + S (fs_a_pfc_division_bound_stepprevioussum_body_steps) = S ((S (fs_i_pfc_division_bound_stepprevioussum_body_steps)) * pfc_terms_scale_division_bound_stepprevious)) /\ exists fs_q_pfc_division_bound_stepprevioussum_body_steps_summand. pfc_terms_code_division_bound_stepprevious = fs_q_pfc_division_bound_stepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_bound_stepprevioussum_body_steps)) * pfc_terms_scale_division_bound_stepprevious) + (fs_a_pfc_division_bound_stepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_bound_stepprevioussum_body_steps_partial. fs_h_pfc_division_bound_stepprevioussum_body_steps_partial + S (fs_r_pfc_division_bound_stepprevioussum_body_steps) = S ((S (fs_i_pfc_division_bound_stepprevioussum_body_steps)) * fs_v_pfc_division_bound_stepprevioussum)) /\ exists fs_q_pfc_division_bound_stepprevioussum_body_steps_partial. fs_u_pfc_division_bound_stepprevioussum = fs_q_pfc_division_bound_stepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_bound_stepprevioussum_body_steps)) * fs_v_pfc_division_bound_stepprevioussum) + (fs_r_pfc_division_bound_stepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_bound_stepprevioussum_body_steps_successor. fs_h_pfc_division_bound_stepprevioussum_body_steps_successor + S (fs_s_pfc_division_bound_stepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_bound_stepprevioussum_body_steps)) * fs_v_pfc_division_bound_stepprevioussum)) /\ exists fs_q_pfc_division_bound_stepprevioussum_body_steps_successor. fs_u_pfc_division_bound_stepprevioussum = fs_q_pfc_division_bound_stepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_bound_stepprevioussum_body_steps)) * fs_v_pfc_division_bound_stepprevioussum) + (fs_s_pfc_division_bound_stepprevioussum_body_steps))) /\ fs_s_pfc_division_bound_stepprevioussum_body_steps = fs_r_pfc_division_bound_stepprevioussum_body_steps + fs_a_pfc_division_bound_stepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_bound_steppreviousresiduebound. pfa_gap_division_bound_steppreviousresiduebound + S (pfd_previous_division_bound_step) = (p)) /\ ((exists pfa_offset_left_division_bound_steppreviousresiduecongruence pfa_offset_right_division_bound_steppreviousresiduecongruence. (pfc_natural_sum_division_bound_stepprevious) + (p) * pfa_offset_left_division_bound_steppreviousresiduecongruence = (pfd_previous_division_bound_step) + (p) * pfa_offset_right_division_bound_steppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_bound_stepsubtractleft. pfa_gap_division_bound_stepsubtractleft + S (pfd_previous_division_bound_step) = (p)) /\ (((exists pfa_gap_division_bound_stepsubtractright. pfa_gap_division_bound_stepsubtractright + S (pfd_difference_division_bound_step) = (p)) /\ ((((exists pfa_gap_division_bound_stepsubtractresultbound. pfa_gap_division_bound_stepsubtractresultbound + S (pfd_input_division_bound_step) = (p)) /\ ((exists pfa_offset_left_division_bound_stepsubtractresultcongruence pfa_offset_right_division_bound_stepsubtractresultcongruence. ((pfd_previous_division_bound_step) + (pfd_difference_division_bound_step)) + (p) * pfa_offset_left_division_bound_stepsubtractresultcongruence = (pfd_input_division_bound_step) + (p) * pfa_offset_right_division_bound_stepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_bound_stepmultiplyleft. pfa_gap_division_bound_stepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_bound_stepmultiplyright. pfa_gap_division_bound_stepmultiplyright + S (pfd_difference_division_bound_step) = (p)) /\ ((((exists pfa_gap_division_bound_stepmultiplyresultbound. pfa_gap_division_bound_stepmultiplyresultbound + S (q) = (p)) /\ ((exists pfa_offset_left_division_bound_stepmultiplyresultcongruence pfa_offset_right_division_bound_stepmultiplyresultcongruence. ((k) * (pfd_difference_division_bound_step)) + (p) * pfa_offset_left_division_bound_stepmultiplyresultcongruence = (q) + (p) * pfa_offset_right_division_bound_stepmultiplyresultcongruence))))))))))))))))))
  15. specialize h (i)
  16. apply h
  17. exact hi
  18. cases hv
  19. cases hv_witness
  20. exists x
  21. split
  22. exact hv_witness_left
  23. cases hv_witness_right
  24. cases hv_witness_right_witness
  25. cases hv_witness_right_witness_witness
  26. cases hv_witness_right_witness_witness_witness
  27. cases hv_witness_right_witness_witness_witness_right
  28. cases hv_witness_right_witness_witness_witness_right_right
  29. cases hv_witness_right_witness_witness_witness_right_right_right
  30. cases hv_witness_right_witness_witness_witness_right_right_right_right
  31. cases hv_witness_right_witness_witness_witness_right_right_right_right_right
  32. exact hv_witness_right_witness_witness_witness_right_right_right_right_right_left
polynomial_quotient_length_product · unchanged support, not a new admission
forall L d q. (((((q)=0) /\ ((exists pfc_gap_division_product_length_sourceshort. pfc_gap_division_product_length_sourceshort+(L)=(d))))) \/ (((~((q)=0)) /\ (((q)+(d)=(L)))))) -> ~(q=0) -> (((((q)=0 \/ (S d)=0) /\ (((L)=0)))) \/ (((~((q)=0)) /\ (((~((S d)=0)) /\ (((q)+(S d)=S (L))))))))
  1. intro L
  2. intro d
  3. intro q
  4. intro h
  5. intro hq
  6. cases h
  7. cases h_left
  8. exfalso
  9. apply hq
  10. exact h_left_left
  11. cases h_right
  12. right
  13. split
  14. exact hq
  15. split
  16. intro hz
  17. specialize succ_ne_zero (d)
  18. apply succ_ne_zero
  19. exact hz
  20. trans S (q+d)
  21. simp
  22. congr
  23. exact h_right_right
prime_field_polynomial_quotient_proper_product · unchanged support, not a new admission
forall p k ab ac bb bc d qb qc q pb pc L. (((((q)=0) /\ ((exists pfc_gap_division_product_chosen_lengthshort. pfc_gap_division_product_chosen_lengthshort+(L)=(d))))) \/ (((~((q)=0)) /\ (((q)+(d)=(L)))))) -> ~(q=0) -> (forall fom_index_pfp_division_product_divisor. (exists fom_gap_pfp_division_product_divisor_index_bound. fom_gap_pfp_division_product_divisor_index_bound + S (fom_index_pfp_division_product_divisor) = S d) -> exists fom_value_pfp_division_product_divisor. ((((exists fom_beta_height_pfp_division_product_divisor_entry. fom_beta_height_pfp_division_product_divisor_entry + S (fom_value_pfp_division_product_divisor) = S ((S (fom_index_pfp_division_product_divisor)) * bc)) /\ exists fom_beta_quotient_pfp_division_product_divisor_entry. bb = fom_beta_quotient_pfp_division_product_divisor_entry * S ((S (fom_index_pfp_division_product_divisor)) * bc) + (fom_value_pfp_division_product_divisor))) /\ (exists fom_gap_pfp_division_product_divisor_value_bound. fom_gap_pfp_division_product_divisor_value_bound + S (fom_value_pfp_division_product_divisor) = p))) -> (forall pfd_index_division_product_quotient. (exists pfa_gap_division_product_quotientbound. pfa_gap_division_product_quotientbound + S (pfd_index_division_product_quotient) = (q)) -> exists pfd_value_division_product_quotient. ((((exists ff_h_pfp_division_product_quotiententry. ff_h_pfp_division_product_quotiententry + S (pfd_value_division_product_quotient) = S ((S (pfd_index_division_product_quotient)) * qc)) /\ exists ff_q_pfp_division_product_quotiententry. qb = ff_q_pfp_division_product_quotiententry * S ((S (pfd_index_division_product_quotient)) * qc) + (pfd_value_division_product_quotient))) /\ ((exists pfd_input_division_product_quotientstep pfd_previous_division_product_quotientstep pfd_difference_division_product_quotientstep. ((((exists ff_h_pfp_division_product_quotientstepinput. ff_h_pfp_division_product_quotientstepinput + S (pfd_input_division_product_quotientstep) = S ((S (pfd_index_division_product_quotient)) * ac)) /\ exists ff_q_pfp_division_product_quotientstepinput. ab = ff_q_pfp_division_product_quotientstepinput * S ((S (pfd_index_division_product_quotient)) * ac) + (pfd_input_division_product_quotientstep))) /\ (((exists pfc_terms_code_division_product_quotientstepprevious pfc_terms_scale_division_product_quotientstepprevious pfc_natural_sum_division_product_quotientstepprevious. ((forall pfc_index_division_product_quotientsteppreviousdiagonal. (exists pfa_gap_division_product_quotientsteppreviousdiagonalbound. pfa_gap_division_product_quotientsteppreviousdiagonalbound + S (pfc_index_division_product_quotientsteppreviousdiagonal) = (S (pfd_index_division_product_quotient))) -> exists pfc_value_division_product_quotientsteppreviousdiagonal. ((((exists ff_h_pfp_division_product_quotientsteppreviousdiagonalentry. ff_h_pfp_division_product_quotientsteppreviousdiagonalentry + S (pfc_value_division_product_quotientsteppreviousdiagonal) = S ((S (pfc_index_division_product_quotientsteppreviousdiagonal)) * pfc_terms_scale_division_product_quotientstepprevious)) /\ exists ff_q_pfp_division_product_quotientsteppreviousdiagonalentry. pfc_terms_code_division_product_quotientstepprevious = ff_q_pfp_division_product_quotientsteppreviousdiagonalentry * S ((S (pfc_index_division_product_quotientsteppreviousdiagonal)) * pfc_terms_scale_division_product_quotientstepprevious) + (pfc_value_division_product_quotientsteppreviousdiagonal))) /\ ((exists pfc_complement_division_product_quotientsteppreviousdiagonalterm pfc_left_division_product_quotientsteppreviousdiagonalterm pfc_right_division_product_quotientsteppreviousdiagonalterm. (((pfc_index_division_product_quotientsteppreviousdiagonal)+pfc_complement_division_product_quotientsteppreviousdiagonalterm=(pfd_index_division_product_quotient)) /\ ((((((exists pfa_gap_division_product_quotientsteppreviousdiagonaltermleftinside. pfa_gap_division_product_quotientsteppreviousdiagonaltermleftinside + S (pfc_index_division_product_quotientsteppreviousdiagonal) = (pfd_index_division_product_quotient)) /\ ((((exists ff_h_pfp_division_product_quotientsteppreviousdiagonaltermleftentry. ff_h_pfp_division_product_quotientsteppreviousdiagonaltermleftentry + S (pfc_left_division_product_quotientsteppreviousdiagonalterm) = S ((S (pfc_index_division_product_quotientsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_product_quotientsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_product_quotientsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_product_quotientsteppreviousdiagonal)) * qc) + (pfc_left_division_product_quotientsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_product_quotientsteppreviousdiagonaltermleftoutside. pfc_gap_division_product_quotientsteppreviousdiagonaltermleftoutside+(pfd_index_division_product_quotient)=(pfc_index_division_product_quotientsteppreviousdiagonal)) /\ (((pfc_left_division_product_quotientsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_product_quotientsteppreviousdiagonaltermrightinside. pfa_gap_division_product_quotientsteppreviousdiagonaltermrightinside + S (pfc_complement_division_product_quotientsteppreviousdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_product_quotientsteppreviousdiagonaltermrightentry. ff_h_pfp_division_product_quotientsteppreviousdiagonaltermrightentry + S (pfc_right_division_product_quotientsteppreviousdiagonalterm) = S ((S (pfc_complement_division_product_quotientsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_product_quotientsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_product_quotientsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_product_quotientsteppreviousdiagonalterm)) * bc) + (pfc_right_division_product_quotientsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_product_quotientsteppreviousdiagonaltermrightoutside. pfc_gap_division_product_quotientsteppreviousdiagonaltermrightoutside+(S d)=(pfc_complement_division_product_quotientsteppreviousdiagonalterm)) /\ (((pfc_right_division_product_quotientsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_product_quotientsteppreviousdiagonal)=pfc_left_division_product_quotientsteppreviousdiagonalterm*pfc_right_division_product_quotientsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_product_quotientstepprevioussum fs_v_pfc_division_product_quotientstepprevioussum. ((((exists fs_h_pfc_division_product_quotientstepprevioussum_body_start. fs_h_pfc_division_product_quotientstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_product_quotientstepprevioussum)) /\ exists fs_q_pfc_division_product_quotientstepprevioussum_body_start. fs_u_pfc_division_product_quotientstepprevioussum = fs_q_pfc_division_product_quotientstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_product_quotientstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_product_quotientstepprevioussum_body_terminal. fs_h_pfc_division_product_quotientstepprevioussum_body_terminal + S (pfc_natural_sum_division_product_quotientstepprevious) = S ((S (S (pfd_index_division_product_quotient))) * fs_v_pfc_division_product_quotientstepprevioussum)) /\ exists fs_q_pfc_division_product_quotientstepprevioussum_body_terminal. fs_u_pfc_division_product_quotientstepprevioussum = fs_q_pfc_division_product_quotientstepprevioussum_body_terminal * S ((S (S (pfd_index_division_product_quotient))) * fs_v_pfc_division_product_quotientstepprevioussum) + (pfc_natural_sum_division_product_quotientstepprevious))) /\ forall fs_i_pfc_division_product_quotientstepprevioussum_body_steps. (exists fs_lt_pfc_division_product_quotientstepprevioussum_body_steps_bound. fs_lt_pfc_division_product_quotientstepprevioussum_body_steps_bound + S fs_i_pfc_division_product_quotientstepprevioussum_body_steps = S (pfd_index_division_product_quotient)) -> exists fs_a_pfc_division_product_quotientstepprevioussum_body_steps fs_r_pfc_division_product_quotientstepprevioussum_body_steps fs_s_pfc_division_product_quotientstepprevioussum_body_steps. ((((exists fs_h_pfc_division_product_quotientstepprevioussum_body_steps_summand. fs_h_pfc_division_product_quotientstepprevioussum_body_steps_summand + S (fs_a_pfc_division_product_quotientstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_product_quotientstepprevioussum_body_steps)) * pfc_terms_scale_division_product_quotientstepprevious)) /\ exists fs_q_pfc_division_product_quotientstepprevioussum_body_steps_summand. pfc_terms_code_division_product_quotientstepprevious = fs_q_pfc_division_product_quotientstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_product_quotientstepprevioussum_body_steps)) * pfc_terms_scale_division_product_quotientstepprevious) + (fs_a_pfc_division_product_quotientstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_product_quotientstepprevioussum_body_steps_partial. fs_h_pfc_division_product_quotientstepprevioussum_body_steps_partial + S (fs_r_pfc_division_product_quotientstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_product_quotientstepprevioussum_body_steps)) * fs_v_pfc_division_product_quotientstepprevioussum)) /\ exists fs_q_pfc_division_product_quotientstepprevioussum_body_steps_partial. fs_u_pfc_division_product_quotientstepprevioussum = fs_q_pfc_division_product_quotientstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_product_quotientstepprevioussum_body_steps)) * fs_v_pfc_division_product_quotientstepprevioussum) + (fs_r_pfc_division_product_quotientstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_product_quotientstepprevioussum_body_steps_successor. fs_h_pfc_division_product_quotientstepprevioussum_body_steps_successor + S (fs_s_pfc_division_product_quotientstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_product_quotientstepprevioussum_body_steps)) * fs_v_pfc_division_product_quotientstepprevioussum)) /\ exists fs_q_pfc_division_product_quotientstepprevioussum_body_steps_successor. fs_u_pfc_division_product_quotientstepprevioussum = fs_q_pfc_division_product_quotientstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_product_quotientstepprevioussum_body_steps)) * fs_v_pfc_division_product_quotientstepprevioussum) + (fs_s_pfc_division_product_quotientstepprevioussum_body_steps))) /\ fs_s_pfc_division_product_quotientstepprevioussum_body_steps = fs_r_pfc_division_product_quotientstepprevioussum_body_steps + fs_a_pfc_division_product_quotientstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_product_quotientsteppreviousresiduebound. pfa_gap_division_product_quotientsteppreviousresiduebound + S (pfd_previous_division_product_quotientstep) = (p)) /\ ((exists pfa_offset_left_division_product_quotientsteppreviousresiduecongruence pfa_offset_right_division_product_quotientsteppreviousresiduecongruence. (pfc_natural_sum_division_product_quotientstepprevious) + (p) * pfa_offset_left_division_product_quotientsteppreviousresiduecongruence = (pfd_previous_division_product_quotientstep) + (p) * pfa_offset_right_division_product_quotientsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_product_quotientstepsubtractleft. pfa_gap_division_product_quotientstepsubtractleft + S (pfd_previous_division_product_quotientstep) = (p)) /\ (((exists pfa_gap_division_product_quotientstepsubtractright. pfa_gap_division_product_quotientstepsubtractright + S (pfd_difference_division_product_quotientstep) = (p)) /\ ((((exists pfa_gap_division_product_quotientstepsubtractresultbound. pfa_gap_division_product_quotientstepsubtractresultbound + S (pfd_input_division_product_quotientstep) = (p)) /\ ((exists pfa_offset_left_division_product_quotientstepsubtractresultcongruence pfa_offset_right_division_product_quotientstepsubtractresultcongruence. ((pfd_previous_division_product_quotientstep) + (pfd_difference_division_product_quotientstep)) + (p) * pfa_offset_left_division_product_quotientstepsubtractresultcongruence = (pfd_input_division_product_quotientstep) + (p) * pfa_offset_right_division_product_quotientstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_product_quotientstepmultiplyleft. pfa_gap_division_product_quotientstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_product_quotientstepmultiplyright. pfa_gap_division_product_quotientstepmultiplyright + S (pfd_difference_division_product_quotientstep) = (p)) /\ ((((exists pfa_gap_division_product_quotientstepmultiplyresultbound. pfa_gap_division_product_quotientstepmultiplyresultbound + S (pfd_value_division_product_quotient) = (p)) /\ ((exists pfa_offset_left_division_product_quotientstepmultiplyresultcongruence pfa_offset_right_division_product_quotientstepmultiplyresultcongruence. ((k) * (pfd_difference_division_product_quotientstep)) + (p) * pfa_offset_left_division_product_quotientstepmultiplyresultcongruence = (pfd_value_division_product_quotient) + (p) * pfa_offset_right_division_product_quotientstepmultiplyresultcongruence))))))))))))))))))) -> (forall pfc_index_division_product_ambient. (exists pfa_gap_division_product_ambientbound. pfa_gap_division_product_ambientbound + S (pfc_index_division_product_ambient) = (L)) -> exists pfc_value_division_product_ambient. ((((exists ff_h_pfp_division_product_ambiententry. ff_h_pfp_division_product_ambiententry + S (pfc_value_division_product_ambient) = S ((S (pfc_index_division_product_ambient)) * pc)) /\ exists ff_q_pfp_division_product_ambiententry. pb = ff_q_pfp_division_product_ambiententry * S ((S (pfc_index_division_product_ambient)) * pc) + (pfc_value_division_product_ambient))) /\ ((exists pfc_terms_code_division_product_ambientcoefficient pfc_terms_scale_division_product_ambientcoefficient pfc_natural_sum_division_product_ambientcoefficient. ((forall pfc_index_division_product_ambientcoefficientdiagonal. (exists pfa_gap_division_product_ambientcoefficientdiagonalbound. pfa_gap_division_product_ambientcoefficientdiagonalbound + S (pfc_index_division_product_ambientcoefficientdiagonal) = (S (pfc_index_division_product_ambient))) -> exists pfc_value_division_product_ambientcoefficientdiagonal. ((((exists ff_h_pfp_division_product_ambientcoefficientdiagonalentry. ff_h_pfp_division_product_ambientcoefficientdiagonalentry + S (pfc_value_division_product_ambientcoefficientdiagonal) = S ((S (pfc_index_division_product_ambientcoefficientdiagonal)) * pfc_terms_scale_division_product_ambientcoefficient)) /\ exists ff_q_pfp_division_product_ambientcoefficientdiagonalentry. pfc_terms_code_division_product_ambientcoefficient = ff_q_pfp_division_product_ambientcoefficientdiagonalentry * S ((S (pfc_index_division_product_ambientcoefficientdiagonal)) * pfc_terms_scale_division_product_ambientcoefficient) + (pfc_value_division_product_ambientcoefficientdiagonal))) /\ ((exists pfc_complement_division_product_ambientcoefficientdiagonalterm pfc_left_division_product_ambientcoefficientdiagonalterm pfc_right_division_product_ambientcoefficientdiagonalterm. (((pfc_index_division_product_ambientcoefficientdiagonal)+pfc_complement_division_product_ambientcoefficientdiagonalterm=(pfc_index_division_product_ambient)) /\ ((((((exists pfa_gap_division_product_ambientcoefficientdiagonaltermleftinside. pfa_gap_division_product_ambientcoefficientdiagonaltermleftinside + S (pfc_index_division_product_ambientcoefficientdiagonal) = (q)) /\ ((((exists ff_h_pfp_division_product_ambientcoefficientdiagonaltermleftentry. ff_h_pfp_division_product_ambientcoefficientdiagonaltermleftentry + S (pfc_left_division_product_ambientcoefficientdiagonalterm) = S ((S (pfc_index_division_product_ambientcoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_product_ambientcoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_product_ambientcoefficientdiagonaltermleftentry * S ((S (pfc_index_division_product_ambientcoefficientdiagonal)) * qc) + (pfc_left_division_product_ambientcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_product_ambientcoefficientdiagonaltermleftoutside. pfc_gap_division_product_ambientcoefficientdiagonaltermleftoutside+(q)=(pfc_index_division_product_ambientcoefficientdiagonal)) /\ (((pfc_left_division_product_ambientcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_product_ambientcoefficientdiagonaltermrightinside. pfa_gap_division_product_ambientcoefficientdiagonaltermrightinside + S (pfc_complement_division_product_ambientcoefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_product_ambientcoefficientdiagonaltermrightentry. ff_h_pfp_division_product_ambientcoefficientdiagonaltermrightentry + S (pfc_right_division_product_ambientcoefficientdiagonalterm) = S ((S (pfc_complement_division_product_ambientcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_product_ambientcoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_product_ambientcoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_product_ambientcoefficientdiagonalterm)) * bc) + (pfc_right_division_product_ambientcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_product_ambientcoefficientdiagonaltermrightoutside. pfc_gap_division_product_ambientcoefficientdiagonaltermrightoutside+(S d)=(pfc_complement_division_product_ambientcoefficientdiagonalterm)) /\ (((pfc_right_division_product_ambientcoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_product_ambientcoefficientdiagonal)=pfc_left_division_product_ambientcoefficientdiagonalterm*pfc_right_division_product_ambientcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_product_ambientcoefficientsum fs_v_pfc_division_product_ambientcoefficientsum. ((((exists fs_h_pfc_division_product_ambientcoefficientsum_body_start. fs_h_pfc_division_product_ambientcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_product_ambientcoefficientsum)) /\ exists fs_q_pfc_division_product_ambientcoefficientsum_body_start. fs_u_pfc_division_product_ambientcoefficientsum = fs_q_pfc_division_product_ambientcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_product_ambientcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_product_ambientcoefficientsum_body_terminal. fs_h_pfc_division_product_ambientcoefficientsum_body_terminal + S (pfc_natural_sum_division_product_ambientcoefficient) = S ((S (S (pfc_index_division_product_ambient))) * fs_v_pfc_division_product_ambientcoefficientsum)) /\ exists fs_q_pfc_division_product_ambientcoefficientsum_body_terminal. fs_u_pfc_division_product_ambientcoefficientsum = fs_q_pfc_division_product_ambientcoefficientsum_body_terminal * S ((S (S (pfc_index_division_product_ambient))) * fs_v_pfc_division_product_ambientcoefficientsum) + (pfc_natural_sum_division_product_ambientcoefficient))) /\ forall fs_i_pfc_division_product_ambientcoefficientsum_body_steps. (exists fs_lt_pfc_division_product_ambientcoefficientsum_body_steps_bound. fs_lt_pfc_division_product_ambientcoefficientsum_body_steps_bound + S fs_i_pfc_division_product_ambientcoefficientsum_body_steps = S (pfc_index_division_product_ambient)) -> exists fs_a_pfc_division_product_ambientcoefficientsum_body_steps fs_r_pfc_division_product_ambientcoefficientsum_body_steps fs_s_pfc_division_product_ambientcoefficientsum_body_steps. ((((exists fs_h_pfc_division_product_ambientcoefficientsum_body_steps_summand. fs_h_pfc_division_product_ambientcoefficientsum_body_steps_summand + S (fs_a_pfc_division_product_ambientcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_product_ambientcoefficientsum_body_steps)) * pfc_terms_scale_division_product_ambientcoefficient)) /\ exists fs_q_pfc_division_product_ambientcoefficientsum_body_steps_summand. pfc_terms_code_division_product_ambientcoefficient = fs_q_pfc_division_product_ambientcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_product_ambientcoefficientsum_body_steps)) * pfc_terms_scale_division_product_ambientcoefficient) + (fs_a_pfc_division_product_ambientcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_product_ambientcoefficientsum_body_steps_partial. fs_h_pfc_division_product_ambientcoefficientsum_body_steps_partial + S (fs_r_pfc_division_product_ambientcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_product_ambientcoefficientsum_body_steps)) * fs_v_pfc_division_product_ambientcoefficientsum)) /\ exists fs_q_pfc_division_product_ambientcoefficientsum_body_steps_partial. fs_u_pfc_division_product_ambientcoefficientsum = fs_q_pfc_division_product_ambientcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_product_ambientcoefficientsum_body_steps)) * fs_v_pfc_division_product_ambientcoefficientsum) + (fs_r_pfc_division_product_ambientcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_product_ambientcoefficientsum_body_steps_successor. fs_h_pfc_division_product_ambientcoefficientsum_body_steps_successor + S (fs_s_pfc_division_product_ambientcoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_product_ambientcoefficientsum_body_steps)) * fs_v_pfc_division_product_ambientcoefficientsum)) /\ exists fs_q_pfc_division_product_ambientcoefficientsum_body_steps_successor. fs_u_pfc_division_product_ambientcoefficientsum = fs_q_pfc_division_product_ambientcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_product_ambientcoefficientsum_body_steps)) * fs_v_pfc_division_product_ambientcoefficientsum) + (fs_s_pfc_division_product_ambientcoefficientsum_body_steps))) /\ fs_s_pfc_division_product_ambientcoefficientsum_body_steps = fs_r_pfc_division_product_ambientcoefficientsum_body_steps + fs_a_pfc_division_product_ambientcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_product_ambientcoefficientresiduebound. pfa_gap_division_product_ambientcoefficientresiduebound + S (pfc_value_division_product_ambient) = (p)) /\ ((exists pfa_offset_left_division_product_ambientcoefficientresiduecongruence pfa_offset_right_division_product_ambientcoefficientresiduecongruence. (pfc_natural_sum_division_product_ambientcoefficient) + (p) * pfa_offset_left_division_product_ambientcoefficientresiduecongruence = (pfc_value_division_product_ambient) + (p) * pfa_offset_right_division_product_ambientcoefficientresiduecongruence)))))))))))) -> (((forall fom_index_pfp_division_product_actualleft. (exists fom_gap_pfp_division_product_actualleft_index_bound. fom_gap_pfp_division_product_actualleft_index_bound + S (fom_index_pfp_division_product_actualleft) = q) -> exists fom_value_pfp_division_product_actualleft. ((((exists fom_beta_height_pfp_division_product_actualleft_entry. fom_beta_height_pfp_division_product_actualleft_entry + S (fom_value_pfp_division_product_actualleft) = S ((S (fom_index_pfp_division_product_actualleft)) * qc)) /\ exists fom_beta_quotient_pfp_division_product_actualleft_entry. qb = fom_beta_quotient_pfp_division_product_actualleft_entry * S ((S (fom_index_pfp_division_product_actualleft)) * qc) + (fom_value_pfp_division_product_actualleft))) /\ (exists fom_gap_pfp_division_product_actualleft_value_bound. fom_gap_pfp_division_product_actualleft_value_bound + S (fom_value_pfp_division_product_actualleft) = p))) /\ (((forall fom_index_pfp_division_product_actualright. (exists fom_gap_pfp_division_product_actualright_index_bound. fom_gap_pfp_division_product_actualright_index_bound + S (fom_index_pfp_division_product_actualright) = S d) -> exists fom_value_pfp_division_product_actualright. ((((exists fom_beta_height_pfp_division_product_actualright_entry. fom_beta_height_pfp_division_product_actualright_entry + S (fom_value_pfp_division_product_actualright) = S ((S (fom_index_pfp_division_product_actualright)) * bc)) /\ exists fom_beta_quotient_pfp_division_product_actualright_entry. bb = fom_beta_quotient_pfp_division_product_actualright_entry * S ((S (fom_index_pfp_division_product_actualright)) * bc) + (fom_value_pfp_division_product_actualright))) /\ (exists fom_gap_pfp_division_product_actualright_value_bound. fom_gap_pfp_division_product_actualright_value_bound + S (fom_value_pfp_division_product_actualright) = p))) /\ (((((((q)=0 \/ (S d)=0) /\ (((L)=0)))) \/ (((~((q)=0)) /\ (((~((S d)=0)) /\ (((q)+(S d)=S (L)))))))) /\ ((forall pfc_index_division_product_actualcoefficients. (exists pfa_gap_division_product_actualcoefficientsbound. pfa_gap_division_product_actualcoefficientsbound + S (pfc_index_division_product_actualcoefficients) = (L)) -> exists pfc_value_division_product_actualcoefficients. ((((exists ff_h_pfp_division_product_actualcoefficientsentry. ff_h_pfp_division_product_actualcoefficientsentry + S (pfc_value_division_product_actualcoefficients) = S ((S (pfc_index_division_product_actualcoefficients)) * pc)) /\ exists ff_q_pfp_division_product_actualcoefficientsentry. pb = ff_q_pfp_division_product_actualcoefficientsentry * S ((S (pfc_index_division_product_actualcoefficients)) * pc) + (pfc_value_division_product_actualcoefficients))) /\ ((exists pfc_terms_code_division_product_actualcoefficientscoefficient pfc_terms_scale_division_product_actualcoefficientscoefficient pfc_natural_sum_division_product_actualcoefficientscoefficient. ((forall pfc_index_division_product_actualcoefficientscoefficientdiagonal. (exists pfa_gap_division_product_actualcoefficientscoefficientdiagonalbound. pfa_gap_division_product_actualcoefficientscoefficientdiagonalbound + S (pfc_index_division_product_actualcoefficientscoefficientdiagonal) = (S (pfc_index_division_product_actualcoefficients))) -> exists pfc_value_division_product_actualcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_division_product_actualcoefficientscoefficientdiagonalentry. ff_h_pfp_division_product_actualcoefficientscoefficientdiagonalentry + S (pfc_value_division_product_actualcoefficientscoefficientdiagonal) = S ((S (pfc_index_division_product_actualcoefficientscoefficientdiagonal)) * pfc_terms_scale_division_product_actualcoefficientscoefficient)) /\ exists ff_q_pfp_division_product_actualcoefficientscoefficientdiagonalentry. pfc_terms_code_division_product_actualcoefficientscoefficient = ff_q_pfp_division_product_actualcoefficientscoefficientdiagonalentry * S ((S (pfc_index_division_product_actualcoefficientscoefficientdiagonal)) * pfc_terms_scale_division_product_actualcoefficientscoefficient) + (pfc_value_division_product_actualcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_division_product_actualcoefficientscoefficientdiagonalterm pfc_left_division_product_actualcoefficientscoefficientdiagonalterm pfc_right_division_product_actualcoefficientscoefficientdiagonalterm. (((pfc_index_division_product_actualcoefficientscoefficientdiagonal)+pfc_complement_division_product_actualcoefficientscoefficientdiagonalterm=(pfc_index_division_product_actualcoefficients)) /\ ((((((exists pfa_gap_division_product_actualcoefficientscoefficientdiagonaltermleftinside. pfa_gap_division_product_actualcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_division_product_actualcoefficientscoefficientdiagonal) = (q)) /\ ((((exists ff_h_pfp_division_product_actualcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_division_product_actualcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_division_product_actualcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_division_product_actualcoefficientscoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_product_actualcoefficientscoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_product_actualcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_division_product_actualcoefficientscoefficientdiagonal)) * qc) + (pfc_left_division_product_actualcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_product_actualcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_division_product_actualcoefficientscoefficientdiagonaltermleftoutside+(q)=(pfc_index_division_product_actualcoefficientscoefficientdiagonal)) /\ (((pfc_left_division_product_actualcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_product_actualcoefficientscoefficientdiagonaltermrightinside. pfa_gap_division_product_actualcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_division_product_actualcoefficientscoefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_product_actualcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_division_product_actualcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_division_product_actualcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_division_product_actualcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_product_actualcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_product_actualcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_product_actualcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_division_product_actualcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_product_actualcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_division_product_actualcoefficientscoefficientdiagonaltermrightoutside+(S d)=(pfc_complement_division_product_actualcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_division_product_actualcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_product_actualcoefficientscoefficientdiagonal)=pfc_left_division_product_actualcoefficientscoefficientdiagonalterm*pfc_right_division_product_actualcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_product_actualcoefficientscoefficientsum fs_v_pfc_division_product_actualcoefficientscoefficientsum. ((((exists fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_start. fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_product_actualcoefficientscoefficientsum)) /\ exists fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_start. fs_u_pfc_division_product_actualcoefficientscoefficientsum = fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_product_actualcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_terminal. fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_division_product_actualcoefficientscoefficient) = S ((S (S (pfc_index_division_product_actualcoefficients))) * fs_v_pfc_division_product_actualcoefficientscoefficientsum)) /\ exists fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_terminal. fs_u_pfc_division_product_actualcoefficientscoefficientsum = fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_division_product_actualcoefficients))) * fs_v_pfc_division_product_actualcoefficientscoefficientsum) + (pfc_natural_sum_division_product_actualcoefficientscoefficient))) /\ forall fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_division_product_actualcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_division_product_actualcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps = S (pfc_index_division_product_actualcoefficients)) -> exists fs_a_pfc_division_product_actualcoefficientscoefficientsum_body_steps fs_r_pfc_division_product_actualcoefficientscoefficientsum_body_steps fs_s_pfc_division_product_actualcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_division_product_actualcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_division_product_actualcoefficientscoefficient)) /\ exists fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_division_product_actualcoefficientscoefficient = fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_division_product_actualcoefficientscoefficient) + (fs_a_pfc_division_product_actualcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_division_product_actualcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps)) * fs_v_pfc_division_product_actualcoefficientscoefficientsum)) /\ exists fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_division_product_actualcoefficientscoefficientsum = fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps)) * fs_v_pfc_division_product_actualcoefficientscoefficientsum) + (fs_r_pfc_division_product_actualcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_division_product_actualcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps)) * fs_v_pfc_division_product_actualcoefficientscoefficientsum)) /\ exists fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_division_product_actualcoefficientscoefficientsum = fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps)) * fs_v_pfc_division_product_actualcoefficientscoefficientsum) + (fs_s_pfc_division_product_actualcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_division_product_actualcoefficientscoefficientsum_body_steps = fs_r_pfc_division_product_actualcoefficientscoefficientsum_body_steps + fs_a_pfc_division_product_actualcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_product_actualcoefficientscoefficientresiduebound. pfa_gap_division_product_actualcoefficientscoefficientresiduebound + S (pfc_value_division_product_actualcoefficients) = (p)) /\ ((exists pfa_offset_left_division_product_actualcoefficientscoefficientresiduecongruence pfa_offset_right_division_product_actualcoefficientscoefficientresiduecongruence. (pfc_natural_sum_division_product_actualcoefficientscoefficient) + (p) * pfa_offset_left_division_product_actualcoefficientscoefficientresiduecongruence = (pfc_value_division_product_actualcoefficients) + (p) * pfa_offset_right_division_product_actualcoefficientscoefficientresiduecongruence)))))))))))))))))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro d
  8. intro qb
  9. intro qc
  10. intro q
  11. intro pb
  12. intro pc
  13. intro L
  14. intro hlen
  15. intro hpositive
  16. intro hb
  17. intro hq
  18. intro hproduct
  19. split
  20. specialize prime_field_polynomial_quotient_prefix_bounded (p)
  21. specialize prime_field_polynomial_quotient_prefix_bounded (k)
  22. specialize prime_field_polynomial_quotient_prefix_bounded (ab)
  23. specialize prime_field_polynomial_quotient_prefix_bounded (ac)
  24. specialize prime_field_polynomial_quotient_prefix_bounded (bb)
  25. specialize prime_field_polynomial_quotient_prefix_bounded (bc)
  26. specialize prime_field_polynomial_quotient_prefix_bounded (S d)
  27. specialize prime_field_polynomial_quotient_prefix_bounded (qb)
  28. specialize prime_field_polynomial_quotient_prefix_bounded (qc)
  29. specialize prime_field_polynomial_quotient_prefix_bounded (q)
  30. apply prime_field_polynomial_quotient_prefix_bounded
  31. exact hq
  32. split
  33. exact hb
  34. split
  35. specialize polynomial_quotient_length_product (L)
  36. specialize polynomial_quotient_length_product (d)
  37. specialize polynomial_quotient_length_product (q)
  38. apply polynomial_quotient_length_product
  39. exact hlen
  40. exact hpositive
  41. exact hproduct
prime_field_polynomial_division_coefficient_identity · unchanged support, not a new admission
forall p ab ac L bb bc d qb qc q rb rc R. (~((p) = 1) /\ forall pfa_factor_left_division_identity_prime pfa_factor_right_division_identity_prime. (p) = pfa_factor_left_division_identity_prime * pfa_factor_right_division_identity_prime -> pfa_factor_left_division_identity_prime = 1 \/ pfa_factor_right_division_identity_prime = 1) -> (((forall fom_index_pfp_division_identity_executioninput. (exists fom_gap_pfp_division_identity_executioninput_index_bound. fom_gap_pfp_division_identity_executioninput_index_bound + S (fom_index_pfp_division_identity_executioninput) = L) -> exists fom_value_pfp_division_identity_executioninput. ((((exists fom_beta_height_pfp_division_identity_executioninput_entry. fom_beta_height_pfp_division_identity_executioninput_entry + S (fom_value_pfp_division_identity_executioninput) = S ((S (fom_index_pfp_division_identity_executioninput)) * ac)) /\ exists fom_beta_quotient_pfp_division_identity_executioninput_entry. ab = fom_beta_quotient_pfp_division_identity_executioninput_entry * S ((S (fom_index_pfp_division_identity_executioninput)) * ac) + (fom_value_pfp_division_identity_executioninput))) /\ (exists fom_gap_pfp_division_identity_executioninput_value_bound. fom_gap_pfp_division_identity_executioninput_value_bound + S (fom_value_pfp_division_identity_executioninput) = p))) /\ (((forall fom_index_pfp_division_identity_executiondivisor. (exists fom_gap_pfp_division_identity_executiondivisor_index_bound. fom_gap_pfp_division_identity_executiondivisor_index_bound + S (fom_index_pfp_division_identity_executiondivisor) = S (d)) -> exists fom_value_pfp_division_identity_executiondivisor. ((((exists fom_beta_height_pfp_division_identity_executiondivisor_entry. fom_beta_height_pfp_division_identity_executiondivisor_entry + S (fom_value_pfp_division_identity_executiondivisor) = S ((S (fom_index_pfp_division_identity_executiondivisor)) * bc)) /\ exists fom_beta_quotient_pfp_division_identity_executiondivisor_entry. bb = fom_beta_quotient_pfp_division_identity_executiondivisor_entry * S ((S (fom_index_pfp_division_identity_executiondivisor)) * bc) + (fom_value_pfp_division_identity_executiondivisor))) /\ (exists fom_gap_pfp_division_identity_executiondivisor_value_bound. fom_gap_pfp_division_identity_executiondivisor_value_bound + S (fom_value_pfp_division_identity_executiondivisor) = p))) /\ (((((((q)=0) /\ ((exists pfc_gap_division_identity_executionlengthshort. pfc_gap_division_identity_executionlengthshort+(L)=(d))))) \/ (((~((q)=0)) /\ (((q)+(d)=(L)))))) /\ ((exists pfd_head_division_identity_execution pfd_inverse_division_identity_execution pfd_product_code_division_identity_execution pfd_product_scale_division_identity_execution pfd_residual_code_division_identity_execution pfd_residual_scale_division_identity_execution pfd_cut_division_identity_execution. ((((exists ff_h_pfp_division_identity_executionhead. ff_h_pfp_division_identity_executionhead + S (pfd_head_division_identity_execution) = S ((S (0)) * bc)) /\ exists ff_q_pfp_division_identity_executionhead. bb = ff_q_pfp_division_identity_executionhead * S ((S (0)) * bc) + (pfd_head_division_identity_execution))) /\ (((((~((pfd_head_division_identity_execution) = 0)) /\ ((((exists pfa_gap_division_identity_executioninversemultiplicationleft. pfa_gap_division_identity_executioninversemultiplicationleft + S (pfd_head_division_identity_execution) = (p)) /\ (((exists pfa_gap_division_identity_executioninversemultiplicationright. pfa_gap_division_identity_executioninversemultiplicationright + S (pfd_inverse_division_identity_execution) = (p)) /\ ((((exists pfa_gap_division_identity_executioninversemultiplicationresultbound. pfa_gap_division_identity_executioninversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_division_identity_executioninversemultiplicationresultcongruence pfa_offset_right_division_identity_executioninversemultiplicationresultcongruence. ((pfd_head_division_identity_execution) * (pfd_inverse_division_identity_execution)) + (p) * pfa_offset_left_division_identity_executioninversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_division_identity_executioninversemultiplicationresultcongruence)))))))))))) /\ (((forall pfd_index_division_identity_executionquotient. (exists pfa_gap_division_identity_executionquotientbound. pfa_gap_division_identity_executionquotientbound + S (pfd_index_division_identity_executionquotient) = (q)) -> exists pfd_value_division_identity_executionquotient. ((((exists ff_h_pfp_division_identity_executionquotiententry. ff_h_pfp_division_identity_executionquotiententry + S (pfd_value_division_identity_executionquotient) = S ((S (pfd_index_division_identity_executionquotient)) * qc)) /\ exists ff_q_pfp_division_identity_executionquotiententry. qb = ff_q_pfp_division_identity_executionquotiententry * S ((S (pfd_index_division_identity_executionquotient)) * qc) + (pfd_value_division_identity_executionquotient))) /\ ((exists pfd_input_division_identity_executionquotientstep pfd_previous_division_identity_executionquotientstep pfd_difference_division_identity_executionquotientstep. ((((exists ff_h_pfp_division_identity_executionquotientstepinput. ff_h_pfp_division_identity_executionquotientstepinput + S (pfd_input_division_identity_executionquotientstep) = S ((S (pfd_index_division_identity_executionquotient)) * ac)) /\ exists ff_q_pfp_division_identity_executionquotientstepinput. ab = ff_q_pfp_division_identity_executionquotientstepinput * S ((S (pfd_index_division_identity_executionquotient)) * ac) + (pfd_input_division_identity_executionquotientstep))) /\ (((exists pfc_terms_code_division_identity_executionquotientstepprevious pfc_terms_scale_division_identity_executionquotientstepprevious pfc_natural_sum_division_identity_executionquotientstepprevious. ((forall pfc_index_division_identity_executionquotientsteppreviousdiagonal. (exists pfa_gap_division_identity_executionquotientsteppreviousdiagonalbound. pfa_gap_division_identity_executionquotientsteppreviousdiagonalbound + S (pfc_index_division_identity_executionquotientsteppreviousdiagonal) = (S (pfd_index_division_identity_executionquotient))) -> exists pfc_value_division_identity_executionquotientsteppreviousdiagonal. ((((exists ff_h_pfp_division_identity_executionquotientsteppreviousdiagonalentry. ff_h_pfp_division_identity_executionquotientsteppreviousdiagonalentry + S (pfc_value_division_identity_executionquotientsteppreviousdiagonal) = S ((S (pfc_index_division_identity_executionquotientsteppreviousdiagonal)) * pfc_terms_scale_division_identity_executionquotientstepprevious)) /\ exists ff_q_pfp_division_identity_executionquotientsteppreviousdiagonalentry. pfc_terms_code_division_identity_executionquotientstepprevious = ff_q_pfp_division_identity_executionquotientsteppreviousdiagonalentry * S ((S (pfc_index_division_identity_executionquotientsteppreviousdiagonal)) * pfc_terms_scale_division_identity_executionquotientstepprevious) + (pfc_value_division_identity_executionquotientsteppreviousdiagonal))) /\ ((exists pfc_complement_division_identity_executionquotientsteppreviousdiagonalterm pfc_left_division_identity_executionquotientsteppreviousdiagonalterm pfc_right_division_identity_executionquotientsteppreviousdiagonalterm. (((pfc_index_division_identity_executionquotientsteppreviousdiagonal)+pfc_complement_division_identity_executionquotientsteppreviousdiagonalterm=(pfd_index_division_identity_executionquotient)) /\ ((((((exists pfa_gap_division_identity_executionquotientsteppreviousdiagonaltermleftinside. pfa_gap_division_identity_executionquotientsteppreviousdiagonaltermleftinside + S (pfc_index_division_identity_executionquotientsteppreviousdiagonal) = (pfd_index_division_identity_executionquotient)) /\ ((((exists ff_h_pfp_division_identity_executionquotientsteppreviousdiagonaltermleftentry. ff_h_pfp_division_identity_executionquotientsteppreviousdiagonaltermleftentry + S (pfc_left_division_identity_executionquotientsteppreviousdiagonalterm) = S ((S (pfc_index_division_identity_executionquotientsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_identity_executionquotientsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_identity_executionquotientsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_identity_executionquotientsteppreviousdiagonal)) * qc) + (pfc_left_division_identity_executionquotientsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_identity_executionquotientsteppreviousdiagonaltermleftoutside. pfc_gap_division_identity_executionquotientsteppreviousdiagonaltermleftoutside+(pfd_index_division_identity_executionquotient)=(pfc_index_division_identity_executionquotientsteppreviousdiagonal)) /\ (((pfc_left_division_identity_executionquotientsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_identity_executionquotientsteppreviousdiagonaltermrightinside. pfa_gap_division_identity_executionquotientsteppreviousdiagonaltermrightinside + S (pfc_complement_division_identity_executionquotientsteppreviousdiagonalterm) = (S (d))) /\ ((((exists ff_h_pfp_division_identity_executionquotientsteppreviousdiagonaltermrightentry. ff_h_pfp_division_identity_executionquotientsteppreviousdiagonaltermrightentry + S (pfc_right_division_identity_executionquotientsteppreviousdiagonalterm) = S ((S (pfc_complement_division_identity_executionquotientsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_identity_executionquotientsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_identity_executionquotientsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_identity_executionquotientsteppreviousdiagonalterm)) * bc) + (pfc_right_division_identity_executionquotientsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_identity_executionquotientsteppreviousdiagonaltermrightoutside. pfc_gap_division_identity_executionquotientsteppreviousdiagonaltermrightoutside+(S (d))=(pfc_complement_division_identity_executionquotientsteppreviousdiagonalterm)) /\ (((pfc_right_division_identity_executionquotientsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_identity_executionquotientsteppreviousdiagonal)=pfc_left_division_identity_executionquotientsteppreviousdiagonalterm*pfc_right_division_identity_executionquotientsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_identity_executionquotientstepprevioussum fs_v_pfc_division_identity_executionquotientstepprevioussum. ((((exists fs_h_pfc_division_identity_executionquotientstepprevioussum_body_start. fs_h_pfc_division_identity_executionquotientstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_identity_executionquotientstepprevioussum)) /\ exists fs_q_pfc_division_identity_executionquotientstepprevioussum_body_start. fs_u_pfc_division_identity_executionquotientstepprevioussum = fs_q_pfc_division_identity_executionquotientstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_identity_executionquotientstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_identity_executionquotientstepprevioussum_body_terminal. fs_h_pfc_division_identity_executionquotientstepprevioussum_body_terminal + S (pfc_natural_sum_division_identity_executionquotientstepprevious) = S ((S (S (pfd_index_division_identity_executionquotient))) * fs_v_pfc_division_identity_executionquotientstepprevioussum)) /\ exists fs_q_pfc_division_identity_executionquotientstepprevioussum_body_terminal. fs_u_pfc_division_identity_executionquotientstepprevioussum = fs_q_pfc_division_identity_executionquotientstepprevioussum_body_terminal * S ((S (S (pfd_index_division_identity_executionquotient))) * fs_v_pfc_division_identity_executionquotientstepprevioussum) + (pfc_natural_sum_division_identity_executionquotientstepprevious))) /\ forall fs_i_pfc_division_identity_executionquotientstepprevioussum_body_steps. (exists fs_lt_pfc_division_identity_executionquotientstepprevioussum_body_steps_bound. fs_lt_pfc_division_identity_executionquotientstepprevioussum_body_steps_bound + S fs_i_pfc_division_identity_executionquotientstepprevioussum_body_steps = S (pfd_index_division_identity_executionquotient)) -> exists fs_a_pfc_division_identity_executionquotientstepprevioussum_body_steps fs_r_pfc_division_identity_executionquotientstepprevioussum_body_steps fs_s_pfc_division_identity_executionquotientstepprevioussum_body_steps. ((((exists fs_h_pfc_division_identity_executionquotientstepprevioussum_body_steps_summand. fs_h_pfc_division_identity_executionquotientstepprevioussum_body_steps_summand + S (fs_a_pfc_division_identity_executionquotientstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_identity_executionquotientstepprevioussum_body_steps)) * pfc_terms_scale_division_identity_executionquotientstepprevious)) /\ exists fs_q_pfc_division_identity_executionquotientstepprevioussum_body_steps_summand. pfc_terms_code_division_identity_executionquotientstepprevious = fs_q_pfc_division_identity_executionquotientstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_identity_executionquotientstepprevioussum_body_steps)) * pfc_terms_scale_division_identity_executionquotientstepprevious) + (fs_a_pfc_division_identity_executionquotientstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_identity_executionquotientstepprevioussum_body_steps_partial. fs_h_pfc_division_identity_executionquotientstepprevioussum_body_steps_partial + S (fs_r_pfc_division_identity_executionquotientstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_identity_executionquotientstepprevioussum_body_steps)) * fs_v_pfc_division_identity_executionquotientstepprevioussum)) /\ exists fs_q_pfc_division_identity_executionquotientstepprevioussum_body_steps_partial. fs_u_pfc_division_identity_executionquotientstepprevioussum = fs_q_pfc_division_identity_executionquotientstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_identity_executionquotientstepprevioussum_body_steps)) * fs_v_pfc_division_identity_executionquotientstepprevioussum) + (fs_r_pfc_division_identity_executionquotientstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_identity_executionquotientstepprevioussum_body_steps_successor. fs_h_pfc_division_identity_executionquotientstepprevioussum_body_steps_successor + S (fs_s_pfc_division_identity_executionquotientstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_identity_executionquotientstepprevioussum_body_steps)) * fs_v_pfc_division_identity_executionquotientstepprevioussum)) /\ exists fs_q_pfc_division_identity_executionquotientstepprevioussum_body_steps_successor. fs_u_pfc_division_identity_executionquotientstepprevioussum = fs_q_pfc_division_identity_executionquotientstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_identity_executionquotientstepprevioussum_body_steps)) * fs_v_pfc_division_identity_executionquotientstepprevioussum) + (fs_s_pfc_division_identity_executionquotientstepprevioussum_body_steps))) /\ fs_s_pfc_division_identity_executionquotientstepprevioussum_body_steps = fs_r_pfc_division_identity_executionquotientstepprevioussum_body_steps + fs_a_pfc_division_identity_executionquotientstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_identity_executionquotientsteppreviousresiduebound. pfa_gap_division_identity_executionquotientsteppreviousresiduebound + S (pfd_previous_division_identity_executionquotientstep) = (p)) /\ ((exists pfa_offset_left_division_identity_executionquotientsteppreviousresiduecongruence pfa_offset_right_division_identity_executionquotientsteppreviousresiduecongruence. (pfc_natural_sum_division_identity_executionquotientstepprevious) + (p) * pfa_offset_left_division_identity_executionquotientsteppreviousresiduecongruence = (pfd_previous_division_identity_executionquotientstep) + (p) * pfa_offset_right_division_identity_executionquotientsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_identity_executionquotientstepsubtractleft. pfa_gap_division_identity_executionquotientstepsubtractleft + S (pfd_previous_division_identity_executionquotientstep) = (p)) /\ (((exists pfa_gap_division_identity_executionquotientstepsubtractright. pfa_gap_division_identity_executionquotientstepsubtractright + S (pfd_difference_division_identity_executionquotientstep) = (p)) /\ ((((exists pfa_gap_division_identity_executionquotientstepsubtractresultbound. pfa_gap_division_identity_executionquotientstepsubtractresultbound + S (pfd_input_division_identity_executionquotientstep) = (p)) /\ ((exists pfa_offset_left_division_identity_executionquotientstepsubtractresultcongruence pfa_offset_right_division_identity_executionquotientstepsubtractresultcongruence. ((pfd_previous_division_identity_executionquotientstep) + (pfd_difference_division_identity_executionquotientstep)) + (p) * pfa_offset_left_division_identity_executionquotientstepsubtractresultcongruence = (pfd_input_division_identity_executionquotientstep) + (p) * pfa_offset_right_division_identity_executionquotientstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_identity_executionquotientstepmultiplyleft. pfa_gap_division_identity_executionquotientstepmultiplyleft + S (pfd_inverse_division_identity_execution) = (p)) /\ (((exists pfa_gap_division_identity_executionquotientstepmultiplyright. pfa_gap_division_identity_executionquotientstepmultiplyright + S (pfd_difference_division_identity_executionquotientstep) = (p)) /\ ((((exists pfa_gap_division_identity_executionquotientstepmultiplyresultbound. pfa_gap_division_identity_executionquotientstepmultiplyresultbound + S (pfd_value_division_identity_executionquotient) = (p)) /\ ((exists pfa_offset_left_division_identity_executionquotientstepmultiplyresultcongruence pfa_offset_right_division_identity_executionquotientstepmultiplyresultcongruence. ((pfd_inverse_division_identity_execution) * (pfd_difference_division_identity_executionquotientstep)) + (p) * pfa_offset_left_division_identity_executionquotientstepmultiplyresultcongruence = (pfd_value_division_identity_executionquotient) + (p) * pfa_offset_right_division_identity_executionquotientstepmultiplyresultcongruence))))))))))))))))))) /\ (((forall pfc_index_division_identity_executionproduct. (exists pfa_gap_division_identity_executionproductbound. pfa_gap_division_identity_executionproductbound + S (pfc_index_division_identity_executionproduct) = (L)) -> exists pfc_value_division_identity_executionproduct. ((((exists ff_h_pfp_division_identity_executionproductentry. ff_h_pfp_division_identity_executionproductentry + S (pfc_value_division_identity_executionproduct) = S ((S (pfc_index_division_identity_executionproduct)) * pfd_product_scale_division_identity_execution)) /\ exists ff_q_pfp_division_identity_executionproductentry. pfd_product_code_division_identity_execution = ff_q_pfp_division_identity_executionproductentry * S ((S (pfc_index_division_identity_executionproduct)) * pfd_product_scale_division_identity_execution) + (pfc_value_division_identity_executionproduct))) /\ ((exists pfc_terms_code_division_identity_executionproductcoefficient pfc_terms_scale_division_identity_executionproductcoefficient pfc_natural_sum_division_identity_executionproductcoefficient. ((forall pfc_index_division_identity_executionproductcoefficientdiagonal. (exists pfa_gap_division_identity_executionproductcoefficientdiagonalbound. pfa_gap_division_identity_executionproductcoefficientdiagonalbound + S (pfc_index_division_identity_executionproductcoefficientdiagonal) = (S (pfc_index_division_identity_executionproduct))) -> exists pfc_value_division_identity_executionproductcoefficientdiagonal. ((((exists ff_h_pfp_division_identity_executionproductcoefficientdiagonalentry. ff_h_pfp_division_identity_executionproductcoefficientdiagonalentry + S (pfc_value_division_identity_executionproductcoefficientdiagonal) = S ((S (pfc_index_division_identity_executionproductcoefficientdiagonal)) * pfc_terms_scale_division_identity_executionproductcoefficient)) /\ exists ff_q_pfp_division_identity_executionproductcoefficientdiagonalentry. pfc_terms_code_division_identity_executionproductcoefficient = ff_q_pfp_division_identity_executionproductcoefficientdiagonalentry * S ((S (pfc_index_division_identity_executionproductcoefficientdiagonal)) * pfc_terms_scale_division_identity_executionproductcoefficient) + (pfc_value_division_identity_executionproductcoefficientdiagonal))) /\ ((exists pfc_complement_division_identity_executionproductcoefficientdiagonalterm pfc_left_division_identity_executionproductcoefficientdiagonalterm pfc_right_division_identity_executionproductcoefficientdiagonalterm. (((pfc_index_division_identity_executionproductcoefficientdiagonal)+pfc_complement_division_identity_executionproductcoefficientdiagonalterm=(pfc_index_division_identity_executionproduct)) /\ ((((((exists pfa_gap_division_identity_executionproductcoefficientdiagonaltermleftinside. pfa_gap_division_identity_executionproductcoefficientdiagonaltermleftinside + S (pfc_index_division_identity_executionproductcoefficientdiagonal) = (q)) /\ ((((exists ff_h_pfp_division_identity_executionproductcoefficientdiagonaltermleftentry. ff_h_pfp_division_identity_executionproductcoefficientdiagonaltermleftentry + S (pfc_left_division_identity_executionproductcoefficientdiagonalterm) = S ((S (pfc_index_division_identity_executionproductcoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_identity_executionproductcoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_identity_executionproductcoefficientdiagonaltermleftentry * S ((S (pfc_index_division_identity_executionproductcoefficientdiagonal)) * qc) + (pfc_left_division_identity_executionproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_identity_executionproductcoefficientdiagonaltermleftoutside. pfc_gap_division_identity_executionproductcoefficientdiagonaltermleftoutside+(q)=(pfc_index_division_identity_executionproductcoefficientdiagonal)) /\ (((pfc_left_division_identity_executionproductcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_identity_executionproductcoefficientdiagonaltermrightinside. pfa_gap_division_identity_executionproductcoefficientdiagonaltermrightinside + S (pfc_complement_division_identity_executionproductcoefficientdiagonalterm) = (S (d))) /\ ((((exists ff_h_pfp_division_identity_executionproductcoefficientdiagonaltermrightentry. ff_h_pfp_division_identity_executionproductcoefficientdiagonaltermrightentry + S (pfc_right_division_identity_executionproductcoefficientdiagonalterm) = S ((S (pfc_complement_division_identity_executionproductcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_identity_executionproductcoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_identity_executionproductcoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_identity_executionproductcoefficientdiagonalterm)) * bc) + (pfc_right_division_identity_executionproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_identity_executionproductcoefficientdiagonaltermrightoutside. pfc_gap_division_identity_executionproductcoefficientdiagonaltermrightoutside+(S (d))=(pfc_complement_division_identity_executionproductcoefficientdiagonalterm)) /\ (((pfc_right_division_identity_executionproductcoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_identity_executionproductcoefficientdiagonal)=pfc_left_division_identity_executionproductcoefficientdiagonalterm*pfc_right_division_identity_executionproductcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_identity_executionproductcoefficientsum fs_v_pfc_division_identity_executionproductcoefficientsum. ((((exists fs_h_pfc_division_identity_executionproductcoefficientsum_body_start. fs_h_pfc_division_identity_executionproductcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_identity_executionproductcoefficientsum)) /\ exists fs_q_pfc_division_identity_executionproductcoefficientsum_body_start. fs_u_pfc_division_identity_executionproductcoefficientsum = fs_q_pfc_division_identity_executionproductcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_identity_executionproductcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_identity_executionproductcoefficientsum_body_terminal. fs_h_pfc_division_identity_executionproductcoefficientsum_body_terminal + S (pfc_natural_sum_division_identity_executionproductcoefficient) = S ((S (S (pfc_index_division_identity_executionproduct))) * fs_v_pfc_division_identity_executionproductcoefficientsum)) /\ exists fs_q_pfc_division_identity_executionproductcoefficientsum_body_terminal. fs_u_pfc_division_identity_executionproductcoefficientsum = fs_q_pfc_division_identity_executionproductcoefficientsum_body_terminal * S ((S (S (pfc_index_division_identity_executionproduct))) * fs_v_pfc_division_identity_executionproductcoefficientsum) + (pfc_natural_sum_division_identity_executionproductcoefficient))) /\ forall fs_i_pfc_division_identity_executionproductcoefficientsum_body_steps. (exists fs_lt_pfc_division_identity_executionproductcoefficientsum_body_steps_bound. fs_lt_pfc_division_identity_executionproductcoefficientsum_body_steps_bound + S fs_i_pfc_division_identity_executionproductcoefficientsum_body_steps = S (pfc_index_division_identity_executionproduct)) -> exists fs_a_pfc_division_identity_executionproductcoefficientsum_body_steps fs_r_pfc_division_identity_executionproductcoefficientsum_body_steps fs_s_pfc_division_identity_executionproductcoefficientsum_body_steps. ((((exists fs_h_pfc_division_identity_executionproductcoefficientsum_body_steps_summand. fs_h_pfc_division_identity_executionproductcoefficientsum_body_steps_summand + S (fs_a_pfc_division_identity_executionproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_identity_executionproductcoefficientsum_body_steps)) * pfc_terms_scale_division_identity_executionproductcoefficient)) /\ exists fs_q_pfc_division_identity_executionproductcoefficientsum_body_steps_summand. pfc_terms_code_division_identity_executionproductcoefficient = fs_q_pfc_division_identity_executionproductcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_identity_executionproductcoefficientsum_body_steps)) * pfc_terms_scale_division_identity_executionproductcoefficient) + (fs_a_pfc_division_identity_executionproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_identity_executionproductcoefficientsum_body_steps_partial. fs_h_pfc_division_identity_executionproductcoefficientsum_body_steps_partial + S (fs_r_pfc_division_identity_executionproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_identity_executionproductcoefficientsum_body_steps)) * fs_v_pfc_division_identity_executionproductcoefficientsum)) /\ exists fs_q_pfc_division_identity_executionproductcoefficientsum_body_steps_partial. fs_u_pfc_division_identity_executionproductcoefficientsum = fs_q_pfc_division_identity_executionproductcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_identity_executionproductcoefficientsum_body_steps)) * fs_v_pfc_division_identity_executionproductcoefficientsum) + (fs_r_pfc_division_identity_executionproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_identity_executionproductcoefficientsum_body_steps_successor. fs_h_pfc_division_identity_executionproductcoefficientsum_body_steps_successor + S (fs_s_pfc_division_identity_executionproductcoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_identity_executionproductcoefficientsum_body_steps)) * fs_v_pfc_division_identity_executionproductcoefficientsum)) /\ exists fs_q_pfc_division_identity_executionproductcoefficientsum_body_steps_successor. fs_u_pfc_division_identity_executionproductcoefficientsum = fs_q_pfc_division_identity_executionproductcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_identity_executionproductcoefficientsum_body_steps)) * fs_v_pfc_division_identity_executionproductcoefficientsum) + (fs_s_pfc_division_identity_executionproductcoefficientsum_body_steps))) /\ fs_s_pfc_division_identity_executionproductcoefficientsum_body_steps = fs_r_pfc_division_identity_executionproductcoefficientsum_body_steps + fs_a_pfc_division_identity_executionproductcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_identity_executionproductcoefficientresiduebound. pfa_gap_division_identity_executionproductcoefficientresiduebound + S (pfc_value_division_identity_executionproduct) = (p)) /\ ((exists pfa_offset_left_division_identity_executionproductcoefficientresiduecongruence pfa_offset_right_division_identity_executionproductcoefficientresiduecongruence. (pfc_natural_sum_division_identity_executionproductcoefficient) + (p) * pfa_offset_left_division_identity_executionproductcoefficientresiduecongruence = (pfc_value_division_identity_executionproduct) + (p) * pfa_offset_right_division_identity_executionproductcoefficientresiduecongruence)))))))))))) /\ (((forall pfs_index_division_identity_executiondifference. (exists pfa_gap_division_identity_executiondifferenceindex. pfa_gap_division_identity_executiondifferenceindex + S (pfs_index_division_identity_executiondifference) = (L)) -> exists pfs_left_division_identity_executiondifference pfs_right_division_identity_executiondifference pfs_result_division_identity_executiondifference. ((((exists ff_h_pfp_division_identity_executiondifferenceleft. ff_h_pfp_division_identity_executiondifferenceleft + S (pfs_left_division_identity_executiondifference) = S ((S (pfs_index_division_identity_executiondifference)) * ac)) /\ exists ff_q_pfp_division_identity_executiondifferenceleft. ab = ff_q_pfp_division_identity_executiondifferenceleft * S ((S (pfs_index_division_identity_executiondifference)) * ac) + (pfs_left_division_identity_executiondifference))) /\ (((((exists ff_h_pfp_division_identity_executiondifferenceright. ff_h_pfp_division_identity_executiondifferenceright + S (pfs_right_division_identity_executiondifference) = S ((S (pfs_index_division_identity_executiondifference)) * pfd_product_scale_division_identity_execution)) /\ exists ff_q_pfp_division_identity_executiondifferenceright. pfd_product_code_division_identity_execution = ff_q_pfp_division_identity_executiondifferenceright * S ((S (pfs_index_division_identity_executiondifference)) * pfd_product_scale_division_identity_execution) + (pfs_right_division_identity_executiondifference))) /\ (((((exists ff_h_pfp_division_identity_executiondifferenceresult. ff_h_pfp_division_identity_executiondifferenceresult + S (pfs_result_division_identity_executiondifference) = S ((S (pfs_index_division_identity_executiondifference)) * pfd_residual_scale_division_identity_execution)) /\ exists ff_q_pfp_division_identity_executiondifferenceresult. pfd_residual_code_division_identity_execution = ff_q_pfp_division_identity_executiondifferenceresult * S ((S (pfs_index_division_identity_executiondifference)) * pfd_residual_scale_division_identity_execution) + (pfs_result_division_identity_executiondifference))) /\ ((((exists pfa_gap_division_identity_executiondifferenceoperationleft. pfa_gap_division_identity_executiondifferenceoperationleft + S (pfs_right_division_identity_executiondifference) = (p)) /\ (((exists pfa_gap_division_identity_executiondifferenceoperationright. pfa_gap_division_identity_executiondifferenceoperationright + S (pfs_result_division_identity_executiondifference) = (p)) /\ ((((exists pfa_gap_division_identity_executiondifferenceoperationresultbound. pfa_gap_division_identity_executiondifferenceoperationresultbound + S (pfs_left_division_identity_executiondifference) = (p)) /\ ((exists pfa_offset_left_division_identity_executiondifferenceoperationresultcongruence pfa_offset_right_division_identity_executiondifferenceoperationresultcongruence. ((pfs_right_division_identity_executiondifference) + (pfs_result_division_identity_executiondifference)) + (p) * pfa_offset_left_division_identity_executiondifferenceoperationresultcongruence = (pfs_left_division_identity_executiondifference) + (p) * pfa_offset_right_division_identity_executiondifferenceoperationresultcongruence)))))))))))))))) /\ (((((L)=(pfd_cut_division_identity_execution)+(R)) /\ (((forall fom_index_pfp_division_identity_executiontriminput. (exists fom_gap_pfp_division_identity_executiontriminput_index_bound. fom_gap_pfp_division_identity_executiontriminput_index_bound + S (fom_index_pfp_division_identity_executiontriminput) = L) -> exists fom_value_pfp_division_identity_executiontriminput. ((((exists fom_beta_height_pfp_division_identity_executiontriminput_entry. fom_beta_height_pfp_division_identity_executiontriminput_entry + S (fom_value_pfp_division_identity_executiontriminput) = S ((S (fom_index_pfp_division_identity_executiontriminput)) * pfd_residual_scale_division_identity_execution)) /\ exists fom_beta_quotient_pfp_division_identity_executiontriminput_entry. pfd_residual_code_division_identity_execution = fom_beta_quotient_pfp_division_identity_executiontriminput_entry * S ((S (fom_index_pfp_division_identity_executiontriminput)) * pfd_residual_scale_division_identity_execution) + (fom_value_pfp_division_identity_executiontriminput))) /\ (exists fom_gap_pfp_division_identity_executiontriminput_value_bound. fom_gap_pfp_division_identity_executiontriminput_value_bound + S (fom_value_pfp_division_identity_executiontriminput) = p))) /\ (((forall pfp_repeat_index_division_identity_executiontrimremoved. (exists pfa_gap_division_identity_executiontrimremovedindex. pfa_gap_division_identity_executiontrimremovedindex + S (pfp_repeat_index_division_identity_executiontrimremoved) = (pfd_cut_division_identity_execution)) -> (((exists ff_h_pfp_division_identity_executiontrimremovedentry. ff_h_pfp_division_identity_executiontrimremovedentry + S (0) = S ((S (pfp_repeat_index_division_identity_executiontrimremoved)) * pfd_residual_scale_division_identity_execution)) /\ exists ff_q_pfp_division_identity_executiontrimremovedentry. pfd_residual_code_division_identity_execution = ff_q_pfp_division_identity_executiontrimremovedentry * S ((S (pfp_repeat_index_division_identity_executiontrimremoved)) * pfd_residual_scale_division_identity_execution) + (0)))) /\ (((forall pftrim_index_division_identity_executiontrimsuffix pftrim_value_division_identity_executiontrimsuffix. (exists pfa_gap_division_identity_executiontrimsuffixbound. pfa_gap_division_identity_executiontrimsuffixbound + S (pftrim_index_division_identity_executiontrimsuffix) = (R)) -> (((exists ff_h_pfp_division_identity_executiontrimsuffixsource. ff_h_pfp_division_identity_executiontrimsuffixsource + S (pftrim_value_division_identity_executiontrimsuffix) = S ((S ((pfd_cut_division_identity_execution)+pftrim_index_division_identity_executiontrimsuffix)) * pfd_residual_scale_division_identity_execution)) /\ exists ff_q_pfp_division_identity_executiontrimsuffixsource. pfd_residual_code_division_identity_execution = ff_q_pfp_division_identity_executiontrimsuffixsource * S ((S ((pfd_cut_division_identity_execution)+pftrim_index_division_identity_executiontrimsuffix)) * pfd_residual_scale_division_identity_execution) + (pftrim_value_division_identity_executiontrimsuffix))) -> (((exists ff_h_pfp_division_identity_executiontrimsuffixoutput. ff_h_pfp_division_identity_executiontrimsuffixoutput + S (pftrim_value_division_identity_executiontrimsuffix) = S ((S (pftrim_index_division_identity_executiontrimsuffix)) * rc)) /\ exists ff_q_pfp_division_identity_executiontrimsuffixoutput. rb = ff_q_pfp_division_identity_executiontrimsuffixoutput * S ((S (pftrim_index_division_identity_executiontrimsuffix)) * rc) + (pftrim_value_division_identity_executiontrimsuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_identity_executiontrimnormal. ((((exists ff_h_pfp_division_identity_executiontrimnormalentry. ff_h_pfp_division_identity_executiontrimnormalentry + S (pftrim_leading_division_identity_executiontrimnormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_identity_executiontrimnormalentry. rb = ff_q_pfp_division_identity_executiontrimnormalentry * S ((S (0)) * rc) + (pftrim_leading_division_identity_executiontrimnormal))) /\ ((~(pftrim_leading_division_identity_executiontrimnormal=0))))))))))))))))))))))))))))))))) -> (exists pfd_identity_pb_division_identity_result pfd_identity_pc_division_identity_result pfd_identity_ub_division_identity_result pfd_identity_uc_division_identity_result pfd_identity_t_division_identity_result. ((((((q)=0) /\ ((forall pfp_repeat_index_division_identity_resultempty. (exists pfa_gap_division_identity_resultemptyindex. pfa_gap_division_identity_resultemptyindex + S (pfp_repeat_index_division_identity_resultempty) = (L)) -> (((exists ff_h_pfp_division_identity_resultemptyentry. ff_h_pfp_division_identity_resultemptyentry + S (0) = S ((S (pfp_repeat_index_division_identity_resultempty)) * pfd_identity_pc_division_identity_result)) /\ exists ff_q_pfp_division_identity_resultemptyentry. pfd_identity_pb_division_identity_result = ff_q_pfp_division_identity_resultemptyentry * S ((S (pfp_repeat_index_division_identity_resultempty)) * pfd_identity_pc_division_identity_result) + (0))))))) \/ (((~((q)=0)) /\ ((((forall fom_index_pfp_division_identity_resultproductleft. (exists fom_gap_pfp_division_identity_resultproductleft_index_bound. fom_gap_pfp_division_identity_resultproductleft_index_bound + S (fom_index_pfp_division_identity_resultproductleft) = q) -> exists fom_value_pfp_division_identity_resultproductleft. ((((exists fom_beta_height_pfp_division_identity_resultproductleft_entry. fom_beta_height_pfp_division_identity_resultproductleft_entry + S (fom_value_pfp_division_identity_resultproductleft) = S ((S (fom_index_pfp_division_identity_resultproductleft)) * qc)) /\ exists fom_beta_quotient_pfp_division_identity_resultproductleft_entry. qb = fom_beta_quotient_pfp_division_identity_resultproductleft_entry * S ((S (fom_index_pfp_division_identity_resultproductleft)) * qc) + (fom_value_pfp_division_identity_resultproductleft))) /\ (exists fom_gap_pfp_division_identity_resultproductleft_value_bound. fom_gap_pfp_division_identity_resultproductleft_value_bound + S (fom_value_pfp_division_identity_resultproductleft) = p))) /\ (((forall fom_index_pfp_division_identity_resultproductright. (exists fom_gap_pfp_division_identity_resultproductright_index_bound. fom_gap_pfp_division_identity_resultproductright_index_bound + S (fom_index_pfp_division_identity_resultproductright) = S (d)) -> exists fom_value_pfp_division_identity_resultproductright. ((((exists fom_beta_height_pfp_division_identity_resultproductright_entry. fom_beta_height_pfp_division_identity_resultproductright_entry + S (fom_value_pfp_division_identity_resultproductright) = S ((S (fom_index_pfp_division_identity_resultproductright)) * bc)) /\ exists fom_beta_quotient_pfp_division_identity_resultproductright_entry. bb = fom_beta_quotient_pfp_division_identity_resultproductright_entry * S ((S (fom_index_pfp_division_identity_resultproductright)) * bc) + (fom_value_pfp_division_identity_resultproductright))) /\ (exists fom_gap_pfp_division_identity_resultproductright_value_bound. fom_gap_pfp_division_identity_resultproductright_value_bound + S (fom_value_pfp_division_identity_resultproductright) = p))) /\ (((((((q)=0 \/ (S (d))=0) /\ (((L)=0)))) \/ (((~((q)=0)) /\ (((~((S (d))=0)) /\ (((q)+(S (d))=S (L)))))))) /\ ((forall pfc_index_division_identity_resultproductcoefficients. (exists pfa_gap_division_identity_resultproductcoefficientsbound. pfa_gap_division_identity_resultproductcoefficientsbound + S (pfc_index_division_identity_resultproductcoefficients) = (L)) -> exists pfc_value_division_identity_resultproductcoefficients. ((((exists ff_h_pfp_division_identity_resultproductcoefficientsentry. ff_h_pfp_division_identity_resultproductcoefficientsentry + S (pfc_value_division_identity_resultproductcoefficients) = S ((S (pfc_index_division_identity_resultproductcoefficients)) * pfd_identity_pc_division_identity_result)) /\ exists ff_q_pfp_division_identity_resultproductcoefficientsentry. pfd_identity_pb_division_identity_result = ff_q_pfp_division_identity_resultproductcoefficientsentry * S ((S (pfc_index_division_identity_resultproductcoefficients)) * pfd_identity_pc_division_identity_result) + (pfc_value_division_identity_resultproductcoefficients))) /\ ((exists pfc_terms_code_division_identity_resultproductcoefficientscoefficient pfc_terms_scale_division_identity_resultproductcoefficientscoefficient pfc_natural_sum_division_identity_resultproductcoefficientscoefficient. ((forall pfc_index_division_identity_resultproductcoefficientscoefficientdiagonal. (exists pfa_gap_division_identity_resultproductcoefficientscoefficientdiagonalbound. pfa_gap_division_identity_resultproductcoefficientscoefficientdiagonalbound + S (pfc_index_division_identity_resultproductcoefficientscoefficientdiagonal) = (S (pfc_index_division_identity_resultproductcoefficients))) -> exists pfc_value_division_identity_resultproductcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_division_identity_resultproductcoefficientscoefficientdiagonalentry. ff_h_pfp_division_identity_resultproductcoefficientscoefficientdiagonalentry + S (pfc_value_division_identity_resultproductcoefficientscoefficientdiagonal) = S ((S (pfc_index_division_identity_resultproductcoefficientscoefficientdiagonal)) * pfc_terms_scale_division_identity_resultproductcoefficientscoefficient)) /\ exists ff_q_pfp_division_identity_resultproductcoefficientscoefficientdiagonalentry. pfc_terms_code_division_identity_resultproductcoefficientscoefficient = ff_q_pfp_division_identity_resultproductcoefficientscoefficientdiagonalentry * S ((S (pfc_index_division_identity_resultproductcoefficientscoefficientdiagonal)) * pfc_terms_scale_division_identity_resultproductcoefficientscoefficient) + (pfc_value_division_identity_resultproductcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_division_identity_resultproductcoefficientscoefficientdiagonalterm pfc_left_division_identity_resultproductcoefficientscoefficientdiagonalterm pfc_right_division_identity_resultproductcoefficientscoefficientdiagonalterm. (((pfc_index_division_identity_resultproductcoefficientscoefficientdiagonal)+pfc_complement_division_identity_resultproductcoefficientscoefficientdiagonalterm=(pfc_index_division_identity_resultproductcoefficients)) /\ ((((((exists pfa_gap_division_identity_resultproductcoefficientscoefficientdiagonaltermleftinside. pfa_gap_division_identity_resultproductcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_division_identity_resultproductcoefficientscoefficientdiagonal) = (q)) /\ ((((exists ff_h_pfp_division_identity_resultproductcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_division_identity_resultproductcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_division_identity_resultproductcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_division_identity_resultproductcoefficientscoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_identity_resultproductcoefficientscoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_identity_resultproductcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_division_identity_resultproductcoefficientscoefficientdiagonal)) * qc) + (pfc_left_division_identity_resultproductcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_identity_resultproductcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_division_identity_resultproductcoefficientscoefficientdiagonaltermleftoutside+(q)=(pfc_index_division_identity_resultproductcoefficientscoefficientdiagonal)) /\ (((pfc_left_division_identity_resultproductcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_identity_resultproductcoefficientscoefficientdiagonaltermrightinside. pfa_gap_division_identity_resultproductcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_division_identity_resultproductcoefficientscoefficientdiagonalterm) = (S (d))) /\ ((((exists ff_h_pfp_division_identity_resultproductcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_division_identity_resultproductcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_division_identity_resultproductcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_division_identity_resultproductcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_identity_resultproductcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_identity_resultproductcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_identity_resultproductcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_division_identity_resultproductcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_identity_resultproductcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_division_identity_resultproductcoefficientscoefficientdiagonaltermrightoutside+(S (d))=(pfc_complement_division_identity_resultproductcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_division_identity_resultproductcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_identity_resultproductcoefficientscoefficientdiagonal)=pfc_left_division_identity_resultproductcoefficientscoefficientdiagonalterm*pfc_right_division_identity_resultproductcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_identity_resultproductcoefficientscoefficientsum fs_v_pfc_division_identity_resultproductcoefficientscoefficientsum. ((((exists fs_h_pfc_division_identity_resultproductcoefficientscoefficientsum_body_start. fs_h_pfc_division_identity_resultproductcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_identity_resultproductcoefficientscoefficientsum)) /\ exists fs_q_pfc_division_identity_resultproductcoefficientscoefficientsum_body_start. fs_u_pfc_division_identity_resultproductcoefficientscoefficientsum = fs_q_pfc_division_identity_resultproductcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_identity_resultproductcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_identity_resultproductcoefficientscoefficientsum_body_terminal. fs_h_pfc_division_identity_resultproductcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_division_identity_resultproductcoefficientscoefficient) = S ((S (S (pfc_index_division_identity_resultproductcoefficients))) * fs_v_pfc_division_identity_resultproductcoefficientscoefficientsum)) /\ exists fs_q_pfc_division_identity_resultproductcoefficientscoefficientsum_body_terminal. fs_u_pfc_division_identity_resultproductcoefficientscoefficientsum = fs_q_pfc_division_identity_resultproductcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_division_identity_resultproductcoefficients))) * fs_v_pfc_division_identity_resultproductcoefficientscoefficientsum) + (pfc_natural_sum_division_identity_resultproductcoefficientscoefficient))) /\ forall fs_i_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps = S (pfc_index_division_identity_resultproductcoefficients)) -> exists fs_a_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps fs_r_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps fs_s_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_division_identity_resultproductcoefficientscoefficient)) /\ exists fs_q_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_division_identity_resultproductcoefficientscoefficient = fs_q_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_division_identity_resultproductcoefficientscoefficient) + (fs_a_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps)) * fs_v_pfc_division_identity_resultproductcoefficientscoefficientsum)) /\ exists fs_q_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_division_identity_resultproductcoefficientscoefficientsum = fs_q_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps)) * fs_v_pfc_division_identity_resultproductcoefficientscoefficientsum) + (fs_r_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps)) * fs_v_pfc_division_identity_resultproductcoefficientscoefficientsum)) /\ exists fs_q_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_division_identity_resultproductcoefficientscoefficientsum = fs_q_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps)) * fs_v_pfc_division_identity_resultproductcoefficientscoefficientsum) + (fs_s_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps = fs_r_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps + fs_a_pfc_division_identity_resultproductcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_identity_resultproductcoefficientscoefficientresiduebound. pfa_gap_division_identity_resultproductcoefficientscoefficientresiduebound + S (pfc_value_division_identity_resultproductcoefficients) = (p)) /\ ((exists pfa_offset_left_division_identity_resultproductcoefficientscoefficientresiduecongruence pfa_offset_right_division_identity_resultproductcoefficientscoefficientresiduecongruence. (pfc_natural_sum_division_identity_resultproductcoefficientscoefficient) + (p) * pfa_offset_left_division_identity_resultproductcoefficientscoefficientresiduecongruence = (pfc_value_division_identity_resultproductcoefficients) + (p) * pfa_offset_right_division_identity_resultproductcoefficientscoefficientresiduecongruence))))))))))))))))))))))) /\ (((forall pfp_index_division_identity_resultaddition. (exists pfa_gap_division_identity_resultadditionindex. pfa_gap_division_identity_resultadditionindex + S (pfp_index_division_identity_resultaddition) = (L)) -> exists pfp_left_division_identity_resultaddition pfp_right_division_identity_resultaddition pfp_value_division_identity_resultaddition. ((((exists ff_h_pfp_division_identity_resultadditionleft. ff_h_pfp_division_identity_resultadditionleft + S (pfp_left_division_identity_resultaddition) = S ((S (pfp_index_division_identity_resultaddition)) * pfd_identity_pc_division_identity_result)) /\ exists ff_q_pfp_division_identity_resultadditionleft. pfd_identity_pb_division_identity_result = ff_q_pfp_division_identity_resultadditionleft * S ((S (pfp_index_division_identity_resultaddition)) * pfd_identity_pc_division_identity_result) + (pfp_left_division_identity_resultaddition))) /\ (((((exists ff_h_pfp_division_identity_resultadditionright. ff_h_pfp_division_identity_resultadditionright + S (pfp_right_division_identity_resultaddition) = S ((S (pfp_index_division_identity_resultaddition)) * pfd_identity_uc_division_identity_result)) /\ exists ff_q_pfp_division_identity_resultadditionright. pfd_identity_ub_division_identity_result = ff_q_pfp_division_identity_resultadditionright * S ((S (pfp_index_division_identity_resultaddition)) * pfd_identity_uc_division_identity_result) + (pfp_right_division_identity_resultaddition))) /\ (((((exists ff_h_pfp_division_identity_resultadditiontarget. ff_h_pfp_division_identity_resultadditiontarget + S (pfp_value_division_identity_resultaddition) = S ((S (pfp_index_division_identity_resultaddition)) * ac)) /\ exists ff_q_pfp_division_identity_resultadditiontarget. ab = ff_q_pfp_division_identity_resultadditiontarget * S ((S (pfp_index_division_identity_resultaddition)) * ac) + (pfp_value_division_identity_resultaddition))) /\ ((((exists pfa_gap_division_identity_resultadditionoperationleft. pfa_gap_division_identity_resultadditionoperationleft + S (pfp_left_division_identity_resultaddition) = (p)) /\ (((exists pfa_gap_division_identity_resultadditionoperationright. pfa_gap_division_identity_resultadditionoperationright + S (pfp_right_division_identity_resultaddition) = (p)) /\ ((((exists pfa_gap_division_identity_resultadditionoperationresultbound. pfa_gap_division_identity_resultadditionoperationresultbound + S (pfp_value_division_identity_resultaddition) = (p)) /\ ((exists pfa_offset_left_division_identity_resultadditionoperationresultcongruence pfa_offset_right_division_identity_resultadditionoperationresultcongruence. ((pfp_left_division_identity_resultaddition) + (pfp_right_division_identity_resultaddition)) + (p) * pfa_offset_left_division_identity_resultadditionoperationresultcongruence = (pfp_value_division_identity_resultaddition) + (p) * pfa_offset_right_division_identity_resultadditionoperationresultcongruence)))))))))))))))) /\ (((((L)=(pfd_identity_t_division_identity_result)+(R)) /\ (((forall fom_index_pfp_division_identity_resultremainderinput. (exists fom_gap_pfp_division_identity_resultremainderinput_index_bound. fom_gap_pfp_division_identity_resultremainderinput_index_bound + S (fom_index_pfp_division_identity_resultremainderinput) = L) -> exists fom_value_pfp_division_identity_resultremainderinput. ((((exists fom_beta_height_pfp_division_identity_resultremainderinput_entry. fom_beta_height_pfp_division_identity_resultremainderinput_entry + S (fom_value_pfp_division_identity_resultremainderinput) = S ((S (fom_index_pfp_division_identity_resultremainderinput)) * pfd_identity_uc_division_identity_result)) /\ exists fom_beta_quotient_pfp_division_identity_resultremainderinput_entry. pfd_identity_ub_division_identity_result = fom_beta_quotient_pfp_division_identity_resultremainderinput_entry * S ((S (fom_index_pfp_division_identity_resultremainderinput)) * pfd_identity_uc_division_identity_result) + (fom_value_pfp_division_identity_resultremainderinput))) /\ (exists fom_gap_pfp_division_identity_resultremainderinput_value_bound. fom_gap_pfp_division_identity_resultremainderinput_value_bound + S (fom_value_pfp_division_identity_resultremainderinput) = p))) /\ (((forall pfp_repeat_index_division_identity_resultremainderremoved. (exists pfa_gap_division_identity_resultremainderremovedindex. pfa_gap_division_identity_resultremainderremovedindex + S (pfp_repeat_index_division_identity_resultremainderremoved) = (pfd_identity_t_division_identity_result)) -> (((exists ff_h_pfp_division_identity_resultremainderremovedentry. ff_h_pfp_division_identity_resultremainderremovedentry + S (0) = S ((S (pfp_repeat_index_division_identity_resultremainderremoved)) * pfd_identity_uc_division_identity_result)) /\ exists ff_q_pfp_division_identity_resultremainderremovedentry. pfd_identity_ub_division_identity_result = ff_q_pfp_division_identity_resultremainderremovedentry * S ((S (pfp_repeat_index_division_identity_resultremainderremoved)) * pfd_identity_uc_division_identity_result) + (0)))) /\ (((forall pftrim_index_division_identity_resultremaindersuffix pftrim_value_division_identity_resultremaindersuffix. (exists pfa_gap_division_identity_resultremaindersuffixbound. pfa_gap_division_identity_resultremaindersuffixbound + S (pftrim_index_division_identity_resultremaindersuffix) = (R)) -> (((exists ff_h_pfp_division_identity_resultremaindersuffixsource. ff_h_pfp_division_identity_resultremaindersuffixsource + S (pftrim_value_division_identity_resultremaindersuffix) = S ((S ((pfd_identity_t_division_identity_result)+pftrim_index_division_identity_resultremaindersuffix)) * pfd_identity_uc_division_identity_result)) /\ exists ff_q_pfp_division_identity_resultremaindersuffixsource. pfd_identity_ub_division_identity_result = ff_q_pfp_division_identity_resultremaindersuffixsource * S ((S ((pfd_identity_t_division_identity_result)+pftrim_index_division_identity_resultremaindersuffix)) * pfd_identity_uc_division_identity_result) + (pftrim_value_division_identity_resultremaindersuffix))) -> (((exists ff_h_pfp_division_identity_resultremaindersuffixoutput. ff_h_pfp_division_identity_resultremaindersuffixoutput + S (pftrim_value_division_identity_resultremaindersuffix) = S ((S (pftrim_index_division_identity_resultremaindersuffix)) * rc)) /\ exists ff_q_pfp_division_identity_resultremaindersuffixoutput. rb = ff_q_pfp_division_identity_resultremaindersuffixoutput * S ((S (pftrim_index_division_identity_resultremaindersuffix)) * rc) + (pftrim_value_division_identity_resultremaindersuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_identity_resultremaindernormal. ((((exists ff_h_pfp_division_identity_resultremaindernormalentry. ff_h_pfp_division_identity_resultremaindernormalentry + S (pftrim_leading_division_identity_resultremaindernormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_identity_resultremaindernormalentry. rb = ff_q_pfp_division_identity_resultremaindernormalentry * S ((S (0)) * rc) + (pftrim_leading_division_identity_resultremaindernormal))) /\ ((~(pftrim_leading_division_identity_resultremaindernormal=0))))))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro d
  8. intro qb
  9. intro qc
  10. intro q
  11. intro rb
  12. intro rc
  13. intro R
  14. intro hp
  15. intro h
  16. cases h
  17. cases h_right
  18. cases h_right_right
  19. cases h_right_right_right
  20. cases h_right_right_right_witness
  21. cases h_right_right_right_witness_witness
  22. cases h_right_right_right_witness_witness_witness
  23. cases h_right_right_right_witness_witness_witness_witness
  24. cases h_right_right_right_witness_witness_witness_witness_witness
  25. cases h_right_right_right_witness_witness_witness_witness_witness_witness
  26. cases h_right_right_right_witness_witness_witness_witness_witness_witness_witness
  27. cases h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right
  28. cases h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right
  29. cases h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_right
  30. cases h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  31. exists x2
  32. exists x3
  33. exists x4
  34. exists x5
  35. exists x6
  36. split
  37. have hq : q=0 \/ ~(q=0)
  38. specialize eq_decidable (q)
  39. specialize eq_decidable (0)
  40. apply eq_decidable
  41. cases hq
  42. left
  43. split
  44. exact hq_left
  45. specialize prime_field_convolution_prefix_empty_left_zero (p)
  46. specialize prime_field_convolution_prefix_empty_left_zero (qb)
  47. specialize prime_field_convolution_prefix_empty_left_zero (qc)
  48. specialize prime_field_convolution_prefix_empty_left_zero (bb)
  49. specialize prime_field_convolution_prefix_empty_left_zero (bc)
  50. specialize prime_field_convolution_prefix_empty_left_zero (S d)
  51. specialize prime_field_convolution_prefix_empty_left_zero (x2)
  52. specialize prime_field_convolution_prefix_empty_left_zero (x3)
  53. specialize prime_field_convolution_prefix_empty_left_zero (L)
  54. apply prime_field_convolution_prefix_empty_left_zero
  55. intro hz
  56. specialize prime_nonzero (p)
  57. apply prime_nonzero
  58. exact hp
  59. exact hz
  60. rewrite hq_left at h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  61. rewrite hq_left at h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  62. exact h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  63. right
  64. split
  65. exact hq_right
  66. specialize prime_field_polynomial_quotient_proper_product (p)
  67. specialize prime_field_polynomial_quotient_proper_product (x1)
  68. specialize prime_field_polynomial_quotient_proper_product (ab)
  69. specialize prime_field_polynomial_quotient_proper_product (ac)
  70. specialize prime_field_polynomial_quotient_proper_product (bb)
  71. specialize prime_field_polynomial_quotient_proper_product (bc)
  72. specialize prime_field_polynomial_quotient_proper_product (d)
  73. specialize prime_field_polynomial_quotient_proper_product (qb)
  74. specialize prime_field_polynomial_quotient_proper_product (qc)
  75. specialize prime_field_polynomial_quotient_proper_product (q)
  76. specialize prime_field_polynomial_quotient_proper_product (x2)
  77. specialize prime_field_polynomial_quotient_proper_product (x3)
  78. specialize prime_field_polynomial_quotient_proper_product (L)
  79. apply prime_field_polynomial_quotient_proper_product
  80. exact h_right_right_left
  81. exact hq_right
  82. exact h_right_left
  83. exact h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_left
  84. exact h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  85. split
  86. specialize prime_field_polynomial_subtract_recover_add (p)
  87. specialize prime_field_polynomial_subtract_recover_add (ab)
  88. specialize prime_field_polynomial_subtract_recover_add (ac)
  89. specialize prime_field_polynomial_subtract_recover_add (x2)
  90. specialize prime_field_polynomial_subtract_recover_add (x3)
  91. specialize prime_field_polynomial_subtract_recover_add (x4)
  92. specialize prime_field_polynomial_subtract_recover_add (x5)
  93. specialize prime_field_polynomial_subtract_recover_add (L)
  94. apply prime_field_polynomial_subtract_recover_add
  95. exact h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_left
  96. exact h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_right
prime_field_polynomial_left_distributive_products_exists · unchanged support, not a new admission
forall p ab ac bb bc cb cc L db dc M. (~(p=0)) -> (forall fom_index_pfp_products_left_fixed_input. (exists fom_gap_pfp_products_left_fixed_input_index_bound. fom_gap_pfp_products_left_fixed_input_index_bound + S (fom_index_pfp_products_left_fixed_input) = M) -> exists fom_value_pfp_products_left_fixed_input. ((((exists fom_beta_height_pfp_products_left_fixed_input_entry. fom_beta_height_pfp_products_left_fixed_input_entry + S (fom_value_pfp_products_left_fixed_input) = S ((S (fom_index_pfp_products_left_fixed_input)) * dc)) /\ exists fom_beta_quotient_pfp_products_left_fixed_input_entry. db = fom_beta_quotient_pfp_products_left_fixed_input_entry * S ((S (fom_index_pfp_products_left_fixed_input)) * dc) + (fom_value_pfp_products_left_fixed_input))) /\ (exists fom_gap_pfp_products_left_fixed_input_value_bound. fom_gap_pfp_products_left_fixed_input_value_bound + S (fom_value_pfp_products_left_fixed_input) = p))) -> (forall pfp_index_products_left_input_addition. (exists pfa_gap_products_left_input_additionindex. pfa_gap_products_left_input_additionindex + S (pfp_index_products_left_input_addition) = (L)) -> exists pfp_left_products_left_input_addition pfp_right_products_left_input_addition pfp_value_products_left_input_addition. ((((exists ff_h_pfp_products_left_input_additionleft. ff_h_pfp_products_left_input_additionleft + S (pfp_left_products_left_input_addition) = S ((S (pfp_index_products_left_input_addition)) * ac)) /\ exists ff_q_pfp_products_left_input_additionleft. ab = ff_q_pfp_products_left_input_additionleft * S ((S (pfp_index_products_left_input_addition)) * ac) + (pfp_left_products_left_input_addition))) /\ (((((exists ff_h_pfp_products_left_input_additionright. ff_h_pfp_products_left_input_additionright + S (pfp_right_products_left_input_addition) = S ((S (pfp_index_products_left_input_addition)) * bc)) /\ exists ff_q_pfp_products_left_input_additionright. bb = ff_q_pfp_products_left_input_additionright * S ((S (pfp_index_products_left_input_addition)) * bc) + (pfp_right_products_left_input_addition))) /\ (((((exists ff_h_pfp_products_left_input_additiontarget. ff_h_pfp_products_left_input_additiontarget + S (pfp_value_products_left_input_addition) = S ((S (pfp_index_products_left_input_addition)) * cc)) /\ exists ff_q_pfp_products_left_input_additiontarget. cb = ff_q_pfp_products_left_input_additiontarget * S ((S (pfp_index_products_left_input_addition)) * cc) + (pfp_value_products_left_input_addition))) /\ ((((exists pfa_gap_products_left_input_additionoperationleft. pfa_gap_products_left_input_additionoperationleft + S (pfp_left_products_left_input_addition) = (p)) /\ (((exists pfa_gap_products_left_input_additionoperationright. pfa_gap_products_left_input_additionoperationright + S (pfp_right_products_left_input_addition) = (p)) /\ ((((exists pfa_gap_products_left_input_additionoperationresultbound. pfa_gap_products_left_input_additionoperationresultbound + S (pfp_value_products_left_input_addition) = (p)) /\ ((exists pfa_offset_left_products_left_input_additionoperationresultcongruence pfa_offset_right_products_left_input_additionoperationresultcongruence. ((pfp_left_products_left_input_addition) + (pfp_right_products_left_input_addition)) + (p) * pfa_offset_left_products_left_input_additionoperationresultcongruence = (pfp_value_products_left_input_addition) + (p) * pfa_offset_right_products_left_input_additionoperationresultcongruence)))))))))))))))) -> (exists N ub uc vb vc wb wc. ((((forall fom_index_pfp_products_left_result_ubleft. (exists fom_gap_pfp_products_left_result_ubleft_index_bound. fom_gap_pfp_products_left_result_ubleft_index_bound + S (fom_index_pfp_products_left_result_ubleft) = M) -> exists fom_value_pfp_products_left_result_ubleft. ((((exists fom_beta_height_pfp_products_left_result_ubleft_entry. fom_beta_height_pfp_products_left_result_ubleft_entry + S (fom_value_pfp_products_left_result_ubleft) = S ((S (fom_index_pfp_products_left_result_ubleft)) * dc)) /\ exists fom_beta_quotient_pfp_products_left_result_ubleft_entry. db = fom_beta_quotient_pfp_products_left_result_ubleft_entry * S ((S (fom_index_pfp_products_left_result_ubleft)) * dc) + (fom_value_pfp_products_left_result_ubleft))) /\ (exists fom_gap_pfp_products_left_result_ubleft_value_bound. fom_gap_pfp_products_left_result_ubleft_value_bound + S (fom_value_pfp_products_left_result_ubleft) = p))) /\ (((forall fom_index_pfp_products_left_result_ubright. (exists fom_gap_pfp_products_left_result_ubright_index_bound. fom_gap_pfp_products_left_result_ubright_index_bound + S (fom_index_pfp_products_left_result_ubright) = L) -> exists fom_value_pfp_products_left_result_ubright. ((((exists fom_beta_height_pfp_products_left_result_ubright_entry. fom_beta_height_pfp_products_left_result_ubright_entry + S (fom_value_pfp_products_left_result_ubright) = S ((S (fom_index_pfp_products_left_result_ubright)) * ac)) /\ exists fom_beta_quotient_pfp_products_left_result_ubright_entry. ab = fom_beta_quotient_pfp_products_left_result_ubright_entry * S ((S (fom_index_pfp_products_left_result_ubright)) * ac) + (fom_value_pfp_products_left_result_ubright))) /\ (exists fom_gap_pfp_products_left_result_ubright_value_bound. fom_gap_pfp_products_left_result_ubright_value_bound + S (fom_value_pfp_products_left_result_ubright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((N)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (N)))))))) /\ ((forall pfc_index_products_left_result_ubcoefficients. (exists pfa_gap_products_left_result_ubcoefficientsbound. pfa_gap_products_left_result_ubcoefficientsbound + S (pfc_index_products_left_result_ubcoefficients) = (N)) -> exists pfc_value_products_left_result_ubcoefficients. ((((exists ff_h_pfp_products_left_result_ubcoefficientsentry. ff_h_pfp_products_left_result_ubcoefficientsentry + S (pfc_value_products_left_result_ubcoefficients) = S ((S (pfc_index_products_left_result_ubcoefficients)) * uc)) /\ exists ff_q_pfp_products_left_result_ubcoefficientsentry. ub = ff_q_pfp_products_left_result_ubcoefficientsentry * S ((S (pfc_index_products_left_result_ubcoefficients)) * uc) + (pfc_value_products_left_result_ubcoefficients))) /\ ((exists pfc_terms_code_products_left_result_ubcoefficientscoefficient pfc_terms_scale_products_left_result_ubcoefficientscoefficient pfc_natural_sum_products_left_result_ubcoefficientscoefficient. ((forall pfc_index_products_left_result_ubcoefficientscoefficientdiagonal. (exists pfa_gap_products_left_result_ubcoefficientscoefficientdiagonalbound. pfa_gap_products_left_result_ubcoefficientscoefficientdiagonalbound + S (pfc_index_products_left_result_ubcoefficientscoefficientdiagonal) = (S (pfc_index_products_left_result_ubcoefficients))) -> exists pfc_value_products_left_result_ubcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_left_result_ubcoefficientscoefficientdiagonalentry. ff_h_pfp_products_left_result_ubcoefficientscoefficientdiagonalentry + S (pfc_value_products_left_result_ubcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_left_result_ubcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_result_ubcoefficientscoefficient)) /\ exists ff_q_pfp_products_left_result_ubcoefficientscoefficientdiagonalentry. pfc_terms_code_products_left_result_ubcoefficientscoefficient = ff_q_pfp_products_left_result_ubcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_left_result_ubcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_result_ubcoefficientscoefficient) + (pfc_value_products_left_result_ubcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_left_result_ubcoefficientscoefficientdiagonalterm pfc_left_products_left_result_ubcoefficientscoefficientdiagonalterm pfc_right_products_left_result_ubcoefficientscoefficientdiagonalterm. (((pfc_index_products_left_result_ubcoefficientscoefficientdiagonal)+pfc_complement_products_left_result_ubcoefficientscoefficientdiagonalterm=(pfc_index_products_left_result_ubcoefficients)) /\ ((((((exists pfa_gap_products_left_result_ubcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_left_result_ubcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_left_result_ubcoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_left_result_ubcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_left_result_ubcoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_left_result_ubcoefficientscoefficientdiagonal)) * dc) + (pfc_left_products_left_result_ubcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_result_ubcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_left_result_ubcoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_products_left_result_ubcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_left_result_ubcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_left_result_ubcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_left_result_ubcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_left_result_ubcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_left_result_ubcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_left_result_ubcoefficientscoefficientdiagonalterm)) * ac)) /\ exists ff_q_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermrightentry. ab = ff_q_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_left_result_ubcoefficientscoefficientdiagonalterm)) * ac) + (pfc_right_products_left_result_ubcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_result_ubcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_left_result_ubcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_products_left_result_ubcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_left_result_ubcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_left_result_ubcoefficientscoefficientdiagonal)=pfc_left_products_left_result_ubcoefficientscoefficientdiagonalterm*pfc_right_products_left_result_ubcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_left_result_ubcoefficientscoefficientsum fs_v_pfc_products_left_result_ubcoefficientscoefficientsum. ((((exists fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_start. fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_start. fs_u_pfc_products_left_result_ubcoefficientscoefficientsum = fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_left_result_ubcoefficientscoefficient) = S ((S (S (pfc_index_products_left_result_ubcoefficients))) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_left_result_ubcoefficientscoefficientsum = fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_left_result_ubcoefficients))) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum) + (pfc_natural_sum_products_left_result_ubcoefficientscoefficient))) /\ forall fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps = S (pfc_index_products_left_result_ubcoefficients)) -> exists fs_a_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps fs_r_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps fs_s_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_result_ubcoefficientscoefficient)) /\ exists fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_left_result_ubcoefficientscoefficient = fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_result_ubcoefficientscoefficient) + (fs_a_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_left_result_ubcoefficientscoefficientsum = fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum) + (fs_r_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_left_result_ubcoefficientscoefficientsum = fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum) + (fs_s_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps = fs_r_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps + fs_a_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_left_result_ubcoefficientscoefficientresiduebound. pfa_gap_products_left_result_ubcoefficientscoefficientresiduebound + S (pfc_value_products_left_result_ubcoefficients) = (p)) /\ ((exists pfa_offset_left_products_left_result_ubcoefficientscoefficientresiduecongruence pfa_offset_right_products_left_result_ubcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_left_result_ubcoefficientscoefficient) + (p) * pfa_offset_left_products_left_result_ubcoefficientscoefficientresiduecongruence = (pfc_value_products_left_result_ubcoefficients) + (p) * pfa_offset_right_products_left_result_ubcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ (((((forall fom_index_pfp_products_left_result_vbleft. (exists fom_gap_pfp_products_left_result_vbleft_index_bound. fom_gap_pfp_products_left_result_vbleft_index_bound + S (fom_index_pfp_products_left_result_vbleft) = M) -> exists fom_value_pfp_products_left_result_vbleft. ((((exists fom_beta_height_pfp_products_left_result_vbleft_entry. fom_beta_height_pfp_products_left_result_vbleft_entry + S (fom_value_pfp_products_left_result_vbleft) = S ((S (fom_index_pfp_products_left_result_vbleft)) * dc)) /\ exists fom_beta_quotient_pfp_products_left_result_vbleft_entry. db = fom_beta_quotient_pfp_products_left_result_vbleft_entry * S ((S (fom_index_pfp_products_left_result_vbleft)) * dc) + (fom_value_pfp_products_left_result_vbleft))) /\ (exists fom_gap_pfp_products_left_result_vbleft_value_bound. fom_gap_pfp_products_left_result_vbleft_value_bound + S (fom_value_pfp_products_left_result_vbleft) = p))) /\ (((forall fom_index_pfp_products_left_result_vbright. (exists fom_gap_pfp_products_left_result_vbright_index_bound. fom_gap_pfp_products_left_result_vbright_index_bound + S (fom_index_pfp_products_left_result_vbright) = L) -> exists fom_value_pfp_products_left_result_vbright. ((((exists fom_beta_height_pfp_products_left_result_vbright_entry. fom_beta_height_pfp_products_left_result_vbright_entry + S (fom_value_pfp_products_left_result_vbright) = S ((S (fom_index_pfp_products_left_result_vbright)) * bc)) /\ exists fom_beta_quotient_pfp_products_left_result_vbright_entry. bb = fom_beta_quotient_pfp_products_left_result_vbright_entry * S ((S (fom_index_pfp_products_left_result_vbright)) * bc) + (fom_value_pfp_products_left_result_vbright))) /\ (exists fom_gap_pfp_products_left_result_vbright_value_bound. fom_gap_pfp_products_left_result_vbright_value_bound + S (fom_value_pfp_products_left_result_vbright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((N)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (N)))))))) /\ ((forall pfc_index_products_left_result_vbcoefficients. (exists pfa_gap_products_left_result_vbcoefficientsbound. pfa_gap_products_left_result_vbcoefficientsbound + S (pfc_index_products_left_result_vbcoefficients) = (N)) -> exists pfc_value_products_left_result_vbcoefficients. ((((exists ff_h_pfp_products_left_result_vbcoefficientsentry. ff_h_pfp_products_left_result_vbcoefficientsentry + S (pfc_value_products_left_result_vbcoefficients) = S ((S (pfc_index_products_left_result_vbcoefficients)) * vc)) /\ exists ff_q_pfp_products_left_result_vbcoefficientsentry. vb = ff_q_pfp_products_left_result_vbcoefficientsentry * S ((S (pfc_index_products_left_result_vbcoefficients)) * vc) + (pfc_value_products_left_result_vbcoefficients))) /\ ((exists pfc_terms_code_products_left_result_vbcoefficientscoefficient pfc_terms_scale_products_left_result_vbcoefficientscoefficient pfc_natural_sum_products_left_result_vbcoefficientscoefficient. ((forall pfc_index_products_left_result_vbcoefficientscoefficientdiagonal. (exists pfa_gap_products_left_result_vbcoefficientscoefficientdiagonalbound. pfa_gap_products_left_result_vbcoefficientscoefficientdiagonalbound + S (pfc_index_products_left_result_vbcoefficientscoefficientdiagonal) = (S (pfc_index_products_left_result_vbcoefficients))) -> exists pfc_value_products_left_result_vbcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_left_result_vbcoefficientscoefficientdiagonalentry. ff_h_pfp_products_left_result_vbcoefficientscoefficientdiagonalentry + S (pfc_value_products_left_result_vbcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_left_result_vbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_result_vbcoefficientscoefficient)) /\ exists ff_q_pfp_products_left_result_vbcoefficientscoefficientdiagonalentry. pfc_terms_code_products_left_result_vbcoefficientscoefficient = ff_q_pfp_products_left_result_vbcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_left_result_vbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_result_vbcoefficientscoefficient) + (pfc_value_products_left_result_vbcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_left_result_vbcoefficientscoefficientdiagonalterm pfc_left_products_left_result_vbcoefficientscoefficientdiagonalterm pfc_right_products_left_result_vbcoefficientscoefficientdiagonalterm. (((pfc_index_products_left_result_vbcoefficientscoefficientdiagonal)+pfc_complement_products_left_result_vbcoefficientscoefficientdiagonalterm=(pfc_index_products_left_result_vbcoefficients)) /\ ((((((exists pfa_gap_products_left_result_vbcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_left_result_vbcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_left_result_vbcoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_left_result_vbcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_left_result_vbcoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_left_result_vbcoefficientscoefficientdiagonal)) * dc) + (pfc_left_products_left_result_vbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_result_vbcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_left_result_vbcoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_products_left_result_vbcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_left_result_vbcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_left_result_vbcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_left_result_vbcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_left_result_vbcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_left_result_vbcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_left_result_vbcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_left_result_vbcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_products_left_result_vbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_result_vbcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_left_result_vbcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_products_left_result_vbcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_left_result_vbcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_left_result_vbcoefficientscoefficientdiagonal)=pfc_left_products_left_result_vbcoefficientscoefficientdiagonalterm*pfc_right_products_left_result_vbcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_left_result_vbcoefficientscoefficientsum fs_v_pfc_products_left_result_vbcoefficientscoefficientsum. ((((exists fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_start. fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_start. fs_u_pfc_products_left_result_vbcoefficientscoefficientsum = fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_left_result_vbcoefficientscoefficient) = S ((S (S (pfc_index_products_left_result_vbcoefficients))) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_left_result_vbcoefficientscoefficientsum = fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_left_result_vbcoefficients))) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum) + (pfc_natural_sum_products_left_result_vbcoefficientscoefficient))) /\ forall fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps = S (pfc_index_products_left_result_vbcoefficients)) -> exists fs_a_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps fs_r_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps fs_s_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_result_vbcoefficientscoefficient)) /\ exists fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_left_result_vbcoefficientscoefficient = fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_result_vbcoefficientscoefficient) + (fs_a_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_left_result_vbcoefficientscoefficientsum = fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum) + (fs_r_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_left_result_vbcoefficientscoefficientsum = fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum) + (fs_s_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps = fs_r_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps + fs_a_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_left_result_vbcoefficientscoefficientresiduebound. pfa_gap_products_left_result_vbcoefficientscoefficientresiduebound + S (pfc_value_products_left_result_vbcoefficients) = (p)) /\ ((exists pfa_offset_left_products_left_result_vbcoefficientscoefficientresiduecongruence pfa_offset_right_products_left_result_vbcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_left_result_vbcoefficientscoefficient) + (p) * pfa_offset_left_products_left_result_vbcoefficientscoefficientresiduecongruence = (pfc_value_products_left_result_vbcoefficients) + (p) * pfa_offset_right_products_left_result_vbcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ (((((forall fom_index_pfp_products_left_result_wbleft. (exists fom_gap_pfp_products_left_result_wbleft_index_bound. fom_gap_pfp_products_left_result_wbleft_index_bound + S (fom_index_pfp_products_left_result_wbleft) = M) -> exists fom_value_pfp_products_left_result_wbleft. ((((exists fom_beta_height_pfp_products_left_result_wbleft_entry. fom_beta_height_pfp_products_left_result_wbleft_entry + S (fom_value_pfp_products_left_result_wbleft) = S ((S (fom_index_pfp_products_left_result_wbleft)) * dc)) /\ exists fom_beta_quotient_pfp_products_left_result_wbleft_entry. db = fom_beta_quotient_pfp_products_left_result_wbleft_entry * S ((S (fom_index_pfp_products_left_result_wbleft)) * dc) + (fom_value_pfp_products_left_result_wbleft))) /\ (exists fom_gap_pfp_products_left_result_wbleft_value_bound. fom_gap_pfp_products_left_result_wbleft_value_bound + S (fom_value_pfp_products_left_result_wbleft) = p))) /\ (((forall fom_index_pfp_products_left_result_wbright. (exists fom_gap_pfp_products_left_result_wbright_index_bound. fom_gap_pfp_products_left_result_wbright_index_bound + S (fom_index_pfp_products_left_result_wbright) = L) -> exists fom_value_pfp_products_left_result_wbright. ((((exists fom_beta_height_pfp_products_left_result_wbright_entry. fom_beta_height_pfp_products_left_result_wbright_entry + S (fom_value_pfp_products_left_result_wbright) = S ((S (fom_index_pfp_products_left_result_wbright)) * cc)) /\ exists fom_beta_quotient_pfp_products_left_result_wbright_entry. cb = fom_beta_quotient_pfp_products_left_result_wbright_entry * S ((S (fom_index_pfp_products_left_result_wbright)) * cc) + (fom_value_pfp_products_left_result_wbright))) /\ (exists fom_gap_pfp_products_left_result_wbright_value_bound. fom_gap_pfp_products_left_result_wbright_value_bound + S (fom_value_pfp_products_left_result_wbright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((N)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (N)))))))) /\ ((forall pfc_index_products_left_result_wbcoefficients. (exists pfa_gap_products_left_result_wbcoefficientsbound. pfa_gap_products_left_result_wbcoefficientsbound + S (pfc_index_products_left_result_wbcoefficients) = (N)) -> exists pfc_value_products_left_result_wbcoefficients. ((((exists ff_h_pfp_products_left_result_wbcoefficientsentry. ff_h_pfp_products_left_result_wbcoefficientsentry + S (pfc_value_products_left_result_wbcoefficients) = S ((S (pfc_index_products_left_result_wbcoefficients)) * wc)) /\ exists ff_q_pfp_products_left_result_wbcoefficientsentry. wb = ff_q_pfp_products_left_result_wbcoefficientsentry * S ((S (pfc_index_products_left_result_wbcoefficients)) * wc) + (pfc_value_products_left_result_wbcoefficients))) /\ ((exists pfc_terms_code_products_left_result_wbcoefficientscoefficient pfc_terms_scale_products_left_result_wbcoefficientscoefficient pfc_natural_sum_products_left_result_wbcoefficientscoefficient. ((forall pfc_index_products_left_result_wbcoefficientscoefficientdiagonal. (exists pfa_gap_products_left_result_wbcoefficientscoefficientdiagonalbound. pfa_gap_products_left_result_wbcoefficientscoefficientdiagonalbound + S (pfc_index_products_left_result_wbcoefficientscoefficientdiagonal) = (S (pfc_index_products_left_result_wbcoefficients))) -> exists pfc_value_products_left_result_wbcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_left_result_wbcoefficientscoefficientdiagonalentry. ff_h_pfp_products_left_result_wbcoefficientscoefficientdiagonalentry + S (pfc_value_products_left_result_wbcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_left_result_wbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_result_wbcoefficientscoefficient)) /\ exists ff_q_pfp_products_left_result_wbcoefficientscoefficientdiagonalentry. pfc_terms_code_products_left_result_wbcoefficientscoefficient = ff_q_pfp_products_left_result_wbcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_left_result_wbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_result_wbcoefficientscoefficient) + (pfc_value_products_left_result_wbcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_left_result_wbcoefficientscoefficientdiagonalterm pfc_left_products_left_result_wbcoefficientscoefficientdiagonalterm pfc_right_products_left_result_wbcoefficientscoefficientdiagonalterm. (((pfc_index_products_left_result_wbcoefficientscoefficientdiagonal)+pfc_complement_products_left_result_wbcoefficientscoefficientdiagonalterm=(pfc_index_products_left_result_wbcoefficients)) /\ ((((((exists pfa_gap_products_left_result_wbcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_left_result_wbcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_left_result_wbcoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_left_result_wbcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_left_result_wbcoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_left_result_wbcoefficientscoefficientdiagonal)) * dc) + (pfc_left_products_left_result_wbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_result_wbcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_left_result_wbcoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_products_left_result_wbcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_left_result_wbcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_left_result_wbcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_left_result_wbcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_left_result_wbcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_left_result_wbcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_left_result_wbcoefficientscoefficientdiagonalterm)) * cc)) /\ exists ff_q_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermrightentry. cb = ff_q_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_left_result_wbcoefficientscoefficientdiagonalterm)) * cc) + (pfc_right_products_left_result_wbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_result_wbcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_left_result_wbcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_products_left_result_wbcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_left_result_wbcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_left_result_wbcoefficientscoefficientdiagonal)=pfc_left_products_left_result_wbcoefficientscoefficientdiagonalterm*pfc_right_products_left_result_wbcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_left_result_wbcoefficientscoefficientsum fs_v_pfc_products_left_result_wbcoefficientscoefficientsum. ((((exists fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_start. fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_start. fs_u_pfc_products_left_result_wbcoefficientscoefficientsum = fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_left_result_wbcoefficientscoefficient) = S ((S (S (pfc_index_products_left_result_wbcoefficients))) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_left_result_wbcoefficientscoefficientsum = fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_left_result_wbcoefficients))) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum) + (pfc_natural_sum_products_left_result_wbcoefficientscoefficient))) /\ forall fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps = S (pfc_index_products_left_result_wbcoefficients)) -> exists fs_a_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps fs_r_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps fs_s_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_result_wbcoefficientscoefficient)) /\ exists fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_left_result_wbcoefficientscoefficient = fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_result_wbcoefficientscoefficient) + (fs_a_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_left_result_wbcoefficientscoefficientsum = fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum) + (fs_r_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_left_result_wbcoefficientscoefficientsum = fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum) + (fs_s_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps = fs_r_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps + fs_a_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_left_result_wbcoefficientscoefficientresiduebound. pfa_gap_products_left_result_wbcoefficientscoefficientresiduebound + S (pfc_value_products_left_result_wbcoefficients) = (p)) /\ ((exists pfa_offset_left_products_left_result_wbcoefficientscoefficientresiduecongruence pfa_offset_right_products_left_result_wbcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_left_result_wbcoefficientscoefficient) + (p) * pfa_offset_left_products_left_result_wbcoefficientscoefficientresiduecongruence = (pfc_value_products_left_result_wbcoefficients) + (p) * pfa_offset_right_products_left_result_wbcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ ((forall pfp_index_products_left_addition. (exists pfa_gap_products_left_additionindex. pfa_gap_products_left_additionindex + S (pfp_index_products_left_addition) = (N)) -> exists pfp_left_products_left_addition pfp_right_products_left_addition pfp_value_products_left_addition. ((((exists ff_h_pfp_products_left_additionleft. ff_h_pfp_products_left_additionleft + S (pfp_left_products_left_addition) = S ((S (pfp_index_products_left_addition)) * uc)) /\ exists ff_q_pfp_products_left_additionleft. ub = ff_q_pfp_products_left_additionleft * S ((S (pfp_index_products_left_addition)) * uc) + (pfp_left_products_left_addition))) /\ (((((exists ff_h_pfp_products_left_additionright. ff_h_pfp_products_left_additionright + S (pfp_right_products_left_addition) = S ((S (pfp_index_products_left_addition)) * vc)) /\ exists ff_q_pfp_products_left_additionright. vb = ff_q_pfp_products_left_additionright * S ((S (pfp_index_products_left_addition)) * vc) + (pfp_right_products_left_addition))) /\ (((((exists ff_h_pfp_products_left_additiontarget. ff_h_pfp_products_left_additiontarget + S (pfp_value_products_left_addition) = S ((S (pfp_index_products_left_addition)) * wc)) /\ exists ff_q_pfp_products_left_additiontarget. wb = ff_q_pfp_products_left_additiontarget * S ((S (pfp_index_products_left_addition)) * wc) + (pfp_value_products_left_addition))) /\ ((((exists pfa_gap_products_left_additionoperationleft. pfa_gap_products_left_additionoperationleft + S (pfp_left_products_left_addition) = (p)) /\ (((exists pfa_gap_products_left_additionoperationright. pfa_gap_products_left_additionoperationright + S (pfp_right_products_left_addition) = (p)) /\ ((((exists pfa_gap_products_left_additionoperationresultbound. pfa_gap_products_left_additionoperationresultbound + S (pfp_value_products_left_addition) = (p)) /\ ((exists pfa_offset_left_products_left_additionoperationresultcongruence pfa_offset_right_products_left_additionoperationresultcongruence. ((pfp_left_products_left_addition) + (pfp_right_products_left_addition)) + (p) * pfa_offset_left_products_left_additionoperationresultcongruence = (pfp_value_products_left_addition) + (p) * pfa_offset_right_products_left_additionoperationresultcongruence)))))))))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro db
  10. intro dc
  11. intro M
  12. intro hp
  13. intro hd
  14. intro hs
  15. have hlength : exists N. ((((M)=0 \/ (L)=0) /\ (((N)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (N)))))))
  16. specialize polynomial_product_length_exists (M)
  17. specialize polynomial_product_length_exists (L)
  18. apply polynomial_product_length_exists
  19. cases hlength
  20. have hbounds : ((forall fom_index_pfp_products_left_bounded_ab. (exists fom_gap_pfp_products_left_bounded_ab_index_bound. fom_gap_pfp_products_left_bounded_ab_index_bound + S (fom_index_pfp_products_left_bounded_ab) = L) -> exists fom_value_pfp_products_left_bounded_ab. ((((exists fom_beta_height_pfp_products_left_bounded_ab_entry. fom_beta_height_pfp_products_left_bounded_ab_entry + S (fom_value_pfp_products_left_bounded_ab) = S ((S (fom_index_pfp_products_left_bounded_ab)) * ac)) /\ exists fom_beta_quotient_pfp_products_left_bounded_ab_entry. ab = fom_beta_quotient_pfp_products_left_bounded_ab_entry * S ((S (fom_index_pfp_products_left_bounded_ab)) * ac) + (fom_value_pfp_products_left_bounded_ab))) /\ (exists fom_gap_pfp_products_left_bounded_ab_value_bound. fom_gap_pfp_products_left_bounded_ab_value_bound + S (fom_value_pfp_products_left_bounded_ab) = p))) /\ (((forall fom_index_pfp_products_left_bounded_bb. (exists fom_gap_pfp_products_left_bounded_bb_index_bound. fom_gap_pfp_products_left_bounded_bb_index_bound + S (fom_index_pfp_products_left_bounded_bb) = L) -> exists fom_value_pfp_products_left_bounded_bb. ((((exists fom_beta_height_pfp_products_left_bounded_bb_entry. fom_beta_height_pfp_products_left_bounded_bb_entry + S (fom_value_pfp_products_left_bounded_bb) = S ((S (fom_index_pfp_products_left_bounded_bb)) * bc)) /\ exists fom_beta_quotient_pfp_products_left_bounded_bb_entry. bb = fom_beta_quotient_pfp_products_left_bounded_bb_entry * S ((S (fom_index_pfp_products_left_bounded_bb)) * bc) + (fom_value_pfp_products_left_bounded_bb))) /\ (exists fom_gap_pfp_products_left_bounded_bb_value_bound. fom_gap_pfp_products_left_bounded_bb_value_bound + S (fom_value_pfp_products_left_bounded_bb) = p))) /\ ((forall fom_index_pfp_products_left_bounded_cb. (exists fom_gap_pfp_products_left_bounded_cb_index_bound. fom_gap_pfp_products_left_bounded_cb_index_bound + S (fom_index_pfp_products_left_bounded_cb) = L) -> exists fom_value_pfp_products_left_bounded_cb. ((((exists fom_beta_height_pfp_products_left_bounded_cb_entry. fom_beta_height_pfp_products_left_bounded_cb_entry + S (fom_value_pfp_products_left_bounded_cb) = S ((S (fom_index_pfp_products_left_bounded_cb)) * cc)) /\ exists fom_beta_quotient_pfp_products_left_bounded_cb_entry. cb = fom_beta_quotient_pfp_products_left_bounded_cb_entry * S ((S (fom_index_pfp_products_left_bounded_cb)) * cc) + (fom_value_pfp_products_left_bounded_cb))) /\ (exists fom_gap_pfp_products_left_bounded_cb_value_bound. fom_gap_pfp_products_left_bounded_cb_value_bound + S (fom_value_pfp_products_left_bounded_cb) = p)))))))
  21. specialize prime_field_polynomial_add_bounded (p)
  22. specialize prime_field_polynomial_add_bounded (ab)
  23. specialize prime_field_polynomial_add_bounded (ac)
  24. specialize prime_field_polynomial_add_bounded (bb)
  25. specialize prime_field_polynomial_add_bounded (bc)
  26. specialize prime_field_polynomial_add_bounded (cb)
  27. specialize prime_field_polynomial_add_bounded (cc)
  28. specialize prime_field_polynomial_add_bounded (L)
  29. apply prime_field_polynomial_add_bounded
  30. exact hs
  31. cases hbounds
  32. cases hbounds_right
  33. have hu : exists ub uc. ((forall fom_index_pfp_products_left_huleft. (exists fom_gap_pfp_products_left_huleft_index_bound. fom_gap_pfp_products_left_huleft_index_bound + S (fom_index_pfp_products_left_huleft) = M) -> exists fom_value_pfp_products_left_huleft. ((((exists fom_beta_height_pfp_products_left_huleft_entry. fom_beta_height_pfp_products_left_huleft_entry + S (fom_value_pfp_products_left_huleft) = S ((S (fom_index_pfp_products_left_huleft)) * dc)) /\ exists fom_beta_quotient_pfp_products_left_huleft_entry. db = fom_beta_quotient_pfp_products_left_huleft_entry * S ((S (fom_index_pfp_products_left_huleft)) * dc) + (fom_value_pfp_products_left_huleft))) /\ (exists fom_gap_pfp_products_left_huleft_value_bound. fom_gap_pfp_products_left_huleft_value_bound + S (fom_value_pfp_products_left_huleft) = p))) /\ (((forall fom_index_pfp_products_left_huright. (exists fom_gap_pfp_products_left_huright_index_bound. fom_gap_pfp_products_left_huright_index_bound + S (fom_index_pfp_products_left_huright) = L) -> exists fom_value_pfp_products_left_huright. ((((exists fom_beta_height_pfp_products_left_huright_entry. fom_beta_height_pfp_products_left_huright_entry + S (fom_value_pfp_products_left_huright) = S ((S (fom_index_pfp_products_left_huright)) * ac)) /\ exists fom_beta_quotient_pfp_products_left_huright_entry. ab = fom_beta_quotient_pfp_products_left_huright_entry * S ((S (fom_index_pfp_products_left_huright)) * ac) + (fom_value_pfp_products_left_huright))) /\ (exists fom_gap_pfp_products_left_huright_value_bound. fom_gap_pfp_products_left_huright_value_bound + S (fom_value_pfp_products_left_huright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((x)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (x)))))))) /\ ((forall pfc_index_products_left_hucoefficients. (exists pfa_gap_products_left_hucoefficientsbound. pfa_gap_products_left_hucoefficientsbound + S (pfc_index_products_left_hucoefficients) = (x)) -> exists pfc_value_products_left_hucoefficients. ((((exists ff_h_pfp_products_left_hucoefficientsentry. ff_h_pfp_products_left_hucoefficientsentry + S (pfc_value_products_left_hucoefficients) = S ((S (pfc_index_products_left_hucoefficients)) * uc)) /\ exists ff_q_pfp_products_left_hucoefficientsentry. ub = ff_q_pfp_products_left_hucoefficientsentry * S ((S (pfc_index_products_left_hucoefficients)) * uc) + (pfc_value_products_left_hucoefficients))) /\ ((exists pfc_terms_code_products_left_hucoefficientscoefficient pfc_terms_scale_products_left_hucoefficientscoefficient pfc_natural_sum_products_left_hucoefficientscoefficient. ((forall pfc_index_products_left_hucoefficientscoefficientdiagonal. (exists pfa_gap_products_left_hucoefficientscoefficientdiagonalbound. pfa_gap_products_left_hucoefficientscoefficientdiagonalbound + S (pfc_index_products_left_hucoefficientscoefficientdiagonal) = (S (pfc_index_products_left_hucoefficients))) -> exists pfc_value_products_left_hucoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_left_hucoefficientscoefficientdiagonalentry. ff_h_pfp_products_left_hucoefficientscoefficientdiagonalentry + S (pfc_value_products_left_hucoefficientscoefficientdiagonal) = S ((S (pfc_index_products_left_hucoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_hucoefficientscoefficient)) /\ exists ff_q_pfp_products_left_hucoefficientscoefficientdiagonalentry. pfc_terms_code_products_left_hucoefficientscoefficient = ff_q_pfp_products_left_hucoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_left_hucoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_hucoefficientscoefficient) + (pfc_value_products_left_hucoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_left_hucoefficientscoefficientdiagonalterm pfc_left_products_left_hucoefficientscoefficientdiagonalterm pfc_right_products_left_hucoefficientscoefficientdiagonalterm. (((pfc_index_products_left_hucoefficientscoefficientdiagonal)+pfc_complement_products_left_hucoefficientscoefficientdiagonalterm=(pfc_index_products_left_hucoefficients)) /\ ((((((exists pfa_gap_products_left_hucoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_left_hucoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_left_hucoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_products_left_hucoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_left_hucoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_left_hucoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_left_hucoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_products_left_hucoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_products_left_hucoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_left_hucoefficientscoefficientdiagonal)) * dc) + (pfc_left_products_left_hucoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_hucoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_left_hucoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_products_left_hucoefficientscoefficientdiagonal)) /\ (((pfc_left_products_left_hucoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_left_hucoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_left_hucoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_left_hucoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_products_left_hucoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_left_hucoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_left_hucoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_left_hucoefficientscoefficientdiagonalterm)) * ac)) /\ exists ff_q_pfp_products_left_hucoefficientscoefficientdiagonaltermrightentry. ab = ff_q_pfp_products_left_hucoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_left_hucoefficientscoefficientdiagonalterm)) * ac) + (pfc_right_products_left_hucoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_hucoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_left_hucoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_products_left_hucoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_left_hucoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_left_hucoefficientscoefficientdiagonal)=pfc_left_products_left_hucoefficientscoefficientdiagonalterm*pfc_right_products_left_hucoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_left_hucoefficientscoefficientsum fs_v_pfc_products_left_hucoefficientscoefficientsum. ((((exists fs_h_pfc_products_left_hucoefficientscoefficientsum_body_start. fs_h_pfc_products_left_hucoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_left_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hucoefficientscoefficientsum_body_start. fs_u_pfc_products_left_hucoefficientscoefficientsum = fs_q_pfc_products_left_hucoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_left_hucoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_left_hucoefficientscoefficientsum_body_terminal. fs_h_pfc_products_left_hucoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_left_hucoefficientscoefficient) = S ((S (S (pfc_index_products_left_hucoefficients))) * fs_v_pfc_products_left_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hucoefficientscoefficientsum_body_terminal. fs_u_pfc_products_left_hucoefficientscoefficientsum = fs_q_pfc_products_left_hucoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_left_hucoefficients))) * fs_v_pfc_products_left_hucoefficientscoefficientsum) + (pfc_natural_sum_products_left_hucoefficientscoefficient))) /\ forall fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_left_hucoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_left_hucoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps = S (pfc_index_products_left_hucoefficients)) -> exists fs_a_pfc_products_left_hucoefficientscoefficientsum_body_steps fs_r_pfc_products_left_hucoefficientscoefficientsum_body_steps fs_s_pfc_products_left_hucoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_left_hucoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_left_hucoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_left_hucoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_hucoefficientscoefficient)) /\ exists fs_q_pfc_products_left_hucoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_left_hucoefficientscoefficient = fs_q_pfc_products_left_hucoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_hucoefficientscoefficient) + (fs_a_pfc_products_left_hucoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_hucoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_left_hucoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_left_hucoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hucoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_left_hucoefficientscoefficientsum = fs_q_pfc_products_left_hucoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hucoefficientscoefficientsum) + (fs_r_pfc_products_left_hucoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_hucoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_left_hucoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_left_hucoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hucoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_left_hucoefficientscoefficientsum = fs_q_pfc_products_left_hucoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hucoefficientscoefficientsum) + (fs_s_pfc_products_left_hucoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_left_hucoefficientscoefficientsum_body_steps = fs_r_pfc_products_left_hucoefficientscoefficientsum_body_steps + fs_a_pfc_products_left_hucoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_left_hucoefficientscoefficientresiduebound. pfa_gap_products_left_hucoefficientscoefficientresiduebound + S (pfc_value_products_left_hucoefficients) = (p)) /\ ((exists pfa_offset_left_products_left_hucoefficientscoefficientresiduecongruence pfa_offset_right_products_left_hucoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_left_hucoefficientscoefficient) + (p) * pfa_offset_left_products_left_hucoefficientscoefficientresiduecongruence = (pfc_value_products_left_hucoefficients) + (p) * pfa_offset_right_products_left_hucoefficientscoefficientresiduecongruence))))))))))))))))))
  34. specialize prime_field_polynomial_convolution_at_length_exists (p)
  35. specialize prime_field_polynomial_convolution_at_length_exists (db)
  36. specialize prime_field_polynomial_convolution_at_length_exists (dc)
  37. specialize prime_field_polynomial_convolution_at_length_exists (M)
  38. specialize prime_field_polynomial_convolution_at_length_exists (ab)
  39. specialize prime_field_polynomial_convolution_at_length_exists (ac)
  40. specialize prime_field_polynomial_convolution_at_length_exists (L)
  41. specialize prime_field_polynomial_convolution_at_length_exists (x)
  42. apply prime_field_polynomial_convolution_at_length_exists
  43. exact hp
  44. exact hd
  45. exact hbounds_left
  46. exact hlength_witness
  47. cases hu
  48. cases hu_witness
  49. have hv : exists ub uc. ((forall fom_index_pfp_products_left_hvleft. (exists fom_gap_pfp_products_left_hvleft_index_bound. fom_gap_pfp_products_left_hvleft_index_bound + S (fom_index_pfp_products_left_hvleft) = M) -> exists fom_value_pfp_products_left_hvleft. ((((exists fom_beta_height_pfp_products_left_hvleft_entry. fom_beta_height_pfp_products_left_hvleft_entry + S (fom_value_pfp_products_left_hvleft) = S ((S (fom_index_pfp_products_left_hvleft)) * dc)) /\ exists fom_beta_quotient_pfp_products_left_hvleft_entry. db = fom_beta_quotient_pfp_products_left_hvleft_entry * S ((S (fom_index_pfp_products_left_hvleft)) * dc) + (fom_value_pfp_products_left_hvleft))) /\ (exists fom_gap_pfp_products_left_hvleft_value_bound. fom_gap_pfp_products_left_hvleft_value_bound + S (fom_value_pfp_products_left_hvleft) = p))) /\ (((forall fom_index_pfp_products_left_hvright. (exists fom_gap_pfp_products_left_hvright_index_bound. fom_gap_pfp_products_left_hvright_index_bound + S (fom_index_pfp_products_left_hvright) = L) -> exists fom_value_pfp_products_left_hvright. ((((exists fom_beta_height_pfp_products_left_hvright_entry. fom_beta_height_pfp_products_left_hvright_entry + S (fom_value_pfp_products_left_hvright) = S ((S (fom_index_pfp_products_left_hvright)) * bc)) /\ exists fom_beta_quotient_pfp_products_left_hvright_entry. bb = fom_beta_quotient_pfp_products_left_hvright_entry * S ((S (fom_index_pfp_products_left_hvright)) * bc) + (fom_value_pfp_products_left_hvright))) /\ (exists fom_gap_pfp_products_left_hvright_value_bound. fom_gap_pfp_products_left_hvright_value_bound + S (fom_value_pfp_products_left_hvright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((x)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (x)))))))) /\ ((forall pfc_index_products_left_hvcoefficients. (exists pfa_gap_products_left_hvcoefficientsbound. pfa_gap_products_left_hvcoefficientsbound + S (pfc_index_products_left_hvcoefficients) = (x)) -> exists pfc_value_products_left_hvcoefficients. ((((exists ff_h_pfp_products_left_hvcoefficientsentry. ff_h_pfp_products_left_hvcoefficientsentry + S (pfc_value_products_left_hvcoefficients) = S ((S (pfc_index_products_left_hvcoefficients)) * uc)) /\ exists ff_q_pfp_products_left_hvcoefficientsentry. ub = ff_q_pfp_products_left_hvcoefficientsentry * S ((S (pfc_index_products_left_hvcoefficients)) * uc) + (pfc_value_products_left_hvcoefficients))) /\ ((exists pfc_terms_code_products_left_hvcoefficientscoefficient pfc_terms_scale_products_left_hvcoefficientscoefficient pfc_natural_sum_products_left_hvcoefficientscoefficient. ((forall pfc_index_products_left_hvcoefficientscoefficientdiagonal. (exists pfa_gap_products_left_hvcoefficientscoefficientdiagonalbound. pfa_gap_products_left_hvcoefficientscoefficientdiagonalbound + S (pfc_index_products_left_hvcoefficientscoefficientdiagonal) = (S (pfc_index_products_left_hvcoefficients))) -> exists pfc_value_products_left_hvcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_left_hvcoefficientscoefficientdiagonalentry. ff_h_pfp_products_left_hvcoefficientscoefficientdiagonalentry + S (pfc_value_products_left_hvcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_left_hvcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_hvcoefficientscoefficient)) /\ exists ff_q_pfp_products_left_hvcoefficientscoefficientdiagonalentry. pfc_terms_code_products_left_hvcoefficientscoefficient = ff_q_pfp_products_left_hvcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_left_hvcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_hvcoefficientscoefficient) + (pfc_value_products_left_hvcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_left_hvcoefficientscoefficientdiagonalterm pfc_left_products_left_hvcoefficientscoefficientdiagonalterm pfc_right_products_left_hvcoefficientscoefficientdiagonalterm. (((pfc_index_products_left_hvcoefficientscoefficientdiagonal)+pfc_complement_products_left_hvcoefficientscoefficientdiagonalterm=(pfc_index_products_left_hvcoefficients)) /\ ((((((exists pfa_gap_products_left_hvcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_left_hvcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_left_hvcoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_products_left_hvcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_left_hvcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_left_hvcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_left_hvcoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_products_left_hvcoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_products_left_hvcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_left_hvcoefficientscoefficientdiagonal)) * dc) + (pfc_left_products_left_hvcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_hvcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_left_hvcoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_products_left_hvcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_left_hvcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_left_hvcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_left_hvcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_left_hvcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_products_left_hvcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_left_hvcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_left_hvcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_left_hvcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_products_left_hvcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_products_left_hvcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_left_hvcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_products_left_hvcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_hvcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_left_hvcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_products_left_hvcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_left_hvcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_left_hvcoefficientscoefficientdiagonal)=pfc_left_products_left_hvcoefficientscoefficientdiagonalterm*pfc_right_products_left_hvcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_left_hvcoefficientscoefficientsum fs_v_pfc_products_left_hvcoefficientscoefficientsum. ((((exists fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_start. fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_left_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_start. fs_u_pfc_products_left_hvcoefficientscoefficientsum = fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_left_hvcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_left_hvcoefficientscoefficient) = S ((S (S (pfc_index_products_left_hvcoefficients))) * fs_v_pfc_products_left_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_left_hvcoefficientscoefficientsum = fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_left_hvcoefficients))) * fs_v_pfc_products_left_hvcoefficientscoefficientsum) + (pfc_natural_sum_products_left_hvcoefficientscoefficient))) /\ forall fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_left_hvcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_left_hvcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps = S (pfc_index_products_left_hvcoefficients)) -> exists fs_a_pfc_products_left_hvcoefficientscoefficientsum_body_steps fs_r_pfc_products_left_hvcoefficientscoefficientsum_body_steps fs_s_pfc_products_left_hvcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_left_hvcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_hvcoefficientscoefficient)) /\ exists fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_left_hvcoefficientscoefficient = fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_hvcoefficientscoefficient) + (fs_a_pfc_products_left_hvcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_left_hvcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_left_hvcoefficientscoefficientsum = fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hvcoefficientscoefficientsum) + (fs_r_pfc_products_left_hvcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_left_hvcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_left_hvcoefficientscoefficientsum = fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hvcoefficientscoefficientsum) + (fs_s_pfc_products_left_hvcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_left_hvcoefficientscoefficientsum_body_steps = fs_r_pfc_products_left_hvcoefficientscoefficientsum_body_steps + fs_a_pfc_products_left_hvcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_left_hvcoefficientscoefficientresiduebound. pfa_gap_products_left_hvcoefficientscoefficientresiduebound + S (pfc_value_products_left_hvcoefficients) = (p)) /\ ((exists pfa_offset_left_products_left_hvcoefficientscoefficientresiduecongruence pfa_offset_right_products_left_hvcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_left_hvcoefficientscoefficient) + (p) * pfa_offset_left_products_left_hvcoefficientscoefficientresiduecongruence = (pfc_value_products_left_hvcoefficients) + (p) * pfa_offset_right_products_left_hvcoefficientscoefficientresiduecongruence))))))))))))))))))
  50. specialize prime_field_polynomial_convolution_at_length_exists (p)
  51. specialize prime_field_polynomial_convolution_at_length_exists (db)
  52. specialize prime_field_polynomial_convolution_at_length_exists (dc)
  53. specialize prime_field_polynomial_convolution_at_length_exists (M)
  54. specialize prime_field_polynomial_convolution_at_length_exists (bb)
  55. specialize prime_field_polynomial_convolution_at_length_exists (bc)
  56. specialize prime_field_polynomial_convolution_at_length_exists (L)
  57. specialize prime_field_polynomial_convolution_at_length_exists (x)
  58. apply prime_field_polynomial_convolution_at_length_exists
  59. exact hp
  60. exact hd
  61. exact hbounds_right_left
  62. exact hlength_witness
  63. cases hv
  64. cases hv_witness
  65. have hw : exists ub uc. ((forall fom_index_pfp_products_left_hwleft. (exists fom_gap_pfp_products_left_hwleft_index_bound. fom_gap_pfp_products_left_hwleft_index_bound + S (fom_index_pfp_products_left_hwleft) = M) -> exists fom_value_pfp_products_left_hwleft. ((((exists fom_beta_height_pfp_products_left_hwleft_entry. fom_beta_height_pfp_products_left_hwleft_entry + S (fom_value_pfp_products_left_hwleft) = S ((S (fom_index_pfp_products_left_hwleft)) * dc)) /\ exists fom_beta_quotient_pfp_products_left_hwleft_entry. db = fom_beta_quotient_pfp_products_left_hwleft_entry * S ((S (fom_index_pfp_products_left_hwleft)) * dc) + (fom_value_pfp_products_left_hwleft))) /\ (exists fom_gap_pfp_products_left_hwleft_value_bound. fom_gap_pfp_products_left_hwleft_value_bound + S (fom_value_pfp_products_left_hwleft) = p))) /\ (((forall fom_index_pfp_products_left_hwright. (exists fom_gap_pfp_products_left_hwright_index_bound. fom_gap_pfp_products_left_hwright_index_bound + S (fom_index_pfp_products_left_hwright) = L) -> exists fom_value_pfp_products_left_hwright. ((((exists fom_beta_height_pfp_products_left_hwright_entry. fom_beta_height_pfp_products_left_hwright_entry + S (fom_value_pfp_products_left_hwright) = S ((S (fom_index_pfp_products_left_hwright)) * cc)) /\ exists fom_beta_quotient_pfp_products_left_hwright_entry. cb = fom_beta_quotient_pfp_products_left_hwright_entry * S ((S (fom_index_pfp_products_left_hwright)) * cc) + (fom_value_pfp_products_left_hwright))) /\ (exists fom_gap_pfp_products_left_hwright_value_bound. fom_gap_pfp_products_left_hwright_value_bound + S (fom_value_pfp_products_left_hwright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((x)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (x)))))))) /\ ((forall pfc_index_products_left_hwcoefficients. (exists pfa_gap_products_left_hwcoefficientsbound. pfa_gap_products_left_hwcoefficientsbound + S (pfc_index_products_left_hwcoefficients) = (x)) -> exists pfc_value_products_left_hwcoefficients. ((((exists ff_h_pfp_products_left_hwcoefficientsentry. ff_h_pfp_products_left_hwcoefficientsentry + S (pfc_value_products_left_hwcoefficients) = S ((S (pfc_index_products_left_hwcoefficients)) * uc)) /\ exists ff_q_pfp_products_left_hwcoefficientsentry. ub = ff_q_pfp_products_left_hwcoefficientsentry * S ((S (pfc_index_products_left_hwcoefficients)) * uc) + (pfc_value_products_left_hwcoefficients))) /\ ((exists pfc_terms_code_products_left_hwcoefficientscoefficient pfc_terms_scale_products_left_hwcoefficientscoefficient pfc_natural_sum_products_left_hwcoefficientscoefficient. ((forall pfc_index_products_left_hwcoefficientscoefficientdiagonal. (exists pfa_gap_products_left_hwcoefficientscoefficientdiagonalbound. pfa_gap_products_left_hwcoefficientscoefficientdiagonalbound + S (pfc_index_products_left_hwcoefficientscoefficientdiagonal) = (S (pfc_index_products_left_hwcoefficients))) -> exists pfc_value_products_left_hwcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_left_hwcoefficientscoefficientdiagonalentry. ff_h_pfp_products_left_hwcoefficientscoefficientdiagonalentry + S (pfc_value_products_left_hwcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_left_hwcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_hwcoefficientscoefficient)) /\ exists ff_q_pfp_products_left_hwcoefficientscoefficientdiagonalentry. pfc_terms_code_products_left_hwcoefficientscoefficient = ff_q_pfp_products_left_hwcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_left_hwcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_hwcoefficientscoefficient) + (pfc_value_products_left_hwcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_left_hwcoefficientscoefficientdiagonalterm pfc_left_products_left_hwcoefficientscoefficientdiagonalterm pfc_right_products_left_hwcoefficientscoefficientdiagonalterm. (((pfc_index_products_left_hwcoefficientscoefficientdiagonal)+pfc_complement_products_left_hwcoefficientscoefficientdiagonalterm=(pfc_index_products_left_hwcoefficients)) /\ ((((((exists pfa_gap_products_left_hwcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_left_hwcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_left_hwcoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_products_left_hwcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_left_hwcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_left_hwcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_left_hwcoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_products_left_hwcoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_products_left_hwcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_left_hwcoefficientscoefficientdiagonal)) * dc) + (pfc_left_products_left_hwcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_hwcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_left_hwcoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_products_left_hwcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_left_hwcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_left_hwcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_left_hwcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_left_hwcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_products_left_hwcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_left_hwcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_left_hwcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_left_hwcoefficientscoefficientdiagonalterm)) * cc)) /\ exists ff_q_pfp_products_left_hwcoefficientscoefficientdiagonaltermrightentry. cb = ff_q_pfp_products_left_hwcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_left_hwcoefficientscoefficientdiagonalterm)) * cc) + (pfc_right_products_left_hwcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_hwcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_left_hwcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_products_left_hwcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_left_hwcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_left_hwcoefficientscoefficientdiagonal)=pfc_left_products_left_hwcoefficientscoefficientdiagonalterm*pfc_right_products_left_hwcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_left_hwcoefficientscoefficientsum fs_v_pfc_products_left_hwcoefficientscoefficientsum. ((((exists fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_start. fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_left_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_start. fs_u_pfc_products_left_hwcoefficientscoefficientsum = fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_left_hwcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_left_hwcoefficientscoefficient) = S ((S (S (pfc_index_products_left_hwcoefficients))) * fs_v_pfc_products_left_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_left_hwcoefficientscoefficientsum = fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_left_hwcoefficients))) * fs_v_pfc_products_left_hwcoefficientscoefficientsum) + (pfc_natural_sum_products_left_hwcoefficientscoefficient))) /\ forall fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_left_hwcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_left_hwcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps = S (pfc_index_products_left_hwcoefficients)) -> exists fs_a_pfc_products_left_hwcoefficientscoefficientsum_body_steps fs_r_pfc_products_left_hwcoefficientscoefficientsum_body_steps fs_s_pfc_products_left_hwcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_left_hwcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_hwcoefficientscoefficient)) /\ exists fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_left_hwcoefficientscoefficient = fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_hwcoefficientscoefficient) + (fs_a_pfc_products_left_hwcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_left_hwcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_left_hwcoefficientscoefficientsum = fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hwcoefficientscoefficientsum) + (fs_r_pfc_products_left_hwcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_left_hwcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_left_hwcoefficientscoefficientsum = fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hwcoefficientscoefficientsum) + (fs_s_pfc_products_left_hwcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_left_hwcoefficientscoefficientsum_body_steps = fs_r_pfc_products_left_hwcoefficientscoefficientsum_body_steps + fs_a_pfc_products_left_hwcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_left_hwcoefficientscoefficientresiduebound. pfa_gap_products_left_hwcoefficientscoefficientresiduebound + S (pfc_value_products_left_hwcoefficients) = (p)) /\ ((exists pfa_offset_left_products_left_hwcoefficientscoefficientresiduecongruence pfa_offset_right_products_left_hwcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_left_hwcoefficientscoefficient) + (p) * pfa_offset_left_products_left_hwcoefficientscoefficientresiduecongruence = (pfc_value_products_left_hwcoefficients) + (p) * pfa_offset_right_products_left_hwcoefficientscoefficientresiduecongruence))))))))))))))))))
  66. specialize prime_field_polynomial_convolution_at_length_exists (p)
  67. specialize prime_field_polynomial_convolution_at_length_exists (db)
  68. specialize prime_field_polynomial_convolution_at_length_exists (dc)
  69. specialize prime_field_polynomial_convolution_at_length_exists (M)
  70. specialize prime_field_polynomial_convolution_at_length_exists (cb)
  71. specialize prime_field_polynomial_convolution_at_length_exists (cc)
  72. specialize prime_field_polynomial_convolution_at_length_exists (L)
  73. specialize prime_field_polynomial_convolution_at_length_exists (x)
  74. apply prime_field_polynomial_convolution_at_length_exists
  75. exact hp
  76. exact hd
  77. exact hbounds_right_right
  78. exact hlength_witness
  79. cases hw
  80. cases hw_witness
  81. exists x
  82. exists x1
  83. exists x2
  84. exists x3
  85. exists x4
  86. exists x5
  87. exists x6
  88. split
  89. exact hu_witness_witness
  90. split
  91. exact hv_witness_witness
  92. split
  93. exact hw_witness_witness
  94. specialize prime_field_polynomial_convolution_left_add (p)
  95. specialize prime_field_polynomial_convolution_left_add (ab)
  96. specialize prime_field_polynomial_convolution_left_add (ac)
  97. specialize prime_field_polynomial_convolution_left_add (bb)
  98. specialize prime_field_polynomial_convolution_left_add (bc)
  99. specialize prime_field_polynomial_convolution_left_add (cb)
  100. specialize prime_field_polynomial_convolution_left_add (cc)
  101. specialize prime_field_polynomial_convolution_left_add (L)
  102. specialize prime_field_polynomial_convolution_left_add (db)
  103. specialize prime_field_polynomial_convolution_left_add (dc)
  104. specialize prime_field_polynomial_convolution_left_add (M)
  105. specialize prime_field_polynomial_convolution_left_add (x1)
  106. specialize prime_field_polynomial_convolution_left_add (x2)
  107. specialize prime_field_polynomial_convolution_left_add (x3)
  108. specialize prime_field_polynomial_convolution_left_add (x4)
  109. specialize prime_field_polynomial_convolution_left_add (x5)
  110. specialize prime_field_polynomial_convolution_left_add (x6)
  111. specialize prime_field_polynomial_convolution_left_add (x)
  112. apply prime_field_polynomial_convolution_left_add
  113. exact hs
  114. exact hu_witness_witness
  115. exact hv_witness_witness
  116. exact hw_witness_witness
polynomial_diagonal_term_right_add_congruent · unchanged support, not a new admission
forall p ab ac bb bc cb cc L db dc M i j u v w. (forall pfp_index_term_add_right_source. (exists pfa_gap_term_add_right_sourceindex. pfa_gap_term_add_right_sourceindex + S (pfp_index_term_add_right_source) = (L)) -> exists pfp_left_term_add_right_source pfp_right_term_add_right_source pfp_value_term_add_right_source. ((((exists ff_h_pfp_term_add_right_sourceleft. ff_h_pfp_term_add_right_sourceleft + S (pfp_left_term_add_right_source) = S ((S (pfp_index_term_add_right_source)) * ac)) /\ exists ff_q_pfp_term_add_right_sourceleft. ab = ff_q_pfp_term_add_right_sourceleft * S ((S (pfp_index_term_add_right_source)) * ac) + (pfp_left_term_add_right_source))) /\ (((((exists ff_h_pfp_term_add_right_sourceright. ff_h_pfp_term_add_right_sourceright + S (pfp_right_term_add_right_source) = S ((S (pfp_index_term_add_right_source)) * bc)) /\ exists ff_q_pfp_term_add_right_sourceright. bb = ff_q_pfp_term_add_right_sourceright * S ((S (pfp_index_term_add_right_source)) * bc) + (pfp_right_term_add_right_source))) /\ (((((exists ff_h_pfp_term_add_right_sourcetarget. ff_h_pfp_term_add_right_sourcetarget + S (pfp_value_term_add_right_source) = S ((S (pfp_index_term_add_right_source)) * cc)) /\ exists ff_q_pfp_term_add_right_sourcetarget. cb = ff_q_pfp_term_add_right_sourcetarget * S ((S (pfp_index_term_add_right_source)) * cc) + (pfp_value_term_add_right_source))) /\ ((((exists pfa_gap_term_add_right_sourceoperationleft. pfa_gap_term_add_right_sourceoperationleft + S (pfp_left_term_add_right_source) = (p)) /\ (((exists pfa_gap_term_add_right_sourceoperationright. pfa_gap_term_add_right_sourceoperationright + S (pfp_right_term_add_right_source) = (p)) /\ ((((exists pfa_gap_term_add_right_sourceoperationresultbound. pfa_gap_term_add_right_sourceoperationresultbound + S (pfp_value_term_add_right_source) = (p)) /\ ((exists pfa_offset_left_term_add_right_sourceoperationresultcongruence pfa_offset_right_term_add_right_sourceoperationresultcongruence. ((pfp_left_term_add_right_source) + (pfp_right_term_add_right_source)) + (p) * pfa_offset_left_term_add_right_sourceoperationresultcongruence = (pfp_value_term_add_right_source) + (p) * pfa_offset_right_term_add_right_sourceoperationresultcongruence)))))))))))))))) -> (exists pfc_complement_term_add_right_u pfc_left_term_add_right_u pfc_right_term_add_right_u. (((j)+pfc_complement_term_add_right_u=(i)) /\ ((((((exists pfa_gap_term_add_right_uleftinside. pfa_gap_term_add_right_uleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_add_right_uleftentry. ff_h_pfp_term_add_right_uleftentry + S (pfc_left_term_add_right_u) = S ((S (j)) * ac)) /\ exists ff_q_pfp_term_add_right_uleftentry. ab = ff_q_pfp_term_add_right_uleftentry * S ((S (j)) * ac) + (pfc_left_term_add_right_u)))))) \/ (((exists pfc_gap_term_add_right_uleftoutside. pfc_gap_term_add_right_uleftoutside+(L)=(j)) /\ (((pfc_left_term_add_right_u)=0))))) /\ ((((((exists pfa_gap_term_add_right_urightinside. pfa_gap_term_add_right_urightinside + S (pfc_complement_term_add_right_u) = (M)) /\ ((((exists ff_h_pfp_term_add_right_urightentry. ff_h_pfp_term_add_right_urightentry + S (pfc_right_term_add_right_u) = S ((S (pfc_complement_term_add_right_u)) * dc)) /\ exists ff_q_pfp_term_add_right_urightentry. db = ff_q_pfp_term_add_right_urightentry * S ((S (pfc_complement_term_add_right_u)) * dc) + (pfc_right_term_add_right_u)))))) \/ (((exists pfc_gap_term_add_right_urightoutside. pfc_gap_term_add_right_urightoutside+(M)=(pfc_complement_term_add_right_u)) /\ (((pfc_right_term_add_right_u)=0))))) /\ (((u)=pfc_left_term_add_right_u*pfc_right_term_add_right_u)))))))) -> (exists pfc_complement_term_add_right_v pfc_left_term_add_right_v pfc_right_term_add_right_v. (((j)+pfc_complement_term_add_right_v=(i)) /\ ((((((exists pfa_gap_term_add_right_vleftinside. pfa_gap_term_add_right_vleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_add_right_vleftentry. ff_h_pfp_term_add_right_vleftentry + S (pfc_left_term_add_right_v) = S ((S (j)) * bc)) /\ exists ff_q_pfp_term_add_right_vleftentry. bb = ff_q_pfp_term_add_right_vleftentry * S ((S (j)) * bc) + (pfc_left_term_add_right_v)))))) \/ (((exists pfc_gap_term_add_right_vleftoutside. pfc_gap_term_add_right_vleftoutside+(L)=(j)) /\ (((pfc_left_term_add_right_v)=0))))) /\ ((((((exists pfa_gap_term_add_right_vrightinside. pfa_gap_term_add_right_vrightinside + S (pfc_complement_term_add_right_v) = (M)) /\ ((((exists ff_h_pfp_term_add_right_vrightentry. ff_h_pfp_term_add_right_vrightentry + S (pfc_right_term_add_right_v) = S ((S (pfc_complement_term_add_right_v)) * dc)) /\ exists ff_q_pfp_term_add_right_vrightentry. db = ff_q_pfp_term_add_right_vrightentry * S ((S (pfc_complement_term_add_right_v)) * dc) + (pfc_right_term_add_right_v)))))) \/ (((exists pfc_gap_term_add_right_vrightoutside. pfc_gap_term_add_right_vrightoutside+(M)=(pfc_complement_term_add_right_v)) /\ (((pfc_right_term_add_right_v)=0))))) /\ (((v)=pfc_left_term_add_right_v*pfc_right_term_add_right_v)))))))) -> (exists pfc_complement_term_add_right_w pfc_left_term_add_right_w pfc_right_term_add_right_w. (((j)+pfc_complement_term_add_right_w=(i)) /\ ((((((exists pfa_gap_term_add_right_wleftinside. pfa_gap_term_add_right_wleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_add_right_wleftentry. ff_h_pfp_term_add_right_wleftentry + S (pfc_left_term_add_right_w) = S ((S (j)) * cc)) /\ exists ff_q_pfp_term_add_right_wleftentry. cb = ff_q_pfp_term_add_right_wleftentry * S ((S (j)) * cc) + (pfc_left_term_add_right_w)))))) \/ (((exists pfc_gap_term_add_right_wleftoutside. pfc_gap_term_add_right_wleftoutside+(L)=(j)) /\ (((pfc_left_term_add_right_w)=0))))) /\ ((((((exists pfa_gap_term_add_right_wrightinside. pfa_gap_term_add_right_wrightinside + S (pfc_complement_term_add_right_w) = (M)) /\ ((((exists ff_h_pfp_term_add_right_wrightentry. ff_h_pfp_term_add_right_wrightentry + S (pfc_right_term_add_right_w) = S ((S (pfc_complement_term_add_right_w)) * dc)) /\ exists ff_q_pfp_term_add_right_wrightentry. db = ff_q_pfp_term_add_right_wrightentry * S ((S (pfc_complement_term_add_right_w)) * dc) + (pfc_right_term_add_right_w)))))) \/ (((exists pfc_gap_term_add_right_wrightoutside. pfc_gap_term_add_right_wrightoutside+(M)=(pfc_complement_term_add_right_w)) /\ (((pfc_right_term_add_right_w)=0))))) /\ (((w)=pfc_left_term_add_right_w*pfc_right_term_add_right_w)))))))) -> (exists pfa_offset_left_term_add_right_result pfa_offset_right_term_add_right_result. (u+v) + (p) * pfa_offset_left_term_add_right_result = (w) + (p) * pfa_offset_right_term_add_right_result)
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro db
  10. intro dc
  11. intro M
  12. intro i
  13. intro j
  14. intro u
  15. intro v
  16. intro w
  17. intro hs
  18. intro hu
  19. intro hv
  20. intro hw
  21. cases hu
  22. cases hu_witness
  23. cases hu_witness_witness
  24. cases hu_witness_witness_witness
  25. cases hu_witness_witness_witness_right
  26. cases hu_witness_witness_witness_right_right
  27. cases hv
  28. cases hv_witness
  29. cases hv_witness_witness
  30. cases hv_witness_witness_witness
  31. cases hv_witness_witness_witness_right
  32. cases hv_witness_witness_witness_right_right
  33. cases hw
  34. cases hw_witness
  35. cases hw_witness_witness
  36. cases hw_witness_witness_witness
  37. cases hw_witness_witness_witness_right
  38. cases hw_witness_witness_witness_right_right
  39. have hku : x=x6
  40. specialize add_left_cancel (j)
  41. specialize add_left_cancel (x)
  42. specialize add_left_cancel (x6)
  43. apply add_left_cancel
  44. trans i
  45. exact hu_witness_witness_witness_left
  46. symm
  47. exact hw_witness_witness_witness_left
  48. rewrite hku at hu_witness_witness_witness_right_right_left
  49. rewrite hku at hu_witness_witness_witness_right_right_left
  50. rewrite hku at hu_witness_witness_witness_right_right_left
  51. rewrite hku at hu_witness_witness_witness_right_right_left
  52. have hkv : x3=x6
  53. specialize add_left_cancel (j)
  54. specialize add_left_cancel (x3)
  55. specialize add_left_cancel (x6)
  56. apply add_left_cancel
  57. trans i
  58. exact hv_witness_witness_witness_left
  59. symm
  60. exact hw_witness_witness_witness_left
  61. rewrite hkv at hv_witness_witness_witness_right_right_left
  62. rewrite hkv at hv_witness_witness_witness_right_right_left
  63. rewrite hkv at hv_witness_witness_witness_right_right_left
  64. rewrite hkv at hv_witness_witness_witness_right_right_left
  65. have hfu : x2=x8
  66. specialize polynomial_zero_extended_entry_functional (db)
  67. specialize polynomial_zero_extended_entry_functional (dc)
  68. specialize polynomial_zero_extended_entry_functional (M)
  69. specialize polynomial_zero_extended_entry_functional (x6)
  70. specialize polynomial_zero_extended_entry_functional (x2)
  71. specialize polynomial_zero_extended_entry_functional (x8)
  72. apply polynomial_zero_extended_entry_functional
  73. exact hu_witness_witness_witness_right_right_left
  74. exact hw_witness_witness_witness_right_right_left
  75. have hfv : x5=x8
  76. specialize polynomial_zero_extended_entry_functional (db)
  77. specialize polynomial_zero_extended_entry_functional (dc)
  78. specialize polynomial_zero_extended_entry_functional (M)
  79. specialize polynomial_zero_extended_entry_functional (x6)
  80. specialize polynomial_zero_extended_entry_functional (x5)
  81. specialize polynomial_zero_extended_entry_functional (x8)
  82. apply polynomial_zero_extended_entry_functional
  83. exact hv_witness_witness_witness_right_right_left
  84. exact hw_witness_witness_witness_right_right_left
  85. have hsum : exists pfa_offset_left_term_add_right_sum pfa_offset_right_term_add_right_sum. (x1+x4) + (p) * pfa_offset_left_term_add_right_sum = (x7) + (p) * pfa_offset_right_term_add_right_sum
  86. specialize polynomial_zero_extended_add_congruent (p)
  87. specialize polynomial_zero_extended_add_congruent (ab)
  88. specialize polynomial_zero_extended_add_congruent (ac)
  89. specialize polynomial_zero_extended_add_congruent (bb)
  90. specialize polynomial_zero_extended_add_congruent (bc)
  91. specialize polynomial_zero_extended_add_congruent (cb)
  92. specialize polynomial_zero_extended_add_congruent (cc)
  93. specialize polynomial_zero_extended_add_congruent (L)
  94. specialize polynomial_zero_extended_add_congruent (j)
  95. specialize polynomial_zero_extended_add_congruent (x1)
  96. specialize polynomial_zero_extended_add_congruent (x4)
  97. specialize polynomial_zero_extended_add_congruent (x7)
  98. apply polynomial_zero_extended_add_congruent
  99. exact hs
  100. exact hu_witness_witness_witness_right_left
  101. exact hv_witness_witness_witness_right_left
  102. exact hw_witness_witness_witness_right_left
  103. rewrite hu_witness_witness_witness_right_right_right
  104. rewrite hv_witness_witness_witness_right_right_right
  105. rewrite hw_witness_witness_witness_right_right_right
  106. rewrite hfu
  107. rewrite hfv
  108. have hfactor : x1*x8+x4*x8=(x1+x4)*x8
  109. symm
  110. specialize add_mul (x1)
  111. specialize add_mul (x4)
  112. specialize add_mul (x8)
  113. apply add_mul
  114. rewrite hfactor
  115. specialize mod_eq_mul_right (p)
  116. specialize mod_eq_mul_right (x1+x4)
  117. specialize mod_eq_mul_right (x7)
  118. specialize mod_eq_mul_right (x8)
  119. apply mod_eq_mul_right
  120. exact hsum
polynomial_diagonal_sum_right_add_congruent · unchanged support, not a new admission
forall p ab ac bb bc cb cc L db dc M i N ub uc vb vc wb wc u v w. (forall pfp_index_diagonal_add_right_source. (exists pfa_gap_diagonal_add_right_sourceindex. pfa_gap_diagonal_add_right_sourceindex + S (pfp_index_diagonal_add_right_source) = (L)) -> exists pfp_left_diagonal_add_right_source pfp_right_diagonal_add_right_source pfp_value_diagonal_add_right_source. ((((exists ff_h_pfp_diagonal_add_right_sourceleft. ff_h_pfp_diagonal_add_right_sourceleft + S (pfp_left_diagonal_add_right_source) = S ((S (pfp_index_diagonal_add_right_source)) * ac)) /\ exists ff_q_pfp_diagonal_add_right_sourceleft. ab = ff_q_pfp_diagonal_add_right_sourceleft * S ((S (pfp_index_diagonal_add_right_source)) * ac) + (pfp_left_diagonal_add_right_source))) /\ (((((exists ff_h_pfp_diagonal_add_right_sourceright. ff_h_pfp_diagonal_add_right_sourceright + S (pfp_right_diagonal_add_right_source) = S ((S (pfp_index_diagonal_add_right_source)) * bc)) /\ exists ff_q_pfp_diagonal_add_right_sourceright. bb = ff_q_pfp_diagonal_add_right_sourceright * S ((S (pfp_index_diagonal_add_right_source)) * bc) + (pfp_right_diagonal_add_right_source))) /\ (((((exists ff_h_pfp_diagonal_add_right_sourcetarget. ff_h_pfp_diagonal_add_right_sourcetarget + S (pfp_value_diagonal_add_right_source) = S ((S (pfp_index_diagonal_add_right_source)) * cc)) /\ exists ff_q_pfp_diagonal_add_right_sourcetarget. cb = ff_q_pfp_diagonal_add_right_sourcetarget * S ((S (pfp_index_diagonal_add_right_source)) * cc) + (pfp_value_diagonal_add_right_source))) /\ ((((exists pfa_gap_diagonal_add_right_sourceoperationleft. pfa_gap_diagonal_add_right_sourceoperationleft + S (pfp_left_diagonal_add_right_source) = (p)) /\ (((exists pfa_gap_diagonal_add_right_sourceoperationright. pfa_gap_diagonal_add_right_sourceoperationright + S (pfp_right_diagonal_add_right_source) = (p)) /\ ((((exists pfa_gap_diagonal_add_right_sourceoperationresultbound. pfa_gap_diagonal_add_right_sourceoperationresultbound + S (pfp_value_diagonal_add_right_source) = (p)) /\ ((exists pfa_offset_left_diagonal_add_right_sourceoperationresultcongruence pfa_offset_right_diagonal_add_right_sourceoperationresultcongruence. ((pfp_left_diagonal_add_right_source) + (pfp_right_diagonal_add_right_source)) + (p) * pfa_offset_left_diagonal_add_right_sourceoperationresultcongruence = (pfp_value_diagonal_add_right_source) + (p) * pfa_offset_right_diagonal_add_right_sourceoperationresultcongruence)))))))))))))))) -> (forall pfc_index_diagonal_add_right_u. (exists pfa_gap_diagonal_add_right_ubound. pfa_gap_diagonal_add_right_ubound + S (pfc_index_diagonal_add_right_u) = (N)) -> exists pfc_value_diagonal_add_right_u. ((((exists ff_h_pfp_diagonal_add_right_uentry. ff_h_pfp_diagonal_add_right_uentry + S (pfc_value_diagonal_add_right_u) = S ((S (pfc_index_diagonal_add_right_u)) * uc)) /\ exists ff_q_pfp_diagonal_add_right_uentry. ub = ff_q_pfp_diagonal_add_right_uentry * S ((S (pfc_index_diagonal_add_right_u)) * uc) + (pfc_value_diagonal_add_right_u))) /\ ((exists pfc_complement_diagonal_add_right_uterm pfc_left_diagonal_add_right_uterm pfc_right_diagonal_add_right_uterm. (((pfc_index_diagonal_add_right_u)+pfc_complement_diagonal_add_right_uterm=(i)) /\ ((((((exists pfa_gap_diagonal_add_right_utermleftinside. pfa_gap_diagonal_add_right_utermleftinside + S (pfc_index_diagonal_add_right_u) = (L)) /\ ((((exists ff_h_pfp_diagonal_add_right_utermleftentry. ff_h_pfp_diagonal_add_right_utermleftentry + S (pfc_left_diagonal_add_right_uterm) = S ((S (pfc_index_diagonal_add_right_u)) * ac)) /\ exists ff_q_pfp_diagonal_add_right_utermleftentry. ab = ff_q_pfp_diagonal_add_right_utermleftentry * S ((S (pfc_index_diagonal_add_right_u)) * ac) + (pfc_left_diagonal_add_right_uterm)))))) \/ (((exists pfc_gap_diagonal_add_right_utermleftoutside. pfc_gap_diagonal_add_right_utermleftoutside+(L)=(pfc_index_diagonal_add_right_u)) /\ (((pfc_left_diagonal_add_right_uterm)=0))))) /\ ((((((exists pfa_gap_diagonal_add_right_utermrightinside. pfa_gap_diagonal_add_right_utermrightinside + S (pfc_complement_diagonal_add_right_uterm) = (M)) /\ ((((exists ff_h_pfp_diagonal_add_right_utermrightentry. ff_h_pfp_diagonal_add_right_utermrightentry + S (pfc_right_diagonal_add_right_uterm) = S ((S (pfc_complement_diagonal_add_right_uterm)) * dc)) /\ exists ff_q_pfp_diagonal_add_right_utermrightentry. db = ff_q_pfp_diagonal_add_right_utermrightentry * S ((S (pfc_complement_diagonal_add_right_uterm)) * dc) + (pfc_right_diagonal_add_right_uterm)))))) \/ (((exists pfc_gap_diagonal_add_right_utermrightoutside. pfc_gap_diagonal_add_right_utermrightoutside+(M)=(pfc_complement_diagonal_add_right_uterm)) /\ (((pfc_right_diagonal_add_right_uterm)=0))))) /\ (((pfc_value_diagonal_add_right_u)=pfc_left_diagonal_add_right_uterm*pfc_right_diagonal_add_right_uterm))))))))))) -> (exists fs_u_pfc_diagonal_add_right_sum_u fs_v_pfc_diagonal_add_right_sum_u. ((((exists fs_h_pfc_diagonal_add_right_sum_u_body_start. fs_h_pfc_diagonal_add_right_sum_u_body_start + S (0) = S ((S (0)) * fs_v_pfc_diagonal_add_right_sum_u)) /\ exists fs_q_pfc_diagonal_add_right_sum_u_body_start. fs_u_pfc_diagonal_add_right_sum_u = fs_q_pfc_diagonal_add_right_sum_u_body_start * S ((S (0)) * fs_v_pfc_diagonal_add_right_sum_u) + (0))) /\ ((((exists fs_h_pfc_diagonal_add_right_sum_u_body_terminal. fs_h_pfc_diagonal_add_right_sum_u_body_terminal + S (u) = S ((S (N)) * fs_v_pfc_diagonal_add_right_sum_u)) /\ exists fs_q_pfc_diagonal_add_right_sum_u_body_terminal. fs_u_pfc_diagonal_add_right_sum_u = fs_q_pfc_diagonal_add_right_sum_u_body_terminal * S ((S (N)) * fs_v_pfc_diagonal_add_right_sum_u) + (u))) /\ forall fs_i_pfc_diagonal_add_right_sum_u_body_steps. (exists fs_lt_pfc_diagonal_add_right_sum_u_body_steps_bound. fs_lt_pfc_diagonal_add_right_sum_u_body_steps_bound + S fs_i_pfc_diagonal_add_right_sum_u_body_steps = N) -> exists fs_a_pfc_diagonal_add_right_sum_u_body_steps fs_r_pfc_diagonal_add_right_sum_u_body_steps fs_s_pfc_diagonal_add_right_sum_u_body_steps. ((((exists fs_h_pfc_diagonal_add_right_sum_u_body_steps_summand. fs_h_pfc_diagonal_add_right_sum_u_body_steps_summand + S (fs_a_pfc_diagonal_add_right_sum_u_body_steps) = S ((S (fs_i_pfc_diagonal_add_right_sum_u_body_steps)) * uc)) /\ exists fs_q_pfc_diagonal_add_right_sum_u_body_steps_summand. ub = fs_q_pfc_diagonal_add_right_sum_u_body_steps_summand * S ((S (fs_i_pfc_diagonal_add_right_sum_u_body_steps)) * uc) + (fs_a_pfc_diagonal_add_right_sum_u_body_steps))) /\ ((((exists fs_h_pfc_diagonal_add_right_sum_u_body_steps_partial. fs_h_pfc_diagonal_add_right_sum_u_body_steps_partial + S (fs_r_pfc_diagonal_add_right_sum_u_body_steps) = S ((S (fs_i_pfc_diagonal_add_right_sum_u_body_steps)) * fs_v_pfc_diagonal_add_right_sum_u)) /\ exists fs_q_pfc_diagonal_add_right_sum_u_body_steps_partial. fs_u_pfc_diagonal_add_right_sum_u = fs_q_pfc_diagonal_add_right_sum_u_body_steps_partial * S ((S (fs_i_pfc_diagonal_add_right_sum_u_body_steps)) * fs_v_pfc_diagonal_add_right_sum_u) + (fs_r_pfc_diagonal_add_right_sum_u_body_steps))) /\ ((((exists fs_h_pfc_diagonal_add_right_sum_u_body_steps_successor. fs_h_pfc_diagonal_add_right_sum_u_body_steps_successor + S (fs_s_pfc_diagonal_add_right_sum_u_body_steps) = S ((S (S fs_i_pfc_diagonal_add_right_sum_u_body_steps)) * fs_v_pfc_diagonal_add_right_sum_u)) /\ exists fs_q_pfc_diagonal_add_right_sum_u_body_steps_successor. fs_u_pfc_diagonal_add_right_sum_u = fs_q_pfc_diagonal_add_right_sum_u_body_steps_successor * S ((S (S fs_i_pfc_diagonal_add_right_sum_u_body_steps)) * fs_v_pfc_diagonal_add_right_sum_u) + (fs_s_pfc_diagonal_add_right_sum_u_body_steps))) /\ fs_s_pfc_diagonal_add_right_sum_u_body_steps = fs_r_pfc_diagonal_add_right_sum_u_body_steps + fs_a_pfc_diagonal_add_right_sum_u_body_steps)))))) -> (forall pfc_index_diagonal_add_right_v. (exists pfa_gap_diagonal_add_right_vbound. pfa_gap_diagonal_add_right_vbound + S (pfc_index_diagonal_add_right_v) = (N)) -> exists pfc_value_diagonal_add_right_v. ((((exists ff_h_pfp_diagonal_add_right_ventry. ff_h_pfp_diagonal_add_right_ventry + S (pfc_value_diagonal_add_right_v) = S ((S (pfc_index_diagonal_add_right_v)) * vc)) /\ exists ff_q_pfp_diagonal_add_right_ventry. vb = ff_q_pfp_diagonal_add_right_ventry * S ((S (pfc_index_diagonal_add_right_v)) * vc) + (pfc_value_diagonal_add_right_v))) /\ ((exists pfc_complement_diagonal_add_right_vterm pfc_left_diagonal_add_right_vterm pfc_right_diagonal_add_right_vterm. (((pfc_index_diagonal_add_right_v)+pfc_complement_diagonal_add_right_vterm=(i)) /\ ((((((exists pfa_gap_diagonal_add_right_vtermleftinside. pfa_gap_diagonal_add_right_vtermleftinside + S (pfc_index_diagonal_add_right_v) = (L)) /\ ((((exists ff_h_pfp_diagonal_add_right_vtermleftentry. ff_h_pfp_diagonal_add_right_vtermleftentry + S (pfc_left_diagonal_add_right_vterm) = S ((S (pfc_index_diagonal_add_right_v)) * bc)) /\ exists ff_q_pfp_diagonal_add_right_vtermleftentry. bb = ff_q_pfp_diagonal_add_right_vtermleftentry * S ((S (pfc_index_diagonal_add_right_v)) * bc) + (pfc_left_diagonal_add_right_vterm)))))) \/ (((exists pfc_gap_diagonal_add_right_vtermleftoutside. pfc_gap_diagonal_add_right_vtermleftoutside+(L)=(pfc_index_diagonal_add_right_v)) /\ (((pfc_left_diagonal_add_right_vterm)=0))))) /\ ((((((exists pfa_gap_diagonal_add_right_vtermrightinside. pfa_gap_diagonal_add_right_vtermrightinside + S (pfc_complement_diagonal_add_right_vterm) = (M)) /\ ((((exists ff_h_pfp_diagonal_add_right_vtermrightentry. ff_h_pfp_diagonal_add_right_vtermrightentry + S (pfc_right_diagonal_add_right_vterm) = S ((S (pfc_complement_diagonal_add_right_vterm)) * dc)) /\ exists ff_q_pfp_diagonal_add_right_vtermrightentry. db = ff_q_pfp_diagonal_add_right_vtermrightentry * S ((S (pfc_complement_diagonal_add_right_vterm)) * dc) + (pfc_right_diagonal_add_right_vterm)))))) \/ (((exists pfc_gap_diagonal_add_right_vtermrightoutside. pfc_gap_diagonal_add_right_vtermrightoutside+(M)=(pfc_complement_diagonal_add_right_vterm)) /\ (((pfc_right_diagonal_add_right_vterm)=0))))) /\ (((pfc_value_diagonal_add_right_v)=pfc_left_diagonal_add_right_vterm*pfc_right_diagonal_add_right_vterm))))))))))) -> (exists fs_u_pfc_diagonal_add_right_sum_v fs_v_pfc_diagonal_add_right_sum_v. ((((exists fs_h_pfc_diagonal_add_right_sum_v_body_start. fs_h_pfc_diagonal_add_right_sum_v_body_start + S (0) = S ((S (0)) * fs_v_pfc_diagonal_add_right_sum_v)) /\ exists fs_q_pfc_diagonal_add_right_sum_v_body_start. fs_u_pfc_diagonal_add_right_sum_v = fs_q_pfc_diagonal_add_right_sum_v_body_start * S ((S (0)) * fs_v_pfc_diagonal_add_right_sum_v) + (0))) /\ ((((exists fs_h_pfc_diagonal_add_right_sum_v_body_terminal. fs_h_pfc_diagonal_add_right_sum_v_body_terminal + S (v) = S ((S (N)) * fs_v_pfc_diagonal_add_right_sum_v)) /\ exists fs_q_pfc_diagonal_add_right_sum_v_body_terminal. fs_u_pfc_diagonal_add_right_sum_v = fs_q_pfc_diagonal_add_right_sum_v_body_terminal * S ((S (N)) * fs_v_pfc_diagonal_add_right_sum_v) + (v))) /\ forall fs_i_pfc_diagonal_add_right_sum_v_body_steps. (exists fs_lt_pfc_diagonal_add_right_sum_v_body_steps_bound. fs_lt_pfc_diagonal_add_right_sum_v_body_steps_bound + S fs_i_pfc_diagonal_add_right_sum_v_body_steps = N) -> exists fs_a_pfc_diagonal_add_right_sum_v_body_steps fs_r_pfc_diagonal_add_right_sum_v_body_steps fs_s_pfc_diagonal_add_right_sum_v_body_steps. ((((exists fs_h_pfc_diagonal_add_right_sum_v_body_steps_summand. fs_h_pfc_diagonal_add_right_sum_v_body_steps_summand + S (fs_a_pfc_diagonal_add_right_sum_v_body_steps) = S ((S (fs_i_pfc_diagonal_add_right_sum_v_body_steps)) * vc)) /\ exists fs_q_pfc_diagonal_add_right_sum_v_body_steps_summand. vb = fs_q_pfc_diagonal_add_right_sum_v_body_steps_summand * S ((S (fs_i_pfc_diagonal_add_right_sum_v_body_steps)) * vc) + (fs_a_pfc_diagonal_add_right_sum_v_body_steps))) /\ ((((exists fs_h_pfc_diagonal_add_right_sum_v_body_steps_partial. fs_h_pfc_diagonal_add_right_sum_v_body_steps_partial + S (fs_r_pfc_diagonal_add_right_sum_v_body_steps) = S ((S (fs_i_pfc_diagonal_add_right_sum_v_body_steps)) * fs_v_pfc_diagonal_add_right_sum_v)) /\ exists fs_q_pfc_diagonal_add_right_sum_v_body_steps_partial. fs_u_pfc_diagonal_add_right_sum_v = fs_q_pfc_diagonal_add_right_sum_v_body_steps_partial * S ((S (fs_i_pfc_diagonal_add_right_sum_v_body_steps)) * fs_v_pfc_diagonal_add_right_sum_v) + (fs_r_pfc_diagonal_add_right_sum_v_body_steps))) /\ ((((exists fs_h_pfc_diagonal_add_right_sum_v_body_steps_successor. fs_h_pfc_diagonal_add_right_sum_v_body_steps_successor + S (fs_s_pfc_diagonal_add_right_sum_v_body_steps) = S ((S (S fs_i_pfc_diagonal_add_right_sum_v_body_steps)) * fs_v_pfc_diagonal_add_right_sum_v)) /\ exists fs_q_pfc_diagonal_add_right_sum_v_body_steps_successor. fs_u_pfc_diagonal_add_right_sum_v = fs_q_pfc_diagonal_add_right_sum_v_body_steps_successor * S ((S (S fs_i_pfc_diagonal_add_right_sum_v_body_steps)) * fs_v_pfc_diagonal_add_right_sum_v) + (fs_s_pfc_diagonal_add_right_sum_v_body_steps))) /\ fs_s_pfc_diagonal_add_right_sum_v_body_steps = fs_r_pfc_diagonal_add_right_sum_v_body_steps + fs_a_pfc_diagonal_add_right_sum_v_body_steps)))))) -> (forall pfc_index_diagonal_add_right_w. (exists pfa_gap_diagonal_add_right_wbound. pfa_gap_diagonal_add_right_wbound + S (pfc_index_diagonal_add_right_w) = (N)) -> exists pfc_value_diagonal_add_right_w. ((((exists ff_h_pfp_diagonal_add_right_wentry. ff_h_pfp_diagonal_add_right_wentry + S (pfc_value_diagonal_add_right_w) = S ((S (pfc_index_diagonal_add_right_w)) * wc)) /\ exists ff_q_pfp_diagonal_add_right_wentry. wb = ff_q_pfp_diagonal_add_right_wentry * S ((S (pfc_index_diagonal_add_right_w)) * wc) + (pfc_value_diagonal_add_right_w))) /\ ((exists pfc_complement_diagonal_add_right_wterm pfc_left_diagonal_add_right_wterm pfc_right_diagonal_add_right_wterm. (((pfc_index_diagonal_add_right_w)+pfc_complement_diagonal_add_right_wterm=(i)) /\ ((((((exists pfa_gap_diagonal_add_right_wtermleftinside. pfa_gap_diagonal_add_right_wtermleftinside + S (pfc_index_diagonal_add_right_w) = (L)) /\ ((((exists ff_h_pfp_diagonal_add_right_wtermleftentry. ff_h_pfp_diagonal_add_right_wtermleftentry + S (pfc_left_diagonal_add_right_wterm) = S ((S (pfc_index_diagonal_add_right_w)) * cc)) /\ exists ff_q_pfp_diagonal_add_right_wtermleftentry. cb = ff_q_pfp_diagonal_add_right_wtermleftentry * S ((S (pfc_index_diagonal_add_right_w)) * cc) + (pfc_left_diagonal_add_right_wterm)))))) \/ (((exists pfc_gap_diagonal_add_right_wtermleftoutside. pfc_gap_diagonal_add_right_wtermleftoutside+(L)=(pfc_index_diagonal_add_right_w)) /\ (((pfc_left_diagonal_add_right_wterm)=0))))) /\ ((((((exists pfa_gap_diagonal_add_right_wtermrightinside. pfa_gap_diagonal_add_right_wtermrightinside + S (pfc_complement_diagonal_add_right_wterm) = (M)) /\ ((((exists ff_h_pfp_diagonal_add_right_wtermrightentry. ff_h_pfp_diagonal_add_right_wtermrightentry + S (pfc_right_diagonal_add_right_wterm) = S ((S (pfc_complement_diagonal_add_right_wterm)) * dc)) /\ exists ff_q_pfp_diagonal_add_right_wtermrightentry. db = ff_q_pfp_diagonal_add_right_wtermrightentry * S ((S (pfc_complement_diagonal_add_right_wterm)) * dc) + (pfc_right_diagonal_add_right_wterm)))))) \/ (((exists pfc_gap_diagonal_add_right_wtermrightoutside. pfc_gap_diagonal_add_right_wtermrightoutside+(M)=(pfc_complement_diagonal_add_right_wterm)) /\ (((pfc_right_diagonal_add_right_wterm)=0))))) /\ (((pfc_value_diagonal_add_right_w)=pfc_left_diagonal_add_right_wterm*pfc_right_diagonal_add_right_wterm))))))))))) -> (exists fs_u_pfc_diagonal_add_right_sum_w fs_v_pfc_diagonal_add_right_sum_w. ((((exists fs_h_pfc_diagonal_add_right_sum_w_body_start. fs_h_pfc_diagonal_add_right_sum_w_body_start + S (0) = S ((S (0)) * fs_v_pfc_diagonal_add_right_sum_w)) /\ exists fs_q_pfc_diagonal_add_right_sum_w_body_start. fs_u_pfc_diagonal_add_right_sum_w = fs_q_pfc_diagonal_add_right_sum_w_body_start * S ((S (0)) * fs_v_pfc_diagonal_add_right_sum_w) + (0))) /\ ((((exists fs_h_pfc_diagonal_add_right_sum_w_body_terminal. fs_h_pfc_diagonal_add_right_sum_w_body_terminal + S (w) = S ((S (N)) * fs_v_pfc_diagonal_add_right_sum_w)) /\ exists fs_q_pfc_diagonal_add_right_sum_w_body_terminal. fs_u_pfc_diagonal_add_right_sum_w = fs_q_pfc_diagonal_add_right_sum_w_body_terminal * S ((S (N)) * fs_v_pfc_diagonal_add_right_sum_w) + (w))) /\ forall fs_i_pfc_diagonal_add_right_sum_w_body_steps. (exists fs_lt_pfc_diagonal_add_right_sum_w_body_steps_bound. fs_lt_pfc_diagonal_add_right_sum_w_body_steps_bound + S fs_i_pfc_diagonal_add_right_sum_w_body_steps = N) -> exists fs_a_pfc_diagonal_add_right_sum_w_body_steps fs_r_pfc_diagonal_add_right_sum_w_body_steps fs_s_pfc_diagonal_add_right_sum_w_body_steps. ((((exists fs_h_pfc_diagonal_add_right_sum_w_body_steps_summand. fs_h_pfc_diagonal_add_right_sum_w_body_steps_summand + S (fs_a_pfc_diagonal_add_right_sum_w_body_steps) = S ((S (fs_i_pfc_diagonal_add_right_sum_w_body_steps)) * wc)) /\ exists fs_q_pfc_diagonal_add_right_sum_w_body_steps_summand. wb = fs_q_pfc_diagonal_add_right_sum_w_body_steps_summand * S ((S (fs_i_pfc_diagonal_add_right_sum_w_body_steps)) * wc) + (fs_a_pfc_diagonal_add_right_sum_w_body_steps))) /\ ((((exists fs_h_pfc_diagonal_add_right_sum_w_body_steps_partial. fs_h_pfc_diagonal_add_right_sum_w_body_steps_partial + S (fs_r_pfc_diagonal_add_right_sum_w_body_steps) = S ((S (fs_i_pfc_diagonal_add_right_sum_w_body_steps)) * fs_v_pfc_diagonal_add_right_sum_w)) /\ exists fs_q_pfc_diagonal_add_right_sum_w_body_steps_partial. fs_u_pfc_diagonal_add_right_sum_w = fs_q_pfc_diagonal_add_right_sum_w_body_steps_partial * S ((S (fs_i_pfc_diagonal_add_right_sum_w_body_steps)) * fs_v_pfc_diagonal_add_right_sum_w) + (fs_r_pfc_diagonal_add_right_sum_w_body_steps))) /\ ((((exists fs_h_pfc_diagonal_add_right_sum_w_body_steps_successor. fs_h_pfc_diagonal_add_right_sum_w_body_steps_successor + S (fs_s_pfc_diagonal_add_right_sum_w_body_steps) = S ((S (S fs_i_pfc_diagonal_add_right_sum_w_body_steps)) * fs_v_pfc_diagonal_add_right_sum_w)) /\ exists fs_q_pfc_diagonal_add_right_sum_w_body_steps_successor. fs_u_pfc_diagonal_add_right_sum_w = fs_q_pfc_diagonal_add_right_sum_w_body_steps_successor * S ((S (S fs_i_pfc_diagonal_add_right_sum_w_body_steps)) * fs_v_pfc_diagonal_add_right_sum_w) + (fs_s_pfc_diagonal_add_right_sum_w_body_steps))) /\ fs_s_pfc_diagonal_add_right_sum_w_body_steps = fs_r_pfc_diagonal_add_right_sum_w_body_steps + fs_a_pfc_diagonal_add_right_sum_w_body_steps)))))) -> (exists pfa_offset_left_diagonal_add_right_result pfa_offset_right_diagonal_add_right_result. (u+v) + (p) * pfa_offset_left_diagonal_add_right_result = (w) + (p) * pfa_offset_right_diagonal_add_right_result)
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro db
  10. intro dc
  11. intro M
  12. intro i
  13. intro N
  14. intro ub
  15. intro uc
  16. intro vb
  17. intro vc
  18. intro wb
  19. intro wc
  20. intro u
  21. intro v
  22. intro w
  23. intro hs
  24. intro hdu
  25. intro hsv
  26. intro hdv
  27. intro hsvv
  28. intro hdw
  29. intro hsw
  30. specialize beta_sum_pointwise_mod_add (p)
  31. specialize beta_sum_pointwise_mod_add (ub)
  32. specialize beta_sum_pointwise_mod_add (uc)
  33. specialize beta_sum_pointwise_mod_add (vb)
  34. specialize beta_sum_pointwise_mod_add (vc)
  35. specialize beta_sum_pointwise_mod_add (wb)
  36. specialize beta_sum_pointwise_mod_add (wc)
  37. specialize beta_sum_pointwise_mod_add (N)
  38. specialize beta_sum_pointwise_mod_add (u)
  39. specialize beta_sum_pointwise_mod_add (v)
  40. specialize beta_sum_pointwise_mod_add (w)
  41. apply beta_sum_pointwise_mod_add
  42. exact hsv
  43. exact hsvv
  44. exact hsw
  45. intro j
  46. intro a
  47. intro b
  48. intro c
  49. intro hj
  50. intro ha
  51. intro hb
  52. intro hc
  53. specialize polynomial_diagonal_term_right_add_congruent (p)
  54. specialize polynomial_diagonal_term_right_add_congruent (ab)
  55. specialize polynomial_diagonal_term_right_add_congruent (ac)
  56. specialize polynomial_diagonal_term_right_add_congruent (bb)
  57. specialize polynomial_diagonal_term_right_add_congruent (bc)
  58. specialize polynomial_diagonal_term_right_add_congruent (cb)
  59. specialize polynomial_diagonal_term_right_add_congruent (cc)
  60. specialize polynomial_diagonal_term_right_add_congruent (L)
  61. specialize polynomial_diagonal_term_right_add_congruent (db)
  62. specialize polynomial_diagonal_term_right_add_congruent (dc)
  63. specialize polynomial_diagonal_term_right_add_congruent (M)
  64. specialize polynomial_diagonal_term_right_add_congruent (i)
  65. specialize polynomial_diagonal_term_right_add_congruent (j)
  66. specialize polynomial_diagonal_term_right_add_congruent (a)
  67. specialize polynomial_diagonal_term_right_add_congruent (b)
  68. specialize polynomial_diagonal_term_right_add_congruent (c)
  69. apply polynomial_diagonal_term_right_add_congruent
  70. exact hs
  71. specialize polynomial_diagonal_prefix_entry (ab)
  72. specialize polynomial_diagonal_prefix_entry (ac)
  73. specialize polynomial_diagonal_prefix_entry (L)
  74. specialize polynomial_diagonal_prefix_entry (db)
  75. specialize polynomial_diagonal_prefix_entry (dc)
  76. specialize polynomial_diagonal_prefix_entry (M)
  77. specialize polynomial_diagonal_prefix_entry (i)
  78. specialize polynomial_diagonal_prefix_entry (ub)
  79. specialize polynomial_diagonal_prefix_entry (uc)
  80. specialize polynomial_diagonal_prefix_entry (N)
  81. specialize polynomial_diagonal_prefix_entry (j)
  82. specialize polynomial_diagonal_prefix_entry (a)
  83. apply polynomial_diagonal_prefix_entry
  84. exact hdu
  85. exact hj
  86. exact ha
  87. specialize polynomial_diagonal_prefix_entry (bb)
  88. specialize polynomial_diagonal_prefix_entry (bc)
  89. specialize polynomial_diagonal_prefix_entry (L)
  90. specialize polynomial_diagonal_prefix_entry (db)
  91. specialize polynomial_diagonal_prefix_entry (dc)
  92. specialize polynomial_diagonal_prefix_entry (M)
  93. specialize polynomial_diagonal_prefix_entry (i)
  94. specialize polynomial_diagonal_prefix_entry (vb)
  95. specialize polynomial_diagonal_prefix_entry (vc)
  96. specialize polynomial_diagonal_prefix_entry (N)
  97. specialize polynomial_diagonal_prefix_entry (j)
  98. specialize polynomial_diagonal_prefix_entry (b)
  99. apply polynomial_diagonal_prefix_entry
  100. exact hdv
  101. exact hj
  102. exact hb
  103. specialize polynomial_diagonal_prefix_entry (cb)
  104. specialize polynomial_diagonal_prefix_entry (cc)
  105. specialize polynomial_diagonal_prefix_entry (L)
  106. specialize polynomial_diagonal_prefix_entry (db)
  107. specialize polynomial_diagonal_prefix_entry (dc)
  108. specialize polynomial_diagonal_prefix_entry (M)
  109. specialize polynomial_diagonal_prefix_entry (i)
  110. specialize polynomial_diagonal_prefix_entry (wb)
  111. specialize polynomial_diagonal_prefix_entry (wc)
  112. specialize polynomial_diagonal_prefix_entry (N)
  113. specialize polynomial_diagonal_prefix_entry (j)
  114. specialize polynomial_diagonal_prefix_entry (c)
  115. apply polynomial_diagonal_prefix_entry
  116. exact hdw
  117. exact hj
  118. exact hc
prime_field_convolution_coefficient_right_add · unchanged support, not a new admission
forall p ab ac bb bc cb cc L db dc M i u v w. (forall pfp_index_coefficient_add_right_source. (exists pfa_gap_coefficient_add_right_sourceindex. pfa_gap_coefficient_add_right_sourceindex + S (pfp_index_coefficient_add_right_source) = (L)) -> exists pfp_left_coefficient_add_right_source pfp_right_coefficient_add_right_source pfp_value_coefficient_add_right_source. ((((exists ff_h_pfp_coefficient_add_right_sourceleft. ff_h_pfp_coefficient_add_right_sourceleft + S (pfp_left_coefficient_add_right_source) = S ((S (pfp_index_coefficient_add_right_source)) * ac)) /\ exists ff_q_pfp_coefficient_add_right_sourceleft. ab = ff_q_pfp_coefficient_add_right_sourceleft * S ((S (pfp_index_coefficient_add_right_source)) * ac) + (pfp_left_coefficient_add_right_source))) /\ (((((exists ff_h_pfp_coefficient_add_right_sourceright. ff_h_pfp_coefficient_add_right_sourceright + S (pfp_right_coefficient_add_right_source) = S ((S (pfp_index_coefficient_add_right_source)) * bc)) /\ exists ff_q_pfp_coefficient_add_right_sourceright. bb = ff_q_pfp_coefficient_add_right_sourceright * S ((S (pfp_index_coefficient_add_right_source)) * bc) + (pfp_right_coefficient_add_right_source))) /\ (((((exists ff_h_pfp_coefficient_add_right_sourcetarget. ff_h_pfp_coefficient_add_right_sourcetarget + S (pfp_value_coefficient_add_right_source) = S ((S (pfp_index_coefficient_add_right_source)) * cc)) /\ exists ff_q_pfp_coefficient_add_right_sourcetarget. cb = ff_q_pfp_coefficient_add_right_sourcetarget * S ((S (pfp_index_coefficient_add_right_source)) * cc) + (pfp_value_coefficient_add_right_source))) /\ ((((exists pfa_gap_coefficient_add_right_sourceoperationleft. pfa_gap_coefficient_add_right_sourceoperationleft + S (pfp_left_coefficient_add_right_source) = (p)) /\ (((exists pfa_gap_coefficient_add_right_sourceoperationright. pfa_gap_coefficient_add_right_sourceoperationright + S (pfp_right_coefficient_add_right_source) = (p)) /\ ((((exists pfa_gap_coefficient_add_right_sourceoperationresultbound. pfa_gap_coefficient_add_right_sourceoperationresultbound + S (pfp_value_coefficient_add_right_source) = (p)) /\ ((exists pfa_offset_left_coefficient_add_right_sourceoperationresultcongruence pfa_offset_right_coefficient_add_right_sourceoperationresultcongruence. ((pfp_left_coefficient_add_right_source) + (pfp_right_coefficient_add_right_source)) + (p) * pfa_offset_left_coefficient_add_right_sourceoperationresultcongruence = (pfp_value_coefficient_add_right_source) + (p) * pfa_offset_right_coefficient_add_right_sourceoperationresultcongruence)))))))))))))))) -> (exists pfc_terms_code_coefficient_add_right_u pfc_terms_scale_coefficient_add_right_u pfc_natural_sum_coefficient_add_right_u. ((forall pfc_index_coefficient_add_right_udiagonal. (exists pfa_gap_coefficient_add_right_udiagonalbound. pfa_gap_coefficient_add_right_udiagonalbound + S (pfc_index_coefficient_add_right_udiagonal) = (S (i))) -> exists pfc_value_coefficient_add_right_udiagonal. ((((exists ff_h_pfp_coefficient_add_right_udiagonalentry. ff_h_pfp_coefficient_add_right_udiagonalentry + S (pfc_value_coefficient_add_right_udiagonal) = S ((S (pfc_index_coefficient_add_right_udiagonal)) * pfc_terms_scale_coefficient_add_right_u)) /\ exists ff_q_pfp_coefficient_add_right_udiagonalentry. pfc_terms_code_coefficient_add_right_u = ff_q_pfp_coefficient_add_right_udiagonalentry * S ((S (pfc_index_coefficient_add_right_udiagonal)) * pfc_terms_scale_coefficient_add_right_u) + (pfc_value_coefficient_add_right_udiagonal))) /\ ((exists pfc_complement_coefficient_add_right_udiagonalterm pfc_left_coefficient_add_right_udiagonalterm pfc_right_coefficient_add_right_udiagonalterm. (((pfc_index_coefficient_add_right_udiagonal)+pfc_complement_coefficient_add_right_udiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_add_right_udiagonaltermleftinside. pfa_gap_coefficient_add_right_udiagonaltermleftinside + S (pfc_index_coefficient_add_right_udiagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_add_right_udiagonaltermleftentry. ff_h_pfp_coefficient_add_right_udiagonaltermleftentry + S (pfc_left_coefficient_add_right_udiagonalterm) = S ((S (pfc_index_coefficient_add_right_udiagonal)) * ac)) /\ exists ff_q_pfp_coefficient_add_right_udiagonaltermleftentry. ab = ff_q_pfp_coefficient_add_right_udiagonaltermleftentry * S ((S (pfc_index_coefficient_add_right_udiagonal)) * ac) + (pfc_left_coefficient_add_right_udiagonalterm)))))) \/ (((exists pfc_gap_coefficient_add_right_udiagonaltermleftoutside. pfc_gap_coefficient_add_right_udiagonaltermleftoutside+(L)=(pfc_index_coefficient_add_right_udiagonal)) /\ (((pfc_left_coefficient_add_right_udiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_add_right_udiagonaltermrightinside. pfa_gap_coefficient_add_right_udiagonaltermrightinside + S (pfc_complement_coefficient_add_right_udiagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_add_right_udiagonaltermrightentry. ff_h_pfp_coefficient_add_right_udiagonaltermrightentry + S (pfc_right_coefficient_add_right_udiagonalterm) = S ((S (pfc_complement_coefficient_add_right_udiagonalterm)) * dc)) /\ exists ff_q_pfp_coefficient_add_right_udiagonaltermrightentry. db = ff_q_pfp_coefficient_add_right_udiagonaltermrightentry * S ((S (pfc_complement_coefficient_add_right_udiagonalterm)) * dc) + (pfc_right_coefficient_add_right_udiagonalterm)))))) \/ (((exists pfc_gap_coefficient_add_right_udiagonaltermrightoutside. pfc_gap_coefficient_add_right_udiagonaltermrightoutside+(M)=(pfc_complement_coefficient_add_right_udiagonalterm)) /\ (((pfc_right_coefficient_add_right_udiagonalterm)=0))))) /\ (((pfc_value_coefficient_add_right_udiagonal)=pfc_left_coefficient_add_right_udiagonalterm*pfc_right_coefficient_add_right_udiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_add_right_usum fs_v_pfc_coefficient_add_right_usum. ((((exists fs_h_pfc_coefficient_add_right_usum_body_start. fs_h_pfc_coefficient_add_right_usum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_add_right_usum)) /\ exists fs_q_pfc_coefficient_add_right_usum_body_start. fs_u_pfc_coefficient_add_right_usum = fs_q_pfc_coefficient_add_right_usum_body_start * S ((S (0)) * fs_v_pfc_coefficient_add_right_usum) + (0))) /\ ((((exists fs_h_pfc_coefficient_add_right_usum_body_terminal. fs_h_pfc_coefficient_add_right_usum_body_terminal + S (pfc_natural_sum_coefficient_add_right_u) = S ((S (S (i))) * fs_v_pfc_coefficient_add_right_usum)) /\ exists fs_q_pfc_coefficient_add_right_usum_body_terminal. fs_u_pfc_coefficient_add_right_usum = fs_q_pfc_coefficient_add_right_usum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_add_right_usum) + (pfc_natural_sum_coefficient_add_right_u))) /\ forall fs_i_pfc_coefficient_add_right_usum_body_steps. (exists fs_lt_pfc_coefficient_add_right_usum_body_steps_bound. fs_lt_pfc_coefficient_add_right_usum_body_steps_bound + S fs_i_pfc_coefficient_add_right_usum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_add_right_usum_body_steps fs_r_pfc_coefficient_add_right_usum_body_steps fs_s_pfc_coefficient_add_right_usum_body_steps. ((((exists fs_h_pfc_coefficient_add_right_usum_body_steps_summand. fs_h_pfc_coefficient_add_right_usum_body_steps_summand + S (fs_a_pfc_coefficient_add_right_usum_body_steps) = S ((S (fs_i_pfc_coefficient_add_right_usum_body_steps)) * pfc_terms_scale_coefficient_add_right_u)) /\ exists fs_q_pfc_coefficient_add_right_usum_body_steps_summand. pfc_terms_code_coefficient_add_right_u = fs_q_pfc_coefficient_add_right_usum_body_steps_summand * S ((S (fs_i_pfc_coefficient_add_right_usum_body_steps)) * pfc_terms_scale_coefficient_add_right_u) + (fs_a_pfc_coefficient_add_right_usum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_add_right_usum_body_steps_partial. fs_h_pfc_coefficient_add_right_usum_body_steps_partial + S (fs_r_pfc_coefficient_add_right_usum_body_steps) = S ((S (fs_i_pfc_coefficient_add_right_usum_body_steps)) * fs_v_pfc_coefficient_add_right_usum)) /\ exists fs_q_pfc_coefficient_add_right_usum_body_steps_partial. fs_u_pfc_coefficient_add_right_usum = fs_q_pfc_coefficient_add_right_usum_body_steps_partial * S ((S (fs_i_pfc_coefficient_add_right_usum_body_steps)) * fs_v_pfc_coefficient_add_right_usum) + (fs_r_pfc_coefficient_add_right_usum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_add_right_usum_body_steps_successor. fs_h_pfc_coefficient_add_right_usum_body_steps_successor + S (fs_s_pfc_coefficient_add_right_usum_body_steps) = S ((S (S fs_i_pfc_coefficient_add_right_usum_body_steps)) * fs_v_pfc_coefficient_add_right_usum)) /\ exists fs_q_pfc_coefficient_add_right_usum_body_steps_successor. fs_u_pfc_coefficient_add_right_usum = fs_q_pfc_coefficient_add_right_usum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_add_right_usum_body_steps)) * fs_v_pfc_coefficient_add_right_usum) + (fs_s_pfc_coefficient_add_right_usum_body_steps))) /\ fs_s_pfc_coefficient_add_right_usum_body_steps = fs_r_pfc_coefficient_add_right_usum_body_steps + fs_a_pfc_coefficient_add_right_usum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_add_right_uresiduebound. pfa_gap_coefficient_add_right_uresiduebound + S (u) = (p)) /\ ((exists pfa_offset_left_coefficient_add_right_uresiduecongruence pfa_offset_right_coefficient_add_right_uresiduecongruence. (pfc_natural_sum_coefficient_add_right_u) + (p) * pfa_offset_left_coefficient_add_right_uresiduecongruence = (u) + (p) * pfa_offset_right_coefficient_add_right_uresiduecongruence))))))))) -> (exists pfc_terms_code_coefficient_add_right_v pfc_terms_scale_coefficient_add_right_v pfc_natural_sum_coefficient_add_right_v. ((forall pfc_index_coefficient_add_right_vdiagonal. (exists pfa_gap_coefficient_add_right_vdiagonalbound. pfa_gap_coefficient_add_right_vdiagonalbound + S (pfc_index_coefficient_add_right_vdiagonal) = (S (i))) -> exists pfc_value_coefficient_add_right_vdiagonal. ((((exists ff_h_pfp_coefficient_add_right_vdiagonalentry. ff_h_pfp_coefficient_add_right_vdiagonalentry + S (pfc_value_coefficient_add_right_vdiagonal) = S ((S (pfc_index_coefficient_add_right_vdiagonal)) * pfc_terms_scale_coefficient_add_right_v)) /\ exists ff_q_pfp_coefficient_add_right_vdiagonalentry. pfc_terms_code_coefficient_add_right_v = ff_q_pfp_coefficient_add_right_vdiagonalentry * S ((S (pfc_index_coefficient_add_right_vdiagonal)) * pfc_terms_scale_coefficient_add_right_v) + (pfc_value_coefficient_add_right_vdiagonal))) /\ ((exists pfc_complement_coefficient_add_right_vdiagonalterm pfc_left_coefficient_add_right_vdiagonalterm pfc_right_coefficient_add_right_vdiagonalterm. (((pfc_index_coefficient_add_right_vdiagonal)+pfc_complement_coefficient_add_right_vdiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_add_right_vdiagonaltermleftinside. pfa_gap_coefficient_add_right_vdiagonaltermleftinside + S (pfc_index_coefficient_add_right_vdiagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_add_right_vdiagonaltermleftentry. ff_h_pfp_coefficient_add_right_vdiagonaltermleftentry + S (pfc_left_coefficient_add_right_vdiagonalterm) = S ((S (pfc_index_coefficient_add_right_vdiagonal)) * bc)) /\ exists ff_q_pfp_coefficient_add_right_vdiagonaltermleftentry. bb = ff_q_pfp_coefficient_add_right_vdiagonaltermleftentry * S ((S (pfc_index_coefficient_add_right_vdiagonal)) * bc) + (pfc_left_coefficient_add_right_vdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_add_right_vdiagonaltermleftoutside. pfc_gap_coefficient_add_right_vdiagonaltermleftoutside+(L)=(pfc_index_coefficient_add_right_vdiagonal)) /\ (((pfc_left_coefficient_add_right_vdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_add_right_vdiagonaltermrightinside. pfa_gap_coefficient_add_right_vdiagonaltermrightinside + S (pfc_complement_coefficient_add_right_vdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_add_right_vdiagonaltermrightentry. ff_h_pfp_coefficient_add_right_vdiagonaltermrightentry + S (pfc_right_coefficient_add_right_vdiagonalterm) = S ((S (pfc_complement_coefficient_add_right_vdiagonalterm)) * dc)) /\ exists ff_q_pfp_coefficient_add_right_vdiagonaltermrightentry. db = ff_q_pfp_coefficient_add_right_vdiagonaltermrightentry * S ((S (pfc_complement_coefficient_add_right_vdiagonalterm)) * dc) + (pfc_right_coefficient_add_right_vdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_add_right_vdiagonaltermrightoutside. pfc_gap_coefficient_add_right_vdiagonaltermrightoutside+(M)=(pfc_complement_coefficient_add_right_vdiagonalterm)) /\ (((pfc_right_coefficient_add_right_vdiagonalterm)=0))))) /\ (((pfc_value_coefficient_add_right_vdiagonal)=pfc_left_coefficient_add_right_vdiagonalterm*pfc_right_coefficient_add_right_vdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_add_right_vsum fs_v_pfc_coefficient_add_right_vsum. ((((exists fs_h_pfc_coefficient_add_right_vsum_body_start. fs_h_pfc_coefficient_add_right_vsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_add_right_vsum)) /\ exists fs_q_pfc_coefficient_add_right_vsum_body_start. fs_u_pfc_coefficient_add_right_vsum = fs_q_pfc_coefficient_add_right_vsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_add_right_vsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_add_right_vsum_body_terminal. fs_h_pfc_coefficient_add_right_vsum_body_terminal + S (pfc_natural_sum_coefficient_add_right_v) = S ((S (S (i))) * fs_v_pfc_coefficient_add_right_vsum)) /\ exists fs_q_pfc_coefficient_add_right_vsum_body_terminal. fs_u_pfc_coefficient_add_right_vsum = fs_q_pfc_coefficient_add_right_vsum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_add_right_vsum) + (pfc_natural_sum_coefficient_add_right_v))) /\ forall fs_i_pfc_coefficient_add_right_vsum_body_steps. (exists fs_lt_pfc_coefficient_add_right_vsum_body_steps_bound. fs_lt_pfc_coefficient_add_right_vsum_body_steps_bound + S fs_i_pfc_coefficient_add_right_vsum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_add_right_vsum_body_steps fs_r_pfc_coefficient_add_right_vsum_body_steps fs_s_pfc_coefficient_add_right_vsum_body_steps. ((((exists fs_h_pfc_coefficient_add_right_vsum_body_steps_summand. fs_h_pfc_coefficient_add_right_vsum_body_steps_summand + S (fs_a_pfc_coefficient_add_right_vsum_body_steps) = S ((S (fs_i_pfc_coefficient_add_right_vsum_body_steps)) * pfc_terms_scale_coefficient_add_right_v)) /\ exists fs_q_pfc_coefficient_add_right_vsum_body_steps_summand. pfc_terms_code_coefficient_add_right_v = fs_q_pfc_coefficient_add_right_vsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_add_right_vsum_body_steps)) * pfc_terms_scale_coefficient_add_right_v) + (fs_a_pfc_coefficient_add_right_vsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_add_right_vsum_body_steps_partial. fs_h_pfc_coefficient_add_right_vsum_body_steps_partial + S (fs_r_pfc_coefficient_add_right_vsum_body_steps) = S ((S (fs_i_pfc_coefficient_add_right_vsum_body_steps)) * fs_v_pfc_coefficient_add_right_vsum)) /\ exists fs_q_pfc_coefficient_add_right_vsum_body_steps_partial. fs_u_pfc_coefficient_add_right_vsum = fs_q_pfc_coefficient_add_right_vsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_add_right_vsum_body_steps)) * fs_v_pfc_coefficient_add_right_vsum) + (fs_r_pfc_coefficient_add_right_vsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_add_right_vsum_body_steps_successor. fs_h_pfc_coefficient_add_right_vsum_body_steps_successor + S (fs_s_pfc_coefficient_add_right_vsum_body_steps) = S ((S (S fs_i_pfc_coefficient_add_right_vsum_body_steps)) * fs_v_pfc_coefficient_add_right_vsum)) /\ exists fs_q_pfc_coefficient_add_right_vsum_body_steps_successor. fs_u_pfc_coefficient_add_right_vsum = fs_q_pfc_coefficient_add_right_vsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_add_right_vsum_body_steps)) * fs_v_pfc_coefficient_add_right_vsum) + (fs_s_pfc_coefficient_add_right_vsum_body_steps))) /\ fs_s_pfc_coefficient_add_right_vsum_body_steps = fs_r_pfc_coefficient_add_right_vsum_body_steps + fs_a_pfc_coefficient_add_right_vsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_add_right_vresiduebound. pfa_gap_coefficient_add_right_vresiduebound + S (v) = (p)) /\ ((exists pfa_offset_left_coefficient_add_right_vresiduecongruence pfa_offset_right_coefficient_add_right_vresiduecongruence. (pfc_natural_sum_coefficient_add_right_v) + (p) * pfa_offset_left_coefficient_add_right_vresiduecongruence = (v) + (p) * pfa_offset_right_coefficient_add_right_vresiduecongruence))))))))) -> (exists pfc_terms_code_coefficient_add_right_w pfc_terms_scale_coefficient_add_right_w pfc_natural_sum_coefficient_add_right_w. ((forall pfc_index_coefficient_add_right_wdiagonal. (exists pfa_gap_coefficient_add_right_wdiagonalbound. pfa_gap_coefficient_add_right_wdiagonalbound + S (pfc_index_coefficient_add_right_wdiagonal) = (S (i))) -> exists pfc_value_coefficient_add_right_wdiagonal. ((((exists ff_h_pfp_coefficient_add_right_wdiagonalentry. ff_h_pfp_coefficient_add_right_wdiagonalentry + S (pfc_value_coefficient_add_right_wdiagonal) = S ((S (pfc_index_coefficient_add_right_wdiagonal)) * pfc_terms_scale_coefficient_add_right_w)) /\ exists ff_q_pfp_coefficient_add_right_wdiagonalentry. pfc_terms_code_coefficient_add_right_w = ff_q_pfp_coefficient_add_right_wdiagonalentry * S ((S (pfc_index_coefficient_add_right_wdiagonal)) * pfc_terms_scale_coefficient_add_right_w) + (pfc_value_coefficient_add_right_wdiagonal))) /\ ((exists pfc_complement_coefficient_add_right_wdiagonalterm pfc_left_coefficient_add_right_wdiagonalterm pfc_right_coefficient_add_right_wdiagonalterm. (((pfc_index_coefficient_add_right_wdiagonal)+pfc_complement_coefficient_add_right_wdiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_add_right_wdiagonaltermleftinside. pfa_gap_coefficient_add_right_wdiagonaltermleftinside + S (pfc_index_coefficient_add_right_wdiagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_add_right_wdiagonaltermleftentry. ff_h_pfp_coefficient_add_right_wdiagonaltermleftentry + S (pfc_left_coefficient_add_right_wdiagonalterm) = S ((S (pfc_index_coefficient_add_right_wdiagonal)) * cc)) /\ exists ff_q_pfp_coefficient_add_right_wdiagonaltermleftentry. cb = ff_q_pfp_coefficient_add_right_wdiagonaltermleftentry * S ((S (pfc_index_coefficient_add_right_wdiagonal)) * cc) + (pfc_left_coefficient_add_right_wdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_add_right_wdiagonaltermleftoutside. pfc_gap_coefficient_add_right_wdiagonaltermleftoutside+(L)=(pfc_index_coefficient_add_right_wdiagonal)) /\ (((pfc_left_coefficient_add_right_wdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_add_right_wdiagonaltermrightinside. pfa_gap_coefficient_add_right_wdiagonaltermrightinside + S (pfc_complement_coefficient_add_right_wdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_add_right_wdiagonaltermrightentry. ff_h_pfp_coefficient_add_right_wdiagonaltermrightentry + S (pfc_right_coefficient_add_right_wdiagonalterm) = S ((S (pfc_complement_coefficient_add_right_wdiagonalterm)) * dc)) /\ exists ff_q_pfp_coefficient_add_right_wdiagonaltermrightentry. db = ff_q_pfp_coefficient_add_right_wdiagonaltermrightentry * S ((S (pfc_complement_coefficient_add_right_wdiagonalterm)) * dc) + (pfc_right_coefficient_add_right_wdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_add_right_wdiagonaltermrightoutside. pfc_gap_coefficient_add_right_wdiagonaltermrightoutside+(M)=(pfc_complement_coefficient_add_right_wdiagonalterm)) /\ (((pfc_right_coefficient_add_right_wdiagonalterm)=0))))) /\ (((pfc_value_coefficient_add_right_wdiagonal)=pfc_left_coefficient_add_right_wdiagonalterm*pfc_right_coefficient_add_right_wdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_add_right_wsum fs_v_pfc_coefficient_add_right_wsum. ((((exists fs_h_pfc_coefficient_add_right_wsum_body_start. fs_h_pfc_coefficient_add_right_wsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_add_right_wsum)) /\ exists fs_q_pfc_coefficient_add_right_wsum_body_start. fs_u_pfc_coefficient_add_right_wsum = fs_q_pfc_coefficient_add_right_wsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_add_right_wsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_add_right_wsum_body_terminal. fs_h_pfc_coefficient_add_right_wsum_body_terminal + S (pfc_natural_sum_coefficient_add_right_w) = S ((S (S (i))) * fs_v_pfc_coefficient_add_right_wsum)) /\ exists fs_q_pfc_coefficient_add_right_wsum_body_terminal. fs_u_pfc_coefficient_add_right_wsum = fs_q_pfc_coefficient_add_right_wsum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_add_right_wsum) + (pfc_natural_sum_coefficient_add_right_w))) /\ forall fs_i_pfc_coefficient_add_right_wsum_body_steps. (exists fs_lt_pfc_coefficient_add_right_wsum_body_steps_bound. fs_lt_pfc_coefficient_add_right_wsum_body_steps_bound + S fs_i_pfc_coefficient_add_right_wsum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_add_right_wsum_body_steps fs_r_pfc_coefficient_add_right_wsum_body_steps fs_s_pfc_coefficient_add_right_wsum_body_steps. ((((exists fs_h_pfc_coefficient_add_right_wsum_body_steps_summand. fs_h_pfc_coefficient_add_right_wsum_body_steps_summand + S (fs_a_pfc_coefficient_add_right_wsum_body_steps) = S ((S (fs_i_pfc_coefficient_add_right_wsum_body_steps)) * pfc_terms_scale_coefficient_add_right_w)) /\ exists fs_q_pfc_coefficient_add_right_wsum_body_steps_summand. pfc_terms_code_coefficient_add_right_w = fs_q_pfc_coefficient_add_right_wsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_add_right_wsum_body_steps)) * pfc_terms_scale_coefficient_add_right_w) + (fs_a_pfc_coefficient_add_right_wsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_add_right_wsum_body_steps_partial. fs_h_pfc_coefficient_add_right_wsum_body_steps_partial + S (fs_r_pfc_coefficient_add_right_wsum_body_steps) = S ((S (fs_i_pfc_coefficient_add_right_wsum_body_steps)) * fs_v_pfc_coefficient_add_right_wsum)) /\ exists fs_q_pfc_coefficient_add_right_wsum_body_steps_partial. fs_u_pfc_coefficient_add_right_wsum = fs_q_pfc_coefficient_add_right_wsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_add_right_wsum_body_steps)) * fs_v_pfc_coefficient_add_right_wsum) + (fs_r_pfc_coefficient_add_right_wsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_add_right_wsum_body_steps_successor. fs_h_pfc_coefficient_add_right_wsum_body_steps_successor + S (fs_s_pfc_coefficient_add_right_wsum_body_steps) = S ((S (S fs_i_pfc_coefficient_add_right_wsum_body_steps)) * fs_v_pfc_coefficient_add_right_wsum)) /\ exists fs_q_pfc_coefficient_add_right_wsum_body_steps_successor. fs_u_pfc_coefficient_add_right_wsum = fs_q_pfc_coefficient_add_right_wsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_add_right_wsum_body_steps)) * fs_v_pfc_coefficient_add_right_wsum) + (fs_s_pfc_coefficient_add_right_wsum_body_steps))) /\ fs_s_pfc_coefficient_add_right_wsum_body_steps = fs_r_pfc_coefficient_add_right_wsum_body_steps + fs_a_pfc_coefficient_add_right_wsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_add_right_wresiduebound. pfa_gap_coefficient_add_right_wresiduebound + S (w) = (p)) /\ ((exists pfa_offset_left_coefficient_add_right_wresiduecongruence pfa_offset_right_coefficient_add_right_wresiduecongruence. (pfc_natural_sum_coefficient_add_right_w) + (p) * pfa_offset_left_coefficient_add_right_wresiduecongruence = (w) + (p) * pfa_offset_right_coefficient_add_right_wresiduecongruence))))))))) -> (((exists pfa_gap_coefficient_add_right_resultleft. pfa_gap_coefficient_add_right_resultleft + S (u) = (p)) /\ (((exists pfa_gap_coefficient_add_right_resultright. pfa_gap_coefficient_add_right_resultright + S (v) = (p)) /\ ((((exists pfa_gap_coefficient_add_right_resultresultbound. pfa_gap_coefficient_add_right_resultresultbound + S (w) = (p)) /\ ((exists pfa_offset_left_coefficient_add_right_resultresultcongruence pfa_offset_right_coefficient_add_right_resultresultcongruence. ((u) + (v)) + (p) * pfa_offset_left_coefficient_add_right_resultresultcongruence = (w) + (p) * pfa_offset_right_coefficient_add_right_resultresultcongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro db
  10. intro dc
  11. intro M
  12. intro i
  13. intro u
  14. intro v
  15. intro w
  16. intro hs
  17. intro hu
  18. intro hv
  19. intro hw
  20. cases hu
  21. cases hu_witness
  22. cases hu_witness_witness
  23. cases hu_witness_witness_witness
  24. cases hu_witness_witness_witness_right
  25. cases hv
  26. cases hv_witness
  27. cases hv_witness_witness
  28. cases hv_witness_witness_witness
  29. cases hv_witness_witness_witness_right
  30. cases hw
  31. cases hw_witness
  32. cases hw_witness_witness
  33. cases hw_witness_witness_witness
  34. cases hw_witness_witness_witness_right
  35. have hsum : exists pfa_offset_left_coefficient_add_right_sum pfa_offset_right_coefficient_add_right_sum. (x2+x5) + (p) * pfa_offset_left_coefficient_add_right_sum = (x8) + (p) * pfa_offset_right_coefficient_add_right_sum
  36. specialize polynomial_diagonal_sum_right_add_congruent (p)
  37. specialize polynomial_diagonal_sum_right_add_congruent (ab)
  38. specialize polynomial_diagonal_sum_right_add_congruent (ac)
  39. specialize polynomial_diagonal_sum_right_add_congruent (bb)
  40. specialize polynomial_diagonal_sum_right_add_congruent (bc)
  41. specialize polynomial_diagonal_sum_right_add_congruent (cb)
  42. specialize polynomial_diagonal_sum_right_add_congruent (cc)
  43. specialize polynomial_diagonal_sum_right_add_congruent (L)
  44. specialize polynomial_diagonal_sum_right_add_congruent (db)
  45. specialize polynomial_diagonal_sum_right_add_congruent (dc)
  46. specialize polynomial_diagonal_sum_right_add_congruent (M)
  47. specialize polynomial_diagonal_sum_right_add_congruent (i)
  48. specialize polynomial_diagonal_sum_right_add_congruent (S i)
  49. specialize polynomial_diagonal_sum_right_add_congruent (x)
  50. specialize polynomial_diagonal_sum_right_add_congruent (x1)
  51. specialize polynomial_diagonal_sum_right_add_congruent (x3)
  52. specialize polynomial_diagonal_sum_right_add_congruent (x4)
  53. specialize polynomial_diagonal_sum_right_add_congruent (x6)
  54. specialize polynomial_diagonal_sum_right_add_congruent (x7)
  55. specialize polynomial_diagonal_sum_right_add_congruent (x2)
  56. specialize polynomial_diagonal_sum_right_add_congruent (x5)
  57. specialize polynomial_diagonal_sum_right_add_congruent (x8)
  58. apply polynomial_diagonal_sum_right_add_congruent
  59. exact hs
  60. exact hu_witness_witness_witness_left
  61. exact hu_witness_witness_witness_right_left
  62. exact hv_witness_witness_witness_left
  63. exact hv_witness_witness_witness_right_left
  64. exact hw_witness_witness_witness_left
  65. exact hw_witness_witness_witness_right_left
  66. cases hu_witness_witness_witness_right_right
  67. cases hv_witness_witness_witness_right_right
  68. cases hw_witness_witness_witness_right_right
  69. have hraw : exists pfa_offset_left_coefficient_add_right_raw pfa_offset_right_coefficient_add_right_raw. (x2+x5) + (p) * pfa_offset_left_coefficient_add_right_raw = (w) + (p) * pfa_offset_right_coefficient_add_right_raw
  70. specialize mod_eq_trans (p)
  71. specialize mod_eq_trans (x2+x5)
  72. specialize mod_eq_trans (x8)
  73. specialize mod_eq_trans (w)
  74. apply mod_eq_trans
  75. exact hsum
  76. exact hw_witness_witness_witness_right_right_right
  77. split
  78. exact hu_witness_witness_witness_right_right_left
  79. split
  80. exact hv_witness_witness_witness_right_right_left
  81. split
  82. exact hw_witness_witness_witness_right_right_left
  83. specialize mod_eq_trans (p)
  84. specialize mod_eq_trans (u+v)
  85. specialize mod_eq_trans (x2+x5)
  86. specialize mod_eq_trans (w)
  87. apply mod_eq_trans
  88. specialize mod_eq_symm (p)
  89. specialize mod_eq_symm (x2+x5)
  90. specialize mod_eq_symm (u+v)
  91. apply mod_eq_symm
  92. specialize mod_eq_add (p)
  93. specialize mod_eq_add (x2)
  94. specialize mod_eq_add (u)
  95. specialize mod_eq_add (x5)
  96. specialize mod_eq_add (v)
  97. apply mod_eq_add
  98. exact hu_witness_witness_witness_right_right_right
  99. exact hv_witness_witness_witness_right_right_right
  100. exact hraw
prime_field_convolution_prefix_right_add · unchanged support, not a new admission
forall p ab ac bb bc cb cc L db dc M ub uc vb vc wb wc N. (forall pfp_index_prefix_add_right_source. (exists pfa_gap_prefix_add_right_sourceindex. pfa_gap_prefix_add_right_sourceindex + S (pfp_index_prefix_add_right_source) = (L)) -> exists pfp_left_prefix_add_right_source pfp_right_prefix_add_right_source pfp_value_prefix_add_right_source. ((((exists ff_h_pfp_prefix_add_right_sourceleft. ff_h_pfp_prefix_add_right_sourceleft + S (pfp_left_prefix_add_right_source) = S ((S (pfp_index_prefix_add_right_source)) * ac)) /\ exists ff_q_pfp_prefix_add_right_sourceleft. ab = ff_q_pfp_prefix_add_right_sourceleft * S ((S (pfp_index_prefix_add_right_source)) * ac) + (pfp_left_prefix_add_right_source))) /\ (((((exists ff_h_pfp_prefix_add_right_sourceright. ff_h_pfp_prefix_add_right_sourceright + S (pfp_right_prefix_add_right_source) = S ((S (pfp_index_prefix_add_right_source)) * bc)) /\ exists ff_q_pfp_prefix_add_right_sourceright. bb = ff_q_pfp_prefix_add_right_sourceright * S ((S (pfp_index_prefix_add_right_source)) * bc) + (pfp_right_prefix_add_right_source))) /\ (((((exists ff_h_pfp_prefix_add_right_sourcetarget. ff_h_pfp_prefix_add_right_sourcetarget + S (pfp_value_prefix_add_right_source) = S ((S (pfp_index_prefix_add_right_source)) * cc)) /\ exists ff_q_pfp_prefix_add_right_sourcetarget. cb = ff_q_pfp_prefix_add_right_sourcetarget * S ((S (pfp_index_prefix_add_right_source)) * cc) + (pfp_value_prefix_add_right_source))) /\ ((((exists pfa_gap_prefix_add_right_sourceoperationleft. pfa_gap_prefix_add_right_sourceoperationleft + S (pfp_left_prefix_add_right_source) = (p)) /\ (((exists pfa_gap_prefix_add_right_sourceoperationright. pfa_gap_prefix_add_right_sourceoperationright + S (pfp_right_prefix_add_right_source) = (p)) /\ ((((exists pfa_gap_prefix_add_right_sourceoperationresultbound. pfa_gap_prefix_add_right_sourceoperationresultbound + S (pfp_value_prefix_add_right_source) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_sourceoperationresultcongruence pfa_offset_right_prefix_add_right_sourceoperationresultcongruence. ((pfp_left_prefix_add_right_source) + (pfp_right_prefix_add_right_source)) + (p) * pfa_offset_left_prefix_add_right_sourceoperationresultcongruence = (pfp_value_prefix_add_right_source) + (p) * pfa_offset_right_prefix_add_right_sourceoperationresultcongruence)))))))))))))))) -> (forall pfc_index_prefix_add_right_ub. (exists pfa_gap_prefix_add_right_ubbound. pfa_gap_prefix_add_right_ubbound + S (pfc_index_prefix_add_right_ub) = (N)) -> exists pfc_value_prefix_add_right_ub. ((((exists ff_h_pfp_prefix_add_right_ubentry. ff_h_pfp_prefix_add_right_ubentry + S (pfc_value_prefix_add_right_ub) = S ((S (pfc_index_prefix_add_right_ub)) * uc)) /\ exists ff_q_pfp_prefix_add_right_ubentry. ub = ff_q_pfp_prefix_add_right_ubentry * S ((S (pfc_index_prefix_add_right_ub)) * uc) + (pfc_value_prefix_add_right_ub))) /\ ((exists pfc_terms_code_prefix_add_right_ubcoefficient pfc_terms_scale_prefix_add_right_ubcoefficient pfc_natural_sum_prefix_add_right_ubcoefficient. ((forall pfc_index_prefix_add_right_ubcoefficientdiagonal. (exists pfa_gap_prefix_add_right_ubcoefficientdiagonalbound. pfa_gap_prefix_add_right_ubcoefficientdiagonalbound + S (pfc_index_prefix_add_right_ubcoefficientdiagonal) = (S (pfc_index_prefix_add_right_ub))) -> exists pfc_value_prefix_add_right_ubcoefficientdiagonal. ((((exists ff_h_pfp_prefix_add_right_ubcoefficientdiagonalentry. ff_h_pfp_prefix_add_right_ubcoefficientdiagonalentry + S (pfc_value_prefix_add_right_ubcoefficientdiagonal) = S ((S (pfc_index_prefix_add_right_ubcoefficientdiagonal)) * pfc_terms_scale_prefix_add_right_ubcoefficient)) /\ exists ff_q_pfp_prefix_add_right_ubcoefficientdiagonalentry. pfc_terms_code_prefix_add_right_ubcoefficient = ff_q_pfp_prefix_add_right_ubcoefficientdiagonalentry * S ((S (pfc_index_prefix_add_right_ubcoefficientdiagonal)) * pfc_terms_scale_prefix_add_right_ubcoefficient) + (pfc_value_prefix_add_right_ubcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_add_right_ubcoefficientdiagonalterm pfc_left_prefix_add_right_ubcoefficientdiagonalterm pfc_right_prefix_add_right_ubcoefficientdiagonalterm. (((pfc_index_prefix_add_right_ubcoefficientdiagonal)+pfc_complement_prefix_add_right_ubcoefficientdiagonalterm=(pfc_index_prefix_add_right_ub)) /\ ((((((exists pfa_gap_prefix_add_right_ubcoefficientdiagonaltermleftinside. pfa_gap_prefix_add_right_ubcoefficientdiagonaltermleftinside + S (pfc_index_prefix_add_right_ubcoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_add_right_ubcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_add_right_ubcoefficientdiagonaltermleftentry + S (pfc_left_prefix_add_right_ubcoefficientdiagonalterm) = S ((S (pfc_index_prefix_add_right_ubcoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_prefix_add_right_ubcoefficientdiagonaltermleftentry. ab = ff_q_pfp_prefix_add_right_ubcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_add_right_ubcoefficientdiagonal)) * ac) + (pfc_left_prefix_add_right_ubcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_ubcoefficientdiagonaltermleftoutside. pfc_gap_prefix_add_right_ubcoefficientdiagonaltermleftoutside+(L)=(pfc_index_prefix_add_right_ubcoefficientdiagonal)) /\ (((pfc_left_prefix_add_right_ubcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_right_ubcoefficientdiagonaltermrightinside. pfa_gap_prefix_add_right_ubcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_add_right_ubcoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_add_right_ubcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_add_right_ubcoefficientdiagonaltermrightentry + S (pfc_right_prefix_add_right_ubcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_add_right_ubcoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_prefix_add_right_ubcoefficientdiagonaltermrightentry. db = ff_q_pfp_prefix_add_right_ubcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_right_ubcoefficientdiagonalterm)) * dc) + (pfc_right_prefix_add_right_ubcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_ubcoefficientdiagonaltermrightoutside. pfc_gap_prefix_add_right_ubcoefficientdiagonaltermrightoutside+(M)=(pfc_complement_prefix_add_right_ubcoefficientdiagonalterm)) /\ (((pfc_right_prefix_add_right_ubcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_right_ubcoefficientdiagonal)=pfc_left_prefix_add_right_ubcoefficientdiagonalterm*pfc_right_prefix_add_right_ubcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_right_ubcoefficientsum fs_v_pfc_prefix_add_right_ubcoefficientsum. ((((exists fs_h_pfc_prefix_add_right_ubcoefficientsum_body_start. fs_h_pfc_prefix_add_right_ubcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_right_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_ubcoefficientsum_body_start. fs_u_pfc_prefix_add_right_ubcoefficientsum = fs_q_pfc_prefix_add_right_ubcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_right_ubcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_right_ubcoefficientsum_body_terminal. fs_h_pfc_prefix_add_right_ubcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_add_right_ubcoefficient) = S ((S (S (pfc_index_prefix_add_right_ub))) * fs_v_pfc_prefix_add_right_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_ubcoefficientsum_body_terminal. fs_u_pfc_prefix_add_right_ubcoefficientsum = fs_q_pfc_prefix_add_right_ubcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_add_right_ub))) * fs_v_pfc_prefix_add_right_ubcoefficientsum) + (pfc_natural_sum_prefix_add_right_ubcoefficient))) /\ forall fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_add_right_ubcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_add_right_ubcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps = S (pfc_index_prefix_add_right_ub)) -> exists fs_a_pfc_prefix_add_right_ubcoefficientsum_body_steps fs_r_pfc_prefix_add_right_ubcoefficientsum_body_steps fs_s_pfc_prefix_add_right_ubcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_add_right_ubcoefficientsum_body_steps_summand. fs_h_pfc_prefix_add_right_ubcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_add_right_ubcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_right_ubcoefficient)) /\ exists fs_q_pfc_prefix_add_right_ubcoefficientsum_body_steps_summand. pfc_terms_code_prefix_add_right_ubcoefficient = fs_q_pfc_prefix_add_right_ubcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_right_ubcoefficient) + (fs_a_pfc_prefix_add_right_ubcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_ubcoefficientsum_body_steps_partial. fs_h_pfc_prefix_add_right_ubcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_add_right_ubcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_ubcoefficientsum_body_steps_partial. fs_u_pfc_prefix_add_right_ubcoefficientsum = fs_q_pfc_prefix_add_right_ubcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_ubcoefficientsum) + (fs_r_pfc_prefix_add_right_ubcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_ubcoefficientsum_body_steps_successor. fs_h_pfc_prefix_add_right_ubcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_add_right_ubcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_ubcoefficientsum_body_steps_successor. fs_u_pfc_prefix_add_right_ubcoefficientsum = fs_q_pfc_prefix_add_right_ubcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_ubcoefficientsum) + (fs_s_pfc_prefix_add_right_ubcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_add_right_ubcoefficientsum_body_steps = fs_r_pfc_prefix_add_right_ubcoefficientsum_body_steps + fs_a_pfc_prefix_add_right_ubcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_right_ubcoefficientresiduebound. pfa_gap_prefix_add_right_ubcoefficientresiduebound + S (pfc_value_prefix_add_right_ub) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_ubcoefficientresiduecongruence pfa_offset_right_prefix_add_right_ubcoefficientresiduecongruence. (pfc_natural_sum_prefix_add_right_ubcoefficient) + (p) * pfa_offset_left_prefix_add_right_ubcoefficientresiduecongruence = (pfc_value_prefix_add_right_ub) + (p) * pfa_offset_right_prefix_add_right_ubcoefficientresiduecongruence)))))))))))) -> (forall pfc_index_prefix_add_right_vb. (exists pfa_gap_prefix_add_right_vbbound. pfa_gap_prefix_add_right_vbbound + S (pfc_index_prefix_add_right_vb) = (N)) -> exists pfc_value_prefix_add_right_vb. ((((exists ff_h_pfp_prefix_add_right_vbentry. ff_h_pfp_prefix_add_right_vbentry + S (pfc_value_prefix_add_right_vb) = S ((S (pfc_index_prefix_add_right_vb)) * vc)) /\ exists ff_q_pfp_prefix_add_right_vbentry. vb = ff_q_pfp_prefix_add_right_vbentry * S ((S (pfc_index_prefix_add_right_vb)) * vc) + (pfc_value_prefix_add_right_vb))) /\ ((exists pfc_terms_code_prefix_add_right_vbcoefficient pfc_terms_scale_prefix_add_right_vbcoefficient pfc_natural_sum_prefix_add_right_vbcoefficient. ((forall pfc_index_prefix_add_right_vbcoefficientdiagonal. (exists pfa_gap_prefix_add_right_vbcoefficientdiagonalbound. pfa_gap_prefix_add_right_vbcoefficientdiagonalbound + S (pfc_index_prefix_add_right_vbcoefficientdiagonal) = (S (pfc_index_prefix_add_right_vb))) -> exists pfc_value_prefix_add_right_vbcoefficientdiagonal. ((((exists ff_h_pfp_prefix_add_right_vbcoefficientdiagonalentry. ff_h_pfp_prefix_add_right_vbcoefficientdiagonalentry + S (pfc_value_prefix_add_right_vbcoefficientdiagonal) = S ((S (pfc_index_prefix_add_right_vbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_right_vbcoefficient)) /\ exists ff_q_pfp_prefix_add_right_vbcoefficientdiagonalentry. pfc_terms_code_prefix_add_right_vbcoefficient = ff_q_pfp_prefix_add_right_vbcoefficientdiagonalentry * S ((S (pfc_index_prefix_add_right_vbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_right_vbcoefficient) + (pfc_value_prefix_add_right_vbcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_add_right_vbcoefficientdiagonalterm pfc_left_prefix_add_right_vbcoefficientdiagonalterm pfc_right_prefix_add_right_vbcoefficientdiagonalterm. (((pfc_index_prefix_add_right_vbcoefficientdiagonal)+pfc_complement_prefix_add_right_vbcoefficientdiagonalterm=(pfc_index_prefix_add_right_vb)) /\ ((((((exists pfa_gap_prefix_add_right_vbcoefficientdiagonaltermleftinside. pfa_gap_prefix_add_right_vbcoefficientdiagonaltermleftinside + S (pfc_index_prefix_add_right_vbcoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_add_right_vbcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_add_right_vbcoefficientdiagonaltermleftentry + S (pfc_left_prefix_add_right_vbcoefficientdiagonalterm) = S ((S (pfc_index_prefix_add_right_vbcoefficientdiagonal)) * bc)) /\ exists ff_q_pfp_prefix_add_right_vbcoefficientdiagonaltermleftentry. bb = ff_q_pfp_prefix_add_right_vbcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_add_right_vbcoefficientdiagonal)) * bc) + (pfc_left_prefix_add_right_vbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_vbcoefficientdiagonaltermleftoutside. pfc_gap_prefix_add_right_vbcoefficientdiagonaltermleftoutside+(L)=(pfc_index_prefix_add_right_vbcoefficientdiagonal)) /\ (((pfc_left_prefix_add_right_vbcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_right_vbcoefficientdiagonaltermrightinside. pfa_gap_prefix_add_right_vbcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_add_right_vbcoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_add_right_vbcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_add_right_vbcoefficientdiagonaltermrightentry + S (pfc_right_prefix_add_right_vbcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_add_right_vbcoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_prefix_add_right_vbcoefficientdiagonaltermrightentry. db = ff_q_pfp_prefix_add_right_vbcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_right_vbcoefficientdiagonalterm)) * dc) + (pfc_right_prefix_add_right_vbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_vbcoefficientdiagonaltermrightoutside. pfc_gap_prefix_add_right_vbcoefficientdiagonaltermrightoutside+(M)=(pfc_complement_prefix_add_right_vbcoefficientdiagonalterm)) /\ (((pfc_right_prefix_add_right_vbcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_right_vbcoefficientdiagonal)=pfc_left_prefix_add_right_vbcoefficientdiagonalterm*pfc_right_prefix_add_right_vbcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_right_vbcoefficientsum fs_v_pfc_prefix_add_right_vbcoefficientsum. ((((exists fs_h_pfc_prefix_add_right_vbcoefficientsum_body_start. fs_h_pfc_prefix_add_right_vbcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_right_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_vbcoefficientsum_body_start. fs_u_pfc_prefix_add_right_vbcoefficientsum = fs_q_pfc_prefix_add_right_vbcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_right_vbcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_right_vbcoefficientsum_body_terminal. fs_h_pfc_prefix_add_right_vbcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_add_right_vbcoefficient) = S ((S (S (pfc_index_prefix_add_right_vb))) * fs_v_pfc_prefix_add_right_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_vbcoefficientsum_body_terminal. fs_u_pfc_prefix_add_right_vbcoefficientsum = fs_q_pfc_prefix_add_right_vbcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_add_right_vb))) * fs_v_pfc_prefix_add_right_vbcoefficientsum) + (pfc_natural_sum_prefix_add_right_vbcoefficient))) /\ forall fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_add_right_vbcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_add_right_vbcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps = S (pfc_index_prefix_add_right_vb)) -> exists fs_a_pfc_prefix_add_right_vbcoefficientsum_body_steps fs_r_pfc_prefix_add_right_vbcoefficientsum_body_steps fs_s_pfc_prefix_add_right_vbcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_add_right_vbcoefficientsum_body_steps_summand. fs_h_pfc_prefix_add_right_vbcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_add_right_vbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_right_vbcoefficient)) /\ exists fs_q_pfc_prefix_add_right_vbcoefficientsum_body_steps_summand. pfc_terms_code_prefix_add_right_vbcoefficient = fs_q_pfc_prefix_add_right_vbcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_right_vbcoefficient) + (fs_a_pfc_prefix_add_right_vbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_vbcoefficientsum_body_steps_partial. fs_h_pfc_prefix_add_right_vbcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_add_right_vbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_vbcoefficientsum_body_steps_partial. fs_u_pfc_prefix_add_right_vbcoefficientsum = fs_q_pfc_prefix_add_right_vbcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_vbcoefficientsum) + (fs_r_pfc_prefix_add_right_vbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_vbcoefficientsum_body_steps_successor. fs_h_pfc_prefix_add_right_vbcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_add_right_vbcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_vbcoefficientsum_body_steps_successor. fs_u_pfc_prefix_add_right_vbcoefficientsum = fs_q_pfc_prefix_add_right_vbcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_vbcoefficientsum) + (fs_s_pfc_prefix_add_right_vbcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_add_right_vbcoefficientsum_body_steps = fs_r_pfc_prefix_add_right_vbcoefficientsum_body_steps + fs_a_pfc_prefix_add_right_vbcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_right_vbcoefficientresiduebound. pfa_gap_prefix_add_right_vbcoefficientresiduebound + S (pfc_value_prefix_add_right_vb) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_vbcoefficientresiduecongruence pfa_offset_right_prefix_add_right_vbcoefficientresiduecongruence. (pfc_natural_sum_prefix_add_right_vbcoefficient) + (p) * pfa_offset_left_prefix_add_right_vbcoefficientresiduecongruence = (pfc_value_prefix_add_right_vb) + (p) * pfa_offset_right_prefix_add_right_vbcoefficientresiduecongruence)))))))))))) -> (forall pfc_index_prefix_add_right_wb. (exists pfa_gap_prefix_add_right_wbbound. pfa_gap_prefix_add_right_wbbound + S (pfc_index_prefix_add_right_wb) = (N)) -> exists pfc_value_prefix_add_right_wb. ((((exists ff_h_pfp_prefix_add_right_wbentry. ff_h_pfp_prefix_add_right_wbentry + S (pfc_value_prefix_add_right_wb) = S ((S (pfc_index_prefix_add_right_wb)) * wc)) /\ exists ff_q_pfp_prefix_add_right_wbentry. wb = ff_q_pfp_prefix_add_right_wbentry * S ((S (pfc_index_prefix_add_right_wb)) * wc) + (pfc_value_prefix_add_right_wb))) /\ ((exists pfc_terms_code_prefix_add_right_wbcoefficient pfc_terms_scale_prefix_add_right_wbcoefficient pfc_natural_sum_prefix_add_right_wbcoefficient. ((forall pfc_index_prefix_add_right_wbcoefficientdiagonal. (exists pfa_gap_prefix_add_right_wbcoefficientdiagonalbound. pfa_gap_prefix_add_right_wbcoefficientdiagonalbound + S (pfc_index_prefix_add_right_wbcoefficientdiagonal) = (S (pfc_index_prefix_add_right_wb))) -> exists pfc_value_prefix_add_right_wbcoefficientdiagonal. ((((exists ff_h_pfp_prefix_add_right_wbcoefficientdiagonalentry. ff_h_pfp_prefix_add_right_wbcoefficientdiagonalentry + S (pfc_value_prefix_add_right_wbcoefficientdiagonal) = S ((S (pfc_index_prefix_add_right_wbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_right_wbcoefficient)) /\ exists ff_q_pfp_prefix_add_right_wbcoefficientdiagonalentry. pfc_terms_code_prefix_add_right_wbcoefficient = ff_q_pfp_prefix_add_right_wbcoefficientdiagonalentry * S ((S (pfc_index_prefix_add_right_wbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_right_wbcoefficient) + (pfc_value_prefix_add_right_wbcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_add_right_wbcoefficientdiagonalterm pfc_left_prefix_add_right_wbcoefficientdiagonalterm pfc_right_prefix_add_right_wbcoefficientdiagonalterm. (((pfc_index_prefix_add_right_wbcoefficientdiagonal)+pfc_complement_prefix_add_right_wbcoefficientdiagonalterm=(pfc_index_prefix_add_right_wb)) /\ ((((((exists pfa_gap_prefix_add_right_wbcoefficientdiagonaltermleftinside. pfa_gap_prefix_add_right_wbcoefficientdiagonaltermleftinside + S (pfc_index_prefix_add_right_wbcoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_add_right_wbcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_add_right_wbcoefficientdiagonaltermleftentry + S (pfc_left_prefix_add_right_wbcoefficientdiagonalterm) = S ((S (pfc_index_prefix_add_right_wbcoefficientdiagonal)) * cc)) /\ exists ff_q_pfp_prefix_add_right_wbcoefficientdiagonaltermleftentry. cb = ff_q_pfp_prefix_add_right_wbcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_add_right_wbcoefficientdiagonal)) * cc) + (pfc_left_prefix_add_right_wbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_wbcoefficientdiagonaltermleftoutside. pfc_gap_prefix_add_right_wbcoefficientdiagonaltermleftoutside+(L)=(pfc_index_prefix_add_right_wbcoefficientdiagonal)) /\ (((pfc_left_prefix_add_right_wbcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_right_wbcoefficientdiagonaltermrightinside. pfa_gap_prefix_add_right_wbcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_add_right_wbcoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_add_right_wbcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_add_right_wbcoefficientdiagonaltermrightentry + S (pfc_right_prefix_add_right_wbcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_add_right_wbcoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_prefix_add_right_wbcoefficientdiagonaltermrightentry. db = ff_q_pfp_prefix_add_right_wbcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_right_wbcoefficientdiagonalterm)) * dc) + (pfc_right_prefix_add_right_wbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_wbcoefficientdiagonaltermrightoutside. pfc_gap_prefix_add_right_wbcoefficientdiagonaltermrightoutside+(M)=(pfc_complement_prefix_add_right_wbcoefficientdiagonalterm)) /\ (((pfc_right_prefix_add_right_wbcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_right_wbcoefficientdiagonal)=pfc_left_prefix_add_right_wbcoefficientdiagonalterm*pfc_right_prefix_add_right_wbcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_right_wbcoefficientsum fs_v_pfc_prefix_add_right_wbcoefficientsum. ((((exists fs_h_pfc_prefix_add_right_wbcoefficientsum_body_start. fs_h_pfc_prefix_add_right_wbcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_right_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_wbcoefficientsum_body_start. fs_u_pfc_prefix_add_right_wbcoefficientsum = fs_q_pfc_prefix_add_right_wbcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_right_wbcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_right_wbcoefficientsum_body_terminal. fs_h_pfc_prefix_add_right_wbcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_add_right_wbcoefficient) = S ((S (S (pfc_index_prefix_add_right_wb))) * fs_v_pfc_prefix_add_right_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_wbcoefficientsum_body_terminal. fs_u_pfc_prefix_add_right_wbcoefficientsum = fs_q_pfc_prefix_add_right_wbcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_add_right_wb))) * fs_v_pfc_prefix_add_right_wbcoefficientsum) + (pfc_natural_sum_prefix_add_right_wbcoefficient))) /\ forall fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_add_right_wbcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_add_right_wbcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps = S (pfc_index_prefix_add_right_wb)) -> exists fs_a_pfc_prefix_add_right_wbcoefficientsum_body_steps fs_r_pfc_prefix_add_right_wbcoefficientsum_body_steps fs_s_pfc_prefix_add_right_wbcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_add_right_wbcoefficientsum_body_steps_summand. fs_h_pfc_prefix_add_right_wbcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_add_right_wbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_right_wbcoefficient)) /\ exists fs_q_pfc_prefix_add_right_wbcoefficientsum_body_steps_summand. pfc_terms_code_prefix_add_right_wbcoefficient = fs_q_pfc_prefix_add_right_wbcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_right_wbcoefficient) + (fs_a_pfc_prefix_add_right_wbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_wbcoefficientsum_body_steps_partial. fs_h_pfc_prefix_add_right_wbcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_add_right_wbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_wbcoefficientsum_body_steps_partial. fs_u_pfc_prefix_add_right_wbcoefficientsum = fs_q_pfc_prefix_add_right_wbcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_wbcoefficientsum) + (fs_r_pfc_prefix_add_right_wbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_wbcoefficientsum_body_steps_successor. fs_h_pfc_prefix_add_right_wbcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_add_right_wbcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_wbcoefficientsum_body_steps_successor. fs_u_pfc_prefix_add_right_wbcoefficientsum = fs_q_pfc_prefix_add_right_wbcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_wbcoefficientsum) + (fs_s_pfc_prefix_add_right_wbcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_add_right_wbcoefficientsum_body_steps = fs_r_pfc_prefix_add_right_wbcoefficientsum_body_steps + fs_a_pfc_prefix_add_right_wbcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_right_wbcoefficientresiduebound. pfa_gap_prefix_add_right_wbcoefficientresiduebound + S (pfc_value_prefix_add_right_wb) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_wbcoefficientresiduecongruence pfa_offset_right_prefix_add_right_wbcoefficientresiduecongruence. (pfc_natural_sum_prefix_add_right_wbcoefficient) + (p) * pfa_offset_left_prefix_add_right_wbcoefficientresiduecongruence = (pfc_value_prefix_add_right_wb) + (p) * pfa_offset_right_prefix_add_right_wbcoefficientresiduecongruence)))))))))))) -> (forall pfp_index_prefix_add_right_result. (exists pfa_gap_prefix_add_right_resultindex. pfa_gap_prefix_add_right_resultindex + S (pfp_index_prefix_add_right_result) = (N)) -> exists pfp_left_prefix_add_right_result pfp_right_prefix_add_right_result pfp_value_prefix_add_right_result. ((((exists ff_h_pfp_prefix_add_right_resultleft. ff_h_pfp_prefix_add_right_resultleft + S (pfp_left_prefix_add_right_result) = S ((S (pfp_index_prefix_add_right_result)) * uc)) /\ exists ff_q_pfp_prefix_add_right_resultleft. ub = ff_q_pfp_prefix_add_right_resultleft * S ((S (pfp_index_prefix_add_right_result)) * uc) + (pfp_left_prefix_add_right_result))) /\ (((((exists ff_h_pfp_prefix_add_right_resultright. ff_h_pfp_prefix_add_right_resultright + S (pfp_right_prefix_add_right_result) = S ((S (pfp_index_prefix_add_right_result)) * vc)) /\ exists ff_q_pfp_prefix_add_right_resultright. vb = ff_q_pfp_prefix_add_right_resultright * S ((S (pfp_index_prefix_add_right_result)) * vc) + (pfp_right_prefix_add_right_result))) /\ (((((exists ff_h_pfp_prefix_add_right_resulttarget. ff_h_pfp_prefix_add_right_resulttarget + S (pfp_value_prefix_add_right_result) = S ((S (pfp_index_prefix_add_right_result)) * wc)) /\ exists ff_q_pfp_prefix_add_right_resulttarget. wb = ff_q_pfp_prefix_add_right_resulttarget * S ((S (pfp_index_prefix_add_right_result)) * wc) + (pfp_value_prefix_add_right_result))) /\ ((((exists pfa_gap_prefix_add_right_resultoperationleft. pfa_gap_prefix_add_right_resultoperationleft + S (pfp_left_prefix_add_right_result) = (p)) /\ (((exists pfa_gap_prefix_add_right_resultoperationright. pfa_gap_prefix_add_right_resultoperationright + S (pfp_right_prefix_add_right_result) = (p)) /\ ((((exists pfa_gap_prefix_add_right_resultoperationresultbound. pfa_gap_prefix_add_right_resultoperationresultbound + S (pfp_value_prefix_add_right_result) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_resultoperationresultcongruence pfa_offset_right_prefix_add_right_resultoperationresultcongruence. ((pfp_left_prefix_add_right_result) + (pfp_right_prefix_add_right_result)) + (p) * pfa_offset_left_prefix_add_right_resultoperationresultcongruence = (pfp_value_prefix_add_right_result) + (p) * pfa_offset_right_prefix_add_right_resultoperationresultcongruence))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro db
  10. intro dc
  11. intro M
  12. intro ub
  13. intro uc
  14. intro vb
  15. intro vc
  16. intro wb
  17. intro wc
  18. intro N
  19. intro hs
  20. intro hu
  21. intro hv
  22. intro hw
  23. intro i
  24. intro hi
  25. have hcu : exists r. ((((exists ff_h_pfp_prefix_add_right_hcu. ff_h_pfp_prefix_add_right_hcu + S (r) = S ((S (i)) * uc)) /\ exists ff_q_pfp_prefix_add_right_hcu. ub = ff_q_pfp_prefix_add_right_hcu * S ((S (i)) * uc) + (r))) /\ ((exists pfc_terms_code_prefix_add_right_value_hcu pfc_terms_scale_prefix_add_right_value_hcu pfc_natural_sum_prefix_add_right_value_hcu. ((forall pfc_index_prefix_add_right_value_hcudiagonal. (exists pfa_gap_prefix_add_right_value_hcudiagonalbound. pfa_gap_prefix_add_right_value_hcudiagonalbound + S (pfc_index_prefix_add_right_value_hcudiagonal) = (S (i))) -> exists pfc_value_prefix_add_right_value_hcudiagonal. ((((exists ff_h_pfp_prefix_add_right_value_hcudiagonalentry. ff_h_pfp_prefix_add_right_value_hcudiagonalentry + S (pfc_value_prefix_add_right_value_hcudiagonal) = S ((S (pfc_index_prefix_add_right_value_hcudiagonal)) * pfc_terms_scale_prefix_add_right_value_hcu)) /\ exists ff_q_pfp_prefix_add_right_value_hcudiagonalentry. pfc_terms_code_prefix_add_right_value_hcu = ff_q_pfp_prefix_add_right_value_hcudiagonalentry * S ((S (pfc_index_prefix_add_right_value_hcudiagonal)) * pfc_terms_scale_prefix_add_right_value_hcu) + (pfc_value_prefix_add_right_value_hcudiagonal))) /\ ((exists pfc_complement_prefix_add_right_value_hcudiagonalterm pfc_left_prefix_add_right_value_hcudiagonalterm pfc_right_prefix_add_right_value_hcudiagonalterm. (((pfc_index_prefix_add_right_value_hcudiagonal)+pfc_complement_prefix_add_right_value_hcudiagonalterm=(i)) /\ ((((((exists pfa_gap_prefix_add_right_value_hcudiagonaltermleftinside. pfa_gap_prefix_add_right_value_hcudiagonaltermleftinside + S (pfc_index_prefix_add_right_value_hcudiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_add_right_value_hcudiagonaltermleftentry. ff_h_pfp_prefix_add_right_value_hcudiagonaltermleftentry + S (pfc_left_prefix_add_right_value_hcudiagonalterm) = S ((S (pfc_index_prefix_add_right_value_hcudiagonal)) * ac)) /\ exists ff_q_pfp_prefix_add_right_value_hcudiagonaltermleftentry. ab = ff_q_pfp_prefix_add_right_value_hcudiagonaltermleftentry * S ((S (pfc_index_prefix_add_right_value_hcudiagonal)) * ac) + (pfc_left_prefix_add_right_value_hcudiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_value_hcudiagonaltermleftoutside. pfc_gap_prefix_add_right_value_hcudiagonaltermleftoutside+(L)=(pfc_index_prefix_add_right_value_hcudiagonal)) /\ (((pfc_left_prefix_add_right_value_hcudiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_right_value_hcudiagonaltermrightinside. pfa_gap_prefix_add_right_value_hcudiagonaltermrightinside + S (pfc_complement_prefix_add_right_value_hcudiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_add_right_value_hcudiagonaltermrightentry. ff_h_pfp_prefix_add_right_value_hcudiagonaltermrightentry + S (pfc_right_prefix_add_right_value_hcudiagonalterm) = S ((S (pfc_complement_prefix_add_right_value_hcudiagonalterm)) * dc)) /\ exists ff_q_pfp_prefix_add_right_value_hcudiagonaltermrightentry. db = ff_q_pfp_prefix_add_right_value_hcudiagonaltermrightentry * S ((S (pfc_complement_prefix_add_right_value_hcudiagonalterm)) * dc) + (pfc_right_prefix_add_right_value_hcudiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_value_hcudiagonaltermrightoutside. pfc_gap_prefix_add_right_value_hcudiagonaltermrightoutside+(M)=(pfc_complement_prefix_add_right_value_hcudiagonalterm)) /\ (((pfc_right_prefix_add_right_value_hcudiagonalterm)=0))))) /\ (((pfc_value_prefix_add_right_value_hcudiagonal)=pfc_left_prefix_add_right_value_hcudiagonalterm*pfc_right_prefix_add_right_value_hcudiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_right_value_hcusum fs_v_pfc_prefix_add_right_value_hcusum. ((((exists fs_h_pfc_prefix_add_right_value_hcusum_body_start. fs_h_pfc_prefix_add_right_value_hcusum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_right_value_hcusum)) /\ exists fs_q_pfc_prefix_add_right_value_hcusum_body_start. fs_u_pfc_prefix_add_right_value_hcusum = fs_q_pfc_prefix_add_right_value_hcusum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_right_value_hcusum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcusum_body_terminal. fs_h_pfc_prefix_add_right_value_hcusum_body_terminal + S (pfc_natural_sum_prefix_add_right_value_hcu) = S ((S (S (i))) * fs_v_pfc_prefix_add_right_value_hcusum)) /\ exists fs_q_pfc_prefix_add_right_value_hcusum_body_terminal. fs_u_pfc_prefix_add_right_value_hcusum = fs_q_pfc_prefix_add_right_value_hcusum_body_terminal * S ((S (S (i))) * fs_v_pfc_prefix_add_right_value_hcusum) + (pfc_natural_sum_prefix_add_right_value_hcu))) /\ forall fs_i_pfc_prefix_add_right_value_hcusum_body_steps. (exists fs_lt_pfc_prefix_add_right_value_hcusum_body_steps_bound. fs_lt_pfc_prefix_add_right_value_hcusum_body_steps_bound + S fs_i_pfc_prefix_add_right_value_hcusum_body_steps = S (i)) -> exists fs_a_pfc_prefix_add_right_value_hcusum_body_steps fs_r_pfc_prefix_add_right_value_hcusum_body_steps fs_s_pfc_prefix_add_right_value_hcusum_body_steps. ((((exists fs_h_pfc_prefix_add_right_value_hcusum_body_steps_summand. fs_h_pfc_prefix_add_right_value_hcusum_body_steps_summand + S (fs_a_pfc_prefix_add_right_value_hcusum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_value_hcusum_body_steps)) * pfc_terms_scale_prefix_add_right_value_hcu)) /\ exists fs_q_pfc_prefix_add_right_value_hcusum_body_steps_summand. pfc_terms_code_prefix_add_right_value_hcu = fs_q_pfc_prefix_add_right_value_hcusum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_right_value_hcusum_body_steps)) * pfc_terms_scale_prefix_add_right_value_hcu) + (fs_a_pfc_prefix_add_right_value_hcusum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcusum_body_steps_partial. fs_h_pfc_prefix_add_right_value_hcusum_body_steps_partial + S (fs_r_pfc_prefix_add_right_value_hcusum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcusum)) /\ exists fs_q_pfc_prefix_add_right_value_hcusum_body_steps_partial. fs_u_pfc_prefix_add_right_value_hcusum = fs_q_pfc_prefix_add_right_value_hcusum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_right_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcusum) + (fs_r_pfc_prefix_add_right_value_hcusum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcusum_body_steps_successor. fs_h_pfc_prefix_add_right_value_hcusum_body_steps_successor + S (fs_s_pfc_prefix_add_right_value_hcusum_body_steps) = S ((S (S fs_i_pfc_prefix_add_right_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcusum)) /\ exists fs_q_pfc_prefix_add_right_value_hcusum_body_steps_successor. fs_u_pfc_prefix_add_right_value_hcusum = fs_q_pfc_prefix_add_right_value_hcusum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_right_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcusum) + (fs_s_pfc_prefix_add_right_value_hcusum_body_steps))) /\ fs_s_pfc_prefix_add_right_value_hcusum_body_steps = fs_r_pfc_prefix_add_right_value_hcusum_body_steps + fs_a_pfc_prefix_add_right_value_hcusum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_right_value_hcuresiduebound. pfa_gap_prefix_add_right_value_hcuresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_value_hcuresiduecongruence pfa_offset_right_prefix_add_right_value_hcuresiduecongruence. (pfc_natural_sum_prefix_add_right_value_hcu) + (p) * pfa_offset_left_prefix_add_right_value_hcuresiduecongruence = (r) + (p) * pfa_offset_right_prefix_add_right_value_hcuresiduecongruence)))))))))))
  26. specialize hu (i)
  27. apply hu
  28. exact hi
  29. cases hcu
  30. cases hcu_witness
  31. have hcv : exists r. ((((exists ff_h_pfp_prefix_add_right_hcv. ff_h_pfp_prefix_add_right_hcv + S (r) = S ((S (i)) * vc)) /\ exists ff_q_pfp_prefix_add_right_hcv. vb = ff_q_pfp_prefix_add_right_hcv * S ((S (i)) * vc) + (r))) /\ ((exists pfc_terms_code_prefix_add_right_value_hcv pfc_terms_scale_prefix_add_right_value_hcv pfc_natural_sum_prefix_add_right_value_hcv. ((forall pfc_index_prefix_add_right_value_hcvdiagonal. (exists pfa_gap_prefix_add_right_value_hcvdiagonalbound. pfa_gap_prefix_add_right_value_hcvdiagonalbound + S (pfc_index_prefix_add_right_value_hcvdiagonal) = (S (i))) -> exists pfc_value_prefix_add_right_value_hcvdiagonal. ((((exists ff_h_pfp_prefix_add_right_value_hcvdiagonalentry. ff_h_pfp_prefix_add_right_value_hcvdiagonalentry + S (pfc_value_prefix_add_right_value_hcvdiagonal) = S ((S (pfc_index_prefix_add_right_value_hcvdiagonal)) * pfc_terms_scale_prefix_add_right_value_hcv)) /\ exists ff_q_pfp_prefix_add_right_value_hcvdiagonalentry. pfc_terms_code_prefix_add_right_value_hcv = ff_q_pfp_prefix_add_right_value_hcvdiagonalentry * S ((S (pfc_index_prefix_add_right_value_hcvdiagonal)) * pfc_terms_scale_prefix_add_right_value_hcv) + (pfc_value_prefix_add_right_value_hcvdiagonal))) /\ ((exists pfc_complement_prefix_add_right_value_hcvdiagonalterm pfc_left_prefix_add_right_value_hcvdiagonalterm pfc_right_prefix_add_right_value_hcvdiagonalterm. (((pfc_index_prefix_add_right_value_hcvdiagonal)+pfc_complement_prefix_add_right_value_hcvdiagonalterm=(i)) /\ ((((((exists pfa_gap_prefix_add_right_value_hcvdiagonaltermleftinside. pfa_gap_prefix_add_right_value_hcvdiagonaltermleftinside + S (pfc_index_prefix_add_right_value_hcvdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_add_right_value_hcvdiagonaltermleftentry. ff_h_pfp_prefix_add_right_value_hcvdiagonaltermleftentry + S (pfc_left_prefix_add_right_value_hcvdiagonalterm) = S ((S (pfc_index_prefix_add_right_value_hcvdiagonal)) * bc)) /\ exists ff_q_pfp_prefix_add_right_value_hcvdiagonaltermleftentry. bb = ff_q_pfp_prefix_add_right_value_hcvdiagonaltermleftentry * S ((S (pfc_index_prefix_add_right_value_hcvdiagonal)) * bc) + (pfc_left_prefix_add_right_value_hcvdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_value_hcvdiagonaltermleftoutside. pfc_gap_prefix_add_right_value_hcvdiagonaltermleftoutside+(L)=(pfc_index_prefix_add_right_value_hcvdiagonal)) /\ (((pfc_left_prefix_add_right_value_hcvdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_right_value_hcvdiagonaltermrightinside. pfa_gap_prefix_add_right_value_hcvdiagonaltermrightinside + S (pfc_complement_prefix_add_right_value_hcvdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_add_right_value_hcvdiagonaltermrightentry. ff_h_pfp_prefix_add_right_value_hcvdiagonaltermrightentry + S (pfc_right_prefix_add_right_value_hcvdiagonalterm) = S ((S (pfc_complement_prefix_add_right_value_hcvdiagonalterm)) * dc)) /\ exists ff_q_pfp_prefix_add_right_value_hcvdiagonaltermrightentry. db = ff_q_pfp_prefix_add_right_value_hcvdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_right_value_hcvdiagonalterm)) * dc) + (pfc_right_prefix_add_right_value_hcvdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_value_hcvdiagonaltermrightoutside. pfc_gap_prefix_add_right_value_hcvdiagonaltermrightoutside+(M)=(pfc_complement_prefix_add_right_value_hcvdiagonalterm)) /\ (((pfc_right_prefix_add_right_value_hcvdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_right_value_hcvdiagonal)=pfc_left_prefix_add_right_value_hcvdiagonalterm*pfc_right_prefix_add_right_value_hcvdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_right_value_hcvsum fs_v_pfc_prefix_add_right_value_hcvsum. ((((exists fs_h_pfc_prefix_add_right_value_hcvsum_body_start. fs_h_pfc_prefix_add_right_value_hcvsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_right_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcvsum_body_start. fs_u_pfc_prefix_add_right_value_hcvsum = fs_q_pfc_prefix_add_right_value_hcvsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_right_value_hcvsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcvsum_body_terminal. fs_h_pfc_prefix_add_right_value_hcvsum_body_terminal + S (pfc_natural_sum_prefix_add_right_value_hcv) = S ((S (S (i))) * fs_v_pfc_prefix_add_right_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcvsum_body_terminal. fs_u_pfc_prefix_add_right_value_hcvsum = fs_q_pfc_prefix_add_right_value_hcvsum_body_terminal * S ((S (S (i))) * fs_v_pfc_prefix_add_right_value_hcvsum) + (pfc_natural_sum_prefix_add_right_value_hcv))) /\ forall fs_i_pfc_prefix_add_right_value_hcvsum_body_steps. (exists fs_lt_pfc_prefix_add_right_value_hcvsum_body_steps_bound. fs_lt_pfc_prefix_add_right_value_hcvsum_body_steps_bound + S fs_i_pfc_prefix_add_right_value_hcvsum_body_steps = S (i)) -> exists fs_a_pfc_prefix_add_right_value_hcvsum_body_steps fs_r_pfc_prefix_add_right_value_hcvsum_body_steps fs_s_pfc_prefix_add_right_value_hcvsum_body_steps. ((((exists fs_h_pfc_prefix_add_right_value_hcvsum_body_steps_summand. fs_h_pfc_prefix_add_right_value_hcvsum_body_steps_summand + S (fs_a_pfc_prefix_add_right_value_hcvsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_value_hcvsum_body_steps)) * pfc_terms_scale_prefix_add_right_value_hcv)) /\ exists fs_q_pfc_prefix_add_right_value_hcvsum_body_steps_summand. pfc_terms_code_prefix_add_right_value_hcv = fs_q_pfc_prefix_add_right_value_hcvsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_right_value_hcvsum_body_steps)) * pfc_terms_scale_prefix_add_right_value_hcv) + (fs_a_pfc_prefix_add_right_value_hcvsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcvsum_body_steps_partial. fs_h_pfc_prefix_add_right_value_hcvsum_body_steps_partial + S (fs_r_pfc_prefix_add_right_value_hcvsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcvsum_body_steps_partial. fs_u_pfc_prefix_add_right_value_hcvsum = fs_q_pfc_prefix_add_right_value_hcvsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_right_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcvsum) + (fs_r_pfc_prefix_add_right_value_hcvsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcvsum_body_steps_successor. fs_h_pfc_prefix_add_right_value_hcvsum_body_steps_successor + S (fs_s_pfc_prefix_add_right_value_hcvsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_right_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcvsum_body_steps_successor. fs_u_pfc_prefix_add_right_value_hcvsum = fs_q_pfc_prefix_add_right_value_hcvsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_right_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcvsum) + (fs_s_pfc_prefix_add_right_value_hcvsum_body_steps))) /\ fs_s_pfc_prefix_add_right_value_hcvsum_body_steps = fs_r_pfc_prefix_add_right_value_hcvsum_body_steps + fs_a_pfc_prefix_add_right_value_hcvsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_right_value_hcvresiduebound. pfa_gap_prefix_add_right_value_hcvresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_value_hcvresiduecongruence pfa_offset_right_prefix_add_right_value_hcvresiduecongruence. (pfc_natural_sum_prefix_add_right_value_hcv) + (p) * pfa_offset_left_prefix_add_right_value_hcvresiduecongruence = (r) + (p) * pfa_offset_right_prefix_add_right_value_hcvresiduecongruence)))))))))))
  32. specialize hv (i)
  33. apply hv
  34. exact hi
  35. cases hcv
  36. cases hcv_witness
  37. have hcw : exists r. ((((exists ff_h_pfp_prefix_add_right_hcw. ff_h_pfp_prefix_add_right_hcw + S (r) = S ((S (i)) * wc)) /\ exists ff_q_pfp_prefix_add_right_hcw. wb = ff_q_pfp_prefix_add_right_hcw * S ((S (i)) * wc) + (r))) /\ ((exists pfc_terms_code_prefix_add_right_value_hcw pfc_terms_scale_prefix_add_right_value_hcw pfc_natural_sum_prefix_add_right_value_hcw. ((forall pfc_index_prefix_add_right_value_hcwdiagonal. (exists pfa_gap_prefix_add_right_value_hcwdiagonalbound. pfa_gap_prefix_add_right_value_hcwdiagonalbound + S (pfc_index_prefix_add_right_value_hcwdiagonal) = (S (i))) -> exists pfc_value_prefix_add_right_value_hcwdiagonal. ((((exists ff_h_pfp_prefix_add_right_value_hcwdiagonalentry. ff_h_pfp_prefix_add_right_value_hcwdiagonalentry + S (pfc_value_prefix_add_right_value_hcwdiagonal) = S ((S (pfc_index_prefix_add_right_value_hcwdiagonal)) * pfc_terms_scale_prefix_add_right_value_hcw)) /\ exists ff_q_pfp_prefix_add_right_value_hcwdiagonalentry. pfc_terms_code_prefix_add_right_value_hcw = ff_q_pfp_prefix_add_right_value_hcwdiagonalentry * S ((S (pfc_index_prefix_add_right_value_hcwdiagonal)) * pfc_terms_scale_prefix_add_right_value_hcw) + (pfc_value_prefix_add_right_value_hcwdiagonal))) /\ ((exists pfc_complement_prefix_add_right_value_hcwdiagonalterm pfc_left_prefix_add_right_value_hcwdiagonalterm pfc_right_prefix_add_right_value_hcwdiagonalterm. (((pfc_index_prefix_add_right_value_hcwdiagonal)+pfc_complement_prefix_add_right_value_hcwdiagonalterm=(i)) /\ ((((((exists pfa_gap_prefix_add_right_value_hcwdiagonaltermleftinside. pfa_gap_prefix_add_right_value_hcwdiagonaltermleftinside + S (pfc_index_prefix_add_right_value_hcwdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_add_right_value_hcwdiagonaltermleftentry. ff_h_pfp_prefix_add_right_value_hcwdiagonaltermleftentry + S (pfc_left_prefix_add_right_value_hcwdiagonalterm) = S ((S (pfc_index_prefix_add_right_value_hcwdiagonal)) * cc)) /\ exists ff_q_pfp_prefix_add_right_value_hcwdiagonaltermleftentry. cb = ff_q_pfp_prefix_add_right_value_hcwdiagonaltermleftentry * S ((S (pfc_index_prefix_add_right_value_hcwdiagonal)) * cc) + (pfc_left_prefix_add_right_value_hcwdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_value_hcwdiagonaltermleftoutside. pfc_gap_prefix_add_right_value_hcwdiagonaltermleftoutside+(L)=(pfc_index_prefix_add_right_value_hcwdiagonal)) /\ (((pfc_left_prefix_add_right_value_hcwdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_right_value_hcwdiagonaltermrightinside. pfa_gap_prefix_add_right_value_hcwdiagonaltermrightinside + S (pfc_complement_prefix_add_right_value_hcwdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_add_right_value_hcwdiagonaltermrightentry. ff_h_pfp_prefix_add_right_value_hcwdiagonaltermrightentry + S (pfc_right_prefix_add_right_value_hcwdiagonalterm) = S ((S (pfc_complement_prefix_add_right_value_hcwdiagonalterm)) * dc)) /\ exists ff_q_pfp_prefix_add_right_value_hcwdiagonaltermrightentry. db = ff_q_pfp_prefix_add_right_value_hcwdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_right_value_hcwdiagonalterm)) * dc) + (pfc_right_prefix_add_right_value_hcwdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_value_hcwdiagonaltermrightoutside. pfc_gap_prefix_add_right_value_hcwdiagonaltermrightoutside+(M)=(pfc_complement_prefix_add_right_value_hcwdiagonalterm)) /\ (((pfc_right_prefix_add_right_value_hcwdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_right_value_hcwdiagonal)=pfc_left_prefix_add_right_value_hcwdiagonalterm*pfc_right_prefix_add_right_value_hcwdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_right_value_hcwsum fs_v_pfc_prefix_add_right_value_hcwsum. ((((exists fs_h_pfc_prefix_add_right_value_hcwsum_body_start. fs_h_pfc_prefix_add_right_value_hcwsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_right_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcwsum_body_start. fs_u_pfc_prefix_add_right_value_hcwsum = fs_q_pfc_prefix_add_right_value_hcwsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_right_value_hcwsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcwsum_body_terminal. fs_h_pfc_prefix_add_right_value_hcwsum_body_terminal + S (pfc_natural_sum_prefix_add_right_value_hcw) = S ((S (S (i))) * fs_v_pfc_prefix_add_right_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcwsum_body_terminal. fs_u_pfc_prefix_add_right_value_hcwsum = fs_q_pfc_prefix_add_right_value_hcwsum_body_terminal * S ((S (S (i))) * fs_v_pfc_prefix_add_right_value_hcwsum) + (pfc_natural_sum_prefix_add_right_value_hcw))) /\ forall fs_i_pfc_prefix_add_right_value_hcwsum_body_steps. (exists fs_lt_pfc_prefix_add_right_value_hcwsum_body_steps_bound. fs_lt_pfc_prefix_add_right_value_hcwsum_body_steps_bound + S fs_i_pfc_prefix_add_right_value_hcwsum_body_steps = S (i)) -> exists fs_a_pfc_prefix_add_right_value_hcwsum_body_steps fs_r_pfc_prefix_add_right_value_hcwsum_body_steps fs_s_pfc_prefix_add_right_value_hcwsum_body_steps. ((((exists fs_h_pfc_prefix_add_right_value_hcwsum_body_steps_summand. fs_h_pfc_prefix_add_right_value_hcwsum_body_steps_summand + S (fs_a_pfc_prefix_add_right_value_hcwsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_value_hcwsum_body_steps)) * pfc_terms_scale_prefix_add_right_value_hcw)) /\ exists fs_q_pfc_prefix_add_right_value_hcwsum_body_steps_summand. pfc_terms_code_prefix_add_right_value_hcw = fs_q_pfc_prefix_add_right_value_hcwsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_right_value_hcwsum_body_steps)) * pfc_terms_scale_prefix_add_right_value_hcw) + (fs_a_pfc_prefix_add_right_value_hcwsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcwsum_body_steps_partial. fs_h_pfc_prefix_add_right_value_hcwsum_body_steps_partial + S (fs_r_pfc_prefix_add_right_value_hcwsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcwsum_body_steps_partial. fs_u_pfc_prefix_add_right_value_hcwsum = fs_q_pfc_prefix_add_right_value_hcwsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_right_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcwsum) + (fs_r_pfc_prefix_add_right_value_hcwsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcwsum_body_steps_successor. fs_h_pfc_prefix_add_right_value_hcwsum_body_steps_successor + S (fs_s_pfc_prefix_add_right_value_hcwsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_right_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcwsum_body_steps_successor. fs_u_pfc_prefix_add_right_value_hcwsum = fs_q_pfc_prefix_add_right_value_hcwsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_right_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcwsum) + (fs_s_pfc_prefix_add_right_value_hcwsum_body_steps))) /\ fs_s_pfc_prefix_add_right_value_hcwsum_body_steps = fs_r_pfc_prefix_add_right_value_hcwsum_body_steps + fs_a_pfc_prefix_add_right_value_hcwsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_right_value_hcwresiduebound. pfa_gap_prefix_add_right_value_hcwresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_value_hcwresiduecongruence pfa_offset_right_prefix_add_right_value_hcwresiduecongruence. (pfc_natural_sum_prefix_add_right_value_hcw) + (p) * pfa_offset_left_prefix_add_right_value_hcwresiduecongruence = (r) + (p) * pfa_offset_right_prefix_add_right_value_hcwresiduecongruence)))))))))))
  38. specialize hw (i)
  39. apply hw
  40. exact hi
  41. cases hcw
  42. cases hcw_witness
  43. exists x
  44. exists x1
  45. exists x2
  46. split
  47. exact hcu_witness_left
  48. split
  49. exact hcv_witness_left
  50. split
  51. exact hcw_witness_left
  52. specialize prime_field_convolution_coefficient_right_add (p)
  53. specialize prime_field_convolution_coefficient_right_add (ab)
  54. specialize prime_field_convolution_coefficient_right_add (ac)
  55. specialize prime_field_convolution_coefficient_right_add (bb)
  56. specialize prime_field_convolution_coefficient_right_add (bc)
  57. specialize prime_field_convolution_coefficient_right_add (cb)
  58. specialize prime_field_convolution_coefficient_right_add (cc)
  59. specialize prime_field_convolution_coefficient_right_add (L)
  60. specialize prime_field_convolution_coefficient_right_add (db)
  61. specialize prime_field_convolution_coefficient_right_add (dc)
  62. specialize prime_field_convolution_coefficient_right_add (M)
  63. specialize prime_field_convolution_coefficient_right_add (i)
  64. specialize prime_field_convolution_coefficient_right_add (x)
  65. specialize prime_field_convolution_coefficient_right_add (x1)
  66. specialize prime_field_convolution_coefficient_right_add (x2)
  67. apply prime_field_convolution_coefficient_right_add
  68. exact hs
  69. exact hcu_witness_right
  70. exact hcv_witness_right
  71. exact hcw_witness_right
prime_field_polynomial_convolution_right_add · unchanged support, not a new admission
forall p ab ac bb bc cb cc L db dc M ub uc vb vc wb wc N. (forall pfp_index_proper_right_add_source. (exists pfa_gap_proper_right_add_sourceindex. pfa_gap_proper_right_add_sourceindex + S (pfp_index_proper_right_add_source) = (L)) -> exists pfp_left_proper_right_add_source pfp_right_proper_right_add_source pfp_value_proper_right_add_source. ((((exists ff_h_pfp_proper_right_add_sourceleft. ff_h_pfp_proper_right_add_sourceleft + S (pfp_left_proper_right_add_source) = S ((S (pfp_index_proper_right_add_source)) * ac)) /\ exists ff_q_pfp_proper_right_add_sourceleft. ab = ff_q_pfp_proper_right_add_sourceleft * S ((S (pfp_index_proper_right_add_source)) * ac) + (pfp_left_proper_right_add_source))) /\ (((((exists ff_h_pfp_proper_right_add_sourceright. ff_h_pfp_proper_right_add_sourceright + S (pfp_right_proper_right_add_source) = S ((S (pfp_index_proper_right_add_source)) * bc)) /\ exists ff_q_pfp_proper_right_add_sourceright. bb = ff_q_pfp_proper_right_add_sourceright * S ((S (pfp_index_proper_right_add_source)) * bc) + (pfp_right_proper_right_add_source))) /\ (((((exists ff_h_pfp_proper_right_add_sourcetarget. ff_h_pfp_proper_right_add_sourcetarget + S (pfp_value_proper_right_add_source) = S ((S (pfp_index_proper_right_add_source)) * cc)) /\ exists ff_q_pfp_proper_right_add_sourcetarget. cb = ff_q_pfp_proper_right_add_sourcetarget * S ((S (pfp_index_proper_right_add_source)) * cc) + (pfp_value_proper_right_add_source))) /\ ((((exists pfa_gap_proper_right_add_sourceoperationleft. pfa_gap_proper_right_add_sourceoperationleft + S (pfp_left_proper_right_add_source) = (p)) /\ (((exists pfa_gap_proper_right_add_sourceoperationright. pfa_gap_proper_right_add_sourceoperationright + S (pfp_right_proper_right_add_source) = (p)) /\ ((((exists pfa_gap_proper_right_add_sourceoperationresultbound. pfa_gap_proper_right_add_sourceoperationresultbound + S (pfp_value_proper_right_add_source) = (p)) /\ ((exists pfa_offset_left_proper_right_add_sourceoperationresultcongruence pfa_offset_right_proper_right_add_sourceoperationresultcongruence. ((pfp_left_proper_right_add_source) + (pfp_right_proper_right_add_source)) + (p) * pfa_offset_left_proper_right_add_sourceoperationresultcongruence = (pfp_value_proper_right_add_source) + (p) * pfa_offset_right_proper_right_add_sourceoperationresultcongruence)))))))))))))))) -> (((forall fom_index_pfp_proper_right_add_ubleft. (exists fom_gap_pfp_proper_right_add_ubleft_index_bound. fom_gap_pfp_proper_right_add_ubleft_index_bound + S (fom_index_pfp_proper_right_add_ubleft) = L) -> exists fom_value_pfp_proper_right_add_ubleft. ((((exists fom_beta_height_pfp_proper_right_add_ubleft_entry. fom_beta_height_pfp_proper_right_add_ubleft_entry + S (fom_value_pfp_proper_right_add_ubleft) = S ((S (fom_index_pfp_proper_right_add_ubleft)) * ac)) /\ exists fom_beta_quotient_pfp_proper_right_add_ubleft_entry. ab = fom_beta_quotient_pfp_proper_right_add_ubleft_entry * S ((S (fom_index_pfp_proper_right_add_ubleft)) * ac) + (fom_value_pfp_proper_right_add_ubleft))) /\ (exists fom_gap_pfp_proper_right_add_ubleft_value_bound. fom_gap_pfp_proper_right_add_ubleft_value_bound + S (fom_value_pfp_proper_right_add_ubleft) = p))) /\ (((forall fom_index_pfp_proper_right_add_ubright. (exists fom_gap_pfp_proper_right_add_ubright_index_bound. fom_gap_pfp_proper_right_add_ubright_index_bound + S (fom_index_pfp_proper_right_add_ubright) = M) -> exists fom_value_pfp_proper_right_add_ubright. ((((exists fom_beta_height_pfp_proper_right_add_ubright_entry. fom_beta_height_pfp_proper_right_add_ubright_entry + S (fom_value_pfp_proper_right_add_ubright) = S ((S (fom_index_pfp_proper_right_add_ubright)) * dc)) /\ exists fom_beta_quotient_pfp_proper_right_add_ubright_entry. db = fom_beta_quotient_pfp_proper_right_add_ubright_entry * S ((S (fom_index_pfp_proper_right_add_ubright)) * dc) + (fom_value_pfp_proper_right_add_ubright))) /\ (exists fom_gap_pfp_proper_right_add_ubright_value_bound. fom_gap_pfp_proper_right_add_ubright_value_bound + S (fom_value_pfp_proper_right_add_ubright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_proper_right_add_ubcoefficients. (exists pfa_gap_proper_right_add_ubcoefficientsbound. pfa_gap_proper_right_add_ubcoefficientsbound + S (pfc_index_proper_right_add_ubcoefficients) = (N)) -> exists pfc_value_proper_right_add_ubcoefficients. ((((exists ff_h_pfp_proper_right_add_ubcoefficientsentry. ff_h_pfp_proper_right_add_ubcoefficientsentry + S (pfc_value_proper_right_add_ubcoefficients) = S ((S (pfc_index_proper_right_add_ubcoefficients)) * uc)) /\ exists ff_q_pfp_proper_right_add_ubcoefficientsentry. ub = ff_q_pfp_proper_right_add_ubcoefficientsentry * S ((S (pfc_index_proper_right_add_ubcoefficients)) * uc) + (pfc_value_proper_right_add_ubcoefficients))) /\ ((exists pfc_terms_code_proper_right_add_ubcoefficientscoefficient pfc_terms_scale_proper_right_add_ubcoefficientscoefficient pfc_natural_sum_proper_right_add_ubcoefficientscoefficient. ((forall pfc_index_proper_right_add_ubcoefficientscoefficientdiagonal. (exists pfa_gap_proper_right_add_ubcoefficientscoefficientdiagonalbound. pfa_gap_proper_right_add_ubcoefficientscoefficientdiagonalbound + S (pfc_index_proper_right_add_ubcoefficientscoefficientdiagonal) = (S (pfc_index_proper_right_add_ubcoefficients))) -> exists pfc_value_proper_right_add_ubcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_proper_right_add_ubcoefficientscoefficientdiagonalentry. ff_h_pfp_proper_right_add_ubcoefficientscoefficientdiagonalentry + S (pfc_value_proper_right_add_ubcoefficientscoefficientdiagonal) = S ((S (pfc_index_proper_right_add_ubcoefficientscoefficientdiagonal)) * pfc_terms_scale_proper_right_add_ubcoefficientscoefficient)) /\ exists ff_q_pfp_proper_right_add_ubcoefficientscoefficientdiagonalentry. pfc_terms_code_proper_right_add_ubcoefficientscoefficient = ff_q_pfp_proper_right_add_ubcoefficientscoefficientdiagonalentry * S ((S (pfc_index_proper_right_add_ubcoefficientscoefficientdiagonal)) * pfc_terms_scale_proper_right_add_ubcoefficientscoefficient) + (pfc_value_proper_right_add_ubcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_proper_right_add_ubcoefficientscoefficientdiagonalterm pfc_left_proper_right_add_ubcoefficientscoefficientdiagonalterm pfc_right_proper_right_add_ubcoefficientscoefficientdiagonalterm. (((pfc_index_proper_right_add_ubcoefficientscoefficientdiagonal)+pfc_complement_proper_right_add_ubcoefficientscoefficientdiagonalterm=(pfc_index_proper_right_add_ubcoefficients)) /\ ((((((exists pfa_gap_proper_right_add_ubcoefficientscoefficientdiagonaltermleftinside. pfa_gap_proper_right_add_ubcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_proper_right_add_ubcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_proper_right_add_ubcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_proper_right_add_ubcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_proper_right_add_ubcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_proper_right_add_ubcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_proper_right_add_ubcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_proper_right_add_ubcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_proper_right_add_ubcoefficientscoefficientdiagonal)) * ac) + (pfc_left_proper_right_add_ubcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_proper_right_add_ubcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_proper_right_add_ubcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_proper_right_add_ubcoefficientscoefficientdiagonal)) /\ (((pfc_left_proper_right_add_ubcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_proper_right_add_ubcoefficientscoefficientdiagonaltermrightinside. pfa_gap_proper_right_add_ubcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_proper_right_add_ubcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_proper_right_add_ubcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_proper_right_add_ubcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_proper_right_add_ubcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_proper_right_add_ubcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_proper_right_add_ubcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_proper_right_add_ubcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_proper_right_add_ubcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_proper_right_add_ubcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_proper_right_add_ubcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_proper_right_add_ubcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_proper_right_add_ubcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_proper_right_add_ubcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_proper_right_add_ubcoefficientscoefficientdiagonal)=pfc_left_proper_right_add_ubcoefficientscoefficientdiagonalterm*pfc_right_proper_right_add_ubcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_proper_right_add_ubcoefficientscoefficientsum fs_v_pfc_proper_right_add_ubcoefficientscoefficientsum. ((((exists fs_h_pfc_proper_right_add_ubcoefficientscoefficientsum_body_start. fs_h_pfc_proper_right_add_ubcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_proper_right_add_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_right_add_ubcoefficientscoefficientsum_body_start. fs_u_pfc_proper_right_add_ubcoefficientscoefficientsum = fs_q_pfc_proper_right_add_ubcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_proper_right_add_ubcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_proper_right_add_ubcoefficientscoefficientsum_body_terminal. fs_h_pfc_proper_right_add_ubcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_proper_right_add_ubcoefficientscoefficient) = S ((S (S (pfc_index_proper_right_add_ubcoefficients))) * fs_v_pfc_proper_right_add_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_right_add_ubcoefficientscoefficientsum_body_terminal. fs_u_pfc_proper_right_add_ubcoefficientscoefficientsum = fs_q_pfc_proper_right_add_ubcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_proper_right_add_ubcoefficients))) * fs_v_pfc_proper_right_add_ubcoefficientscoefficientsum) + (pfc_natural_sum_proper_right_add_ubcoefficientscoefficient))) /\ forall fs_i_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps = S (pfc_index_proper_right_add_ubcoefficients)) -> exists fs_a_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps fs_r_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps fs_s_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_proper_right_add_ubcoefficientscoefficient)) /\ exists fs_q_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_proper_right_add_ubcoefficientscoefficient = fs_q_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_proper_right_add_ubcoefficientscoefficient) + (fs_a_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_right_add_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_proper_right_add_ubcoefficientscoefficientsum = fs_q_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_right_add_ubcoefficientscoefficientsum) + (fs_r_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_right_add_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_proper_right_add_ubcoefficientscoefficientsum = fs_q_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_right_add_ubcoefficientscoefficientsum) + (fs_s_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps = fs_r_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps + fs_a_pfc_proper_right_add_ubcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_proper_right_add_ubcoefficientscoefficientresiduebound. pfa_gap_proper_right_add_ubcoefficientscoefficientresiduebound + S (pfc_value_proper_right_add_ubcoefficients) = (p)) /\ ((exists pfa_offset_left_proper_right_add_ubcoefficientscoefficientresiduecongruence pfa_offset_right_proper_right_add_ubcoefficientscoefficientresiduecongruence. (pfc_natural_sum_proper_right_add_ubcoefficientscoefficient) + (p) * pfa_offset_left_proper_right_add_ubcoefficientscoefficientresiduecongruence = (pfc_value_proper_right_add_ubcoefficients) + (p) * pfa_offset_right_proper_right_add_ubcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_proper_right_add_vbleft. (exists fom_gap_pfp_proper_right_add_vbleft_index_bound. fom_gap_pfp_proper_right_add_vbleft_index_bound + S (fom_index_pfp_proper_right_add_vbleft) = L) -> exists fom_value_pfp_proper_right_add_vbleft. ((((exists fom_beta_height_pfp_proper_right_add_vbleft_entry. fom_beta_height_pfp_proper_right_add_vbleft_entry + S (fom_value_pfp_proper_right_add_vbleft) = S ((S (fom_index_pfp_proper_right_add_vbleft)) * bc)) /\ exists fom_beta_quotient_pfp_proper_right_add_vbleft_entry. bb = fom_beta_quotient_pfp_proper_right_add_vbleft_entry * S ((S (fom_index_pfp_proper_right_add_vbleft)) * bc) + (fom_value_pfp_proper_right_add_vbleft))) /\ (exists fom_gap_pfp_proper_right_add_vbleft_value_bound. fom_gap_pfp_proper_right_add_vbleft_value_bound + S (fom_value_pfp_proper_right_add_vbleft) = p))) /\ (((forall fom_index_pfp_proper_right_add_vbright. (exists fom_gap_pfp_proper_right_add_vbright_index_bound. fom_gap_pfp_proper_right_add_vbright_index_bound + S (fom_index_pfp_proper_right_add_vbright) = M) -> exists fom_value_pfp_proper_right_add_vbright. ((((exists fom_beta_height_pfp_proper_right_add_vbright_entry. fom_beta_height_pfp_proper_right_add_vbright_entry + S (fom_value_pfp_proper_right_add_vbright) = S ((S (fom_index_pfp_proper_right_add_vbright)) * dc)) /\ exists fom_beta_quotient_pfp_proper_right_add_vbright_entry. db = fom_beta_quotient_pfp_proper_right_add_vbright_entry * S ((S (fom_index_pfp_proper_right_add_vbright)) * dc) + (fom_value_pfp_proper_right_add_vbright))) /\ (exists fom_gap_pfp_proper_right_add_vbright_value_bound. fom_gap_pfp_proper_right_add_vbright_value_bound + S (fom_value_pfp_proper_right_add_vbright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_proper_right_add_vbcoefficients. (exists pfa_gap_proper_right_add_vbcoefficientsbound. pfa_gap_proper_right_add_vbcoefficientsbound + S (pfc_index_proper_right_add_vbcoefficients) = (N)) -> exists pfc_value_proper_right_add_vbcoefficients. ((((exists ff_h_pfp_proper_right_add_vbcoefficientsentry. ff_h_pfp_proper_right_add_vbcoefficientsentry + S (pfc_value_proper_right_add_vbcoefficients) = S ((S (pfc_index_proper_right_add_vbcoefficients)) * vc)) /\ exists ff_q_pfp_proper_right_add_vbcoefficientsentry. vb = ff_q_pfp_proper_right_add_vbcoefficientsentry * S ((S (pfc_index_proper_right_add_vbcoefficients)) * vc) + (pfc_value_proper_right_add_vbcoefficients))) /\ ((exists pfc_terms_code_proper_right_add_vbcoefficientscoefficient pfc_terms_scale_proper_right_add_vbcoefficientscoefficient pfc_natural_sum_proper_right_add_vbcoefficientscoefficient. ((forall pfc_index_proper_right_add_vbcoefficientscoefficientdiagonal. (exists pfa_gap_proper_right_add_vbcoefficientscoefficientdiagonalbound. pfa_gap_proper_right_add_vbcoefficientscoefficientdiagonalbound + S (pfc_index_proper_right_add_vbcoefficientscoefficientdiagonal) = (S (pfc_index_proper_right_add_vbcoefficients))) -> exists pfc_value_proper_right_add_vbcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_proper_right_add_vbcoefficientscoefficientdiagonalentry. ff_h_pfp_proper_right_add_vbcoefficientscoefficientdiagonalentry + S (pfc_value_proper_right_add_vbcoefficientscoefficientdiagonal) = S ((S (pfc_index_proper_right_add_vbcoefficientscoefficientdiagonal)) * pfc_terms_scale_proper_right_add_vbcoefficientscoefficient)) /\ exists ff_q_pfp_proper_right_add_vbcoefficientscoefficientdiagonalentry. pfc_terms_code_proper_right_add_vbcoefficientscoefficient = ff_q_pfp_proper_right_add_vbcoefficientscoefficientdiagonalentry * S ((S (pfc_index_proper_right_add_vbcoefficientscoefficientdiagonal)) * pfc_terms_scale_proper_right_add_vbcoefficientscoefficient) + (pfc_value_proper_right_add_vbcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_proper_right_add_vbcoefficientscoefficientdiagonalterm pfc_left_proper_right_add_vbcoefficientscoefficientdiagonalterm pfc_right_proper_right_add_vbcoefficientscoefficientdiagonalterm. (((pfc_index_proper_right_add_vbcoefficientscoefficientdiagonal)+pfc_complement_proper_right_add_vbcoefficientscoefficientdiagonalterm=(pfc_index_proper_right_add_vbcoefficients)) /\ ((((((exists pfa_gap_proper_right_add_vbcoefficientscoefficientdiagonaltermleftinside. pfa_gap_proper_right_add_vbcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_proper_right_add_vbcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_proper_right_add_vbcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_proper_right_add_vbcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_proper_right_add_vbcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_proper_right_add_vbcoefficientscoefficientdiagonal)) * bc)) /\ exists ff_q_pfp_proper_right_add_vbcoefficientscoefficientdiagonaltermleftentry. bb = ff_q_pfp_proper_right_add_vbcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_proper_right_add_vbcoefficientscoefficientdiagonal)) * bc) + (pfc_left_proper_right_add_vbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_proper_right_add_vbcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_proper_right_add_vbcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_proper_right_add_vbcoefficientscoefficientdiagonal)) /\ (((pfc_left_proper_right_add_vbcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_proper_right_add_vbcoefficientscoefficientdiagonaltermrightinside. pfa_gap_proper_right_add_vbcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_proper_right_add_vbcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_proper_right_add_vbcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_proper_right_add_vbcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_proper_right_add_vbcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_proper_right_add_vbcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_proper_right_add_vbcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_proper_right_add_vbcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_proper_right_add_vbcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_proper_right_add_vbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_proper_right_add_vbcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_proper_right_add_vbcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_proper_right_add_vbcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_proper_right_add_vbcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_proper_right_add_vbcoefficientscoefficientdiagonal)=pfc_left_proper_right_add_vbcoefficientscoefficientdiagonalterm*pfc_right_proper_right_add_vbcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_proper_right_add_vbcoefficientscoefficientsum fs_v_pfc_proper_right_add_vbcoefficientscoefficientsum. ((((exists fs_h_pfc_proper_right_add_vbcoefficientscoefficientsum_body_start. fs_h_pfc_proper_right_add_vbcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_proper_right_add_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_right_add_vbcoefficientscoefficientsum_body_start. fs_u_pfc_proper_right_add_vbcoefficientscoefficientsum = fs_q_pfc_proper_right_add_vbcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_proper_right_add_vbcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_proper_right_add_vbcoefficientscoefficientsum_body_terminal. fs_h_pfc_proper_right_add_vbcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_proper_right_add_vbcoefficientscoefficient) = S ((S (S (pfc_index_proper_right_add_vbcoefficients))) * fs_v_pfc_proper_right_add_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_right_add_vbcoefficientscoefficientsum_body_terminal. fs_u_pfc_proper_right_add_vbcoefficientscoefficientsum = fs_q_pfc_proper_right_add_vbcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_proper_right_add_vbcoefficients))) * fs_v_pfc_proper_right_add_vbcoefficientscoefficientsum) + (pfc_natural_sum_proper_right_add_vbcoefficientscoefficient))) /\ forall fs_i_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps = S (pfc_index_proper_right_add_vbcoefficients)) -> exists fs_a_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps fs_r_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps fs_s_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_proper_right_add_vbcoefficientscoefficient)) /\ exists fs_q_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_proper_right_add_vbcoefficientscoefficient = fs_q_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_proper_right_add_vbcoefficientscoefficient) + (fs_a_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_right_add_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_proper_right_add_vbcoefficientscoefficientsum = fs_q_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_right_add_vbcoefficientscoefficientsum) + (fs_r_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_right_add_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_proper_right_add_vbcoefficientscoefficientsum = fs_q_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_right_add_vbcoefficientscoefficientsum) + (fs_s_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps = fs_r_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps + fs_a_pfc_proper_right_add_vbcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_proper_right_add_vbcoefficientscoefficientresiduebound. pfa_gap_proper_right_add_vbcoefficientscoefficientresiduebound + S (pfc_value_proper_right_add_vbcoefficients) = (p)) /\ ((exists pfa_offset_left_proper_right_add_vbcoefficientscoefficientresiduecongruence pfa_offset_right_proper_right_add_vbcoefficientscoefficientresiduecongruence. (pfc_natural_sum_proper_right_add_vbcoefficientscoefficient) + (p) * pfa_offset_left_proper_right_add_vbcoefficientscoefficientresiduecongruence = (pfc_value_proper_right_add_vbcoefficients) + (p) * pfa_offset_right_proper_right_add_vbcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_proper_right_add_wbleft. (exists fom_gap_pfp_proper_right_add_wbleft_index_bound. fom_gap_pfp_proper_right_add_wbleft_index_bound + S (fom_index_pfp_proper_right_add_wbleft) = L) -> exists fom_value_pfp_proper_right_add_wbleft. ((((exists fom_beta_height_pfp_proper_right_add_wbleft_entry. fom_beta_height_pfp_proper_right_add_wbleft_entry + S (fom_value_pfp_proper_right_add_wbleft) = S ((S (fom_index_pfp_proper_right_add_wbleft)) * cc)) /\ exists fom_beta_quotient_pfp_proper_right_add_wbleft_entry. cb = fom_beta_quotient_pfp_proper_right_add_wbleft_entry * S ((S (fom_index_pfp_proper_right_add_wbleft)) * cc) + (fom_value_pfp_proper_right_add_wbleft))) /\ (exists fom_gap_pfp_proper_right_add_wbleft_value_bound. fom_gap_pfp_proper_right_add_wbleft_value_bound + S (fom_value_pfp_proper_right_add_wbleft) = p))) /\ (((forall fom_index_pfp_proper_right_add_wbright. (exists fom_gap_pfp_proper_right_add_wbright_index_bound. fom_gap_pfp_proper_right_add_wbright_index_bound + S (fom_index_pfp_proper_right_add_wbright) = M) -> exists fom_value_pfp_proper_right_add_wbright. ((((exists fom_beta_height_pfp_proper_right_add_wbright_entry. fom_beta_height_pfp_proper_right_add_wbright_entry + S (fom_value_pfp_proper_right_add_wbright) = S ((S (fom_index_pfp_proper_right_add_wbright)) * dc)) /\ exists fom_beta_quotient_pfp_proper_right_add_wbright_entry. db = fom_beta_quotient_pfp_proper_right_add_wbright_entry * S ((S (fom_index_pfp_proper_right_add_wbright)) * dc) + (fom_value_pfp_proper_right_add_wbright))) /\ (exists fom_gap_pfp_proper_right_add_wbright_value_bound. fom_gap_pfp_proper_right_add_wbright_value_bound + S (fom_value_pfp_proper_right_add_wbright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_proper_right_add_wbcoefficients. (exists pfa_gap_proper_right_add_wbcoefficientsbound. pfa_gap_proper_right_add_wbcoefficientsbound + S (pfc_index_proper_right_add_wbcoefficients) = (N)) -> exists pfc_value_proper_right_add_wbcoefficients. ((((exists ff_h_pfp_proper_right_add_wbcoefficientsentry. ff_h_pfp_proper_right_add_wbcoefficientsentry + S (pfc_value_proper_right_add_wbcoefficients) = S ((S (pfc_index_proper_right_add_wbcoefficients)) * wc)) /\ exists ff_q_pfp_proper_right_add_wbcoefficientsentry. wb = ff_q_pfp_proper_right_add_wbcoefficientsentry * S ((S (pfc_index_proper_right_add_wbcoefficients)) * wc) + (pfc_value_proper_right_add_wbcoefficients))) /\ ((exists pfc_terms_code_proper_right_add_wbcoefficientscoefficient pfc_terms_scale_proper_right_add_wbcoefficientscoefficient pfc_natural_sum_proper_right_add_wbcoefficientscoefficient. ((forall pfc_index_proper_right_add_wbcoefficientscoefficientdiagonal. (exists pfa_gap_proper_right_add_wbcoefficientscoefficientdiagonalbound. pfa_gap_proper_right_add_wbcoefficientscoefficientdiagonalbound + S (pfc_index_proper_right_add_wbcoefficientscoefficientdiagonal) = (S (pfc_index_proper_right_add_wbcoefficients))) -> exists pfc_value_proper_right_add_wbcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_proper_right_add_wbcoefficientscoefficientdiagonalentry. ff_h_pfp_proper_right_add_wbcoefficientscoefficientdiagonalentry + S (pfc_value_proper_right_add_wbcoefficientscoefficientdiagonal) = S ((S (pfc_index_proper_right_add_wbcoefficientscoefficientdiagonal)) * pfc_terms_scale_proper_right_add_wbcoefficientscoefficient)) /\ exists ff_q_pfp_proper_right_add_wbcoefficientscoefficientdiagonalentry. pfc_terms_code_proper_right_add_wbcoefficientscoefficient = ff_q_pfp_proper_right_add_wbcoefficientscoefficientdiagonalentry * S ((S (pfc_index_proper_right_add_wbcoefficientscoefficientdiagonal)) * pfc_terms_scale_proper_right_add_wbcoefficientscoefficient) + (pfc_value_proper_right_add_wbcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_proper_right_add_wbcoefficientscoefficientdiagonalterm pfc_left_proper_right_add_wbcoefficientscoefficientdiagonalterm pfc_right_proper_right_add_wbcoefficientscoefficientdiagonalterm. (((pfc_index_proper_right_add_wbcoefficientscoefficientdiagonal)+pfc_complement_proper_right_add_wbcoefficientscoefficientdiagonalterm=(pfc_index_proper_right_add_wbcoefficients)) /\ ((((((exists pfa_gap_proper_right_add_wbcoefficientscoefficientdiagonaltermleftinside. pfa_gap_proper_right_add_wbcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_proper_right_add_wbcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_proper_right_add_wbcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_proper_right_add_wbcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_proper_right_add_wbcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_proper_right_add_wbcoefficientscoefficientdiagonal)) * cc)) /\ exists ff_q_pfp_proper_right_add_wbcoefficientscoefficientdiagonaltermleftentry. cb = ff_q_pfp_proper_right_add_wbcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_proper_right_add_wbcoefficientscoefficientdiagonal)) * cc) + (pfc_left_proper_right_add_wbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_proper_right_add_wbcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_proper_right_add_wbcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_proper_right_add_wbcoefficientscoefficientdiagonal)) /\ (((pfc_left_proper_right_add_wbcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_proper_right_add_wbcoefficientscoefficientdiagonaltermrightinside. pfa_gap_proper_right_add_wbcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_proper_right_add_wbcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_proper_right_add_wbcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_proper_right_add_wbcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_proper_right_add_wbcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_proper_right_add_wbcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_proper_right_add_wbcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_proper_right_add_wbcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_proper_right_add_wbcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_proper_right_add_wbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_proper_right_add_wbcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_proper_right_add_wbcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_proper_right_add_wbcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_proper_right_add_wbcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_proper_right_add_wbcoefficientscoefficientdiagonal)=pfc_left_proper_right_add_wbcoefficientscoefficientdiagonalterm*pfc_right_proper_right_add_wbcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_proper_right_add_wbcoefficientscoefficientsum fs_v_pfc_proper_right_add_wbcoefficientscoefficientsum. ((((exists fs_h_pfc_proper_right_add_wbcoefficientscoefficientsum_body_start. fs_h_pfc_proper_right_add_wbcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_proper_right_add_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_right_add_wbcoefficientscoefficientsum_body_start. fs_u_pfc_proper_right_add_wbcoefficientscoefficientsum = fs_q_pfc_proper_right_add_wbcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_proper_right_add_wbcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_proper_right_add_wbcoefficientscoefficientsum_body_terminal. fs_h_pfc_proper_right_add_wbcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_proper_right_add_wbcoefficientscoefficient) = S ((S (S (pfc_index_proper_right_add_wbcoefficients))) * fs_v_pfc_proper_right_add_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_right_add_wbcoefficientscoefficientsum_body_terminal. fs_u_pfc_proper_right_add_wbcoefficientscoefficientsum = fs_q_pfc_proper_right_add_wbcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_proper_right_add_wbcoefficients))) * fs_v_pfc_proper_right_add_wbcoefficientscoefficientsum) + (pfc_natural_sum_proper_right_add_wbcoefficientscoefficient))) /\ forall fs_i_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps = S (pfc_index_proper_right_add_wbcoefficients)) -> exists fs_a_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps fs_r_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps fs_s_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_proper_right_add_wbcoefficientscoefficient)) /\ exists fs_q_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_proper_right_add_wbcoefficientscoefficient = fs_q_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_proper_right_add_wbcoefficientscoefficient) + (fs_a_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_right_add_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_proper_right_add_wbcoefficientscoefficientsum = fs_q_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_right_add_wbcoefficientscoefficientsum) + (fs_r_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_right_add_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_proper_right_add_wbcoefficientscoefficientsum = fs_q_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_proper_right_add_wbcoefficientscoefficientsum) + (fs_s_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps = fs_r_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps + fs_a_pfc_proper_right_add_wbcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_proper_right_add_wbcoefficientscoefficientresiduebound. pfa_gap_proper_right_add_wbcoefficientscoefficientresiduebound + S (pfc_value_proper_right_add_wbcoefficients) = (p)) /\ ((exists pfa_offset_left_proper_right_add_wbcoefficientscoefficientresiduecongruence pfa_offset_right_proper_right_add_wbcoefficientscoefficientresiduecongruence. (pfc_natural_sum_proper_right_add_wbcoefficientscoefficient) + (p) * pfa_offset_left_proper_right_add_wbcoefficientscoefficientresiduecongruence = (pfc_value_proper_right_add_wbcoefficients) + (p) * pfa_offset_right_proper_right_add_wbcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (forall pfp_index_proper_right_add_result. (exists pfa_gap_proper_right_add_resultindex. pfa_gap_proper_right_add_resultindex + S (pfp_index_proper_right_add_result) = (N)) -> exists pfp_left_proper_right_add_result pfp_right_proper_right_add_result pfp_value_proper_right_add_result. ((((exists ff_h_pfp_proper_right_add_resultleft. ff_h_pfp_proper_right_add_resultleft + S (pfp_left_proper_right_add_result) = S ((S (pfp_index_proper_right_add_result)) * uc)) /\ exists ff_q_pfp_proper_right_add_resultleft. ub = ff_q_pfp_proper_right_add_resultleft * S ((S (pfp_index_proper_right_add_result)) * uc) + (pfp_left_proper_right_add_result))) /\ (((((exists ff_h_pfp_proper_right_add_resultright. ff_h_pfp_proper_right_add_resultright + S (pfp_right_proper_right_add_result) = S ((S (pfp_index_proper_right_add_result)) * vc)) /\ exists ff_q_pfp_proper_right_add_resultright. vb = ff_q_pfp_proper_right_add_resultright * S ((S (pfp_index_proper_right_add_result)) * vc) + (pfp_right_proper_right_add_result))) /\ (((((exists ff_h_pfp_proper_right_add_resulttarget. ff_h_pfp_proper_right_add_resulttarget + S (pfp_value_proper_right_add_result) = S ((S (pfp_index_proper_right_add_result)) * wc)) /\ exists ff_q_pfp_proper_right_add_resulttarget. wb = ff_q_pfp_proper_right_add_resulttarget * S ((S (pfp_index_proper_right_add_result)) * wc) + (pfp_value_proper_right_add_result))) /\ ((((exists pfa_gap_proper_right_add_resultoperationleft. pfa_gap_proper_right_add_resultoperationleft + S (pfp_left_proper_right_add_result) = (p)) /\ (((exists pfa_gap_proper_right_add_resultoperationright. pfa_gap_proper_right_add_resultoperationright + S (pfp_right_proper_right_add_result) = (p)) /\ ((((exists pfa_gap_proper_right_add_resultoperationresultbound. pfa_gap_proper_right_add_resultoperationresultbound + S (pfp_value_proper_right_add_result) = (p)) /\ ((exists pfa_offset_left_proper_right_add_resultoperationresultcongruence pfa_offset_right_proper_right_add_resultoperationresultcongruence. ((pfp_left_proper_right_add_result) + (pfp_right_proper_right_add_result)) + (p) * pfa_offset_left_proper_right_add_resultoperationresultcongruence = (pfp_value_proper_right_add_result) + (p) * pfa_offset_right_proper_right_add_resultoperationresultcongruence))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro db
  10. intro dc
  11. intro M
  12. intro ub
  13. intro uc
  14. intro vb
  15. intro vc
  16. intro wb
  17. intro wc
  18. intro N
  19. intro hs
  20. intro hu
  21. intro hv
  22. intro hw
  23. cases hu
  24. cases hu_right
  25. cases hu_right_right
  26. cases hv
  27. cases hv_right
  28. cases hv_right_right
  29. cases hw
  30. cases hw_right
  31. cases hw_right_right
  32. specialize prime_field_convolution_prefix_right_add (p)
  33. specialize prime_field_convolution_prefix_right_add (ab)
  34. specialize prime_field_convolution_prefix_right_add (ac)
  35. specialize prime_field_convolution_prefix_right_add (bb)
  36. specialize prime_field_convolution_prefix_right_add (bc)
  37. specialize prime_field_convolution_prefix_right_add (cb)
  38. specialize prime_field_convolution_prefix_right_add (cc)
  39. specialize prime_field_convolution_prefix_right_add (L)
  40. specialize prime_field_convolution_prefix_right_add (db)
  41. specialize prime_field_convolution_prefix_right_add (dc)
  42. specialize prime_field_convolution_prefix_right_add (M)
  43. specialize prime_field_convolution_prefix_right_add (ub)
  44. specialize prime_field_convolution_prefix_right_add (uc)
  45. specialize prime_field_convolution_prefix_right_add (vb)
  46. specialize prime_field_convolution_prefix_right_add (vc)
  47. specialize prime_field_convolution_prefix_right_add (wb)
  48. specialize prime_field_convolution_prefix_right_add (wc)
  49. specialize prime_field_convolution_prefix_right_add (N)
  50. apply prime_field_convolution_prefix_right_add
  51. exact hs
  52. exact hu_right_right_right
  53. exact hv_right_right_right
  54. exact hw_right_right_right
prime_field_polynomial_right_distributive_products_exists · unchanged support, not a new admission
forall p ab ac bb bc cb cc L db dc M. (~(p=0)) -> (forall fom_index_pfp_products_right_fixed_input. (exists fom_gap_pfp_products_right_fixed_input_index_bound. fom_gap_pfp_products_right_fixed_input_index_bound + S (fom_index_pfp_products_right_fixed_input) = M) -> exists fom_value_pfp_products_right_fixed_input. ((((exists fom_beta_height_pfp_products_right_fixed_input_entry. fom_beta_height_pfp_products_right_fixed_input_entry + S (fom_value_pfp_products_right_fixed_input) = S ((S (fom_index_pfp_products_right_fixed_input)) * dc)) /\ exists fom_beta_quotient_pfp_products_right_fixed_input_entry. db = fom_beta_quotient_pfp_products_right_fixed_input_entry * S ((S (fom_index_pfp_products_right_fixed_input)) * dc) + (fom_value_pfp_products_right_fixed_input))) /\ (exists fom_gap_pfp_products_right_fixed_input_value_bound. fom_gap_pfp_products_right_fixed_input_value_bound + S (fom_value_pfp_products_right_fixed_input) = p))) -> (forall pfp_index_products_right_input_addition. (exists pfa_gap_products_right_input_additionindex. pfa_gap_products_right_input_additionindex + S (pfp_index_products_right_input_addition) = (L)) -> exists pfp_left_products_right_input_addition pfp_right_products_right_input_addition pfp_value_products_right_input_addition. ((((exists ff_h_pfp_products_right_input_additionleft. ff_h_pfp_products_right_input_additionleft + S (pfp_left_products_right_input_addition) = S ((S (pfp_index_products_right_input_addition)) * ac)) /\ exists ff_q_pfp_products_right_input_additionleft. ab = ff_q_pfp_products_right_input_additionleft * S ((S (pfp_index_products_right_input_addition)) * ac) + (pfp_left_products_right_input_addition))) /\ (((((exists ff_h_pfp_products_right_input_additionright. ff_h_pfp_products_right_input_additionright + S (pfp_right_products_right_input_addition) = S ((S (pfp_index_products_right_input_addition)) * bc)) /\ exists ff_q_pfp_products_right_input_additionright. bb = ff_q_pfp_products_right_input_additionright * S ((S (pfp_index_products_right_input_addition)) * bc) + (pfp_right_products_right_input_addition))) /\ (((((exists ff_h_pfp_products_right_input_additiontarget. ff_h_pfp_products_right_input_additiontarget + S (pfp_value_products_right_input_addition) = S ((S (pfp_index_products_right_input_addition)) * cc)) /\ exists ff_q_pfp_products_right_input_additiontarget. cb = ff_q_pfp_products_right_input_additiontarget * S ((S (pfp_index_products_right_input_addition)) * cc) + (pfp_value_products_right_input_addition))) /\ ((((exists pfa_gap_products_right_input_additionoperationleft. pfa_gap_products_right_input_additionoperationleft + S (pfp_left_products_right_input_addition) = (p)) /\ (((exists pfa_gap_products_right_input_additionoperationright. pfa_gap_products_right_input_additionoperationright + S (pfp_right_products_right_input_addition) = (p)) /\ ((((exists pfa_gap_products_right_input_additionoperationresultbound. pfa_gap_products_right_input_additionoperationresultbound + S (pfp_value_products_right_input_addition) = (p)) /\ ((exists pfa_offset_left_products_right_input_additionoperationresultcongruence pfa_offset_right_products_right_input_additionoperationresultcongruence. ((pfp_left_products_right_input_addition) + (pfp_right_products_right_input_addition)) + (p) * pfa_offset_left_products_right_input_additionoperationresultcongruence = (pfp_value_products_right_input_addition) + (p) * pfa_offset_right_products_right_input_additionoperationresultcongruence)))))))))))))))) -> (exists N ub uc vb vc wb wc. ((((forall fom_index_pfp_products_right_result_ubleft. (exists fom_gap_pfp_products_right_result_ubleft_index_bound. fom_gap_pfp_products_right_result_ubleft_index_bound + S (fom_index_pfp_products_right_result_ubleft) = L) -> exists fom_value_pfp_products_right_result_ubleft. ((((exists fom_beta_height_pfp_products_right_result_ubleft_entry. fom_beta_height_pfp_products_right_result_ubleft_entry + S (fom_value_pfp_products_right_result_ubleft) = S ((S (fom_index_pfp_products_right_result_ubleft)) * ac)) /\ exists fom_beta_quotient_pfp_products_right_result_ubleft_entry. ab = fom_beta_quotient_pfp_products_right_result_ubleft_entry * S ((S (fom_index_pfp_products_right_result_ubleft)) * ac) + (fom_value_pfp_products_right_result_ubleft))) /\ (exists fom_gap_pfp_products_right_result_ubleft_value_bound. fom_gap_pfp_products_right_result_ubleft_value_bound + S (fom_value_pfp_products_right_result_ubleft) = p))) /\ (((forall fom_index_pfp_products_right_result_ubright. (exists fom_gap_pfp_products_right_result_ubright_index_bound. fom_gap_pfp_products_right_result_ubright_index_bound + S (fom_index_pfp_products_right_result_ubright) = M) -> exists fom_value_pfp_products_right_result_ubright. ((((exists fom_beta_height_pfp_products_right_result_ubright_entry. fom_beta_height_pfp_products_right_result_ubright_entry + S (fom_value_pfp_products_right_result_ubright) = S ((S (fom_index_pfp_products_right_result_ubright)) * dc)) /\ exists fom_beta_quotient_pfp_products_right_result_ubright_entry. db = fom_beta_quotient_pfp_products_right_result_ubright_entry * S ((S (fom_index_pfp_products_right_result_ubright)) * dc) + (fom_value_pfp_products_right_result_ubright))) /\ (exists fom_gap_pfp_products_right_result_ubright_value_bound. fom_gap_pfp_products_right_result_ubright_value_bound + S (fom_value_pfp_products_right_result_ubright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_products_right_result_ubcoefficients. (exists pfa_gap_products_right_result_ubcoefficientsbound. pfa_gap_products_right_result_ubcoefficientsbound + S (pfc_index_products_right_result_ubcoefficients) = (N)) -> exists pfc_value_products_right_result_ubcoefficients. ((((exists ff_h_pfp_products_right_result_ubcoefficientsentry. ff_h_pfp_products_right_result_ubcoefficientsentry + S (pfc_value_products_right_result_ubcoefficients) = S ((S (pfc_index_products_right_result_ubcoefficients)) * uc)) /\ exists ff_q_pfp_products_right_result_ubcoefficientsentry. ub = ff_q_pfp_products_right_result_ubcoefficientsentry * S ((S (pfc_index_products_right_result_ubcoefficients)) * uc) + (pfc_value_products_right_result_ubcoefficients))) /\ ((exists pfc_terms_code_products_right_result_ubcoefficientscoefficient pfc_terms_scale_products_right_result_ubcoefficientscoefficient pfc_natural_sum_products_right_result_ubcoefficientscoefficient. ((forall pfc_index_products_right_result_ubcoefficientscoefficientdiagonal. (exists pfa_gap_products_right_result_ubcoefficientscoefficientdiagonalbound. pfa_gap_products_right_result_ubcoefficientscoefficientdiagonalbound + S (pfc_index_products_right_result_ubcoefficientscoefficientdiagonal) = (S (pfc_index_products_right_result_ubcoefficients))) -> exists pfc_value_products_right_result_ubcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_right_result_ubcoefficientscoefficientdiagonalentry. ff_h_pfp_products_right_result_ubcoefficientscoefficientdiagonalentry + S (pfc_value_products_right_result_ubcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_right_result_ubcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_result_ubcoefficientscoefficient)) /\ exists ff_q_pfp_products_right_result_ubcoefficientscoefficientdiagonalentry. pfc_terms_code_products_right_result_ubcoefficientscoefficient = ff_q_pfp_products_right_result_ubcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_right_result_ubcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_result_ubcoefficientscoefficient) + (pfc_value_products_right_result_ubcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_right_result_ubcoefficientscoefficientdiagonalterm pfc_left_products_right_result_ubcoefficientscoefficientdiagonalterm pfc_right_products_right_result_ubcoefficientscoefficientdiagonalterm. (((pfc_index_products_right_result_ubcoefficientscoefficientdiagonal)+pfc_complement_products_right_result_ubcoefficientscoefficientdiagonalterm=(pfc_index_products_right_result_ubcoefficients)) /\ ((((((exists pfa_gap_products_right_result_ubcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_right_result_ubcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_right_result_ubcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_right_result_ubcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_right_result_ubcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_right_result_ubcoefficientscoefficientdiagonal)) * ac) + (pfc_left_products_right_result_ubcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_result_ubcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_right_result_ubcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_products_right_result_ubcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_right_result_ubcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_right_result_ubcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_right_result_ubcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_right_result_ubcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_right_result_ubcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_right_result_ubcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_right_result_ubcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_products_right_result_ubcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_result_ubcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_right_result_ubcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_products_right_result_ubcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_right_result_ubcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_right_result_ubcoefficientscoefficientdiagonal)=pfc_left_products_right_result_ubcoefficientscoefficientdiagonalterm*pfc_right_products_right_result_ubcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_right_result_ubcoefficientscoefficientsum fs_v_pfc_products_right_result_ubcoefficientscoefficientsum. ((((exists fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_start. fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_start. fs_u_pfc_products_right_result_ubcoefficientscoefficientsum = fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_right_result_ubcoefficientscoefficient) = S ((S (S (pfc_index_products_right_result_ubcoefficients))) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_right_result_ubcoefficientscoefficientsum = fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_right_result_ubcoefficients))) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum) + (pfc_natural_sum_products_right_result_ubcoefficientscoefficient))) /\ forall fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps = S (pfc_index_products_right_result_ubcoefficients)) -> exists fs_a_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps fs_r_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps fs_s_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_result_ubcoefficientscoefficient)) /\ exists fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_right_result_ubcoefficientscoefficient = fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_result_ubcoefficientscoefficient) + (fs_a_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_right_result_ubcoefficientscoefficientsum = fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum) + (fs_r_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_right_result_ubcoefficientscoefficientsum = fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum) + (fs_s_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps = fs_r_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps + fs_a_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_right_result_ubcoefficientscoefficientresiduebound. pfa_gap_products_right_result_ubcoefficientscoefficientresiduebound + S (pfc_value_products_right_result_ubcoefficients) = (p)) /\ ((exists pfa_offset_left_products_right_result_ubcoefficientscoefficientresiduecongruence pfa_offset_right_products_right_result_ubcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_right_result_ubcoefficientscoefficient) + (p) * pfa_offset_left_products_right_result_ubcoefficientscoefficientresiduecongruence = (pfc_value_products_right_result_ubcoefficients) + (p) * pfa_offset_right_products_right_result_ubcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ (((((forall fom_index_pfp_products_right_result_vbleft. (exists fom_gap_pfp_products_right_result_vbleft_index_bound. fom_gap_pfp_products_right_result_vbleft_index_bound + S (fom_index_pfp_products_right_result_vbleft) = L) -> exists fom_value_pfp_products_right_result_vbleft. ((((exists fom_beta_height_pfp_products_right_result_vbleft_entry. fom_beta_height_pfp_products_right_result_vbleft_entry + S (fom_value_pfp_products_right_result_vbleft) = S ((S (fom_index_pfp_products_right_result_vbleft)) * bc)) /\ exists fom_beta_quotient_pfp_products_right_result_vbleft_entry. bb = fom_beta_quotient_pfp_products_right_result_vbleft_entry * S ((S (fom_index_pfp_products_right_result_vbleft)) * bc) + (fom_value_pfp_products_right_result_vbleft))) /\ (exists fom_gap_pfp_products_right_result_vbleft_value_bound. fom_gap_pfp_products_right_result_vbleft_value_bound + S (fom_value_pfp_products_right_result_vbleft) = p))) /\ (((forall fom_index_pfp_products_right_result_vbright. (exists fom_gap_pfp_products_right_result_vbright_index_bound. fom_gap_pfp_products_right_result_vbright_index_bound + S (fom_index_pfp_products_right_result_vbright) = M) -> exists fom_value_pfp_products_right_result_vbright. ((((exists fom_beta_height_pfp_products_right_result_vbright_entry. fom_beta_height_pfp_products_right_result_vbright_entry + S (fom_value_pfp_products_right_result_vbright) = S ((S (fom_index_pfp_products_right_result_vbright)) * dc)) /\ exists fom_beta_quotient_pfp_products_right_result_vbright_entry. db = fom_beta_quotient_pfp_products_right_result_vbright_entry * S ((S (fom_index_pfp_products_right_result_vbright)) * dc) + (fom_value_pfp_products_right_result_vbright))) /\ (exists fom_gap_pfp_products_right_result_vbright_value_bound. fom_gap_pfp_products_right_result_vbright_value_bound + S (fom_value_pfp_products_right_result_vbright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_products_right_result_vbcoefficients. (exists pfa_gap_products_right_result_vbcoefficientsbound. pfa_gap_products_right_result_vbcoefficientsbound + S (pfc_index_products_right_result_vbcoefficients) = (N)) -> exists pfc_value_products_right_result_vbcoefficients. ((((exists ff_h_pfp_products_right_result_vbcoefficientsentry. ff_h_pfp_products_right_result_vbcoefficientsentry + S (pfc_value_products_right_result_vbcoefficients) = S ((S (pfc_index_products_right_result_vbcoefficients)) * vc)) /\ exists ff_q_pfp_products_right_result_vbcoefficientsentry. vb = ff_q_pfp_products_right_result_vbcoefficientsentry * S ((S (pfc_index_products_right_result_vbcoefficients)) * vc) + (pfc_value_products_right_result_vbcoefficients))) /\ ((exists pfc_terms_code_products_right_result_vbcoefficientscoefficient pfc_terms_scale_products_right_result_vbcoefficientscoefficient pfc_natural_sum_products_right_result_vbcoefficientscoefficient. ((forall pfc_index_products_right_result_vbcoefficientscoefficientdiagonal. (exists pfa_gap_products_right_result_vbcoefficientscoefficientdiagonalbound. pfa_gap_products_right_result_vbcoefficientscoefficientdiagonalbound + S (pfc_index_products_right_result_vbcoefficientscoefficientdiagonal) = (S (pfc_index_products_right_result_vbcoefficients))) -> exists pfc_value_products_right_result_vbcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_right_result_vbcoefficientscoefficientdiagonalentry. ff_h_pfp_products_right_result_vbcoefficientscoefficientdiagonalentry + S (pfc_value_products_right_result_vbcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_right_result_vbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_result_vbcoefficientscoefficient)) /\ exists ff_q_pfp_products_right_result_vbcoefficientscoefficientdiagonalentry. pfc_terms_code_products_right_result_vbcoefficientscoefficient = ff_q_pfp_products_right_result_vbcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_right_result_vbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_result_vbcoefficientscoefficient) + (pfc_value_products_right_result_vbcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_right_result_vbcoefficientscoefficientdiagonalterm pfc_left_products_right_result_vbcoefficientscoefficientdiagonalterm pfc_right_products_right_result_vbcoefficientscoefficientdiagonalterm. (((pfc_index_products_right_result_vbcoefficientscoefficientdiagonal)+pfc_complement_products_right_result_vbcoefficientscoefficientdiagonalterm=(pfc_index_products_right_result_vbcoefficients)) /\ ((((((exists pfa_gap_products_right_result_vbcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_right_result_vbcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_right_result_vbcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_right_result_vbcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_right_result_vbcoefficientscoefficientdiagonal)) * bc)) /\ exists ff_q_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermleftentry. bb = ff_q_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_right_result_vbcoefficientscoefficientdiagonal)) * bc) + (pfc_left_products_right_result_vbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_result_vbcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_right_result_vbcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_products_right_result_vbcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_right_result_vbcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_right_result_vbcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_right_result_vbcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_right_result_vbcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_right_result_vbcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_right_result_vbcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_right_result_vbcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_products_right_result_vbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_result_vbcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_right_result_vbcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_products_right_result_vbcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_right_result_vbcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_right_result_vbcoefficientscoefficientdiagonal)=pfc_left_products_right_result_vbcoefficientscoefficientdiagonalterm*pfc_right_products_right_result_vbcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_right_result_vbcoefficientscoefficientsum fs_v_pfc_products_right_result_vbcoefficientscoefficientsum. ((((exists fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_start. fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_start. fs_u_pfc_products_right_result_vbcoefficientscoefficientsum = fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_right_result_vbcoefficientscoefficient) = S ((S (S (pfc_index_products_right_result_vbcoefficients))) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_right_result_vbcoefficientscoefficientsum = fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_right_result_vbcoefficients))) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum) + (pfc_natural_sum_products_right_result_vbcoefficientscoefficient))) /\ forall fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps = S (pfc_index_products_right_result_vbcoefficients)) -> exists fs_a_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps fs_r_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps fs_s_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_result_vbcoefficientscoefficient)) /\ exists fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_right_result_vbcoefficientscoefficient = fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_result_vbcoefficientscoefficient) + (fs_a_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_right_result_vbcoefficientscoefficientsum = fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum) + (fs_r_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_right_result_vbcoefficientscoefficientsum = fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum) + (fs_s_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps = fs_r_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps + fs_a_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_right_result_vbcoefficientscoefficientresiduebound. pfa_gap_products_right_result_vbcoefficientscoefficientresiduebound + S (pfc_value_products_right_result_vbcoefficients) = (p)) /\ ((exists pfa_offset_left_products_right_result_vbcoefficientscoefficientresiduecongruence pfa_offset_right_products_right_result_vbcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_right_result_vbcoefficientscoefficient) + (p) * pfa_offset_left_products_right_result_vbcoefficientscoefficientresiduecongruence = (pfc_value_products_right_result_vbcoefficients) + (p) * pfa_offset_right_products_right_result_vbcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ (((((forall fom_index_pfp_products_right_result_wbleft. (exists fom_gap_pfp_products_right_result_wbleft_index_bound. fom_gap_pfp_products_right_result_wbleft_index_bound + S (fom_index_pfp_products_right_result_wbleft) = L) -> exists fom_value_pfp_products_right_result_wbleft. ((((exists fom_beta_height_pfp_products_right_result_wbleft_entry. fom_beta_height_pfp_products_right_result_wbleft_entry + S (fom_value_pfp_products_right_result_wbleft) = S ((S (fom_index_pfp_products_right_result_wbleft)) * cc)) /\ exists fom_beta_quotient_pfp_products_right_result_wbleft_entry. cb = fom_beta_quotient_pfp_products_right_result_wbleft_entry * S ((S (fom_index_pfp_products_right_result_wbleft)) * cc) + (fom_value_pfp_products_right_result_wbleft))) /\ (exists fom_gap_pfp_products_right_result_wbleft_value_bound. fom_gap_pfp_products_right_result_wbleft_value_bound + S (fom_value_pfp_products_right_result_wbleft) = p))) /\ (((forall fom_index_pfp_products_right_result_wbright. (exists fom_gap_pfp_products_right_result_wbright_index_bound. fom_gap_pfp_products_right_result_wbright_index_bound + S (fom_index_pfp_products_right_result_wbright) = M) -> exists fom_value_pfp_products_right_result_wbright. ((((exists fom_beta_height_pfp_products_right_result_wbright_entry. fom_beta_height_pfp_products_right_result_wbright_entry + S (fom_value_pfp_products_right_result_wbright) = S ((S (fom_index_pfp_products_right_result_wbright)) * dc)) /\ exists fom_beta_quotient_pfp_products_right_result_wbright_entry. db = fom_beta_quotient_pfp_products_right_result_wbright_entry * S ((S (fom_index_pfp_products_right_result_wbright)) * dc) + (fom_value_pfp_products_right_result_wbright))) /\ (exists fom_gap_pfp_products_right_result_wbright_value_bound. fom_gap_pfp_products_right_result_wbright_value_bound + S (fom_value_pfp_products_right_result_wbright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_products_right_result_wbcoefficients. (exists pfa_gap_products_right_result_wbcoefficientsbound. pfa_gap_products_right_result_wbcoefficientsbound + S (pfc_index_products_right_result_wbcoefficients) = (N)) -> exists pfc_value_products_right_result_wbcoefficients. ((((exists ff_h_pfp_products_right_result_wbcoefficientsentry. ff_h_pfp_products_right_result_wbcoefficientsentry + S (pfc_value_products_right_result_wbcoefficients) = S ((S (pfc_index_products_right_result_wbcoefficients)) * wc)) /\ exists ff_q_pfp_products_right_result_wbcoefficientsentry. wb = ff_q_pfp_products_right_result_wbcoefficientsentry * S ((S (pfc_index_products_right_result_wbcoefficients)) * wc) + (pfc_value_products_right_result_wbcoefficients))) /\ ((exists pfc_terms_code_products_right_result_wbcoefficientscoefficient pfc_terms_scale_products_right_result_wbcoefficientscoefficient pfc_natural_sum_products_right_result_wbcoefficientscoefficient. ((forall pfc_index_products_right_result_wbcoefficientscoefficientdiagonal. (exists pfa_gap_products_right_result_wbcoefficientscoefficientdiagonalbound. pfa_gap_products_right_result_wbcoefficientscoefficientdiagonalbound + S (pfc_index_products_right_result_wbcoefficientscoefficientdiagonal) = (S (pfc_index_products_right_result_wbcoefficients))) -> exists pfc_value_products_right_result_wbcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_right_result_wbcoefficientscoefficientdiagonalentry. ff_h_pfp_products_right_result_wbcoefficientscoefficientdiagonalentry + S (pfc_value_products_right_result_wbcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_right_result_wbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_result_wbcoefficientscoefficient)) /\ exists ff_q_pfp_products_right_result_wbcoefficientscoefficientdiagonalentry. pfc_terms_code_products_right_result_wbcoefficientscoefficient = ff_q_pfp_products_right_result_wbcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_right_result_wbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_result_wbcoefficientscoefficient) + (pfc_value_products_right_result_wbcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_right_result_wbcoefficientscoefficientdiagonalterm pfc_left_products_right_result_wbcoefficientscoefficientdiagonalterm pfc_right_products_right_result_wbcoefficientscoefficientdiagonalterm. (((pfc_index_products_right_result_wbcoefficientscoefficientdiagonal)+pfc_complement_products_right_result_wbcoefficientscoefficientdiagonalterm=(pfc_index_products_right_result_wbcoefficients)) /\ ((((((exists pfa_gap_products_right_result_wbcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_right_result_wbcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_right_result_wbcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_right_result_wbcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_right_result_wbcoefficientscoefficientdiagonal)) * cc)) /\ exists ff_q_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermleftentry. cb = ff_q_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_right_result_wbcoefficientscoefficientdiagonal)) * cc) + (pfc_left_products_right_result_wbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_result_wbcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_right_result_wbcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_products_right_result_wbcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_right_result_wbcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_right_result_wbcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_right_result_wbcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_right_result_wbcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_right_result_wbcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_right_result_wbcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_right_result_wbcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_products_right_result_wbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_result_wbcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_right_result_wbcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_products_right_result_wbcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_right_result_wbcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_right_result_wbcoefficientscoefficientdiagonal)=pfc_left_products_right_result_wbcoefficientscoefficientdiagonalterm*pfc_right_products_right_result_wbcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_right_result_wbcoefficientscoefficientsum fs_v_pfc_products_right_result_wbcoefficientscoefficientsum. ((((exists fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_start. fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_start. fs_u_pfc_products_right_result_wbcoefficientscoefficientsum = fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_right_result_wbcoefficientscoefficient) = S ((S (S (pfc_index_products_right_result_wbcoefficients))) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_right_result_wbcoefficientscoefficientsum = fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_right_result_wbcoefficients))) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum) + (pfc_natural_sum_products_right_result_wbcoefficientscoefficient))) /\ forall fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps = S (pfc_index_products_right_result_wbcoefficients)) -> exists fs_a_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps fs_r_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps fs_s_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_result_wbcoefficientscoefficient)) /\ exists fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_right_result_wbcoefficientscoefficient = fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_result_wbcoefficientscoefficient) + (fs_a_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_right_result_wbcoefficientscoefficientsum = fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum) + (fs_r_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_right_result_wbcoefficientscoefficientsum = fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum) + (fs_s_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps = fs_r_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps + fs_a_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_right_result_wbcoefficientscoefficientresiduebound. pfa_gap_products_right_result_wbcoefficientscoefficientresiduebound + S (pfc_value_products_right_result_wbcoefficients) = (p)) /\ ((exists pfa_offset_left_products_right_result_wbcoefficientscoefficientresiduecongruence pfa_offset_right_products_right_result_wbcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_right_result_wbcoefficientscoefficient) + (p) * pfa_offset_left_products_right_result_wbcoefficientscoefficientresiduecongruence = (pfc_value_products_right_result_wbcoefficients) + (p) * pfa_offset_right_products_right_result_wbcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ ((forall pfp_index_products_right_addition. (exists pfa_gap_products_right_additionindex. pfa_gap_products_right_additionindex + S (pfp_index_products_right_addition) = (N)) -> exists pfp_left_products_right_addition pfp_right_products_right_addition pfp_value_products_right_addition. ((((exists ff_h_pfp_products_right_additionleft. ff_h_pfp_products_right_additionleft + S (pfp_left_products_right_addition) = S ((S (pfp_index_products_right_addition)) * uc)) /\ exists ff_q_pfp_products_right_additionleft. ub = ff_q_pfp_products_right_additionleft * S ((S (pfp_index_products_right_addition)) * uc) + (pfp_left_products_right_addition))) /\ (((((exists ff_h_pfp_products_right_additionright. ff_h_pfp_products_right_additionright + S (pfp_right_products_right_addition) = S ((S (pfp_index_products_right_addition)) * vc)) /\ exists ff_q_pfp_products_right_additionright. vb = ff_q_pfp_products_right_additionright * S ((S (pfp_index_products_right_addition)) * vc) + (pfp_right_products_right_addition))) /\ (((((exists ff_h_pfp_products_right_additiontarget. ff_h_pfp_products_right_additiontarget + S (pfp_value_products_right_addition) = S ((S (pfp_index_products_right_addition)) * wc)) /\ exists ff_q_pfp_products_right_additiontarget. wb = ff_q_pfp_products_right_additiontarget * S ((S (pfp_index_products_right_addition)) * wc) + (pfp_value_products_right_addition))) /\ ((((exists pfa_gap_products_right_additionoperationleft. pfa_gap_products_right_additionoperationleft + S (pfp_left_products_right_addition) = (p)) /\ (((exists pfa_gap_products_right_additionoperationright. pfa_gap_products_right_additionoperationright + S (pfp_right_products_right_addition) = (p)) /\ ((((exists pfa_gap_products_right_additionoperationresultbound. pfa_gap_products_right_additionoperationresultbound + S (pfp_value_products_right_addition) = (p)) /\ ((exists pfa_offset_left_products_right_additionoperationresultcongruence pfa_offset_right_products_right_additionoperationresultcongruence. ((pfp_left_products_right_addition) + (pfp_right_products_right_addition)) + (p) * pfa_offset_left_products_right_additionoperationresultcongruence = (pfp_value_products_right_addition) + (p) * pfa_offset_right_products_right_additionoperationresultcongruence)))))))))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro cb
  7. intro cc
  8. intro L
  9. intro db
  10. intro dc
  11. intro M
  12. intro hp
  13. intro hd
  14. intro hs
  15. have hlength : exists N. ((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))
  16. specialize polynomial_product_length_exists (L)
  17. specialize polynomial_product_length_exists (M)
  18. apply polynomial_product_length_exists
  19. cases hlength
  20. have hbounds : ((forall fom_index_pfp_products_right_bounded_ab. (exists fom_gap_pfp_products_right_bounded_ab_index_bound. fom_gap_pfp_products_right_bounded_ab_index_bound + S (fom_index_pfp_products_right_bounded_ab) = L) -> exists fom_value_pfp_products_right_bounded_ab. ((((exists fom_beta_height_pfp_products_right_bounded_ab_entry. fom_beta_height_pfp_products_right_bounded_ab_entry + S (fom_value_pfp_products_right_bounded_ab) = S ((S (fom_index_pfp_products_right_bounded_ab)) * ac)) /\ exists fom_beta_quotient_pfp_products_right_bounded_ab_entry. ab = fom_beta_quotient_pfp_products_right_bounded_ab_entry * S ((S (fom_index_pfp_products_right_bounded_ab)) * ac) + (fom_value_pfp_products_right_bounded_ab))) /\ (exists fom_gap_pfp_products_right_bounded_ab_value_bound. fom_gap_pfp_products_right_bounded_ab_value_bound + S (fom_value_pfp_products_right_bounded_ab) = p))) /\ (((forall fom_index_pfp_products_right_bounded_bb. (exists fom_gap_pfp_products_right_bounded_bb_index_bound. fom_gap_pfp_products_right_bounded_bb_index_bound + S (fom_index_pfp_products_right_bounded_bb) = L) -> exists fom_value_pfp_products_right_bounded_bb. ((((exists fom_beta_height_pfp_products_right_bounded_bb_entry. fom_beta_height_pfp_products_right_bounded_bb_entry + S (fom_value_pfp_products_right_bounded_bb) = S ((S (fom_index_pfp_products_right_bounded_bb)) * bc)) /\ exists fom_beta_quotient_pfp_products_right_bounded_bb_entry. bb = fom_beta_quotient_pfp_products_right_bounded_bb_entry * S ((S (fom_index_pfp_products_right_bounded_bb)) * bc) + (fom_value_pfp_products_right_bounded_bb))) /\ (exists fom_gap_pfp_products_right_bounded_bb_value_bound. fom_gap_pfp_products_right_bounded_bb_value_bound + S (fom_value_pfp_products_right_bounded_bb) = p))) /\ ((forall fom_index_pfp_products_right_bounded_cb. (exists fom_gap_pfp_products_right_bounded_cb_index_bound. fom_gap_pfp_products_right_bounded_cb_index_bound + S (fom_index_pfp_products_right_bounded_cb) = L) -> exists fom_value_pfp_products_right_bounded_cb. ((((exists fom_beta_height_pfp_products_right_bounded_cb_entry. fom_beta_height_pfp_products_right_bounded_cb_entry + S (fom_value_pfp_products_right_bounded_cb) = S ((S (fom_index_pfp_products_right_bounded_cb)) * cc)) /\ exists fom_beta_quotient_pfp_products_right_bounded_cb_entry. cb = fom_beta_quotient_pfp_products_right_bounded_cb_entry * S ((S (fom_index_pfp_products_right_bounded_cb)) * cc) + (fom_value_pfp_products_right_bounded_cb))) /\ (exists fom_gap_pfp_products_right_bounded_cb_value_bound. fom_gap_pfp_products_right_bounded_cb_value_bound + S (fom_value_pfp_products_right_bounded_cb) = p)))))))
  21. specialize prime_field_polynomial_add_bounded (p)
  22. specialize prime_field_polynomial_add_bounded (ab)
  23. specialize prime_field_polynomial_add_bounded (ac)
  24. specialize prime_field_polynomial_add_bounded (bb)
  25. specialize prime_field_polynomial_add_bounded (bc)
  26. specialize prime_field_polynomial_add_bounded (cb)
  27. specialize prime_field_polynomial_add_bounded (cc)
  28. specialize prime_field_polynomial_add_bounded (L)
  29. apply prime_field_polynomial_add_bounded
  30. exact hs
  31. cases hbounds
  32. cases hbounds_right
  33. have hu : exists ub uc. ((forall fom_index_pfp_products_right_huleft. (exists fom_gap_pfp_products_right_huleft_index_bound. fom_gap_pfp_products_right_huleft_index_bound + S (fom_index_pfp_products_right_huleft) = L) -> exists fom_value_pfp_products_right_huleft. ((((exists fom_beta_height_pfp_products_right_huleft_entry. fom_beta_height_pfp_products_right_huleft_entry + S (fom_value_pfp_products_right_huleft) = S ((S (fom_index_pfp_products_right_huleft)) * ac)) /\ exists fom_beta_quotient_pfp_products_right_huleft_entry. ab = fom_beta_quotient_pfp_products_right_huleft_entry * S ((S (fom_index_pfp_products_right_huleft)) * ac) + (fom_value_pfp_products_right_huleft))) /\ (exists fom_gap_pfp_products_right_huleft_value_bound. fom_gap_pfp_products_right_huleft_value_bound + S (fom_value_pfp_products_right_huleft) = p))) /\ (((forall fom_index_pfp_products_right_huright. (exists fom_gap_pfp_products_right_huright_index_bound. fom_gap_pfp_products_right_huright_index_bound + S (fom_index_pfp_products_right_huright) = M) -> exists fom_value_pfp_products_right_huright. ((((exists fom_beta_height_pfp_products_right_huright_entry. fom_beta_height_pfp_products_right_huright_entry + S (fom_value_pfp_products_right_huright) = S ((S (fom_index_pfp_products_right_huright)) * dc)) /\ exists fom_beta_quotient_pfp_products_right_huright_entry. db = fom_beta_quotient_pfp_products_right_huright_entry * S ((S (fom_index_pfp_products_right_huright)) * dc) + (fom_value_pfp_products_right_huright))) /\ (exists fom_gap_pfp_products_right_huright_value_bound. fom_gap_pfp_products_right_huright_value_bound + S (fom_value_pfp_products_right_huright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((x)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (x)))))))) /\ ((forall pfc_index_products_right_hucoefficients. (exists pfa_gap_products_right_hucoefficientsbound. pfa_gap_products_right_hucoefficientsbound + S (pfc_index_products_right_hucoefficients) = (x)) -> exists pfc_value_products_right_hucoefficients. ((((exists ff_h_pfp_products_right_hucoefficientsentry. ff_h_pfp_products_right_hucoefficientsentry + S (pfc_value_products_right_hucoefficients) = S ((S (pfc_index_products_right_hucoefficients)) * uc)) /\ exists ff_q_pfp_products_right_hucoefficientsentry. ub = ff_q_pfp_products_right_hucoefficientsentry * S ((S (pfc_index_products_right_hucoefficients)) * uc) + (pfc_value_products_right_hucoefficients))) /\ ((exists pfc_terms_code_products_right_hucoefficientscoefficient pfc_terms_scale_products_right_hucoefficientscoefficient pfc_natural_sum_products_right_hucoefficientscoefficient. ((forall pfc_index_products_right_hucoefficientscoefficientdiagonal. (exists pfa_gap_products_right_hucoefficientscoefficientdiagonalbound. pfa_gap_products_right_hucoefficientscoefficientdiagonalbound + S (pfc_index_products_right_hucoefficientscoefficientdiagonal) = (S (pfc_index_products_right_hucoefficients))) -> exists pfc_value_products_right_hucoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_right_hucoefficientscoefficientdiagonalentry. ff_h_pfp_products_right_hucoefficientscoefficientdiagonalentry + S (pfc_value_products_right_hucoefficientscoefficientdiagonal) = S ((S (pfc_index_products_right_hucoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_hucoefficientscoefficient)) /\ exists ff_q_pfp_products_right_hucoefficientscoefficientdiagonalentry. pfc_terms_code_products_right_hucoefficientscoefficient = ff_q_pfp_products_right_hucoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_right_hucoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_hucoefficientscoefficient) + (pfc_value_products_right_hucoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_right_hucoefficientscoefficientdiagonalterm pfc_left_products_right_hucoefficientscoefficientdiagonalterm pfc_right_products_right_hucoefficientscoefficientdiagonalterm. (((pfc_index_products_right_hucoefficientscoefficientdiagonal)+pfc_complement_products_right_hucoefficientscoefficientdiagonalterm=(pfc_index_products_right_hucoefficients)) /\ ((((((exists pfa_gap_products_right_hucoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_right_hucoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_right_hucoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_products_right_hucoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_right_hucoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_right_hucoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_right_hucoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_products_right_hucoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_products_right_hucoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_right_hucoefficientscoefficientdiagonal)) * ac) + (pfc_left_products_right_hucoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_hucoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_right_hucoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_products_right_hucoefficientscoefficientdiagonal)) /\ (((pfc_left_products_right_hucoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_right_hucoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_right_hucoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_right_hucoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_products_right_hucoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_right_hucoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_right_hucoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_right_hucoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_products_right_hucoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_products_right_hucoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_right_hucoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_products_right_hucoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_hucoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_right_hucoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_products_right_hucoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_right_hucoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_right_hucoefficientscoefficientdiagonal)=pfc_left_products_right_hucoefficientscoefficientdiagonalterm*pfc_right_products_right_hucoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_right_hucoefficientscoefficientsum fs_v_pfc_products_right_hucoefficientscoefficientsum. ((((exists fs_h_pfc_products_right_hucoefficientscoefficientsum_body_start. fs_h_pfc_products_right_hucoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_right_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hucoefficientscoefficientsum_body_start. fs_u_pfc_products_right_hucoefficientscoefficientsum = fs_q_pfc_products_right_hucoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_right_hucoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_right_hucoefficientscoefficientsum_body_terminal. fs_h_pfc_products_right_hucoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_right_hucoefficientscoefficient) = S ((S (S (pfc_index_products_right_hucoefficients))) * fs_v_pfc_products_right_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hucoefficientscoefficientsum_body_terminal. fs_u_pfc_products_right_hucoefficientscoefficientsum = fs_q_pfc_products_right_hucoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_right_hucoefficients))) * fs_v_pfc_products_right_hucoefficientscoefficientsum) + (pfc_natural_sum_products_right_hucoefficientscoefficient))) /\ forall fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_right_hucoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_right_hucoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps = S (pfc_index_products_right_hucoefficients)) -> exists fs_a_pfc_products_right_hucoefficientscoefficientsum_body_steps fs_r_pfc_products_right_hucoefficientscoefficientsum_body_steps fs_s_pfc_products_right_hucoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_right_hucoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_right_hucoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_right_hucoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_hucoefficientscoefficient)) /\ exists fs_q_pfc_products_right_hucoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_right_hucoefficientscoefficient = fs_q_pfc_products_right_hucoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_hucoefficientscoefficient) + (fs_a_pfc_products_right_hucoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_hucoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_right_hucoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_right_hucoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hucoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_right_hucoefficientscoefficientsum = fs_q_pfc_products_right_hucoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hucoefficientscoefficientsum) + (fs_r_pfc_products_right_hucoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_hucoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_right_hucoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_right_hucoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hucoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_right_hucoefficientscoefficientsum = fs_q_pfc_products_right_hucoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hucoefficientscoefficientsum) + (fs_s_pfc_products_right_hucoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_right_hucoefficientscoefficientsum_body_steps = fs_r_pfc_products_right_hucoefficientscoefficientsum_body_steps + fs_a_pfc_products_right_hucoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_right_hucoefficientscoefficientresiduebound. pfa_gap_products_right_hucoefficientscoefficientresiduebound + S (pfc_value_products_right_hucoefficients) = (p)) /\ ((exists pfa_offset_left_products_right_hucoefficientscoefficientresiduecongruence pfa_offset_right_products_right_hucoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_right_hucoefficientscoefficient) + (p) * pfa_offset_left_products_right_hucoefficientscoefficientresiduecongruence = (pfc_value_products_right_hucoefficients) + (p) * pfa_offset_right_products_right_hucoefficientscoefficientresiduecongruence))))))))))))))))))
  34. specialize prime_field_polynomial_convolution_at_length_exists (p)
  35. specialize prime_field_polynomial_convolution_at_length_exists (ab)
  36. specialize prime_field_polynomial_convolution_at_length_exists (ac)
  37. specialize prime_field_polynomial_convolution_at_length_exists (L)
  38. specialize prime_field_polynomial_convolution_at_length_exists (db)
  39. specialize prime_field_polynomial_convolution_at_length_exists (dc)
  40. specialize prime_field_polynomial_convolution_at_length_exists (M)
  41. specialize prime_field_polynomial_convolution_at_length_exists (x)
  42. apply prime_field_polynomial_convolution_at_length_exists
  43. exact hp
  44. exact hbounds_left
  45. exact hd
  46. exact hlength_witness
  47. cases hu
  48. cases hu_witness
  49. have hv : exists ub uc. ((forall fom_index_pfp_products_right_hvleft. (exists fom_gap_pfp_products_right_hvleft_index_bound. fom_gap_pfp_products_right_hvleft_index_bound + S (fom_index_pfp_products_right_hvleft) = L) -> exists fom_value_pfp_products_right_hvleft. ((((exists fom_beta_height_pfp_products_right_hvleft_entry. fom_beta_height_pfp_products_right_hvleft_entry + S (fom_value_pfp_products_right_hvleft) = S ((S (fom_index_pfp_products_right_hvleft)) * bc)) /\ exists fom_beta_quotient_pfp_products_right_hvleft_entry. bb = fom_beta_quotient_pfp_products_right_hvleft_entry * S ((S (fom_index_pfp_products_right_hvleft)) * bc) + (fom_value_pfp_products_right_hvleft))) /\ (exists fom_gap_pfp_products_right_hvleft_value_bound. fom_gap_pfp_products_right_hvleft_value_bound + S (fom_value_pfp_products_right_hvleft) = p))) /\ (((forall fom_index_pfp_products_right_hvright. (exists fom_gap_pfp_products_right_hvright_index_bound. fom_gap_pfp_products_right_hvright_index_bound + S (fom_index_pfp_products_right_hvright) = M) -> exists fom_value_pfp_products_right_hvright. ((((exists fom_beta_height_pfp_products_right_hvright_entry. fom_beta_height_pfp_products_right_hvright_entry + S (fom_value_pfp_products_right_hvright) = S ((S (fom_index_pfp_products_right_hvright)) * dc)) /\ exists fom_beta_quotient_pfp_products_right_hvright_entry. db = fom_beta_quotient_pfp_products_right_hvright_entry * S ((S (fom_index_pfp_products_right_hvright)) * dc) + (fom_value_pfp_products_right_hvright))) /\ (exists fom_gap_pfp_products_right_hvright_value_bound. fom_gap_pfp_products_right_hvright_value_bound + S (fom_value_pfp_products_right_hvright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((x)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (x)))))))) /\ ((forall pfc_index_products_right_hvcoefficients. (exists pfa_gap_products_right_hvcoefficientsbound. pfa_gap_products_right_hvcoefficientsbound + S (pfc_index_products_right_hvcoefficients) = (x)) -> exists pfc_value_products_right_hvcoefficients. ((((exists ff_h_pfp_products_right_hvcoefficientsentry. ff_h_pfp_products_right_hvcoefficientsentry + S (pfc_value_products_right_hvcoefficients) = S ((S (pfc_index_products_right_hvcoefficients)) * uc)) /\ exists ff_q_pfp_products_right_hvcoefficientsentry. ub = ff_q_pfp_products_right_hvcoefficientsentry * S ((S (pfc_index_products_right_hvcoefficients)) * uc) + (pfc_value_products_right_hvcoefficients))) /\ ((exists pfc_terms_code_products_right_hvcoefficientscoefficient pfc_terms_scale_products_right_hvcoefficientscoefficient pfc_natural_sum_products_right_hvcoefficientscoefficient. ((forall pfc_index_products_right_hvcoefficientscoefficientdiagonal. (exists pfa_gap_products_right_hvcoefficientscoefficientdiagonalbound. pfa_gap_products_right_hvcoefficientscoefficientdiagonalbound + S (pfc_index_products_right_hvcoefficientscoefficientdiagonal) = (S (pfc_index_products_right_hvcoefficients))) -> exists pfc_value_products_right_hvcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_right_hvcoefficientscoefficientdiagonalentry. ff_h_pfp_products_right_hvcoefficientscoefficientdiagonalentry + S (pfc_value_products_right_hvcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_right_hvcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_hvcoefficientscoefficient)) /\ exists ff_q_pfp_products_right_hvcoefficientscoefficientdiagonalentry. pfc_terms_code_products_right_hvcoefficientscoefficient = ff_q_pfp_products_right_hvcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_right_hvcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_hvcoefficientscoefficient) + (pfc_value_products_right_hvcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_right_hvcoefficientscoefficientdiagonalterm pfc_left_products_right_hvcoefficientscoefficientdiagonalterm pfc_right_products_right_hvcoefficientscoefficientdiagonalterm. (((pfc_index_products_right_hvcoefficientscoefficientdiagonal)+pfc_complement_products_right_hvcoefficientscoefficientdiagonalterm=(pfc_index_products_right_hvcoefficients)) /\ ((((((exists pfa_gap_products_right_hvcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_right_hvcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_right_hvcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_products_right_hvcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_right_hvcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_right_hvcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_right_hvcoefficientscoefficientdiagonal)) * bc)) /\ exists ff_q_pfp_products_right_hvcoefficientscoefficientdiagonaltermleftentry. bb = ff_q_pfp_products_right_hvcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_right_hvcoefficientscoefficientdiagonal)) * bc) + (pfc_left_products_right_hvcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_hvcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_right_hvcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_products_right_hvcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_right_hvcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_right_hvcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_right_hvcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_right_hvcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_products_right_hvcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_right_hvcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_right_hvcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_right_hvcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_products_right_hvcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_products_right_hvcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_right_hvcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_products_right_hvcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_hvcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_right_hvcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_products_right_hvcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_right_hvcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_right_hvcoefficientscoefficientdiagonal)=pfc_left_products_right_hvcoefficientscoefficientdiagonalterm*pfc_right_products_right_hvcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_right_hvcoefficientscoefficientsum fs_v_pfc_products_right_hvcoefficientscoefficientsum. ((((exists fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_start. fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_right_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_start. fs_u_pfc_products_right_hvcoefficientscoefficientsum = fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_right_hvcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_right_hvcoefficientscoefficient) = S ((S (S (pfc_index_products_right_hvcoefficients))) * fs_v_pfc_products_right_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_right_hvcoefficientscoefficientsum = fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_right_hvcoefficients))) * fs_v_pfc_products_right_hvcoefficientscoefficientsum) + (pfc_natural_sum_products_right_hvcoefficientscoefficient))) /\ forall fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_right_hvcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_right_hvcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps = S (pfc_index_products_right_hvcoefficients)) -> exists fs_a_pfc_products_right_hvcoefficientscoefficientsum_body_steps fs_r_pfc_products_right_hvcoefficientscoefficientsum_body_steps fs_s_pfc_products_right_hvcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_right_hvcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_hvcoefficientscoefficient)) /\ exists fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_right_hvcoefficientscoefficient = fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_hvcoefficientscoefficient) + (fs_a_pfc_products_right_hvcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_right_hvcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_right_hvcoefficientscoefficientsum = fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hvcoefficientscoefficientsum) + (fs_r_pfc_products_right_hvcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_right_hvcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_right_hvcoefficientscoefficientsum = fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hvcoefficientscoefficientsum) + (fs_s_pfc_products_right_hvcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_right_hvcoefficientscoefficientsum_body_steps = fs_r_pfc_products_right_hvcoefficientscoefficientsum_body_steps + fs_a_pfc_products_right_hvcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_right_hvcoefficientscoefficientresiduebound. pfa_gap_products_right_hvcoefficientscoefficientresiduebound + S (pfc_value_products_right_hvcoefficients) = (p)) /\ ((exists pfa_offset_left_products_right_hvcoefficientscoefficientresiduecongruence pfa_offset_right_products_right_hvcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_right_hvcoefficientscoefficient) + (p) * pfa_offset_left_products_right_hvcoefficientscoefficientresiduecongruence = (pfc_value_products_right_hvcoefficients) + (p) * pfa_offset_right_products_right_hvcoefficientscoefficientresiduecongruence))))))))))))))))))
  50. specialize prime_field_polynomial_convolution_at_length_exists (p)
  51. specialize prime_field_polynomial_convolution_at_length_exists (bb)
  52. specialize prime_field_polynomial_convolution_at_length_exists (bc)
  53. specialize prime_field_polynomial_convolution_at_length_exists (L)
  54. specialize prime_field_polynomial_convolution_at_length_exists (db)
  55. specialize prime_field_polynomial_convolution_at_length_exists (dc)
  56. specialize prime_field_polynomial_convolution_at_length_exists (M)
  57. specialize prime_field_polynomial_convolution_at_length_exists (x)
  58. apply prime_field_polynomial_convolution_at_length_exists
  59. exact hp
  60. exact hbounds_right_left
  61. exact hd
  62. exact hlength_witness
  63. cases hv
  64. cases hv_witness
  65. have hw : exists ub uc. ((forall fom_index_pfp_products_right_hwleft. (exists fom_gap_pfp_products_right_hwleft_index_bound. fom_gap_pfp_products_right_hwleft_index_bound + S (fom_index_pfp_products_right_hwleft) = L) -> exists fom_value_pfp_products_right_hwleft. ((((exists fom_beta_height_pfp_products_right_hwleft_entry. fom_beta_height_pfp_products_right_hwleft_entry + S (fom_value_pfp_products_right_hwleft) = S ((S (fom_index_pfp_products_right_hwleft)) * cc)) /\ exists fom_beta_quotient_pfp_products_right_hwleft_entry. cb = fom_beta_quotient_pfp_products_right_hwleft_entry * S ((S (fom_index_pfp_products_right_hwleft)) * cc) + (fom_value_pfp_products_right_hwleft))) /\ (exists fom_gap_pfp_products_right_hwleft_value_bound. fom_gap_pfp_products_right_hwleft_value_bound + S (fom_value_pfp_products_right_hwleft) = p))) /\ (((forall fom_index_pfp_products_right_hwright. (exists fom_gap_pfp_products_right_hwright_index_bound. fom_gap_pfp_products_right_hwright_index_bound + S (fom_index_pfp_products_right_hwright) = M) -> exists fom_value_pfp_products_right_hwright. ((((exists fom_beta_height_pfp_products_right_hwright_entry. fom_beta_height_pfp_products_right_hwright_entry + S (fom_value_pfp_products_right_hwright) = S ((S (fom_index_pfp_products_right_hwright)) * dc)) /\ exists fom_beta_quotient_pfp_products_right_hwright_entry. db = fom_beta_quotient_pfp_products_right_hwright_entry * S ((S (fom_index_pfp_products_right_hwright)) * dc) + (fom_value_pfp_products_right_hwright))) /\ (exists fom_gap_pfp_products_right_hwright_value_bound. fom_gap_pfp_products_right_hwright_value_bound + S (fom_value_pfp_products_right_hwright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((x)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (x)))))))) /\ ((forall pfc_index_products_right_hwcoefficients. (exists pfa_gap_products_right_hwcoefficientsbound. pfa_gap_products_right_hwcoefficientsbound + S (pfc_index_products_right_hwcoefficients) = (x)) -> exists pfc_value_products_right_hwcoefficients. ((((exists ff_h_pfp_products_right_hwcoefficientsentry. ff_h_pfp_products_right_hwcoefficientsentry + S (pfc_value_products_right_hwcoefficients) = S ((S (pfc_index_products_right_hwcoefficients)) * uc)) /\ exists ff_q_pfp_products_right_hwcoefficientsentry. ub = ff_q_pfp_products_right_hwcoefficientsentry * S ((S (pfc_index_products_right_hwcoefficients)) * uc) + (pfc_value_products_right_hwcoefficients))) /\ ((exists pfc_terms_code_products_right_hwcoefficientscoefficient pfc_terms_scale_products_right_hwcoefficientscoefficient pfc_natural_sum_products_right_hwcoefficientscoefficient. ((forall pfc_index_products_right_hwcoefficientscoefficientdiagonal. (exists pfa_gap_products_right_hwcoefficientscoefficientdiagonalbound. pfa_gap_products_right_hwcoefficientscoefficientdiagonalbound + S (pfc_index_products_right_hwcoefficientscoefficientdiagonal) = (S (pfc_index_products_right_hwcoefficients))) -> exists pfc_value_products_right_hwcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_right_hwcoefficientscoefficientdiagonalentry. ff_h_pfp_products_right_hwcoefficientscoefficientdiagonalentry + S (pfc_value_products_right_hwcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_right_hwcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_hwcoefficientscoefficient)) /\ exists ff_q_pfp_products_right_hwcoefficientscoefficientdiagonalentry. pfc_terms_code_products_right_hwcoefficientscoefficient = ff_q_pfp_products_right_hwcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_right_hwcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_hwcoefficientscoefficient) + (pfc_value_products_right_hwcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_right_hwcoefficientscoefficientdiagonalterm pfc_left_products_right_hwcoefficientscoefficientdiagonalterm pfc_right_products_right_hwcoefficientscoefficientdiagonalterm. (((pfc_index_products_right_hwcoefficientscoefficientdiagonal)+pfc_complement_products_right_hwcoefficientscoefficientdiagonalterm=(pfc_index_products_right_hwcoefficients)) /\ ((((((exists pfa_gap_products_right_hwcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_right_hwcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_right_hwcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_products_right_hwcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_right_hwcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_right_hwcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_right_hwcoefficientscoefficientdiagonal)) * cc)) /\ exists ff_q_pfp_products_right_hwcoefficientscoefficientdiagonaltermleftentry. cb = ff_q_pfp_products_right_hwcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_right_hwcoefficientscoefficientdiagonal)) * cc) + (pfc_left_products_right_hwcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_hwcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_right_hwcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_products_right_hwcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_right_hwcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_right_hwcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_right_hwcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_right_hwcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_products_right_hwcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_right_hwcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_right_hwcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_right_hwcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_products_right_hwcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_products_right_hwcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_right_hwcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_products_right_hwcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_hwcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_right_hwcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_products_right_hwcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_right_hwcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_right_hwcoefficientscoefficientdiagonal)=pfc_left_products_right_hwcoefficientscoefficientdiagonalterm*pfc_right_products_right_hwcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_right_hwcoefficientscoefficientsum fs_v_pfc_products_right_hwcoefficientscoefficientsum. ((((exists fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_start. fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_right_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_start. fs_u_pfc_products_right_hwcoefficientscoefficientsum = fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_right_hwcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_right_hwcoefficientscoefficient) = S ((S (S (pfc_index_products_right_hwcoefficients))) * fs_v_pfc_products_right_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_right_hwcoefficientscoefficientsum = fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_right_hwcoefficients))) * fs_v_pfc_products_right_hwcoefficientscoefficientsum) + (pfc_natural_sum_products_right_hwcoefficientscoefficient))) /\ forall fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_right_hwcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_right_hwcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps = S (pfc_index_products_right_hwcoefficients)) -> exists fs_a_pfc_products_right_hwcoefficientscoefficientsum_body_steps fs_r_pfc_products_right_hwcoefficientscoefficientsum_body_steps fs_s_pfc_products_right_hwcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_right_hwcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_hwcoefficientscoefficient)) /\ exists fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_right_hwcoefficientscoefficient = fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_hwcoefficientscoefficient) + (fs_a_pfc_products_right_hwcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_right_hwcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_right_hwcoefficientscoefficientsum = fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hwcoefficientscoefficientsum) + (fs_r_pfc_products_right_hwcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_right_hwcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_right_hwcoefficientscoefficientsum = fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hwcoefficientscoefficientsum) + (fs_s_pfc_products_right_hwcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_right_hwcoefficientscoefficientsum_body_steps = fs_r_pfc_products_right_hwcoefficientscoefficientsum_body_steps + fs_a_pfc_products_right_hwcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_right_hwcoefficientscoefficientresiduebound. pfa_gap_products_right_hwcoefficientscoefficientresiduebound + S (pfc_value_products_right_hwcoefficients) = (p)) /\ ((exists pfa_offset_left_products_right_hwcoefficientscoefficientresiduecongruence pfa_offset_right_products_right_hwcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_right_hwcoefficientscoefficient) + (p) * pfa_offset_left_products_right_hwcoefficientscoefficientresiduecongruence = (pfc_value_products_right_hwcoefficients) + (p) * pfa_offset_right_products_right_hwcoefficientscoefficientresiduecongruence))))))))))))))))))
  66. specialize prime_field_polynomial_convolution_at_length_exists (p)
  67. specialize prime_field_polynomial_convolution_at_length_exists (cb)
  68. specialize prime_field_polynomial_convolution_at_length_exists (cc)
  69. specialize prime_field_polynomial_convolution_at_length_exists (L)
  70. specialize prime_field_polynomial_convolution_at_length_exists (db)
  71. specialize prime_field_polynomial_convolution_at_length_exists (dc)
  72. specialize prime_field_polynomial_convolution_at_length_exists (M)
  73. specialize prime_field_polynomial_convolution_at_length_exists (x)
  74. apply prime_field_polynomial_convolution_at_length_exists
  75. exact hp
  76. exact hbounds_right_right
  77. exact hd
  78. exact hlength_witness
  79. cases hw
  80. cases hw_witness
  81. exists x
  82. exists x1
  83. exists x2
  84. exists x3
  85. exists x4
  86. exists x5
  87. exists x6
  88. split
  89. exact hu_witness_witness
  90. split
  91. exact hv_witness_witness
  92. split
  93. exact hw_witness_witness
  94. specialize prime_field_polynomial_convolution_right_add (p)
  95. specialize prime_field_polynomial_convolution_right_add (ab)
  96. specialize prime_field_polynomial_convolution_right_add (ac)
  97. specialize prime_field_polynomial_convolution_right_add (bb)
  98. specialize prime_field_polynomial_convolution_right_add (bc)
  99. specialize prime_field_polynomial_convolution_right_add (cb)
  100. specialize prime_field_polynomial_convolution_right_add (cc)
  101. specialize prime_field_polynomial_convolution_right_add (L)
  102. specialize prime_field_polynomial_convolution_right_add (db)
  103. specialize prime_field_polynomial_convolution_right_add (dc)
  104. specialize prime_field_polynomial_convolution_right_add (M)
  105. specialize prime_field_polynomial_convolution_right_add (x1)
  106. specialize prime_field_polynomial_convolution_right_add (x2)
  107. specialize prime_field_polynomial_convolution_right_add (x3)
  108. specialize prime_field_polynomial_convolution_right_add (x4)
  109. specialize prime_field_polynomial_convolution_right_add (x5)
  110. specialize prime_field_polynomial_convolution_right_add (x6)
  111. specialize prime_field_polynomial_convolution_right_add (x)
  112. apply prime_field_polynomial_convolution_right_add
  113. exact hs
  114. exact hu_witness_witness
  115. exact hv_witness_witness
  116. exact hw_witness_witness
polynomial_product_length_left_padding_left · unchanged support, not a new admission
forall L M N t K. (((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) -> (~(L=0)) -> (~(M=0)) -> (((((t+L)=0 \/ (M)=0) /\ (((K)=0)))) \/ (((~((t+L)=0)) /\ (((~((M)=0)) /\ (((t+L)+(M)=S (K)))))))) -> (K=t+N)
  1. intro L
  2. intro M
  3. intro N
  4. intro t
  5. intro K
  6. intro hold
  7. intro hL
  8. intro hM
  9. intro hnew
  10. cases hold
  11. cases hold_left
  12. cases hold_left_left
  13. exfalso
  14. apply hL
  15. exact hold_left_left_left
  16. exfalso
  17. apply hM
  18. exact hold_left_left_right
  19. cases hold_right
  20. cases hold_right_right
  21. cases hnew
  22. cases hnew_left
  23. cases hnew_left_left
  24. exfalso
  25. apply hL
  26. specialize add_eq_zero_right (t)
  27. specialize add_eq_zero_right (L)
  28. apply add_eq_zero_right
  29. exact hnew_left_left_left
  30. exfalso
  31. apply hM
  32. exact hnew_left_left_right
  33. cases hnew_right
  34. cases hnew_right_right
  35. specialize succ_injective (K)
  36. specialize succ_injective (t+N)
  37. apply succ_injective
  38. trans (t+L)+(M)
  39. symm
  40. exact hnew_right_right_right
  41. trans t+(L+M)
  42. apply add_assoc
  43. rewrite hold_right_right_right
  44. simp
polynomial_diagonal_term_left_padding_zero_left · unchanged support, not a new admission
forall ab ac L bb bc M AB AC t i j z. (((forall pfp_repeat_index_zero_term_pad_leftzeros. (exists pfa_gap_zero_term_pad_leftzerosindex. pfa_gap_zero_term_pad_leftzerosindex + S (pfp_repeat_index_zero_term_pad_leftzeros) = (t)) -> (((exists ff_h_pfp_zero_term_pad_leftzerosentry. ff_h_pfp_zero_term_pad_leftzerosentry + S (0) = S ((S (pfp_repeat_index_zero_term_pad_leftzeros)) * AC)) /\ exists ff_q_pfp_zero_term_pad_leftzerosentry. AB = ff_q_pfp_zero_term_pad_leftzerosentry * S ((S (pfp_repeat_index_zero_term_pad_leftzeros)) * AC) + (0)))) /\ ((forall pfrep_index_zero_term_pad_left pfrep_value_zero_term_pad_left. (exists pfa_gap_zero_term_pad_leftbound. pfa_gap_zero_term_pad_leftbound + S (pfrep_index_zero_term_pad_left) = (L)) -> (((exists ff_h_pfp_zero_term_pad_leftinput. ff_h_pfp_zero_term_pad_leftinput + S (pfrep_value_zero_term_pad_left) = S ((S (pfrep_index_zero_term_pad_left)) * ac)) /\ exists ff_q_pfp_zero_term_pad_leftinput. ab = ff_q_pfp_zero_term_pad_leftinput * S ((S (pfrep_index_zero_term_pad_left)) * ac) + (pfrep_value_zero_term_pad_left))) -> (((exists ff_h_pfp_zero_term_pad_leftoutput. ff_h_pfp_zero_term_pad_leftoutput + S (pfrep_value_zero_term_pad_left) = S ((S ((t)+pfrep_index_zero_term_pad_left)) * AC)) /\ exists ff_q_pfp_zero_term_pad_leftoutput. AB = ff_q_pfp_zero_term_pad_leftoutput * S ((S ((t)+pfrep_index_zero_term_pad_left)) * AC) + (pfrep_value_zero_term_pad_left))))))) -> (exists pfa_gap_term_zero_left_bound. pfa_gap_term_zero_left_bound + S (j) = (t)) -> (exists pfc_complement_zero_term_actual_left pfc_left_zero_term_actual_left pfc_right_zero_term_actual_left. (((j)+pfc_complement_zero_term_actual_left=(i)) /\ ((((((exists pfa_gap_zero_term_actual_leftleftinside. pfa_gap_zero_term_actual_leftleftinside + S (j) = (t+L)) /\ ((((exists ff_h_pfp_zero_term_actual_leftleftentry. ff_h_pfp_zero_term_actual_leftleftentry + S (pfc_left_zero_term_actual_left) = S ((S (j)) * AC)) /\ exists ff_q_pfp_zero_term_actual_leftleftentry. AB = ff_q_pfp_zero_term_actual_leftleftentry * S ((S (j)) * AC) + (pfc_left_zero_term_actual_left)))))) \/ (((exists pfc_gap_zero_term_actual_leftleftoutside. pfc_gap_zero_term_actual_leftleftoutside+(t+L)=(j)) /\ (((pfc_left_zero_term_actual_left)=0))))) /\ ((((((exists pfa_gap_zero_term_actual_leftrightinside. pfa_gap_zero_term_actual_leftrightinside + S (pfc_complement_zero_term_actual_left) = (M)) /\ ((((exists ff_h_pfp_zero_term_actual_leftrightentry. ff_h_pfp_zero_term_actual_leftrightentry + S (pfc_right_zero_term_actual_left) = S ((S (pfc_complement_zero_term_actual_left)) * bc)) /\ exists ff_q_pfp_zero_term_actual_leftrightentry. bb = ff_q_pfp_zero_term_actual_leftrightentry * S ((S (pfc_complement_zero_term_actual_left)) * bc) + (pfc_right_zero_term_actual_left)))))) \/ (((exists pfc_gap_zero_term_actual_leftrightoutside. pfc_gap_zero_term_actual_leftrightoutside+(M)=(pfc_complement_zero_term_actual_left)) /\ (((pfc_right_zero_term_actual_left)=0))))) /\ (((z)=pfc_left_zero_term_actual_left*pfc_right_zero_term_actual_left)))))))) -> (z=0)
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro AB
  8. intro AC
  9. intro t
  10. intro i
  11. intro j
  12. intro z
  13. intro hpad
  14. intro hbound
  15. intro ht
  16. cases ht
  17. cases ht_witness
  18. cases ht_witness_witness
  19. cases ht_witness_witness_witness
  20. cases ht_witness_witness_witness_right
  21. cases ht_witness_witness_witness_right_right
  22. have hzero : x1=0
  23. specialize polynomial_zero_extended_entry_functional (AB)
  24. specialize polynomial_zero_extended_entry_functional (AC)
  25. specialize polynomial_zero_extended_entry_functional (t+L)
  26. specialize polynomial_zero_extended_entry_functional (j)
  27. specialize polynomial_zero_extended_entry_functional (x1)
  28. specialize polynomial_zero_extended_entry_functional (0)
  29. apply polynomial_zero_extended_entry_functional
  30. exact ht_witness_witness_witness_right_left
  31. specialize polynomial_zero_extended_left_pad_before (ab)
  32. specialize polynomial_zero_extended_left_pad_before (ac)
  33. specialize polynomial_zero_extended_left_pad_before (L)
  34. specialize polynomial_zero_extended_left_pad_before (t)
  35. specialize polynomial_zero_extended_left_pad_before (AB)
  36. specialize polynomial_zero_extended_left_pad_before (AC)
  37. specialize polynomial_zero_extended_left_pad_before (j)
  38. apply polynomial_zero_extended_left_pad_before
  39. exact hpad
  40. exact hbound
  41. trans x1*x2
  42. exact ht_witness_witness_witness_right_right_right
  43. rewrite hzero
  44. specialize mul_zero_left (x2)
  45. apply mul_zero_left
prime_field_convolution_coefficient_before_left_padding_left · unchanged support, not a new admission
forall p ab ac L bb bc M AB AC t i r. (~(p=0)) -> (((forall pfp_repeat_index_before_coefficient_pad_leftzeros. (exists pfa_gap_before_coefficient_pad_leftzerosindex. pfa_gap_before_coefficient_pad_leftzerosindex + S (pfp_repeat_index_before_coefficient_pad_leftzeros) = (t)) -> (((exists ff_h_pfp_before_coefficient_pad_leftzerosentry. ff_h_pfp_before_coefficient_pad_leftzerosentry + S (0) = S ((S (pfp_repeat_index_before_coefficient_pad_leftzeros)) * AC)) /\ exists ff_q_pfp_before_coefficient_pad_leftzerosentry. AB = ff_q_pfp_before_coefficient_pad_leftzerosentry * S ((S (pfp_repeat_index_before_coefficient_pad_leftzeros)) * AC) + (0)))) /\ ((forall pfrep_index_before_coefficient_pad_left pfrep_value_before_coefficient_pad_left. (exists pfa_gap_before_coefficient_pad_leftbound. pfa_gap_before_coefficient_pad_leftbound + S (pfrep_index_before_coefficient_pad_left) = (L)) -> (((exists ff_h_pfp_before_coefficient_pad_leftinput. ff_h_pfp_before_coefficient_pad_leftinput + S (pfrep_value_before_coefficient_pad_left) = S ((S (pfrep_index_before_coefficient_pad_left)) * ac)) /\ exists ff_q_pfp_before_coefficient_pad_leftinput. ab = ff_q_pfp_before_coefficient_pad_leftinput * S ((S (pfrep_index_before_coefficient_pad_left)) * ac) + (pfrep_value_before_coefficient_pad_left))) -> (((exists ff_h_pfp_before_coefficient_pad_leftoutput. ff_h_pfp_before_coefficient_pad_leftoutput + S (pfrep_value_before_coefficient_pad_left) = S ((S ((t)+pfrep_index_before_coefficient_pad_left)) * AC)) /\ exists ff_q_pfp_before_coefficient_pad_leftoutput. AB = ff_q_pfp_before_coefficient_pad_leftoutput * S ((S ((t)+pfrep_index_before_coefficient_pad_left)) * AC) + (pfrep_value_before_coefficient_pad_left))))))) -> (exists pfa_gap_before_coefficient_index_left. pfa_gap_before_coefficient_index_left + S (i) = (t)) -> (exists pfc_terms_code_before_coefficient_actual_left pfc_terms_scale_before_coefficient_actual_left pfc_natural_sum_before_coefficient_actual_left. ((forall pfc_index_before_coefficient_actual_leftdiagonal. (exists pfa_gap_before_coefficient_actual_leftdiagonalbound. pfa_gap_before_coefficient_actual_leftdiagonalbound + S (pfc_index_before_coefficient_actual_leftdiagonal) = (S (i))) -> exists pfc_value_before_coefficient_actual_leftdiagonal. ((((exists ff_h_pfp_before_coefficient_actual_leftdiagonalentry. ff_h_pfp_before_coefficient_actual_leftdiagonalentry + S (pfc_value_before_coefficient_actual_leftdiagonal) = S ((S (pfc_index_before_coefficient_actual_leftdiagonal)) * pfc_terms_scale_before_coefficient_actual_left)) /\ exists ff_q_pfp_before_coefficient_actual_leftdiagonalentry. pfc_terms_code_before_coefficient_actual_left = ff_q_pfp_before_coefficient_actual_leftdiagonalentry * S ((S (pfc_index_before_coefficient_actual_leftdiagonal)) * pfc_terms_scale_before_coefficient_actual_left) + (pfc_value_before_coefficient_actual_leftdiagonal))) /\ ((exists pfc_complement_before_coefficient_actual_leftdiagonalterm pfc_left_before_coefficient_actual_leftdiagonalterm pfc_right_before_coefficient_actual_leftdiagonalterm. (((pfc_index_before_coefficient_actual_leftdiagonal)+pfc_complement_before_coefficient_actual_leftdiagonalterm=(i)) /\ ((((((exists pfa_gap_before_coefficient_actual_leftdiagonaltermleftinside. pfa_gap_before_coefficient_actual_leftdiagonaltermleftinside + S (pfc_index_before_coefficient_actual_leftdiagonal) = (t+L)) /\ ((((exists ff_h_pfp_before_coefficient_actual_leftdiagonaltermleftentry. ff_h_pfp_before_coefficient_actual_leftdiagonaltermleftentry + S (pfc_left_before_coefficient_actual_leftdiagonalterm) = S ((S (pfc_index_before_coefficient_actual_leftdiagonal)) * AC)) /\ exists ff_q_pfp_before_coefficient_actual_leftdiagonaltermleftentry. AB = ff_q_pfp_before_coefficient_actual_leftdiagonaltermleftentry * S ((S (pfc_index_before_coefficient_actual_leftdiagonal)) * AC) + (pfc_left_before_coefficient_actual_leftdiagonalterm)))))) \/ (((exists pfc_gap_before_coefficient_actual_leftdiagonaltermleftoutside. pfc_gap_before_coefficient_actual_leftdiagonaltermleftoutside+(t+L)=(pfc_index_before_coefficient_actual_leftdiagonal)) /\ (((pfc_left_before_coefficient_actual_leftdiagonalterm)=0))))) /\ ((((((exists pfa_gap_before_coefficient_actual_leftdiagonaltermrightinside. pfa_gap_before_coefficient_actual_leftdiagonaltermrightinside + S (pfc_complement_before_coefficient_actual_leftdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_before_coefficient_actual_leftdiagonaltermrightentry. ff_h_pfp_before_coefficient_actual_leftdiagonaltermrightentry + S (pfc_right_before_coefficient_actual_leftdiagonalterm) = S ((S (pfc_complement_before_coefficient_actual_leftdiagonalterm)) * bc)) /\ exists ff_q_pfp_before_coefficient_actual_leftdiagonaltermrightentry. bb = ff_q_pfp_before_coefficient_actual_leftdiagonaltermrightentry * S ((S (pfc_complement_before_coefficient_actual_leftdiagonalterm)) * bc) + (pfc_right_before_coefficient_actual_leftdiagonalterm)))))) \/ (((exists pfc_gap_before_coefficient_actual_leftdiagonaltermrightoutside. pfc_gap_before_coefficient_actual_leftdiagonaltermrightoutside+(M)=(pfc_complement_before_coefficient_actual_leftdiagonalterm)) /\ (((pfc_right_before_coefficient_actual_leftdiagonalterm)=0))))) /\ (((pfc_value_before_coefficient_actual_leftdiagonal)=pfc_left_before_coefficient_actual_leftdiagonalterm*pfc_right_before_coefficient_actual_leftdiagonalterm))))))))))) /\ (((exists fs_u_pfc_before_coefficient_actual_leftsum fs_v_pfc_before_coefficient_actual_leftsum. ((((exists fs_h_pfc_before_coefficient_actual_leftsum_body_start. fs_h_pfc_before_coefficient_actual_leftsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_before_coefficient_actual_leftsum)) /\ exists fs_q_pfc_before_coefficient_actual_leftsum_body_start. fs_u_pfc_before_coefficient_actual_leftsum = fs_q_pfc_before_coefficient_actual_leftsum_body_start * S ((S (0)) * fs_v_pfc_before_coefficient_actual_leftsum) + (0))) /\ ((((exists fs_h_pfc_before_coefficient_actual_leftsum_body_terminal. fs_h_pfc_before_coefficient_actual_leftsum_body_terminal + S (pfc_natural_sum_before_coefficient_actual_left) = S ((S (S (i))) * fs_v_pfc_before_coefficient_actual_leftsum)) /\ exists fs_q_pfc_before_coefficient_actual_leftsum_body_terminal. fs_u_pfc_before_coefficient_actual_leftsum = fs_q_pfc_before_coefficient_actual_leftsum_body_terminal * S ((S (S (i))) * fs_v_pfc_before_coefficient_actual_leftsum) + (pfc_natural_sum_before_coefficient_actual_left))) /\ forall fs_i_pfc_before_coefficient_actual_leftsum_body_steps. (exists fs_lt_pfc_before_coefficient_actual_leftsum_body_steps_bound. fs_lt_pfc_before_coefficient_actual_leftsum_body_steps_bound + S fs_i_pfc_before_coefficient_actual_leftsum_body_steps = S (i)) -> exists fs_a_pfc_before_coefficient_actual_leftsum_body_steps fs_r_pfc_before_coefficient_actual_leftsum_body_steps fs_s_pfc_before_coefficient_actual_leftsum_body_steps. ((((exists fs_h_pfc_before_coefficient_actual_leftsum_body_steps_summand. fs_h_pfc_before_coefficient_actual_leftsum_body_steps_summand + S (fs_a_pfc_before_coefficient_actual_leftsum_body_steps) = S ((S (fs_i_pfc_before_coefficient_actual_leftsum_body_steps)) * pfc_terms_scale_before_coefficient_actual_left)) /\ exists fs_q_pfc_before_coefficient_actual_leftsum_body_steps_summand. pfc_terms_code_before_coefficient_actual_left = fs_q_pfc_before_coefficient_actual_leftsum_body_steps_summand * S ((S (fs_i_pfc_before_coefficient_actual_leftsum_body_steps)) * pfc_terms_scale_before_coefficient_actual_left) + (fs_a_pfc_before_coefficient_actual_leftsum_body_steps))) /\ ((((exists fs_h_pfc_before_coefficient_actual_leftsum_body_steps_partial. fs_h_pfc_before_coefficient_actual_leftsum_body_steps_partial + S (fs_r_pfc_before_coefficient_actual_leftsum_body_steps) = S ((S (fs_i_pfc_before_coefficient_actual_leftsum_body_steps)) * fs_v_pfc_before_coefficient_actual_leftsum)) /\ exists fs_q_pfc_before_coefficient_actual_leftsum_body_steps_partial. fs_u_pfc_before_coefficient_actual_leftsum = fs_q_pfc_before_coefficient_actual_leftsum_body_steps_partial * S ((S (fs_i_pfc_before_coefficient_actual_leftsum_body_steps)) * fs_v_pfc_before_coefficient_actual_leftsum) + (fs_r_pfc_before_coefficient_actual_leftsum_body_steps))) /\ ((((exists fs_h_pfc_before_coefficient_actual_leftsum_body_steps_successor. fs_h_pfc_before_coefficient_actual_leftsum_body_steps_successor + S (fs_s_pfc_before_coefficient_actual_leftsum_body_steps) = S ((S (S fs_i_pfc_before_coefficient_actual_leftsum_body_steps)) * fs_v_pfc_before_coefficient_actual_leftsum)) /\ exists fs_q_pfc_before_coefficient_actual_leftsum_body_steps_successor. fs_u_pfc_before_coefficient_actual_leftsum = fs_q_pfc_before_coefficient_actual_leftsum_body_steps_successor * S ((S (S fs_i_pfc_before_coefficient_actual_leftsum_body_steps)) * fs_v_pfc_before_coefficient_actual_leftsum) + (fs_s_pfc_before_coefficient_actual_leftsum_body_steps))) /\ fs_s_pfc_before_coefficient_actual_leftsum_body_steps = fs_r_pfc_before_coefficient_actual_leftsum_body_steps + fs_a_pfc_before_coefficient_actual_leftsum_body_steps)))))) /\ ((((exists pfa_gap_before_coefficient_actual_leftresiduebound. pfa_gap_before_coefficient_actual_leftresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_before_coefficient_actual_leftresiduecongruence pfa_offset_right_before_coefficient_actual_leftresiduecongruence. (pfc_natural_sum_before_coefficient_actual_left) + (p) * pfa_offset_left_before_coefficient_actual_leftresiduecongruence = (r) + (p) * pfa_offset_right_before_coefficient_actual_leftresiduecongruence))))))))) -> (r=0)
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro AB
  9. intro AC
  10. intro t
  11. intro i
  12. intro r
  13. intro hp
  14. intro hpad
  15. intro hi
  16. intro hc
  17. cases hc
  18. cases hc_witness
  19. cases hc_witness_witness
  20. cases hc_witness_witness_witness
  21. cases hc_witness_witness_witness_right
  22. have hz : forall pfp_repeat_index_before_coefficient_zero_diagonal_left. (exists pfa_gap_before_coefficient_zero_diagonal_leftindex. pfa_gap_before_coefficient_zero_diagonal_leftindex + S (pfp_repeat_index_before_coefficient_zero_diagonal_left) = (S i)) -> (((exists ff_h_pfp_before_coefficient_zero_diagonal_leftentry. ff_h_pfp_before_coefficient_zero_diagonal_leftentry + S (0) = S ((S (pfp_repeat_index_before_coefficient_zero_diagonal_left)) * x1)) /\ exists ff_q_pfp_before_coefficient_zero_diagonal_leftentry. x = ff_q_pfp_before_coefficient_zero_diagonal_leftentry * S ((S (pfp_repeat_index_before_coefficient_zero_diagonal_left)) * x1) + (0)))
  23. intro j
  24. intro hj
  25. have ht : exists z. ((((exists ff_h_pfp_before_coefficient_entry_left. ff_h_pfp_before_coefficient_entry_left + S (z) = S ((S (j)) * x1)) /\ exists ff_q_pfp_before_coefficient_entry_left. x = ff_q_pfp_before_coefficient_entry_left * S ((S (j)) * x1) + (z))) /\ ((exists pfc_complement_before_coefficient_term_left pfc_left_before_coefficient_term_left pfc_right_before_coefficient_term_left. (((j)+pfc_complement_before_coefficient_term_left=(i)) /\ ((((((exists pfa_gap_before_coefficient_term_leftleftinside. pfa_gap_before_coefficient_term_leftleftinside + S (j) = (t+L)) /\ ((((exists ff_h_pfp_before_coefficient_term_leftleftentry. ff_h_pfp_before_coefficient_term_leftleftentry + S (pfc_left_before_coefficient_term_left) = S ((S (j)) * AC)) /\ exists ff_q_pfp_before_coefficient_term_leftleftentry. AB = ff_q_pfp_before_coefficient_term_leftleftentry * S ((S (j)) * AC) + (pfc_left_before_coefficient_term_left)))))) \/ (((exists pfc_gap_before_coefficient_term_leftleftoutside. pfc_gap_before_coefficient_term_leftleftoutside+(t+L)=(j)) /\ (((pfc_left_before_coefficient_term_left)=0))))) /\ ((((((exists pfa_gap_before_coefficient_term_leftrightinside. pfa_gap_before_coefficient_term_leftrightinside + S (pfc_complement_before_coefficient_term_left) = (M)) /\ ((((exists ff_h_pfp_before_coefficient_term_leftrightentry. ff_h_pfp_before_coefficient_term_leftrightentry + S (pfc_right_before_coefficient_term_left) = S ((S (pfc_complement_before_coefficient_term_left)) * bc)) /\ exists ff_q_pfp_before_coefficient_term_leftrightentry. bb = ff_q_pfp_before_coefficient_term_leftrightentry * S ((S (pfc_complement_before_coefficient_term_left)) * bc) + (pfc_right_before_coefficient_term_left)))))) \/ (((exists pfc_gap_before_coefficient_term_leftrightoutside. pfc_gap_before_coefficient_term_leftrightoutside+(M)=(pfc_complement_before_coefficient_term_left)) /\ (((pfc_right_before_coefficient_term_left)=0))))) /\ (((z)=pfc_left_before_coefficient_term_left*pfc_right_before_coefficient_term_left))))))))))
  26. specialize hc_witness_witness_witness_left (j)
  27. apply hc_witness_witness_witness_left
  28. exact hj
  29. cases ht
  30. cases ht_witness
  31. have heq : x3=0
  32. specialize polynomial_diagonal_term_left_padding_zero_left (ab)
  33. specialize polynomial_diagonal_term_left_padding_zero_left (ac)
  34. specialize polynomial_diagonal_term_left_padding_zero_left (L)
  35. specialize polynomial_diagonal_term_left_padding_zero_left (bb)
  36. specialize polynomial_diagonal_term_left_padding_zero_left (bc)
  37. specialize polynomial_diagonal_term_left_padding_zero_left (M)
  38. specialize polynomial_diagonal_term_left_padding_zero_left (AB)
  39. specialize polynomial_diagonal_term_left_padding_zero_left (AC)
  40. specialize polynomial_diagonal_term_left_padding_zero_left (t)
  41. specialize polynomial_diagonal_term_left_padding_zero_left (i)
  42. specialize polynomial_diagonal_term_left_padding_zero_left (j)
  43. specialize polynomial_diagonal_term_left_padding_zero_left (x3)
  44. apply polynomial_diagonal_term_left_padding_zero_left
  45. exact hpad
  46. specialize le_trans (S j)
  47. specialize le_trans (S i)
  48. specialize le_trans (t)
  49. apply le_trans
  50. exact hj
  51. exact hi
  52. exact ht_witness_right
  53. rewrite heq at ht_witness_left
  54. rewrite heq at ht_witness_left
  55. exact ht_witness_left
  56. have hsum : x2=0
  57. trans (S i)*0
  58. specialize beta_repeat_sum_exact (x)
  59. specialize beta_repeat_sum_exact (x1)
  60. specialize beta_repeat_sum_exact (0)
  61. specialize beta_repeat_sum_exact (S i)
  62. specialize beta_repeat_sum_exact (x2)
  63. apply beta_repeat_sum_exact
  64. exact hz
  65. exact hc_witness_witness_witness_right_left
  66. simp
  67. rewrite hsum at hc_witness_witness_witness_right_right
  68. specialize prime_field_residue_bounded_value (p)
  69. specialize prime_field_residue_bounded_value (0)
  70. specialize prime_field_residue_bounded_value (r)
  71. apply prime_field_residue_bounded_value
  72. specialize one_le_of_ne_zero (p)
  73. apply one_le_of_ne_zero
  74. exact hp
  75. exact hc_witness_witness_witness_right_right
polynomial_diagonal_term_left_padding_left · unchanged support, not a new admission
forall ab ac L bb bc M AB AC t i j z. (((forall pfp_repeat_index_term_padding_leftzeros. (exists pfa_gap_term_padding_leftzerosindex. pfa_gap_term_padding_leftzerosindex + S (pfp_repeat_index_term_padding_leftzeros) = (t)) -> (((exists ff_h_pfp_term_padding_leftzerosentry. ff_h_pfp_term_padding_leftzerosentry + S (0) = S ((S (pfp_repeat_index_term_padding_leftzeros)) * AC)) /\ exists ff_q_pfp_term_padding_leftzerosentry. AB = ff_q_pfp_term_padding_leftzerosentry * S ((S (pfp_repeat_index_term_padding_leftzeros)) * AC) + (0)))) /\ ((forall pfrep_index_term_padding_left pfrep_value_term_padding_left. (exists pfa_gap_term_padding_leftbound. pfa_gap_term_padding_leftbound + S (pfrep_index_term_padding_left) = (L)) -> (((exists ff_h_pfp_term_padding_leftinput. ff_h_pfp_term_padding_leftinput + S (pfrep_value_term_padding_left) = S ((S (pfrep_index_term_padding_left)) * ac)) /\ exists ff_q_pfp_term_padding_leftinput. ab = ff_q_pfp_term_padding_leftinput * S ((S (pfrep_index_term_padding_left)) * ac) + (pfrep_value_term_padding_left))) -> (((exists ff_h_pfp_term_padding_leftoutput. ff_h_pfp_term_padding_leftoutput + S (pfrep_value_term_padding_left) = S ((S ((t)+pfrep_index_term_padding_left)) * AC)) /\ exists ff_q_pfp_term_padding_leftoutput. AB = ff_q_pfp_term_padding_leftoutput * S ((S ((t)+pfrep_index_term_padding_left)) * AC) + (pfrep_value_term_padding_left))))))) -> (exists pfc_complement_term_original_left pfc_left_term_original_left pfc_right_term_original_left. (((j)+pfc_complement_term_original_left=(i)) /\ ((((((exists pfa_gap_term_original_leftleftinside. pfa_gap_term_original_leftleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_original_leftleftentry. ff_h_pfp_term_original_leftleftentry + S (pfc_left_term_original_left) = S ((S (j)) * ac)) /\ exists ff_q_pfp_term_original_leftleftentry. ab = ff_q_pfp_term_original_leftleftentry * S ((S (j)) * ac) + (pfc_left_term_original_left)))))) \/ (((exists pfc_gap_term_original_leftleftoutside. pfc_gap_term_original_leftleftoutside+(L)=(j)) /\ (((pfc_left_term_original_left)=0))))) /\ ((((((exists pfa_gap_term_original_leftrightinside. pfa_gap_term_original_leftrightinside + S (pfc_complement_term_original_left) = (M)) /\ ((((exists ff_h_pfp_term_original_leftrightentry. ff_h_pfp_term_original_leftrightentry + S (pfc_right_term_original_left) = S ((S (pfc_complement_term_original_left)) * bc)) /\ exists ff_q_pfp_term_original_leftrightentry. bb = ff_q_pfp_term_original_leftrightentry * S ((S (pfc_complement_term_original_left)) * bc) + (pfc_right_term_original_left)))))) \/ (((exists pfc_gap_term_original_leftrightoutside. pfc_gap_term_original_leftrightoutside+(M)=(pfc_complement_term_original_left)) /\ (((pfc_right_term_original_left)=0))))) /\ (((z)=pfc_left_term_original_left*pfc_right_term_original_left)))))))) -> (exists pfc_complement_term_shifted_left pfc_left_term_shifted_left pfc_right_term_shifted_left. (((t+j)+pfc_complement_term_shifted_left=(t+i)) /\ ((((((exists pfa_gap_term_shifted_leftleftinside. pfa_gap_term_shifted_leftleftinside + S (t+j) = (t+L)) /\ ((((exists ff_h_pfp_term_shifted_leftleftentry. ff_h_pfp_term_shifted_leftleftentry + S (pfc_left_term_shifted_left) = S ((S (t+j)) * AC)) /\ exists ff_q_pfp_term_shifted_leftleftentry. AB = ff_q_pfp_term_shifted_leftleftentry * S ((S (t+j)) * AC) + (pfc_left_term_shifted_left)))))) \/ (((exists pfc_gap_term_shifted_leftleftoutside. pfc_gap_term_shifted_leftleftoutside+(t+L)=(t+j)) /\ (((pfc_left_term_shifted_left)=0))))) /\ ((((((exists pfa_gap_term_shifted_leftrightinside. pfa_gap_term_shifted_leftrightinside + S (pfc_complement_term_shifted_left) = (M)) /\ ((((exists ff_h_pfp_term_shifted_leftrightentry. ff_h_pfp_term_shifted_leftrightentry + S (pfc_right_term_shifted_left) = S ((S (pfc_complement_term_shifted_left)) * bc)) /\ exists ff_q_pfp_term_shifted_leftrightentry. bb = ff_q_pfp_term_shifted_leftrightentry * S ((S (pfc_complement_term_shifted_left)) * bc) + (pfc_right_term_shifted_left)))))) \/ (((exists pfc_gap_term_shifted_leftrightoutside. pfc_gap_term_shifted_leftrightoutside+(M)=(pfc_complement_term_shifted_left)) /\ (((pfc_right_term_shifted_left)=0))))) /\ (((z)=pfc_left_term_shifted_left*pfc_right_term_shifted_left))))))))
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro AB
  8. intro AC
  9. intro t
  10. intro i
  11. intro j
  12. intro z
  13. intro hp
  14. intro ht
  15. cases ht
  16. cases ht_witness
  17. cases ht_witness_witness
  18. cases ht_witness_witness_witness
  19. cases ht_witness_witness_witness_right
  20. cases ht_witness_witness_witness_right_right
  21. exists x
  22. exists x1
  23. exists x2
  24. split
  25. trans t+(j+x)
  26. apply add_assoc
  27. congr
  28. refl
  29. exact ht_witness_witness_witness_left
  30. split
  31. specialize polynomial_zero_extended_left_pad_shift (ab)
  32. specialize polynomial_zero_extended_left_pad_shift (ac)
  33. specialize polynomial_zero_extended_left_pad_shift (L)
  34. specialize polynomial_zero_extended_left_pad_shift (t)
  35. specialize polynomial_zero_extended_left_pad_shift (AB)
  36. specialize polynomial_zero_extended_left_pad_shift (AC)
  37. specialize polynomial_zero_extended_left_pad_shift (j)
  38. specialize polynomial_zero_extended_left_pad_shift (x1)
  39. apply polynomial_zero_extended_left_pad_shift
  40. exact hp
  41. exact ht_witness_witness_witness_right_left
  42. split
  43. exact ht_witness_witness_witness_right_right_left
  44. exact ht_witness_witness_witness_right_right_right
polynomial_diagonal_left_padding_left · unchanged support, not a new admission
forall ab ac L bb bc M AB AC t i db dc eb ec. (((forall pfp_repeat_index_diagonal_actual_padding_leftzeros. (exists pfa_gap_diagonal_actual_padding_leftzerosindex. pfa_gap_diagonal_actual_padding_leftzerosindex + S (pfp_repeat_index_diagonal_actual_padding_leftzeros) = (t)) -> (((exists ff_h_pfp_diagonal_actual_padding_leftzerosentry. ff_h_pfp_diagonal_actual_padding_leftzerosentry + S (0) = S ((S (pfp_repeat_index_diagonal_actual_padding_leftzeros)) * AC)) /\ exists ff_q_pfp_diagonal_actual_padding_leftzerosentry. AB = ff_q_pfp_diagonal_actual_padding_leftzerosentry * S ((S (pfp_repeat_index_diagonal_actual_padding_leftzeros)) * AC) + (0)))) /\ ((forall pfrep_index_diagonal_actual_padding_left pfrep_value_diagonal_actual_padding_left. (exists pfa_gap_diagonal_actual_padding_leftbound. pfa_gap_diagonal_actual_padding_leftbound + S (pfrep_index_diagonal_actual_padding_left) = (L)) -> (((exists ff_h_pfp_diagonal_actual_padding_leftinput. ff_h_pfp_diagonal_actual_padding_leftinput + S (pfrep_value_diagonal_actual_padding_left) = S ((S (pfrep_index_diagonal_actual_padding_left)) * ac)) /\ exists ff_q_pfp_diagonal_actual_padding_leftinput. ab = ff_q_pfp_diagonal_actual_padding_leftinput * S ((S (pfrep_index_diagonal_actual_padding_left)) * ac) + (pfrep_value_diagonal_actual_padding_left))) -> (((exists ff_h_pfp_diagonal_actual_padding_leftoutput. ff_h_pfp_diagonal_actual_padding_leftoutput + S (pfrep_value_diagonal_actual_padding_left) = S ((S ((t)+pfrep_index_diagonal_actual_padding_left)) * AC)) /\ exists ff_q_pfp_diagonal_actual_padding_leftoutput. AB = ff_q_pfp_diagonal_actual_padding_leftoutput * S ((S ((t)+pfrep_index_diagonal_actual_padding_left)) * AC) + (pfrep_value_diagonal_actual_padding_left))))))) -> (forall pfc_index_diagonal_pad_old_left. (exists pfa_gap_diagonal_pad_old_leftbound. pfa_gap_diagonal_pad_old_leftbound + S (pfc_index_diagonal_pad_old_left) = (S i)) -> exists pfc_value_diagonal_pad_old_left. ((((exists ff_h_pfp_diagonal_pad_old_leftentry. ff_h_pfp_diagonal_pad_old_leftentry + S (pfc_value_diagonal_pad_old_left) = S ((S (pfc_index_diagonal_pad_old_left)) * dc)) /\ exists ff_q_pfp_diagonal_pad_old_leftentry. db = ff_q_pfp_diagonal_pad_old_leftentry * S ((S (pfc_index_diagonal_pad_old_left)) * dc) + (pfc_value_diagonal_pad_old_left))) /\ ((exists pfc_complement_diagonal_pad_old_leftterm pfc_left_diagonal_pad_old_leftterm pfc_right_diagonal_pad_old_leftterm. (((pfc_index_diagonal_pad_old_left)+pfc_complement_diagonal_pad_old_leftterm=(i)) /\ ((((((exists pfa_gap_diagonal_pad_old_lefttermleftinside. pfa_gap_diagonal_pad_old_lefttermleftinside + S (pfc_index_diagonal_pad_old_left) = (L)) /\ ((((exists ff_h_pfp_diagonal_pad_old_lefttermleftentry. ff_h_pfp_diagonal_pad_old_lefttermleftentry + S (pfc_left_diagonal_pad_old_leftterm) = S ((S (pfc_index_diagonal_pad_old_left)) * ac)) /\ exists ff_q_pfp_diagonal_pad_old_lefttermleftentry. ab = ff_q_pfp_diagonal_pad_old_lefttermleftentry * S ((S (pfc_index_diagonal_pad_old_left)) * ac) + (pfc_left_diagonal_pad_old_leftterm)))))) \/ (((exists pfc_gap_diagonal_pad_old_lefttermleftoutside. pfc_gap_diagonal_pad_old_lefttermleftoutside+(L)=(pfc_index_diagonal_pad_old_left)) /\ (((pfc_left_diagonal_pad_old_leftterm)=0))))) /\ ((((((exists pfa_gap_diagonal_pad_old_lefttermrightinside. pfa_gap_diagonal_pad_old_lefttermrightinside + S (pfc_complement_diagonal_pad_old_leftterm) = (M)) /\ ((((exists ff_h_pfp_diagonal_pad_old_lefttermrightentry. ff_h_pfp_diagonal_pad_old_lefttermrightentry + S (pfc_right_diagonal_pad_old_leftterm) = S ((S (pfc_complement_diagonal_pad_old_leftterm)) * bc)) /\ exists ff_q_pfp_diagonal_pad_old_lefttermrightentry. bb = ff_q_pfp_diagonal_pad_old_lefttermrightentry * S ((S (pfc_complement_diagonal_pad_old_leftterm)) * bc) + (pfc_right_diagonal_pad_old_leftterm)))))) \/ (((exists pfc_gap_diagonal_pad_old_lefttermrightoutside. pfc_gap_diagonal_pad_old_lefttermrightoutside+(M)=(pfc_complement_diagonal_pad_old_leftterm)) /\ (((pfc_right_diagonal_pad_old_leftterm)=0))))) /\ (((pfc_value_diagonal_pad_old_left)=pfc_left_diagonal_pad_old_leftterm*pfc_right_diagonal_pad_old_leftterm))))))))))) -> (forall pfc_index_diagonal_pad_new_left. (exists pfa_gap_diagonal_pad_new_leftbound. pfa_gap_diagonal_pad_new_leftbound + S (pfc_index_diagonal_pad_new_left) = (S (t+i))) -> exists pfc_value_diagonal_pad_new_left. ((((exists ff_h_pfp_diagonal_pad_new_leftentry. ff_h_pfp_diagonal_pad_new_leftentry + S (pfc_value_diagonal_pad_new_left) = S ((S (pfc_index_diagonal_pad_new_left)) * ec)) /\ exists ff_q_pfp_diagonal_pad_new_leftentry. eb = ff_q_pfp_diagonal_pad_new_leftentry * S ((S (pfc_index_diagonal_pad_new_left)) * ec) + (pfc_value_diagonal_pad_new_left))) /\ ((exists pfc_complement_diagonal_pad_new_leftterm pfc_left_diagonal_pad_new_leftterm pfc_right_diagonal_pad_new_leftterm. (((pfc_index_diagonal_pad_new_left)+pfc_complement_diagonal_pad_new_leftterm=(t+i)) /\ ((((((exists pfa_gap_diagonal_pad_new_lefttermleftinside. pfa_gap_diagonal_pad_new_lefttermleftinside + S (pfc_index_diagonal_pad_new_left) = (t+L)) /\ ((((exists ff_h_pfp_diagonal_pad_new_lefttermleftentry. ff_h_pfp_diagonal_pad_new_lefttermleftentry + S (pfc_left_diagonal_pad_new_leftterm) = S ((S (pfc_index_diagonal_pad_new_left)) * AC)) /\ exists ff_q_pfp_diagonal_pad_new_lefttermleftentry. AB = ff_q_pfp_diagonal_pad_new_lefttermleftentry * S ((S (pfc_index_diagonal_pad_new_left)) * AC) + (pfc_left_diagonal_pad_new_leftterm)))))) \/ (((exists pfc_gap_diagonal_pad_new_lefttermleftoutside. pfc_gap_diagonal_pad_new_lefttermleftoutside+(t+L)=(pfc_index_diagonal_pad_new_left)) /\ (((pfc_left_diagonal_pad_new_leftterm)=0))))) /\ ((((((exists pfa_gap_diagonal_pad_new_lefttermrightinside. pfa_gap_diagonal_pad_new_lefttermrightinside + S (pfc_complement_diagonal_pad_new_leftterm) = (M)) /\ ((((exists ff_h_pfp_diagonal_pad_new_lefttermrightentry. ff_h_pfp_diagonal_pad_new_lefttermrightentry + S (pfc_right_diagonal_pad_new_leftterm) = S ((S (pfc_complement_diagonal_pad_new_leftterm)) * bc)) /\ exists ff_q_pfp_diagonal_pad_new_lefttermrightentry. bb = ff_q_pfp_diagonal_pad_new_lefttermrightentry * S ((S (pfc_complement_diagonal_pad_new_leftterm)) * bc) + (pfc_right_diagonal_pad_new_leftterm)))))) \/ (((exists pfc_gap_diagonal_pad_new_lefttermrightoutside. pfc_gap_diagonal_pad_new_lefttermrightoutside+(M)=(pfc_complement_diagonal_pad_new_leftterm)) /\ (((pfc_right_diagonal_pad_new_leftterm)=0))))) /\ (((pfc_value_diagonal_pad_new_left)=pfc_left_diagonal_pad_new_leftterm*pfc_right_diagonal_pad_new_leftterm))))))))))) -> (((forall pfp_repeat_index_diagonal_pad_result_leftzeros. (exists pfa_gap_diagonal_pad_result_leftzerosindex. pfa_gap_diagonal_pad_result_leftzerosindex + S (pfp_repeat_index_diagonal_pad_result_leftzeros) = (t)) -> (((exists ff_h_pfp_diagonal_pad_result_leftzerosentry. ff_h_pfp_diagonal_pad_result_leftzerosentry + S (0) = S ((S (pfp_repeat_index_diagonal_pad_result_leftzeros)) * ec)) /\ exists ff_q_pfp_diagonal_pad_result_leftzerosentry. eb = ff_q_pfp_diagonal_pad_result_leftzerosentry * S ((S (pfp_repeat_index_diagonal_pad_result_leftzeros)) * ec) + (0)))) /\ ((forall pfrep_index_diagonal_pad_result_left pfrep_value_diagonal_pad_result_left. (exists pfa_gap_diagonal_pad_result_leftbound. pfa_gap_diagonal_pad_result_leftbound + S (pfrep_index_diagonal_pad_result_left) = (S i)) -> (((exists ff_h_pfp_diagonal_pad_result_leftinput. ff_h_pfp_diagonal_pad_result_leftinput + S (pfrep_value_diagonal_pad_result_left) = S ((S (pfrep_index_diagonal_pad_result_left)) * dc)) /\ exists ff_q_pfp_diagonal_pad_result_leftinput. db = ff_q_pfp_diagonal_pad_result_leftinput * S ((S (pfrep_index_diagonal_pad_result_left)) * dc) + (pfrep_value_diagonal_pad_result_left))) -> (((exists ff_h_pfp_diagonal_pad_result_leftoutput. ff_h_pfp_diagonal_pad_result_leftoutput + S (pfrep_value_diagonal_pad_result_left) = S ((S ((t)+pfrep_index_diagonal_pad_result_left)) * ec)) /\ exists ff_q_pfp_diagonal_pad_result_leftoutput. eb = ff_q_pfp_diagonal_pad_result_leftoutput * S ((S ((t)+pfrep_index_diagonal_pad_result_left)) * ec) + (pfrep_value_diagonal_pad_result_left)))))))
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro AB
  8. intro AC
  9. intro t
  10. intro i
  11. intro db
  12. intro dc
  13. intro eb
  14. intro ec
  15. intro hpad
  16. intro hold
  17. intro hnew
  18. split
  19. intro j
  20. intro hj
  21. have hv : exists z. ((((exists ff_h_pfp_diagonal_zero_entry. ff_h_pfp_diagonal_zero_entry + S (z) = S ((S (j)) * ec)) /\ exists ff_q_pfp_diagonal_zero_entry. eb = ff_q_pfp_diagonal_zero_entry * S ((S (j)) * ec) + (z))) /\ ((exists pfc_complement_diagonal_zero_term pfc_left_diagonal_zero_term pfc_right_diagonal_zero_term. (((j)+pfc_complement_diagonal_zero_term=(t+i)) /\ ((((((exists pfa_gap_diagonal_zero_termleftinside. pfa_gap_diagonal_zero_termleftinside + S (j) = (t+L)) /\ ((((exists ff_h_pfp_diagonal_zero_termleftentry. ff_h_pfp_diagonal_zero_termleftentry + S (pfc_left_diagonal_zero_term) = S ((S (j)) * AC)) /\ exists ff_q_pfp_diagonal_zero_termleftentry. AB = ff_q_pfp_diagonal_zero_termleftentry * S ((S (j)) * AC) + (pfc_left_diagonal_zero_term)))))) \/ (((exists pfc_gap_diagonal_zero_termleftoutside. pfc_gap_diagonal_zero_termleftoutside+(t+L)=(j)) /\ (((pfc_left_diagonal_zero_term)=0))))) /\ ((((((exists pfa_gap_diagonal_zero_termrightinside. pfa_gap_diagonal_zero_termrightinside + S (pfc_complement_diagonal_zero_term) = (M)) /\ ((((exists ff_h_pfp_diagonal_zero_termrightentry. ff_h_pfp_diagonal_zero_termrightentry + S (pfc_right_diagonal_zero_term) = S ((S (pfc_complement_diagonal_zero_term)) * bc)) /\ exists ff_q_pfp_diagonal_zero_termrightentry. bb = ff_q_pfp_diagonal_zero_termrightentry * S ((S (pfc_complement_diagonal_zero_term)) * bc) + (pfc_right_diagonal_zero_term)))))) \/ (((exists pfc_gap_diagonal_zero_termrightoutside. pfc_gap_diagonal_zero_termrightoutside+(M)=(pfc_complement_diagonal_zero_term)) /\ (((pfc_right_diagonal_zero_term)=0))))) /\ (((z)=pfc_left_diagonal_zero_term*pfc_right_diagonal_zero_term))))))))))
  22. specialize hnew (j)
  23. apply hnew
  24. specialize le_trans (S j)
  25. specialize le_trans (t)
  26. specialize le_trans (S (t+i))
  27. apply le_trans
  28. exact hj
  29. specialize le_succ (t)
  30. specialize le_succ (t+i)
  31. apply le_succ
  32. specialize le_add_right (t)
  33. specialize le_add_right (i)
  34. apply le_add_right
  35. cases hv
  36. cases hv_witness
  37. have hz : x=0
  38. specialize polynomial_diagonal_term_left_padding_zero_left (ab)
  39. specialize polynomial_diagonal_term_left_padding_zero_left (ac)
  40. specialize polynomial_diagonal_term_left_padding_zero_left (L)
  41. specialize polynomial_diagonal_term_left_padding_zero_left (bb)
  42. specialize polynomial_diagonal_term_left_padding_zero_left (bc)
  43. specialize polynomial_diagonal_term_left_padding_zero_left (M)
  44. specialize polynomial_diagonal_term_left_padding_zero_left (AB)
  45. specialize polynomial_diagonal_term_left_padding_zero_left (AC)
  46. specialize polynomial_diagonal_term_left_padding_zero_left (t)
  47. specialize polynomial_diagonal_term_left_padding_zero_left (t+i)
  48. specialize polynomial_diagonal_term_left_padding_zero_left (j)
  49. specialize polynomial_diagonal_term_left_padding_zero_left (x)
  50. apply polynomial_diagonal_term_left_padding_zero_left
  51. exact hpad
  52. exact hj
  53. exact hv_witness_right
  54. rewrite hz at hv_witness_left
  55. rewrite hz at hv_witness_left
  56. exact hv_witness_left
  57. intro j
  58. intro a
  59. intro hj
  60. intro ha
  61. have hterm : exists pfc_complement_diagonal_copy_old pfc_left_diagonal_copy_old pfc_right_diagonal_copy_old. (((j)+pfc_complement_diagonal_copy_old=(i)) /\ ((((((exists pfa_gap_diagonal_copy_oldleftinside. pfa_gap_diagonal_copy_oldleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_diagonal_copy_oldleftentry. ff_h_pfp_diagonal_copy_oldleftentry + S (pfc_left_diagonal_copy_old) = S ((S (j)) * ac)) /\ exists ff_q_pfp_diagonal_copy_oldleftentry. ab = ff_q_pfp_diagonal_copy_oldleftentry * S ((S (j)) * ac) + (pfc_left_diagonal_copy_old)))))) \/ (((exists pfc_gap_diagonal_copy_oldleftoutside. pfc_gap_diagonal_copy_oldleftoutside+(L)=(j)) /\ (((pfc_left_diagonal_copy_old)=0))))) /\ ((((((exists pfa_gap_diagonal_copy_oldrightinside. pfa_gap_diagonal_copy_oldrightinside + S (pfc_complement_diagonal_copy_old) = (M)) /\ ((((exists ff_h_pfp_diagonal_copy_oldrightentry. ff_h_pfp_diagonal_copy_oldrightentry + S (pfc_right_diagonal_copy_old) = S ((S (pfc_complement_diagonal_copy_old)) * bc)) /\ exists ff_q_pfp_diagonal_copy_oldrightentry. bb = ff_q_pfp_diagonal_copy_oldrightentry * S ((S (pfc_complement_diagonal_copy_old)) * bc) + (pfc_right_diagonal_copy_old)))))) \/ (((exists pfc_gap_diagonal_copy_oldrightoutside. pfc_gap_diagonal_copy_oldrightoutside+(M)=(pfc_complement_diagonal_copy_old)) /\ (((pfc_right_diagonal_copy_old)=0))))) /\ (((a)=pfc_left_diagonal_copy_old*pfc_right_diagonal_copy_old)))))))
  62. specialize polynomial_diagonal_prefix_entry (ab)
  63. specialize polynomial_diagonal_prefix_entry (ac)
  64. specialize polynomial_diagonal_prefix_entry (L)
  65. specialize polynomial_diagonal_prefix_entry (bb)
  66. specialize polynomial_diagonal_prefix_entry (bc)
  67. specialize polynomial_diagonal_prefix_entry (M)
  68. specialize polynomial_diagonal_prefix_entry (i)
  69. specialize polynomial_diagonal_prefix_entry (db)
  70. specialize polynomial_diagonal_prefix_entry (dc)
  71. specialize polynomial_diagonal_prefix_entry (S i)
  72. specialize polynomial_diagonal_prefix_entry (j)
  73. specialize polynomial_diagonal_prefix_entry (a)
  74. apply polynomial_diagonal_prefix_entry
  75. exact hold
  76. exact hj
  77. exact ha
  78. have hv : exists z. ((((exists ff_h_pfp_diagonal_copy_entry. ff_h_pfp_diagonal_copy_entry + S (z) = S ((S (t+j)) * ec)) /\ exists ff_q_pfp_diagonal_copy_entry. eb = ff_q_pfp_diagonal_copy_entry * S ((S (t+j)) * ec) + (z))) /\ ((exists pfc_complement_diagonal_copy_actual pfc_left_diagonal_copy_actual pfc_right_diagonal_copy_actual. (((t+j)+pfc_complement_diagonal_copy_actual=(t+i)) /\ ((((((exists pfa_gap_diagonal_copy_actualleftinside. pfa_gap_diagonal_copy_actualleftinside + S (t+j) = (t+L)) /\ ((((exists ff_h_pfp_diagonal_copy_actualleftentry. ff_h_pfp_diagonal_copy_actualleftentry + S (pfc_left_diagonal_copy_actual) = S ((S (t+j)) * AC)) /\ exists ff_q_pfp_diagonal_copy_actualleftentry. AB = ff_q_pfp_diagonal_copy_actualleftentry * S ((S (t+j)) * AC) + (pfc_left_diagonal_copy_actual)))))) \/ (((exists pfc_gap_diagonal_copy_actualleftoutside. pfc_gap_diagonal_copy_actualleftoutside+(t+L)=(t+j)) /\ (((pfc_left_diagonal_copy_actual)=0))))) /\ ((((((exists pfa_gap_diagonal_copy_actualrightinside. pfa_gap_diagonal_copy_actualrightinside + S (pfc_complement_diagonal_copy_actual) = (M)) /\ ((((exists ff_h_pfp_diagonal_copy_actualrightentry. ff_h_pfp_diagonal_copy_actualrightentry + S (pfc_right_diagonal_copy_actual) = S ((S (pfc_complement_diagonal_copy_actual)) * bc)) /\ exists ff_q_pfp_diagonal_copy_actualrightentry. bb = ff_q_pfp_diagonal_copy_actualrightentry * S ((S (pfc_complement_diagonal_copy_actual)) * bc) + (pfc_right_diagonal_copy_actual)))))) \/ (((exists pfc_gap_diagonal_copy_actualrightoutside. pfc_gap_diagonal_copy_actualrightoutside+(M)=(pfc_complement_diagonal_copy_actual)) /\ (((pfc_right_diagonal_copy_actual)=0))))) /\ (((z)=pfc_left_diagonal_copy_actual*pfc_right_diagonal_copy_actual))))))))))
  79. specialize hnew (t+j)
  80. apply hnew
  81. specialize succ_le_succ (t+j)
  82. specialize succ_le_succ (t+i)
  83. apply succ_le_succ
  84. specialize add_le_add_left (j)
  85. specialize add_le_add_left (i)
  86. specialize add_le_add_left (t)
  87. apply add_le_add_left
  88. specialize le_of_succ_le_succ (j)
  89. specialize le_of_succ_le_succ (i)
  90. apply le_of_succ_le_succ
  91. exact hj
  92. cases hv
  93. cases hv_witness
  94. have heq : x=a
  95. specialize polynomial_diagonal_term_functional (AB)
  96. specialize polynomial_diagonal_term_functional (AC)
  97. specialize polynomial_diagonal_term_functional (t+L)
  98. specialize polynomial_diagonal_term_functional (bb)
  99. specialize polynomial_diagonal_term_functional (bc)
  100. specialize polynomial_diagonal_term_functional (M)
  101. specialize polynomial_diagonal_term_functional (t+i)
  102. specialize polynomial_diagonal_term_functional (t+j)
  103. specialize polynomial_diagonal_term_functional (x)
  104. specialize polynomial_diagonal_term_functional (a)
  105. apply polynomial_diagonal_term_functional
  106. exact hv_witness_right
  107. specialize polynomial_diagonal_term_left_padding_left (ab)
  108. specialize polynomial_diagonal_term_left_padding_left (ac)
  109. specialize polynomial_diagonal_term_left_padding_left (L)
  110. specialize polynomial_diagonal_term_left_padding_left (bb)
  111. specialize polynomial_diagonal_term_left_padding_left (bc)
  112. specialize polynomial_diagonal_term_left_padding_left (M)
  113. specialize polynomial_diagonal_term_left_padding_left (AB)
  114. specialize polynomial_diagonal_term_left_padding_left (AC)
  115. specialize polynomial_diagonal_term_left_padding_left (t)
  116. specialize polynomial_diagonal_term_left_padding_left (i)
  117. specialize polynomial_diagonal_term_left_padding_left (j)
  118. specialize polynomial_diagonal_term_left_padding_left (a)
  119. apply polynomial_diagonal_term_left_padding_left
  120. exact hpad
  121. exact hterm
  122. rewrite heq at hv_witness_left
  123. rewrite heq at hv_witness_left
  124. exact hv_witness_left
polynomial_left_pad_natural_sum_invariant · unchanged support, not a new admission
forall b c B C t L n m. (((forall pfp_repeat_index_sum_pad_datazeros. (exists pfa_gap_sum_pad_datazerosindex. pfa_gap_sum_pad_datazerosindex + S (pfp_repeat_index_sum_pad_datazeros) = (t)) -> (((exists ff_h_pfp_sum_pad_datazerosentry. ff_h_pfp_sum_pad_datazerosentry + S (0) = S ((S (pfp_repeat_index_sum_pad_datazeros)) * C)) /\ exists ff_q_pfp_sum_pad_datazerosentry. B = ff_q_pfp_sum_pad_datazerosentry * S ((S (pfp_repeat_index_sum_pad_datazeros)) * C) + (0)))) /\ ((forall pfrep_index_sum_pad_data pfrep_value_sum_pad_data. (exists pfa_gap_sum_pad_databound. pfa_gap_sum_pad_databound + S (pfrep_index_sum_pad_data) = (L)) -> (((exists ff_h_pfp_sum_pad_datainput. ff_h_pfp_sum_pad_datainput + S (pfrep_value_sum_pad_data) = S ((S (pfrep_index_sum_pad_data)) * c)) /\ exists ff_q_pfp_sum_pad_datainput. b = ff_q_pfp_sum_pad_datainput * S ((S (pfrep_index_sum_pad_data)) * c) + (pfrep_value_sum_pad_data))) -> (((exists ff_h_pfp_sum_pad_dataoutput. ff_h_pfp_sum_pad_dataoutput + S (pfrep_value_sum_pad_data) = S ((S ((t)+pfrep_index_sum_pad_data)) * C)) /\ exists ff_q_pfp_sum_pad_dataoutput. B = ff_q_pfp_sum_pad_dataoutput * S ((S ((t)+pfrep_index_sum_pad_data)) * C) + (pfrep_value_sum_pad_data))))))) -> (exists fs_u_pfc_sum_pad_original fs_v_pfc_sum_pad_original. ((((exists fs_h_pfc_sum_pad_original_body_start. fs_h_pfc_sum_pad_original_body_start + S (0) = S ((S (0)) * fs_v_pfc_sum_pad_original)) /\ exists fs_q_pfc_sum_pad_original_body_start. fs_u_pfc_sum_pad_original = fs_q_pfc_sum_pad_original_body_start * S ((S (0)) * fs_v_pfc_sum_pad_original) + (0))) /\ ((((exists fs_h_pfc_sum_pad_original_body_terminal. fs_h_pfc_sum_pad_original_body_terminal + S (n) = S ((S (L)) * fs_v_pfc_sum_pad_original)) /\ exists fs_q_pfc_sum_pad_original_body_terminal. fs_u_pfc_sum_pad_original = fs_q_pfc_sum_pad_original_body_terminal * S ((S (L)) * fs_v_pfc_sum_pad_original) + (n))) /\ forall fs_i_pfc_sum_pad_original_body_steps. (exists fs_lt_pfc_sum_pad_original_body_steps_bound. fs_lt_pfc_sum_pad_original_body_steps_bound + S fs_i_pfc_sum_pad_original_body_steps = L) -> exists fs_a_pfc_sum_pad_original_body_steps fs_r_pfc_sum_pad_original_body_steps fs_s_pfc_sum_pad_original_body_steps. ((((exists fs_h_pfc_sum_pad_original_body_steps_summand. fs_h_pfc_sum_pad_original_body_steps_summand + S (fs_a_pfc_sum_pad_original_body_steps) = S ((S (fs_i_pfc_sum_pad_original_body_steps)) * c)) /\ exists fs_q_pfc_sum_pad_original_body_steps_summand. b = fs_q_pfc_sum_pad_original_body_steps_summand * S ((S (fs_i_pfc_sum_pad_original_body_steps)) * c) + (fs_a_pfc_sum_pad_original_body_steps))) /\ ((((exists fs_h_pfc_sum_pad_original_body_steps_partial. fs_h_pfc_sum_pad_original_body_steps_partial + S (fs_r_pfc_sum_pad_original_body_steps) = S ((S (fs_i_pfc_sum_pad_original_body_steps)) * fs_v_pfc_sum_pad_original)) /\ exists fs_q_pfc_sum_pad_original_body_steps_partial. fs_u_pfc_sum_pad_original = fs_q_pfc_sum_pad_original_body_steps_partial * S ((S (fs_i_pfc_sum_pad_original_body_steps)) * fs_v_pfc_sum_pad_original) + (fs_r_pfc_sum_pad_original_body_steps))) /\ ((((exists fs_h_pfc_sum_pad_original_body_steps_successor. fs_h_pfc_sum_pad_original_body_steps_successor + S (fs_s_pfc_sum_pad_original_body_steps) = S ((S (S fs_i_pfc_sum_pad_original_body_steps)) * fs_v_pfc_sum_pad_original)) /\ exists fs_q_pfc_sum_pad_original_body_steps_successor. fs_u_pfc_sum_pad_original = fs_q_pfc_sum_pad_original_body_steps_successor * S ((S (S fs_i_pfc_sum_pad_original_body_steps)) * fs_v_pfc_sum_pad_original) + (fs_s_pfc_sum_pad_original_body_steps))) /\ fs_s_pfc_sum_pad_original_body_steps = fs_r_pfc_sum_pad_original_body_steps + fs_a_pfc_sum_pad_original_body_steps)))))) -> (exists fs_u_pfc_sum_pad_actual fs_v_pfc_sum_pad_actual. ((((exists fs_h_pfc_sum_pad_actual_body_start. fs_h_pfc_sum_pad_actual_body_start + S (0) = S ((S (0)) * fs_v_pfc_sum_pad_actual)) /\ exists fs_q_pfc_sum_pad_actual_body_start. fs_u_pfc_sum_pad_actual = fs_q_pfc_sum_pad_actual_body_start * S ((S (0)) * fs_v_pfc_sum_pad_actual) + (0))) /\ ((((exists fs_h_pfc_sum_pad_actual_body_terminal. fs_h_pfc_sum_pad_actual_body_terminal + S (m) = S ((S (t+L)) * fs_v_pfc_sum_pad_actual)) /\ exists fs_q_pfc_sum_pad_actual_body_terminal. fs_u_pfc_sum_pad_actual = fs_q_pfc_sum_pad_actual_body_terminal * S ((S (t+L)) * fs_v_pfc_sum_pad_actual) + (m))) /\ forall fs_i_pfc_sum_pad_actual_body_steps. (exists fs_lt_pfc_sum_pad_actual_body_steps_bound. fs_lt_pfc_sum_pad_actual_body_steps_bound + S fs_i_pfc_sum_pad_actual_body_steps = t+L) -> exists fs_a_pfc_sum_pad_actual_body_steps fs_r_pfc_sum_pad_actual_body_steps fs_s_pfc_sum_pad_actual_body_steps. ((((exists fs_h_pfc_sum_pad_actual_body_steps_summand. fs_h_pfc_sum_pad_actual_body_steps_summand + S (fs_a_pfc_sum_pad_actual_body_steps) = S ((S (fs_i_pfc_sum_pad_actual_body_steps)) * C)) /\ exists fs_q_pfc_sum_pad_actual_body_steps_summand. B = fs_q_pfc_sum_pad_actual_body_steps_summand * S ((S (fs_i_pfc_sum_pad_actual_body_steps)) * C) + (fs_a_pfc_sum_pad_actual_body_steps))) /\ ((((exists fs_h_pfc_sum_pad_actual_body_steps_partial. fs_h_pfc_sum_pad_actual_body_steps_partial + S (fs_r_pfc_sum_pad_actual_body_steps) = S ((S (fs_i_pfc_sum_pad_actual_body_steps)) * fs_v_pfc_sum_pad_actual)) /\ exists fs_q_pfc_sum_pad_actual_body_steps_partial. fs_u_pfc_sum_pad_actual = fs_q_pfc_sum_pad_actual_body_steps_partial * S ((S (fs_i_pfc_sum_pad_actual_body_steps)) * fs_v_pfc_sum_pad_actual) + (fs_r_pfc_sum_pad_actual_body_steps))) /\ ((((exists fs_h_pfc_sum_pad_actual_body_steps_successor. fs_h_pfc_sum_pad_actual_body_steps_successor + S (fs_s_pfc_sum_pad_actual_body_steps) = S ((S (S fs_i_pfc_sum_pad_actual_body_steps)) * fs_v_pfc_sum_pad_actual)) /\ exists fs_q_pfc_sum_pad_actual_body_steps_successor. fs_u_pfc_sum_pad_actual = fs_q_pfc_sum_pad_actual_body_steps_successor * S ((S (S fs_i_pfc_sum_pad_actual_body_steps)) * fs_v_pfc_sum_pad_actual) + (fs_s_pfc_sum_pad_actual_body_steps))) /\ fs_s_pfc_sum_pad_actual_body_steps = fs_r_pfc_sum_pad_actual_body_steps + fs_a_pfc_sum_pad_actual_body_steps)))))) -> (m=n)
  1. intro b
  2. intro c
  3. intro B
  4. intro C
  5. intro t
  6. induction L
  7. intro n
  8. intro m
  9. intro hpad
  10. intro hs
  11. intro ht
  12. cases hpad
  13. have hn : n=0
  14. specialize beta_sum_zero (b)
  15. specialize beta_sum_zero (c)
  16. specialize beta_sum_zero (n)
  17. apply beta_sum_zero
  18. exact hs
  19. have hlength : t+0=t
  20. simp
  21. rewrite hlength at ht
  22. rewrite hlength at ht
  23. rewrite hlength at ht
  24. trans t*0
  25. specialize beta_repeat_sum_exact (B)
  26. specialize beta_repeat_sum_exact (C)
  27. specialize beta_repeat_sum_exact (0)
  28. specialize beta_repeat_sum_exact (t)
  29. specialize beta_repeat_sum_exact (m)
  30. apply beta_repeat_sum_exact
  31. exact hpad_left
  32. exact ht
  33. trans 0
  34. simp
  35. symm
  36. exact hn
  37. intro n
  38. intro m
  39. intro hpad
  40. intro hs
  41. intro ht
  42. cases hpad
  43. have hp : ((forall pfp_repeat_index_sum_pad_prefixzeros. (exists pfa_gap_sum_pad_prefixzerosindex. pfa_gap_sum_pad_prefixzerosindex + S (pfp_repeat_index_sum_pad_prefixzeros) = (t)) -> (((exists ff_h_pfp_sum_pad_prefixzerosentry. ff_h_pfp_sum_pad_prefixzerosentry + S (0) = S ((S (pfp_repeat_index_sum_pad_prefixzeros)) * C)) /\ exists ff_q_pfp_sum_pad_prefixzerosentry. B = ff_q_pfp_sum_pad_prefixzerosentry * S ((S (pfp_repeat_index_sum_pad_prefixzeros)) * C) + (0)))) /\ ((forall pfrep_index_sum_pad_prefix pfrep_value_sum_pad_prefix. (exists pfa_gap_sum_pad_prefixbound. pfa_gap_sum_pad_prefixbound + S (pfrep_index_sum_pad_prefix) = (L)) -> (((exists ff_h_pfp_sum_pad_prefixinput. ff_h_pfp_sum_pad_prefixinput + S (pfrep_value_sum_pad_prefix) = S ((S (pfrep_index_sum_pad_prefix)) * c)) /\ exists ff_q_pfp_sum_pad_prefixinput. b = ff_q_pfp_sum_pad_prefixinput * S ((S (pfrep_index_sum_pad_prefix)) * c) + (pfrep_value_sum_pad_prefix))) -> (((exists ff_h_pfp_sum_pad_prefixoutput. ff_h_pfp_sum_pad_prefixoutput + S (pfrep_value_sum_pad_prefix) = S ((S ((t)+pfrep_index_sum_pad_prefix)) * C)) /\ exists ff_q_pfp_sum_pad_prefixoutput. B = ff_q_pfp_sum_pad_prefixoutput * S ((S ((t)+pfrep_index_sum_pad_prefix)) * C) + (pfrep_value_sum_pad_prefix))))))
  44. split
  45. exact hpad_left
  46. intro i
  47. intro a
  48. intro hi
  49. intro ha
  50. specialize hpad_right (i)
  51. specialize hpad_right (a)
  52. apply hpad_right
  53. specialize le_succ (S i)
  54. specialize le_succ (L)
  55. apply le_succ
  56. exact hi
  57. exact ha
  58. have hfirst : exists a u. ((((exists ff_h_pfp_sum_pad_firstentry. ff_h_pfp_sum_pad_firstentry + S (a) = S ((S (L)) * c)) /\ exists ff_q_pfp_sum_pad_firstentry. b = ff_q_pfp_sum_pad_firstentry * S ((S (L)) * c) + (a))) /\ (((exists fs_u_pfc_sum_pad_firstprefix fs_v_pfc_sum_pad_firstprefix. ((((exists fs_h_pfc_sum_pad_firstprefix_body_start. fs_h_pfc_sum_pad_firstprefix_body_start + S (0) = S ((S (0)) * fs_v_pfc_sum_pad_firstprefix)) /\ exists fs_q_pfc_sum_pad_firstprefix_body_start. fs_u_pfc_sum_pad_firstprefix = fs_q_pfc_sum_pad_firstprefix_body_start * S ((S (0)) * fs_v_pfc_sum_pad_firstprefix) + (0))) /\ ((((exists fs_h_pfc_sum_pad_firstprefix_body_terminal. fs_h_pfc_sum_pad_firstprefix_body_terminal + S (u) = S ((S (L)) * fs_v_pfc_sum_pad_firstprefix)) /\ exists fs_q_pfc_sum_pad_firstprefix_body_terminal. fs_u_pfc_sum_pad_firstprefix = fs_q_pfc_sum_pad_firstprefix_body_terminal * S ((S (L)) * fs_v_pfc_sum_pad_firstprefix) + (u))) /\ forall fs_i_pfc_sum_pad_firstprefix_body_steps. (exists fs_lt_pfc_sum_pad_firstprefix_body_steps_bound. fs_lt_pfc_sum_pad_firstprefix_body_steps_bound + S fs_i_pfc_sum_pad_firstprefix_body_steps = L) -> exists fs_a_pfc_sum_pad_firstprefix_body_steps fs_r_pfc_sum_pad_firstprefix_body_steps fs_s_pfc_sum_pad_firstprefix_body_steps. ((((exists fs_h_pfc_sum_pad_firstprefix_body_steps_summand. fs_h_pfc_sum_pad_firstprefix_body_steps_summand + S (fs_a_pfc_sum_pad_firstprefix_body_steps) = S ((S (fs_i_pfc_sum_pad_firstprefix_body_steps)) * c)) /\ exists fs_q_pfc_sum_pad_firstprefix_body_steps_summand. b = fs_q_pfc_sum_pad_firstprefix_body_steps_summand * S ((S (fs_i_pfc_sum_pad_firstprefix_body_steps)) * c) + (fs_a_pfc_sum_pad_firstprefix_body_steps))) /\ ((((exists fs_h_pfc_sum_pad_firstprefix_body_steps_partial. fs_h_pfc_sum_pad_firstprefix_body_steps_partial + S (fs_r_pfc_sum_pad_firstprefix_body_steps) = S ((S (fs_i_pfc_sum_pad_firstprefix_body_steps)) * fs_v_pfc_sum_pad_firstprefix)) /\ exists fs_q_pfc_sum_pad_firstprefix_body_steps_partial. fs_u_pfc_sum_pad_firstprefix = fs_q_pfc_sum_pad_firstprefix_body_steps_partial * S ((S (fs_i_pfc_sum_pad_firstprefix_body_steps)) * fs_v_pfc_sum_pad_firstprefix) + (fs_r_pfc_sum_pad_firstprefix_body_steps))) /\ ((((exists fs_h_pfc_sum_pad_firstprefix_body_steps_successor. fs_h_pfc_sum_pad_firstprefix_body_steps_successor + S (fs_s_pfc_sum_pad_firstprefix_body_steps) = S ((S (S fs_i_pfc_sum_pad_firstprefix_body_steps)) * fs_v_pfc_sum_pad_firstprefix)) /\ exists fs_q_pfc_sum_pad_firstprefix_body_steps_successor. fs_u_pfc_sum_pad_firstprefix = fs_q_pfc_sum_pad_firstprefix_body_steps_successor * S ((S (S fs_i_pfc_sum_pad_firstprefix_body_steps)) * fs_v_pfc_sum_pad_firstprefix) + (fs_s_pfc_sum_pad_firstprefix_body_steps))) /\ fs_s_pfc_sum_pad_firstprefix_body_steps = fs_r_pfc_sum_pad_firstprefix_body_steps + fs_a_pfc_sum_pad_firstprefix_body_steps)))))) /\ (((n)=u+a)))))
  59. specialize beta_sum_succ_decompose (b)
  60. specialize beta_sum_succ_decompose (c)
  61. specialize beta_sum_succ_decompose (L)
  62. specialize beta_sum_succ_decompose (n)
  63. apply beta_sum_succ_decompose
  64. exact hs
  65. cases hfirst
  66. cases hfirst_witness
  67. cases hfirst_witness_witness
  68. cases hfirst_witness_witness_right
  69. have hlength : t+S L=S (t+L)
  70. simp
  71. rewrite hlength at ht
  72. rewrite hlength at ht
  73. rewrite hlength at ht
  74. have hsecond : exists a u. ((((exists ff_h_pfp_sum_pad_secondentry. ff_h_pfp_sum_pad_secondentry + S (a) = S ((S (t+L)) * C)) /\ exists ff_q_pfp_sum_pad_secondentry. B = ff_q_pfp_sum_pad_secondentry * S ((S (t+L)) * C) + (a))) /\ (((exists fs_u_pfc_sum_pad_secondprefix fs_v_pfc_sum_pad_secondprefix. ((((exists fs_h_pfc_sum_pad_secondprefix_body_start. fs_h_pfc_sum_pad_secondprefix_body_start + S (0) = S ((S (0)) * fs_v_pfc_sum_pad_secondprefix)) /\ exists fs_q_pfc_sum_pad_secondprefix_body_start. fs_u_pfc_sum_pad_secondprefix = fs_q_pfc_sum_pad_secondprefix_body_start * S ((S (0)) * fs_v_pfc_sum_pad_secondprefix) + (0))) /\ ((((exists fs_h_pfc_sum_pad_secondprefix_body_terminal. fs_h_pfc_sum_pad_secondprefix_body_terminal + S (u) = S ((S (t+L)) * fs_v_pfc_sum_pad_secondprefix)) /\ exists fs_q_pfc_sum_pad_secondprefix_body_terminal. fs_u_pfc_sum_pad_secondprefix = fs_q_pfc_sum_pad_secondprefix_body_terminal * S ((S (t+L)) * fs_v_pfc_sum_pad_secondprefix) + (u))) /\ forall fs_i_pfc_sum_pad_secondprefix_body_steps. (exists fs_lt_pfc_sum_pad_secondprefix_body_steps_bound. fs_lt_pfc_sum_pad_secondprefix_body_steps_bound + S fs_i_pfc_sum_pad_secondprefix_body_steps = t+L) -> exists fs_a_pfc_sum_pad_secondprefix_body_steps fs_r_pfc_sum_pad_secondprefix_body_steps fs_s_pfc_sum_pad_secondprefix_body_steps. ((((exists fs_h_pfc_sum_pad_secondprefix_body_steps_summand. fs_h_pfc_sum_pad_secondprefix_body_steps_summand + S (fs_a_pfc_sum_pad_secondprefix_body_steps) = S ((S (fs_i_pfc_sum_pad_secondprefix_body_steps)) * C)) /\ exists fs_q_pfc_sum_pad_secondprefix_body_steps_summand. B = fs_q_pfc_sum_pad_secondprefix_body_steps_summand * S ((S (fs_i_pfc_sum_pad_secondprefix_body_steps)) * C) + (fs_a_pfc_sum_pad_secondprefix_body_steps))) /\ ((((exists fs_h_pfc_sum_pad_secondprefix_body_steps_partial. fs_h_pfc_sum_pad_secondprefix_body_steps_partial + S (fs_r_pfc_sum_pad_secondprefix_body_steps) = S ((S (fs_i_pfc_sum_pad_secondprefix_body_steps)) * fs_v_pfc_sum_pad_secondprefix)) /\ exists fs_q_pfc_sum_pad_secondprefix_body_steps_partial. fs_u_pfc_sum_pad_secondprefix = fs_q_pfc_sum_pad_secondprefix_body_steps_partial * S ((S (fs_i_pfc_sum_pad_secondprefix_body_steps)) * fs_v_pfc_sum_pad_secondprefix) + (fs_r_pfc_sum_pad_secondprefix_body_steps))) /\ ((((exists fs_h_pfc_sum_pad_secondprefix_body_steps_successor. fs_h_pfc_sum_pad_secondprefix_body_steps_successor + S (fs_s_pfc_sum_pad_secondprefix_body_steps) = S ((S (S fs_i_pfc_sum_pad_secondprefix_body_steps)) * fs_v_pfc_sum_pad_secondprefix)) /\ exists fs_q_pfc_sum_pad_secondprefix_body_steps_successor. fs_u_pfc_sum_pad_secondprefix = fs_q_pfc_sum_pad_secondprefix_body_steps_successor * S ((S (S fs_i_pfc_sum_pad_secondprefix_body_steps)) * fs_v_pfc_sum_pad_secondprefix) + (fs_s_pfc_sum_pad_secondprefix_body_steps))) /\ fs_s_pfc_sum_pad_secondprefix_body_steps = fs_r_pfc_sum_pad_secondprefix_body_steps + fs_a_pfc_sum_pad_secondprefix_body_steps)))))) /\ (((m)=u+a)))))
  75. specialize beta_sum_succ_decompose (B)
  76. specialize beta_sum_succ_decompose (C)
  77. specialize beta_sum_succ_decompose (t+L)
  78. specialize beta_sum_succ_decompose (m)
  79. apply beta_sum_succ_decompose
  80. exact ht
  81. cases hsecond
  82. cases hsecond_witness
  83. cases hsecond_witness_witness
  84. cases hsecond_witness_witness_right
  85. have hprefix : x3=x1
  86. specialize IH (x1)
  87. specialize IH (x3)
  88. apply IH
  89. exact hp
  90. exact hfirst_witness_witness_right_left
  91. exact hsecond_witness_witness_right_left
  92. have hentry : x2=x
  93. specialize beta_at_unique (B)
  94. specialize beta_at_unique (C)
  95. specialize beta_at_unique (t+L)
  96. specialize beta_at_unique (x2)
  97. specialize beta_at_unique (x)
  98. apply beta_at_unique
  99. exact hsecond_witness_witness_left
  100. specialize hpad_right (L)
  101. specialize hpad_right (x)
  102. apply hpad_right
  103. specialize le_refl (S L)
  104. apply le_refl
  105. exact hfirst_witness_witness_left
  106. trans x3+x2
  107. exact hsecond_witness_witness_right_right
  108. trans x1+x
  109. congr
  110. exact hprefix
  111. exact hentry
  112. symm
  113. exact hfirst_witness_witness_right_right
prime_field_convolution_coefficient_left_padding_left · unchanged support, not a new admission
forall p ab ac L bb bc M AB AC t i r. (((forall pfp_repeat_index_coefficient_padding_leftzeros. (exists pfa_gap_coefficient_padding_leftzerosindex. pfa_gap_coefficient_padding_leftzerosindex + S (pfp_repeat_index_coefficient_padding_leftzeros) = (t)) -> (((exists ff_h_pfp_coefficient_padding_leftzerosentry. ff_h_pfp_coefficient_padding_leftzerosentry + S (0) = S ((S (pfp_repeat_index_coefficient_padding_leftzeros)) * AC)) /\ exists ff_q_pfp_coefficient_padding_leftzerosentry. AB = ff_q_pfp_coefficient_padding_leftzerosentry * S ((S (pfp_repeat_index_coefficient_padding_leftzeros)) * AC) + (0)))) /\ ((forall pfrep_index_coefficient_padding_left pfrep_value_coefficient_padding_left. (exists pfa_gap_coefficient_padding_leftbound. pfa_gap_coefficient_padding_leftbound + S (pfrep_index_coefficient_padding_left) = (L)) -> (((exists ff_h_pfp_coefficient_padding_leftinput. ff_h_pfp_coefficient_padding_leftinput + S (pfrep_value_coefficient_padding_left) = S ((S (pfrep_index_coefficient_padding_left)) * ac)) /\ exists ff_q_pfp_coefficient_padding_leftinput. ab = ff_q_pfp_coefficient_padding_leftinput * S ((S (pfrep_index_coefficient_padding_left)) * ac) + (pfrep_value_coefficient_padding_left))) -> (((exists ff_h_pfp_coefficient_padding_leftoutput. ff_h_pfp_coefficient_padding_leftoutput + S (pfrep_value_coefficient_padding_left) = S ((S ((t)+pfrep_index_coefficient_padding_left)) * AC)) /\ exists ff_q_pfp_coefficient_padding_leftoutput. AB = ff_q_pfp_coefficient_padding_leftoutput * S ((S ((t)+pfrep_index_coefficient_padding_left)) * AC) + (pfrep_value_coefficient_padding_left))))))) -> (exists pfc_terms_code_coefficient_original_left pfc_terms_scale_coefficient_original_left pfc_natural_sum_coefficient_original_left. ((forall pfc_index_coefficient_original_leftdiagonal. (exists pfa_gap_coefficient_original_leftdiagonalbound. pfa_gap_coefficient_original_leftdiagonalbound + S (pfc_index_coefficient_original_leftdiagonal) = (S (i))) -> exists pfc_value_coefficient_original_leftdiagonal. ((((exists ff_h_pfp_coefficient_original_leftdiagonalentry. ff_h_pfp_coefficient_original_leftdiagonalentry + S (pfc_value_coefficient_original_leftdiagonal) = S ((S (pfc_index_coefficient_original_leftdiagonal)) * pfc_terms_scale_coefficient_original_left)) /\ exists ff_q_pfp_coefficient_original_leftdiagonalentry. pfc_terms_code_coefficient_original_left = ff_q_pfp_coefficient_original_leftdiagonalentry * S ((S (pfc_index_coefficient_original_leftdiagonal)) * pfc_terms_scale_coefficient_original_left) + (pfc_value_coefficient_original_leftdiagonal))) /\ ((exists pfc_complement_coefficient_original_leftdiagonalterm pfc_left_coefficient_original_leftdiagonalterm pfc_right_coefficient_original_leftdiagonalterm. (((pfc_index_coefficient_original_leftdiagonal)+pfc_complement_coefficient_original_leftdiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_original_leftdiagonaltermleftinside. pfa_gap_coefficient_original_leftdiagonaltermleftinside + S (pfc_index_coefficient_original_leftdiagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_original_leftdiagonaltermleftentry. ff_h_pfp_coefficient_original_leftdiagonaltermleftentry + S (pfc_left_coefficient_original_leftdiagonalterm) = S ((S (pfc_index_coefficient_original_leftdiagonal)) * ac)) /\ exists ff_q_pfp_coefficient_original_leftdiagonaltermleftentry. ab = ff_q_pfp_coefficient_original_leftdiagonaltermleftentry * S ((S (pfc_index_coefficient_original_leftdiagonal)) * ac) + (pfc_left_coefficient_original_leftdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_original_leftdiagonaltermleftoutside. pfc_gap_coefficient_original_leftdiagonaltermleftoutside+(L)=(pfc_index_coefficient_original_leftdiagonal)) /\ (((pfc_left_coefficient_original_leftdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_original_leftdiagonaltermrightinside. pfa_gap_coefficient_original_leftdiagonaltermrightinside + S (pfc_complement_coefficient_original_leftdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_original_leftdiagonaltermrightentry. ff_h_pfp_coefficient_original_leftdiagonaltermrightentry + S (pfc_right_coefficient_original_leftdiagonalterm) = S ((S (pfc_complement_coefficient_original_leftdiagonalterm)) * bc)) /\ exists ff_q_pfp_coefficient_original_leftdiagonaltermrightentry. bb = ff_q_pfp_coefficient_original_leftdiagonaltermrightentry * S ((S (pfc_complement_coefficient_original_leftdiagonalterm)) * bc) + (pfc_right_coefficient_original_leftdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_original_leftdiagonaltermrightoutside. pfc_gap_coefficient_original_leftdiagonaltermrightoutside+(M)=(pfc_complement_coefficient_original_leftdiagonalterm)) /\ (((pfc_right_coefficient_original_leftdiagonalterm)=0))))) /\ (((pfc_value_coefficient_original_leftdiagonal)=pfc_left_coefficient_original_leftdiagonalterm*pfc_right_coefficient_original_leftdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_original_leftsum fs_v_pfc_coefficient_original_leftsum. ((((exists fs_h_pfc_coefficient_original_leftsum_body_start. fs_h_pfc_coefficient_original_leftsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_original_leftsum)) /\ exists fs_q_pfc_coefficient_original_leftsum_body_start. fs_u_pfc_coefficient_original_leftsum = fs_q_pfc_coefficient_original_leftsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_original_leftsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_original_leftsum_body_terminal. fs_h_pfc_coefficient_original_leftsum_body_terminal + S (pfc_natural_sum_coefficient_original_left) = S ((S (S (i))) * fs_v_pfc_coefficient_original_leftsum)) /\ exists fs_q_pfc_coefficient_original_leftsum_body_terminal. fs_u_pfc_coefficient_original_leftsum = fs_q_pfc_coefficient_original_leftsum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_original_leftsum) + (pfc_natural_sum_coefficient_original_left))) /\ forall fs_i_pfc_coefficient_original_leftsum_body_steps. (exists fs_lt_pfc_coefficient_original_leftsum_body_steps_bound. fs_lt_pfc_coefficient_original_leftsum_body_steps_bound + S fs_i_pfc_coefficient_original_leftsum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_original_leftsum_body_steps fs_r_pfc_coefficient_original_leftsum_body_steps fs_s_pfc_coefficient_original_leftsum_body_steps. ((((exists fs_h_pfc_coefficient_original_leftsum_body_steps_summand. fs_h_pfc_coefficient_original_leftsum_body_steps_summand + S (fs_a_pfc_coefficient_original_leftsum_body_steps) = S ((S (fs_i_pfc_coefficient_original_leftsum_body_steps)) * pfc_terms_scale_coefficient_original_left)) /\ exists fs_q_pfc_coefficient_original_leftsum_body_steps_summand. pfc_terms_code_coefficient_original_left = fs_q_pfc_coefficient_original_leftsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_original_leftsum_body_steps)) * pfc_terms_scale_coefficient_original_left) + (fs_a_pfc_coefficient_original_leftsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_original_leftsum_body_steps_partial. fs_h_pfc_coefficient_original_leftsum_body_steps_partial + S (fs_r_pfc_coefficient_original_leftsum_body_steps) = S ((S (fs_i_pfc_coefficient_original_leftsum_body_steps)) * fs_v_pfc_coefficient_original_leftsum)) /\ exists fs_q_pfc_coefficient_original_leftsum_body_steps_partial. fs_u_pfc_coefficient_original_leftsum = fs_q_pfc_coefficient_original_leftsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_original_leftsum_body_steps)) * fs_v_pfc_coefficient_original_leftsum) + (fs_r_pfc_coefficient_original_leftsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_original_leftsum_body_steps_successor. fs_h_pfc_coefficient_original_leftsum_body_steps_successor + S (fs_s_pfc_coefficient_original_leftsum_body_steps) = S ((S (S fs_i_pfc_coefficient_original_leftsum_body_steps)) * fs_v_pfc_coefficient_original_leftsum)) /\ exists fs_q_pfc_coefficient_original_leftsum_body_steps_successor. fs_u_pfc_coefficient_original_leftsum = fs_q_pfc_coefficient_original_leftsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_original_leftsum_body_steps)) * fs_v_pfc_coefficient_original_leftsum) + (fs_s_pfc_coefficient_original_leftsum_body_steps))) /\ fs_s_pfc_coefficient_original_leftsum_body_steps = fs_r_pfc_coefficient_original_leftsum_body_steps + fs_a_pfc_coefficient_original_leftsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_original_leftresiduebound. pfa_gap_coefficient_original_leftresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_coefficient_original_leftresiduecongruence pfa_offset_right_coefficient_original_leftresiduecongruence. (pfc_natural_sum_coefficient_original_left) + (p) * pfa_offset_left_coefficient_original_leftresiduecongruence = (r) + (p) * pfa_offset_right_coefficient_original_leftresiduecongruence))))))))) -> (exists pfc_terms_code_coefficient_shifted_left pfc_terms_scale_coefficient_shifted_left pfc_natural_sum_coefficient_shifted_left. ((forall pfc_index_coefficient_shifted_leftdiagonal. (exists pfa_gap_coefficient_shifted_leftdiagonalbound. pfa_gap_coefficient_shifted_leftdiagonalbound + S (pfc_index_coefficient_shifted_leftdiagonal) = (S (t+i))) -> exists pfc_value_coefficient_shifted_leftdiagonal. ((((exists ff_h_pfp_coefficient_shifted_leftdiagonalentry. ff_h_pfp_coefficient_shifted_leftdiagonalentry + S (pfc_value_coefficient_shifted_leftdiagonal) = S ((S (pfc_index_coefficient_shifted_leftdiagonal)) * pfc_terms_scale_coefficient_shifted_left)) /\ exists ff_q_pfp_coefficient_shifted_leftdiagonalentry. pfc_terms_code_coefficient_shifted_left = ff_q_pfp_coefficient_shifted_leftdiagonalentry * S ((S (pfc_index_coefficient_shifted_leftdiagonal)) * pfc_terms_scale_coefficient_shifted_left) + (pfc_value_coefficient_shifted_leftdiagonal))) /\ ((exists pfc_complement_coefficient_shifted_leftdiagonalterm pfc_left_coefficient_shifted_leftdiagonalterm pfc_right_coefficient_shifted_leftdiagonalterm. (((pfc_index_coefficient_shifted_leftdiagonal)+pfc_complement_coefficient_shifted_leftdiagonalterm=(t+i)) /\ ((((((exists pfa_gap_coefficient_shifted_leftdiagonaltermleftinside. pfa_gap_coefficient_shifted_leftdiagonaltermleftinside + S (pfc_index_coefficient_shifted_leftdiagonal) = (t+L)) /\ ((((exists ff_h_pfp_coefficient_shifted_leftdiagonaltermleftentry. ff_h_pfp_coefficient_shifted_leftdiagonaltermleftentry + S (pfc_left_coefficient_shifted_leftdiagonalterm) = S ((S (pfc_index_coefficient_shifted_leftdiagonal)) * AC)) /\ exists ff_q_pfp_coefficient_shifted_leftdiagonaltermleftentry. AB = ff_q_pfp_coefficient_shifted_leftdiagonaltermleftentry * S ((S (pfc_index_coefficient_shifted_leftdiagonal)) * AC) + (pfc_left_coefficient_shifted_leftdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_shifted_leftdiagonaltermleftoutside. pfc_gap_coefficient_shifted_leftdiagonaltermleftoutside+(t+L)=(pfc_index_coefficient_shifted_leftdiagonal)) /\ (((pfc_left_coefficient_shifted_leftdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_shifted_leftdiagonaltermrightinside. pfa_gap_coefficient_shifted_leftdiagonaltermrightinside + S (pfc_complement_coefficient_shifted_leftdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_shifted_leftdiagonaltermrightentry. ff_h_pfp_coefficient_shifted_leftdiagonaltermrightentry + S (pfc_right_coefficient_shifted_leftdiagonalterm) = S ((S (pfc_complement_coefficient_shifted_leftdiagonalterm)) * bc)) /\ exists ff_q_pfp_coefficient_shifted_leftdiagonaltermrightentry. bb = ff_q_pfp_coefficient_shifted_leftdiagonaltermrightentry * S ((S (pfc_complement_coefficient_shifted_leftdiagonalterm)) * bc) + (pfc_right_coefficient_shifted_leftdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_shifted_leftdiagonaltermrightoutside. pfc_gap_coefficient_shifted_leftdiagonaltermrightoutside+(M)=(pfc_complement_coefficient_shifted_leftdiagonalterm)) /\ (((pfc_right_coefficient_shifted_leftdiagonalterm)=0))))) /\ (((pfc_value_coefficient_shifted_leftdiagonal)=pfc_left_coefficient_shifted_leftdiagonalterm*pfc_right_coefficient_shifted_leftdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_shifted_leftsum fs_v_pfc_coefficient_shifted_leftsum. ((((exists fs_h_pfc_coefficient_shifted_leftsum_body_start. fs_h_pfc_coefficient_shifted_leftsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_shifted_leftsum)) /\ exists fs_q_pfc_coefficient_shifted_leftsum_body_start. fs_u_pfc_coefficient_shifted_leftsum = fs_q_pfc_coefficient_shifted_leftsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_shifted_leftsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_shifted_leftsum_body_terminal. fs_h_pfc_coefficient_shifted_leftsum_body_terminal + S (pfc_natural_sum_coefficient_shifted_left) = S ((S (S (t+i))) * fs_v_pfc_coefficient_shifted_leftsum)) /\ exists fs_q_pfc_coefficient_shifted_leftsum_body_terminal. fs_u_pfc_coefficient_shifted_leftsum = fs_q_pfc_coefficient_shifted_leftsum_body_terminal * S ((S (S (t+i))) * fs_v_pfc_coefficient_shifted_leftsum) + (pfc_natural_sum_coefficient_shifted_left))) /\ forall fs_i_pfc_coefficient_shifted_leftsum_body_steps. (exists fs_lt_pfc_coefficient_shifted_leftsum_body_steps_bound. fs_lt_pfc_coefficient_shifted_leftsum_body_steps_bound + S fs_i_pfc_coefficient_shifted_leftsum_body_steps = S (t+i)) -> exists fs_a_pfc_coefficient_shifted_leftsum_body_steps fs_r_pfc_coefficient_shifted_leftsum_body_steps fs_s_pfc_coefficient_shifted_leftsum_body_steps. ((((exists fs_h_pfc_coefficient_shifted_leftsum_body_steps_summand. fs_h_pfc_coefficient_shifted_leftsum_body_steps_summand + S (fs_a_pfc_coefficient_shifted_leftsum_body_steps) = S ((S (fs_i_pfc_coefficient_shifted_leftsum_body_steps)) * pfc_terms_scale_coefficient_shifted_left)) /\ exists fs_q_pfc_coefficient_shifted_leftsum_body_steps_summand. pfc_terms_code_coefficient_shifted_left = fs_q_pfc_coefficient_shifted_leftsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_shifted_leftsum_body_steps)) * pfc_terms_scale_coefficient_shifted_left) + (fs_a_pfc_coefficient_shifted_leftsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_shifted_leftsum_body_steps_partial. fs_h_pfc_coefficient_shifted_leftsum_body_steps_partial + S (fs_r_pfc_coefficient_shifted_leftsum_body_steps) = S ((S (fs_i_pfc_coefficient_shifted_leftsum_body_steps)) * fs_v_pfc_coefficient_shifted_leftsum)) /\ exists fs_q_pfc_coefficient_shifted_leftsum_body_steps_partial. fs_u_pfc_coefficient_shifted_leftsum = fs_q_pfc_coefficient_shifted_leftsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_shifted_leftsum_body_steps)) * fs_v_pfc_coefficient_shifted_leftsum) + (fs_r_pfc_coefficient_shifted_leftsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_shifted_leftsum_body_steps_successor. fs_h_pfc_coefficient_shifted_leftsum_body_steps_successor + S (fs_s_pfc_coefficient_shifted_leftsum_body_steps) = S ((S (S fs_i_pfc_coefficient_shifted_leftsum_body_steps)) * fs_v_pfc_coefficient_shifted_leftsum)) /\ exists fs_q_pfc_coefficient_shifted_leftsum_body_steps_successor. fs_u_pfc_coefficient_shifted_leftsum = fs_q_pfc_coefficient_shifted_leftsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_shifted_leftsum_body_steps)) * fs_v_pfc_coefficient_shifted_leftsum) + (fs_s_pfc_coefficient_shifted_leftsum_body_steps))) /\ fs_s_pfc_coefficient_shifted_leftsum_body_steps = fs_r_pfc_coefficient_shifted_leftsum_body_steps + fs_a_pfc_coefficient_shifted_leftsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_shifted_leftresiduebound. pfa_gap_coefficient_shifted_leftresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_coefficient_shifted_leftresiduecongruence pfa_offset_right_coefficient_shifted_leftresiduecongruence. (pfc_natural_sum_coefficient_shifted_left) + (p) * pfa_offset_left_coefficient_shifted_leftresiduecongruence = (r) + (p) * pfa_offset_right_coefficient_shifted_leftresiduecongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro AB
  9. intro AC
  10. intro t
  11. intro i
  12. intro r
  13. intro hpad
  14. intro hc
  15. cases hc
  16. cases hc_witness
  17. cases hc_witness_witness
  18. cases hc_witness_witness_witness
  19. cases hc_witness_witness_witness_right
  20. have hd : exists eb ec. forall pfc_index_coefficient_padded_diagonal_left. (exists pfa_gap_coefficient_padded_diagonal_leftbound. pfa_gap_coefficient_padded_diagonal_leftbound + S (pfc_index_coefficient_padded_diagonal_left) = (S (t+i))) -> exists pfc_value_coefficient_padded_diagonal_left. ((((exists ff_h_pfp_coefficient_padded_diagonal_leftentry. ff_h_pfp_coefficient_padded_diagonal_leftentry + S (pfc_value_coefficient_padded_diagonal_left) = S ((S (pfc_index_coefficient_padded_diagonal_left)) * ec)) /\ exists ff_q_pfp_coefficient_padded_diagonal_leftentry. eb = ff_q_pfp_coefficient_padded_diagonal_leftentry * S ((S (pfc_index_coefficient_padded_diagonal_left)) * ec) + (pfc_value_coefficient_padded_diagonal_left))) /\ ((exists pfc_complement_coefficient_padded_diagonal_leftterm pfc_left_coefficient_padded_diagonal_leftterm pfc_right_coefficient_padded_diagonal_leftterm. (((pfc_index_coefficient_padded_diagonal_left)+pfc_complement_coefficient_padded_diagonal_leftterm=(t+i)) /\ ((((((exists pfa_gap_coefficient_padded_diagonal_lefttermleftinside. pfa_gap_coefficient_padded_diagonal_lefttermleftinside + S (pfc_index_coefficient_padded_diagonal_left) = (t+L)) /\ ((((exists ff_h_pfp_coefficient_padded_diagonal_lefttermleftentry. ff_h_pfp_coefficient_padded_diagonal_lefttermleftentry + S (pfc_left_coefficient_padded_diagonal_leftterm) = S ((S (pfc_index_coefficient_padded_diagonal_left)) * AC)) /\ exists ff_q_pfp_coefficient_padded_diagonal_lefttermleftentry. AB = ff_q_pfp_coefficient_padded_diagonal_lefttermleftentry * S ((S (pfc_index_coefficient_padded_diagonal_left)) * AC) + (pfc_left_coefficient_padded_diagonal_leftterm)))))) \/ (((exists pfc_gap_coefficient_padded_diagonal_lefttermleftoutside. pfc_gap_coefficient_padded_diagonal_lefttermleftoutside+(t+L)=(pfc_index_coefficient_padded_diagonal_left)) /\ (((pfc_left_coefficient_padded_diagonal_leftterm)=0))))) /\ ((((((exists pfa_gap_coefficient_padded_diagonal_lefttermrightinside. pfa_gap_coefficient_padded_diagonal_lefttermrightinside + S (pfc_complement_coefficient_padded_diagonal_leftterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_padded_diagonal_lefttermrightentry. ff_h_pfp_coefficient_padded_diagonal_lefttermrightentry + S (pfc_right_coefficient_padded_diagonal_leftterm) = S ((S (pfc_complement_coefficient_padded_diagonal_leftterm)) * bc)) /\ exists ff_q_pfp_coefficient_padded_diagonal_lefttermrightentry. bb = ff_q_pfp_coefficient_padded_diagonal_lefttermrightentry * S ((S (pfc_complement_coefficient_padded_diagonal_leftterm)) * bc) + (pfc_right_coefficient_padded_diagonal_leftterm)))))) \/ (((exists pfc_gap_coefficient_padded_diagonal_lefttermrightoutside. pfc_gap_coefficient_padded_diagonal_lefttermrightoutside+(M)=(pfc_complement_coefficient_padded_diagonal_leftterm)) /\ (((pfc_right_coefficient_padded_diagonal_leftterm)=0))))) /\ (((pfc_value_coefficient_padded_diagonal_left)=pfc_left_coefficient_padded_diagonal_leftterm*pfc_right_coefficient_padded_diagonal_leftterm))))))))))
  21. specialize polynomial_diagonal_prefix_exists (AB)
  22. specialize polynomial_diagonal_prefix_exists (AC)
  23. specialize polynomial_diagonal_prefix_exists (t+L)
  24. specialize polynomial_diagonal_prefix_exists (bb)
  25. specialize polynomial_diagonal_prefix_exists (bc)
  26. specialize polynomial_diagonal_prefix_exists (M)
  27. specialize polynomial_diagonal_prefix_exists (t+i)
  28. apply polynomial_diagonal_prefix_exists
  29. cases hd
  30. cases hd_witness
  31. have hs : exists n. exists fs_u_pfc_coefficient_padded_sum_left fs_v_pfc_coefficient_padded_sum_left. ((((exists fs_h_pfc_coefficient_padded_sum_left_body_start. fs_h_pfc_coefficient_padded_sum_left_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_padded_sum_left)) /\ exists fs_q_pfc_coefficient_padded_sum_left_body_start. fs_u_pfc_coefficient_padded_sum_left = fs_q_pfc_coefficient_padded_sum_left_body_start * S ((S (0)) * fs_v_pfc_coefficient_padded_sum_left) + (0))) /\ ((((exists fs_h_pfc_coefficient_padded_sum_left_body_terminal. fs_h_pfc_coefficient_padded_sum_left_body_terminal + S (n) = S ((S (S (t+i))) * fs_v_pfc_coefficient_padded_sum_left)) /\ exists fs_q_pfc_coefficient_padded_sum_left_body_terminal. fs_u_pfc_coefficient_padded_sum_left = fs_q_pfc_coefficient_padded_sum_left_body_terminal * S ((S (S (t+i))) * fs_v_pfc_coefficient_padded_sum_left) + (n))) /\ forall fs_i_pfc_coefficient_padded_sum_left_body_steps. (exists fs_lt_pfc_coefficient_padded_sum_left_body_steps_bound. fs_lt_pfc_coefficient_padded_sum_left_body_steps_bound + S fs_i_pfc_coefficient_padded_sum_left_body_steps = S (t+i)) -> exists fs_a_pfc_coefficient_padded_sum_left_body_steps fs_r_pfc_coefficient_padded_sum_left_body_steps fs_s_pfc_coefficient_padded_sum_left_body_steps. ((((exists fs_h_pfc_coefficient_padded_sum_left_body_steps_summand. fs_h_pfc_coefficient_padded_sum_left_body_steps_summand + S (fs_a_pfc_coefficient_padded_sum_left_body_steps) = S ((S (fs_i_pfc_coefficient_padded_sum_left_body_steps)) * x4)) /\ exists fs_q_pfc_coefficient_padded_sum_left_body_steps_summand. x3 = fs_q_pfc_coefficient_padded_sum_left_body_steps_summand * S ((S (fs_i_pfc_coefficient_padded_sum_left_body_steps)) * x4) + (fs_a_pfc_coefficient_padded_sum_left_body_steps))) /\ ((((exists fs_h_pfc_coefficient_padded_sum_left_body_steps_partial. fs_h_pfc_coefficient_padded_sum_left_body_steps_partial + S (fs_r_pfc_coefficient_padded_sum_left_body_steps) = S ((S (fs_i_pfc_coefficient_padded_sum_left_body_steps)) * fs_v_pfc_coefficient_padded_sum_left)) /\ exists fs_q_pfc_coefficient_padded_sum_left_body_steps_partial. fs_u_pfc_coefficient_padded_sum_left = fs_q_pfc_coefficient_padded_sum_left_body_steps_partial * S ((S (fs_i_pfc_coefficient_padded_sum_left_body_steps)) * fs_v_pfc_coefficient_padded_sum_left) + (fs_r_pfc_coefficient_padded_sum_left_body_steps))) /\ ((((exists fs_h_pfc_coefficient_padded_sum_left_body_steps_successor. fs_h_pfc_coefficient_padded_sum_left_body_steps_successor + S (fs_s_pfc_coefficient_padded_sum_left_body_steps) = S ((S (S fs_i_pfc_coefficient_padded_sum_left_body_steps)) * fs_v_pfc_coefficient_padded_sum_left)) /\ exists fs_q_pfc_coefficient_padded_sum_left_body_steps_successor. fs_u_pfc_coefficient_padded_sum_left = fs_q_pfc_coefficient_padded_sum_left_body_steps_successor * S ((S (S fs_i_pfc_coefficient_padded_sum_left_body_steps)) * fs_v_pfc_coefficient_padded_sum_left) + (fs_s_pfc_coefficient_padded_sum_left_body_steps))) /\ fs_s_pfc_coefficient_padded_sum_left_body_steps = fs_r_pfc_coefficient_padded_sum_left_body_steps + fs_a_pfc_coefficient_padded_sum_left_body_steps)))))
  32. specialize beta_sum_exists (x3)
  33. specialize beta_sum_exists (x4)
  34. specialize beta_sum_exists (S (t+i))
  35. apply beta_sum_exists
  36. cases hs
  37. have hdata : ((forall pfp_repeat_index_coefficient_diagonal_paddingzeros. (exists pfa_gap_coefficient_diagonal_paddingzerosindex. pfa_gap_coefficient_diagonal_paddingzerosindex + S (pfp_repeat_index_coefficient_diagonal_paddingzeros) = (t)) -> (((exists ff_h_pfp_coefficient_diagonal_paddingzerosentry. ff_h_pfp_coefficient_diagonal_paddingzerosentry + S (0) = S ((S (pfp_repeat_index_coefficient_diagonal_paddingzeros)) * x4)) /\ exists ff_q_pfp_coefficient_diagonal_paddingzerosentry. x3 = ff_q_pfp_coefficient_diagonal_paddingzerosentry * S ((S (pfp_repeat_index_coefficient_diagonal_paddingzeros)) * x4) + (0)))) /\ ((forall pfrep_index_coefficient_diagonal_padding pfrep_value_coefficient_diagonal_padding. (exists pfa_gap_coefficient_diagonal_paddingbound. pfa_gap_coefficient_diagonal_paddingbound + S (pfrep_index_coefficient_diagonal_padding) = (S i)) -> (((exists ff_h_pfp_coefficient_diagonal_paddinginput. ff_h_pfp_coefficient_diagonal_paddinginput + S (pfrep_value_coefficient_diagonal_padding) = S ((S (pfrep_index_coefficient_diagonal_padding)) * x1)) /\ exists ff_q_pfp_coefficient_diagonal_paddinginput. x = ff_q_pfp_coefficient_diagonal_paddinginput * S ((S (pfrep_index_coefficient_diagonal_padding)) * x1) + (pfrep_value_coefficient_diagonal_padding))) -> (((exists ff_h_pfp_coefficient_diagonal_paddingoutput. ff_h_pfp_coefficient_diagonal_paddingoutput + S (pfrep_value_coefficient_diagonal_padding) = S ((S ((t)+pfrep_index_coefficient_diagonal_padding)) * x4)) /\ exists ff_q_pfp_coefficient_diagonal_paddingoutput. x3 = ff_q_pfp_coefficient_diagonal_paddingoutput * S ((S ((t)+pfrep_index_coefficient_diagonal_padding)) * x4) + (pfrep_value_coefficient_diagonal_padding))))))
  38. specialize polynomial_diagonal_left_padding_left (ab)
  39. specialize polynomial_diagonal_left_padding_left (ac)
  40. specialize polynomial_diagonal_left_padding_left (L)
  41. specialize polynomial_diagonal_left_padding_left (bb)
  42. specialize polynomial_diagonal_left_padding_left (bc)
  43. specialize polynomial_diagonal_left_padding_left (M)
  44. specialize polynomial_diagonal_left_padding_left (AB)
  45. specialize polynomial_diagonal_left_padding_left (AC)
  46. specialize polynomial_diagonal_left_padding_left (t)
  47. specialize polynomial_diagonal_left_padding_left (i)
  48. specialize polynomial_diagonal_left_padding_left (x)
  49. specialize polynomial_diagonal_left_padding_left (x1)
  50. specialize polynomial_diagonal_left_padding_left (x3)
  51. specialize polynomial_diagonal_left_padding_left (x4)
  52. apply polynomial_diagonal_left_padding_left
  53. exact hpad
  54. exact hc_witness_witness_witness_left
  55. exact hd_witness_witness
  56. have heq : x5=x2
  57. specialize polynomial_left_pad_natural_sum_invariant (x)
  58. specialize polynomial_left_pad_natural_sum_invariant (x1)
  59. specialize polynomial_left_pad_natural_sum_invariant (x3)
  60. specialize polynomial_left_pad_natural_sum_invariant (x4)
  61. specialize polynomial_left_pad_natural_sum_invariant (t)
  62. specialize polynomial_left_pad_natural_sum_invariant (S i)
  63. specialize polynomial_left_pad_natural_sum_invariant (x2)
  64. specialize polynomial_left_pad_natural_sum_invariant (x5)
  65. apply polynomial_left_pad_natural_sum_invariant
  66. exact hdata
  67. exact hc_witness_witness_witness_right_left
  68. have hlength : t+S i=S (t+i)
  69. simp
  70. rewrite hlength
  71. rewrite hlength
  72. rewrite hlength
  73. exact hs_witness
  74. exists x3
  75. exists x4
  76. exists x2
  77. split
  78. exact hd_witness_witness
  79. split
  80. rewrite heq at hs_witness
  81. rewrite heq at hs_witness
  82. exact hs_witness
  83. exact hc_witness_witness_witness_right_right
prime_field_polynomial_convolution_left_padding_nonempty_left · unchanged support, not a new admission
forall p ab ac L bb bc M cb cc N AB AC t CB CC K. (~(p=0)) -> (~(L=0)) -> (~(M=0)) -> (((forall pfp_repeat_index_nonempty_factor_padding_leftzeros. (exists pfa_gap_nonempty_factor_padding_leftzerosindex. pfa_gap_nonempty_factor_padding_leftzerosindex + S (pfp_repeat_index_nonempty_factor_padding_leftzeros) = (t)) -> (((exists ff_h_pfp_nonempty_factor_padding_leftzerosentry. ff_h_pfp_nonempty_factor_padding_leftzerosentry + S (0) = S ((S (pfp_repeat_index_nonempty_factor_padding_leftzeros)) * AC)) /\ exists ff_q_pfp_nonempty_factor_padding_leftzerosentry. AB = ff_q_pfp_nonempty_factor_padding_leftzerosentry * S ((S (pfp_repeat_index_nonempty_factor_padding_leftzeros)) * AC) + (0)))) /\ ((forall pfrep_index_nonempty_factor_padding_left pfrep_value_nonempty_factor_padding_left. (exists pfa_gap_nonempty_factor_padding_leftbound. pfa_gap_nonempty_factor_padding_leftbound + S (pfrep_index_nonempty_factor_padding_left) = (L)) -> (((exists ff_h_pfp_nonempty_factor_padding_leftinput. ff_h_pfp_nonempty_factor_padding_leftinput + S (pfrep_value_nonempty_factor_padding_left) = S ((S (pfrep_index_nonempty_factor_padding_left)) * ac)) /\ exists ff_q_pfp_nonempty_factor_padding_leftinput. ab = ff_q_pfp_nonempty_factor_padding_leftinput * S ((S (pfrep_index_nonempty_factor_padding_left)) * ac) + (pfrep_value_nonempty_factor_padding_left))) -> (((exists ff_h_pfp_nonempty_factor_padding_leftoutput. ff_h_pfp_nonempty_factor_padding_leftoutput + S (pfrep_value_nonempty_factor_padding_left) = S ((S ((t)+pfrep_index_nonempty_factor_padding_left)) * AC)) /\ exists ff_q_pfp_nonempty_factor_padding_leftoutput. AB = ff_q_pfp_nonempty_factor_padding_leftoutput * S ((S ((t)+pfrep_index_nonempty_factor_padding_left)) * AC) + (pfrep_value_nonempty_factor_padding_left))))))) -> (((forall fom_index_pfp_nonempty_old_leftleft. (exists fom_gap_pfp_nonempty_old_leftleft_index_bound. fom_gap_pfp_nonempty_old_leftleft_index_bound + S (fom_index_pfp_nonempty_old_leftleft) = L) -> exists fom_value_pfp_nonempty_old_leftleft. ((((exists fom_beta_height_pfp_nonempty_old_leftleft_entry. fom_beta_height_pfp_nonempty_old_leftleft_entry + S (fom_value_pfp_nonempty_old_leftleft) = S ((S (fom_index_pfp_nonempty_old_leftleft)) * ac)) /\ exists fom_beta_quotient_pfp_nonempty_old_leftleft_entry. ab = fom_beta_quotient_pfp_nonempty_old_leftleft_entry * S ((S (fom_index_pfp_nonempty_old_leftleft)) * ac) + (fom_value_pfp_nonempty_old_leftleft))) /\ (exists fom_gap_pfp_nonempty_old_leftleft_value_bound. fom_gap_pfp_nonempty_old_leftleft_value_bound + S (fom_value_pfp_nonempty_old_leftleft) = p))) /\ (((forall fom_index_pfp_nonempty_old_leftright. (exists fom_gap_pfp_nonempty_old_leftright_index_bound. fom_gap_pfp_nonempty_old_leftright_index_bound + S (fom_index_pfp_nonempty_old_leftright) = M) -> exists fom_value_pfp_nonempty_old_leftright. ((((exists fom_beta_height_pfp_nonempty_old_leftright_entry. fom_beta_height_pfp_nonempty_old_leftright_entry + S (fom_value_pfp_nonempty_old_leftright) = S ((S (fom_index_pfp_nonempty_old_leftright)) * bc)) /\ exists fom_beta_quotient_pfp_nonempty_old_leftright_entry. bb = fom_beta_quotient_pfp_nonempty_old_leftright_entry * S ((S (fom_index_pfp_nonempty_old_leftright)) * bc) + (fom_value_pfp_nonempty_old_leftright))) /\ (exists fom_gap_pfp_nonempty_old_leftright_value_bound. fom_gap_pfp_nonempty_old_leftright_value_bound + S (fom_value_pfp_nonempty_old_leftright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_nonempty_old_leftcoefficients. (exists pfa_gap_nonempty_old_leftcoefficientsbound. pfa_gap_nonempty_old_leftcoefficientsbound + S (pfc_index_nonempty_old_leftcoefficients) = (N)) -> exists pfc_value_nonempty_old_leftcoefficients. ((((exists ff_h_pfp_nonempty_old_leftcoefficientsentry. ff_h_pfp_nonempty_old_leftcoefficientsentry + S (pfc_value_nonempty_old_leftcoefficients) = S ((S (pfc_index_nonempty_old_leftcoefficients)) * cc)) /\ exists ff_q_pfp_nonempty_old_leftcoefficientsentry. cb = ff_q_pfp_nonempty_old_leftcoefficientsentry * S ((S (pfc_index_nonempty_old_leftcoefficients)) * cc) + (pfc_value_nonempty_old_leftcoefficients))) /\ ((exists pfc_terms_code_nonempty_old_leftcoefficientscoefficient pfc_terms_scale_nonempty_old_leftcoefficientscoefficient pfc_natural_sum_nonempty_old_leftcoefficientscoefficient. ((forall pfc_index_nonempty_old_leftcoefficientscoefficientdiagonal. (exists pfa_gap_nonempty_old_leftcoefficientscoefficientdiagonalbound. pfa_gap_nonempty_old_leftcoefficientscoefficientdiagonalbound + S (pfc_index_nonempty_old_leftcoefficientscoefficientdiagonal) = (S (pfc_index_nonempty_old_leftcoefficients))) -> exists pfc_value_nonempty_old_leftcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_nonempty_old_leftcoefficientscoefficientdiagonalentry. ff_h_pfp_nonempty_old_leftcoefficientscoefficientdiagonalentry + S (pfc_value_nonempty_old_leftcoefficientscoefficientdiagonal) = S ((S (pfc_index_nonempty_old_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_nonempty_old_leftcoefficientscoefficient)) /\ exists ff_q_pfp_nonempty_old_leftcoefficientscoefficientdiagonalentry. pfc_terms_code_nonempty_old_leftcoefficientscoefficient = ff_q_pfp_nonempty_old_leftcoefficientscoefficientdiagonalentry * S ((S (pfc_index_nonempty_old_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_nonempty_old_leftcoefficientscoefficient) + (pfc_value_nonempty_old_leftcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_nonempty_old_leftcoefficientscoefficientdiagonalterm pfc_left_nonempty_old_leftcoefficientscoefficientdiagonalterm pfc_right_nonempty_old_leftcoefficientscoefficientdiagonalterm. (((pfc_index_nonempty_old_leftcoefficientscoefficientdiagonal)+pfc_complement_nonempty_old_leftcoefficientscoefficientdiagonalterm=(pfc_index_nonempty_old_leftcoefficients)) /\ ((((((exists pfa_gap_nonempty_old_leftcoefficientscoefficientdiagonaltermleftinside. pfa_gap_nonempty_old_leftcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_nonempty_old_leftcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_nonempty_old_leftcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_nonempty_old_leftcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_nonempty_old_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_nonempty_old_leftcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_nonempty_old_leftcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_nonempty_old_leftcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_nonempty_old_leftcoefficientscoefficientdiagonal)) * ac) + (pfc_left_nonempty_old_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_old_leftcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_nonempty_old_leftcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_nonempty_old_leftcoefficientscoefficientdiagonal)) /\ (((pfc_left_nonempty_old_leftcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_nonempty_old_leftcoefficientscoefficientdiagonaltermrightinside. pfa_gap_nonempty_old_leftcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_nonempty_old_leftcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_nonempty_old_leftcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_nonempty_old_leftcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_nonempty_old_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_nonempty_old_leftcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_nonempty_old_leftcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_nonempty_old_leftcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_nonempty_old_leftcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_nonempty_old_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_old_leftcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_nonempty_old_leftcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_nonempty_old_leftcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_nonempty_old_leftcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_nonempty_old_leftcoefficientscoefficientdiagonal)=pfc_left_nonempty_old_leftcoefficientscoefficientdiagonalterm*pfc_right_nonempty_old_leftcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_nonempty_old_leftcoefficientscoefficientsum fs_v_pfc_nonempty_old_leftcoefficientscoefficientsum. ((((exists fs_h_pfc_nonempty_old_leftcoefficientscoefficientsum_body_start. fs_h_pfc_nonempty_old_leftcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_nonempty_old_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_old_leftcoefficientscoefficientsum_body_start. fs_u_pfc_nonempty_old_leftcoefficientscoefficientsum = fs_q_pfc_nonempty_old_leftcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_nonempty_old_leftcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_nonempty_old_leftcoefficientscoefficientsum_body_terminal. fs_h_pfc_nonempty_old_leftcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_nonempty_old_leftcoefficientscoefficient) = S ((S (S (pfc_index_nonempty_old_leftcoefficients))) * fs_v_pfc_nonempty_old_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_old_leftcoefficientscoefficientsum_body_terminal. fs_u_pfc_nonempty_old_leftcoefficientscoefficientsum = fs_q_pfc_nonempty_old_leftcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_nonempty_old_leftcoefficients))) * fs_v_pfc_nonempty_old_leftcoefficientscoefficientsum) + (pfc_natural_sum_nonempty_old_leftcoefficientscoefficient))) /\ forall fs_i_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps = S (pfc_index_nonempty_old_leftcoefficients)) -> exists fs_a_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps fs_r_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps fs_s_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_nonempty_old_leftcoefficientscoefficient)) /\ exists fs_q_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_nonempty_old_leftcoefficientscoefficient = fs_q_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_nonempty_old_leftcoefficientscoefficient) + (fs_a_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_old_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_nonempty_old_leftcoefficientscoefficientsum = fs_q_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_old_leftcoefficientscoefficientsum) + (fs_r_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_old_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_nonempty_old_leftcoefficientscoefficientsum = fs_q_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_old_leftcoefficientscoefficientsum) + (fs_s_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps = fs_r_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps + fs_a_pfc_nonempty_old_leftcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_nonempty_old_leftcoefficientscoefficientresiduebound. pfa_gap_nonempty_old_leftcoefficientscoefficientresiduebound + S (pfc_value_nonempty_old_leftcoefficients) = (p)) /\ ((exists pfa_offset_left_nonempty_old_leftcoefficientscoefficientresiduecongruence pfa_offset_right_nonempty_old_leftcoefficientscoefficientresiduecongruence. (pfc_natural_sum_nonempty_old_leftcoefficientscoefficient) + (p) * pfa_offset_left_nonempty_old_leftcoefficientscoefficientresiduecongruence = (pfc_value_nonempty_old_leftcoefficients) + (p) * pfa_offset_right_nonempty_old_leftcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_nonempty_new_leftleft. (exists fom_gap_pfp_nonempty_new_leftleft_index_bound. fom_gap_pfp_nonempty_new_leftleft_index_bound + S (fom_index_pfp_nonempty_new_leftleft) = t+L) -> exists fom_value_pfp_nonempty_new_leftleft. ((((exists fom_beta_height_pfp_nonempty_new_leftleft_entry. fom_beta_height_pfp_nonempty_new_leftleft_entry + S (fom_value_pfp_nonempty_new_leftleft) = S ((S (fom_index_pfp_nonempty_new_leftleft)) * AC)) /\ exists fom_beta_quotient_pfp_nonempty_new_leftleft_entry. AB = fom_beta_quotient_pfp_nonempty_new_leftleft_entry * S ((S (fom_index_pfp_nonempty_new_leftleft)) * AC) + (fom_value_pfp_nonempty_new_leftleft))) /\ (exists fom_gap_pfp_nonempty_new_leftleft_value_bound. fom_gap_pfp_nonempty_new_leftleft_value_bound + S (fom_value_pfp_nonempty_new_leftleft) = p))) /\ (((forall fom_index_pfp_nonempty_new_leftright. (exists fom_gap_pfp_nonempty_new_leftright_index_bound. fom_gap_pfp_nonempty_new_leftright_index_bound + S (fom_index_pfp_nonempty_new_leftright) = M) -> exists fom_value_pfp_nonempty_new_leftright. ((((exists fom_beta_height_pfp_nonempty_new_leftright_entry. fom_beta_height_pfp_nonempty_new_leftright_entry + S (fom_value_pfp_nonempty_new_leftright) = S ((S (fom_index_pfp_nonempty_new_leftright)) * bc)) /\ exists fom_beta_quotient_pfp_nonempty_new_leftright_entry. bb = fom_beta_quotient_pfp_nonempty_new_leftright_entry * S ((S (fom_index_pfp_nonempty_new_leftright)) * bc) + (fom_value_pfp_nonempty_new_leftright))) /\ (exists fom_gap_pfp_nonempty_new_leftright_value_bound. fom_gap_pfp_nonempty_new_leftright_value_bound + S (fom_value_pfp_nonempty_new_leftright) = p))) /\ (((((((t+L)=0 \/ (M)=0) /\ (((K)=0)))) \/ (((~((t+L)=0)) /\ (((~((M)=0)) /\ (((t+L)+(M)=S (K)))))))) /\ ((forall pfc_index_nonempty_new_leftcoefficients. (exists pfa_gap_nonempty_new_leftcoefficientsbound. pfa_gap_nonempty_new_leftcoefficientsbound + S (pfc_index_nonempty_new_leftcoefficients) = (K)) -> exists pfc_value_nonempty_new_leftcoefficients. ((((exists ff_h_pfp_nonempty_new_leftcoefficientsentry. ff_h_pfp_nonempty_new_leftcoefficientsentry + S (pfc_value_nonempty_new_leftcoefficients) = S ((S (pfc_index_nonempty_new_leftcoefficients)) * CC)) /\ exists ff_q_pfp_nonempty_new_leftcoefficientsentry. CB = ff_q_pfp_nonempty_new_leftcoefficientsentry * S ((S (pfc_index_nonempty_new_leftcoefficients)) * CC) + (pfc_value_nonempty_new_leftcoefficients))) /\ ((exists pfc_terms_code_nonempty_new_leftcoefficientscoefficient pfc_terms_scale_nonempty_new_leftcoefficientscoefficient pfc_natural_sum_nonempty_new_leftcoefficientscoefficient. ((forall pfc_index_nonempty_new_leftcoefficientscoefficientdiagonal. (exists pfa_gap_nonempty_new_leftcoefficientscoefficientdiagonalbound. pfa_gap_nonempty_new_leftcoefficientscoefficientdiagonalbound + S (pfc_index_nonempty_new_leftcoefficientscoefficientdiagonal) = (S (pfc_index_nonempty_new_leftcoefficients))) -> exists pfc_value_nonempty_new_leftcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_nonempty_new_leftcoefficientscoefficientdiagonalentry. ff_h_pfp_nonempty_new_leftcoefficientscoefficientdiagonalentry + S (pfc_value_nonempty_new_leftcoefficientscoefficientdiagonal) = S ((S (pfc_index_nonempty_new_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_nonempty_new_leftcoefficientscoefficient)) /\ exists ff_q_pfp_nonempty_new_leftcoefficientscoefficientdiagonalentry. pfc_terms_code_nonempty_new_leftcoefficientscoefficient = ff_q_pfp_nonempty_new_leftcoefficientscoefficientdiagonalentry * S ((S (pfc_index_nonempty_new_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_nonempty_new_leftcoefficientscoefficient) + (pfc_value_nonempty_new_leftcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_nonempty_new_leftcoefficientscoefficientdiagonalterm pfc_left_nonempty_new_leftcoefficientscoefficientdiagonalterm pfc_right_nonempty_new_leftcoefficientscoefficientdiagonalterm. (((pfc_index_nonempty_new_leftcoefficientscoefficientdiagonal)+pfc_complement_nonempty_new_leftcoefficientscoefficientdiagonalterm=(pfc_index_nonempty_new_leftcoefficients)) /\ ((((((exists pfa_gap_nonempty_new_leftcoefficientscoefficientdiagonaltermleftinside. pfa_gap_nonempty_new_leftcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_nonempty_new_leftcoefficientscoefficientdiagonal) = (t+L)) /\ ((((exists ff_h_pfp_nonempty_new_leftcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_nonempty_new_leftcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_nonempty_new_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_nonempty_new_leftcoefficientscoefficientdiagonal)) * AC)) /\ exists ff_q_pfp_nonempty_new_leftcoefficientscoefficientdiagonaltermleftentry. AB = ff_q_pfp_nonempty_new_leftcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_nonempty_new_leftcoefficientscoefficientdiagonal)) * AC) + (pfc_left_nonempty_new_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_new_leftcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_nonempty_new_leftcoefficientscoefficientdiagonaltermleftoutside+(t+L)=(pfc_index_nonempty_new_leftcoefficientscoefficientdiagonal)) /\ (((pfc_left_nonempty_new_leftcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_nonempty_new_leftcoefficientscoefficientdiagonaltermrightinside. pfa_gap_nonempty_new_leftcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_nonempty_new_leftcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_nonempty_new_leftcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_nonempty_new_leftcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_nonempty_new_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_nonempty_new_leftcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_nonempty_new_leftcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_nonempty_new_leftcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_nonempty_new_leftcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_nonempty_new_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_new_leftcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_nonempty_new_leftcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_nonempty_new_leftcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_nonempty_new_leftcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_nonempty_new_leftcoefficientscoefficientdiagonal)=pfc_left_nonempty_new_leftcoefficientscoefficientdiagonalterm*pfc_right_nonempty_new_leftcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_nonempty_new_leftcoefficientscoefficientsum fs_v_pfc_nonempty_new_leftcoefficientscoefficientsum. ((((exists fs_h_pfc_nonempty_new_leftcoefficientscoefficientsum_body_start. fs_h_pfc_nonempty_new_leftcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_nonempty_new_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_new_leftcoefficientscoefficientsum_body_start. fs_u_pfc_nonempty_new_leftcoefficientscoefficientsum = fs_q_pfc_nonempty_new_leftcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_nonempty_new_leftcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_nonempty_new_leftcoefficientscoefficientsum_body_terminal. fs_h_pfc_nonempty_new_leftcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_nonempty_new_leftcoefficientscoefficient) = S ((S (S (pfc_index_nonempty_new_leftcoefficients))) * fs_v_pfc_nonempty_new_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_new_leftcoefficientscoefficientsum_body_terminal. fs_u_pfc_nonempty_new_leftcoefficientscoefficientsum = fs_q_pfc_nonempty_new_leftcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_nonempty_new_leftcoefficients))) * fs_v_pfc_nonempty_new_leftcoefficientscoefficientsum) + (pfc_natural_sum_nonempty_new_leftcoefficientscoefficient))) /\ forall fs_i_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps = S (pfc_index_nonempty_new_leftcoefficients)) -> exists fs_a_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps fs_r_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps fs_s_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_nonempty_new_leftcoefficientscoefficient)) /\ exists fs_q_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_nonempty_new_leftcoefficientscoefficient = fs_q_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_nonempty_new_leftcoefficientscoefficient) + (fs_a_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_new_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_nonempty_new_leftcoefficientscoefficientsum = fs_q_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_new_leftcoefficientscoefficientsum) + (fs_r_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_new_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_nonempty_new_leftcoefficientscoefficientsum = fs_q_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_nonempty_new_leftcoefficientscoefficientsum) + (fs_s_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps = fs_r_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps + fs_a_pfc_nonempty_new_leftcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_nonempty_new_leftcoefficientscoefficientresiduebound. pfa_gap_nonempty_new_leftcoefficientscoefficientresiduebound + S (pfc_value_nonempty_new_leftcoefficients) = (p)) /\ ((exists pfa_offset_left_nonempty_new_leftcoefficientscoefficientresiduecongruence pfa_offset_right_nonempty_new_leftcoefficientscoefficientresiduecongruence. (pfc_natural_sum_nonempty_new_leftcoefficientscoefficient) + (p) * pfa_offset_left_nonempty_new_leftcoefficientscoefficientresiduecongruence = (pfc_value_nonempty_new_leftcoefficients) + (p) * pfa_offset_right_nonempty_new_leftcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((K=t+N) /\ ((((forall pfp_repeat_index_nonempty_product_padding_leftzeros. (exists pfa_gap_nonempty_product_padding_leftzerosindex. pfa_gap_nonempty_product_padding_leftzerosindex + S (pfp_repeat_index_nonempty_product_padding_leftzeros) = (t)) -> (((exists ff_h_pfp_nonempty_product_padding_leftzerosentry. ff_h_pfp_nonempty_product_padding_leftzerosentry + S (0) = S ((S (pfp_repeat_index_nonempty_product_padding_leftzeros)) * CC)) /\ exists ff_q_pfp_nonempty_product_padding_leftzerosentry. CB = ff_q_pfp_nonempty_product_padding_leftzerosentry * S ((S (pfp_repeat_index_nonempty_product_padding_leftzeros)) * CC) + (0)))) /\ ((forall pfrep_index_nonempty_product_padding_left pfrep_value_nonempty_product_padding_left. (exists pfa_gap_nonempty_product_padding_leftbound. pfa_gap_nonempty_product_padding_leftbound + S (pfrep_index_nonempty_product_padding_left) = (N)) -> (((exists ff_h_pfp_nonempty_product_padding_leftinput. ff_h_pfp_nonempty_product_padding_leftinput + S (pfrep_value_nonempty_product_padding_left) = S ((S (pfrep_index_nonempty_product_padding_left)) * cc)) /\ exists ff_q_pfp_nonempty_product_padding_leftinput. cb = ff_q_pfp_nonempty_product_padding_leftinput * S ((S (pfrep_index_nonempty_product_padding_left)) * cc) + (pfrep_value_nonempty_product_padding_left))) -> (((exists ff_h_pfp_nonempty_product_padding_leftoutput. ff_h_pfp_nonempty_product_padding_leftoutput + S (pfrep_value_nonempty_product_padding_left) = S ((S ((t)+pfrep_index_nonempty_product_padding_left)) * CC)) /\ exists ff_q_pfp_nonempty_product_padding_leftoutput. CB = ff_q_pfp_nonempty_product_padding_leftoutput * S ((S ((t)+pfrep_index_nonempty_product_padding_left)) * CC) + (pfrep_value_nonempty_product_padding_left))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro cb
  9. intro cc
  10. intro N
  11. intro AB
  12. intro AC
  13. intro t
  14. intro CB
  15. intro CC
  16. intro K
  17. intro hp
  18. intro hL
  19. intro hM
  20. intro hpad
  21. intro hc
  22. intro hn
  23. cases hc
  24. cases hc_right
  25. cases hc_right_right
  26. cases hn
  27. cases hn_right
  28. cases hn_right_right
  29. have hlength : K=t+N
  30. specialize polynomial_product_length_left_padding_left (L)
  31. specialize polynomial_product_length_left_padding_left (M)
  32. specialize polynomial_product_length_left_padding_left (N)
  33. specialize polynomial_product_length_left_padding_left (t)
  34. specialize polynomial_product_length_left_padding_left (K)
  35. apply polynomial_product_length_left_padding_left
  36. exact hc_right_right_left
  37. exact hL
  38. exact hM
  39. exact hn_right_right_left
  40. split
  41. exact hlength
  42. split
  43. intro i
  44. intro hi
  45. have hv : exists r. ((((exists ff_h_pfp_nonempty_zero_entry_left. ff_h_pfp_nonempty_zero_entry_left + S (r) = S ((S (i)) * CC)) /\ exists ff_q_pfp_nonempty_zero_entry_left. CB = ff_q_pfp_nonempty_zero_entry_left * S ((S (i)) * CC) + (r))) /\ ((exists pfc_terms_code_nonempty_zero_coefficient_left pfc_terms_scale_nonempty_zero_coefficient_left pfc_natural_sum_nonempty_zero_coefficient_left. ((forall pfc_index_nonempty_zero_coefficient_leftdiagonal. (exists pfa_gap_nonempty_zero_coefficient_leftdiagonalbound. pfa_gap_nonempty_zero_coefficient_leftdiagonalbound + S (pfc_index_nonempty_zero_coefficient_leftdiagonal) = (S (i))) -> exists pfc_value_nonempty_zero_coefficient_leftdiagonal. ((((exists ff_h_pfp_nonempty_zero_coefficient_leftdiagonalentry. ff_h_pfp_nonempty_zero_coefficient_leftdiagonalentry + S (pfc_value_nonempty_zero_coefficient_leftdiagonal) = S ((S (pfc_index_nonempty_zero_coefficient_leftdiagonal)) * pfc_terms_scale_nonempty_zero_coefficient_left)) /\ exists ff_q_pfp_nonempty_zero_coefficient_leftdiagonalentry. pfc_terms_code_nonempty_zero_coefficient_left = ff_q_pfp_nonempty_zero_coefficient_leftdiagonalentry * S ((S (pfc_index_nonempty_zero_coefficient_leftdiagonal)) * pfc_terms_scale_nonempty_zero_coefficient_left) + (pfc_value_nonempty_zero_coefficient_leftdiagonal))) /\ ((exists pfc_complement_nonempty_zero_coefficient_leftdiagonalterm pfc_left_nonempty_zero_coefficient_leftdiagonalterm pfc_right_nonempty_zero_coefficient_leftdiagonalterm. (((pfc_index_nonempty_zero_coefficient_leftdiagonal)+pfc_complement_nonempty_zero_coefficient_leftdiagonalterm=(i)) /\ ((((((exists pfa_gap_nonempty_zero_coefficient_leftdiagonaltermleftinside. pfa_gap_nonempty_zero_coefficient_leftdiagonaltermleftinside + S (pfc_index_nonempty_zero_coefficient_leftdiagonal) = (t+L)) /\ ((((exists ff_h_pfp_nonempty_zero_coefficient_leftdiagonaltermleftentry. ff_h_pfp_nonempty_zero_coefficient_leftdiagonaltermleftentry + S (pfc_left_nonempty_zero_coefficient_leftdiagonalterm) = S ((S (pfc_index_nonempty_zero_coefficient_leftdiagonal)) * AC)) /\ exists ff_q_pfp_nonempty_zero_coefficient_leftdiagonaltermleftentry. AB = ff_q_pfp_nonempty_zero_coefficient_leftdiagonaltermleftentry * S ((S (pfc_index_nonempty_zero_coefficient_leftdiagonal)) * AC) + (pfc_left_nonempty_zero_coefficient_leftdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_zero_coefficient_leftdiagonaltermleftoutside. pfc_gap_nonempty_zero_coefficient_leftdiagonaltermleftoutside+(t+L)=(pfc_index_nonempty_zero_coefficient_leftdiagonal)) /\ (((pfc_left_nonempty_zero_coefficient_leftdiagonalterm)=0))))) /\ ((((((exists pfa_gap_nonempty_zero_coefficient_leftdiagonaltermrightinside. pfa_gap_nonempty_zero_coefficient_leftdiagonaltermrightinside + S (pfc_complement_nonempty_zero_coefficient_leftdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_nonempty_zero_coefficient_leftdiagonaltermrightentry. ff_h_pfp_nonempty_zero_coefficient_leftdiagonaltermrightentry + S (pfc_right_nonempty_zero_coefficient_leftdiagonalterm) = S ((S (pfc_complement_nonempty_zero_coefficient_leftdiagonalterm)) * bc)) /\ exists ff_q_pfp_nonempty_zero_coefficient_leftdiagonaltermrightentry. bb = ff_q_pfp_nonempty_zero_coefficient_leftdiagonaltermrightentry * S ((S (pfc_complement_nonempty_zero_coefficient_leftdiagonalterm)) * bc) + (pfc_right_nonempty_zero_coefficient_leftdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_zero_coefficient_leftdiagonaltermrightoutside. pfc_gap_nonempty_zero_coefficient_leftdiagonaltermrightoutside+(M)=(pfc_complement_nonempty_zero_coefficient_leftdiagonalterm)) /\ (((pfc_right_nonempty_zero_coefficient_leftdiagonalterm)=0))))) /\ (((pfc_value_nonempty_zero_coefficient_leftdiagonal)=pfc_left_nonempty_zero_coefficient_leftdiagonalterm*pfc_right_nonempty_zero_coefficient_leftdiagonalterm))))))))))) /\ (((exists fs_u_pfc_nonempty_zero_coefficient_leftsum fs_v_pfc_nonempty_zero_coefficient_leftsum. ((((exists fs_h_pfc_nonempty_zero_coefficient_leftsum_body_start. fs_h_pfc_nonempty_zero_coefficient_leftsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_nonempty_zero_coefficient_leftsum)) /\ exists fs_q_pfc_nonempty_zero_coefficient_leftsum_body_start. fs_u_pfc_nonempty_zero_coefficient_leftsum = fs_q_pfc_nonempty_zero_coefficient_leftsum_body_start * S ((S (0)) * fs_v_pfc_nonempty_zero_coefficient_leftsum) + (0))) /\ ((((exists fs_h_pfc_nonempty_zero_coefficient_leftsum_body_terminal. fs_h_pfc_nonempty_zero_coefficient_leftsum_body_terminal + S (pfc_natural_sum_nonempty_zero_coefficient_left) = S ((S (S (i))) * fs_v_pfc_nonempty_zero_coefficient_leftsum)) /\ exists fs_q_pfc_nonempty_zero_coefficient_leftsum_body_terminal. fs_u_pfc_nonempty_zero_coefficient_leftsum = fs_q_pfc_nonempty_zero_coefficient_leftsum_body_terminal * S ((S (S (i))) * fs_v_pfc_nonempty_zero_coefficient_leftsum) + (pfc_natural_sum_nonempty_zero_coefficient_left))) /\ forall fs_i_pfc_nonempty_zero_coefficient_leftsum_body_steps. (exists fs_lt_pfc_nonempty_zero_coefficient_leftsum_body_steps_bound. fs_lt_pfc_nonempty_zero_coefficient_leftsum_body_steps_bound + S fs_i_pfc_nonempty_zero_coefficient_leftsum_body_steps = S (i)) -> exists fs_a_pfc_nonempty_zero_coefficient_leftsum_body_steps fs_r_pfc_nonempty_zero_coefficient_leftsum_body_steps fs_s_pfc_nonempty_zero_coefficient_leftsum_body_steps. ((((exists fs_h_pfc_nonempty_zero_coefficient_leftsum_body_steps_summand. fs_h_pfc_nonempty_zero_coefficient_leftsum_body_steps_summand + S (fs_a_pfc_nonempty_zero_coefficient_leftsum_body_steps) = S ((S (fs_i_pfc_nonempty_zero_coefficient_leftsum_body_steps)) * pfc_terms_scale_nonempty_zero_coefficient_left)) /\ exists fs_q_pfc_nonempty_zero_coefficient_leftsum_body_steps_summand. pfc_terms_code_nonempty_zero_coefficient_left = fs_q_pfc_nonempty_zero_coefficient_leftsum_body_steps_summand * S ((S (fs_i_pfc_nonempty_zero_coefficient_leftsum_body_steps)) * pfc_terms_scale_nonempty_zero_coefficient_left) + (fs_a_pfc_nonempty_zero_coefficient_leftsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_zero_coefficient_leftsum_body_steps_partial. fs_h_pfc_nonempty_zero_coefficient_leftsum_body_steps_partial + S (fs_r_pfc_nonempty_zero_coefficient_leftsum_body_steps) = S ((S (fs_i_pfc_nonempty_zero_coefficient_leftsum_body_steps)) * fs_v_pfc_nonempty_zero_coefficient_leftsum)) /\ exists fs_q_pfc_nonempty_zero_coefficient_leftsum_body_steps_partial. fs_u_pfc_nonempty_zero_coefficient_leftsum = fs_q_pfc_nonempty_zero_coefficient_leftsum_body_steps_partial * S ((S (fs_i_pfc_nonempty_zero_coefficient_leftsum_body_steps)) * fs_v_pfc_nonempty_zero_coefficient_leftsum) + (fs_r_pfc_nonempty_zero_coefficient_leftsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_zero_coefficient_leftsum_body_steps_successor. fs_h_pfc_nonempty_zero_coefficient_leftsum_body_steps_successor + S (fs_s_pfc_nonempty_zero_coefficient_leftsum_body_steps) = S ((S (S fs_i_pfc_nonempty_zero_coefficient_leftsum_body_steps)) * fs_v_pfc_nonempty_zero_coefficient_leftsum)) /\ exists fs_q_pfc_nonempty_zero_coefficient_leftsum_body_steps_successor. fs_u_pfc_nonempty_zero_coefficient_leftsum = fs_q_pfc_nonempty_zero_coefficient_leftsum_body_steps_successor * S ((S (S fs_i_pfc_nonempty_zero_coefficient_leftsum_body_steps)) * fs_v_pfc_nonempty_zero_coefficient_leftsum) + (fs_s_pfc_nonempty_zero_coefficient_leftsum_body_steps))) /\ fs_s_pfc_nonempty_zero_coefficient_leftsum_body_steps = fs_r_pfc_nonempty_zero_coefficient_leftsum_body_steps + fs_a_pfc_nonempty_zero_coefficient_leftsum_body_steps)))))) /\ ((((exists pfa_gap_nonempty_zero_coefficient_leftresiduebound. pfa_gap_nonempty_zero_coefficient_leftresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_nonempty_zero_coefficient_leftresiduecongruence pfa_offset_right_nonempty_zero_coefficient_leftresiduecongruence. (pfc_natural_sum_nonempty_zero_coefficient_left) + (p) * pfa_offset_left_nonempty_zero_coefficient_leftresiduecongruence = (r) + (p) * pfa_offset_right_nonempty_zero_coefficient_leftresiduecongruence)))))))))))
  46. specialize hn_right_right_right (i)
  47. apply hn_right_right_right
  48. specialize le_trans (S i)
  49. specialize le_trans (t)
  50. specialize le_trans (K)
  51. apply le_trans
  52. exact hi
  53. rewrite hlength
  54. specialize le_add_right (t)
  55. specialize le_add_right (N)
  56. apply le_add_right
  57. cases hv
  58. cases hv_witness
  59. have hzero : x=0
  60. specialize prime_field_convolution_coefficient_before_left_padding_left (p)
  61. specialize prime_field_convolution_coefficient_before_left_padding_left (ab)
  62. specialize prime_field_convolution_coefficient_before_left_padding_left (ac)
  63. specialize prime_field_convolution_coefficient_before_left_padding_left (L)
  64. specialize prime_field_convolution_coefficient_before_left_padding_left (bb)
  65. specialize prime_field_convolution_coefficient_before_left_padding_left (bc)
  66. specialize prime_field_convolution_coefficient_before_left_padding_left (M)
  67. specialize prime_field_convolution_coefficient_before_left_padding_left (AB)
  68. specialize prime_field_convolution_coefficient_before_left_padding_left (AC)
  69. specialize prime_field_convolution_coefficient_before_left_padding_left (t)
  70. specialize prime_field_convolution_coefficient_before_left_padding_left (i)
  71. specialize prime_field_convolution_coefficient_before_left_padding_left (x)
  72. apply prime_field_convolution_coefficient_before_left_padding_left
  73. exact hp
  74. exact hpad
  75. exact hi
  76. exact hv_witness_right
  77. rewrite hzero at hv_witness_left
  78. rewrite hzero at hv_witness_left
  79. exact hv_witness_left
  80. intro i
  81. intro a
  82. intro hi
  83. intro ha
  84. have hcoefficient : exists pfc_terms_code_nonempty_original_coefficient_left pfc_terms_scale_nonempty_original_coefficient_left pfc_natural_sum_nonempty_original_coefficient_left. ((forall pfc_index_nonempty_original_coefficient_leftdiagonal. (exists pfa_gap_nonempty_original_coefficient_leftdiagonalbound. pfa_gap_nonempty_original_coefficient_leftdiagonalbound + S (pfc_index_nonempty_original_coefficient_leftdiagonal) = (S (i))) -> exists pfc_value_nonempty_original_coefficient_leftdiagonal. ((((exists ff_h_pfp_nonempty_original_coefficient_leftdiagonalentry. ff_h_pfp_nonempty_original_coefficient_leftdiagonalentry + S (pfc_value_nonempty_original_coefficient_leftdiagonal) = S ((S (pfc_index_nonempty_original_coefficient_leftdiagonal)) * pfc_terms_scale_nonempty_original_coefficient_left)) /\ exists ff_q_pfp_nonempty_original_coefficient_leftdiagonalentry. pfc_terms_code_nonempty_original_coefficient_left = ff_q_pfp_nonempty_original_coefficient_leftdiagonalentry * S ((S (pfc_index_nonempty_original_coefficient_leftdiagonal)) * pfc_terms_scale_nonempty_original_coefficient_left) + (pfc_value_nonempty_original_coefficient_leftdiagonal))) /\ ((exists pfc_complement_nonempty_original_coefficient_leftdiagonalterm pfc_left_nonempty_original_coefficient_leftdiagonalterm pfc_right_nonempty_original_coefficient_leftdiagonalterm. (((pfc_index_nonempty_original_coefficient_leftdiagonal)+pfc_complement_nonempty_original_coefficient_leftdiagonalterm=(i)) /\ ((((((exists pfa_gap_nonempty_original_coefficient_leftdiagonaltermleftinside. pfa_gap_nonempty_original_coefficient_leftdiagonaltermleftinside + S (pfc_index_nonempty_original_coefficient_leftdiagonal) = (L)) /\ ((((exists ff_h_pfp_nonempty_original_coefficient_leftdiagonaltermleftentry. ff_h_pfp_nonempty_original_coefficient_leftdiagonaltermleftentry + S (pfc_left_nonempty_original_coefficient_leftdiagonalterm) = S ((S (pfc_index_nonempty_original_coefficient_leftdiagonal)) * ac)) /\ exists ff_q_pfp_nonempty_original_coefficient_leftdiagonaltermleftentry. ab = ff_q_pfp_nonempty_original_coefficient_leftdiagonaltermleftentry * S ((S (pfc_index_nonempty_original_coefficient_leftdiagonal)) * ac) + (pfc_left_nonempty_original_coefficient_leftdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_original_coefficient_leftdiagonaltermleftoutside. pfc_gap_nonempty_original_coefficient_leftdiagonaltermleftoutside+(L)=(pfc_index_nonempty_original_coefficient_leftdiagonal)) /\ (((pfc_left_nonempty_original_coefficient_leftdiagonalterm)=0))))) /\ ((((((exists pfa_gap_nonempty_original_coefficient_leftdiagonaltermrightinside. pfa_gap_nonempty_original_coefficient_leftdiagonaltermrightinside + S (pfc_complement_nonempty_original_coefficient_leftdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_nonempty_original_coefficient_leftdiagonaltermrightentry. ff_h_pfp_nonempty_original_coefficient_leftdiagonaltermrightentry + S (pfc_right_nonempty_original_coefficient_leftdiagonalterm) = S ((S (pfc_complement_nonempty_original_coefficient_leftdiagonalterm)) * bc)) /\ exists ff_q_pfp_nonempty_original_coefficient_leftdiagonaltermrightentry. bb = ff_q_pfp_nonempty_original_coefficient_leftdiagonaltermrightentry * S ((S (pfc_complement_nonempty_original_coefficient_leftdiagonalterm)) * bc) + (pfc_right_nonempty_original_coefficient_leftdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_original_coefficient_leftdiagonaltermrightoutside. pfc_gap_nonempty_original_coefficient_leftdiagonaltermrightoutside+(M)=(pfc_complement_nonempty_original_coefficient_leftdiagonalterm)) /\ (((pfc_right_nonempty_original_coefficient_leftdiagonalterm)=0))))) /\ (((pfc_value_nonempty_original_coefficient_leftdiagonal)=pfc_left_nonempty_original_coefficient_leftdiagonalterm*pfc_right_nonempty_original_coefficient_leftdiagonalterm))))))))))) /\ (((exists fs_u_pfc_nonempty_original_coefficient_leftsum fs_v_pfc_nonempty_original_coefficient_leftsum. ((((exists fs_h_pfc_nonempty_original_coefficient_leftsum_body_start. fs_h_pfc_nonempty_original_coefficient_leftsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_nonempty_original_coefficient_leftsum)) /\ exists fs_q_pfc_nonempty_original_coefficient_leftsum_body_start. fs_u_pfc_nonempty_original_coefficient_leftsum = fs_q_pfc_nonempty_original_coefficient_leftsum_body_start * S ((S (0)) * fs_v_pfc_nonempty_original_coefficient_leftsum) + (0))) /\ ((((exists fs_h_pfc_nonempty_original_coefficient_leftsum_body_terminal. fs_h_pfc_nonempty_original_coefficient_leftsum_body_terminal + S (pfc_natural_sum_nonempty_original_coefficient_left) = S ((S (S (i))) * fs_v_pfc_nonempty_original_coefficient_leftsum)) /\ exists fs_q_pfc_nonempty_original_coefficient_leftsum_body_terminal. fs_u_pfc_nonempty_original_coefficient_leftsum = fs_q_pfc_nonempty_original_coefficient_leftsum_body_terminal * S ((S (S (i))) * fs_v_pfc_nonempty_original_coefficient_leftsum) + (pfc_natural_sum_nonempty_original_coefficient_left))) /\ forall fs_i_pfc_nonempty_original_coefficient_leftsum_body_steps. (exists fs_lt_pfc_nonempty_original_coefficient_leftsum_body_steps_bound. fs_lt_pfc_nonempty_original_coefficient_leftsum_body_steps_bound + S fs_i_pfc_nonempty_original_coefficient_leftsum_body_steps = S (i)) -> exists fs_a_pfc_nonempty_original_coefficient_leftsum_body_steps fs_r_pfc_nonempty_original_coefficient_leftsum_body_steps fs_s_pfc_nonempty_original_coefficient_leftsum_body_steps. ((((exists fs_h_pfc_nonempty_original_coefficient_leftsum_body_steps_summand. fs_h_pfc_nonempty_original_coefficient_leftsum_body_steps_summand + S (fs_a_pfc_nonempty_original_coefficient_leftsum_body_steps) = S ((S (fs_i_pfc_nonempty_original_coefficient_leftsum_body_steps)) * pfc_terms_scale_nonempty_original_coefficient_left)) /\ exists fs_q_pfc_nonempty_original_coefficient_leftsum_body_steps_summand. pfc_terms_code_nonempty_original_coefficient_left = fs_q_pfc_nonempty_original_coefficient_leftsum_body_steps_summand * S ((S (fs_i_pfc_nonempty_original_coefficient_leftsum_body_steps)) * pfc_terms_scale_nonempty_original_coefficient_left) + (fs_a_pfc_nonempty_original_coefficient_leftsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_original_coefficient_leftsum_body_steps_partial. fs_h_pfc_nonempty_original_coefficient_leftsum_body_steps_partial + S (fs_r_pfc_nonempty_original_coefficient_leftsum_body_steps) = S ((S (fs_i_pfc_nonempty_original_coefficient_leftsum_body_steps)) * fs_v_pfc_nonempty_original_coefficient_leftsum)) /\ exists fs_q_pfc_nonempty_original_coefficient_leftsum_body_steps_partial. fs_u_pfc_nonempty_original_coefficient_leftsum = fs_q_pfc_nonempty_original_coefficient_leftsum_body_steps_partial * S ((S (fs_i_pfc_nonempty_original_coefficient_leftsum_body_steps)) * fs_v_pfc_nonempty_original_coefficient_leftsum) + (fs_r_pfc_nonempty_original_coefficient_leftsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_original_coefficient_leftsum_body_steps_successor. fs_h_pfc_nonempty_original_coefficient_leftsum_body_steps_successor + S (fs_s_pfc_nonempty_original_coefficient_leftsum_body_steps) = S ((S (S fs_i_pfc_nonempty_original_coefficient_leftsum_body_steps)) * fs_v_pfc_nonempty_original_coefficient_leftsum)) /\ exists fs_q_pfc_nonempty_original_coefficient_leftsum_body_steps_successor. fs_u_pfc_nonempty_original_coefficient_leftsum = fs_q_pfc_nonempty_original_coefficient_leftsum_body_steps_successor * S ((S (S fs_i_pfc_nonempty_original_coefficient_leftsum_body_steps)) * fs_v_pfc_nonempty_original_coefficient_leftsum) + (fs_s_pfc_nonempty_original_coefficient_leftsum_body_steps))) /\ fs_s_pfc_nonempty_original_coefficient_leftsum_body_steps = fs_r_pfc_nonempty_original_coefficient_leftsum_body_steps + fs_a_pfc_nonempty_original_coefficient_leftsum_body_steps)))))) /\ ((((exists pfa_gap_nonempty_original_coefficient_leftresiduebound. pfa_gap_nonempty_original_coefficient_leftresiduebound + S (a) = (p)) /\ ((exists pfa_offset_left_nonempty_original_coefficient_leftresiduecongruence pfa_offset_right_nonempty_original_coefficient_leftresiduecongruence. (pfc_natural_sum_nonempty_original_coefficient_left) + (p) * pfa_offset_left_nonempty_original_coefficient_leftresiduecongruence = (a) + (p) * pfa_offset_right_nonempty_original_coefficient_leftresiduecongruence))))))))
  85. specialize prime_field_convolution_prefix_entry (p)
  86. specialize prime_field_convolution_prefix_entry (ab)
  87. specialize prime_field_convolution_prefix_entry (ac)
  88. specialize prime_field_convolution_prefix_entry (L)
  89. specialize prime_field_convolution_prefix_entry (bb)
  90. specialize prime_field_convolution_prefix_entry (bc)
  91. specialize prime_field_convolution_prefix_entry (M)
  92. specialize prime_field_convolution_prefix_entry (cb)
  93. specialize prime_field_convolution_prefix_entry (cc)
  94. specialize prime_field_convolution_prefix_entry (N)
  95. specialize prime_field_convolution_prefix_entry (i)
  96. specialize prime_field_convolution_prefix_entry (a)
  97. apply prime_field_convolution_prefix_entry
  98. exact hc_right_right_right
  99. exact hi
  100. exact ha
  101. have hv : exists r. ((((exists ff_h_pfp_nonempty_shifted_entry_left. ff_h_pfp_nonempty_shifted_entry_left + S (r) = S ((S (t+i)) * CC)) /\ exists ff_q_pfp_nonempty_shifted_entry_left. CB = ff_q_pfp_nonempty_shifted_entry_left * S ((S (t+i)) * CC) + (r))) /\ ((exists pfc_terms_code_nonempty_shifted_coefficient_left pfc_terms_scale_nonempty_shifted_coefficient_left pfc_natural_sum_nonempty_shifted_coefficient_left. ((forall pfc_index_nonempty_shifted_coefficient_leftdiagonal. (exists pfa_gap_nonempty_shifted_coefficient_leftdiagonalbound. pfa_gap_nonempty_shifted_coefficient_leftdiagonalbound + S (pfc_index_nonempty_shifted_coefficient_leftdiagonal) = (S (t+i))) -> exists pfc_value_nonempty_shifted_coefficient_leftdiagonal. ((((exists ff_h_pfp_nonempty_shifted_coefficient_leftdiagonalentry. ff_h_pfp_nonempty_shifted_coefficient_leftdiagonalentry + S (pfc_value_nonempty_shifted_coefficient_leftdiagonal) = S ((S (pfc_index_nonempty_shifted_coefficient_leftdiagonal)) * pfc_terms_scale_nonempty_shifted_coefficient_left)) /\ exists ff_q_pfp_nonempty_shifted_coefficient_leftdiagonalentry. pfc_terms_code_nonempty_shifted_coefficient_left = ff_q_pfp_nonempty_shifted_coefficient_leftdiagonalentry * S ((S (pfc_index_nonempty_shifted_coefficient_leftdiagonal)) * pfc_terms_scale_nonempty_shifted_coefficient_left) + (pfc_value_nonempty_shifted_coefficient_leftdiagonal))) /\ ((exists pfc_complement_nonempty_shifted_coefficient_leftdiagonalterm pfc_left_nonempty_shifted_coefficient_leftdiagonalterm pfc_right_nonempty_shifted_coefficient_leftdiagonalterm. (((pfc_index_nonempty_shifted_coefficient_leftdiagonal)+pfc_complement_nonempty_shifted_coefficient_leftdiagonalterm=(t+i)) /\ ((((((exists pfa_gap_nonempty_shifted_coefficient_leftdiagonaltermleftinside. pfa_gap_nonempty_shifted_coefficient_leftdiagonaltermleftinside + S (pfc_index_nonempty_shifted_coefficient_leftdiagonal) = (t+L)) /\ ((((exists ff_h_pfp_nonempty_shifted_coefficient_leftdiagonaltermleftentry. ff_h_pfp_nonempty_shifted_coefficient_leftdiagonaltermleftentry + S (pfc_left_nonempty_shifted_coefficient_leftdiagonalterm) = S ((S (pfc_index_nonempty_shifted_coefficient_leftdiagonal)) * AC)) /\ exists ff_q_pfp_nonempty_shifted_coefficient_leftdiagonaltermleftentry. AB = ff_q_pfp_nonempty_shifted_coefficient_leftdiagonaltermleftentry * S ((S (pfc_index_nonempty_shifted_coefficient_leftdiagonal)) * AC) + (pfc_left_nonempty_shifted_coefficient_leftdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_shifted_coefficient_leftdiagonaltermleftoutside. pfc_gap_nonempty_shifted_coefficient_leftdiagonaltermleftoutside+(t+L)=(pfc_index_nonempty_shifted_coefficient_leftdiagonal)) /\ (((pfc_left_nonempty_shifted_coefficient_leftdiagonalterm)=0))))) /\ ((((((exists pfa_gap_nonempty_shifted_coefficient_leftdiagonaltermrightinside. pfa_gap_nonempty_shifted_coefficient_leftdiagonaltermrightinside + S (pfc_complement_nonempty_shifted_coefficient_leftdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_nonempty_shifted_coefficient_leftdiagonaltermrightentry. ff_h_pfp_nonempty_shifted_coefficient_leftdiagonaltermrightentry + S (pfc_right_nonempty_shifted_coefficient_leftdiagonalterm) = S ((S (pfc_complement_nonempty_shifted_coefficient_leftdiagonalterm)) * bc)) /\ exists ff_q_pfp_nonempty_shifted_coefficient_leftdiagonaltermrightentry. bb = ff_q_pfp_nonempty_shifted_coefficient_leftdiagonaltermrightentry * S ((S (pfc_complement_nonempty_shifted_coefficient_leftdiagonalterm)) * bc) + (pfc_right_nonempty_shifted_coefficient_leftdiagonalterm)))))) \/ (((exists pfc_gap_nonempty_shifted_coefficient_leftdiagonaltermrightoutside. pfc_gap_nonempty_shifted_coefficient_leftdiagonaltermrightoutside+(M)=(pfc_complement_nonempty_shifted_coefficient_leftdiagonalterm)) /\ (((pfc_right_nonempty_shifted_coefficient_leftdiagonalterm)=0))))) /\ (((pfc_value_nonempty_shifted_coefficient_leftdiagonal)=pfc_left_nonempty_shifted_coefficient_leftdiagonalterm*pfc_right_nonempty_shifted_coefficient_leftdiagonalterm))))))))))) /\ (((exists fs_u_pfc_nonempty_shifted_coefficient_leftsum fs_v_pfc_nonempty_shifted_coefficient_leftsum. ((((exists fs_h_pfc_nonempty_shifted_coefficient_leftsum_body_start. fs_h_pfc_nonempty_shifted_coefficient_leftsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_nonempty_shifted_coefficient_leftsum)) /\ exists fs_q_pfc_nonempty_shifted_coefficient_leftsum_body_start. fs_u_pfc_nonempty_shifted_coefficient_leftsum = fs_q_pfc_nonempty_shifted_coefficient_leftsum_body_start * S ((S (0)) * fs_v_pfc_nonempty_shifted_coefficient_leftsum) + (0))) /\ ((((exists fs_h_pfc_nonempty_shifted_coefficient_leftsum_body_terminal. fs_h_pfc_nonempty_shifted_coefficient_leftsum_body_terminal + S (pfc_natural_sum_nonempty_shifted_coefficient_left) = S ((S (S (t+i))) * fs_v_pfc_nonempty_shifted_coefficient_leftsum)) /\ exists fs_q_pfc_nonempty_shifted_coefficient_leftsum_body_terminal. fs_u_pfc_nonempty_shifted_coefficient_leftsum = fs_q_pfc_nonempty_shifted_coefficient_leftsum_body_terminal * S ((S (S (t+i))) * fs_v_pfc_nonempty_shifted_coefficient_leftsum) + (pfc_natural_sum_nonempty_shifted_coefficient_left))) /\ forall fs_i_pfc_nonempty_shifted_coefficient_leftsum_body_steps. (exists fs_lt_pfc_nonempty_shifted_coefficient_leftsum_body_steps_bound. fs_lt_pfc_nonempty_shifted_coefficient_leftsum_body_steps_bound + S fs_i_pfc_nonempty_shifted_coefficient_leftsum_body_steps = S (t+i)) -> exists fs_a_pfc_nonempty_shifted_coefficient_leftsum_body_steps fs_r_pfc_nonempty_shifted_coefficient_leftsum_body_steps fs_s_pfc_nonempty_shifted_coefficient_leftsum_body_steps. ((((exists fs_h_pfc_nonempty_shifted_coefficient_leftsum_body_steps_summand. fs_h_pfc_nonempty_shifted_coefficient_leftsum_body_steps_summand + S (fs_a_pfc_nonempty_shifted_coefficient_leftsum_body_steps) = S ((S (fs_i_pfc_nonempty_shifted_coefficient_leftsum_body_steps)) * pfc_terms_scale_nonempty_shifted_coefficient_left)) /\ exists fs_q_pfc_nonempty_shifted_coefficient_leftsum_body_steps_summand. pfc_terms_code_nonempty_shifted_coefficient_left = fs_q_pfc_nonempty_shifted_coefficient_leftsum_body_steps_summand * S ((S (fs_i_pfc_nonempty_shifted_coefficient_leftsum_body_steps)) * pfc_terms_scale_nonempty_shifted_coefficient_left) + (fs_a_pfc_nonempty_shifted_coefficient_leftsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_shifted_coefficient_leftsum_body_steps_partial. fs_h_pfc_nonempty_shifted_coefficient_leftsum_body_steps_partial + S (fs_r_pfc_nonempty_shifted_coefficient_leftsum_body_steps) = S ((S (fs_i_pfc_nonempty_shifted_coefficient_leftsum_body_steps)) * fs_v_pfc_nonempty_shifted_coefficient_leftsum)) /\ exists fs_q_pfc_nonempty_shifted_coefficient_leftsum_body_steps_partial. fs_u_pfc_nonempty_shifted_coefficient_leftsum = fs_q_pfc_nonempty_shifted_coefficient_leftsum_body_steps_partial * S ((S (fs_i_pfc_nonempty_shifted_coefficient_leftsum_body_steps)) * fs_v_pfc_nonempty_shifted_coefficient_leftsum) + (fs_r_pfc_nonempty_shifted_coefficient_leftsum_body_steps))) /\ ((((exists fs_h_pfc_nonempty_shifted_coefficient_leftsum_body_steps_successor. fs_h_pfc_nonempty_shifted_coefficient_leftsum_body_steps_successor + S (fs_s_pfc_nonempty_shifted_coefficient_leftsum_body_steps) = S ((S (S fs_i_pfc_nonempty_shifted_coefficient_leftsum_body_steps)) * fs_v_pfc_nonempty_shifted_coefficient_leftsum)) /\ exists fs_q_pfc_nonempty_shifted_coefficient_leftsum_body_steps_successor. fs_u_pfc_nonempty_shifted_coefficient_leftsum = fs_q_pfc_nonempty_shifted_coefficient_leftsum_body_steps_successor * S ((S (S fs_i_pfc_nonempty_shifted_coefficient_leftsum_body_steps)) * fs_v_pfc_nonempty_shifted_coefficient_leftsum) + (fs_s_pfc_nonempty_shifted_coefficient_leftsum_body_steps))) /\ fs_s_pfc_nonempty_shifted_coefficient_leftsum_body_steps = fs_r_pfc_nonempty_shifted_coefficient_leftsum_body_steps + fs_a_pfc_nonempty_shifted_coefficient_leftsum_body_steps)))))) /\ ((((exists pfa_gap_nonempty_shifted_coefficient_leftresiduebound. pfa_gap_nonempty_shifted_coefficient_leftresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_nonempty_shifted_coefficient_leftresiduecongruence pfa_offset_right_nonempty_shifted_coefficient_leftresiduecongruence. (pfc_natural_sum_nonempty_shifted_coefficient_left) + (p) * pfa_offset_left_nonempty_shifted_coefficient_leftresiduecongruence = (r) + (p) * pfa_offset_right_nonempty_shifted_coefficient_leftresiduecongruence)))))))))))
  102. specialize hn_right_right_right (t+i)
  103. apply hn_right_right_right
  104. rewrite hlength
  105. specialize matrix_recursive_lt_add_left (i)
  106. specialize matrix_recursive_lt_add_left (N)
  107. specialize matrix_recursive_lt_add_left (t)
  108. apply matrix_recursive_lt_add_left
  109. exact hi
  110. cases hv
  111. cases hv_witness
  112. have heq : x=a
  113. specialize prime_field_convolution_coefficient_functional (p)
  114. specialize prime_field_convolution_coefficient_functional (AB)
  115. specialize prime_field_convolution_coefficient_functional (AC)
  116. specialize prime_field_convolution_coefficient_functional (t+L)
  117. specialize prime_field_convolution_coefficient_functional (bb)
  118. specialize prime_field_convolution_coefficient_functional (bc)
  119. specialize prime_field_convolution_coefficient_functional (M)
  120. specialize prime_field_convolution_coefficient_functional (t+i)
  121. specialize prime_field_convolution_coefficient_functional (x)
  122. specialize prime_field_convolution_coefficient_functional (a)
  123. apply prime_field_convolution_coefficient_functional
  124. exact hv_witness_right
  125. specialize prime_field_convolution_coefficient_left_padding_left (p)
  126. specialize prime_field_convolution_coefficient_left_padding_left (ab)
  127. specialize prime_field_convolution_coefficient_left_padding_left (ac)
  128. specialize prime_field_convolution_coefficient_left_padding_left (L)
  129. specialize prime_field_convolution_coefficient_left_padding_left (bb)
  130. specialize prime_field_convolution_coefficient_left_padding_left (bc)
  131. specialize prime_field_convolution_coefficient_left_padding_left (M)
  132. specialize prime_field_convolution_coefficient_left_padding_left (AB)
  133. specialize prime_field_convolution_coefficient_left_padding_left (AC)
  134. specialize prime_field_convolution_coefficient_left_padding_left (t)
  135. specialize prime_field_convolution_coefficient_left_padding_left (i)
  136. specialize prime_field_convolution_coefficient_left_padding_left (a)
  137. apply prime_field_convolution_coefficient_left_padding_left
  138. exact hpad
  139. exact hcoefficient
  140. rewrite heq at hv_witness_left
  141. rewrite heq at hv_witness_left
  142. exact hv_witness_left
prime_field_polynomial_convolution_left_padding_equivalent_left · unchanged support, not a new admission
forall p ab ac L bb bc M cb cc N AB AC t CB CC K. (~(p=0)) -> (((forall pfp_repeat_index_product_factor_padding_leftzeros. (exists pfa_gap_product_factor_padding_leftzerosindex. pfa_gap_product_factor_padding_leftzerosindex + S (pfp_repeat_index_product_factor_padding_leftzeros) = (t)) -> (((exists ff_h_pfp_product_factor_padding_leftzerosentry. ff_h_pfp_product_factor_padding_leftzerosentry + S (0) = S ((S (pfp_repeat_index_product_factor_padding_leftzeros)) * AC)) /\ exists ff_q_pfp_product_factor_padding_leftzerosentry. AB = ff_q_pfp_product_factor_padding_leftzerosentry * S ((S (pfp_repeat_index_product_factor_padding_leftzeros)) * AC) + (0)))) /\ ((forall pfrep_index_product_factor_padding_left pfrep_value_product_factor_padding_left. (exists pfa_gap_product_factor_padding_leftbound. pfa_gap_product_factor_padding_leftbound + S (pfrep_index_product_factor_padding_left) = (L)) -> (((exists ff_h_pfp_product_factor_padding_leftinput. ff_h_pfp_product_factor_padding_leftinput + S (pfrep_value_product_factor_padding_left) = S ((S (pfrep_index_product_factor_padding_left)) * ac)) /\ exists ff_q_pfp_product_factor_padding_leftinput. ab = ff_q_pfp_product_factor_padding_leftinput * S ((S (pfrep_index_product_factor_padding_left)) * ac) + (pfrep_value_product_factor_padding_left))) -> (((exists ff_h_pfp_product_factor_padding_leftoutput. ff_h_pfp_product_factor_padding_leftoutput + S (pfrep_value_product_factor_padding_left) = S ((S ((t)+pfrep_index_product_factor_padding_left)) * AC)) /\ exists ff_q_pfp_product_factor_padding_leftoutput. AB = ff_q_pfp_product_factor_padding_leftoutput * S ((S ((t)+pfrep_index_product_factor_padding_left)) * AC) + (pfrep_value_product_factor_padding_left))))))) -> (((forall fom_index_pfp_product_original_leftleft. (exists fom_gap_pfp_product_original_leftleft_index_bound. fom_gap_pfp_product_original_leftleft_index_bound + S (fom_index_pfp_product_original_leftleft) = L) -> exists fom_value_pfp_product_original_leftleft. ((((exists fom_beta_height_pfp_product_original_leftleft_entry. fom_beta_height_pfp_product_original_leftleft_entry + S (fom_value_pfp_product_original_leftleft) = S ((S (fom_index_pfp_product_original_leftleft)) * ac)) /\ exists fom_beta_quotient_pfp_product_original_leftleft_entry. ab = fom_beta_quotient_pfp_product_original_leftleft_entry * S ((S (fom_index_pfp_product_original_leftleft)) * ac) + (fom_value_pfp_product_original_leftleft))) /\ (exists fom_gap_pfp_product_original_leftleft_value_bound. fom_gap_pfp_product_original_leftleft_value_bound + S (fom_value_pfp_product_original_leftleft) = p))) /\ (((forall fom_index_pfp_product_original_leftright. (exists fom_gap_pfp_product_original_leftright_index_bound. fom_gap_pfp_product_original_leftright_index_bound + S (fom_index_pfp_product_original_leftright) = M) -> exists fom_value_pfp_product_original_leftright. ((((exists fom_beta_height_pfp_product_original_leftright_entry. fom_beta_height_pfp_product_original_leftright_entry + S (fom_value_pfp_product_original_leftright) = S ((S (fom_index_pfp_product_original_leftright)) * bc)) /\ exists fom_beta_quotient_pfp_product_original_leftright_entry. bb = fom_beta_quotient_pfp_product_original_leftright_entry * S ((S (fom_index_pfp_product_original_leftright)) * bc) + (fom_value_pfp_product_original_leftright))) /\ (exists fom_gap_pfp_product_original_leftright_value_bound. fom_gap_pfp_product_original_leftright_value_bound + S (fom_value_pfp_product_original_leftright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_product_original_leftcoefficients. (exists pfa_gap_product_original_leftcoefficientsbound. pfa_gap_product_original_leftcoefficientsbound + S (pfc_index_product_original_leftcoefficients) = (N)) -> exists pfc_value_product_original_leftcoefficients. ((((exists ff_h_pfp_product_original_leftcoefficientsentry. ff_h_pfp_product_original_leftcoefficientsentry + S (pfc_value_product_original_leftcoefficients) = S ((S (pfc_index_product_original_leftcoefficients)) * cc)) /\ exists ff_q_pfp_product_original_leftcoefficientsentry. cb = ff_q_pfp_product_original_leftcoefficientsentry * S ((S (pfc_index_product_original_leftcoefficients)) * cc) + (pfc_value_product_original_leftcoefficients))) /\ ((exists pfc_terms_code_product_original_leftcoefficientscoefficient pfc_terms_scale_product_original_leftcoefficientscoefficient pfc_natural_sum_product_original_leftcoefficientscoefficient. ((forall pfc_index_product_original_leftcoefficientscoefficientdiagonal. (exists pfa_gap_product_original_leftcoefficientscoefficientdiagonalbound. pfa_gap_product_original_leftcoefficientscoefficientdiagonalbound + S (pfc_index_product_original_leftcoefficientscoefficientdiagonal) = (S (pfc_index_product_original_leftcoefficients))) -> exists pfc_value_product_original_leftcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_product_original_leftcoefficientscoefficientdiagonalentry. ff_h_pfp_product_original_leftcoefficientscoefficientdiagonalentry + S (pfc_value_product_original_leftcoefficientscoefficientdiagonal) = S ((S (pfc_index_product_original_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_product_original_leftcoefficientscoefficient)) /\ exists ff_q_pfp_product_original_leftcoefficientscoefficientdiagonalentry. pfc_terms_code_product_original_leftcoefficientscoefficient = ff_q_pfp_product_original_leftcoefficientscoefficientdiagonalentry * S ((S (pfc_index_product_original_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_product_original_leftcoefficientscoefficient) + (pfc_value_product_original_leftcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_product_original_leftcoefficientscoefficientdiagonalterm pfc_left_product_original_leftcoefficientscoefficientdiagonalterm pfc_right_product_original_leftcoefficientscoefficientdiagonalterm. (((pfc_index_product_original_leftcoefficientscoefficientdiagonal)+pfc_complement_product_original_leftcoefficientscoefficientdiagonalterm=(pfc_index_product_original_leftcoefficients)) /\ ((((((exists pfa_gap_product_original_leftcoefficientscoefficientdiagonaltermleftinside. pfa_gap_product_original_leftcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_product_original_leftcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_product_original_leftcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_product_original_leftcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_product_original_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_product_original_leftcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_product_original_leftcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_product_original_leftcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_product_original_leftcoefficientscoefficientdiagonal)) * ac) + (pfc_left_product_original_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_product_original_leftcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_product_original_leftcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_product_original_leftcoefficientscoefficientdiagonal)) /\ (((pfc_left_product_original_leftcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_product_original_leftcoefficientscoefficientdiagonaltermrightinside. pfa_gap_product_original_leftcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_product_original_leftcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_product_original_leftcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_product_original_leftcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_product_original_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_product_original_leftcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_product_original_leftcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_product_original_leftcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_product_original_leftcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_product_original_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_product_original_leftcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_product_original_leftcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_product_original_leftcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_product_original_leftcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_product_original_leftcoefficientscoefficientdiagonal)=pfc_left_product_original_leftcoefficientscoefficientdiagonalterm*pfc_right_product_original_leftcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_product_original_leftcoefficientscoefficientsum fs_v_pfc_product_original_leftcoefficientscoefficientsum. ((((exists fs_h_pfc_product_original_leftcoefficientscoefficientsum_body_start. fs_h_pfc_product_original_leftcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_product_original_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_original_leftcoefficientscoefficientsum_body_start. fs_u_pfc_product_original_leftcoefficientscoefficientsum = fs_q_pfc_product_original_leftcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_product_original_leftcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_product_original_leftcoefficientscoefficientsum_body_terminal. fs_h_pfc_product_original_leftcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_product_original_leftcoefficientscoefficient) = S ((S (S (pfc_index_product_original_leftcoefficients))) * fs_v_pfc_product_original_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_original_leftcoefficientscoefficientsum_body_terminal. fs_u_pfc_product_original_leftcoefficientscoefficientsum = fs_q_pfc_product_original_leftcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_product_original_leftcoefficients))) * fs_v_pfc_product_original_leftcoefficientscoefficientsum) + (pfc_natural_sum_product_original_leftcoefficientscoefficient))) /\ forall fs_i_pfc_product_original_leftcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_product_original_leftcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_product_original_leftcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_product_original_leftcoefficientscoefficientsum_body_steps = S (pfc_index_product_original_leftcoefficients)) -> exists fs_a_pfc_product_original_leftcoefficientscoefficientsum_body_steps fs_r_pfc_product_original_leftcoefficientscoefficientsum_body_steps fs_s_pfc_product_original_leftcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_product_original_leftcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_product_original_leftcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_product_original_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_product_original_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_product_original_leftcoefficientscoefficient)) /\ exists fs_q_pfc_product_original_leftcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_product_original_leftcoefficientscoefficient = fs_q_pfc_product_original_leftcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_product_original_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_product_original_leftcoefficientscoefficient) + (fs_a_pfc_product_original_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_product_original_leftcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_product_original_leftcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_product_original_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_product_original_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_original_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_original_leftcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_product_original_leftcoefficientscoefficientsum = fs_q_pfc_product_original_leftcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_product_original_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_original_leftcoefficientscoefficientsum) + (fs_r_pfc_product_original_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_product_original_leftcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_product_original_leftcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_product_original_leftcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_product_original_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_original_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_original_leftcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_product_original_leftcoefficientscoefficientsum = fs_q_pfc_product_original_leftcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_product_original_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_original_leftcoefficientscoefficientsum) + (fs_s_pfc_product_original_leftcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_product_original_leftcoefficientscoefficientsum_body_steps = fs_r_pfc_product_original_leftcoefficientscoefficientsum_body_steps + fs_a_pfc_product_original_leftcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_product_original_leftcoefficientscoefficientresiduebound. pfa_gap_product_original_leftcoefficientscoefficientresiduebound + S (pfc_value_product_original_leftcoefficients) = (p)) /\ ((exists pfa_offset_left_product_original_leftcoefficientscoefficientresiduecongruence pfa_offset_right_product_original_leftcoefficientscoefficientresiduecongruence. (pfc_natural_sum_product_original_leftcoefficientscoefficient) + (p) * pfa_offset_left_product_original_leftcoefficientscoefficientresiduecongruence = (pfc_value_product_original_leftcoefficients) + (p) * pfa_offset_right_product_original_leftcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_product_padded_leftleft. (exists fom_gap_pfp_product_padded_leftleft_index_bound. fom_gap_pfp_product_padded_leftleft_index_bound + S (fom_index_pfp_product_padded_leftleft) = t+L) -> exists fom_value_pfp_product_padded_leftleft. ((((exists fom_beta_height_pfp_product_padded_leftleft_entry. fom_beta_height_pfp_product_padded_leftleft_entry + S (fom_value_pfp_product_padded_leftleft) = S ((S (fom_index_pfp_product_padded_leftleft)) * AC)) /\ exists fom_beta_quotient_pfp_product_padded_leftleft_entry. AB = fom_beta_quotient_pfp_product_padded_leftleft_entry * S ((S (fom_index_pfp_product_padded_leftleft)) * AC) + (fom_value_pfp_product_padded_leftleft))) /\ (exists fom_gap_pfp_product_padded_leftleft_value_bound. fom_gap_pfp_product_padded_leftleft_value_bound + S (fom_value_pfp_product_padded_leftleft) = p))) /\ (((forall fom_index_pfp_product_padded_leftright. (exists fom_gap_pfp_product_padded_leftright_index_bound. fom_gap_pfp_product_padded_leftright_index_bound + S (fom_index_pfp_product_padded_leftright) = M) -> exists fom_value_pfp_product_padded_leftright. ((((exists fom_beta_height_pfp_product_padded_leftright_entry. fom_beta_height_pfp_product_padded_leftright_entry + S (fom_value_pfp_product_padded_leftright) = S ((S (fom_index_pfp_product_padded_leftright)) * bc)) /\ exists fom_beta_quotient_pfp_product_padded_leftright_entry. bb = fom_beta_quotient_pfp_product_padded_leftright_entry * S ((S (fom_index_pfp_product_padded_leftright)) * bc) + (fom_value_pfp_product_padded_leftright))) /\ (exists fom_gap_pfp_product_padded_leftright_value_bound. fom_gap_pfp_product_padded_leftright_value_bound + S (fom_value_pfp_product_padded_leftright) = p))) /\ (((((((t+L)=0 \/ (M)=0) /\ (((K)=0)))) \/ (((~((t+L)=0)) /\ (((~((M)=0)) /\ (((t+L)+(M)=S (K)))))))) /\ ((forall pfc_index_product_padded_leftcoefficients. (exists pfa_gap_product_padded_leftcoefficientsbound. pfa_gap_product_padded_leftcoefficientsbound + S (pfc_index_product_padded_leftcoefficients) = (K)) -> exists pfc_value_product_padded_leftcoefficients. ((((exists ff_h_pfp_product_padded_leftcoefficientsentry. ff_h_pfp_product_padded_leftcoefficientsentry + S (pfc_value_product_padded_leftcoefficients) = S ((S (pfc_index_product_padded_leftcoefficients)) * CC)) /\ exists ff_q_pfp_product_padded_leftcoefficientsentry. CB = ff_q_pfp_product_padded_leftcoefficientsentry * S ((S (pfc_index_product_padded_leftcoefficients)) * CC) + (pfc_value_product_padded_leftcoefficients))) /\ ((exists pfc_terms_code_product_padded_leftcoefficientscoefficient pfc_terms_scale_product_padded_leftcoefficientscoefficient pfc_natural_sum_product_padded_leftcoefficientscoefficient. ((forall pfc_index_product_padded_leftcoefficientscoefficientdiagonal. (exists pfa_gap_product_padded_leftcoefficientscoefficientdiagonalbound. pfa_gap_product_padded_leftcoefficientscoefficientdiagonalbound + S (pfc_index_product_padded_leftcoefficientscoefficientdiagonal) = (S (pfc_index_product_padded_leftcoefficients))) -> exists pfc_value_product_padded_leftcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_product_padded_leftcoefficientscoefficientdiagonalentry. ff_h_pfp_product_padded_leftcoefficientscoefficientdiagonalentry + S (pfc_value_product_padded_leftcoefficientscoefficientdiagonal) = S ((S (pfc_index_product_padded_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_product_padded_leftcoefficientscoefficient)) /\ exists ff_q_pfp_product_padded_leftcoefficientscoefficientdiagonalentry. pfc_terms_code_product_padded_leftcoefficientscoefficient = ff_q_pfp_product_padded_leftcoefficientscoefficientdiagonalentry * S ((S (pfc_index_product_padded_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_product_padded_leftcoefficientscoefficient) + (pfc_value_product_padded_leftcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_product_padded_leftcoefficientscoefficientdiagonalterm pfc_left_product_padded_leftcoefficientscoefficientdiagonalterm pfc_right_product_padded_leftcoefficientscoefficientdiagonalterm. (((pfc_index_product_padded_leftcoefficientscoefficientdiagonal)+pfc_complement_product_padded_leftcoefficientscoefficientdiagonalterm=(pfc_index_product_padded_leftcoefficients)) /\ ((((((exists pfa_gap_product_padded_leftcoefficientscoefficientdiagonaltermleftinside. pfa_gap_product_padded_leftcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_product_padded_leftcoefficientscoefficientdiagonal) = (t+L)) /\ ((((exists ff_h_pfp_product_padded_leftcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_product_padded_leftcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_product_padded_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_product_padded_leftcoefficientscoefficientdiagonal)) * AC)) /\ exists ff_q_pfp_product_padded_leftcoefficientscoefficientdiagonaltermleftentry. AB = ff_q_pfp_product_padded_leftcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_product_padded_leftcoefficientscoefficientdiagonal)) * AC) + (pfc_left_product_padded_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_product_padded_leftcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_product_padded_leftcoefficientscoefficientdiagonaltermleftoutside+(t+L)=(pfc_index_product_padded_leftcoefficientscoefficientdiagonal)) /\ (((pfc_left_product_padded_leftcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_product_padded_leftcoefficientscoefficientdiagonaltermrightinside. pfa_gap_product_padded_leftcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_product_padded_leftcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_product_padded_leftcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_product_padded_leftcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_product_padded_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_product_padded_leftcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_product_padded_leftcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_product_padded_leftcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_product_padded_leftcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_product_padded_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_product_padded_leftcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_product_padded_leftcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_product_padded_leftcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_product_padded_leftcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_product_padded_leftcoefficientscoefficientdiagonal)=pfc_left_product_padded_leftcoefficientscoefficientdiagonalterm*pfc_right_product_padded_leftcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_product_padded_leftcoefficientscoefficientsum fs_v_pfc_product_padded_leftcoefficientscoefficientsum. ((((exists fs_h_pfc_product_padded_leftcoefficientscoefficientsum_body_start. fs_h_pfc_product_padded_leftcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_product_padded_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_padded_leftcoefficientscoefficientsum_body_start. fs_u_pfc_product_padded_leftcoefficientscoefficientsum = fs_q_pfc_product_padded_leftcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_product_padded_leftcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_product_padded_leftcoefficientscoefficientsum_body_terminal. fs_h_pfc_product_padded_leftcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_product_padded_leftcoefficientscoefficient) = S ((S (S (pfc_index_product_padded_leftcoefficients))) * fs_v_pfc_product_padded_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_padded_leftcoefficientscoefficientsum_body_terminal. fs_u_pfc_product_padded_leftcoefficientscoefficientsum = fs_q_pfc_product_padded_leftcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_product_padded_leftcoefficients))) * fs_v_pfc_product_padded_leftcoefficientscoefficientsum) + (pfc_natural_sum_product_padded_leftcoefficientscoefficient))) /\ forall fs_i_pfc_product_padded_leftcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_product_padded_leftcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_product_padded_leftcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_product_padded_leftcoefficientscoefficientsum_body_steps = S (pfc_index_product_padded_leftcoefficients)) -> exists fs_a_pfc_product_padded_leftcoefficientscoefficientsum_body_steps fs_r_pfc_product_padded_leftcoefficientscoefficientsum_body_steps fs_s_pfc_product_padded_leftcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_product_padded_leftcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_product_padded_leftcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_product_padded_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_product_padded_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_product_padded_leftcoefficientscoefficient)) /\ exists fs_q_pfc_product_padded_leftcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_product_padded_leftcoefficientscoefficient = fs_q_pfc_product_padded_leftcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_product_padded_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_product_padded_leftcoefficientscoefficient) + (fs_a_pfc_product_padded_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_product_padded_leftcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_product_padded_leftcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_product_padded_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_product_padded_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_padded_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_padded_leftcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_product_padded_leftcoefficientscoefficientsum = fs_q_pfc_product_padded_leftcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_product_padded_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_padded_leftcoefficientscoefficientsum) + (fs_r_pfc_product_padded_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_product_padded_leftcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_product_padded_leftcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_product_padded_leftcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_product_padded_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_padded_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_product_padded_leftcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_product_padded_leftcoefficientscoefficientsum = fs_q_pfc_product_padded_leftcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_product_padded_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_product_padded_leftcoefficientscoefficientsum) + (fs_s_pfc_product_padded_leftcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_product_padded_leftcoefficientscoefficientsum_body_steps = fs_r_pfc_product_padded_leftcoefficientscoefficientsum_body_steps + fs_a_pfc_product_padded_leftcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_product_padded_leftcoefficientscoefficientresiduebound. pfa_gap_product_padded_leftcoefficientscoefficientresiduebound + S (pfc_value_product_padded_leftcoefficients) = (p)) /\ ((exists pfa_offset_left_product_padded_leftcoefficientscoefficientresiduecongruence pfa_offset_right_product_padded_leftcoefficientscoefficientresiduecongruence. (pfc_natural_sum_product_padded_leftcoefficientscoefficient) + (p) * pfa_offset_left_product_padded_leftcoefficientscoefficientresiduecongruence = (pfc_value_product_padded_leftcoefficients) + (p) * pfa_offset_right_product_padded_leftcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (forall pfrep_power_product_equivalent_left pfrep_left_product_equivalent_left pfrep_right_product_equivalent_left. ((exists pfrep_position_product_equivalent_leftfirst. ((pfrep_position_product_equivalent_leftfirst+S (pfrep_power_product_equivalent_left)=(N)) /\ ((((exists ff_h_pfp_product_equivalent_leftfirstentry. ff_h_pfp_product_equivalent_leftfirstentry + S (pfrep_left_product_equivalent_left) = S ((S (pfrep_position_product_equivalent_leftfirst)) * cc)) /\ exists ff_q_pfp_product_equivalent_leftfirstentry. cb = ff_q_pfp_product_equivalent_leftfirstentry * S ((S (pfrep_position_product_equivalent_leftfirst)) * cc) + (pfrep_left_product_equivalent_left)))))) \/ (((exists pfrep_gap_product_equivalent_leftfirstoutside. pfrep_gap_product_equivalent_leftfirstoutside+(N)=(pfrep_power_product_equivalent_left)) /\ (((pfrep_left_product_equivalent_left)=0))))) -> ((exists pfrep_position_product_equivalent_leftsecond. ((pfrep_position_product_equivalent_leftsecond+S (pfrep_power_product_equivalent_left)=(K)) /\ ((((exists ff_h_pfp_product_equivalent_leftsecondentry. ff_h_pfp_product_equivalent_leftsecondentry + S (pfrep_right_product_equivalent_left) = S ((S (pfrep_position_product_equivalent_leftsecond)) * CC)) /\ exists ff_q_pfp_product_equivalent_leftsecondentry. CB = ff_q_pfp_product_equivalent_leftsecondentry * S ((S (pfrep_position_product_equivalent_leftsecond)) * CC) + (pfrep_right_product_equivalent_left)))))) \/ (((exists pfrep_gap_product_equivalent_leftsecondoutside. pfrep_gap_product_equivalent_leftsecondoutside+(K)=(pfrep_power_product_equivalent_left)) /\ (((pfrep_right_product_equivalent_left)=0))))) -> pfrep_left_product_equivalent_left=pfrep_right_product_equivalent_left)
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro cb
  9. intro cc
  10. intro N
  11. intro AB
  12. intro AC
  13. intro t
  14. intro CB
  15. intro CC
  16. intro K
  17. intro hp
  18. intro hpad
  19. intro hc
  20. intro hn
  21. have hL : L=0 \/ ~(L=0)
  22. specialize eq_decidable (L)
  23. specialize eq_decidable (0)
  24. apply eq_decidable
  25. cases hL
  26. have hz : forall pfp_repeat_index_empty_factor_zero_leftleft. (exists pfa_gap_empty_factor_zero_leftleftindex. pfa_gap_empty_factor_zero_leftleftindex + S (pfp_repeat_index_empty_factor_zero_leftleft) = (L)) -> (((exists ff_h_pfp_empty_factor_zero_leftleftentry. ff_h_pfp_empty_factor_zero_leftleftentry + S (0) = S ((S (pfp_repeat_index_empty_factor_zero_leftleft)) * ac)) /\ exists ff_q_pfp_empty_factor_zero_leftleftentry. ab = ff_q_pfp_empty_factor_zero_leftleftentry * S ((S (pfp_repeat_index_empty_factor_zero_leftleft)) * ac) + (0)))
  27. intro j
  28. intro hj
  29. rewrite hL_left at hj
  30. exfalso
  31. specialize matrix_rank_no_index_below_zero (j)
  32. apply matrix_rank_no_index_below_zero
  33. exact hj
  34. have hc0 : forall pfp_repeat_index_empty_original_product_leftleft. (exists pfa_gap_empty_original_product_leftleftindex. pfa_gap_empty_original_product_leftleftindex + S (pfp_repeat_index_empty_original_product_leftleft) = (N)) -> (((exists ff_h_pfp_empty_original_product_leftleftentry. ff_h_pfp_empty_original_product_leftleftentry + S (0) = S ((S (pfp_repeat_index_empty_original_product_leftleft)) * cc)) /\ exists ff_q_pfp_empty_original_product_leftleftentry. cb = ff_q_pfp_empty_original_product_leftleftentry * S ((S (pfp_repeat_index_empty_original_product_leftleft)) * cc) + (0)))
  35. specialize prime_field_polynomial_convolution_zero_left (p)
  36. specialize prime_field_polynomial_convolution_zero_left (ab)
  37. specialize prime_field_polynomial_convolution_zero_left (ac)
  38. specialize prime_field_polynomial_convolution_zero_left (L)
  39. specialize prime_field_polynomial_convolution_zero_left (bb)
  40. specialize prime_field_polynomial_convolution_zero_left (bc)
  41. specialize prime_field_polynomial_convolution_zero_left (M)
  42. specialize prime_field_polynomial_convolution_zero_left (cb)
  43. specialize prime_field_polynomial_convolution_zero_left (cc)
  44. specialize prime_field_polynomial_convolution_zero_left (N)
  45. apply prime_field_polynomial_convolution_zero_left
  46. exact hp
  47. exact hz
  48. exact hc
  49. have hn0 : forall pfp_repeat_index_empty_padded_product_leftleft. (exists pfa_gap_empty_padded_product_leftleftindex. pfa_gap_empty_padded_product_leftleftindex + S (pfp_repeat_index_empty_padded_product_leftleft) = (K)) -> (((exists ff_h_pfp_empty_padded_product_leftleftentry. ff_h_pfp_empty_padded_product_leftleftentry + S (0) = S ((S (pfp_repeat_index_empty_padded_product_leftleft)) * CC)) /\ exists ff_q_pfp_empty_padded_product_leftleftentry. CB = ff_q_pfp_empty_padded_product_leftleftentry * S ((S (pfp_repeat_index_empty_padded_product_leftleft)) * CC) + (0)))
  50. specialize prime_field_polynomial_convolution_zero_left (p)
  51. specialize prime_field_polynomial_convolution_zero_left (AB)
  52. specialize prime_field_polynomial_convolution_zero_left (AC)
  53. specialize prime_field_polynomial_convolution_zero_left (t+L)
  54. specialize prime_field_polynomial_convolution_zero_left (bb)
  55. specialize prime_field_polynomial_convolution_zero_left (bc)
  56. specialize prime_field_polynomial_convolution_zero_left (M)
  57. specialize prime_field_polynomial_convolution_zero_left (CB)
  58. specialize prime_field_polynomial_convolution_zero_left (CC)
  59. specialize prime_field_polynomial_convolution_zero_left (K)
  60. apply prime_field_polynomial_convolution_zero_left
  61. exact hp
  62. specialize polynomial_left_pad_zero_prefix (ab)
  63. specialize polynomial_left_pad_zero_prefix (ac)
  64. specialize polynomial_left_pad_zero_prefix (L)
  65. specialize polynomial_left_pad_zero_prefix (t)
  66. specialize polynomial_left_pad_zero_prefix (AB)
  67. specialize polynomial_left_pad_zero_prefix (AC)
  68. apply polynomial_left_pad_zero_prefix
  69. exact hz
  70. exact hpad
  71. exact hn
  72. have hec : forall pfrep_power_empty_first_equivalence_leftleft pfrep_left_empty_first_equivalence_leftleft pfrep_right_empty_first_equivalence_leftleft. ((exists pfrep_position_empty_first_equivalence_leftleftfirst. ((pfrep_position_empty_first_equivalence_leftleftfirst+S (pfrep_power_empty_first_equivalence_leftleft)=(N)) /\ ((((exists ff_h_pfp_empty_first_equivalence_leftleftfirstentry. ff_h_pfp_empty_first_equivalence_leftleftfirstentry + S (pfrep_left_empty_first_equivalence_leftleft) = S ((S (pfrep_position_empty_first_equivalence_leftleftfirst)) * cc)) /\ exists ff_q_pfp_empty_first_equivalence_leftleftfirstentry. cb = ff_q_pfp_empty_first_equivalence_leftleftfirstentry * S ((S (pfrep_position_empty_first_equivalence_leftleftfirst)) * cc) + (pfrep_left_empty_first_equivalence_leftleft)))))) \/ (((exists pfrep_gap_empty_first_equivalence_leftleftfirstoutside. pfrep_gap_empty_first_equivalence_leftleftfirstoutside+(N)=(pfrep_power_empty_first_equivalence_leftleft)) /\ (((pfrep_left_empty_first_equivalence_leftleft)=0))))) -> ((exists pfrep_position_empty_first_equivalence_leftleftsecond. ((pfrep_position_empty_first_equivalence_leftleftsecond+S (pfrep_power_empty_first_equivalence_leftleft)=(0)) /\ ((((exists ff_h_pfp_empty_first_equivalence_leftleftsecondentry. ff_h_pfp_empty_first_equivalence_leftleftsecondentry + S (pfrep_right_empty_first_equivalence_leftleft) = S ((S (pfrep_position_empty_first_equivalence_leftleftsecond)) * 0)) /\ exists ff_q_pfp_empty_first_equivalence_leftleftsecondentry. 0 = ff_q_pfp_empty_first_equivalence_leftleftsecondentry * S ((S (pfrep_position_empty_first_equivalence_leftleftsecond)) * 0) + (pfrep_right_empty_first_equivalence_leftleft)))))) \/ (((exists pfrep_gap_empty_first_equivalence_leftleftsecondoutside. pfrep_gap_empty_first_equivalence_leftleftsecondoutside+(0)=(pfrep_power_empty_first_equivalence_leftleft)) /\ (((pfrep_right_empty_first_equivalence_leftleft)=0))))) -> pfrep_left_empty_first_equivalence_leftleft=pfrep_right_empty_first_equivalence_leftleft
  73. specialize prime_field_polynomial_zero_prefix_equivalent_empty (cb)
  74. specialize prime_field_polynomial_zero_prefix_equivalent_empty (cc)
  75. specialize prime_field_polynomial_zero_prefix_equivalent_empty (N)
  76. apply prime_field_polynomial_zero_prefix_equivalent_empty
  77. exact hc0
  78. have hen : forall pfrep_power_empty_second_equivalence_leftleft pfrep_left_empty_second_equivalence_leftleft pfrep_right_empty_second_equivalence_leftleft. ((exists pfrep_position_empty_second_equivalence_leftleftfirst. ((pfrep_position_empty_second_equivalence_leftleftfirst+S (pfrep_power_empty_second_equivalence_leftleft)=(K)) /\ ((((exists ff_h_pfp_empty_second_equivalence_leftleftfirstentry. ff_h_pfp_empty_second_equivalence_leftleftfirstentry + S (pfrep_left_empty_second_equivalence_leftleft) = S ((S (pfrep_position_empty_second_equivalence_leftleftfirst)) * CC)) /\ exists ff_q_pfp_empty_second_equivalence_leftleftfirstentry. CB = ff_q_pfp_empty_second_equivalence_leftleftfirstentry * S ((S (pfrep_position_empty_second_equivalence_leftleftfirst)) * CC) + (pfrep_left_empty_second_equivalence_leftleft)))))) \/ (((exists pfrep_gap_empty_second_equivalence_leftleftfirstoutside. pfrep_gap_empty_second_equivalence_leftleftfirstoutside+(K)=(pfrep_power_empty_second_equivalence_leftleft)) /\ (((pfrep_left_empty_second_equivalence_leftleft)=0))))) -> ((exists pfrep_position_empty_second_equivalence_leftleftsecond. ((pfrep_position_empty_second_equivalence_leftleftsecond+S (pfrep_power_empty_second_equivalence_leftleft)=(0)) /\ ((((exists ff_h_pfp_empty_second_equivalence_leftleftsecondentry. ff_h_pfp_empty_second_equivalence_leftleftsecondentry + S (pfrep_right_empty_second_equivalence_leftleft) = S ((S (pfrep_position_empty_second_equivalence_leftleftsecond)) * 0)) /\ exists ff_q_pfp_empty_second_equivalence_leftleftsecondentry. 0 = ff_q_pfp_empty_second_equivalence_leftleftsecondentry * S ((S (pfrep_position_empty_second_equivalence_leftleftsecond)) * 0) + (pfrep_right_empty_second_equivalence_leftleft)))))) \/ (((exists pfrep_gap_empty_second_equivalence_leftleftsecondoutside. pfrep_gap_empty_second_equivalence_leftleftsecondoutside+(0)=(pfrep_power_empty_second_equivalence_leftleft)) /\ (((pfrep_right_empty_second_equivalence_leftleft)=0))))) -> pfrep_left_empty_second_equivalence_leftleft=pfrep_right_empty_second_equivalence_leftleft
  79. specialize prime_field_polynomial_zero_prefix_equivalent_empty (CB)
  80. specialize prime_field_polynomial_zero_prefix_equivalent_empty (CC)
  81. specialize prime_field_polynomial_zero_prefix_equivalent_empty (K)
  82. apply prime_field_polynomial_zero_prefix_equivalent_empty
  83. exact hn0
  84. specialize prime_field_polynomial_equivalent_transitive (cb)
  85. specialize prime_field_polynomial_equivalent_transitive (cc)
  86. specialize prime_field_polynomial_equivalent_transitive (N)
  87. specialize prime_field_polynomial_equivalent_transitive (0)
  88. specialize prime_field_polynomial_equivalent_transitive (0)
  89. specialize prime_field_polynomial_equivalent_transitive (0)
  90. specialize prime_field_polynomial_equivalent_transitive (CB)
  91. specialize prime_field_polynomial_equivalent_transitive (CC)
  92. specialize prime_field_polynomial_equivalent_transitive (K)
  93. apply prime_field_polynomial_equivalent_transitive
  94. exact hec
  95. specialize prime_field_polynomial_equivalent_symmetric (CB)
  96. specialize prime_field_polynomial_equivalent_symmetric (CC)
  97. specialize prime_field_polynomial_equivalent_symmetric (K)
  98. specialize prime_field_polynomial_equivalent_symmetric (0)
  99. specialize prime_field_polynomial_equivalent_symmetric (0)
  100. specialize prime_field_polynomial_equivalent_symmetric (0)
  101. apply prime_field_polynomial_equivalent_symmetric
  102. exact hen
  103. have hM : M=0 \/ ~(M=0)
  104. specialize eq_decidable (M)
  105. specialize eq_decidable (0)
  106. apply eq_decidable
  107. cases hM
  108. have hz : forall pfp_repeat_index_empty_factor_zero_leftright. (exists pfa_gap_empty_factor_zero_leftrightindex. pfa_gap_empty_factor_zero_leftrightindex + S (pfp_repeat_index_empty_factor_zero_leftright) = (M)) -> (((exists ff_h_pfp_empty_factor_zero_leftrightentry. ff_h_pfp_empty_factor_zero_leftrightentry + S (0) = S ((S (pfp_repeat_index_empty_factor_zero_leftright)) * bc)) /\ exists ff_q_pfp_empty_factor_zero_leftrightentry. bb = ff_q_pfp_empty_factor_zero_leftrightentry * S ((S (pfp_repeat_index_empty_factor_zero_leftright)) * bc) + (0)))
  109. intro j
  110. intro hj
  111. rewrite hM_left at hj
  112. exfalso
  113. specialize matrix_rank_no_index_below_zero (j)
  114. apply matrix_rank_no_index_below_zero
  115. exact hj
  116. have hc0 : forall pfp_repeat_index_empty_original_product_leftright. (exists pfa_gap_empty_original_product_leftrightindex. pfa_gap_empty_original_product_leftrightindex + S (pfp_repeat_index_empty_original_product_leftright) = (N)) -> (((exists ff_h_pfp_empty_original_product_leftrightentry. ff_h_pfp_empty_original_product_leftrightentry + S (0) = S ((S (pfp_repeat_index_empty_original_product_leftright)) * cc)) /\ exists ff_q_pfp_empty_original_product_leftrightentry. cb = ff_q_pfp_empty_original_product_leftrightentry * S ((S (pfp_repeat_index_empty_original_product_leftright)) * cc) + (0)))
  117. specialize prime_field_polynomial_convolution_zero_right (p)
  118. specialize prime_field_polynomial_convolution_zero_right (ab)
  119. specialize prime_field_polynomial_convolution_zero_right (ac)
  120. specialize prime_field_polynomial_convolution_zero_right (L)
  121. specialize prime_field_polynomial_convolution_zero_right (bb)
  122. specialize prime_field_polynomial_convolution_zero_right (bc)
  123. specialize prime_field_polynomial_convolution_zero_right (M)
  124. specialize prime_field_polynomial_convolution_zero_right (cb)
  125. specialize prime_field_polynomial_convolution_zero_right (cc)
  126. specialize prime_field_polynomial_convolution_zero_right (N)
  127. apply prime_field_polynomial_convolution_zero_right
  128. exact hp
  129. exact hz
  130. exact hc
  131. have hn0 : forall pfp_repeat_index_empty_padded_product_leftright. (exists pfa_gap_empty_padded_product_leftrightindex. pfa_gap_empty_padded_product_leftrightindex + S (pfp_repeat_index_empty_padded_product_leftright) = (K)) -> (((exists ff_h_pfp_empty_padded_product_leftrightentry. ff_h_pfp_empty_padded_product_leftrightentry + S (0) = S ((S (pfp_repeat_index_empty_padded_product_leftright)) * CC)) /\ exists ff_q_pfp_empty_padded_product_leftrightentry. CB = ff_q_pfp_empty_padded_product_leftrightentry * S ((S (pfp_repeat_index_empty_padded_product_leftright)) * CC) + (0)))
  132. specialize prime_field_polynomial_convolution_zero_right (p)
  133. specialize prime_field_polynomial_convolution_zero_right (AB)
  134. specialize prime_field_polynomial_convolution_zero_right (AC)
  135. specialize prime_field_polynomial_convolution_zero_right (t+L)
  136. specialize prime_field_polynomial_convolution_zero_right (bb)
  137. specialize prime_field_polynomial_convolution_zero_right (bc)
  138. specialize prime_field_polynomial_convolution_zero_right (M)
  139. specialize prime_field_polynomial_convolution_zero_right (CB)
  140. specialize prime_field_polynomial_convolution_zero_right (CC)
  141. specialize prime_field_polynomial_convolution_zero_right (K)
  142. apply prime_field_polynomial_convolution_zero_right
  143. exact hp
  144. exact hz
  145. exact hn
  146. have hec : forall pfrep_power_empty_first_equivalence_leftright pfrep_left_empty_first_equivalence_leftright pfrep_right_empty_first_equivalence_leftright. ((exists pfrep_position_empty_first_equivalence_leftrightfirst. ((pfrep_position_empty_first_equivalence_leftrightfirst+S (pfrep_power_empty_first_equivalence_leftright)=(N)) /\ ((((exists ff_h_pfp_empty_first_equivalence_leftrightfirstentry. ff_h_pfp_empty_first_equivalence_leftrightfirstentry + S (pfrep_left_empty_first_equivalence_leftright) = S ((S (pfrep_position_empty_first_equivalence_leftrightfirst)) * cc)) /\ exists ff_q_pfp_empty_first_equivalence_leftrightfirstentry. cb = ff_q_pfp_empty_first_equivalence_leftrightfirstentry * S ((S (pfrep_position_empty_first_equivalence_leftrightfirst)) * cc) + (pfrep_left_empty_first_equivalence_leftright)))))) \/ (((exists pfrep_gap_empty_first_equivalence_leftrightfirstoutside. pfrep_gap_empty_first_equivalence_leftrightfirstoutside+(N)=(pfrep_power_empty_first_equivalence_leftright)) /\ (((pfrep_left_empty_first_equivalence_leftright)=0))))) -> ((exists pfrep_position_empty_first_equivalence_leftrightsecond. ((pfrep_position_empty_first_equivalence_leftrightsecond+S (pfrep_power_empty_first_equivalence_leftright)=(0)) /\ ((((exists ff_h_pfp_empty_first_equivalence_leftrightsecondentry. ff_h_pfp_empty_first_equivalence_leftrightsecondentry + S (pfrep_right_empty_first_equivalence_leftright) = S ((S (pfrep_position_empty_first_equivalence_leftrightsecond)) * 0)) /\ exists ff_q_pfp_empty_first_equivalence_leftrightsecondentry. 0 = ff_q_pfp_empty_first_equivalence_leftrightsecondentry * S ((S (pfrep_position_empty_first_equivalence_leftrightsecond)) * 0) + (pfrep_right_empty_first_equivalence_leftright)))))) \/ (((exists pfrep_gap_empty_first_equivalence_leftrightsecondoutside. pfrep_gap_empty_first_equivalence_leftrightsecondoutside+(0)=(pfrep_power_empty_first_equivalence_leftright)) /\ (((pfrep_right_empty_first_equivalence_leftright)=0))))) -> pfrep_left_empty_first_equivalence_leftright=pfrep_right_empty_first_equivalence_leftright
  147. specialize prime_field_polynomial_zero_prefix_equivalent_empty (cb)
  148. specialize prime_field_polynomial_zero_prefix_equivalent_empty (cc)
  149. specialize prime_field_polynomial_zero_prefix_equivalent_empty (N)
  150. apply prime_field_polynomial_zero_prefix_equivalent_empty
  151. exact hc0
  152. have hen : forall pfrep_power_empty_second_equivalence_leftright pfrep_left_empty_second_equivalence_leftright pfrep_right_empty_second_equivalence_leftright. ((exists pfrep_position_empty_second_equivalence_leftrightfirst. ((pfrep_position_empty_second_equivalence_leftrightfirst+S (pfrep_power_empty_second_equivalence_leftright)=(K)) /\ ((((exists ff_h_pfp_empty_second_equivalence_leftrightfirstentry. ff_h_pfp_empty_second_equivalence_leftrightfirstentry + S (pfrep_left_empty_second_equivalence_leftright) = S ((S (pfrep_position_empty_second_equivalence_leftrightfirst)) * CC)) /\ exists ff_q_pfp_empty_second_equivalence_leftrightfirstentry. CB = ff_q_pfp_empty_second_equivalence_leftrightfirstentry * S ((S (pfrep_position_empty_second_equivalence_leftrightfirst)) * CC) + (pfrep_left_empty_second_equivalence_leftright)))))) \/ (((exists pfrep_gap_empty_second_equivalence_leftrightfirstoutside. pfrep_gap_empty_second_equivalence_leftrightfirstoutside+(K)=(pfrep_power_empty_second_equivalence_leftright)) /\ (((pfrep_left_empty_second_equivalence_leftright)=0))))) -> ((exists pfrep_position_empty_second_equivalence_leftrightsecond. ((pfrep_position_empty_second_equivalence_leftrightsecond+S (pfrep_power_empty_second_equivalence_leftright)=(0)) /\ ((((exists ff_h_pfp_empty_second_equivalence_leftrightsecondentry. ff_h_pfp_empty_second_equivalence_leftrightsecondentry + S (pfrep_right_empty_second_equivalence_leftright) = S ((S (pfrep_position_empty_second_equivalence_leftrightsecond)) * 0)) /\ exists ff_q_pfp_empty_second_equivalence_leftrightsecondentry. 0 = ff_q_pfp_empty_second_equivalence_leftrightsecondentry * S ((S (pfrep_position_empty_second_equivalence_leftrightsecond)) * 0) + (pfrep_right_empty_second_equivalence_leftright)))))) \/ (((exists pfrep_gap_empty_second_equivalence_leftrightsecondoutside. pfrep_gap_empty_second_equivalence_leftrightsecondoutside+(0)=(pfrep_power_empty_second_equivalence_leftright)) /\ (((pfrep_right_empty_second_equivalence_leftright)=0))))) -> pfrep_left_empty_second_equivalence_leftright=pfrep_right_empty_second_equivalence_leftright
  153. specialize prime_field_polynomial_zero_prefix_equivalent_empty (CB)
  154. specialize prime_field_polynomial_zero_prefix_equivalent_empty (CC)
  155. specialize prime_field_polynomial_zero_prefix_equivalent_empty (K)
  156. apply prime_field_polynomial_zero_prefix_equivalent_empty
  157. exact hn0
  158. specialize prime_field_polynomial_equivalent_transitive (cb)
  159. specialize prime_field_polynomial_equivalent_transitive (cc)
  160. specialize prime_field_polynomial_equivalent_transitive (N)
  161. specialize prime_field_polynomial_equivalent_transitive (0)
  162. specialize prime_field_polynomial_equivalent_transitive (0)
  163. specialize prime_field_polynomial_equivalent_transitive (0)
  164. specialize prime_field_polynomial_equivalent_transitive (CB)
  165. specialize prime_field_polynomial_equivalent_transitive (CC)
  166. specialize prime_field_polynomial_equivalent_transitive (K)
  167. apply prime_field_polynomial_equivalent_transitive
  168. exact hec
  169. specialize prime_field_polynomial_equivalent_symmetric (CB)
  170. specialize prime_field_polynomial_equivalent_symmetric (CC)
  171. specialize prime_field_polynomial_equivalent_symmetric (K)
  172. specialize prime_field_polynomial_equivalent_symmetric (0)
  173. specialize prime_field_polynomial_equivalent_symmetric (0)
  174. specialize prime_field_polynomial_equivalent_symmetric (0)
  175. apply prime_field_polynomial_equivalent_symmetric
  176. exact hen
  177. have hd : ((K=t+N) /\ ((((forall pfp_repeat_index_product_equivalent_padding_leftzeros. (exists pfa_gap_product_equivalent_padding_leftzerosindex. pfa_gap_product_equivalent_padding_leftzerosindex + S (pfp_repeat_index_product_equivalent_padding_leftzeros) = (t)) -> (((exists ff_h_pfp_product_equivalent_padding_leftzerosentry. ff_h_pfp_product_equivalent_padding_leftzerosentry + S (0) = S ((S (pfp_repeat_index_product_equivalent_padding_leftzeros)) * CC)) /\ exists ff_q_pfp_product_equivalent_padding_leftzerosentry. CB = ff_q_pfp_product_equivalent_padding_leftzerosentry * S ((S (pfp_repeat_index_product_equivalent_padding_leftzeros)) * CC) + (0)))) /\ ((forall pfrep_index_product_equivalent_padding_left pfrep_value_product_equivalent_padding_left. (exists pfa_gap_product_equivalent_padding_leftbound. pfa_gap_product_equivalent_padding_leftbound + S (pfrep_index_product_equivalent_padding_left) = (N)) -> (((exists ff_h_pfp_product_equivalent_padding_leftinput. ff_h_pfp_product_equivalent_padding_leftinput + S (pfrep_value_product_equivalent_padding_left) = S ((S (pfrep_index_product_equivalent_padding_left)) * cc)) /\ exists ff_q_pfp_product_equivalent_padding_leftinput. cb = ff_q_pfp_product_equivalent_padding_leftinput * S ((S (pfrep_index_product_equivalent_padding_left)) * cc) + (pfrep_value_product_equivalent_padding_left))) -> (((exists ff_h_pfp_product_equivalent_padding_leftoutput. ff_h_pfp_product_equivalent_padding_leftoutput + S (pfrep_value_product_equivalent_padding_left) = S ((S ((t)+pfrep_index_product_equivalent_padding_left)) * CC)) /\ exists ff_q_pfp_product_equivalent_padding_leftoutput. CB = ff_q_pfp_product_equivalent_padding_leftoutput * S ((S ((t)+pfrep_index_product_equivalent_padding_left)) * CC) + (pfrep_value_product_equivalent_padding_left)))))))))
  178. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (p)
  179. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (ab)
  180. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (ac)
  181. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (L)
  182. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (bb)
  183. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (bc)
  184. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (M)
  185. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (cb)
  186. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (cc)
  187. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (N)
  188. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (AB)
  189. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (AC)
  190. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (t)
  191. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (CB)
  192. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (CC)
  193. specialize prime_field_polynomial_convolution_left_padding_nonempty_left (K)
  194. apply prime_field_polynomial_convolution_left_padding_nonempty_left
  195. exact hp
  196. exact hL_right
  197. exact hM_right
  198. exact hpad
  199. exact hc
  200. exact hn
  201. cases hd
  202. rewrite hd_left
  203. rewrite hd_left
  204. specialize prime_field_polynomial_left_pad_equivalent (cb)
  205. specialize prime_field_polynomial_left_pad_equivalent (cc)
  206. specialize prime_field_polynomial_left_pad_equivalent (N)
  207. specialize prime_field_polynomial_left_pad_equivalent (t)
  208. specialize prime_field_polynomial_left_pad_equivalent (CB)
  209. specialize prime_field_polynomial_left_pad_equivalent (CC)
  210. apply prime_field_polynomial_left_pad_equivalent
  211. exact hd_right
prime_field_polynomial_convolution_equivalent_congruent_left · unchanged support, not a new admission
forall p ab ac L bb bc M cb cc N AB AC H CB CC K. (~(p=0)) -> (forall pfrep_power_congruent_factor_left pfrep_left_congruent_factor_left pfrep_right_congruent_factor_left. ((exists pfrep_position_congruent_factor_leftfirst. ((pfrep_position_congruent_factor_leftfirst+S (pfrep_power_congruent_factor_left)=(L)) /\ ((((exists ff_h_pfp_congruent_factor_leftfirstentry. ff_h_pfp_congruent_factor_leftfirstentry + S (pfrep_left_congruent_factor_left) = S ((S (pfrep_position_congruent_factor_leftfirst)) * ac)) /\ exists ff_q_pfp_congruent_factor_leftfirstentry. ab = ff_q_pfp_congruent_factor_leftfirstentry * S ((S (pfrep_position_congruent_factor_leftfirst)) * ac) + (pfrep_left_congruent_factor_left)))))) \/ (((exists pfrep_gap_congruent_factor_leftfirstoutside. pfrep_gap_congruent_factor_leftfirstoutside+(L)=(pfrep_power_congruent_factor_left)) /\ (((pfrep_left_congruent_factor_left)=0))))) -> ((exists pfrep_position_congruent_factor_leftsecond. ((pfrep_position_congruent_factor_leftsecond+S (pfrep_power_congruent_factor_left)=(H)) /\ ((((exists ff_h_pfp_congruent_factor_leftsecondentry. ff_h_pfp_congruent_factor_leftsecondentry + S (pfrep_right_congruent_factor_left) = S ((S (pfrep_position_congruent_factor_leftsecond)) * AC)) /\ exists ff_q_pfp_congruent_factor_leftsecondentry. AB = ff_q_pfp_congruent_factor_leftsecondentry * S ((S (pfrep_position_congruent_factor_leftsecond)) * AC) + (pfrep_right_congruent_factor_left)))))) \/ (((exists pfrep_gap_congruent_factor_leftsecondoutside. pfrep_gap_congruent_factor_leftsecondoutside+(H)=(pfrep_power_congruent_factor_left)) /\ (((pfrep_right_congruent_factor_left)=0))))) -> pfrep_left_congruent_factor_left=pfrep_right_congruent_factor_left) -> (((forall fom_index_pfp_congruent_original_leftleft. (exists fom_gap_pfp_congruent_original_leftleft_index_bound. fom_gap_pfp_congruent_original_leftleft_index_bound + S (fom_index_pfp_congruent_original_leftleft) = L) -> exists fom_value_pfp_congruent_original_leftleft. ((((exists fom_beta_height_pfp_congruent_original_leftleft_entry. fom_beta_height_pfp_congruent_original_leftleft_entry + S (fom_value_pfp_congruent_original_leftleft) = S ((S (fom_index_pfp_congruent_original_leftleft)) * ac)) /\ exists fom_beta_quotient_pfp_congruent_original_leftleft_entry. ab = fom_beta_quotient_pfp_congruent_original_leftleft_entry * S ((S (fom_index_pfp_congruent_original_leftleft)) * ac) + (fom_value_pfp_congruent_original_leftleft))) /\ (exists fom_gap_pfp_congruent_original_leftleft_value_bound. fom_gap_pfp_congruent_original_leftleft_value_bound + S (fom_value_pfp_congruent_original_leftleft) = p))) /\ (((forall fom_index_pfp_congruent_original_leftright. (exists fom_gap_pfp_congruent_original_leftright_index_bound. fom_gap_pfp_congruent_original_leftright_index_bound + S (fom_index_pfp_congruent_original_leftright) = M) -> exists fom_value_pfp_congruent_original_leftright. ((((exists fom_beta_height_pfp_congruent_original_leftright_entry. fom_beta_height_pfp_congruent_original_leftright_entry + S (fom_value_pfp_congruent_original_leftright) = S ((S (fom_index_pfp_congruent_original_leftright)) * bc)) /\ exists fom_beta_quotient_pfp_congruent_original_leftright_entry. bb = fom_beta_quotient_pfp_congruent_original_leftright_entry * S ((S (fom_index_pfp_congruent_original_leftright)) * bc) + (fom_value_pfp_congruent_original_leftright))) /\ (exists fom_gap_pfp_congruent_original_leftright_value_bound. fom_gap_pfp_congruent_original_leftright_value_bound + S (fom_value_pfp_congruent_original_leftright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_congruent_original_leftcoefficients. (exists pfa_gap_congruent_original_leftcoefficientsbound. pfa_gap_congruent_original_leftcoefficientsbound + S (pfc_index_congruent_original_leftcoefficients) = (N)) -> exists pfc_value_congruent_original_leftcoefficients. ((((exists ff_h_pfp_congruent_original_leftcoefficientsentry. ff_h_pfp_congruent_original_leftcoefficientsentry + S (pfc_value_congruent_original_leftcoefficients) = S ((S (pfc_index_congruent_original_leftcoefficients)) * cc)) /\ exists ff_q_pfp_congruent_original_leftcoefficientsentry. cb = ff_q_pfp_congruent_original_leftcoefficientsentry * S ((S (pfc_index_congruent_original_leftcoefficients)) * cc) + (pfc_value_congruent_original_leftcoefficients))) /\ ((exists pfc_terms_code_congruent_original_leftcoefficientscoefficient pfc_terms_scale_congruent_original_leftcoefficientscoefficient pfc_natural_sum_congruent_original_leftcoefficientscoefficient. ((forall pfc_index_congruent_original_leftcoefficientscoefficientdiagonal. (exists pfa_gap_congruent_original_leftcoefficientscoefficientdiagonalbound. pfa_gap_congruent_original_leftcoefficientscoefficientdiagonalbound + S (pfc_index_congruent_original_leftcoefficientscoefficientdiagonal) = (S (pfc_index_congruent_original_leftcoefficients))) -> exists pfc_value_congruent_original_leftcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_congruent_original_leftcoefficientscoefficientdiagonalentry. ff_h_pfp_congruent_original_leftcoefficientscoefficientdiagonalentry + S (pfc_value_congruent_original_leftcoefficientscoefficientdiagonal) = S ((S (pfc_index_congruent_original_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_congruent_original_leftcoefficientscoefficient)) /\ exists ff_q_pfp_congruent_original_leftcoefficientscoefficientdiagonalentry. pfc_terms_code_congruent_original_leftcoefficientscoefficient = ff_q_pfp_congruent_original_leftcoefficientscoefficientdiagonalentry * S ((S (pfc_index_congruent_original_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_congruent_original_leftcoefficientscoefficient) + (pfc_value_congruent_original_leftcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_congruent_original_leftcoefficientscoefficientdiagonalterm pfc_left_congruent_original_leftcoefficientscoefficientdiagonalterm pfc_right_congruent_original_leftcoefficientscoefficientdiagonalterm. (((pfc_index_congruent_original_leftcoefficientscoefficientdiagonal)+pfc_complement_congruent_original_leftcoefficientscoefficientdiagonalterm=(pfc_index_congruent_original_leftcoefficients)) /\ ((((((exists pfa_gap_congruent_original_leftcoefficientscoefficientdiagonaltermleftinside. pfa_gap_congruent_original_leftcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_congruent_original_leftcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_congruent_original_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_congruent_original_leftcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_congruent_original_leftcoefficientscoefficientdiagonal)) * ac) + (pfc_left_congruent_original_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_congruent_original_leftcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_congruent_original_leftcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_congruent_original_leftcoefficientscoefficientdiagonal)) /\ (((pfc_left_congruent_original_leftcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_congruent_original_leftcoefficientscoefficientdiagonaltermrightinside. pfa_gap_congruent_original_leftcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_congruent_original_leftcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_congruent_original_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_congruent_original_leftcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_congruent_original_leftcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_congruent_original_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_congruent_original_leftcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_congruent_original_leftcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_congruent_original_leftcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_congruent_original_leftcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_congruent_original_leftcoefficientscoefficientdiagonal)=pfc_left_congruent_original_leftcoefficientscoefficientdiagonalterm*pfc_right_congruent_original_leftcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_congruent_original_leftcoefficientscoefficientsum fs_v_pfc_congruent_original_leftcoefficientscoefficientsum. ((((exists fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_start. fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_start. fs_u_pfc_congruent_original_leftcoefficientscoefficientsum = fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_terminal. fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_congruent_original_leftcoefficientscoefficient) = S ((S (S (pfc_index_congruent_original_leftcoefficients))) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_terminal. fs_u_pfc_congruent_original_leftcoefficientscoefficientsum = fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_congruent_original_leftcoefficients))) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum) + (pfc_natural_sum_congruent_original_leftcoefficientscoefficient))) /\ forall fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps = S (pfc_index_congruent_original_leftcoefficients)) -> exists fs_a_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps fs_r_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps fs_s_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_congruent_original_leftcoefficientscoefficient)) /\ exists fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_congruent_original_leftcoefficientscoefficient = fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_congruent_original_leftcoefficientscoefficient) + (fs_a_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_congruent_original_leftcoefficientscoefficientsum = fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum) + (fs_r_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_congruent_original_leftcoefficientscoefficientsum = fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum) + (fs_s_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps = fs_r_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps + fs_a_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_congruent_original_leftcoefficientscoefficientresiduebound. pfa_gap_congruent_original_leftcoefficientscoefficientresiduebound + S (pfc_value_congruent_original_leftcoefficients) = (p)) /\ ((exists pfa_offset_left_congruent_original_leftcoefficientscoefficientresiduecongruence pfa_offset_right_congruent_original_leftcoefficientscoefficientresiduecongruence. (pfc_natural_sum_congruent_original_leftcoefficientscoefficient) + (p) * pfa_offset_left_congruent_original_leftcoefficientscoefficientresiduecongruence = (pfc_value_congruent_original_leftcoefficients) + (p) * pfa_offset_right_congruent_original_leftcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_congruent_other_leftleft. (exists fom_gap_pfp_congruent_other_leftleft_index_bound. fom_gap_pfp_congruent_other_leftleft_index_bound + S (fom_index_pfp_congruent_other_leftleft) = H) -> exists fom_value_pfp_congruent_other_leftleft. ((((exists fom_beta_height_pfp_congruent_other_leftleft_entry. fom_beta_height_pfp_congruent_other_leftleft_entry + S (fom_value_pfp_congruent_other_leftleft) = S ((S (fom_index_pfp_congruent_other_leftleft)) * AC)) /\ exists fom_beta_quotient_pfp_congruent_other_leftleft_entry. AB = fom_beta_quotient_pfp_congruent_other_leftleft_entry * S ((S (fom_index_pfp_congruent_other_leftleft)) * AC) + (fom_value_pfp_congruent_other_leftleft))) /\ (exists fom_gap_pfp_congruent_other_leftleft_value_bound. fom_gap_pfp_congruent_other_leftleft_value_bound + S (fom_value_pfp_congruent_other_leftleft) = p))) /\ (((forall fom_index_pfp_congruent_other_leftright. (exists fom_gap_pfp_congruent_other_leftright_index_bound. fom_gap_pfp_congruent_other_leftright_index_bound + S (fom_index_pfp_congruent_other_leftright) = M) -> exists fom_value_pfp_congruent_other_leftright. ((((exists fom_beta_height_pfp_congruent_other_leftright_entry. fom_beta_height_pfp_congruent_other_leftright_entry + S (fom_value_pfp_congruent_other_leftright) = S ((S (fom_index_pfp_congruent_other_leftright)) * bc)) /\ exists fom_beta_quotient_pfp_congruent_other_leftright_entry. bb = fom_beta_quotient_pfp_congruent_other_leftright_entry * S ((S (fom_index_pfp_congruent_other_leftright)) * bc) + (fom_value_pfp_congruent_other_leftright))) /\ (exists fom_gap_pfp_congruent_other_leftright_value_bound. fom_gap_pfp_congruent_other_leftright_value_bound + S (fom_value_pfp_congruent_other_leftright) = p))) /\ (((((((H)=0 \/ (M)=0) /\ (((K)=0)))) \/ (((~((H)=0)) /\ (((~((M)=0)) /\ (((H)+(M)=S (K)))))))) /\ ((forall pfc_index_congruent_other_leftcoefficients. (exists pfa_gap_congruent_other_leftcoefficientsbound. pfa_gap_congruent_other_leftcoefficientsbound + S (pfc_index_congruent_other_leftcoefficients) = (K)) -> exists pfc_value_congruent_other_leftcoefficients. ((((exists ff_h_pfp_congruent_other_leftcoefficientsentry. ff_h_pfp_congruent_other_leftcoefficientsentry + S (pfc_value_congruent_other_leftcoefficients) = S ((S (pfc_index_congruent_other_leftcoefficients)) * CC)) /\ exists ff_q_pfp_congruent_other_leftcoefficientsentry. CB = ff_q_pfp_congruent_other_leftcoefficientsentry * S ((S (pfc_index_congruent_other_leftcoefficients)) * CC) + (pfc_value_congruent_other_leftcoefficients))) /\ ((exists pfc_terms_code_congruent_other_leftcoefficientscoefficient pfc_terms_scale_congruent_other_leftcoefficientscoefficient pfc_natural_sum_congruent_other_leftcoefficientscoefficient. ((forall pfc_index_congruent_other_leftcoefficientscoefficientdiagonal. (exists pfa_gap_congruent_other_leftcoefficientscoefficientdiagonalbound. pfa_gap_congruent_other_leftcoefficientscoefficientdiagonalbound + S (pfc_index_congruent_other_leftcoefficientscoefficientdiagonal) = (S (pfc_index_congruent_other_leftcoefficients))) -> exists pfc_value_congruent_other_leftcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_congruent_other_leftcoefficientscoefficientdiagonalentry. ff_h_pfp_congruent_other_leftcoefficientscoefficientdiagonalentry + S (pfc_value_congruent_other_leftcoefficientscoefficientdiagonal) = S ((S (pfc_index_congruent_other_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_congruent_other_leftcoefficientscoefficient)) /\ exists ff_q_pfp_congruent_other_leftcoefficientscoefficientdiagonalentry. pfc_terms_code_congruent_other_leftcoefficientscoefficient = ff_q_pfp_congruent_other_leftcoefficientscoefficientdiagonalentry * S ((S (pfc_index_congruent_other_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_congruent_other_leftcoefficientscoefficient) + (pfc_value_congruent_other_leftcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_congruent_other_leftcoefficientscoefficientdiagonalterm pfc_left_congruent_other_leftcoefficientscoefficientdiagonalterm pfc_right_congruent_other_leftcoefficientscoefficientdiagonalterm. (((pfc_index_congruent_other_leftcoefficientscoefficientdiagonal)+pfc_complement_congruent_other_leftcoefficientscoefficientdiagonalterm=(pfc_index_congruent_other_leftcoefficients)) /\ ((((((exists pfa_gap_congruent_other_leftcoefficientscoefficientdiagonaltermleftinside. pfa_gap_congruent_other_leftcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_congruent_other_leftcoefficientscoefficientdiagonal) = (H)) /\ ((((exists ff_h_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_congruent_other_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_congruent_other_leftcoefficientscoefficientdiagonal)) * AC)) /\ exists ff_q_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermleftentry. AB = ff_q_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_congruent_other_leftcoefficientscoefficientdiagonal)) * AC) + (pfc_left_congruent_other_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_congruent_other_leftcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_congruent_other_leftcoefficientscoefficientdiagonaltermleftoutside+(H)=(pfc_index_congruent_other_leftcoefficientscoefficientdiagonal)) /\ (((pfc_left_congruent_other_leftcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_congruent_other_leftcoefficientscoefficientdiagonaltermrightinside. pfa_gap_congruent_other_leftcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_congruent_other_leftcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_congruent_other_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_congruent_other_leftcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_congruent_other_leftcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_congruent_other_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_congruent_other_leftcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_congruent_other_leftcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_congruent_other_leftcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_congruent_other_leftcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_congruent_other_leftcoefficientscoefficientdiagonal)=pfc_left_congruent_other_leftcoefficientscoefficientdiagonalterm*pfc_right_congruent_other_leftcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_congruent_other_leftcoefficientscoefficientsum fs_v_pfc_congruent_other_leftcoefficientscoefficientsum. ((((exists fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_start. fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_start. fs_u_pfc_congruent_other_leftcoefficientscoefficientsum = fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_terminal. fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_congruent_other_leftcoefficientscoefficient) = S ((S (S (pfc_index_congruent_other_leftcoefficients))) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_terminal. fs_u_pfc_congruent_other_leftcoefficientscoefficientsum = fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_congruent_other_leftcoefficients))) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum) + (pfc_natural_sum_congruent_other_leftcoefficientscoefficient))) /\ forall fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps = S (pfc_index_congruent_other_leftcoefficients)) -> exists fs_a_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps fs_r_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps fs_s_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_congruent_other_leftcoefficientscoefficient)) /\ exists fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_congruent_other_leftcoefficientscoefficient = fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_congruent_other_leftcoefficientscoefficient) + (fs_a_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_congruent_other_leftcoefficientscoefficientsum = fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum) + (fs_r_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_congruent_other_leftcoefficientscoefficientsum = fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum) + (fs_s_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps = fs_r_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps + fs_a_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_congruent_other_leftcoefficientscoefficientresiduebound. pfa_gap_congruent_other_leftcoefficientscoefficientresiduebound + S (pfc_value_congruent_other_leftcoefficients) = (p)) /\ ((exists pfa_offset_left_congruent_other_leftcoefficientscoefficientresiduecongruence pfa_offset_right_congruent_other_leftcoefficientscoefficientresiduecongruence. (pfc_natural_sum_congruent_other_leftcoefficientscoefficient) + (p) * pfa_offset_left_congruent_other_leftcoefficientscoefficientresiduecongruence = (pfc_value_congruent_other_leftcoefficients) + (p) * pfa_offset_right_congruent_other_leftcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (forall pfrep_power_congruent_output_left pfrep_left_congruent_output_left pfrep_right_congruent_output_left. ((exists pfrep_position_congruent_output_leftfirst. ((pfrep_position_congruent_output_leftfirst+S (pfrep_power_congruent_output_left)=(N)) /\ ((((exists ff_h_pfp_congruent_output_leftfirstentry. ff_h_pfp_congruent_output_leftfirstentry + S (pfrep_left_congruent_output_left) = S ((S (pfrep_position_congruent_output_leftfirst)) * cc)) /\ exists ff_q_pfp_congruent_output_leftfirstentry. cb = ff_q_pfp_congruent_output_leftfirstentry * S ((S (pfrep_position_congruent_output_leftfirst)) * cc) + (pfrep_left_congruent_output_left)))))) \/ (((exists pfrep_gap_congruent_output_leftfirstoutside. pfrep_gap_congruent_output_leftfirstoutside+(N)=(pfrep_power_congruent_output_left)) /\ (((pfrep_left_congruent_output_left)=0))))) -> ((exists pfrep_position_congruent_output_leftsecond. ((pfrep_position_congruent_output_leftsecond+S (pfrep_power_congruent_output_left)=(K)) /\ ((((exists ff_h_pfp_congruent_output_leftsecondentry. ff_h_pfp_congruent_output_leftsecondentry + S (pfrep_right_congruent_output_left) = S ((S (pfrep_position_congruent_output_leftsecond)) * CC)) /\ exists ff_q_pfp_congruent_output_leftsecondentry. CB = ff_q_pfp_congruent_output_leftsecondentry * S ((S (pfrep_position_congruent_output_leftsecond)) * CC) + (pfrep_right_congruent_output_left)))))) \/ (((exists pfrep_gap_congruent_output_leftsecondoutside. pfrep_gap_congruent_output_leftsecondoutside+(K)=(pfrep_power_congruent_output_left)) /\ (((pfrep_right_congruent_output_left)=0))))) -> pfrep_left_congruent_output_left=pfrep_right_congruent_output_left)
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro cb
  9. intro cc
  10. intro N
  11. intro AB
  12. intro AC
  13. intro H
  14. intro CB
  15. intro CC
  16. intro K
  17. intro hp
  18. intro he
  19. intro hc
  20. intro hd
  21. have horder : (exists pfc_gap_congruent_forward_left. pfc_gap_congruent_forward_left+(L)=(H)) \/ (exists pfc_gap_congruent_backward_left. pfc_gap_congruent_backward_left+(H)=(L))
  22. specialize le_total (L)
  23. specialize le_total (H)
  24. apply le_total
  25. cases horder
  26. cases horder_left
  27. have hpadding : ((forall pfp_repeat_index_congruent_padding_leftzeros. (exists pfa_gap_congruent_padding_leftzerosindex. pfa_gap_congruent_padding_leftzerosindex + S (pfp_repeat_index_congruent_padding_leftzeros) = (x)) -> (((exists ff_h_pfp_congruent_padding_leftzerosentry. ff_h_pfp_congruent_padding_leftzerosentry + S (0) = S ((S (pfp_repeat_index_congruent_padding_leftzeros)) * AC)) /\ exists ff_q_pfp_congruent_padding_leftzerosentry. AB = ff_q_pfp_congruent_padding_leftzerosentry * S ((S (pfp_repeat_index_congruent_padding_leftzeros)) * AC) + (0)))) /\ ((forall pfrep_index_congruent_padding_left pfrep_value_congruent_padding_left. (exists pfa_gap_congruent_padding_leftbound. pfa_gap_congruent_padding_leftbound + S (pfrep_index_congruent_padding_left) = (L)) -> (((exists ff_h_pfp_congruent_padding_leftinput. ff_h_pfp_congruent_padding_leftinput + S (pfrep_value_congruent_padding_left) = S ((S (pfrep_index_congruent_padding_left)) * ac)) /\ exists ff_q_pfp_congruent_padding_leftinput. ab = ff_q_pfp_congruent_padding_leftinput * S ((S (pfrep_index_congruent_padding_left)) * ac) + (pfrep_value_congruent_padding_left))) -> (((exists ff_h_pfp_congruent_padding_leftoutput. ff_h_pfp_congruent_padding_leftoutput + S (pfrep_value_congruent_padding_left) = S ((S ((x)+pfrep_index_congruent_padding_left)) * AC)) /\ exists ff_q_pfp_congruent_padding_leftoutput. AB = ff_q_pfp_congruent_padding_leftoutput * S ((S ((x)+pfrep_index_congruent_padding_left)) * AC) + (pfrep_value_congruent_padding_left))))))
  28. specialize prime_field_polynomial_equivalent_implies_left_pad (ab)
  29. specialize prime_field_polynomial_equivalent_implies_left_pad (ac)
  30. specialize prime_field_polynomial_equivalent_implies_left_pad (L)
  31. specialize prime_field_polynomial_equivalent_implies_left_pad (x)
  32. specialize prime_field_polynomial_equivalent_implies_left_pad (AB)
  33. specialize prime_field_polynomial_equivalent_implies_left_pad (AC)
  34. apply prime_field_polynomial_equivalent_implies_left_pad
  35. rewrite horder_left_witness
  36. rewrite horder_left_witness
  37. exact he
  38. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (p)
  39. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (ab)
  40. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (ac)
  41. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (L)
  42. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (bb)
  43. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (bc)
  44. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (M)
  45. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (cb)
  46. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (cc)
  47. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (N)
  48. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (AB)
  49. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (AC)
  50. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (x)
  51. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (CB)
  52. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (CC)
  53. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (K)
  54. apply prime_field_polynomial_convolution_left_padding_equivalent_left
  55. exact hp
  56. exact hpadding
  57. exact hc
  58. rewrite horder_left_witness
  59. rewrite horder_left_witness
  60. rewrite horder_left_witness
  61. rewrite horder_left_witness
  62. rewrite horder_left_witness
  63. rewrite horder_left_witness
  64. exact hd
  65. cases horder_right
  66. have hpadding : ((forall pfp_repeat_index_congruent_padding_leftzeros. (exists pfa_gap_congruent_padding_leftzerosindex. pfa_gap_congruent_padding_leftzerosindex + S (pfp_repeat_index_congruent_padding_leftzeros) = (x)) -> (((exists ff_h_pfp_congruent_padding_leftzerosentry. ff_h_pfp_congruent_padding_leftzerosentry + S (0) = S ((S (pfp_repeat_index_congruent_padding_leftzeros)) * ac)) /\ exists ff_q_pfp_congruent_padding_leftzerosentry. ab = ff_q_pfp_congruent_padding_leftzerosentry * S ((S (pfp_repeat_index_congruent_padding_leftzeros)) * ac) + (0)))) /\ ((forall pfrep_index_congruent_padding_left pfrep_value_congruent_padding_left. (exists pfa_gap_congruent_padding_leftbound. pfa_gap_congruent_padding_leftbound + S (pfrep_index_congruent_padding_left) = (H)) -> (((exists ff_h_pfp_congruent_padding_leftinput. ff_h_pfp_congruent_padding_leftinput + S (pfrep_value_congruent_padding_left) = S ((S (pfrep_index_congruent_padding_left)) * AC)) /\ exists ff_q_pfp_congruent_padding_leftinput. AB = ff_q_pfp_congruent_padding_leftinput * S ((S (pfrep_index_congruent_padding_left)) * AC) + (pfrep_value_congruent_padding_left))) -> (((exists ff_h_pfp_congruent_padding_leftoutput. ff_h_pfp_congruent_padding_leftoutput + S (pfrep_value_congruent_padding_left) = S ((S ((x)+pfrep_index_congruent_padding_left)) * ac)) /\ exists ff_q_pfp_congruent_padding_leftoutput. ab = ff_q_pfp_congruent_padding_leftoutput * S ((S ((x)+pfrep_index_congruent_padding_left)) * ac) + (pfrep_value_congruent_padding_left))))))
  67. specialize prime_field_polynomial_equivalent_implies_left_pad (AB)
  68. specialize prime_field_polynomial_equivalent_implies_left_pad (AC)
  69. specialize prime_field_polynomial_equivalent_implies_left_pad (H)
  70. specialize prime_field_polynomial_equivalent_implies_left_pad (x)
  71. specialize prime_field_polynomial_equivalent_implies_left_pad (ab)
  72. specialize prime_field_polynomial_equivalent_implies_left_pad (ac)
  73. apply prime_field_polynomial_equivalent_implies_left_pad
  74. rewrite horder_right_witness
  75. rewrite horder_right_witness
  76. specialize prime_field_polynomial_equivalent_symmetric (ab)
  77. specialize prime_field_polynomial_equivalent_symmetric (ac)
  78. specialize prime_field_polynomial_equivalent_symmetric (L)
  79. specialize prime_field_polynomial_equivalent_symmetric (AB)
  80. specialize prime_field_polynomial_equivalent_symmetric (AC)
  81. specialize prime_field_polynomial_equivalent_symmetric (H)
  82. apply prime_field_polynomial_equivalent_symmetric
  83. exact he
  84. specialize prime_field_polynomial_equivalent_symmetric (CB)
  85. specialize prime_field_polynomial_equivalent_symmetric (CC)
  86. specialize prime_field_polynomial_equivalent_symmetric (K)
  87. specialize prime_field_polynomial_equivalent_symmetric (cb)
  88. specialize prime_field_polynomial_equivalent_symmetric (cc)
  89. specialize prime_field_polynomial_equivalent_symmetric (N)
  90. apply prime_field_polynomial_equivalent_symmetric
  91. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (p)
  92. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (AB)
  93. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (AC)
  94. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (H)
  95. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (bb)
  96. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (bc)
  97. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (M)
  98. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (CB)
  99. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (CC)
  100. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (K)
  101. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (ab)
  102. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (ac)
  103. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (x)
  104. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (cb)
  105. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (cc)
  106. specialize prime_field_polynomial_convolution_left_padding_equivalent_left (N)
  107. apply prime_field_polynomial_convolution_left_padding_equivalent_left
  108. exact hp
  109. exact hpadding
  110. exact hd
  111. rewrite horder_right_witness
  112. rewrite horder_right_witness
  113. rewrite horder_right_witness
  114. rewrite horder_right_witness
  115. rewrite horder_right_witness
  116. rewrite horder_right_witness
  117. exact hc
polynomial_quotient_length_bounds · unchanged support, not a new admission
forall L d q. (((((q)=0) /\ ((exists pfc_gap_division_length_bound_sourceshort. pfc_gap_division_length_bound_sourceshort+(L)=(d))))) \/ (((~((q)=0)) /\ (((q)+(d)=(L)))))) -> ((exists pfc_gap_division_length_quotient_bound. pfc_gap_division_length_quotient_bound+(q)=(L)) /\ ((exists pfc_gap_division_length_cover. pfc_gap_division_length_cover+(L)=(q+d))))
  1. intro L
  2. intro d
  3. intro q
  4. intro h
  5. cases h
  6. cases h_left
  7. split
  8. rewrite h_left_left
  9. specialize zero_le (L)
  10. apply zero_le
  11. have heq : q+d=d
  12. rewrite h_left_left
  13. apply zero_add
  14. rewrite heq
  15. exact h_left_right
  16. cases h_right
  17. split
  18. rewrite <- h_right_right
  19. specialize le_add_right (q)
  20. specialize le_add_right (d)
  21. apply le_add_right
  22. rewrite h_right_right
  23. specialize le_refl (L)
  24. apply le_refl
prime_field_polynomial_trim_represented_degree · unchanged support, not a new admission
forall p b c L t d e M q. ((((L)=(t)+(M)) /\ (((forall fom_index_pfp_trim_degree_inputinput. (exists fom_gap_pfp_trim_degree_inputinput_index_bound. fom_gap_pfp_trim_degree_inputinput_index_bound + S (fom_index_pfp_trim_degree_inputinput) = L) -> exists fom_value_pfp_trim_degree_inputinput. ((((exists fom_beta_height_pfp_trim_degree_inputinput_entry. fom_beta_height_pfp_trim_degree_inputinput_entry + S (fom_value_pfp_trim_degree_inputinput) = S ((S (fom_index_pfp_trim_degree_inputinput)) * c)) /\ exists fom_beta_quotient_pfp_trim_degree_inputinput_entry. b = fom_beta_quotient_pfp_trim_degree_inputinput_entry * S ((S (fom_index_pfp_trim_degree_inputinput)) * c) + (fom_value_pfp_trim_degree_inputinput))) /\ (exists fom_gap_pfp_trim_degree_inputinput_value_bound. fom_gap_pfp_trim_degree_inputinput_value_bound + S (fom_value_pfp_trim_degree_inputinput) = p))) /\ (((forall pfp_repeat_index_trim_degree_inputremoved. (exists pfa_gap_trim_degree_inputremovedindex. pfa_gap_trim_degree_inputremovedindex + S (pfp_repeat_index_trim_degree_inputremoved) = (t)) -> (((exists ff_h_pfp_trim_degree_inputremovedentry. ff_h_pfp_trim_degree_inputremovedentry + S (0) = S ((S (pfp_repeat_index_trim_degree_inputremoved)) * c)) /\ exists ff_q_pfp_trim_degree_inputremovedentry. b = ff_q_pfp_trim_degree_inputremovedentry * S ((S (pfp_repeat_index_trim_degree_inputremoved)) * c) + (0)))) /\ (((forall pftrim_index_trim_degree_inputsuffix pftrim_value_trim_degree_inputsuffix. (exists pfa_gap_trim_degree_inputsuffixbound. pfa_gap_trim_degree_inputsuffixbound + S (pftrim_index_trim_degree_inputsuffix) = (M)) -> (((exists ff_h_pfp_trim_degree_inputsuffixsource. ff_h_pfp_trim_degree_inputsuffixsource + S (pftrim_value_trim_degree_inputsuffix) = S ((S ((t)+pftrim_index_trim_degree_inputsuffix)) * c)) /\ exists ff_q_pfp_trim_degree_inputsuffixsource. b = ff_q_pfp_trim_degree_inputsuffixsource * S ((S ((t)+pftrim_index_trim_degree_inputsuffix)) * c) + (pftrim_value_trim_degree_inputsuffix))) -> (((exists ff_h_pfp_trim_degree_inputsuffixoutput. ff_h_pfp_trim_degree_inputsuffixoutput + S (pftrim_value_trim_degree_inputsuffix) = S ((S (pftrim_index_trim_degree_inputsuffix)) * e)) /\ exists ff_q_pfp_trim_degree_inputsuffixoutput. d = ff_q_pfp_trim_degree_inputsuffixoutput * S ((S (pftrim_index_trim_degree_inputsuffix)) * e) + (pftrim_value_trim_degree_inputsuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_trim_degree_inputnormal. ((((exists ff_h_pfp_trim_degree_inputnormalentry. ff_h_pfp_trim_degree_inputnormalentry + S (pftrim_leading_trim_degree_inputnormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_trim_degree_inputnormalentry. d = ff_q_pfp_trim_degree_inputnormalentry * S ((S (0)) * e) + (pftrim_leading_trim_degree_inputnormal))) /\ ((~(pftrim_leading_trim_degree_inputnormal=0))))))))))))))) -> M=S q -> ((((M)=S (q)) /\ (((forall fom_index_pfp_trim_degree_resultcoefficients. (exists fom_gap_pfp_trim_degree_resultcoefficients_index_bound. fom_gap_pfp_trim_degree_resultcoefficients_index_bound + S (fom_index_pfp_trim_degree_resultcoefficients) = M) -> exists fom_value_pfp_trim_degree_resultcoefficients. ((((exists fom_beta_height_pfp_trim_degree_resultcoefficients_entry. fom_beta_height_pfp_trim_degree_resultcoefficients_entry + S (fom_value_pfp_trim_degree_resultcoefficients) = S ((S (fom_index_pfp_trim_degree_resultcoefficients)) * e)) /\ exists fom_beta_quotient_pfp_trim_degree_resultcoefficients_entry. d = fom_beta_quotient_pfp_trim_degree_resultcoefficients_entry * S ((S (fom_index_pfp_trim_degree_resultcoefficients)) * e) + (fom_value_pfp_trim_degree_resultcoefficients))) /\ (exists fom_gap_pfp_trim_degree_resultcoefficients_value_bound. fom_gap_pfp_trim_degree_resultcoefficients_value_bound + S (fom_value_pfp_trim_degree_resultcoefficients) = p))) /\ ((exists pfd_leading_trim_degree_result. ((((exists ff_h_pfp_trim_degree_resultentry. ff_h_pfp_trim_degree_resultentry + S (pfd_leading_trim_degree_result) = S ((S (0)) * e)) /\ exists ff_q_pfp_trim_degree_resultentry. d = ff_q_pfp_trim_degree_resultentry * S ((S (0)) * e) + (pfd_leading_trim_degree_result))) /\ ((~(pfd_leading_trim_degree_result=0))))))))))
  1. intro p
  2. intro b
  3. intro c
  4. intro L
  5. intro t
  6. intro d
  7. intro e
  8. intro M
  9. intro q
  10. intro h
  11. intro hlen
  12. split
  13. exact hlen
  14. split
  15. specialize prime_field_polynomial_trim_output_coefficients (p)
  16. specialize prime_field_polynomial_trim_output_coefficients (b)
  17. specialize prime_field_polynomial_trim_output_coefficients (c)
  18. specialize prime_field_polynomial_trim_output_coefficients (L)
  19. specialize prime_field_polynomial_trim_output_coefficients (t)
  20. specialize prime_field_polynomial_trim_output_coefficients (d)
  21. specialize prime_field_polynomial_trim_output_coefficients (e)
  22. specialize prime_field_polynomial_trim_output_coefficients (M)
  23. apply prime_field_polynomial_trim_output_coefficients
  24. exact h
  25. cases h
  26. cases h_right
  27. cases h_right_right
  28. cases h_right_right_right
  29. cases h_right_right_right_right
  30. exfalso
  31. have hz : S q=0
  32. trans M
  33. symm
  34. exact hlen
  35. exact h_right_right_right_right_left
  36. specialize succ_ne_zero (q)
  37. apply succ_ne_zero
  38. exact hz
  39. exact h_right_right_right_right_right
prime_field_polynomial_trim_bounded_degree · unchanged support, not a new admission
forall p ub uc L t rb rc R d. ((((L)=(t)+(R)) /\ (((forall fom_index_pfp_division_remainder_degree_triminput. (exists fom_gap_pfp_division_remainder_degree_triminput_index_bound. fom_gap_pfp_division_remainder_degree_triminput_index_bound + S (fom_index_pfp_division_remainder_degree_triminput) = L) -> exists fom_value_pfp_division_remainder_degree_triminput. ((((exists fom_beta_height_pfp_division_remainder_degree_triminput_entry. fom_beta_height_pfp_division_remainder_degree_triminput_entry + S (fom_value_pfp_division_remainder_degree_triminput) = S ((S (fom_index_pfp_division_remainder_degree_triminput)) * uc)) /\ exists fom_beta_quotient_pfp_division_remainder_degree_triminput_entry. ub = fom_beta_quotient_pfp_division_remainder_degree_triminput_entry * S ((S (fom_index_pfp_division_remainder_degree_triminput)) * uc) + (fom_value_pfp_division_remainder_degree_triminput))) /\ (exists fom_gap_pfp_division_remainder_degree_triminput_value_bound. fom_gap_pfp_division_remainder_degree_triminput_value_bound + S (fom_value_pfp_division_remainder_degree_triminput) = p))) /\ (((forall pfp_repeat_index_division_remainder_degree_trimremoved. (exists pfa_gap_division_remainder_degree_trimremovedindex. pfa_gap_division_remainder_degree_trimremovedindex + S (pfp_repeat_index_division_remainder_degree_trimremoved) = (t)) -> (((exists ff_h_pfp_division_remainder_degree_trimremovedentry. ff_h_pfp_division_remainder_degree_trimremovedentry + S (0) = S ((S (pfp_repeat_index_division_remainder_degree_trimremoved)) * uc)) /\ exists ff_q_pfp_division_remainder_degree_trimremovedentry. ub = ff_q_pfp_division_remainder_degree_trimremovedentry * S ((S (pfp_repeat_index_division_remainder_degree_trimremoved)) * uc) + (0)))) /\ (((forall pftrim_index_division_remainder_degree_trimsuffix pftrim_value_division_remainder_degree_trimsuffix. (exists pfa_gap_division_remainder_degree_trimsuffixbound. pfa_gap_division_remainder_degree_trimsuffixbound + S (pftrim_index_division_remainder_degree_trimsuffix) = (R)) -> (((exists ff_h_pfp_division_remainder_degree_trimsuffixsource. ff_h_pfp_division_remainder_degree_trimsuffixsource + S (pftrim_value_division_remainder_degree_trimsuffix) = S ((S ((t)+pftrim_index_division_remainder_degree_trimsuffix)) * uc)) /\ exists ff_q_pfp_division_remainder_degree_trimsuffixsource. ub = ff_q_pfp_division_remainder_degree_trimsuffixsource * S ((S ((t)+pftrim_index_division_remainder_degree_trimsuffix)) * uc) + (pftrim_value_division_remainder_degree_trimsuffix))) -> (((exists ff_h_pfp_division_remainder_degree_trimsuffixoutput. ff_h_pfp_division_remainder_degree_trimsuffixoutput + S (pftrim_value_division_remainder_degree_trimsuffix) = S ((S (pftrim_index_division_remainder_degree_trimsuffix)) * rc)) /\ exists ff_q_pfp_division_remainder_degree_trimsuffixoutput. rb = ff_q_pfp_division_remainder_degree_trimsuffixoutput * S ((S (pftrim_index_division_remainder_degree_trimsuffix)) * rc) + (pftrim_value_division_remainder_degree_trimsuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_remainder_degree_trimnormal. ((((exists ff_h_pfp_division_remainder_degree_trimnormalentry. ff_h_pfp_division_remainder_degree_trimnormalentry + S (pftrim_leading_division_remainder_degree_trimnormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_remainder_degree_trimnormalentry. rb = ff_q_pfp_division_remainder_degree_trimnormalentry * S ((S (0)) * rc) + (pftrim_leading_division_remainder_degree_trimnormal))) /\ ((~(pftrim_leading_division_remainder_degree_trimnormal=0))))))))))))))) -> (exists pfc_gap_division_remainder_degree_bound. pfc_gap_division_remainder_degree_bound+(R)=(d)) -> ((R)=0 \/ (exists pfd_remainder_degree_division_remainder_degree. (((((R)=S (pfd_remainder_degree_division_remainder_degree)) /\ (((forall fom_index_pfp_division_remainder_degreerepresentedcoefficients. (exists fom_gap_pfp_division_remainder_degreerepresentedcoefficients_index_bound. fom_gap_pfp_division_remainder_degreerepresentedcoefficients_index_bound + S (fom_index_pfp_division_remainder_degreerepresentedcoefficients) = R) -> exists fom_value_pfp_division_remainder_degreerepresentedcoefficients. ((((exists fom_beta_height_pfp_division_remainder_degreerepresentedcoefficients_entry. fom_beta_height_pfp_division_remainder_degreerepresentedcoefficients_entry + S (fom_value_pfp_division_remainder_degreerepresentedcoefficients) = S ((S (fom_index_pfp_division_remainder_degreerepresentedcoefficients)) * rc)) /\ exists fom_beta_quotient_pfp_division_remainder_degreerepresentedcoefficients_entry. rb = fom_beta_quotient_pfp_division_remainder_degreerepresentedcoefficients_entry * S ((S (fom_index_pfp_division_remainder_degreerepresentedcoefficients)) * rc) + (fom_value_pfp_division_remainder_degreerepresentedcoefficients))) /\ (exists fom_gap_pfp_division_remainder_degreerepresentedcoefficients_value_bound. fom_gap_pfp_division_remainder_degreerepresentedcoefficients_value_bound + S (fom_value_pfp_division_remainder_degreerepresentedcoefficients) = p))) /\ ((exists pfd_leading_division_remainder_degreerepresented. ((((exists ff_h_pfp_division_remainder_degreerepresentedentry. ff_h_pfp_division_remainder_degreerepresentedentry + S (pfd_leading_division_remainder_degreerepresented) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_remainder_degreerepresentedentry. rb = ff_q_pfp_division_remainder_degreerepresentedentry * S ((S (0)) * rc) + (pfd_leading_division_remainder_degreerepresented))) /\ ((~(pfd_leading_division_remainder_degreerepresented=0)))))))))) /\ ((exists pfa_gap_division_remainder_degreestrict. pfa_gap_division_remainder_degreestrict + S (pfd_remainder_degree_division_remainder_degree) = (d))))))
  1. intro p
  2. intro ub
  3. intro uc
  4. intro L
  5. intro t
  6. intro rb
  7. intro rc
  8. intro R
  9. intro d
  10. intro ht
  11. intro hbound
  12. have hR : R=0 \/ exists e. R=S e
  13. specialize zero_or_succ (R)
  14. apply zero_or_succ
  15. cases hR
  16. left
  17. exact hR_left
  18. cases hR_right
  19. right
  20. exists x
  21. split
  22. specialize prime_field_polynomial_trim_represented_degree (p)
  23. specialize prime_field_polynomial_trim_represented_degree (ub)
  24. specialize prime_field_polynomial_trim_represented_degree (uc)
  25. specialize prime_field_polynomial_trim_represented_degree (L)
  26. specialize prime_field_polynomial_trim_represented_degree (t)
  27. specialize prime_field_polynomial_trim_represented_degree (rb)
  28. specialize prime_field_polynomial_trim_represented_degree (rc)
  29. specialize prime_field_polynomial_trim_represented_degree (R)
  30. specialize prime_field_polynomial_trim_represented_degree (x)
  31. apply prime_field_polynomial_trim_represented_degree
  32. exact ht
  33. exact hR_right_witness
  34. rewrite hR_right_witness at hbound
  35. exact hbound
prime_field_polynomial_trim_leading_source_nonzero · unchanged support, not a new admission
forall p b c L t d e M a. ((((L)=(t)+(M)) /\ (((forall fom_index_pfp_trim_nonzero_sourceinput. (exists fom_gap_pfp_trim_nonzero_sourceinput_index_bound. fom_gap_pfp_trim_nonzero_sourceinput_index_bound + S (fom_index_pfp_trim_nonzero_sourceinput) = L) -> exists fom_value_pfp_trim_nonzero_sourceinput. ((((exists fom_beta_height_pfp_trim_nonzero_sourceinput_entry. fom_beta_height_pfp_trim_nonzero_sourceinput_entry + S (fom_value_pfp_trim_nonzero_sourceinput) = S ((S (fom_index_pfp_trim_nonzero_sourceinput)) * c)) /\ exists fom_beta_quotient_pfp_trim_nonzero_sourceinput_entry. b = fom_beta_quotient_pfp_trim_nonzero_sourceinput_entry * S ((S (fom_index_pfp_trim_nonzero_sourceinput)) * c) + (fom_value_pfp_trim_nonzero_sourceinput))) /\ (exists fom_gap_pfp_trim_nonzero_sourceinput_value_bound. fom_gap_pfp_trim_nonzero_sourceinput_value_bound + S (fom_value_pfp_trim_nonzero_sourceinput) = p))) /\ (((forall pfp_repeat_index_trim_nonzero_sourceremoved. (exists pfa_gap_trim_nonzero_sourceremovedindex. pfa_gap_trim_nonzero_sourceremovedindex + S (pfp_repeat_index_trim_nonzero_sourceremoved) = (t)) -> (((exists ff_h_pfp_trim_nonzero_sourceremovedentry. ff_h_pfp_trim_nonzero_sourceremovedentry + S (0) = S ((S (pfp_repeat_index_trim_nonzero_sourceremoved)) * c)) /\ exists ff_q_pfp_trim_nonzero_sourceremovedentry. b = ff_q_pfp_trim_nonzero_sourceremovedentry * S ((S (pfp_repeat_index_trim_nonzero_sourceremoved)) * c) + (0)))) /\ (((forall pftrim_index_trim_nonzero_sourcesuffix pftrim_value_trim_nonzero_sourcesuffix. (exists pfa_gap_trim_nonzero_sourcesuffixbound. pfa_gap_trim_nonzero_sourcesuffixbound + S (pftrim_index_trim_nonzero_sourcesuffix) = (M)) -> (((exists ff_h_pfp_trim_nonzero_sourcesuffixsource. ff_h_pfp_trim_nonzero_sourcesuffixsource + S (pftrim_value_trim_nonzero_sourcesuffix) = S ((S ((t)+pftrim_index_trim_nonzero_sourcesuffix)) * c)) /\ exists ff_q_pfp_trim_nonzero_sourcesuffixsource. b = ff_q_pfp_trim_nonzero_sourcesuffixsource * S ((S ((t)+pftrim_index_trim_nonzero_sourcesuffix)) * c) + (pftrim_value_trim_nonzero_sourcesuffix))) -> (((exists ff_h_pfp_trim_nonzero_sourcesuffixoutput. ff_h_pfp_trim_nonzero_sourcesuffixoutput + S (pftrim_value_trim_nonzero_sourcesuffix) = S ((S (pftrim_index_trim_nonzero_sourcesuffix)) * e)) /\ exists ff_q_pfp_trim_nonzero_sourcesuffixoutput. d = ff_q_pfp_trim_nonzero_sourcesuffixoutput * S ((S (pftrim_index_trim_nonzero_sourcesuffix)) * e) + (pftrim_value_trim_nonzero_sourcesuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_trim_nonzero_sourcenormal. ((((exists ff_h_pfp_trim_nonzero_sourcenormalentry. ff_h_pfp_trim_nonzero_sourcenormalentry + S (pftrim_leading_trim_nonzero_sourcenormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_trim_nonzero_sourcenormalentry. d = ff_q_pfp_trim_nonzero_sourcenormalentry * S ((S (0)) * e) + (pftrim_leading_trim_nonzero_sourcenormal))) /\ ((~(pftrim_leading_trim_nonzero_sourcenormal=0))))))))))))))) -> ~(M=0) -> (((exists ff_h_pfp_trim_leading_input. ff_h_pfp_trim_leading_input + S (a) = S ((S (t)) * c)) /\ exists ff_q_pfp_trim_leading_input. b = ff_q_pfp_trim_leading_input * S ((S (t)) * c) + (a))) -> ~(a=0)
  1. intro p
  2. intro b
  3. intro c
  4. intro L
  5. intro t
  6. intro d
  7. intro e
  8. intro M
  9. intro a
  10. intro h
  11. intro hM
  12. intro ha
  13. cases h
  14. cases h_right
  15. cases h_right_right
  16. cases h_right_right_right
  17. cases h_right_right_right_right
  18. exfalso
  19. apply hM
  20. exact h_right_right_right_right_left
  21. cases h_right_right_right_right_right
  22. cases h_right_right_right_right_right_witness
  23. have hout : ((exists ff_h_pfp_trim_head_transported. ff_h_pfp_trim_head_transported + S (a) = S ((S (0)) * e)) /\ exists ff_q_pfp_trim_head_transported. d = ff_q_pfp_trim_head_transported * S ((S (0)) * e) + (a))
  24. specialize h_right_right_right_left (0)
  25. specialize h_right_right_right_left (a)
  26. apply h_right_right_right_left
  27. specialize one_le_of_ne_zero (M)
  28. apply one_le_of_ne_zero
  29. exact hM
  30. have hindex : t+0=t
  31. simp
  32. rewrite hindex
  33. rewrite hindex
  34. exact ha
  35. have heq : a=x
  36. specialize beta_at_unique (d)
  37. specialize beta_at_unique (e)
  38. specialize beta_at_unique (0)
  39. specialize beta_at_unique (a)
  40. specialize beta_at_unique (x)
  41. apply beta_at_unique
  42. exact hout
  43. exact h_right_right_right_right_right_witness_left
  44. intro hz
  45. apply h_right_right_right_right_right_witness_right
  46. trans a
  47. symm
  48. exact heq
  49. exact hz
prime_field_polynomial_trim_zero_prefix_cut_bound · unchanged support, not a new admission
forall p ub uc L t rb rc R q. (exists pfc_gap_division_cut_length. pfc_gap_division_cut_length+(q)=(L)) -> (forall pfp_repeat_index_division_cut_zero. (exists pfa_gap_division_cut_zeroindex. pfa_gap_division_cut_zeroindex + S (pfp_repeat_index_division_cut_zero) = (q)) -> (((exists ff_h_pfp_division_cut_zeroentry. ff_h_pfp_division_cut_zeroentry + S (0) = S ((S (pfp_repeat_index_division_cut_zero)) * uc)) /\ exists ff_q_pfp_division_cut_zeroentry. ub = ff_q_pfp_division_cut_zeroentry * S ((S (pfp_repeat_index_division_cut_zero)) * uc) + (0)))) -> ((((L)=(t)+(R)) /\ (((forall fom_index_pfp_division_cut_triminput. (exists fom_gap_pfp_division_cut_triminput_index_bound. fom_gap_pfp_division_cut_triminput_index_bound + S (fom_index_pfp_division_cut_triminput) = L) -> exists fom_value_pfp_division_cut_triminput. ((((exists fom_beta_height_pfp_division_cut_triminput_entry. fom_beta_height_pfp_division_cut_triminput_entry + S (fom_value_pfp_division_cut_triminput) = S ((S (fom_index_pfp_division_cut_triminput)) * uc)) /\ exists fom_beta_quotient_pfp_division_cut_triminput_entry. ub = fom_beta_quotient_pfp_division_cut_triminput_entry * S ((S (fom_index_pfp_division_cut_triminput)) * uc) + (fom_value_pfp_division_cut_triminput))) /\ (exists fom_gap_pfp_division_cut_triminput_value_bound. fom_gap_pfp_division_cut_triminput_value_bound + S (fom_value_pfp_division_cut_triminput) = p))) /\ (((forall pfp_repeat_index_division_cut_trimremoved. (exists pfa_gap_division_cut_trimremovedindex. pfa_gap_division_cut_trimremovedindex + S (pfp_repeat_index_division_cut_trimremoved) = (t)) -> (((exists ff_h_pfp_division_cut_trimremovedentry. ff_h_pfp_division_cut_trimremovedentry + S (0) = S ((S (pfp_repeat_index_division_cut_trimremoved)) * uc)) /\ exists ff_q_pfp_division_cut_trimremovedentry. ub = ff_q_pfp_division_cut_trimremovedentry * S ((S (pfp_repeat_index_division_cut_trimremoved)) * uc) + (0)))) /\ (((forall pftrim_index_division_cut_trimsuffix pftrim_value_division_cut_trimsuffix. (exists pfa_gap_division_cut_trimsuffixbound. pfa_gap_division_cut_trimsuffixbound + S (pftrim_index_division_cut_trimsuffix) = (R)) -> (((exists ff_h_pfp_division_cut_trimsuffixsource. ff_h_pfp_division_cut_trimsuffixsource + S (pftrim_value_division_cut_trimsuffix) = S ((S ((t)+pftrim_index_division_cut_trimsuffix)) * uc)) /\ exists ff_q_pfp_division_cut_trimsuffixsource. ub = ff_q_pfp_division_cut_trimsuffixsource * S ((S ((t)+pftrim_index_division_cut_trimsuffix)) * uc) + (pftrim_value_division_cut_trimsuffix))) -> (((exists ff_h_pfp_division_cut_trimsuffixoutput. ff_h_pfp_division_cut_trimsuffixoutput + S (pftrim_value_division_cut_trimsuffix) = S ((S (pftrim_index_division_cut_trimsuffix)) * rc)) /\ exists ff_q_pfp_division_cut_trimsuffixoutput. rb = ff_q_pfp_division_cut_trimsuffixoutput * S ((S (pftrim_index_division_cut_trimsuffix)) * rc) + (pftrim_value_division_cut_trimsuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_cut_trimnormal. ((((exists ff_h_pfp_division_cut_trimnormalentry. ff_h_pfp_division_cut_trimnormalentry + S (pftrim_leading_division_cut_trimnormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_cut_trimnormalentry. rb = ff_q_pfp_division_cut_trimnormalentry * S ((S (0)) * rc) + (pftrim_leading_division_cut_trimnormal))) /\ ((~(pftrim_leading_division_cut_trimnormal=0))))))))))))))) -> (exists pfc_gap_division_cut_result. pfc_gap_division_cut_result+(q)=(t))
  1. intro p
  2. intro ub
  3. intro uc
  4. intro L
  5. intro t
  6. intro rb
  7. intro rc
  8. intro R
  9. intro q
  10. intro hlen
  11. intro hz
  12. intro ht
  13. have horder : (exists pfc_gap_division_cut_before. pfc_gap_division_cut_before+(q)=(t)) \/ (exists pfa_gap_division_cut_inside. pfa_gap_division_cut_inside + S (t) = (q))
  14. specialize le_or_lt (q)
  15. specialize le_or_lt (t)
  16. apply le_or_lt
  17. cases horder
  18. exact horder_left
  19. have hR : R=0 \/ ~(R=0)
  20. specialize eq_decidable (R)
  21. specialize eq_decidable (0)
  22. apply eq_decidable
  23. cases hR
  24. have hcopy : (((L)=(t)+(R)) /\ (((forall fom_index_pfp_division_cut_copyinput. (exists fom_gap_pfp_division_cut_copyinput_index_bound. fom_gap_pfp_division_cut_copyinput_index_bound + S (fom_index_pfp_division_cut_copyinput) = L) -> exists fom_value_pfp_division_cut_copyinput. ((((exists fom_beta_height_pfp_division_cut_copyinput_entry. fom_beta_height_pfp_division_cut_copyinput_entry + S (fom_value_pfp_division_cut_copyinput) = S ((S (fom_index_pfp_division_cut_copyinput)) * uc)) /\ exists fom_beta_quotient_pfp_division_cut_copyinput_entry. ub = fom_beta_quotient_pfp_division_cut_copyinput_entry * S ((S (fom_index_pfp_division_cut_copyinput)) * uc) + (fom_value_pfp_division_cut_copyinput))) /\ (exists fom_gap_pfp_division_cut_copyinput_value_bound. fom_gap_pfp_division_cut_copyinput_value_bound + S (fom_value_pfp_division_cut_copyinput) = p))) /\ (((forall pfp_repeat_index_division_cut_copyremoved. (exists pfa_gap_division_cut_copyremovedindex. pfa_gap_division_cut_copyremovedindex + S (pfp_repeat_index_division_cut_copyremoved) = (t)) -> (((exists ff_h_pfp_division_cut_copyremovedentry. ff_h_pfp_division_cut_copyremovedentry + S (0) = S ((S (pfp_repeat_index_division_cut_copyremoved)) * uc)) /\ exists ff_q_pfp_division_cut_copyremovedentry. ub = ff_q_pfp_division_cut_copyremovedentry * S ((S (pfp_repeat_index_division_cut_copyremoved)) * uc) + (0)))) /\ (((forall pftrim_index_division_cut_copysuffix pftrim_value_division_cut_copysuffix. (exists pfa_gap_division_cut_copysuffixbound. pfa_gap_division_cut_copysuffixbound + S (pftrim_index_division_cut_copysuffix) = (R)) -> (((exists ff_h_pfp_division_cut_copysuffixsource. ff_h_pfp_division_cut_copysuffixsource + S (pftrim_value_division_cut_copysuffix) = S ((S ((t)+pftrim_index_division_cut_copysuffix)) * uc)) /\ exists ff_q_pfp_division_cut_copysuffixsource. ub = ff_q_pfp_division_cut_copysuffixsource * S ((S ((t)+pftrim_index_division_cut_copysuffix)) * uc) + (pftrim_value_division_cut_copysuffix))) -> (((exists ff_h_pfp_division_cut_copysuffixoutput. ff_h_pfp_division_cut_copysuffixoutput + S (pftrim_value_division_cut_copysuffix) = S ((S (pftrim_index_division_cut_copysuffix)) * rc)) /\ exists ff_q_pfp_division_cut_copysuffixoutput. rb = ff_q_pfp_division_cut_copysuffixoutput * S ((S (pftrim_index_division_cut_copysuffix)) * rc) + (pftrim_value_division_cut_copysuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_cut_copynormal. ((((exists ff_h_pfp_division_cut_copynormalentry. ff_h_pfp_division_cut_copynormalentry + S (pftrim_leading_division_cut_copynormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_cut_copynormalentry. rb = ff_q_pfp_division_cut_copynormalentry * S ((S (0)) * rc) + (pftrim_leading_division_cut_copynormal))) /\ ((~(pftrim_leading_division_cut_copynormal=0))))))))))))))
  25. exact ht
  26. cases hcopy
  27. cases hcopy_right
  28. cases hcopy_right_right
  29. cases hcopy_right_right_right
  30. have hLt : L=t
  31. trans t+R
  32. exact hcopy_left
  33. rewrite hR_left
  34. simp
  35. rewrite hLt at hlen
  36. exact hlen
  37. exfalso
  38. specialize prime_field_polynomial_trim_leading_source_nonzero (p)
  39. specialize prime_field_polynomial_trim_leading_source_nonzero (ub)
  40. specialize prime_field_polynomial_trim_leading_source_nonzero (uc)
  41. specialize prime_field_polynomial_trim_leading_source_nonzero (L)
  42. specialize prime_field_polynomial_trim_leading_source_nonzero (t)
  43. specialize prime_field_polynomial_trim_leading_source_nonzero (rb)
  44. specialize prime_field_polynomial_trim_leading_source_nonzero (rc)
  45. specialize prime_field_polynomial_trim_leading_source_nonzero (R)
  46. specialize prime_field_polynomial_trim_leading_source_nonzero (0)
  47. apply prime_field_polynomial_trim_leading_source_nonzero
  48. exact ht
  49. exact hR_right
  50. specialize hz (t)
  51. apply hz
  52. exact horder_right
  53. refl
prime_field_polynomial_trim_zero_prefix_remainder_bound · unchanged support, not a new admission
forall p ub uc L t rb rc R q d. (exists pfc_gap_division_remainder_quotient_length. pfc_gap_division_remainder_quotient_length+(q)=(L)) -> (exists pfc_gap_division_remainder_cover_length. pfc_gap_division_remainder_cover_length+(L)=(q+d)) -> (forall pfp_repeat_index_division_remainder_zero. (exists pfa_gap_division_remainder_zeroindex. pfa_gap_division_remainder_zeroindex + S (pfp_repeat_index_division_remainder_zero) = (q)) -> (((exists ff_h_pfp_division_remainder_zeroentry. ff_h_pfp_division_remainder_zeroentry + S (0) = S ((S (pfp_repeat_index_division_remainder_zero)) * uc)) /\ exists ff_q_pfp_division_remainder_zeroentry. ub = ff_q_pfp_division_remainder_zeroentry * S ((S (pfp_repeat_index_division_remainder_zero)) * uc) + (0)))) -> ((((L)=(t)+(R)) /\ (((forall fom_index_pfp_division_remainder_triminput. (exists fom_gap_pfp_division_remainder_triminput_index_bound. fom_gap_pfp_division_remainder_triminput_index_bound + S (fom_index_pfp_division_remainder_triminput) = L) -> exists fom_value_pfp_division_remainder_triminput. ((((exists fom_beta_height_pfp_division_remainder_triminput_entry. fom_beta_height_pfp_division_remainder_triminput_entry + S (fom_value_pfp_division_remainder_triminput) = S ((S (fom_index_pfp_division_remainder_triminput)) * uc)) /\ exists fom_beta_quotient_pfp_division_remainder_triminput_entry. ub = fom_beta_quotient_pfp_division_remainder_triminput_entry * S ((S (fom_index_pfp_division_remainder_triminput)) * uc) + (fom_value_pfp_division_remainder_triminput))) /\ (exists fom_gap_pfp_division_remainder_triminput_value_bound. fom_gap_pfp_division_remainder_triminput_value_bound + S (fom_value_pfp_division_remainder_triminput) = p))) /\ (((forall pfp_repeat_index_division_remainder_trimremoved. (exists pfa_gap_division_remainder_trimremovedindex. pfa_gap_division_remainder_trimremovedindex + S (pfp_repeat_index_division_remainder_trimremoved) = (t)) -> (((exists ff_h_pfp_division_remainder_trimremovedentry. ff_h_pfp_division_remainder_trimremovedentry + S (0) = S ((S (pfp_repeat_index_division_remainder_trimremoved)) * uc)) /\ exists ff_q_pfp_division_remainder_trimremovedentry. ub = ff_q_pfp_division_remainder_trimremovedentry * S ((S (pfp_repeat_index_division_remainder_trimremoved)) * uc) + (0)))) /\ (((forall pftrim_index_division_remainder_trimsuffix pftrim_value_division_remainder_trimsuffix. (exists pfa_gap_division_remainder_trimsuffixbound. pfa_gap_division_remainder_trimsuffixbound + S (pftrim_index_division_remainder_trimsuffix) = (R)) -> (((exists ff_h_pfp_division_remainder_trimsuffixsource. ff_h_pfp_division_remainder_trimsuffixsource + S (pftrim_value_division_remainder_trimsuffix) = S ((S ((t)+pftrim_index_division_remainder_trimsuffix)) * uc)) /\ exists ff_q_pfp_division_remainder_trimsuffixsource. ub = ff_q_pfp_division_remainder_trimsuffixsource * S ((S ((t)+pftrim_index_division_remainder_trimsuffix)) * uc) + (pftrim_value_division_remainder_trimsuffix))) -> (((exists ff_h_pfp_division_remainder_trimsuffixoutput. ff_h_pfp_division_remainder_trimsuffixoutput + S (pftrim_value_division_remainder_trimsuffix) = S ((S (pftrim_index_division_remainder_trimsuffix)) * rc)) /\ exists ff_q_pfp_division_remainder_trimsuffixoutput. rb = ff_q_pfp_division_remainder_trimsuffixoutput * S ((S (pftrim_index_division_remainder_trimsuffix)) * rc) + (pftrim_value_division_remainder_trimsuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_remainder_trimnormal. ((((exists ff_h_pfp_division_remainder_trimnormalentry. ff_h_pfp_division_remainder_trimnormalentry + S (pftrim_leading_division_remainder_trimnormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_remainder_trimnormalentry. rb = ff_q_pfp_division_remainder_trimnormalentry * S ((S (0)) * rc) + (pftrim_leading_division_remainder_trimnormal))) /\ ((~(pftrim_leading_division_remainder_trimnormal=0))))))))))))))) -> (exists pfc_gap_division_remainder_bound. pfc_gap_division_remainder_bound+(R)=(d))
  1. intro p
  2. intro ub
  3. intro uc
  4. intro L
  5. intro t
  6. intro rb
  7. intro rc
  8. intro R
  9. intro q
  10. intro d
  11. intro hqL
  12. intro hLd
  13. intro hz
  14. intro ht
  15. have hqt : exists pfc_gap_division_remainder_cut. pfc_gap_division_remainder_cut+(q)=(t)
  16. specialize prime_field_polynomial_trim_zero_prefix_cut_bound (p)
  17. specialize prime_field_polynomial_trim_zero_prefix_cut_bound (ub)
  18. specialize prime_field_polynomial_trim_zero_prefix_cut_bound (uc)
  19. specialize prime_field_polynomial_trim_zero_prefix_cut_bound (L)
  20. specialize prime_field_polynomial_trim_zero_prefix_cut_bound (t)
  21. specialize prime_field_polynomial_trim_zero_prefix_cut_bound (rb)
  22. specialize prime_field_polynomial_trim_zero_prefix_cut_bound (rc)
  23. specialize prime_field_polynomial_trim_zero_prefix_cut_bound (R)
  24. specialize prime_field_polynomial_trim_zero_prefix_cut_bound (q)
  25. apply prime_field_polynomial_trim_zero_prefix_cut_bound
  26. exact hqL
  27. exact hz
  28. exact ht
  29. have hcopy : (((L)=(t)+(R)) /\ (((forall fom_index_pfp_division_remainder_copyinput. (exists fom_gap_pfp_division_remainder_copyinput_index_bound. fom_gap_pfp_division_remainder_copyinput_index_bound + S (fom_index_pfp_division_remainder_copyinput) = L) -> exists fom_value_pfp_division_remainder_copyinput. ((((exists fom_beta_height_pfp_division_remainder_copyinput_entry. fom_beta_height_pfp_division_remainder_copyinput_entry + S (fom_value_pfp_division_remainder_copyinput) = S ((S (fom_index_pfp_division_remainder_copyinput)) * uc)) /\ exists fom_beta_quotient_pfp_division_remainder_copyinput_entry. ub = fom_beta_quotient_pfp_division_remainder_copyinput_entry * S ((S (fom_index_pfp_division_remainder_copyinput)) * uc) + (fom_value_pfp_division_remainder_copyinput))) /\ (exists fom_gap_pfp_division_remainder_copyinput_value_bound. fom_gap_pfp_division_remainder_copyinput_value_bound + S (fom_value_pfp_division_remainder_copyinput) = p))) /\ (((forall pfp_repeat_index_division_remainder_copyremoved. (exists pfa_gap_division_remainder_copyremovedindex. pfa_gap_division_remainder_copyremovedindex + S (pfp_repeat_index_division_remainder_copyremoved) = (t)) -> (((exists ff_h_pfp_division_remainder_copyremovedentry. ff_h_pfp_division_remainder_copyremovedentry + S (0) = S ((S (pfp_repeat_index_division_remainder_copyremoved)) * uc)) /\ exists ff_q_pfp_division_remainder_copyremovedentry. ub = ff_q_pfp_division_remainder_copyremovedentry * S ((S (pfp_repeat_index_division_remainder_copyremoved)) * uc) + (0)))) /\ (((forall pftrim_index_division_remainder_copysuffix pftrim_value_division_remainder_copysuffix. (exists pfa_gap_division_remainder_copysuffixbound. pfa_gap_division_remainder_copysuffixbound + S (pftrim_index_division_remainder_copysuffix) = (R)) -> (((exists ff_h_pfp_division_remainder_copysuffixsource. ff_h_pfp_division_remainder_copysuffixsource + S (pftrim_value_division_remainder_copysuffix) = S ((S ((t)+pftrim_index_division_remainder_copysuffix)) * uc)) /\ exists ff_q_pfp_division_remainder_copysuffixsource. ub = ff_q_pfp_division_remainder_copysuffixsource * S ((S ((t)+pftrim_index_division_remainder_copysuffix)) * uc) + (pftrim_value_division_remainder_copysuffix))) -> (((exists ff_h_pfp_division_remainder_copysuffixoutput. ff_h_pfp_division_remainder_copysuffixoutput + S (pftrim_value_division_remainder_copysuffix) = S ((S (pftrim_index_division_remainder_copysuffix)) * rc)) /\ exists ff_q_pfp_division_remainder_copysuffixoutput. rb = ff_q_pfp_division_remainder_copysuffixoutput * S ((S (pftrim_index_division_remainder_copysuffix)) * rc) + (pftrim_value_division_remainder_copysuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_remainder_copynormal. ((((exists ff_h_pfp_division_remainder_copynormalentry. ff_h_pfp_division_remainder_copynormalentry + S (pftrim_leading_division_remainder_copynormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_remainder_copynormalentry. rb = ff_q_pfp_division_remainder_copynormalentry * S ((S (0)) * rc) + (pftrim_leading_division_remainder_copynormal))) /\ ((~(pftrim_leading_division_remainder_copynormal=0))))))))))))))
  30. exact ht
  31. cases hcopy
  32. cases hcopy_right
  33. cases hcopy_right_right
  34. cases hcopy_right_right_right
  35. have htotal : R+t=L
  36. trans t+R
  37. specialize add_comm (R)
  38. specialize add_comm (t)
  39. apply add_comm
  40. symm
  41. exact hcopy_left
  42. have hpartial : exists pfc_gap_division_remainder_partial. pfc_gap_division_remainder_partial+(R+q)=(R+t)
  43. specialize add_le_add_left (q)
  44. specialize add_le_add_left (t)
  45. specialize add_le_add_left (R)
  46. apply add_le_add_left
  47. exact hqt
  48. rewrite htotal at hpartial
  49. have hfull : exists pfc_gap_division_remainder_full. pfc_gap_division_remainder_full+(R+q)=(q+d)
  50. specialize le_trans (R+q)
  51. specialize le_trans (L)
  52. specialize le_trans (q+d)
  53. apply le_trans
  54. exact hpartial
  55. exact hLd
  56. have hcomm : q+d=d+q
  57. specialize add_comm (q)
  58. specialize add_comm (d)
  59. apply add_comm
  60. rewrite hcomm at hfull
  61. specialize add_le_cancel_right (R)
  62. specialize add_le_cancel_right (d)
  63. specialize add_le_cancel_right (q)
  64. apply add_le_cancel_right
  65. exact hfull
prime_field_subtract_equal_zero · unchanged support, not a new admission
forall p a r. (~((p) = 1) /\ forall pfa_factor_left_scalar_equal_prime pfa_factor_right_scalar_equal_prime. (p) = pfa_factor_left_scalar_equal_prime * pfa_factor_right_scalar_equal_prime -> pfa_factor_left_scalar_equal_prime = 1 \/ pfa_factor_right_scalar_equal_prime = 1) -> (((exists pfa_gap_scalar_equal_sumleft. pfa_gap_scalar_equal_sumleft + S (a) = (p)) /\ (((exists pfa_gap_scalar_equal_sumright. pfa_gap_scalar_equal_sumright + S (r) = (p)) /\ ((((exists pfa_gap_scalar_equal_sumresultbound. pfa_gap_scalar_equal_sumresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_scalar_equal_sumresultcongruence pfa_offset_right_scalar_equal_sumresultcongruence. ((a) + (r)) + (p) * pfa_offset_left_scalar_equal_sumresultcongruence = (a) + (p) * pfa_offset_right_scalar_equal_sumresultcongruence))))))))) -> r=0
  1. intro p
  2. intro a
  3. intro r
  4. intro hp
  5. intro h
  6. specialize prime_field_add_cancel_left (p)
  7. specialize prime_field_add_cancel_left (a)
  8. specialize prime_field_add_cancel_left (r)
  9. specialize prime_field_add_cancel_left (0)
  10. specialize prime_field_add_cancel_left (a)
  11. apply prime_field_add_cancel_left
  12. exact h
  13. specialize prime_field_add_zero_right (p)
  14. specialize prime_field_add_zero_right (a)
  15. apply prime_field_add_zero_right
  16. exact hp
  17. cases h
  18. exact h_left
prime_field_polynomial_subtract_equal_entry_zero · unchanged support, not a new admission
forall p ab ac bb bc rb rc l i a r. (~((p) = 1) /\ forall pfa_factor_left_sub_entry_zero_prime pfa_factor_right_sub_entry_zero_prime. (p) = pfa_factor_left_sub_entry_zero_prime * pfa_factor_right_sub_entry_zero_prime -> pfa_factor_left_sub_entry_zero_prime = 1 \/ pfa_factor_right_sub_entry_zero_prime = 1) -> (forall pfs_index_sub_entry_zero_graph. (exists pfa_gap_sub_entry_zero_graphindex. pfa_gap_sub_entry_zero_graphindex + S (pfs_index_sub_entry_zero_graph) = (l)) -> exists pfs_left_sub_entry_zero_graph pfs_right_sub_entry_zero_graph pfs_result_sub_entry_zero_graph. ((((exists ff_h_pfp_sub_entry_zero_graphleft. ff_h_pfp_sub_entry_zero_graphleft + S (pfs_left_sub_entry_zero_graph) = S ((S (pfs_index_sub_entry_zero_graph)) * ac)) /\ exists ff_q_pfp_sub_entry_zero_graphleft. ab = ff_q_pfp_sub_entry_zero_graphleft * S ((S (pfs_index_sub_entry_zero_graph)) * ac) + (pfs_left_sub_entry_zero_graph))) /\ (((((exists ff_h_pfp_sub_entry_zero_graphright. ff_h_pfp_sub_entry_zero_graphright + S (pfs_right_sub_entry_zero_graph) = S ((S (pfs_index_sub_entry_zero_graph)) * bc)) /\ exists ff_q_pfp_sub_entry_zero_graphright. bb = ff_q_pfp_sub_entry_zero_graphright * S ((S (pfs_index_sub_entry_zero_graph)) * bc) + (pfs_right_sub_entry_zero_graph))) /\ (((((exists ff_h_pfp_sub_entry_zero_graphresult. ff_h_pfp_sub_entry_zero_graphresult + S (pfs_result_sub_entry_zero_graph) = S ((S (pfs_index_sub_entry_zero_graph)) * rc)) /\ exists ff_q_pfp_sub_entry_zero_graphresult. rb = ff_q_pfp_sub_entry_zero_graphresult * S ((S (pfs_index_sub_entry_zero_graph)) * rc) + (pfs_result_sub_entry_zero_graph))) /\ ((((exists pfa_gap_sub_entry_zero_graphoperationleft. pfa_gap_sub_entry_zero_graphoperationleft + S (pfs_right_sub_entry_zero_graph) = (p)) /\ (((exists pfa_gap_sub_entry_zero_graphoperationright. pfa_gap_sub_entry_zero_graphoperationright + S (pfs_result_sub_entry_zero_graph) = (p)) /\ ((((exists pfa_gap_sub_entry_zero_graphoperationresultbound. pfa_gap_sub_entry_zero_graphoperationresultbound + S (pfs_left_sub_entry_zero_graph) = (p)) /\ ((exists pfa_offset_left_sub_entry_zero_graphoperationresultcongruence pfa_offset_right_sub_entry_zero_graphoperationresultcongruence. ((pfs_right_sub_entry_zero_graph) + (pfs_result_sub_entry_zero_graph)) + (p) * pfa_offset_left_sub_entry_zero_graphoperationresultcongruence = (pfs_left_sub_entry_zero_graph) + (p) * pfa_offset_right_sub_entry_zero_graphoperationresultcongruence)))))))))))))))) -> (exists pfa_gap_sub_entry_zero_index. pfa_gap_sub_entry_zero_index + S (i) = (l)) -> (((exists ff_h_pfp_sub_entry_zero_a. ff_h_pfp_sub_entry_zero_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_sub_entry_zero_a. ab = ff_q_pfp_sub_entry_zero_a * S ((S (i)) * ac) + (a))) -> (((exists ff_h_pfp_sub_entry_zero_b. ff_h_pfp_sub_entry_zero_b + S (a) = S ((S (i)) * bc)) /\ exists ff_q_pfp_sub_entry_zero_b. bb = ff_q_pfp_sub_entry_zero_b * S ((S (i)) * bc) + (a))) -> (((exists ff_h_pfp_sub_entry_zero_r. ff_h_pfp_sub_entry_zero_r + S (r) = S ((S (i)) * rc)) /\ exists ff_q_pfp_sub_entry_zero_r. rb = ff_q_pfp_sub_entry_zero_r * S ((S (i)) * rc) + (r))) -> r=0
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro rb
  7. intro rc
  8. intro l
  9. intro i
  10. intro a
  11. intro r
  12. intro hp
  13. intro h
  14. intro hi
  15. intro ha
  16. intro hb
  17. intro hr
  18. specialize prime_field_subtract_equal_zero (p)
  19. specialize prime_field_subtract_equal_zero (a)
  20. specialize prime_field_subtract_equal_zero (r)
  21. apply prime_field_subtract_equal_zero
  22. exact hp
  23. specialize prime_field_polynomial_subtract_entry (p)
  24. specialize prime_field_polynomial_subtract_entry (ab)
  25. specialize prime_field_polynomial_subtract_entry (ac)
  26. specialize prime_field_polynomial_subtract_entry (bb)
  27. specialize prime_field_polynomial_subtract_entry (bc)
  28. specialize prime_field_polynomial_subtract_entry (rb)
  29. specialize prime_field_polynomial_subtract_entry (rc)
  30. specialize prime_field_polynomial_subtract_entry (l)
  31. specialize prime_field_polynomial_subtract_entry (i)
  32. specialize prime_field_polynomial_subtract_entry (a)
  33. specialize prime_field_polynomial_subtract_entry (a)
  34. specialize prime_field_polynomial_subtract_entry (r)
  35. apply prime_field_polynomial_subtract_entry
  36. exact h
  37. exact hi
  38. exact ha
  39. exact hb
  40. exact hr
prime_field_polynomial_subtract_equal_zero · unchanged support, not a new admission
forall p ab ac bb bc rb rc l. (~((p) = 1) /\ forall pfa_factor_left_sub_equal_prime pfa_factor_right_sub_equal_prime. (p) = pfa_factor_left_sub_equal_prime * pfa_factor_right_sub_equal_prime -> pfa_factor_left_sub_equal_prime = 1 \/ pfa_factor_right_sub_equal_prime = 1) -> (forall mdr_i_pfp_sub_equal_inputs mdr_a_pfp_sub_equal_inputs. (exists mdr_gap_pfp_sub_equal_inputsb. mdr_gap_pfp_sub_equal_inputsb + S (mdr_i_pfp_sub_equal_inputs) = (l)) -> (((exists ff_h_mdr_pfp_sub_equal_inputso. ff_h_mdr_pfp_sub_equal_inputso + S (mdr_a_pfp_sub_equal_inputs) = S ((S (mdr_i_pfp_sub_equal_inputs)) * ac)) /\ exists ff_q_mdr_pfp_sub_equal_inputso. ab = ff_q_mdr_pfp_sub_equal_inputso * S ((S (mdr_i_pfp_sub_equal_inputs)) * ac) + (mdr_a_pfp_sub_equal_inputs))) -> (((exists ff_h_mdr_pfp_sub_equal_inputsn. ff_h_mdr_pfp_sub_equal_inputsn + S (mdr_a_pfp_sub_equal_inputs) = S ((S (mdr_i_pfp_sub_equal_inputs)) * bc)) /\ exists ff_q_mdr_pfp_sub_equal_inputsn. bb = ff_q_mdr_pfp_sub_equal_inputsn * S ((S (mdr_i_pfp_sub_equal_inputs)) * bc) + (mdr_a_pfp_sub_equal_inputs)))) -> (forall pfs_index_sub_equal_graph. (exists pfa_gap_sub_equal_graphindex. pfa_gap_sub_equal_graphindex + S (pfs_index_sub_equal_graph) = (l)) -> exists pfs_left_sub_equal_graph pfs_right_sub_equal_graph pfs_result_sub_equal_graph. ((((exists ff_h_pfp_sub_equal_graphleft. ff_h_pfp_sub_equal_graphleft + S (pfs_left_sub_equal_graph) = S ((S (pfs_index_sub_equal_graph)) * ac)) /\ exists ff_q_pfp_sub_equal_graphleft. ab = ff_q_pfp_sub_equal_graphleft * S ((S (pfs_index_sub_equal_graph)) * ac) + (pfs_left_sub_equal_graph))) /\ (((((exists ff_h_pfp_sub_equal_graphright. ff_h_pfp_sub_equal_graphright + S (pfs_right_sub_equal_graph) = S ((S (pfs_index_sub_equal_graph)) * bc)) /\ exists ff_q_pfp_sub_equal_graphright. bb = ff_q_pfp_sub_equal_graphright * S ((S (pfs_index_sub_equal_graph)) * bc) + (pfs_right_sub_equal_graph))) /\ (((((exists ff_h_pfp_sub_equal_graphresult. ff_h_pfp_sub_equal_graphresult + S (pfs_result_sub_equal_graph) = S ((S (pfs_index_sub_equal_graph)) * rc)) /\ exists ff_q_pfp_sub_equal_graphresult. rb = ff_q_pfp_sub_equal_graphresult * S ((S (pfs_index_sub_equal_graph)) * rc) + (pfs_result_sub_equal_graph))) /\ ((((exists pfa_gap_sub_equal_graphoperationleft. pfa_gap_sub_equal_graphoperationleft + S (pfs_right_sub_equal_graph) = (p)) /\ (((exists pfa_gap_sub_equal_graphoperationright. pfa_gap_sub_equal_graphoperationright + S (pfs_result_sub_equal_graph) = (p)) /\ ((((exists pfa_gap_sub_equal_graphoperationresultbound. pfa_gap_sub_equal_graphoperationresultbound + S (pfs_left_sub_equal_graph) = (p)) /\ ((exists pfa_offset_left_sub_equal_graphoperationresultcongruence pfa_offset_right_sub_equal_graphoperationresultcongruence. ((pfs_right_sub_equal_graph) + (pfs_result_sub_equal_graph)) + (p) * pfa_offset_left_sub_equal_graphoperationresultcongruence = (pfs_left_sub_equal_graph) + (p) * pfa_offset_right_sub_equal_graphoperationresultcongruence)))))))))))))))) -> (forall pfp_repeat_index_sub_equal_result. (exists pfa_gap_sub_equal_resultindex. pfa_gap_sub_equal_resultindex + S (pfp_repeat_index_sub_equal_result) = (l)) -> (((exists ff_h_pfp_sub_equal_resultentry. ff_h_pfp_sub_equal_resultentry + S (0) = S ((S (pfp_repeat_index_sub_equal_result)) * rc)) /\ exists ff_q_pfp_sub_equal_resultentry. rb = ff_q_pfp_sub_equal_resultentry * S ((S (pfp_repeat_index_sub_equal_result)) * rc) + (0))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro rb
  7. intro rc
  8. intro l
  9. intro hp
  10. intro he
  11. intro h
  12. intro i
  13. intro hi
  14. have ha : exists a. (((exists ff_h_pfp_sub_all_zero_a. ff_h_pfp_sub_all_zero_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_sub_all_zero_a. ab = ff_q_pfp_sub_all_zero_a * S ((S (i)) * ac) + (a)))
  15. specialize beta_at_exists (ab)
  16. specialize beta_at_exists (ac)
  17. specialize beta_at_exists (i)
  18. apply beta_at_exists
  19. cases ha
  20. have hr : exists r. (((exists ff_h_pfp_sub_all_zero_r. ff_h_pfp_sub_all_zero_r + S (r) = S ((S (i)) * rc)) /\ exists ff_q_pfp_sub_all_zero_r. rb = ff_q_pfp_sub_all_zero_r * S ((S (i)) * rc) + (r)))
  21. specialize beta_at_exists (rb)
  22. specialize beta_at_exists (rc)
  23. specialize beta_at_exists (i)
  24. apply beta_at_exists
  25. cases hr
  26. have hz : x1=0
  27. specialize prime_field_polynomial_subtract_equal_entry_zero (p)
  28. specialize prime_field_polynomial_subtract_equal_entry_zero (ab)
  29. specialize prime_field_polynomial_subtract_equal_entry_zero (ac)
  30. specialize prime_field_polynomial_subtract_equal_entry_zero (bb)
  31. specialize prime_field_polynomial_subtract_equal_entry_zero (bc)
  32. specialize prime_field_polynomial_subtract_equal_entry_zero (rb)
  33. specialize prime_field_polynomial_subtract_equal_entry_zero (rc)
  34. specialize prime_field_polynomial_subtract_equal_entry_zero (l)
  35. specialize prime_field_polynomial_subtract_equal_entry_zero (i)
  36. specialize prime_field_polynomial_subtract_equal_entry_zero (x)
  37. specialize prime_field_polynomial_subtract_equal_entry_zero (x1)
  38. apply prime_field_polynomial_subtract_equal_entry_zero
  39. exact hp
  40. exact h
  41. exact hi
  42. exact ha_witness
  43. specialize he (i)
  44. specialize he (x)
  45. apply he
  46. exact hi
  47. exact ha_witness
  48. exact hr_witness
  49. rewrite hz at hr_witness
  50. rewrite hz at hr_witness
  51. exact hr_witness
prime_field_multiply_associative · unchanged support, not a new admission
forall p a b c x y u v. (((exists pfa_gap_multiplyassoc_firstleft. pfa_gap_multiplyassoc_firstleft + S (a) = (p)) /\ (((exists pfa_gap_multiplyassoc_firstright. pfa_gap_multiplyassoc_firstright + S (b) = (p)) /\ ((((exists pfa_gap_multiplyassoc_firstresultbound. pfa_gap_multiplyassoc_firstresultbound + S (x) = (p)) /\ ((exists pfa_offset_left_multiplyassoc_firstresultcongruence pfa_offset_right_multiplyassoc_firstresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_multiplyassoc_firstresultcongruence = (x) + (p) * pfa_offset_right_multiplyassoc_firstresultcongruence))))))))) -> (((exists pfa_gap_multiplyassoc_leftleft. pfa_gap_multiplyassoc_leftleft + S (x) = (p)) /\ (((exists pfa_gap_multiplyassoc_leftright. pfa_gap_multiplyassoc_leftright + S (c) = (p)) /\ ((((exists pfa_gap_multiplyassoc_leftresultbound. pfa_gap_multiplyassoc_leftresultbound + S (u) = (p)) /\ ((exists pfa_offset_left_multiplyassoc_leftresultcongruence pfa_offset_right_multiplyassoc_leftresultcongruence. ((x) * (c)) + (p) * pfa_offset_left_multiplyassoc_leftresultcongruence = (u) + (p) * pfa_offset_right_multiplyassoc_leftresultcongruence))))))))) -> (((exists pfa_gap_multiplyassoc_secondleft. pfa_gap_multiplyassoc_secondleft + S (b) = (p)) /\ (((exists pfa_gap_multiplyassoc_secondright. pfa_gap_multiplyassoc_secondright + S (c) = (p)) /\ ((((exists pfa_gap_multiplyassoc_secondresultbound. pfa_gap_multiplyassoc_secondresultbound + S (y) = (p)) /\ ((exists pfa_offset_left_multiplyassoc_secondresultcongruence pfa_offset_right_multiplyassoc_secondresultcongruence. ((b) * (c)) + (p) * pfa_offset_left_multiplyassoc_secondresultcongruence = (y) + (p) * pfa_offset_right_multiplyassoc_secondresultcongruence))))))))) -> (((exists pfa_gap_multiplyassoc_rightleft. pfa_gap_multiplyassoc_rightleft + S (a) = (p)) /\ (((exists pfa_gap_multiplyassoc_rightright. pfa_gap_multiplyassoc_rightright + S (y) = (p)) /\ ((((exists pfa_gap_multiplyassoc_rightresultbound. pfa_gap_multiplyassoc_rightresultbound + S (v) = (p)) /\ ((exists pfa_offset_left_multiplyassoc_rightresultcongruence pfa_offset_right_multiplyassoc_rightresultcongruence. ((a) * (y)) + (p) * pfa_offset_left_multiplyassoc_rightresultcongruence = (v) + (p) * pfa_offset_right_multiplyassoc_rightresultcongruence))))))))) -> u = v
  1. intro p
  2. intro a
  3. intro b
  4. intro c
  5. intro x
  6. intro y
  7. intro u
  8. intro v
  9. intro hfirst
  10. intro hleft
  11. intro hsecond
  12. intro hright
  13. cases hfirst
  14. cases hfirst_right
  15. cases hfirst_right_right
  16. cases hleft
  17. cases hleft_right
  18. cases hleft_right_right
  19. cases hsecond
  20. cases hsecond_right
  21. cases hsecond_right_right
  22. cases hright
  23. cases hright_right
  24. cases hright_right_right
  25. have hl : ((exists pfa_gap_multiplyassoc_raw_leftbound. pfa_gap_multiplyassoc_raw_leftbound + S (u) = (p)) /\ ((exists pfa_offset_left_multiplyassoc_raw_leftcongruence pfa_offset_right_multiplyassoc_raw_leftcongruence. ((a * b) * c) + (p) * pfa_offset_left_multiplyassoc_raw_leftcongruence = (u) + (p) * pfa_offset_right_multiplyassoc_raw_leftcongruence)))
  26. split
  27. exact hleft_right_right_left
  28. specialize mod_eq_trans (p)
  29. specialize mod_eq_trans ((a * b) * c)
  30. specialize mod_eq_trans (x * c)
  31. specialize mod_eq_trans (u)
  32. apply mod_eq_trans
  33. specialize mod_eq_mul (p)
  34. specialize mod_eq_mul (a * b)
  35. specialize mod_eq_mul (x)
  36. specialize mod_eq_mul (c)
  37. specialize mod_eq_mul (c)
  38. apply mod_eq_mul
  39. exact hfirst_right_right_right
  40. specialize mod_eq_refl (p)
  41. specialize mod_eq_refl (c)
  42. apply mod_eq_refl
  43. exact hleft_right_right_right
  44. have hr : ((exists pfa_gap_multiplyassoc_raw_rightbound. pfa_gap_multiplyassoc_raw_rightbound + S (v) = (p)) /\ ((exists pfa_offset_left_multiplyassoc_raw_rightcongruence pfa_offset_right_multiplyassoc_raw_rightcongruence. (a * (b * c)) + (p) * pfa_offset_left_multiplyassoc_raw_rightcongruence = (v) + (p) * pfa_offset_right_multiplyassoc_raw_rightcongruence)))
  45. split
  46. exact hright_right_right_left
  47. specialize mod_eq_trans (p)
  48. specialize mod_eq_trans (a * (b * c))
  49. specialize mod_eq_trans (a * y)
  50. specialize mod_eq_trans (v)
  51. apply mod_eq_trans
  52. specialize mod_eq_mul (p)
  53. specialize mod_eq_mul (a)
  54. specialize mod_eq_mul (a)
  55. specialize mod_eq_mul (b * c)
  56. specialize mod_eq_mul (y)
  57. apply mod_eq_mul
  58. specialize mod_eq_refl (p)
  59. specialize mod_eq_refl (a)
  60. apply mod_eq_refl
  61. exact hsecond_right_right_right
  62. exact hright_right_right_right
  63. specialize binary_canonical_residue_functional (p)
  64. specialize binary_canonical_residue_functional ((a * b) * c)
  65. specialize binary_canonical_residue_functional (u)
  66. specialize binary_canonical_residue_functional (v)
  67. apply binary_canonical_residue_functional
  68. exact hl
  69. specialize prime_field_residue_input_equal (p)
  70. specialize prime_field_residue_input_equal ((a * b) * c)
  71. specialize prime_field_residue_input_equal (a * (b * c))
  72. specialize prime_field_residue_input_equal (v)
  73. apply prime_field_residue_input_equal
  74. specialize mul_assoc (a)
  75. specialize mul_assoc (b)
  76. specialize mul_assoc (c)
  77. apply mul_assoc
  78. exact hr
prime_field_multiply_one_right · unchanged support, not a new admission
forall p a. (~((p) = 1) /\ forall pfa_factor_left_multiply_one_domain pfa_factor_right_multiply_one_domain. (p) = pfa_factor_left_multiply_one_domain * pfa_factor_right_multiply_one_domain -> pfa_factor_left_multiply_one_domain = 1 \/ pfa_factor_right_multiply_one_domain = 1) -> (exists pfa_gap_multiply_one_bound. pfa_gap_multiply_one_bound + S (a) = (p)) -> (((exists pfa_gap_multiply_oneleft. pfa_gap_multiply_oneleft + S (a) = (p)) /\ (((exists pfa_gap_multiply_oneright. pfa_gap_multiply_oneright + S (1) = (p)) /\ ((((exists pfa_gap_multiply_oneresultbound. pfa_gap_multiply_oneresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_multiply_oneresultcongruence pfa_offset_right_multiply_oneresultcongruence. ((a) * (1)) + (p) * pfa_offset_left_multiply_oneresultcongruence = (a) + (p) * pfa_offset_right_multiply_oneresultcongruence)))))))))
  1. intro p
  2. intro a
  3. intro hp
  4. intro ha
  5. split
  6. exact ha
  7. split
  8. specialize prime_two_le (p)
  9. apply prime_two_le
  10. exact hp
  11. split
  12. exact ha
  13. specialize prime_field_mod_of_equal (p)
  14. specialize prime_field_mod_of_equal (a * 1)
  15. specialize prime_field_mod_of_equal (a)
  16. apply prime_field_mod_of_equal
  17. specialize mul_one (a)
  18. apply mul_one
prime_field_multiply_one_left · unchanged support, not a new admission
forall p a. (~((p) = 1) /\ forall pfa_factor_left_one_multiply_domain pfa_factor_right_one_multiply_domain. (p) = pfa_factor_left_one_multiply_domain * pfa_factor_right_one_multiply_domain -> pfa_factor_left_one_multiply_domain = 1 \/ pfa_factor_right_one_multiply_domain = 1) -> (exists pfa_gap_one_multiply_bound. pfa_gap_one_multiply_bound + S (a) = (p)) -> (((exists pfa_gap_one_multiplyleft. pfa_gap_one_multiplyleft + S (1) = (p)) /\ (((exists pfa_gap_one_multiplyright. pfa_gap_one_multiplyright + S (a) = (p)) /\ ((((exists pfa_gap_one_multiplyresultbound. pfa_gap_one_multiplyresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_one_multiplyresultcongruence pfa_offset_right_one_multiplyresultcongruence. ((1) * (a)) + (p) * pfa_offset_left_one_multiplyresultcongruence = (a) + (p) * pfa_offset_right_one_multiplyresultcongruence)))))))))
  1. intro p
  2. intro a
  3. intro hp
  4. intro ha
  5. specialize prime_field_multiply_commutative (p)
  6. specialize prime_field_multiply_commutative (a)
  7. specialize prime_field_multiply_commutative (1)
  8. specialize prime_field_multiply_commutative (a)
  9. apply prime_field_multiply_commutative
  10. specialize prime_field_multiply_one_right (p)
  11. specialize prime_field_multiply_one_right (a)
  12. apply prime_field_multiply_one_right
  13. exact hp
  14. exact ha
prime_field_polynomial_quotient_scalar_cancellation · unchanged support, not a new admission
forall p b k c s a q t r. (~((p) = 1) /\ forall pfa_factor_left_division_scalar_prime pfa_factor_right_division_scalar_prime. (p) = pfa_factor_left_division_scalar_prime * pfa_factor_right_division_scalar_prime -> pfa_factor_left_division_scalar_prime = 1 \/ pfa_factor_right_division_scalar_prime = 1) -> (((~((b) = 0)) /\ ((((exists pfa_gap_division_scalar_inversemultiplicationleft. pfa_gap_division_scalar_inversemultiplicationleft + S (b) = (p)) /\ (((exists pfa_gap_division_scalar_inversemultiplicationright. pfa_gap_division_scalar_inversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_division_scalar_inversemultiplicationresultbound. pfa_gap_division_scalar_inversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_division_scalar_inversemultiplicationresultcongruence pfa_offset_right_division_scalar_inversemultiplicationresultcongruence. ((b) * (k)) + (p) * pfa_offset_left_division_scalar_inversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_division_scalar_inversemultiplicationresultcongruence)))))))))))) -> (((exists pfa_gap_division_scalar_differenceleft. pfa_gap_division_scalar_differenceleft + S (c) = (p)) /\ (((exists pfa_gap_division_scalar_differenceright. pfa_gap_division_scalar_differenceright + S (s) = (p)) /\ ((((exists pfa_gap_division_scalar_differenceresultbound. pfa_gap_division_scalar_differenceresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_division_scalar_differenceresultcongruence pfa_offset_right_division_scalar_differenceresultcongruence. ((c) + (s)) + (p) * pfa_offset_left_division_scalar_differenceresultcongruence = (a) + (p) * pfa_offset_right_division_scalar_differenceresultcongruence))))))))) -> (((exists pfa_gap_division_scalar_quotientleft. pfa_gap_division_scalar_quotientleft + S (k) = (p)) /\ (((exists pfa_gap_division_scalar_quotientright. pfa_gap_division_scalar_quotientright + S (s) = (p)) /\ ((((exists pfa_gap_division_scalar_quotientresultbound. pfa_gap_division_scalar_quotientresultbound + S (q) = (p)) /\ ((exists pfa_offset_left_division_scalar_quotientresultcongruence pfa_offset_right_division_scalar_quotientresultcongruence. ((k) * (s)) + (p) * pfa_offset_left_division_scalar_quotientresultcongruence = (q) + (p) * pfa_offset_right_division_scalar_quotientresultcongruence))))))))) -> (((exists pfa_gap_division_scalar_productleft. pfa_gap_division_scalar_productleft + S (q) = (p)) /\ (((exists pfa_gap_division_scalar_productright. pfa_gap_division_scalar_productright + S (b) = (p)) /\ ((((exists pfa_gap_division_scalar_productresultbound. pfa_gap_division_scalar_productresultbound + S (t) = (p)) /\ ((exists pfa_offset_left_division_scalar_productresultcongruence pfa_offset_right_division_scalar_productresultcongruence. ((q) * (b)) + (p) * pfa_offset_left_division_scalar_productresultcongruence = (t) + (p) * pfa_offset_right_division_scalar_productresultcongruence))))))))) -> (((exists pfa_gap_division_scalar_sumleft. pfa_gap_division_scalar_sumleft + S (c) = (p)) /\ (((exists pfa_gap_division_scalar_sumright. pfa_gap_division_scalar_sumright + S (t) = (p)) /\ ((((exists pfa_gap_division_scalar_sumresultbound. pfa_gap_division_scalar_sumresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_division_scalar_sumresultcongruence pfa_offset_right_division_scalar_sumresultcongruence. ((c) + (t)) + (p) * pfa_offset_left_division_scalar_sumresultcongruence = (r) + (p) * pfa_offset_right_division_scalar_sumresultcongruence))))))))) -> r=a
  1. intro p
  2. intro b
  3. intro k
  4. intro c
  5. intro s
  6. intro a
  7. intro q
  8. intro t
  9. intro r
  10. intro hp
  11. intro hk
  12. intro ha
  13. intro hq
  14. intro ht
  15. intro hr
  16. cases hk
  17. cases hq
  18. cases hq_right
  19. have heq : s=t
  20. specialize prime_field_multiply_associative (p)
  21. specialize prime_field_multiply_associative (b)
  22. specialize prime_field_multiply_associative (k)
  23. specialize prime_field_multiply_associative (s)
  24. specialize prime_field_multiply_associative (1)
  25. specialize prime_field_multiply_associative (q)
  26. specialize prime_field_multiply_associative (s)
  27. specialize prime_field_multiply_associative (t)
  28. apply prime_field_multiply_associative
  29. exact hk_right
  30. specialize prime_field_multiply_one_left (p)
  31. specialize prime_field_multiply_one_left (s)
  32. apply prime_field_multiply_one_left
  33. exact hp
  34. exact hq_right_left
  35. exact hq
  36. specialize prime_field_multiply_commutative (p)
  37. specialize prime_field_multiply_commutative (q)
  38. specialize prime_field_multiply_commutative (b)
  39. specialize prime_field_multiply_commutative (t)
  40. apply prime_field_multiply_commutative
  41. exact ht
  42. rewrite heq at ha
  43. rewrite heq at ha
  44. specialize prime_field_add_functional (p)
  45. specialize prime_field_add_functional (c)
  46. specialize prime_field_add_functional (t)
  47. specialize prime_field_add_functional (r)
  48. specialize prime_field_add_functional (a)
  49. apply prime_field_add_functional
  50. exact hr
  51. exact ha
prime_field_polynomial_quotient_prefix_convolution_entry · unchanged support, not a new admission
forall p k ab ac bb bc d qb qc N b i r. (~((p) = 1) /\ forall pfa_factor_left_division_match_prime pfa_factor_right_division_match_prime. (p) = pfa_factor_left_division_match_prime * pfa_factor_right_division_match_prime -> pfa_factor_left_division_match_prime = 1 \/ pfa_factor_right_division_match_prime = 1) -> (((exists ff_h_pfp_division_match_head. ff_h_pfp_division_match_head + S (b) = S ((S (0)) * bc)) /\ exists ff_q_pfp_division_match_head. bb = ff_q_pfp_division_match_head * S ((S (0)) * bc) + (b))) -> (((~((b) = 0)) /\ ((((exists pfa_gap_division_match_inversemultiplicationleft. pfa_gap_division_match_inversemultiplicationleft + S (b) = (p)) /\ (((exists pfa_gap_division_match_inversemultiplicationright. pfa_gap_division_match_inversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_division_match_inversemultiplicationresultbound. pfa_gap_division_match_inversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_division_match_inversemultiplicationresultcongruence pfa_offset_right_division_match_inversemultiplicationresultcongruence. ((b) * (k)) + (p) * pfa_offset_left_division_match_inversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_division_match_inversemultiplicationresultcongruence)))))))))))) -> (forall pfd_index_division_match_execution. (exists pfa_gap_division_match_executionbound. pfa_gap_division_match_executionbound + S (pfd_index_division_match_execution) = (N)) -> exists pfd_value_division_match_execution. ((((exists ff_h_pfp_division_match_executionentry. ff_h_pfp_division_match_executionentry + S (pfd_value_division_match_execution) = S ((S (pfd_index_division_match_execution)) * qc)) /\ exists ff_q_pfp_division_match_executionentry. qb = ff_q_pfp_division_match_executionentry * S ((S (pfd_index_division_match_execution)) * qc) + (pfd_value_division_match_execution))) /\ ((exists pfd_input_division_match_executionstep pfd_previous_division_match_executionstep pfd_difference_division_match_executionstep. ((((exists ff_h_pfp_division_match_executionstepinput. ff_h_pfp_division_match_executionstepinput + S (pfd_input_division_match_executionstep) = S ((S (pfd_index_division_match_execution)) * ac)) /\ exists ff_q_pfp_division_match_executionstepinput. ab = ff_q_pfp_division_match_executionstepinput * S ((S (pfd_index_division_match_execution)) * ac) + (pfd_input_division_match_executionstep))) /\ (((exists pfc_terms_code_division_match_executionstepprevious pfc_terms_scale_division_match_executionstepprevious pfc_natural_sum_division_match_executionstepprevious. ((forall pfc_index_division_match_executionsteppreviousdiagonal. (exists pfa_gap_division_match_executionsteppreviousdiagonalbound. pfa_gap_division_match_executionsteppreviousdiagonalbound + S (pfc_index_division_match_executionsteppreviousdiagonal) = (S (pfd_index_division_match_execution))) -> exists pfc_value_division_match_executionsteppreviousdiagonal. ((((exists ff_h_pfp_division_match_executionsteppreviousdiagonalentry. ff_h_pfp_division_match_executionsteppreviousdiagonalentry + S (pfc_value_division_match_executionsteppreviousdiagonal) = S ((S (pfc_index_division_match_executionsteppreviousdiagonal)) * pfc_terms_scale_division_match_executionstepprevious)) /\ exists ff_q_pfp_division_match_executionsteppreviousdiagonalentry. pfc_terms_code_division_match_executionstepprevious = ff_q_pfp_division_match_executionsteppreviousdiagonalentry * S ((S (pfc_index_division_match_executionsteppreviousdiagonal)) * pfc_terms_scale_division_match_executionstepprevious) + (pfc_value_division_match_executionsteppreviousdiagonal))) /\ ((exists pfc_complement_division_match_executionsteppreviousdiagonalterm pfc_left_division_match_executionsteppreviousdiagonalterm pfc_right_division_match_executionsteppreviousdiagonalterm. (((pfc_index_division_match_executionsteppreviousdiagonal)+pfc_complement_division_match_executionsteppreviousdiagonalterm=(pfd_index_division_match_execution)) /\ ((((((exists pfa_gap_division_match_executionsteppreviousdiagonaltermleftinside. pfa_gap_division_match_executionsteppreviousdiagonaltermleftinside + S (pfc_index_division_match_executionsteppreviousdiagonal) = (pfd_index_division_match_execution)) /\ ((((exists ff_h_pfp_division_match_executionsteppreviousdiagonaltermleftentry. ff_h_pfp_division_match_executionsteppreviousdiagonaltermleftentry + S (pfc_left_division_match_executionsteppreviousdiagonalterm) = S ((S (pfc_index_division_match_executionsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_match_executionsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_match_executionsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_match_executionsteppreviousdiagonal)) * qc) + (pfc_left_division_match_executionsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_match_executionsteppreviousdiagonaltermleftoutside. pfc_gap_division_match_executionsteppreviousdiagonaltermleftoutside+(pfd_index_division_match_execution)=(pfc_index_division_match_executionsteppreviousdiagonal)) /\ (((pfc_left_division_match_executionsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_match_executionsteppreviousdiagonaltermrightinside. pfa_gap_division_match_executionsteppreviousdiagonaltermrightinside + S (pfc_complement_division_match_executionsteppreviousdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_match_executionsteppreviousdiagonaltermrightentry. ff_h_pfp_division_match_executionsteppreviousdiagonaltermrightentry + S (pfc_right_division_match_executionsteppreviousdiagonalterm) = S ((S (pfc_complement_division_match_executionsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_match_executionsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_match_executionsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_match_executionsteppreviousdiagonalterm)) * bc) + (pfc_right_division_match_executionsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_match_executionsteppreviousdiagonaltermrightoutside. pfc_gap_division_match_executionsteppreviousdiagonaltermrightoutside+(S d)=(pfc_complement_division_match_executionsteppreviousdiagonalterm)) /\ (((pfc_right_division_match_executionsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_match_executionsteppreviousdiagonal)=pfc_left_division_match_executionsteppreviousdiagonalterm*pfc_right_division_match_executionsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_match_executionstepprevioussum fs_v_pfc_division_match_executionstepprevioussum. ((((exists fs_h_pfc_division_match_executionstepprevioussum_body_start. fs_h_pfc_division_match_executionstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_match_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_executionstepprevioussum_body_start. fs_u_pfc_division_match_executionstepprevioussum = fs_q_pfc_division_match_executionstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_match_executionstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_match_executionstepprevioussum_body_terminal. fs_h_pfc_division_match_executionstepprevioussum_body_terminal + S (pfc_natural_sum_division_match_executionstepprevious) = S ((S (S (pfd_index_division_match_execution))) * fs_v_pfc_division_match_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_executionstepprevioussum_body_terminal. fs_u_pfc_division_match_executionstepprevioussum = fs_q_pfc_division_match_executionstepprevioussum_body_terminal * S ((S (S (pfd_index_division_match_execution))) * fs_v_pfc_division_match_executionstepprevioussum) + (pfc_natural_sum_division_match_executionstepprevious))) /\ forall fs_i_pfc_division_match_executionstepprevioussum_body_steps. (exists fs_lt_pfc_division_match_executionstepprevioussum_body_steps_bound. fs_lt_pfc_division_match_executionstepprevioussum_body_steps_bound + S fs_i_pfc_division_match_executionstepprevioussum_body_steps = S (pfd_index_division_match_execution)) -> exists fs_a_pfc_division_match_executionstepprevioussum_body_steps fs_r_pfc_division_match_executionstepprevioussum_body_steps fs_s_pfc_division_match_executionstepprevioussum_body_steps. ((((exists fs_h_pfc_division_match_executionstepprevioussum_body_steps_summand. fs_h_pfc_division_match_executionstepprevioussum_body_steps_summand + S (fs_a_pfc_division_match_executionstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_match_executionstepprevioussum_body_steps)) * pfc_terms_scale_division_match_executionstepprevious)) /\ exists fs_q_pfc_division_match_executionstepprevioussum_body_steps_summand. pfc_terms_code_division_match_executionstepprevious = fs_q_pfc_division_match_executionstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_match_executionstepprevioussum_body_steps)) * pfc_terms_scale_division_match_executionstepprevious) + (fs_a_pfc_division_match_executionstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_match_executionstepprevioussum_body_steps_partial. fs_h_pfc_division_match_executionstepprevioussum_body_steps_partial + S (fs_r_pfc_division_match_executionstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_match_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_executionstepprevioussum_body_steps_partial. fs_u_pfc_division_match_executionstepprevioussum = fs_q_pfc_division_match_executionstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_match_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_executionstepprevioussum) + (fs_r_pfc_division_match_executionstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_match_executionstepprevioussum_body_steps_successor. fs_h_pfc_division_match_executionstepprevioussum_body_steps_successor + S (fs_s_pfc_division_match_executionstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_match_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_executionstepprevioussum_body_steps_successor. fs_u_pfc_division_match_executionstepprevioussum = fs_q_pfc_division_match_executionstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_match_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_executionstepprevioussum) + (fs_s_pfc_division_match_executionstepprevioussum_body_steps))) /\ fs_s_pfc_division_match_executionstepprevioussum_body_steps = fs_r_pfc_division_match_executionstepprevioussum_body_steps + fs_a_pfc_division_match_executionstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_match_executionsteppreviousresiduebound. pfa_gap_division_match_executionsteppreviousresiduebound + S (pfd_previous_division_match_executionstep) = (p)) /\ ((exists pfa_offset_left_division_match_executionsteppreviousresiduecongruence pfa_offset_right_division_match_executionsteppreviousresiduecongruence. (pfc_natural_sum_division_match_executionstepprevious) + (p) * pfa_offset_left_division_match_executionsteppreviousresiduecongruence = (pfd_previous_division_match_executionstep) + (p) * pfa_offset_right_division_match_executionsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_match_executionstepsubtractleft. pfa_gap_division_match_executionstepsubtractleft + S (pfd_previous_division_match_executionstep) = (p)) /\ (((exists pfa_gap_division_match_executionstepsubtractright. pfa_gap_division_match_executionstepsubtractright + S (pfd_difference_division_match_executionstep) = (p)) /\ ((((exists pfa_gap_division_match_executionstepsubtractresultbound. pfa_gap_division_match_executionstepsubtractresultbound + S (pfd_input_division_match_executionstep) = (p)) /\ ((exists pfa_offset_left_division_match_executionstepsubtractresultcongruence pfa_offset_right_division_match_executionstepsubtractresultcongruence. ((pfd_previous_division_match_executionstep) + (pfd_difference_division_match_executionstep)) + (p) * pfa_offset_left_division_match_executionstepsubtractresultcongruence = (pfd_input_division_match_executionstep) + (p) * pfa_offset_right_division_match_executionstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_match_executionstepmultiplyleft. pfa_gap_division_match_executionstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_match_executionstepmultiplyright. pfa_gap_division_match_executionstepmultiplyright + S (pfd_difference_division_match_executionstep) = (p)) /\ ((((exists pfa_gap_division_match_executionstepmultiplyresultbound. pfa_gap_division_match_executionstepmultiplyresultbound + S (pfd_value_division_match_execution) = (p)) /\ ((exists pfa_offset_left_division_match_executionstepmultiplyresultcongruence pfa_offset_right_division_match_executionstepmultiplyresultcongruence. ((k) * (pfd_difference_division_match_executionstep)) + (p) * pfa_offset_left_division_match_executionstepmultiplyresultcongruence = (pfd_value_division_match_execution) + (p) * pfa_offset_right_division_match_executionstepmultiplyresultcongruence))))))))))))))))))) -> (exists pfa_gap_division_match_index. pfa_gap_division_match_index + S (i) = (N)) -> (exists pfc_terms_code_division_match_actual_coefficient pfc_terms_scale_division_match_actual_coefficient pfc_natural_sum_division_match_actual_coefficient. ((forall pfc_index_division_match_actual_coefficientdiagonal. (exists pfa_gap_division_match_actual_coefficientdiagonalbound. pfa_gap_division_match_actual_coefficientdiagonalbound + S (pfc_index_division_match_actual_coefficientdiagonal) = (S (i))) -> exists pfc_value_division_match_actual_coefficientdiagonal. ((((exists ff_h_pfp_division_match_actual_coefficientdiagonalentry. ff_h_pfp_division_match_actual_coefficientdiagonalentry + S (pfc_value_division_match_actual_coefficientdiagonal) = S ((S (pfc_index_division_match_actual_coefficientdiagonal)) * pfc_terms_scale_division_match_actual_coefficient)) /\ exists ff_q_pfp_division_match_actual_coefficientdiagonalentry. pfc_terms_code_division_match_actual_coefficient = ff_q_pfp_division_match_actual_coefficientdiagonalentry * S ((S (pfc_index_division_match_actual_coefficientdiagonal)) * pfc_terms_scale_division_match_actual_coefficient) + (pfc_value_division_match_actual_coefficientdiagonal))) /\ ((exists pfc_complement_division_match_actual_coefficientdiagonalterm pfc_left_division_match_actual_coefficientdiagonalterm pfc_right_division_match_actual_coefficientdiagonalterm. (((pfc_index_division_match_actual_coefficientdiagonal)+pfc_complement_division_match_actual_coefficientdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_match_actual_coefficientdiagonaltermleftinside. pfa_gap_division_match_actual_coefficientdiagonaltermleftinside + S (pfc_index_division_match_actual_coefficientdiagonal) = (N)) /\ ((((exists ff_h_pfp_division_match_actual_coefficientdiagonaltermleftentry. ff_h_pfp_division_match_actual_coefficientdiagonaltermleftentry + S (pfc_left_division_match_actual_coefficientdiagonalterm) = S ((S (pfc_index_division_match_actual_coefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_match_actual_coefficientdiagonaltermleftentry. qb = ff_q_pfp_division_match_actual_coefficientdiagonaltermleftentry * S ((S (pfc_index_division_match_actual_coefficientdiagonal)) * qc) + (pfc_left_division_match_actual_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_match_actual_coefficientdiagonaltermleftoutside. pfc_gap_division_match_actual_coefficientdiagonaltermleftoutside+(N)=(pfc_index_division_match_actual_coefficientdiagonal)) /\ (((pfc_left_division_match_actual_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_match_actual_coefficientdiagonaltermrightinside. pfa_gap_division_match_actual_coefficientdiagonaltermrightinside + S (pfc_complement_division_match_actual_coefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_match_actual_coefficientdiagonaltermrightentry. ff_h_pfp_division_match_actual_coefficientdiagonaltermrightentry + S (pfc_right_division_match_actual_coefficientdiagonalterm) = S ((S (pfc_complement_division_match_actual_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_match_actual_coefficientdiagonaltermrightentry. bb = ff_q_pfp_division_match_actual_coefficientdiagonaltermrightentry * S ((S (pfc_complement_division_match_actual_coefficientdiagonalterm)) * bc) + (pfc_right_division_match_actual_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_match_actual_coefficientdiagonaltermrightoutside. pfc_gap_division_match_actual_coefficientdiagonaltermrightoutside+(S d)=(pfc_complement_division_match_actual_coefficientdiagonalterm)) /\ (((pfc_right_division_match_actual_coefficientdiagonalterm)=0))))) /\ (((pfc_value_division_match_actual_coefficientdiagonal)=pfc_left_division_match_actual_coefficientdiagonalterm*pfc_right_division_match_actual_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_match_actual_coefficientsum fs_v_pfc_division_match_actual_coefficientsum. ((((exists fs_h_pfc_division_match_actual_coefficientsum_body_start. fs_h_pfc_division_match_actual_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_match_actual_coefficientsum)) /\ exists fs_q_pfc_division_match_actual_coefficientsum_body_start. fs_u_pfc_division_match_actual_coefficientsum = fs_q_pfc_division_match_actual_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_match_actual_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_match_actual_coefficientsum_body_terminal. fs_h_pfc_division_match_actual_coefficientsum_body_terminal + S (pfc_natural_sum_division_match_actual_coefficient) = S ((S (S (i))) * fs_v_pfc_division_match_actual_coefficientsum)) /\ exists fs_q_pfc_division_match_actual_coefficientsum_body_terminal. fs_u_pfc_division_match_actual_coefficientsum = fs_q_pfc_division_match_actual_coefficientsum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_match_actual_coefficientsum) + (pfc_natural_sum_division_match_actual_coefficient))) /\ forall fs_i_pfc_division_match_actual_coefficientsum_body_steps. (exists fs_lt_pfc_division_match_actual_coefficientsum_body_steps_bound. fs_lt_pfc_division_match_actual_coefficientsum_body_steps_bound + S fs_i_pfc_division_match_actual_coefficientsum_body_steps = S (i)) -> exists fs_a_pfc_division_match_actual_coefficientsum_body_steps fs_r_pfc_division_match_actual_coefficientsum_body_steps fs_s_pfc_division_match_actual_coefficientsum_body_steps. ((((exists fs_h_pfc_division_match_actual_coefficientsum_body_steps_summand. fs_h_pfc_division_match_actual_coefficientsum_body_steps_summand + S (fs_a_pfc_division_match_actual_coefficientsum_body_steps) = S ((S (fs_i_pfc_division_match_actual_coefficientsum_body_steps)) * pfc_terms_scale_division_match_actual_coefficient)) /\ exists fs_q_pfc_division_match_actual_coefficientsum_body_steps_summand. pfc_terms_code_division_match_actual_coefficient = fs_q_pfc_division_match_actual_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_match_actual_coefficientsum_body_steps)) * pfc_terms_scale_division_match_actual_coefficient) + (fs_a_pfc_division_match_actual_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_match_actual_coefficientsum_body_steps_partial. fs_h_pfc_division_match_actual_coefficientsum_body_steps_partial + S (fs_r_pfc_division_match_actual_coefficientsum_body_steps) = S ((S (fs_i_pfc_division_match_actual_coefficientsum_body_steps)) * fs_v_pfc_division_match_actual_coefficientsum)) /\ exists fs_q_pfc_division_match_actual_coefficientsum_body_steps_partial. fs_u_pfc_division_match_actual_coefficientsum = fs_q_pfc_division_match_actual_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_match_actual_coefficientsum_body_steps)) * fs_v_pfc_division_match_actual_coefficientsum) + (fs_r_pfc_division_match_actual_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_match_actual_coefficientsum_body_steps_successor. fs_h_pfc_division_match_actual_coefficientsum_body_steps_successor + S (fs_s_pfc_division_match_actual_coefficientsum_body_steps) = S ((S (S fs_i_pfc_division_match_actual_coefficientsum_body_steps)) * fs_v_pfc_division_match_actual_coefficientsum)) /\ exists fs_q_pfc_division_match_actual_coefficientsum_body_steps_successor. fs_u_pfc_division_match_actual_coefficientsum = fs_q_pfc_division_match_actual_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_match_actual_coefficientsum_body_steps)) * fs_v_pfc_division_match_actual_coefficientsum) + (fs_s_pfc_division_match_actual_coefficientsum_body_steps))) /\ fs_s_pfc_division_match_actual_coefficientsum_body_steps = fs_r_pfc_division_match_actual_coefficientsum_body_steps + fs_a_pfc_division_match_actual_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_match_actual_coefficientresiduebound. pfa_gap_division_match_actual_coefficientresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_division_match_actual_coefficientresiduecongruence pfa_offset_right_division_match_actual_coefficientresiduecongruence. (pfc_natural_sum_division_match_actual_coefficient) + (p) * pfa_offset_left_division_match_actual_coefficientresiduecongruence = (r) + (p) * pfa_offset_right_division_match_actual_coefficientresiduecongruence))))))))) -> (((exists ff_h_pfp_division_match_input. ff_h_pfp_division_match_input + S (r) = S ((S (i)) * ac)) /\ exists ff_q_pfp_division_match_input. ab = ff_q_pfp_division_match_input * S ((S (i)) * ac) + (r)))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro d
  8. intro qb
  9. intro qc
  10. intro N
  11. intro b
  12. intro i
  13. intro r
  14. intro hp
  15. intro hb
  16. intro hk
  17. intro hq
  18. intro hi
  19. intro hr
  20. have hpoint : exists q. ((((exists ff_h_pfp_division_match_quotient_entry. ff_h_pfp_division_match_quotient_entry + S (q) = S ((S (i)) * qc)) /\ exists ff_q_pfp_division_match_quotient_entry. qb = ff_q_pfp_division_match_quotient_entry * S ((S (i)) * qc) + (q))) /\ ((exists pfd_input_division_match_step pfd_previous_division_match_step pfd_difference_division_match_step. ((((exists ff_h_pfp_division_match_stepinput. ff_h_pfp_division_match_stepinput + S (pfd_input_division_match_step) = S ((S (i)) * ac)) /\ exists ff_q_pfp_division_match_stepinput. ab = ff_q_pfp_division_match_stepinput * S ((S (i)) * ac) + (pfd_input_division_match_step))) /\ (((exists pfc_terms_code_division_match_stepprevious pfc_terms_scale_division_match_stepprevious pfc_natural_sum_division_match_stepprevious. ((forall pfc_index_division_match_steppreviousdiagonal. (exists pfa_gap_division_match_steppreviousdiagonalbound. pfa_gap_division_match_steppreviousdiagonalbound + S (pfc_index_division_match_steppreviousdiagonal) = (S (i))) -> exists pfc_value_division_match_steppreviousdiagonal. ((((exists ff_h_pfp_division_match_steppreviousdiagonalentry. ff_h_pfp_division_match_steppreviousdiagonalentry + S (pfc_value_division_match_steppreviousdiagonal) = S ((S (pfc_index_division_match_steppreviousdiagonal)) * pfc_terms_scale_division_match_stepprevious)) /\ exists ff_q_pfp_division_match_steppreviousdiagonalentry. pfc_terms_code_division_match_stepprevious = ff_q_pfp_division_match_steppreviousdiagonalentry * S ((S (pfc_index_division_match_steppreviousdiagonal)) * pfc_terms_scale_division_match_stepprevious) + (pfc_value_division_match_steppreviousdiagonal))) /\ ((exists pfc_complement_division_match_steppreviousdiagonalterm pfc_left_division_match_steppreviousdiagonalterm pfc_right_division_match_steppreviousdiagonalterm. (((pfc_index_division_match_steppreviousdiagonal)+pfc_complement_division_match_steppreviousdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_match_steppreviousdiagonaltermleftinside. pfa_gap_division_match_steppreviousdiagonaltermleftinside + S (pfc_index_division_match_steppreviousdiagonal) = (i)) /\ ((((exists ff_h_pfp_division_match_steppreviousdiagonaltermleftentry. ff_h_pfp_division_match_steppreviousdiagonaltermleftentry + S (pfc_left_division_match_steppreviousdiagonalterm) = S ((S (pfc_index_division_match_steppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_match_steppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_match_steppreviousdiagonaltermleftentry * S ((S (pfc_index_division_match_steppreviousdiagonal)) * qc) + (pfc_left_division_match_steppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_match_steppreviousdiagonaltermleftoutside. pfc_gap_division_match_steppreviousdiagonaltermleftoutside+(i)=(pfc_index_division_match_steppreviousdiagonal)) /\ (((pfc_left_division_match_steppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_match_steppreviousdiagonaltermrightinside. pfa_gap_division_match_steppreviousdiagonaltermrightinside + S (pfc_complement_division_match_steppreviousdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_match_steppreviousdiagonaltermrightentry. ff_h_pfp_division_match_steppreviousdiagonaltermrightentry + S (pfc_right_division_match_steppreviousdiagonalterm) = S ((S (pfc_complement_division_match_steppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_match_steppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_match_steppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_match_steppreviousdiagonalterm)) * bc) + (pfc_right_division_match_steppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_match_steppreviousdiagonaltermrightoutside. pfc_gap_division_match_steppreviousdiagonaltermrightoutside+(S d)=(pfc_complement_division_match_steppreviousdiagonalterm)) /\ (((pfc_right_division_match_steppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_match_steppreviousdiagonal)=pfc_left_division_match_steppreviousdiagonalterm*pfc_right_division_match_steppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_match_stepprevioussum fs_v_pfc_division_match_stepprevioussum. ((((exists fs_h_pfc_division_match_stepprevioussum_body_start. fs_h_pfc_division_match_stepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_match_stepprevioussum)) /\ exists fs_q_pfc_division_match_stepprevioussum_body_start. fs_u_pfc_division_match_stepprevioussum = fs_q_pfc_division_match_stepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_match_stepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_match_stepprevioussum_body_terminal. fs_h_pfc_division_match_stepprevioussum_body_terminal + S (pfc_natural_sum_division_match_stepprevious) = S ((S (S (i))) * fs_v_pfc_division_match_stepprevioussum)) /\ exists fs_q_pfc_division_match_stepprevioussum_body_terminal. fs_u_pfc_division_match_stepprevioussum = fs_q_pfc_division_match_stepprevioussum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_match_stepprevioussum) + (pfc_natural_sum_division_match_stepprevious))) /\ forall fs_i_pfc_division_match_stepprevioussum_body_steps. (exists fs_lt_pfc_division_match_stepprevioussum_body_steps_bound. fs_lt_pfc_division_match_stepprevioussum_body_steps_bound + S fs_i_pfc_division_match_stepprevioussum_body_steps = S (i)) -> exists fs_a_pfc_division_match_stepprevioussum_body_steps fs_r_pfc_division_match_stepprevioussum_body_steps fs_s_pfc_division_match_stepprevioussum_body_steps. ((((exists fs_h_pfc_division_match_stepprevioussum_body_steps_summand. fs_h_pfc_division_match_stepprevioussum_body_steps_summand + S (fs_a_pfc_division_match_stepprevioussum_body_steps) = S ((S (fs_i_pfc_division_match_stepprevioussum_body_steps)) * pfc_terms_scale_division_match_stepprevious)) /\ exists fs_q_pfc_division_match_stepprevioussum_body_steps_summand. pfc_terms_code_division_match_stepprevious = fs_q_pfc_division_match_stepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_match_stepprevioussum_body_steps)) * pfc_terms_scale_division_match_stepprevious) + (fs_a_pfc_division_match_stepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_match_stepprevioussum_body_steps_partial. fs_h_pfc_division_match_stepprevioussum_body_steps_partial + S (fs_r_pfc_division_match_stepprevioussum_body_steps) = S ((S (fs_i_pfc_division_match_stepprevioussum_body_steps)) * fs_v_pfc_division_match_stepprevioussum)) /\ exists fs_q_pfc_division_match_stepprevioussum_body_steps_partial. fs_u_pfc_division_match_stepprevioussum = fs_q_pfc_division_match_stepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_match_stepprevioussum_body_steps)) * fs_v_pfc_division_match_stepprevioussum) + (fs_r_pfc_division_match_stepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_match_stepprevioussum_body_steps_successor. fs_h_pfc_division_match_stepprevioussum_body_steps_successor + S (fs_s_pfc_division_match_stepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_match_stepprevioussum_body_steps)) * fs_v_pfc_division_match_stepprevioussum)) /\ exists fs_q_pfc_division_match_stepprevioussum_body_steps_successor. fs_u_pfc_division_match_stepprevioussum = fs_q_pfc_division_match_stepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_match_stepprevioussum_body_steps)) * fs_v_pfc_division_match_stepprevioussum) + (fs_s_pfc_division_match_stepprevioussum_body_steps))) /\ fs_s_pfc_division_match_stepprevioussum_body_steps = fs_r_pfc_division_match_stepprevioussum_body_steps + fs_a_pfc_division_match_stepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_match_steppreviousresiduebound. pfa_gap_division_match_steppreviousresiduebound + S (pfd_previous_division_match_step) = (p)) /\ ((exists pfa_offset_left_division_match_steppreviousresiduecongruence pfa_offset_right_division_match_steppreviousresiduecongruence. (pfc_natural_sum_division_match_stepprevious) + (p) * pfa_offset_left_division_match_steppreviousresiduecongruence = (pfd_previous_division_match_step) + (p) * pfa_offset_right_division_match_steppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_match_stepsubtractleft. pfa_gap_division_match_stepsubtractleft + S (pfd_previous_division_match_step) = (p)) /\ (((exists pfa_gap_division_match_stepsubtractright. pfa_gap_division_match_stepsubtractright + S (pfd_difference_division_match_step) = (p)) /\ ((((exists pfa_gap_division_match_stepsubtractresultbound. pfa_gap_division_match_stepsubtractresultbound + S (pfd_input_division_match_step) = (p)) /\ ((exists pfa_offset_left_division_match_stepsubtractresultcongruence pfa_offset_right_division_match_stepsubtractresultcongruence. ((pfd_previous_division_match_step) + (pfd_difference_division_match_step)) + (p) * pfa_offset_left_division_match_stepsubtractresultcongruence = (pfd_input_division_match_step) + (p) * pfa_offset_right_division_match_stepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_match_stepmultiplyleft. pfa_gap_division_match_stepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_match_stepmultiplyright. pfa_gap_division_match_stepmultiplyright + S (pfd_difference_division_match_step) = (p)) /\ ((((exists pfa_gap_division_match_stepmultiplyresultbound. pfa_gap_division_match_stepmultiplyresultbound + S (q) = (p)) /\ ((exists pfa_offset_left_division_match_stepmultiplyresultcongruence pfa_offset_right_division_match_stepmultiplyresultcongruence. ((k) * (pfd_difference_division_match_step)) + (p) * pfa_offset_left_division_match_stepmultiplyresultcongruence = (q) + (p) * pfa_offset_right_division_match_stepmultiplyresultcongruence))))))))))))))))))
  21. specialize hq (i)
  22. apply hq
  23. exact hi
  24. cases hpoint
  25. cases hpoint_witness
  26. cases hpoint_witness_right
  27. cases hpoint_witness_right_witness
  28. cases hpoint_witness_right_witness_witness
  29. cases hpoint_witness_right_witness_witness_witness
  30. cases hpoint_witness_right_witness_witness_witness_right
  31. cases hpoint_witness_right_witness_witness_witness_right_right
  32. have hqbound : exists pfa_gap_division_match_value_bound. pfa_gap_division_match_value_bound + S (x) = (p)
  33. cases hpoint_witness_right_witness_witness_witness_right_right_right
  34. cases hpoint_witness_right_witness_witness_witness_right_right_right_right
  35. cases hpoint_witness_right_witness_witness_witness_right_right_right_right_right
  36. exact hpoint_witness_right_witness_witness_witness_right_right_right_right_right_left
  37. have hbnd : exists pfa_gap_division_match_head_bound. pfa_gap_division_match_head_bound + S (b) = (p)
  38. cases hk
  39. cases hk_right
  40. exact hk_right_left
  41. have hproduct : exists t. (((exists pfa_gap_division_match_productleft. pfa_gap_division_match_productleft + S (x) = (p)) /\ (((exists pfa_gap_division_match_productright. pfa_gap_division_match_productright + S (b) = (p)) /\ ((((exists pfa_gap_division_match_productresultbound. pfa_gap_division_match_productresultbound + S (t) = (p)) /\ ((exists pfa_offset_left_division_match_productresultcongruence pfa_offset_right_division_match_productresultcongruence. ((x) * (b)) + (p) * pfa_offset_left_division_match_productresultcongruence = (t) + (p) * pfa_offset_right_division_match_productresultcongruence)))))))))
  42. specialize prime_field_multiply_exists (p)
  43. specialize prime_field_multiply_exists (x)
  44. specialize prime_field_multiply_exists (b)
  45. apply prime_field_multiply_exists
  46. exact hp
  47. exact hqbound
  48. exact hbnd
  49. cases hproduct
  50. have hshort : exists pfc_terms_code_division_match_shorter pfc_terms_scale_division_match_shorter pfc_natural_sum_division_match_shorter. ((forall pfc_index_division_match_shorterdiagonal. (exists pfa_gap_division_match_shorterdiagonalbound. pfa_gap_division_match_shorterdiagonalbound + S (pfc_index_division_match_shorterdiagonal) = (S (i))) -> exists pfc_value_division_match_shorterdiagonal. ((((exists ff_h_pfp_division_match_shorterdiagonalentry. ff_h_pfp_division_match_shorterdiagonalentry + S (pfc_value_division_match_shorterdiagonal) = S ((S (pfc_index_division_match_shorterdiagonal)) * pfc_terms_scale_division_match_shorter)) /\ exists ff_q_pfp_division_match_shorterdiagonalentry. pfc_terms_code_division_match_shorter = ff_q_pfp_division_match_shorterdiagonalentry * S ((S (pfc_index_division_match_shorterdiagonal)) * pfc_terms_scale_division_match_shorter) + (pfc_value_division_match_shorterdiagonal))) /\ ((exists pfc_complement_division_match_shorterdiagonalterm pfc_left_division_match_shorterdiagonalterm pfc_right_division_match_shorterdiagonalterm. (((pfc_index_division_match_shorterdiagonal)+pfc_complement_division_match_shorterdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_match_shorterdiagonaltermleftinside. pfa_gap_division_match_shorterdiagonaltermleftinside + S (pfc_index_division_match_shorterdiagonal) = (S i)) /\ ((((exists ff_h_pfp_division_match_shorterdiagonaltermleftentry. ff_h_pfp_division_match_shorterdiagonaltermleftentry + S (pfc_left_division_match_shorterdiagonalterm) = S ((S (pfc_index_division_match_shorterdiagonal)) * qc)) /\ exists ff_q_pfp_division_match_shorterdiagonaltermleftentry. qb = ff_q_pfp_division_match_shorterdiagonaltermleftentry * S ((S (pfc_index_division_match_shorterdiagonal)) * qc) + (pfc_left_division_match_shorterdiagonalterm)))))) \/ (((exists pfc_gap_division_match_shorterdiagonaltermleftoutside. pfc_gap_division_match_shorterdiagonaltermleftoutside+(S i)=(pfc_index_division_match_shorterdiagonal)) /\ (((pfc_left_division_match_shorterdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_match_shorterdiagonaltermrightinside. pfa_gap_division_match_shorterdiagonaltermrightinside + S (pfc_complement_division_match_shorterdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_match_shorterdiagonaltermrightentry. ff_h_pfp_division_match_shorterdiagonaltermrightentry + S (pfc_right_division_match_shorterdiagonalterm) = S ((S (pfc_complement_division_match_shorterdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_match_shorterdiagonaltermrightentry. bb = ff_q_pfp_division_match_shorterdiagonaltermrightentry * S ((S (pfc_complement_division_match_shorterdiagonalterm)) * bc) + (pfc_right_division_match_shorterdiagonalterm)))))) \/ (((exists pfc_gap_division_match_shorterdiagonaltermrightoutside. pfc_gap_division_match_shorterdiagonaltermrightoutside+(S d)=(pfc_complement_division_match_shorterdiagonalterm)) /\ (((pfc_right_division_match_shorterdiagonalterm)=0))))) /\ (((pfc_value_division_match_shorterdiagonal)=pfc_left_division_match_shorterdiagonalterm*pfc_right_division_match_shorterdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_match_shortersum fs_v_pfc_division_match_shortersum. ((((exists fs_h_pfc_division_match_shortersum_body_start. fs_h_pfc_division_match_shortersum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_match_shortersum)) /\ exists fs_q_pfc_division_match_shortersum_body_start. fs_u_pfc_division_match_shortersum = fs_q_pfc_division_match_shortersum_body_start * S ((S (0)) * fs_v_pfc_division_match_shortersum) + (0))) /\ ((((exists fs_h_pfc_division_match_shortersum_body_terminal. fs_h_pfc_division_match_shortersum_body_terminal + S (pfc_natural_sum_division_match_shorter) = S ((S (S (i))) * fs_v_pfc_division_match_shortersum)) /\ exists fs_q_pfc_division_match_shortersum_body_terminal. fs_u_pfc_division_match_shortersum = fs_q_pfc_division_match_shortersum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_match_shortersum) + (pfc_natural_sum_division_match_shorter))) /\ forall fs_i_pfc_division_match_shortersum_body_steps. (exists fs_lt_pfc_division_match_shortersum_body_steps_bound. fs_lt_pfc_division_match_shortersum_body_steps_bound + S fs_i_pfc_division_match_shortersum_body_steps = S (i)) -> exists fs_a_pfc_division_match_shortersum_body_steps fs_r_pfc_division_match_shortersum_body_steps fs_s_pfc_division_match_shortersum_body_steps. ((((exists fs_h_pfc_division_match_shortersum_body_steps_summand. fs_h_pfc_division_match_shortersum_body_steps_summand + S (fs_a_pfc_division_match_shortersum_body_steps) = S ((S (fs_i_pfc_division_match_shortersum_body_steps)) * pfc_terms_scale_division_match_shorter)) /\ exists fs_q_pfc_division_match_shortersum_body_steps_summand. pfc_terms_code_division_match_shorter = fs_q_pfc_division_match_shortersum_body_steps_summand * S ((S (fs_i_pfc_division_match_shortersum_body_steps)) * pfc_terms_scale_division_match_shorter) + (fs_a_pfc_division_match_shortersum_body_steps))) /\ ((((exists fs_h_pfc_division_match_shortersum_body_steps_partial. fs_h_pfc_division_match_shortersum_body_steps_partial + S (fs_r_pfc_division_match_shortersum_body_steps) = S ((S (fs_i_pfc_division_match_shortersum_body_steps)) * fs_v_pfc_division_match_shortersum)) /\ exists fs_q_pfc_division_match_shortersum_body_steps_partial. fs_u_pfc_division_match_shortersum = fs_q_pfc_division_match_shortersum_body_steps_partial * S ((S (fs_i_pfc_division_match_shortersum_body_steps)) * fs_v_pfc_division_match_shortersum) + (fs_r_pfc_division_match_shortersum_body_steps))) /\ ((((exists fs_h_pfc_division_match_shortersum_body_steps_successor. fs_h_pfc_division_match_shortersum_body_steps_successor + S (fs_s_pfc_division_match_shortersum_body_steps) = S ((S (S fs_i_pfc_division_match_shortersum_body_steps)) * fs_v_pfc_division_match_shortersum)) /\ exists fs_q_pfc_division_match_shortersum_body_steps_successor. fs_u_pfc_division_match_shortersum = fs_q_pfc_division_match_shortersum_body_steps_successor * S ((S (S fs_i_pfc_division_match_shortersum_body_steps)) * fs_v_pfc_division_match_shortersum) + (fs_s_pfc_division_match_shortersum_body_steps))) /\ fs_s_pfc_division_match_shortersum_body_steps = fs_r_pfc_division_match_shortersum_body_steps + fs_a_pfc_division_match_shortersum_body_steps)))))) /\ ((((exists pfa_gap_division_match_shorterresiduebound. pfa_gap_division_match_shorterresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_division_match_shorterresiduecongruence pfa_offset_right_division_match_shorterresiduecongruence. (pfc_natural_sum_division_match_shorter) + (p) * pfa_offset_left_division_match_shorterresiduecongruence = (r) + (p) * pfa_offset_right_division_match_shorterresiduecongruence))))))))
  51. specialize prime_field_convolution_coefficient_prefix_transport (p)
  52. specialize prime_field_convolution_coefficient_prefix_transport (qb)
  53. specialize prime_field_convolution_coefficient_prefix_transport (qc)
  54. specialize prime_field_convolution_coefficient_prefix_transport (N)
  55. specialize prime_field_convolution_coefficient_prefix_transport (qb)
  56. specialize prime_field_convolution_coefficient_prefix_transport (qc)
  57. specialize prime_field_convolution_coefficient_prefix_transport (S i)
  58. specialize prime_field_convolution_coefficient_prefix_transport (bb)
  59. specialize prime_field_convolution_coefficient_prefix_transport (bc)
  60. specialize prime_field_convolution_coefficient_prefix_transport (S d)
  61. specialize prime_field_convolution_coefficient_prefix_transport (S i)
  62. specialize prime_field_convolution_coefficient_prefix_transport (i)
  63. specialize prime_field_convolution_coefficient_prefix_transport (r)
  64. apply prime_field_convolution_coefficient_prefix_transport
  65. exact hi
  66. specialize le_refl (S i)
  67. apply le_refl
  68. intro j
  69. intro v
  70. intro hj
  71. intro hv
  72. exact hv
  73. specialize le_refl (S i)
  74. apply le_refl
  75. exact hr
  76. have hsum : ((exists pfa_gap_division_match_sumleft. pfa_gap_division_match_sumleft + S (x2) = (p)) /\ (((exists pfa_gap_division_match_sumright. pfa_gap_division_match_sumright + S (x4) = (p)) /\ ((((exists pfa_gap_division_match_sumresultbound. pfa_gap_division_match_sumresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_division_match_sumresultcongruence pfa_offset_right_division_match_sumresultcongruence. ((x2) + (x4)) + (p) * pfa_offset_left_division_match_sumresultcongruence = (r) + (p) * pfa_offset_right_division_match_sumresultcongruence))))))))
  77. specialize prime_field_convolution_coefficient_append (p)
  78. specialize prime_field_convolution_coefficient_append (qb)
  79. specialize prime_field_convolution_coefficient_append (qc)
  80. specialize prime_field_convolution_coefficient_append (qb)
  81. specialize prime_field_convolution_coefficient_append (qc)
  82. specialize prime_field_convolution_coefficient_append (bb)
  83. specialize prime_field_convolution_coefficient_append (bc)
  84. specialize prime_field_convolution_coefficient_append (d)
  85. specialize prime_field_convolution_coefficient_append (i)
  86. specialize prime_field_convolution_coefficient_append (x)
  87. specialize prime_field_convolution_coefficient_append (b)
  88. specialize prime_field_convolution_coefficient_append (x2)
  89. specialize prime_field_convolution_coefficient_append (x4)
  90. specialize prime_field_convolution_coefficient_append (r)
  91. apply prime_field_convolution_coefficient_append
  92. intro j
  93. intro v
  94. intro hj
  95. intro hv
  96. exact hv
  97. exact hpoint_witness_left
  98. exact hb
  99. exact hpoint_witness_right_witness_witness_witness_right_left
  100. exact hshort
  101. exact hproduct_witness
  102. have heq : r=x1
  103. specialize prime_field_polynomial_quotient_scalar_cancellation (p)
  104. specialize prime_field_polynomial_quotient_scalar_cancellation (b)
  105. specialize prime_field_polynomial_quotient_scalar_cancellation (k)
  106. specialize prime_field_polynomial_quotient_scalar_cancellation (x2)
  107. specialize prime_field_polynomial_quotient_scalar_cancellation (x3)
  108. specialize prime_field_polynomial_quotient_scalar_cancellation (x1)
  109. specialize prime_field_polynomial_quotient_scalar_cancellation (x)
  110. specialize prime_field_polynomial_quotient_scalar_cancellation (x4)
  111. specialize prime_field_polynomial_quotient_scalar_cancellation (r)
  112. apply prime_field_polynomial_quotient_scalar_cancellation
  113. exact hp
  114. exact hk
  115. exact hpoint_witness_right_witness_witness_witness_right_right_left
  116. exact hpoint_witness_right_witness_witness_witness_right_right_right
  117. exact hproduct_witness
  118. exact hsum
  119. rewrite heq
  120. rewrite heq
  121. exact hpoint_witness_right_witness_witness_witness_left
prime_field_polynomial_quotient_prefix_product_matches · unchanged support, not a new admission
forall p k ab ac bb bc d qb qc N b pb pc L. (~((p) = 1) /\ forall pfa_factor_left_division_match_table_prime pfa_factor_right_division_match_table_prime. (p) = pfa_factor_left_division_match_table_prime * pfa_factor_right_division_match_table_prime -> pfa_factor_left_division_match_table_prime = 1 \/ pfa_factor_right_division_match_table_prime = 1) -> (((exists ff_h_pfp_division_match_table_head. ff_h_pfp_division_match_table_head + S (b) = S ((S (0)) * bc)) /\ exists ff_q_pfp_division_match_table_head. bb = ff_q_pfp_division_match_table_head * S ((S (0)) * bc) + (b))) -> (((~((b) = 0)) /\ ((((exists pfa_gap_division_match_table_inversemultiplicationleft. pfa_gap_division_match_table_inversemultiplicationleft + S (b) = (p)) /\ (((exists pfa_gap_division_match_table_inversemultiplicationright. pfa_gap_division_match_table_inversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_division_match_table_inversemultiplicationresultbound. pfa_gap_division_match_table_inversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_division_match_table_inversemultiplicationresultcongruence pfa_offset_right_division_match_table_inversemultiplicationresultcongruence. ((b) * (k)) + (p) * pfa_offset_left_division_match_table_inversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_division_match_table_inversemultiplicationresultcongruence)))))))))))) -> (forall pfd_index_division_match_table_execution. (exists pfa_gap_division_match_table_executionbound. pfa_gap_division_match_table_executionbound + S (pfd_index_division_match_table_execution) = (N)) -> exists pfd_value_division_match_table_execution. ((((exists ff_h_pfp_division_match_table_executionentry. ff_h_pfp_division_match_table_executionentry + S (pfd_value_division_match_table_execution) = S ((S (pfd_index_division_match_table_execution)) * qc)) /\ exists ff_q_pfp_division_match_table_executionentry. qb = ff_q_pfp_division_match_table_executionentry * S ((S (pfd_index_division_match_table_execution)) * qc) + (pfd_value_division_match_table_execution))) /\ ((exists pfd_input_division_match_table_executionstep pfd_previous_division_match_table_executionstep pfd_difference_division_match_table_executionstep. ((((exists ff_h_pfp_division_match_table_executionstepinput. ff_h_pfp_division_match_table_executionstepinput + S (pfd_input_division_match_table_executionstep) = S ((S (pfd_index_division_match_table_execution)) * ac)) /\ exists ff_q_pfp_division_match_table_executionstepinput. ab = ff_q_pfp_division_match_table_executionstepinput * S ((S (pfd_index_division_match_table_execution)) * ac) + (pfd_input_division_match_table_executionstep))) /\ (((exists pfc_terms_code_division_match_table_executionstepprevious pfc_terms_scale_division_match_table_executionstepprevious pfc_natural_sum_division_match_table_executionstepprevious. ((forall pfc_index_division_match_table_executionsteppreviousdiagonal. (exists pfa_gap_division_match_table_executionsteppreviousdiagonalbound. pfa_gap_division_match_table_executionsteppreviousdiagonalbound + S (pfc_index_division_match_table_executionsteppreviousdiagonal) = (S (pfd_index_division_match_table_execution))) -> exists pfc_value_division_match_table_executionsteppreviousdiagonal. ((((exists ff_h_pfp_division_match_table_executionsteppreviousdiagonalentry. ff_h_pfp_division_match_table_executionsteppreviousdiagonalentry + S (pfc_value_division_match_table_executionsteppreviousdiagonal) = S ((S (pfc_index_division_match_table_executionsteppreviousdiagonal)) * pfc_terms_scale_division_match_table_executionstepprevious)) /\ exists ff_q_pfp_division_match_table_executionsteppreviousdiagonalentry. pfc_terms_code_division_match_table_executionstepprevious = ff_q_pfp_division_match_table_executionsteppreviousdiagonalentry * S ((S (pfc_index_division_match_table_executionsteppreviousdiagonal)) * pfc_terms_scale_division_match_table_executionstepprevious) + (pfc_value_division_match_table_executionsteppreviousdiagonal))) /\ ((exists pfc_complement_division_match_table_executionsteppreviousdiagonalterm pfc_left_division_match_table_executionsteppreviousdiagonalterm pfc_right_division_match_table_executionsteppreviousdiagonalterm. (((pfc_index_division_match_table_executionsteppreviousdiagonal)+pfc_complement_division_match_table_executionsteppreviousdiagonalterm=(pfd_index_division_match_table_execution)) /\ ((((((exists pfa_gap_division_match_table_executionsteppreviousdiagonaltermleftinside. pfa_gap_division_match_table_executionsteppreviousdiagonaltermleftinside + S (pfc_index_division_match_table_executionsteppreviousdiagonal) = (pfd_index_division_match_table_execution)) /\ ((((exists ff_h_pfp_division_match_table_executionsteppreviousdiagonaltermleftentry. ff_h_pfp_division_match_table_executionsteppreviousdiagonaltermleftentry + S (pfc_left_division_match_table_executionsteppreviousdiagonalterm) = S ((S (pfc_index_division_match_table_executionsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_match_table_executionsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_match_table_executionsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_match_table_executionsteppreviousdiagonal)) * qc) + (pfc_left_division_match_table_executionsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_match_table_executionsteppreviousdiagonaltermleftoutside. pfc_gap_division_match_table_executionsteppreviousdiagonaltermleftoutside+(pfd_index_division_match_table_execution)=(pfc_index_division_match_table_executionsteppreviousdiagonal)) /\ (((pfc_left_division_match_table_executionsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_match_table_executionsteppreviousdiagonaltermrightinside. pfa_gap_division_match_table_executionsteppreviousdiagonaltermrightinside + S (pfc_complement_division_match_table_executionsteppreviousdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_match_table_executionsteppreviousdiagonaltermrightentry. ff_h_pfp_division_match_table_executionsteppreviousdiagonaltermrightentry + S (pfc_right_division_match_table_executionsteppreviousdiagonalterm) = S ((S (pfc_complement_division_match_table_executionsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_match_table_executionsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_match_table_executionsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_match_table_executionsteppreviousdiagonalterm)) * bc) + (pfc_right_division_match_table_executionsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_match_table_executionsteppreviousdiagonaltermrightoutside. pfc_gap_division_match_table_executionsteppreviousdiagonaltermrightoutside+(S d)=(pfc_complement_division_match_table_executionsteppreviousdiagonalterm)) /\ (((pfc_right_division_match_table_executionsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_match_table_executionsteppreviousdiagonal)=pfc_left_division_match_table_executionsteppreviousdiagonalterm*pfc_right_division_match_table_executionsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_match_table_executionstepprevioussum fs_v_pfc_division_match_table_executionstepprevioussum. ((((exists fs_h_pfc_division_match_table_executionstepprevioussum_body_start. fs_h_pfc_division_match_table_executionstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_match_table_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_table_executionstepprevioussum_body_start. fs_u_pfc_division_match_table_executionstepprevioussum = fs_q_pfc_division_match_table_executionstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_match_table_executionstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_match_table_executionstepprevioussum_body_terminal. fs_h_pfc_division_match_table_executionstepprevioussum_body_terminal + S (pfc_natural_sum_division_match_table_executionstepprevious) = S ((S (S (pfd_index_division_match_table_execution))) * fs_v_pfc_division_match_table_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_table_executionstepprevioussum_body_terminal. fs_u_pfc_division_match_table_executionstepprevioussum = fs_q_pfc_division_match_table_executionstepprevioussum_body_terminal * S ((S (S (pfd_index_division_match_table_execution))) * fs_v_pfc_division_match_table_executionstepprevioussum) + (pfc_natural_sum_division_match_table_executionstepprevious))) /\ forall fs_i_pfc_division_match_table_executionstepprevioussum_body_steps. (exists fs_lt_pfc_division_match_table_executionstepprevioussum_body_steps_bound. fs_lt_pfc_division_match_table_executionstepprevioussum_body_steps_bound + S fs_i_pfc_division_match_table_executionstepprevioussum_body_steps = S (pfd_index_division_match_table_execution)) -> exists fs_a_pfc_division_match_table_executionstepprevioussum_body_steps fs_r_pfc_division_match_table_executionstepprevioussum_body_steps fs_s_pfc_division_match_table_executionstepprevioussum_body_steps. ((((exists fs_h_pfc_division_match_table_executionstepprevioussum_body_steps_summand. fs_h_pfc_division_match_table_executionstepprevioussum_body_steps_summand + S (fs_a_pfc_division_match_table_executionstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_match_table_executionstepprevioussum_body_steps)) * pfc_terms_scale_division_match_table_executionstepprevious)) /\ exists fs_q_pfc_division_match_table_executionstepprevioussum_body_steps_summand. pfc_terms_code_division_match_table_executionstepprevious = fs_q_pfc_division_match_table_executionstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_match_table_executionstepprevioussum_body_steps)) * pfc_terms_scale_division_match_table_executionstepprevious) + (fs_a_pfc_division_match_table_executionstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_match_table_executionstepprevioussum_body_steps_partial. fs_h_pfc_division_match_table_executionstepprevioussum_body_steps_partial + S (fs_r_pfc_division_match_table_executionstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_match_table_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_table_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_table_executionstepprevioussum_body_steps_partial. fs_u_pfc_division_match_table_executionstepprevioussum = fs_q_pfc_division_match_table_executionstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_match_table_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_table_executionstepprevioussum) + (fs_r_pfc_division_match_table_executionstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_match_table_executionstepprevioussum_body_steps_successor. fs_h_pfc_division_match_table_executionstepprevioussum_body_steps_successor + S (fs_s_pfc_division_match_table_executionstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_match_table_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_table_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_table_executionstepprevioussum_body_steps_successor. fs_u_pfc_division_match_table_executionstepprevioussum = fs_q_pfc_division_match_table_executionstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_match_table_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_table_executionstepprevioussum) + (fs_s_pfc_division_match_table_executionstepprevioussum_body_steps))) /\ fs_s_pfc_division_match_table_executionstepprevioussum_body_steps = fs_r_pfc_division_match_table_executionstepprevioussum_body_steps + fs_a_pfc_division_match_table_executionstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_match_table_executionsteppreviousresiduebound. pfa_gap_division_match_table_executionsteppreviousresiduebound + S (pfd_previous_division_match_table_executionstep) = (p)) /\ ((exists pfa_offset_left_division_match_table_executionsteppreviousresiduecongruence pfa_offset_right_division_match_table_executionsteppreviousresiduecongruence. (pfc_natural_sum_division_match_table_executionstepprevious) + (p) * pfa_offset_left_division_match_table_executionsteppreviousresiduecongruence = (pfd_previous_division_match_table_executionstep) + (p) * pfa_offset_right_division_match_table_executionsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_match_table_executionstepsubtractleft. pfa_gap_division_match_table_executionstepsubtractleft + S (pfd_previous_division_match_table_executionstep) = (p)) /\ (((exists pfa_gap_division_match_table_executionstepsubtractright. pfa_gap_division_match_table_executionstepsubtractright + S (pfd_difference_division_match_table_executionstep) = (p)) /\ ((((exists pfa_gap_division_match_table_executionstepsubtractresultbound. pfa_gap_division_match_table_executionstepsubtractresultbound + S (pfd_input_division_match_table_executionstep) = (p)) /\ ((exists pfa_offset_left_division_match_table_executionstepsubtractresultcongruence pfa_offset_right_division_match_table_executionstepsubtractresultcongruence. ((pfd_previous_division_match_table_executionstep) + (pfd_difference_division_match_table_executionstep)) + (p) * pfa_offset_left_division_match_table_executionstepsubtractresultcongruence = (pfd_input_division_match_table_executionstep) + (p) * pfa_offset_right_division_match_table_executionstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_match_table_executionstepmultiplyleft. pfa_gap_division_match_table_executionstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_match_table_executionstepmultiplyright. pfa_gap_division_match_table_executionstepmultiplyright + S (pfd_difference_division_match_table_executionstep) = (p)) /\ ((((exists pfa_gap_division_match_table_executionstepmultiplyresultbound. pfa_gap_division_match_table_executionstepmultiplyresultbound + S (pfd_value_division_match_table_execution) = (p)) /\ ((exists pfa_offset_left_division_match_table_executionstepmultiplyresultcongruence pfa_offset_right_division_match_table_executionstepmultiplyresultcongruence. ((k) * (pfd_difference_division_match_table_executionstep)) + (p) * pfa_offset_left_division_match_table_executionstepmultiplyresultcongruence = (pfd_value_division_match_table_execution) + (p) * pfa_offset_right_division_match_table_executionstepmultiplyresultcongruence))))))))))))))))))) -> (exists pfc_gap_division_match_table_length. pfc_gap_division_match_table_length+(N)=(L)) -> (forall pfc_index_division_match_table_product. (exists pfa_gap_division_match_table_productbound. pfa_gap_division_match_table_productbound + S (pfc_index_division_match_table_product) = (L)) -> exists pfc_value_division_match_table_product. ((((exists ff_h_pfp_division_match_table_productentry. ff_h_pfp_division_match_table_productentry + S (pfc_value_division_match_table_product) = S ((S (pfc_index_division_match_table_product)) * pc)) /\ exists ff_q_pfp_division_match_table_productentry. pb = ff_q_pfp_division_match_table_productentry * S ((S (pfc_index_division_match_table_product)) * pc) + (pfc_value_division_match_table_product))) /\ ((exists pfc_terms_code_division_match_table_productcoefficient pfc_terms_scale_division_match_table_productcoefficient pfc_natural_sum_division_match_table_productcoefficient. ((forall pfc_index_division_match_table_productcoefficientdiagonal. (exists pfa_gap_division_match_table_productcoefficientdiagonalbound. pfa_gap_division_match_table_productcoefficientdiagonalbound + S (pfc_index_division_match_table_productcoefficientdiagonal) = (S (pfc_index_division_match_table_product))) -> exists pfc_value_division_match_table_productcoefficientdiagonal. ((((exists ff_h_pfp_division_match_table_productcoefficientdiagonalentry. ff_h_pfp_division_match_table_productcoefficientdiagonalentry + S (pfc_value_division_match_table_productcoefficientdiagonal) = S ((S (pfc_index_division_match_table_productcoefficientdiagonal)) * pfc_terms_scale_division_match_table_productcoefficient)) /\ exists ff_q_pfp_division_match_table_productcoefficientdiagonalentry. pfc_terms_code_division_match_table_productcoefficient = ff_q_pfp_division_match_table_productcoefficientdiagonalentry * S ((S (pfc_index_division_match_table_productcoefficientdiagonal)) * pfc_terms_scale_division_match_table_productcoefficient) + (pfc_value_division_match_table_productcoefficientdiagonal))) /\ ((exists pfc_complement_division_match_table_productcoefficientdiagonalterm pfc_left_division_match_table_productcoefficientdiagonalterm pfc_right_division_match_table_productcoefficientdiagonalterm. (((pfc_index_division_match_table_productcoefficientdiagonal)+pfc_complement_division_match_table_productcoefficientdiagonalterm=(pfc_index_division_match_table_product)) /\ ((((((exists pfa_gap_division_match_table_productcoefficientdiagonaltermleftinside. pfa_gap_division_match_table_productcoefficientdiagonaltermleftinside + S (pfc_index_division_match_table_productcoefficientdiagonal) = (N)) /\ ((((exists ff_h_pfp_division_match_table_productcoefficientdiagonaltermleftentry. ff_h_pfp_division_match_table_productcoefficientdiagonaltermleftentry + S (pfc_left_division_match_table_productcoefficientdiagonalterm) = S ((S (pfc_index_division_match_table_productcoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_match_table_productcoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_match_table_productcoefficientdiagonaltermleftentry * S ((S (pfc_index_division_match_table_productcoefficientdiagonal)) * qc) + (pfc_left_division_match_table_productcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_match_table_productcoefficientdiagonaltermleftoutside. pfc_gap_division_match_table_productcoefficientdiagonaltermleftoutside+(N)=(pfc_index_division_match_table_productcoefficientdiagonal)) /\ (((pfc_left_division_match_table_productcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_match_table_productcoefficientdiagonaltermrightinside. pfa_gap_division_match_table_productcoefficientdiagonaltermrightinside + S (pfc_complement_division_match_table_productcoefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_match_table_productcoefficientdiagonaltermrightentry. ff_h_pfp_division_match_table_productcoefficientdiagonaltermrightentry + S (pfc_right_division_match_table_productcoefficientdiagonalterm) = S ((S (pfc_complement_division_match_table_productcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_match_table_productcoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_match_table_productcoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_match_table_productcoefficientdiagonalterm)) * bc) + (pfc_right_division_match_table_productcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_match_table_productcoefficientdiagonaltermrightoutside. pfc_gap_division_match_table_productcoefficientdiagonaltermrightoutside+(S d)=(pfc_complement_division_match_table_productcoefficientdiagonalterm)) /\ (((pfc_right_division_match_table_productcoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_match_table_productcoefficientdiagonal)=pfc_left_division_match_table_productcoefficientdiagonalterm*pfc_right_division_match_table_productcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_match_table_productcoefficientsum fs_v_pfc_division_match_table_productcoefficientsum. ((((exists fs_h_pfc_division_match_table_productcoefficientsum_body_start. fs_h_pfc_division_match_table_productcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_match_table_productcoefficientsum)) /\ exists fs_q_pfc_division_match_table_productcoefficientsum_body_start. fs_u_pfc_division_match_table_productcoefficientsum = fs_q_pfc_division_match_table_productcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_match_table_productcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_match_table_productcoefficientsum_body_terminal. fs_h_pfc_division_match_table_productcoefficientsum_body_terminal + S (pfc_natural_sum_division_match_table_productcoefficient) = S ((S (S (pfc_index_division_match_table_product))) * fs_v_pfc_division_match_table_productcoefficientsum)) /\ exists fs_q_pfc_division_match_table_productcoefficientsum_body_terminal. fs_u_pfc_division_match_table_productcoefficientsum = fs_q_pfc_division_match_table_productcoefficientsum_body_terminal * S ((S (S (pfc_index_division_match_table_product))) * fs_v_pfc_division_match_table_productcoefficientsum) + (pfc_natural_sum_division_match_table_productcoefficient))) /\ forall fs_i_pfc_division_match_table_productcoefficientsum_body_steps. (exists fs_lt_pfc_division_match_table_productcoefficientsum_body_steps_bound. fs_lt_pfc_division_match_table_productcoefficientsum_body_steps_bound + S fs_i_pfc_division_match_table_productcoefficientsum_body_steps = S (pfc_index_division_match_table_product)) -> exists fs_a_pfc_division_match_table_productcoefficientsum_body_steps fs_r_pfc_division_match_table_productcoefficientsum_body_steps fs_s_pfc_division_match_table_productcoefficientsum_body_steps. ((((exists fs_h_pfc_division_match_table_productcoefficientsum_body_steps_summand. fs_h_pfc_division_match_table_productcoefficientsum_body_steps_summand + S (fs_a_pfc_division_match_table_productcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_match_table_productcoefficientsum_body_steps)) * pfc_terms_scale_division_match_table_productcoefficient)) /\ exists fs_q_pfc_division_match_table_productcoefficientsum_body_steps_summand. pfc_terms_code_division_match_table_productcoefficient = fs_q_pfc_division_match_table_productcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_match_table_productcoefficientsum_body_steps)) * pfc_terms_scale_division_match_table_productcoefficient) + (fs_a_pfc_division_match_table_productcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_match_table_productcoefficientsum_body_steps_partial. fs_h_pfc_division_match_table_productcoefficientsum_body_steps_partial + S (fs_r_pfc_division_match_table_productcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_match_table_productcoefficientsum_body_steps)) * fs_v_pfc_division_match_table_productcoefficientsum)) /\ exists fs_q_pfc_division_match_table_productcoefficientsum_body_steps_partial. fs_u_pfc_division_match_table_productcoefficientsum = fs_q_pfc_division_match_table_productcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_match_table_productcoefficientsum_body_steps)) * fs_v_pfc_division_match_table_productcoefficientsum) + (fs_r_pfc_division_match_table_productcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_match_table_productcoefficientsum_body_steps_successor. fs_h_pfc_division_match_table_productcoefficientsum_body_steps_successor + S (fs_s_pfc_division_match_table_productcoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_match_table_productcoefficientsum_body_steps)) * fs_v_pfc_division_match_table_productcoefficientsum)) /\ exists fs_q_pfc_division_match_table_productcoefficientsum_body_steps_successor. fs_u_pfc_division_match_table_productcoefficientsum = fs_q_pfc_division_match_table_productcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_match_table_productcoefficientsum_body_steps)) * fs_v_pfc_division_match_table_productcoefficientsum) + (fs_s_pfc_division_match_table_productcoefficientsum_body_steps))) /\ fs_s_pfc_division_match_table_productcoefficientsum_body_steps = fs_r_pfc_division_match_table_productcoefficientsum_body_steps + fs_a_pfc_division_match_table_productcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_match_table_productcoefficientresiduebound. pfa_gap_division_match_table_productcoefficientresiduebound + S (pfc_value_division_match_table_product) = (p)) /\ ((exists pfa_offset_left_division_match_table_productcoefficientresiduecongruence pfa_offset_right_division_match_table_productcoefficientresiduecongruence. (pfc_natural_sum_division_match_table_productcoefficient) + (p) * pfa_offset_left_division_match_table_productcoefficientresiduecongruence = (pfc_value_division_match_table_product) + (p) * pfa_offset_right_division_match_table_productcoefficientresiduecongruence)))))))))))) -> (forall mdr_i_pfp_division_match_table_result mdr_a_pfp_division_match_table_result. (exists mdr_gap_pfp_division_match_table_resultb. mdr_gap_pfp_division_match_table_resultb + S (mdr_i_pfp_division_match_table_result) = (N)) -> (((exists ff_h_mdr_pfp_division_match_table_resulto. ff_h_mdr_pfp_division_match_table_resulto + S (mdr_a_pfp_division_match_table_result) = S ((S (mdr_i_pfp_division_match_table_result)) * ac)) /\ exists ff_q_mdr_pfp_division_match_table_resulto. ab = ff_q_mdr_pfp_division_match_table_resulto * S ((S (mdr_i_pfp_division_match_table_result)) * ac) + (mdr_a_pfp_division_match_table_result))) -> (((exists ff_h_mdr_pfp_division_match_table_resultn. ff_h_mdr_pfp_division_match_table_resultn + S (mdr_a_pfp_division_match_table_result) = S ((S (mdr_i_pfp_division_match_table_result)) * pc)) /\ exists ff_q_mdr_pfp_division_match_table_resultn. pb = ff_q_mdr_pfp_division_match_table_resultn * S ((S (mdr_i_pfp_division_match_table_result)) * pc) + (mdr_a_pfp_division_match_table_result))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro d
  8. intro qb
  9. intro qc
  10. intro N
  11. intro b
  12. intro pb
  13. intro pc
  14. intro L
  15. intro hp
  16. intro hb
  17. intro hk
  18. intro hq
  19. intro hlen
  20. intro hproduct
  21. intro i
  22. intro a
  23. intro hi
  24. intro ha
  25. have hv : exists r. ((((exists ff_h_pfp_division_match_table_entry. ff_h_pfp_division_match_table_entry + S (r) = S ((S (i)) * pc)) /\ exists ff_q_pfp_division_match_table_entry. pb = ff_q_pfp_division_match_table_entry * S ((S (i)) * pc) + (r))) /\ ((exists pfc_terms_code_division_match_table_coefficient pfc_terms_scale_division_match_table_coefficient pfc_natural_sum_division_match_table_coefficient. ((forall pfc_index_division_match_table_coefficientdiagonal. (exists pfa_gap_division_match_table_coefficientdiagonalbound. pfa_gap_division_match_table_coefficientdiagonalbound + S (pfc_index_division_match_table_coefficientdiagonal) = (S (i))) -> exists pfc_value_division_match_table_coefficientdiagonal. ((((exists ff_h_pfp_division_match_table_coefficientdiagonalentry. ff_h_pfp_division_match_table_coefficientdiagonalentry + S (pfc_value_division_match_table_coefficientdiagonal) = S ((S (pfc_index_division_match_table_coefficientdiagonal)) * pfc_terms_scale_division_match_table_coefficient)) /\ exists ff_q_pfp_division_match_table_coefficientdiagonalentry. pfc_terms_code_division_match_table_coefficient = ff_q_pfp_division_match_table_coefficientdiagonalentry * S ((S (pfc_index_division_match_table_coefficientdiagonal)) * pfc_terms_scale_division_match_table_coefficient) + (pfc_value_division_match_table_coefficientdiagonal))) /\ ((exists pfc_complement_division_match_table_coefficientdiagonalterm pfc_left_division_match_table_coefficientdiagonalterm pfc_right_division_match_table_coefficientdiagonalterm. (((pfc_index_division_match_table_coefficientdiagonal)+pfc_complement_division_match_table_coefficientdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_match_table_coefficientdiagonaltermleftinside. pfa_gap_division_match_table_coefficientdiagonaltermleftinside + S (pfc_index_division_match_table_coefficientdiagonal) = (N)) /\ ((((exists ff_h_pfp_division_match_table_coefficientdiagonaltermleftentry. ff_h_pfp_division_match_table_coefficientdiagonaltermleftentry + S (pfc_left_division_match_table_coefficientdiagonalterm) = S ((S (pfc_index_division_match_table_coefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_match_table_coefficientdiagonaltermleftentry. qb = ff_q_pfp_division_match_table_coefficientdiagonaltermleftentry * S ((S (pfc_index_division_match_table_coefficientdiagonal)) * qc) + (pfc_left_division_match_table_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_match_table_coefficientdiagonaltermleftoutside. pfc_gap_division_match_table_coefficientdiagonaltermleftoutside+(N)=(pfc_index_division_match_table_coefficientdiagonal)) /\ (((pfc_left_division_match_table_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_match_table_coefficientdiagonaltermrightinside. pfa_gap_division_match_table_coefficientdiagonaltermrightinside + S (pfc_complement_division_match_table_coefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_match_table_coefficientdiagonaltermrightentry. ff_h_pfp_division_match_table_coefficientdiagonaltermrightentry + S (pfc_right_division_match_table_coefficientdiagonalterm) = S ((S (pfc_complement_division_match_table_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_match_table_coefficientdiagonaltermrightentry. bb = ff_q_pfp_division_match_table_coefficientdiagonaltermrightentry * S ((S (pfc_complement_division_match_table_coefficientdiagonalterm)) * bc) + (pfc_right_division_match_table_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_match_table_coefficientdiagonaltermrightoutside. pfc_gap_division_match_table_coefficientdiagonaltermrightoutside+(S d)=(pfc_complement_division_match_table_coefficientdiagonalterm)) /\ (((pfc_right_division_match_table_coefficientdiagonalterm)=0))))) /\ (((pfc_value_division_match_table_coefficientdiagonal)=pfc_left_division_match_table_coefficientdiagonalterm*pfc_right_division_match_table_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_match_table_coefficientsum fs_v_pfc_division_match_table_coefficientsum. ((((exists fs_h_pfc_division_match_table_coefficientsum_body_start. fs_h_pfc_division_match_table_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_match_table_coefficientsum)) /\ exists fs_q_pfc_division_match_table_coefficientsum_body_start. fs_u_pfc_division_match_table_coefficientsum = fs_q_pfc_division_match_table_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_match_table_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_match_table_coefficientsum_body_terminal. fs_h_pfc_division_match_table_coefficientsum_body_terminal + S (pfc_natural_sum_division_match_table_coefficient) = S ((S (S (i))) * fs_v_pfc_division_match_table_coefficientsum)) /\ exists fs_q_pfc_division_match_table_coefficientsum_body_terminal. fs_u_pfc_division_match_table_coefficientsum = fs_q_pfc_division_match_table_coefficientsum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_match_table_coefficientsum) + (pfc_natural_sum_division_match_table_coefficient))) /\ forall fs_i_pfc_division_match_table_coefficientsum_body_steps. (exists fs_lt_pfc_division_match_table_coefficientsum_body_steps_bound. fs_lt_pfc_division_match_table_coefficientsum_body_steps_bound + S fs_i_pfc_division_match_table_coefficientsum_body_steps = S (i)) -> exists fs_a_pfc_division_match_table_coefficientsum_body_steps fs_r_pfc_division_match_table_coefficientsum_body_steps fs_s_pfc_division_match_table_coefficientsum_body_steps. ((((exists fs_h_pfc_division_match_table_coefficientsum_body_steps_summand. fs_h_pfc_division_match_table_coefficientsum_body_steps_summand + S (fs_a_pfc_division_match_table_coefficientsum_body_steps) = S ((S (fs_i_pfc_division_match_table_coefficientsum_body_steps)) * pfc_terms_scale_division_match_table_coefficient)) /\ exists fs_q_pfc_division_match_table_coefficientsum_body_steps_summand. pfc_terms_code_division_match_table_coefficient = fs_q_pfc_division_match_table_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_match_table_coefficientsum_body_steps)) * pfc_terms_scale_division_match_table_coefficient) + (fs_a_pfc_division_match_table_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_match_table_coefficientsum_body_steps_partial. fs_h_pfc_division_match_table_coefficientsum_body_steps_partial + S (fs_r_pfc_division_match_table_coefficientsum_body_steps) = S ((S (fs_i_pfc_division_match_table_coefficientsum_body_steps)) * fs_v_pfc_division_match_table_coefficientsum)) /\ exists fs_q_pfc_division_match_table_coefficientsum_body_steps_partial. fs_u_pfc_division_match_table_coefficientsum = fs_q_pfc_division_match_table_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_match_table_coefficientsum_body_steps)) * fs_v_pfc_division_match_table_coefficientsum) + (fs_r_pfc_division_match_table_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_match_table_coefficientsum_body_steps_successor. fs_h_pfc_division_match_table_coefficientsum_body_steps_successor + S (fs_s_pfc_division_match_table_coefficientsum_body_steps) = S ((S (S fs_i_pfc_division_match_table_coefficientsum_body_steps)) * fs_v_pfc_division_match_table_coefficientsum)) /\ exists fs_q_pfc_division_match_table_coefficientsum_body_steps_successor. fs_u_pfc_division_match_table_coefficientsum = fs_q_pfc_division_match_table_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_match_table_coefficientsum_body_steps)) * fs_v_pfc_division_match_table_coefficientsum) + (fs_s_pfc_division_match_table_coefficientsum_body_steps))) /\ fs_s_pfc_division_match_table_coefficientsum_body_steps = fs_r_pfc_division_match_table_coefficientsum_body_steps + fs_a_pfc_division_match_table_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_match_table_coefficientresiduebound. pfa_gap_division_match_table_coefficientresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_division_match_table_coefficientresiduecongruence pfa_offset_right_division_match_table_coefficientresiduecongruence. (pfc_natural_sum_division_match_table_coefficient) + (p) * pfa_offset_left_division_match_table_coefficientresiduecongruence = (r) + (p) * pfa_offset_right_division_match_table_coefficientresiduecongruence)))))))))))
  26. specialize hproduct (i)
  27. apply hproduct
  28. specialize lt_of_lt_of_le (i)
  29. specialize lt_of_lt_of_le (N)
  30. specialize lt_of_lt_of_le (L)
  31. apply lt_of_lt_of_le
  32. exact hi
  33. exact hlen
  34. cases hv
  35. cases hv_witness
  36. have hinput : ((exists ff_h_pfp_division_match_table_input. ff_h_pfp_division_match_table_input + S (x) = S ((S (i)) * ac)) /\ exists ff_q_pfp_division_match_table_input. ab = ff_q_pfp_division_match_table_input * S ((S (i)) * ac) + (x))
  37. specialize prime_field_polynomial_quotient_prefix_convolution_entry (p)
  38. specialize prime_field_polynomial_quotient_prefix_convolution_entry (k)
  39. specialize prime_field_polynomial_quotient_prefix_convolution_entry (ab)
  40. specialize prime_field_polynomial_quotient_prefix_convolution_entry (ac)
  41. specialize prime_field_polynomial_quotient_prefix_convolution_entry (bb)
  42. specialize prime_field_polynomial_quotient_prefix_convolution_entry (bc)
  43. specialize prime_field_polynomial_quotient_prefix_convolution_entry (d)
  44. specialize prime_field_polynomial_quotient_prefix_convolution_entry (qb)
  45. specialize prime_field_polynomial_quotient_prefix_convolution_entry (qc)
  46. specialize prime_field_polynomial_quotient_prefix_convolution_entry (N)
  47. specialize prime_field_polynomial_quotient_prefix_convolution_entry (b)
  48. specialize prime_field_polynomial_quotient_prefix_convolution_entry (i)
  49. specialize prime_field_polynomial_quotient_prefix_convolution_entry (x)
  50. apply prime_field_polynomial_quotient_prefix_convolution_entry
  51. exact hp
  52. exact hb
  53. exact hk
  54. exact hq
  55. exact hi
  56. exact hv_witness_right
  57. have heq : x=a
  58. specialize beta_at_unique (ab)
  59. specialize beta_at_unique (ac)
  60. specialize beta_at_unique (i)
  61. specialize beta_at_unique (x)
  62. specialize beta_at_unique (a)
  63. apply beta_at_unique
  64. exact hinput
  65. exact ha
  66. rewrite heq at hv_witness_left
  67. rewrite heq at hv_witness_left
  68. exact hv_witness_left
prime_field_polynomial_quotient_prefix_remainder_zero · unchanged support, not a new admission
forall p k ab ac bb bc d qb qc N b pb pc L ub uc. (~((p) = 1) /\ forall pfa_factor_left_division_zero_prime pfa_factor_right_division_zero_prime. (p) = pfa_factor_left_division_zero_prime * pfa_factor_right_division_zero_prime -> pfa_factor_left_division_zero_prime = 1 \/ pfa_factor_right_division_zero_prime = 1) -> (((exists ff_h_pfp_division_zero_head. ff_h_pfp_division_zero_head + S (b) = S ((S (0)) * bc)) /\ exists ff_q_pfp_division_zero_head. bb = ff_q_pfp_division_zero_head * S ((S (0)) * bc) + (b))) -> (((~((b) = 0)) /\ ((((exists pfa_gap_division_zero_inversemultiplicationleft. pfa_gap_division_zero_inversemultiplicationleft + S (b) = (p)) /\ (((exists pfa_gap_division_zero_inversemultiplicationright. pfa_gap_division_zero_inversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_division_zero_inversemultiplicationresultbound. pfa_gap_division_zero_inversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_division_zero_inversemultiplicationresultcongruence pfa_offset_right_division_zero_inversemultiplicationresultcongruence. ((b) * (k)) + (p) * pfa_offset_left_division_zero_inversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_division_zero_inversemultiplicationresultcongruence)))))))))))) -> (forall pfd_index_division_zero_execution. (exists pfa_gap_division_zero_executionbound. pfa_gap_division_zero_executionbound + S (pfd_index_division_zero_execution) = (N)) -> exists pfd_value_division_zero_execution. ((((exists ff_h_pfp_division_zero_executionentry. ff_h_pfp_division_zero_executionentry + S (pfd_value_division_zero_execution) = S ((S (pfd_index_division_zero_execution)) * qc)) /\ exists ff_q_pfp_division_zero_executionentry. qb = ff_q_pfp_division_zero_executionentry * S ((S (pfd_index_division_zero_execution)) * qc) + (pfd_value_division_zero_execution))) /\ ((exists pfd_input_division_zero_executionstep pfd_previous_division_zero_executionstep pfd_difference_division_zero_executionstep. ((((exists ff_h_pfp_division_zero_executionstepinput. ff_h_pfp_division_zero_executionstepinput + S (pfd_input_division_zero_executionstep) = S ((S (pfd_index_division_zero_execution)) * ac)) /\ exists ff_q_pfp_division_zero_executionstepinput. ab = ff_q_pfp_division_zero_executionstepinput * S ((S (pfd_index_division_zero_execution)) * ac) + (pfd_input_division_zero_executionstep))) /\ (((exists pfc_terms_code_division_zero_executionstepprevious pfc_terms_scale_division_zero_executionstepprevious pfc_natural_sum_division_zero_executionstepprevious. ((forall pfc_index_division_zero_executionsteppreviousdiagonal. (exists pfa_gap_division_zero_executionsteppreviousdiagonalbound. pfa_gap_division_zero_executionsteppreviousdiagonalbound + S (pfc_index_division_zero_executionsteppreviousdiagonal) = (S (pfd_index_division_zero_execution))) -> exists pfc_value_division_zero_executionsteppreviousdiagonal. ((((exists ff_h_pfp_division_zero_executionsteppreviousdiagonalentry. ff_h_pfp_division_zero_executionsteppreviousdiagonalentry + S (pfc_value_division_zero_executionsteppreviousdiagonal) = S ((S (pfc_index_division_zero_executionsteppreviousdiagonal)) * pfc_terms_scale_division_zero_executionstepprevious)) /\ exists ff_q_pfp_division_zero_executionsteppreviousdiagonalentry. pfc_terms_code_division_zero_executionstepprevious = ff_q_pfp_division_zero_executionsteppreviousdiagonalentry * S ((S (pfc_index_division_zero_executionsteppreviousdiagonal)) * pfc_terms_scale_division_zero_executionstepprevious) + (pfc_value_division_zero_executionsteppreviousdiagonal))) /\ ((exists pfc_complement_division_zero_executionsteppreviousdiagonalterm pfc_left_division_zero_executionsteppreviousdiagonalterm pfc_right_division_zero_executionsteppreviousdiagonalterm. (((pfc_index_division_zero_executionsteppreviousdiagonal)+pfc_complement_division_zero_executionsteppreviousdiagonalterm=(pfd_index_division_zero_execution)) /\ ((((((exists pfa_gap_division_zero_executionsteppreviousdiagonaltermleftinside. pfa_gap_division_zero_executionsteppreviousdiagonaltermleftinside + S (pfc_index_division_zero_executionsteppreviousdiagonal) = (pfd_index_division_zero_execution)) /\ ((((exists ff_h_pfp_division_zero_executionsteppreviousdiagonaltermleftentry. ff_h_pfp_division_zero_executionsteppreviousdiagonaltermleftentry + S (pfc_left_division_zero_executionsteppreviousdiagonalterm) = S ((S (pfc_index_division_zero_executionsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_zero_executionsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_zero_executionsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_zero_executionsteppreviousdiagonal)) * qc) + (pfc_left_division_zero_executionsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_zero_executionsteppreviousdiagonaltermleftoutside. pfc_gap_division_zero_executionsteppreviousdiagonaltermleftoutside+(pfd_index_division_zero_execution)=(pfc_index_division_zero_executionsteppreviousdiagonal)) /\ (((pfc_left_division_zero_executionsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_zero_executionsteppreviousdiagonaltermrightinside. pfa_gap_division_zero_executionsteppreviousdiagonaltermrightinside + S (pfc_complement_division_zero_executionsteppreviousdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_zero_executionsteppreviousdiagonaltermrightentry. ff_h_pfp_division_zero_executionsteppreviousdiagonaltermrightentry + S (pfc_right_division_zero_executionsteppreviousdiagonalterm) = S ((S (pfc_complement_division_zero_executionsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_zero_executionsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_zero_executionsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_zero_executionsteppreviousdiagonalterm)) * bc) + (pfc_right_division_zero_executionsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_zero_executionsteppreviousdiagonaltermrightoutside. pfc_gap_division_zero_executionsteppreviousdiagonaltermrightoutside+(S d)=(pfc_complement_division_zero_executionsteppreviousdiagonalterm)) /\ (((pfc_right_division_zero_executionsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_zero_executionsteppreviousdiagonal)=pfc_left_division_zero_executionsteppreviousdiagonalterm*pfc_right_division_zero_executionsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_zero_executionstepprevioussum fs_v_pfc_division_zero_executionstepprevioussum. ((((exists fs_h_pfc_division_zero_executionstepprevioussum_body_start. fs_h_pfc_division_zero_executionstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_zero_executionstepprevioussum)) /\ exists fs_q_pfc_division_zero_executionstepprevioussum_body_start. fs_u_pfc_division_zero_executionstepprevioussum = fs_q_pfc_division_zero_executionstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_zero_executionstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_zero_executionstepprevioussum_body_terminal. fs_h_pfc_division_zero_executionstepprevioussum_body_terminal + S (pfc_natural_sum_division_zero_executionstepprevious) = S ((S (S (pfd_index_division_zero_execution))) * fs_v_pfc_division_zero_executionstepprevioussum)) /\ exists fs_q_pfc_division_zero_executionstepprevioussum_body_terminal. fs_u_pfc_division_zero_executionstepprevioussum = fs_q_pfc_division_zero_executionstepprevioussum_body_terminal * S ((S (S (pfd_index_division_zero_execution))) * fs_v_pfc_division_zero_executionstepprevioussum) + (pfc_natural_sum_division_zero_executionstepprevious))) /\ forall fs_i_pfc_division_zero_executionstepprevioussum_body_steps. (exists fs_lt_pfc_division_zero_executionstepprevioussum_body_steps_bound. fs_lt_pfc_division_zero_executionstepprevioussum_body_steps_bound + S fs_i_pfc_division_zero_executionstepprevioussum_body_steps = S (pfd_index_division_zero_execution)) -> exists fs_a_pfc_division_zero_executionstepprevioussum_body_steps fs_r_pfc_division_zero_executionstepprevioussum_body_steps fs_s_pfc_division_zero_executionstepprevioussum_body_steps. ((((exists fs_h_pfc_division_zero_executionstepprevioussum_body_steps_summand. fs_h_pfc_division_zero_executionstepprevioussum_body_steps_summand + S (fs_a_pfc_division_zero_executionstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_zero_executionstepprevioussum_body_steps)) * pfc_terms_scale_division_zero_executionstepprevious)) /\ exists fs_q_pfc_division_zero_executionstepprevioussum_body_steps_summand. pfc_terms_code_division_zero_executionstepprevious = fs_q_pfc_division_zero_executionstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_zero_executionstepprevioussum_body_steps)) * pfc_terms_scale_division_zero_executionstepprevious) + (fs_a_pfc_division_zero_executionstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_zero_executionstepprevioussum_body_steps_partial. fs_h_pfc_division_zero_executionstepprevioussum_body_steps_partial + S (fs_r_pfc_division_zero_executionstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_zero_executionstepprevioussum_body_steps)) * fs_v_pfc_division_zero_executionstepprevioussum)) /\ exists fs_q_pfc_division_zero_executionstepprevioussum_body_steps_partial. fs_u_pfc_division_zero_executionstepprevioussum = fs_q_pfc_division_zero_executionstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_zero_executionstepprevioussum_body_steps)) * fs_v_pfc_division_zero_executionstepprevioussum) + (fs_r_pfc_division_zero_executionstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_zero_executionstepprevioussum_body_steps_successor. fs_h_pfc_division_zero_executionstepprevioussum_body_steps_successor + S (fs_s_pfc_division_zero_executionstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_zero_executionstepprevioussum_body_steps)) * fs_v_pfc_division_zero_executionstepprevioussum)) /\ exists fs_q_pfc_division_zero_executionstepprevioussum_body_steps_successor. fs_u_pfc_division_zero_executionstepprevioussum = fs_q_pfc_division_zero_executionstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_zero_executionstepprevioussum_body_steps)) * fs_v_pfc_division_zero_executionstepprevioussum) + (fs_s_pfc_division_zero_executionstepprevioussum_body_steps))) /\ fs_s_pfc_division_zero_executionstepprevioussum_body_steps = fs_r_pfc_division_zero_executionstepprevioussum_body_steps + fs_a_pfc_division_zero_executionstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_zero_executionsteppreviousresiduebound. pfa_gap_division_zero_executionsteppreviousresiduebound + S (pfd_previous_division_zero_executionstep) = (p)) /\ ((exists pfa_offset_left_division_zero_executionsteppreviousresiduecongruence pfa_offset_right_division_zero_executionsteppreviousresiduecongruence. (pfc_natural_sum_division_zero_executionstepprevious) + (p) * pfa_offset_left_division_zero_executionsteppreviousresiduecongruence = (pfd_previous_division_zero_executionstep) + (p) * pfa_offset_right_division_zero_executionsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_zero_executionstepsubtractleft. pfa_gap_division_zero_executionstepsubtractleft + S (pfd_previous_division_zero_executionstep) = (p)) /\ (((exists pfa_gap_division_zero_executionstepsubtractright. pfa_gap_division_zero_executionstepsubtractright + S (pfd_difference_division_zero_executionstep) = (p)) /\ ((((exists pfa_gap_division_zero_executionstepsubtractresultbound. pfa_gap_division_zero_executionstepsubtractresultbound + S (pfd_input_division_zero_executionstep) = (p)) /\ ((exists pfa_offset_left_division_zero_executionstepsubtractresultcongruence pfa_offset_right_division_zero_executionstepsubtractresultcongruence. ((pfd_previous_division_zero_executionstep) + (pfd_difference_division_zero_executionstep)) + (p) * pfa_offset_left_division_zero_executionstepsubtractresultcongruence = (pfd_input_division_zero_executionstep) + (p) * pfa_offset_right_division_zero_executionstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_zero_executionstepmultiplyleft. pfa_gap_division_zero_executionstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_zero_executionstepmultiplyright. pfa_gap_division_zero_executionstepmultiplyright + S (pfd_difference_division_zero_executionstep) = (p)) /\ ((((exists pfa_gap_division_zero_executionstepmultiplyresultbound. pfa_gap_division_zero_executionstepmultiplyresultbound + S (pfd_value_division_zero_execution) = (p)) /\ ((exists pfa_offset_left_division_zero_executionstepmultiplyresultcongruence pfa_offset_right_division_zero_executionstepmultiplyresultcongruence. ((k) * (pfd_difference_division_zero_executionstep)) + (p) * pfa_offset_left_division_zero_executionstepmultiplyresultcongruence = (pfd_value_division_zero_execution) + (p) * pfa_offset_right_division_zero_executionstepmultiplyresultcongruence))))))))))))))))))) -> (exists pfc_gap_division_zero_length. pfc_gap_division_zero_length+(N)=(L)) -> (forall pfc_index_division_zero_product. (exists pfa_gap_division_zero_productbound. pfa_gap_division_zero_productbound + S (pfc_index_division_zero_product) = (L)) -> exists pfc_value_division_zero_product. ((((exists ff_h_pfp_division_zero_productentry. ff_h_pfp_division_zero_productentry + S (pfc_value_division_zero_product) = S ((S (pfc_index_division_zero_product)) * pc)) /\ exists ff_q_pfp_division_zero_productentry. pb = ff_q_pfp_division_zero_productentry * S ((S (pfc_index_division_zero_product)) * pc) + (pfc_value_division_zero_product))) /\ ((exists pfc_terms_code_division_zero_productcoefficient pfc_terms_scale_division_zero_productcoefficient pfc_natural_sum_division_zero_productcoefficient. ((forall pfc_index_division_zero_productcoefficientdiagonal. (exists pfa_gap_division_zero_productcoefficientdiagonalbound. pfa_gap_division_zero_productcoefficientdiagonalbound + S (pfc_index_division_zero_productcoefficientdiagonal) = (S (pfc_index_division_zero_product))) -> exists pfc_value_division_zero_productcoefficientdiagonal. ((((exists ff_h_pfp_division_zero_productcoefficientdiagonalentry. ff_h_pfp_division_zero_productcoefficientdiagonalentry + S (pfc_value_division_zero_productcoefficientdiagonal) = S ((S (pfc_index_division_zero_productcoefficientdiagonal)) * pfc_terms_scale_division_zero_productcoefficient)) /\ exists ff_q_pfp_division_zero_productcoefficientdiagonalentry. pfc_terms_code_division_zero_productcoefficient = ff_q_pfp_division_zero_productcoefficientdiagonalentry * S ((S (pfc_index_division_zero_productcoefficientdiagonal)) * pfc_terms_scale_division_zero_productcoefficient) + (pfc_value_division_zero_productcoefficientdiagonal))) /\ ((exists pfc_complement_division_zero_productcoefficientdiagonalterm pfc_left_division_zero_productcoefficientdiagonalterm pfc_right_division_zero_productcoefficientdiagonalterm. (((pfc_index_division_zero_productcoefficientdiagonal)+pfc_complement_division_zero_productcoefficientdiagonalterm=(pfc_index_division_zero_product)) /\ ((((((exists pfa_gap_division_zero_productcoefficientdiagonaltermleftinside. pfa_gap_division_zero_productcoefficientdiagonaltermleftinside + S (pfc_index_division_zero_productcoefficientdiagonal) = (N)) /\ ((((exists ff_h_pfp_division_zero_productcoefficientdiagonaltermleftentry. ff_h_pfp_division_zero_productcoefficientdiagonaltermleftentry + S (pfc_left_division_zero_productcoefficientdiagonalterm) = S ((S (pfc_index_division_zero_productcoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_zero_productcoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_zero_productcoefficientdiagonaltermleftentry * S ((S (pfc_index_division_zero_productcoefficientdiagonal)) * qc) + (pfc_left_division_zero_productcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_zero_productcoefficientdiagonaltermleftoutside. pfc_gap_division_zero_productcoefficientdiagonaltermleftoutside+(N)=(pfc_index_division_zero_productcoefficientdiagonal)) /\ (((pfc_left_division_zero_productcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_zero_productcoefficientdiagonaltermrightinside. pfa_gap_division_zero_productcoefficientdiagonaltermrightinside + S (pfc_complement_division_zero_productcoefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_zero_productcoefficientdiagonaltermrightentry. ff_h_pfp_division_zero_productcoefficientdiagonaltermrightentry + S (pfc_right_division_zero_productcoefficientdiagonalterm) = S ((S (pfc_complement_division_zero_productcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_zero_productcoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_zero_productcoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_zero_productcoefficientdiagonalterm)) * bc) + (pfc_right_division_zero_productcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_zero_productcoefficientdiagonaltermrightoutside. pfc_gap_division_zero_productcoefficientdiagonaltermrightoutside+(S d)=(pfc_complement_division_zero_productcoefficientdiagonalterm)) /\ (((pfc_right_division_zero_productcoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_zero_productcoefficientdiagonal)=pfc_left_division_zero_productcoefficientdiagonalterm*pfc_right_division_zero_productcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_zero_productcoefficientsum fs_v_pfc_division_zero_productcoefficientsum. ((((exists fs_h_pfc_division_zero_productcoefficientsum_body_start. fs_h_pfc_division_zero_productcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_zero_productcoefficientsum)) /\ exists fs_q_pfc_division_zero_productcoefficientsum_body_start. fs_u_pfc_division_zero_productcoefficientsum = fs_q_pfc_division_zero_productcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_zero_productcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_zero_productcoefficientsum_body_terminal. fs_h_pfc_division_zero_productcoefficientsum_body_terminal + S (pfc_natural_sum_division_zero_productcoefficient) = S ((S (S (pfc_index_division_zero_product))) * fs_v_pfc_division_zero_productcoefficientsum)) /\ exists fs_q_pfc_division_zero_productcoefficientsum_body_terminal. fs_u_pfc_division_zero_productcoefficientsum = fs_q_pfc_division_zero_productcoefficientsum_body_terminal * S ((S (S (pfc_index_division_zero_product))) * fs_v_pfc_division_zero_productcoefficientsum) + (pfc_natural_sum_division_zero_productcoefficient))) /\ forall fs_i_pfc_division_zero_productcoefficientsum_body_steps. (exists fs_lt_pfc_division_zero_productcoefficientsum_body_steps_bound. fs_lt_pfc_division_zero_productcoefficientsum_body_steps_bound + S fs_i_pfc_division_zero_productcoefficientsum_body_steps = S (pfc_index_division_zero_product)) -> exists fs_a_pfc_division_zero_productcoefficientsum_body_steps fs_r_pfc_division_zero_productcoefficientsum_body_steps fs_s_pfc_division_zero_productcoefficientsum_body_steps. ((((exists fs_h_pfc_division_zero_productcoefficientsum_body_steps_summand. fs_h_pfc_division_zero_productcoefficientsum_body_steps_summand + S (fs_a_pfc_division_zero_productcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_zero_productcoefficientsum_body_steps)) * pfc_terms_scale_division_zero_productcoefficient)) /\ exists fs_q_pfc_division_zero_productcoefficientsum_body_steps_summand. pfc_terms_code_division_zero_productcoefficient = fs_q_pfc_division_zero_productcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_zero_productcoefficientsum_body_steps)) * pfc_terms_scale_division_zero_productcoefficient) + (fs_a_pfc_division_zero_productcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_zero_productcoefficientsum_body_steps_partial. fs_h_pfc_division_zero_productcoefficientsum_body_steps_partial + S (fs_r_pfc_division_zero_productcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_zero_productcoefficientsum_body_steps)) * fs_v_pfc_division_zero_productcoefficientsum)) /\ exists fs_q_pfc_division_zero_productcoefficientsum_body_steps_partial. fs_u_pfc_division_zero_productcoefficientsum = fs_q_pfc_division_zero_productcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_zero_productcoefficientsum_body_steps)) * fs_v_pfc_division_zero_productcoefficientsum) + (fs_r_pfc_division_zero_productcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_zero_productcoefficientsum_body_steps_successor. fs_h_pfc_division_zero_productcoefficientsum_body_steps_successor + S (fs_s_pfc_division_zero_productcoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_zero_productcoefficientsum_body_steps)) * fs_v_pfc_division_zero_productcoefficientsum)) /\ exists fs_q_pfc_division_zero_productcoefficientsum_body_steps_successor. fs_u_pfc_division_zero_productcoefficientsum = fs_q_pfc_division_zero_productcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_zero_productcoefficientsum_body_steps)) * fs_v_pfc_division_zero_productcoefficientsum) + (fs_s_pfc_division_zero_productcoefficientsum_body_steps))) /\ fs_s_pfc_division_zero_productcoefficientsum_body_steps = fs_r_pfc_division_zero_productcoefficientsum_body_steps + fs_a_pfc_division_zero_productcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_zero_productcoefficientresiduebound. pfa_gap_division_zero_productcoefficientresiduebound + S (pfc_value_division_zero_product) = (p)) /\ ((exists pfa_offset_left_division_zero_productcoefficientresiduecongruence pfa_offset_right_division_zero_productcoefficientresiduecongruence. (pfc_natural_sum_division_zero_productcoefficient) + (p) * pfa_offset_left_division_zero_productcoefficientresiduecongruence = (pfc_value_division_zero_product) + (p) * pfa_offset_right_division_zero_productcoefficientresiduecongruence)))))))))))) -> (forall pfs_index_division_zero_subtraction. (exists pfa_gap_division_zero_subtractionindex. pfa_gap_division_zero_subtractionindex + S (pfs_index_division_zero_subtraction) = (L)) -> exists pfs_left_division_zero_subtraction pfs_right_division_zero_subtraction pfs_result_division_zero_subtraction. ((((exists ff_h_pfp_division_zero_subtractionleft. ff_h_pfp_division_zero_subtractionleft + S (pfs_left_division_zero_subtraction) = S ((S (pfs_index_division_zero_subtraction)) * ac)) /\ exists ff_q_pfp_division_zero_subtractionleft. ab = ff_q_pfp_division_zero_subtractionleft * S ((S (pfs_index_division_zero_subtraction)) * ac) + (pfs_left_division_zero_subtraction))) /\ (((((exists ff_h_pfp_division_zero_subtractionright. ff_h_pfp_division_zero_subtractionright + S (pfs_right_division_zero_subtraction) = S ((S (pfs_index_division_zero_subtraction)) * pc)) /\ exists ff_q_pfp_division_zero_subtractionright. pb = ff_q_pfp_division_zero_subtractionright * S ((S (pfs_index_division_zero_subtraction)) * pc) + (pfs_right_division_zero_subtraction))) /\ (((((exists ff_h_pfp_division_zero_subtractionresult. ff_h_pfp_division_zero_subtractionresult + S (pfs_result_division_zero_subtraction) = S ((S (pfs_index_division_zero_subtraction)) * uc)) /\ exists ff_q_pfp_division_zero_subtractionresult. ub = ff_q_pfp_division_zero_subtractionresult * S ((S (pfs_index_division_zero_subtraction)) * uc) + (pfs_result_division_zero_subtraction))) /\ ((((exists pfa_gap_division_zero_subtractionoperationleft. pfa_gap_division_zero_subtractionoperationleft + S (pfs_right_division_zero_subtraction) = (p)) /\ (((exists pfa_gap_division_zero_subtractionoperationright. pfa_gap_division_zero_subtractionoperationright + S (pfs_result_division_zero_subtraction) = (p)) /\ ((((exists pfa_gap_division_zero_subtractionoperationresultbound. pfa_gap_division_zero_subtractionoperationresultbound + S (pfs_left_division_zero_subtraction) = (p)) /\ ((exists pfa_offset_left_division_zero_subtractionoperationresultcongruence pfa_offset_right_division_zero_subtractionoperationresultcongruence. ((pfs_right_division_zero_subtraction) + (pfs_result_division_zero_subtraction)) + (p) * pfa_offset_left_division_zero_subtractionoperationresultcongruence = (pfs_left_division_zero_subtraction) + (p) * pfa_offset_right_division_zero_subtractionoperationresultcongruence)))))))))))))))) -> (forall pfp_repeat_index_division_zero_result. (exists pfa_gap_division_zero_resultindex. pfa_gap_division_zero_resultindex + S (pfp_repeat_index_division_zero_result) = (N)) -> (((exists ff_h_pfp_division_zero_resultentry. ff_h_pfp_division_zero_resultentry + S (0) = S ((S (pfp_repeat_index_division_zero_result)) * uc)) /\ exists ff_q_pfp_division_zero_resultentry. ub = ff_q_pfp_division_zero_resultentry * S ((S (pfp_repeat_index_division_zero_result)) * uc) + (0))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro d
  8. intro qb
  9. intro qc
  10. intro N
  11. intro b
  12. intro pb
  13. intro pc
  14. intro L
  15. intro ub
  16. intro uc
  17. intro hp
  18. intro hb
  19. intro hk
  20. intro hq
  21. intro hlen
  22. intro hproduct
  23. intro hsubtract
  24. specialize prime_field_polynomial_subtract_equal_zero (p)
  25. specialize prime_field_polynomial_subtract_equal_zero (ab)
  26. specialize prime_field_polynomial_subtract_equal_zero (ac)
  27. specialize prime_field_polynomial_subtract_equal_zero (pb)
  28. specialize prime_field_polynomial_subtract_equal_zero (pc)
  29. specialize prime_field_polynomial_subtract_equal_zero (ub)
  30. specialize prime_field_polynomial_subtract_equal_zero (uc)
  31. specialize prime_field_polynomial_subtract_equal_zero (N)
  32. apply prime_field_polynomial_subtract_equal_zero
  33. exact hp
  34. specialize prime_field_polynomial_quotient_prefix_product_matches (p)
  35. specialize prime_field_polynomial_quotient_prefix_product_matches (k)
  36. specialize prime_field_polynomial_quotient_prefix_product_matches (ab)
  37. specialize prime_field_polynomial_quotient_prefix_product_matches (ac)
  38. specialize prime_field_polynomial_quotient_prefix_product_matches (bb)
  39. specialize prime_field_polynomial_quotient_prefix_product_matches (bc)
  40. specialize prime_field_polynomial_quotient_prefix_product_matches (d)
  41. specialize prime_field_polynomial_quotient_prefix_product_matches (qb)
  42. specialize prime_field_polynomial_quotient_prefix_product_matches (qc)
  43. specialize prime_field_polynomial_quotient_prefix_product_matches (N)
  44. specialize prime_field_polynomial_quotient_prefix_product_matches (b)
  45. specialize prime_field_polynomial_quotient_prefix_product_matches (pb)
  46. specialize prime_field_polynomial_quotient_prefix_product_matches (pc)
  47. specialize prime_field_polynomial_quotient_prefix_product_matches (L)
  48. apply prime_field_polynomial_quotient_prefix_product_matches
  49. exact hp
  50. exact hb
  51. exact hk
  52. exact hq
  53. exact hlen
  54. exact hproduct
  55. intro i
  56. intro hi
  57. specialize hsubtract (i)
  58. apply hsubtract
  59. specialize lt_of_lt_of_le (i)
  60. specialize lt_of_lt_of_le (N)
  61. specialize lt_of_lt_of_le (L)
  62. apply lt_of_lt_of_le
  63. exact hi
  64. exact hlen
prime_field_polynomial_division_remainder_degree · unchanged support, not a new admission
forall p ab ac L bb bc d qb qc q rb rc R. (~((p) = 1) /\ forall pfa_factor_left_division_degree_prime pfa_factor_right_division_degree_prime. (p) = pfa_factor_left_division_degree_prime * pfa_factor_right_division_degree_prime -> pfa_factor_left_division_degree_prime = 1 \/ pfa_factor_right_division_degree_prime = 1) -> (((forall fom_index_pfp_division_degree_executioninput. (exists fom_gap_pfp_division_degree_executioninput_index_bound. fom_gap_pfp_division_degree_executioninput_index_bound + S (fom_index_pfp_division_degree_executioninput) = L) -> exists fom_value_pfp_division_degree_executioninput. ((((exists fom_beta_height_pfp_division_degree_executioninput_entry. fom_beta_height_pfp_division_degree_executioninput_entry + S (fom_value_pfp_division_degree_executioninput) = S ((S (fom_index_pfp_division_degree_executioninput)) * ac)) /\ exists fom_beta_quotient_pfp_division_degree_executioninput_entry. ab = fom_beta_quotient_pfp_division_degree_executioninput_entry * S ((S (fom_index_pfp_division_degree_executioninput)) * ac) + (fom_value_pfp_division_degree_executioninput))) /\ (exists fom_gap_pfp_division_degree_executioninput_value_bound. fom_gap_pfp_division_degree_executioninput_value_bound + S (fom_value_pfp_division_degree_executioninput) = p))) /\ (((forall fom_index_pfp_division_degree_executiondivisor. (exists fom_gap_pfp_division_degree_executiondivisor_index_bound. fom_gap_pfp_division_degree_executiondivisor_index_bound + S (fom_index_pfp_division_degree_executiondivisor) = S (d)) -> exists fom_value_pfp_division_degree_executiondivisor. ((((exists fom_beta_height_pfp_division_degree_executiondivisor_entry. fom_beta_height_pfp_division_degree_executiondivisor_entry + S (fom_value_pfp_division_degree_executiondivisor) = S ((S (fom_index_pfp_division_degree_executiondivisor)) * bc)) /\ exists fom_beta_quotient_pfp_division_degree_executiondivisor_entry. bb = fom_beta_quotient_pfp_division_degree_executiondivisor_entry * S ((S (fom_index_pfp_division_degree_executiondivisor)) * bc) + (fom_value_pfp_division_degree_executiondivisor))) /\ (exists fom_gap_pfp_division_degree_executiondivisor_value_bound. fom_gap_pfp_division_degree_executiondivisor_value_bound + S (fom_value_pfp_division_degree_executiondivisor) = p))) /\ (((((((q)=0) /\ ((exists pfc_gap_division_degree_executionlengthshort. pfc_gap_division_degree_executionlengthshort+(L)=(d))))) \/ (((~((q)=0)) /\ (((q)+(d)=(L)))))) /\ ((exists pfd_head_division_degree_execution pfd_inverse_division_degree_execution pfd_product_code_division_degree_execution pfd_product_scale_division_degree_execution pfd_residual_code_division_degree_execution pfd_residual_scale_division_degree_execution pfd_cut_division_degree_execution. ((((exists ff_h_pfp_division_degree_executionhead. ff_h_pfp_division_degree_executionhead + S (pfd_head_division_degree_execution) = S ((S (0)) * bc)) /\ exists ff_q_pfp_division_degree_executionhead. bb = ff_q_pfp_division_degree_executionhead * S ((S (0)) * bc) + (pfd_head_division_degree_execution))) /\ (((((~((pfd_head_division_degree_execution) = 0)) /\ ((((exists pfa_gap_division_degree_executioninversemultiplicationleft. pfa_gap_division_degree_executioninversemultiplicationleft + S (pfd_head_division_degree_execution) = (p)) /\ (((exists pfa_gap_division_degree_executioninversemultiplicationright. pfa_gap_division_degree_executioninversemultiplicationright + S (pfd_inverse_division_degree_execution) = (p)) /\ ((((exists pfa_gap_division_degree_executioninversemultiplicationresultbound. pfa_gap_division_degree_executioninversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_division_degree_executioninversemultiplicationresultcongruence pfa_offset_right_division_degree_executioninversemultiplicationresultcongruence. ((pfd_head_division_degree_execution) * (pfd_inverse_division_degree_execution)) + (p) * pfa_offset_left_division_degree_executioninversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_division_degree_executioninversemultiplicationresultcongruence)))))))))))) /\ (((forall pfd_index_division_degree_executionquotient. (exists pfa_gap_division_degree_executionquotientbound. pfa_gap_division_degree_executionquotientbound + S (pfd_index_division_degree_executionquotient) = (q)) -> exists pfd_value_division_degree_executionquotient. ((((exists ff_h_pfp_division_degree_executionquotiententry. ff_h_pfp_division_degree_executionquotiententry + S (pfd_value_division_degree_executionquotient) = S ((S (pfd_index_division_degree_executionquotient)) * qc)) /\ exists ff_q_pfp_division_degree_executionquotiententry. qb = ff_q_pfp_division_degree_executionquotiententry * S ((S (pfd_index_division_degree_executionquotient)) * qc) + (pfd_value_division_degree_executionquotient))) /\ ((exists pfd_input_division_degree_executionquotientstep pfd_previous_division_degree_executionquotientstep pfd_difference_division_degree_executionquotientstep. ((((exists ff_h_pfp_division_degree_executionquotientstepinput. ff_h_pfp_division_degree_executionquotientstepinput + S (pfd_input_division_degree_executionquotientstep) = S ((S (pfd_index_division_degree_executionquotient)) * ac)) /\ exists ff_q_pfp_division_degree_executionquotientstepinput. ab = ff_q_pfp_division_degree_executionquotientstepinput * S ((S (pfd_index_division_degree_executionquotient)) * ac) + (pfd_input_division_degree_executionquotientstep))) /\ (((exists pfc_terms_code_division_degree_executionquotientstepprevious pfc_terms_scale_division_degree_executionquotientstepprevious pfc_natural_sum_division_degree_executionquotientstepprevious. ((forall pfc_index_division_degree_executionquotientsteppreviousdiagonal. (exists pfa_gap_division_degree_executionquotientsteppreviousdiagonalbound. pfa_gap_division_degree_executionquotientsteppreviousdiagonalbound + S (pfc_index_division_degree_executionquotientsteppreviousdiagonal) = (S (pfd_index_division_degree_executionquotient))) -> exists pfc_value_division_degree_executionquotientsteppreviousdiagonal. ((((exists ff_h_pfp_division_degree_executionquotientsteppreviousdiagonalentry. ff_h_pfp_division_degree_executionquotientsteppreviousdiagonalentry + S (pfc_value_division_degree_executionquotientsteppreviousdiagonal) = S ((S (pfc_index_division_degree_executionquotientsteppreviousdiagonal)) * pfc_terms_scale_division_degree_executionquotientstepprevious)) /\ exists ff_q_pfp_division_degree_executionquotientsteppreviousdiagonalentry. pfc_terms_code_division_degree_executionquotientstepprevious = ff_q_pfp_division_degree_executionquotientsteppreviousdiagonalentry * S ((S (pfc_index_division_degree_executionquotientsteppreviousdiagonal)) * pfc_terms_scale_division_degree_executionquotientstepprevious) + (pfc_value_division_degree_executionquotientsteppreviousdiagonal))) /\ ((exists pfc_complement_division_degree_executionquotientsteppreviousdiagonalterm pfc_left_division_degree_executionquotientsteppreviousdiagonalterm pfc_right_division_degree_executionquotientsteppreviousdiagonalterm. (((pfc_index_division_degree_executionquotientsteppreviousdiagonal)+pfc_complement_division_degree_executionquotientsteppreviousdiagonalterm=(pfd_index_division_degree_executionquotient)) /\ ((((((exists pfa_gap_division_degree_executionquotientsteppreviousdiagonaltermleftinside. pfa_gap_division_degree_executionquotientsteppreviousdiagonaltermleftinside + S (pfc_index_division_degree_executionquotientsteppreviousdiagonal) = (pfd_index_division_degree_executionquotient)) /\ ((((exists ff_h_pfp_division_degree_executionquotientsteppreviousdiagonaltermleftentry. ff_h_pfp_division_degree_executionquotientsteppreviousdiagonaltermleftentry + S (pfc_left_division_degree_executionquotientsteppreviousdiagonalterm) = S ((S (pfc_index_division_degree_executionquotientsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_degree_executionquotientsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_degree_executionquotientsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_degree_executionquotientsteppreviousdiagonal)) * qc) + (pfc_left_division_degree_executionquotientsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_degree_executionquotientsteppreviousdiagonaltermleftoutside. pfc_gap_division_degree_executionquotientsteppreviousdiagonaltermleftoutside+(pfd_index_division_degree_executionquotient)=(pfc_index_division_degree_executionquotientsteppreviousdiagonal)) /\ (((pfc_left_division_degree_executionquotientsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_degree_executionquotientsteppreviousdiagonaltermrightinside. pfa_gap_division_degree_executionquotientsteppreviousdiagonaltermrightinside + S (pfc_complement_division_degree_executionquotientsteppreviousdiagonalterm) = (S (d))) /\ ((((exists ff_h_pfp_division_degree_executionquotientsteppreviousdiagonaltermrightentry. ff_h_pfp_division_degree_executionquotientsteppreviousdiagonaltermrightentry + S (pfc_right_division_degree_executionquotientsteppreviousdiagonalterm) = S ((S (pfc_complement_division_degree_executionquotientsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_degree_executionquotientsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_degree_executionquotientsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_degree_executionquotientsteppreviousdiagonalterm)) * bc) + (pfc_right_division_degree_executionquotientsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_degree_executionquotientsteppreviousdiagonaltermrightoutside. pfc_gap_division_degree_executionquotientsteppreviousdiagonaltermrightoutside+(S (d))=(pfc_complement_division_degree_executionquotientsteppreviousdiagonalterm)) /\ (((pfc_right_division_degree_executionquotientsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_degree_executionquotientsteppreviousdiagonal)=pfc_left_division_degree_executionquotientsteppreviousdiagonalterm*pfc_right_division_degree_executionquotientsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_degree_executionquotientstepprevioussum fs_v_pfc_division_degree_executionquotientstepprevioussum. ((((exists fs_h_pfc_division_degree_executionquotientstepprevioussum_body_start. fs_h_pfc_division_degree_executionquotientstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_degree_executionquotientstepprevioussum)) /\ exists fs_q_pfc_division_degree_executionquotientstepprevioussum_body_start. fs_u_pfc_division_degree_executionquotientstepprevioussum = fs_q_pfc_division_degree_executionquotientstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_degree_executionquotientstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_degree_executionquotientstepprevioussum_body_terminal. fs_h_pfc_division_degree_executionquotientstepprevioussum_body_terminal + S (pfc_natural_sum_division_degree_executionquotientstepprevious) = S ((S (S (pfd_index_division_degree_executionquotient))) * fs_v_pfc_division_degree_executionquotientstepprevioussum)) /\ exists fs_q_pfc_division_degree_executionquotientstepprevioussum_body_terminal. fs_u_pfc_division_degree_executionquotientstepprevioussum = fs_q_pfc_division_degree_executionquotientstepprevioussum_body_terminal * S ((S (S (pfd_index_division_degree_executionquotient))) * fs_v_pfc_division_degree_executionquotientstepprevioussum) + (pfc_natural_sum_division_degree_executionquotientstepprevious))) /\ forall fs_i_pfc_division_degree_executionquotientstepprevioussum_body_steps. (exists fs_lt_pfc_division_degree_executionquotientstepprevioussum_body_steps_bound. fs_lt_pfc_division_degree_executionquotientstepprevioussum_body_steps_bound + S fs_i_pfc_division_degree_executionquotientstepprevioussum_body_steps = S (pfd_index_division_degree_executionquotient)) -> exists fs_a_pfc_division_degree_executionquotientstepprevioussum_body_steps fs_r_pfc_division_degree_executionquotientstepprevioussum_body_steps fs_s_pfc_division_degree_executionquotientstepprevioussum_body_steps. ((((exists fs_h_pfc_division_degree_executionquotientstepprevioussum_body_steps_summand. fs_h_pfc_division_degree_executionquotientstepprevioussum_body_steps_summand + S (fs_a_pfc_division_degree_executionquotientstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_degree_executionquotientstepprevioussum_body_steps)) * pfc_terms_scale_division_degree_executionquotientstepprevious)) /\ exists fs_q_pfc_division_degree_executionquotientstepprevioussum_body_steps_summand. pfc_terms_code_division_degree_executionquotientstepprevious = fs_q_pfc_division_degree_executionquotientstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_degree_executionquotientstepprevioussum_body_steps)) * pfc_terms_scale_division_degree_executionquotientstepprevious) + (fs_a_pfc_division_degree_executionquotientstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_degree_executionquotientstepprevioussum_body_steps_partial. fs_h_pfc_division_degree_executionquotientstepprevioussum_body_steps_partial + S (fs_r_pfc_division_degree_executionquotientstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_degree_executionquotientstepprevioussum_body_steps)) * fs_v_pfc_division_degree_executionquotientstepprevioussum)) /\ exists fs_q_pfc_division_degree_executionquotientstepprevioussum_body_steps_partial. fs_u_pfc_division_degree_executionquotientstepprevioussum = fs_q_pfc_division_degree_executionquotientstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_degree_executionquotientstepprevioussum_body_steps)) * fs_v_pfc_division_degree_executionquotientstepprevioussum) + (fs_r_pfc_division_degree_executionquotientstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_degree_executionquotientstepprevioussum_body_steps_successor. fs_h_pfc_division_degree_executionquotientstepprevioussum_body_steps_successor + S (fs_s_pfc_division_degree_executionquotientstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_degree_executionquotientstepprevioussum_body_steps)) * fs_v_pfc_division_degree_executionquotientstepprevioussum)) /\ exists fs_q_pfc_division_degree_executionquotientstepprevioussum_body_steps_successor. fs_u_pfc_division_degree_executionquotientstepprevioussum = fs_q_pfc_division_degree_executionquotientstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_degree_executionquotientstepprevioussum_body_steps)) * fs_v_pfc_division_degree_executionquotientstepprevioussum) + (fs_s_pfc_division_degree_executionquotientstepprevioussum_body_steps))) /\ fs_s_pfc_division_degree_executionquotientstepprevioussum_body_steps = fs_r_pfc_division_degree_executionquotientstepprevioussum_body_steps + fs_a_pfc_division_degree_executionquotientstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_degree_executionquotientsteppreviousresiduebound. pfa_gap_division_degree_executionquotientsteppreviousresiduebound + S (pfd_previous_division_degree_executionquotientstep) = (p)) /\ ((exists pfa_offset_left_division_degree_executionquotientsteppreviousresiduecongruence pfa_offset_right_division_degree_executionquotientsteppreviousresiduecongruence. (pfc_natural_sum_division_degree_executionquotientstepprevious) + (p) * pfa_offset_left_division_degree_executionquotientsteppreviousresiduecongruence = (pfd_previous_division_degree_executionquotientstep) + (p) * pfa_offset_right_division_degree_executionquotientsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_degree_executionquotientstepsubtractleft. pfa_gap_division_degree_executionquotientstepsubtractleft + S (pfd_previous_division_degree_executionquotientstep) = (p)) /\ (((exists pfa_gap_division_degree_executionquotientstepsubtractright. pfa_gap_division_degree_executionquotientstepsubtractright + S (pfd_difference_division_degree_executionquotientstep) = (p)) /\ ((((exists pfa_gap_division_degree_executionquotientstepsubtractresultbound. pfa_gap_division_degree_executionquotientstepsubtractresultbound + S (pfd_input_division_degree_executionquotientstep) = (p)) /\ ((exists pfa_offset_left_division_degree_executionquotientstepsubtractresultcongruence pfa_offset_right_division_degree_executionquotientstepsubtractresultcongruence. ((pfd_previous_division_degree_executionquotientstep) + (pfd_difference_division_degree_executionquotientstep)) + (p) * pfa_offset_left_division_degree_executionquotientstepsubtractresultcongruence = (pfd_input_division_degree_executionquotientstep) + (p) * pfa_offset_right_division_degree_executionquotientstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_degree_executionquotientstepmultiplyleft. pfa_gap_division_degree_executionquotientstepmultiplyleft + S (pfd_inverse_division_degree_execution) = (p)) /\ (((exists pfa_gap_division_degree_executionquotientstepmultiplyright. pfa_gap_division_degree_executionquotientstepmultiplyright + S (pfd_difference_division_degree_executionquotientstep) = (p)) /\ ((((exists pfa_gap_division_degree_executionquotientstepmultiplyresultbound. pfa_gap_division_degree_executionquotientstepmultiplyresultbound + S (pfd_value_division_degree_executionquotient) = (p)) /\ ((exists pfa_offset_left_division_degree_executionquotientstepmultiplyresultcongruence pfa_offset_right_division_degree_executionquotientstepmultiplyresultcongruence. ((pfd_inverse_division_degree_execution) * (pfd_difference_division_degree_executionquotientstep)) + (p) * pfa_offset_left_division_degree_executionquotientstepmultiplyresultcongruence = (pfd_value_division_degree_executionquotient) + (p) * pfa_offset_right_division_degree_executionquotientstepmultiplyresultcongruence))))))))))))))))))) /\ (((forall pfc_index_division_degree_executionproduct. (exists pfa_gap_division_degree_executionproductbound. pfa_gap_division_degree_executionproductbound + S (pfc_index_division_degree_executionproduct) = (L)) -> exists pfc_value_division_degree_executionproduct. ((((exists ff_h_pfp_division_degree_executionproductentry. ff_h_pfp_division_degree_executionproductentry + S (pfc_value_division_degree_executionproduct) = S ((S (pfc_index_division_degree_executionproduct)) * pfd_product_scale_division_degree_execution)) /\ exists ff_q_pfp_division_degree_executionproductentry. pfd_product_code_division_degree_execution = ff_q_pfp_division_degree_executionproductentry * S ((S (pfc_index_division_degree_executionproduct)) * pfd_product_scale_division_degree_execution) + (pfc_value_division_degree_executionproduct))) /\ ((exists pfc_terms_code_division_degree_executionproductcoefficient pfc_terms_scale_division_degree_executionproductcoefficient pfc_natural_sum_division_degree_executionproductcoefficient. ((forall pfc_index_division_degree_executionproductcoefficientdiagonal. (exists pfa_gap_division_degree_executionproductcoefficientdiagonalbound. pfa_gap_division_degree_executionproductcoefficientdiagonalbound + S (pfc_index_division_degree_executionproductcoefficientdiagonal) = (S (pfc_index_division_degree_executionproduct))) -> exists pfc_value_division_degree_executionproductcoefficientdiagonal. ((((exists ff_h_pfp_division_degree_executionproductcoefficientdiagonalentry. ff_h_pfp_division_degree_executionproductcoefficientdiagonalentry + S (pfc_value_division_degree_executionproductcoefficientdiagonal) = S ((S (pfc_index_division_degree_executionproductcoefficientdiagonal)) * pfc_terms_scale_division_degree_executionproductcoefficient)) /\ exists ff_q_pfp_division_degree_executionproductcoefficientdiagonalentry. pfc_terms_code_division_degree_executionproductcoefficient = ff_q_pfp_division_degree_executionproductcoefficientdiagonalentry * S ((S (pfc_index_division_degree_executionproductcoefficientdiagonal)) * pfc_terms_scale_division_degree_executionproductcoefficient) + (pfc_value_division_degree_executionproductcoefficientdiagonal))) /\ ((exists pfc_complement_division_degree_executionproductcoefficientdiagonalterm pfc_left_division_degree_executionproductcoefficientdiagonalterm pfc_right_division_degree_executionproductcoefficientdiagonalterm. (((pfc_index_division_degree_executionproductcoefficientdiagonal)+pfc_complement_division_degree_executionproductcoefficientdiagonalterm=(pfc_index_division_degree_executionproduct)) /\ ((((((exists pfa_gap_division_degree_executionproductcoefficientdiagonaltermleftinside. pfa_gap_division_degree_executionproductcoefficientdiagonaltermleftinside + S (pfc_index_division_degree_executionproductcoefficientdiagonal) = (q)) /\ ((((exists ff_h_pfp_division_degree_executionproductcoefficientdiagonaltermleftentry. ff_h_pfp_division_degree_executionproductcoefficientdiagonaltermleftentry + S (pfc_left_division_degree_executionproductcoefficientdiagonalterm) = S ((S (pfc_index_division_degree_executionproductcoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_degree_executionproductcoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_degree_executionproductcoefficientdiagonaltermleftentry * S ((S (pfc_index_division_degree_executionproductcoefficientdiagonal)) * qc) + (pfc_left_division_degree_executionproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_degree_executionproductcoefficientdiagonaltermleftoutside. pfc_gap_division_degree_executionproductcoefficientdiagonaltermleftoutside+(q)=(pfc_index_division_degree_executionproductcoefficientdiagonal)) /\ (((pfc_left_division_degree_executionproductcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_degree_executionproductcoefficientdiagonaltermrightinside. pfa_gap_division_degree_executionproductcoefficientdiagonaltermrightinside + S (pfc_complement_division_degree_executionproductcoefficientdiagonalterm) = (S (d))) /\ ((((exists ff_h_pfp_division_degree_executionproductcoefficientdiagonaltermrightentry. ff_h_pfp_division_degree_executionproductcoefficientdiagonaltermrightentry + S (pfc_right_division_degree_executionproductcoefficientdiagonalterm) = S ((S (pfc_complement_division_degree_executionproductcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_degree_executionproductcoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_degree_executionproductcoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_degree_executionproductcoefficientdiagonalterm)) * bc) + (pfc_right_division_degree_executionproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_degree_executionproductcoefficientdiagonaltermrightoutside. pfc_gap_division_degree_executionproductcoefficientdiagonaltermrightoutside+(S (d))=(pfc_complement_division_degree_executionproductcoefficientdiagonalterm)) /\ (((pfc_right_division_degree_executionproductcoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_degree_executionproductcoefficientdiagonal)=pfc_left_division_degree_executionproductcoefficientdiagonalterm*pfc_right_division_degree_executionproductcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_degree_executionproductcoefficientsum fs_v_pfc_division_degree_executionproductcoefficientsum. ((((exists fs_h_pfc_division_degree_executionproductcoefficientsum_body_start. fs_h_pfc_division_degree_executionproductcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_degree_executionproductcoefficientsum)) /\ exists fs_q_pfc_division_degree_executionproductcoefficientsum_body_start. fs_u_pfc_division_degree_executionproductcoefficientsum = fs_q_pfc_division_degree_executionproductcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_degree_executionproductcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_degree_executionproductcoefficientsum_body_terminal. fs_h_pfc_division_degree_executionproductcoefficientsum_body_terminal + S (pfc_natural_sum_division_degree_executionproductcoefficient) = S ((S (S (pfc_index_division_degree_executionproduct))) * fs_v_pfc_division_degree_executionproductcoefficientsum)) /\ exists fs_q_pfc_division_degree_executionproductcoefficientsum_body_terminal. fs_u_pfc_division_degree_executionproductcoefficientsum = fs_q_pfc_division_degree_executionproductcoefficientsum_body_terminal * S ((S (S (pfc_index_division_degree_executionproduct))) * fs_v_pfc_division_degree_executionproductcoefficientsum) + (pfc_natural_sum_division_degree_executionproductcoefficient))) /\ forall fs_i_pfc_division_degree_executionproductcoefficientsum_body_steps. (exists fs_lt_pfc_division_degree_executionproductcoefficientsum_body_steps_bound. fs_lt_pfc_division_degree_executionproductcoefficientsum_body_steps_bound + S fs_i_pfc_division_degree_executionproductcoefficientsum_body_steps = S (pfc_index_division_degree_executionproduct)) -> exists fs_a_pfc_division_degree_executionproductcoefficientsum_body_steps fs_r_pfc_division_degree_executionproductcoefficientsum_body_steps fs_s_pfc_division_degree_executionproductcoefficientsum_body_steps. ((((exists fs_h_pfc_division_degree_executionproductcoefficientsum_body_steps_summand. fs_h_pfc_division_degree_executionproductcoefficientsum_body_steps_summand + S (fs_a_pfc_division_degree_executionproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_degree_executionproductcoefficientsum_body_steps)) * pfc_terms_scale_division_degree_executionproductcoefficient)) /\ exists fs_q_pfc_division_degree_executionproductcoefficientsum_body_steps_summand. pfc_terms_code_division_degree_executionproductcoefficient = fs_q_pfc_division_degree_executionproductcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_degree_executionproductcoefficientsum_body_steps)) * pfc_terms_scale_division_degree_executionproductcoefficient) + (fs_a_pfc_division_degree_executionproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_degree_executionproductcoefficientsum_body_steps_partial. fs_h_pfc_division_degree_executionproductcoefficientsum_body_steps_partial + S (fs_r_pfc_division_degree_executionproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_degree_executionproductcoefficientsum_body_steps)) * fs_v_pfc_division_degree_executionproductcoefficientsum)) /\ exists fs_q_pfc_division_degree_executionproductcoefficientsum_body_steps_partial. fs_u_pfc_division_degree_executionproductcoefficientsum = fs_q_pfc_division_degree_executionproductcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_degree_executionproductcoefficientsum_body_steps)) * fs_v_pfc_division_degree_executionproductcoefficientsum) + (fs_r_pfc_division_degree_executionproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_degree_executionproductcoefficientsum_body_steps_successor. fs_h_pfc_division_degree_executionproductcoefficientsum_body_steps_successor + S (fs_s_pfc_division_degree_executionproductcoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_degree_executionproductcoefficientsum_body_steps)) * fs_v_pfc_division_degree_executionproductcoefficientsum)) /\ exists fs_q_pfc_division_degree_executionproductcoefficientsum_body_steps_successor. fs_u_pfc_division_degree_executionproductcoefficientsum = fs_q_pfc_division_degree_executionproductcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_degree_executionproductcoefficientsum_body_steps)) * fs_v_pfc_division_degree_executionproductcoefficientsum) + (fs_s_pfc_division_degree_executionproductcoefficientsum_body_steps))) /\ fs_s_pfc_division_degree_executionproductcoefficientsum_body_steps = fs_r_pfc_division_degree_executionproductcoefficientsum_body_steps + fs_a_pfc_division_degree_executionproductcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_degree_executionproductcoefficientresiduebound. pfa_gap_division_degree_executionproductcoefficientresiduebound + S (pfc_value_division_degree_executionproduct) = (p)) /\ ((exists pfa_offset_left_division_degree_executionproductcoefficientresiduecongruence pfa_offset_right_division_degree_executionproductcoefficientresiduecongruence. (pfc_natural_sum_division_degree_executionproductcoefficient) + (p) * pfa_offset_left_division_degree_executionproductcoefficientresiduecongruence = (pfc_value_division_degree_executionproduct) + (p) * pfa_offset_right_division_degree_executionproductcoefficientresiduecongruence)))))))))))) /\ (((forall pfs_index_division_degree_executiondifference. (exists pfa_gap_division_degree_executiondifferenceindex. pfa_gap_division_degree_executiondifferenceindex + S (pfs_index_division_degree_executiondifference) = (L)) -> exists pfs_left_division_degree_executiondifference pfs_right_division_degree_executiondifference pfs_result_division_degree_executiondifference. ((((exists ff_h_pfp_division_degree_executiondifferenceleft. ff_h_pfp_division_degree_executiondifferenceleft + S (pfs_left_division_degree_executiondifference) = S ((S (pfs_index_division_degree_executiondifference)) * ac)) /\ exists ff_q_pfp_division_degree_executiondifferenceleft. ab = ff_q_pfp_division_degree_executiondifferenceleft * S ((S (pfs_index_division_degree_executiondifference)) * ac) + (pfs_left_division_degree_executiondifference))) /\ (((((exists ff_h_pfp_division_degree_executiondifferenceright. ff_h_pfp_division_degree_executiondifferenceright + S (pfs_right_division_degree_executiondifference) = S ((S (pfs_index_division_degree_executiondifference)) * pfd_product_scale_division_degree_execution)) /\ exists ff_q_pfp_division_degree_executiondifferenceright. pfd_product_code_division_degree_execution = ff_q_pfp_division_degree_executiondifferenceright * S ((S (pfs_index_division_degree_executiondifference)) * pfd_product_scale_division_degree_execution) + (pfs_right_division_degree_executiondifference))) /\ (((((exists ff_h_pfp_division_degree_executiondifferenceresult. ff_h_pfp_division_degree_executiondifferenceresult + S (pfs_result_division_degree_executiondifference) = S ((S (pfs_index_division_degree_executiondifference)) * pfd_residual_scale_division_degree_execution)) /\ exists ff_q_pfp_division_degree_executiondifferenceresult. pfd_residual_code_division_degree_execution = ff_q_pfp_division_degree_executiondifferenceresult * S ((S (pfs_index_division_degree_executiondifference)) * pfd_residual_scale_division_degree_execution) + (pfs_result_division_degree_executiondifference))) /\ ((((exists pfa_gap_division_degree_executiondifferenceoperationleft. pfa_gap_division_degree_executiondifferenceoperationleft + S (pfs_right_division_degree_executiondifference) = (p)) /\ (((exists pfa_gap_division_degree_executiondifferenceoperationright. pfa_gap_division_degree_executiondifferenceoperationright + S (pfs_result_division_degree_executiondifference) = (p)) /\ ((((exists pfa_gap_division_degree_executiondifferenceoperationresultbound. pfa_gap_division_degree_executiondifferenceoperationresultbound + S (pfs_left_division_degree_executiondifference) = (p)) /\ ((exists pfa_offset_left_division_degree_executiondifferenceoperationresultcongruence pfa_offset_right_division_degree_executiondifferenceoperationresultcongruence. ((pfs_right_division_degree_executiondifference) + (pfs_result_division_degree_executiondifference)) + (p) * pfa_offset_left_division_degree_executiondifferenceoperationresultcongruence = (pfs_left_division_degree_executiondifference) + (p) * pfa_offset_right_division_degree_executiondifferenceoperationresultcongruence)))))))))))))))) /\ (((((L)=(pfd_cut_division_degree_execution)+(R)) /\ (((forall fom_index_pfp_division_degree_executiontriminput. (exists fom_gap_pfp_division_degree_executiontriminput_index_bound. fom_gap_pfp_division_degree_executiontriminput_index_bound + S (fom_index_pfp_division_degree_executiontriminput) = L) -> exists fom_value_pfp_division_degree_executiontriminput. ((((exists fom_beta_height_pfp_division_degree_executiontriminput_entry. fom_beta_height_pfp_division_degree_executiontriminput_entry + S (fom_value_pfp_division_degree_executiontriminput) = S ((S (fom_index_pfp_division_degree_executiontriminput)) * pfd_residual_scale_division_degree_execution)) /\ exists fom_beta_quotient_pfp_division_degree_executiontriminput_entry. pfd_residual_code_division_degree_execution = fom_beta_quotient_pfp_division_degree_executiontriminput_entry * S ((S (fom_index_pfp_division_degree_executiontriminput)) * pfd_residual_scale_division_degree_execution) + (fom_value_pfp_division_degree_executiontriminput))) /\ (exists fom_gap_pfp_division_degree_executiontriminput_value_bound. fom_gap_pfp_division_degree_executiontriminput_value_bound + S (fom_value_pfp_division_degree_executiontriminput) = p))) /\ (((forall pfp_repeat_index_division_degree_executiontrimremoved. (exists pfa_gap_division_degree_executiontrimremovedindex. pfa_gap_division_degree_executiontrimremovedindex + S (pfp_repeat_index_division_degree_executiontrimremoved) = (pfd_cut_division_degree_execution)) -> (((exists ff_h_pfp_division_degree_executiontrimremovedentry. ff_h_pfp_division_degree_executiontrimremovedentry + S (0) = S ((S (pfp_repeat_index_division_degree_executiontrimremoved)) * pfd_residual_scale_division_degree_execution)) /\ exists ff_q_pfp_division_degree_executiontrimremovedentry. pfd_residual_code_division_degree_execution = ff_q_pfp_division_degree_executiontrimremovedentry * S ((S (pfp_repeat_index_division_degree_executiontrimremoved)) * pfd_residual_scale_division_degree_execution) + (0)))) /\ (((forall pftrim_index_division_degree_executiontrimsuffix pftrim_value_division_degree_executiontrimsuffix. (exists pfa_gap_division_degree_executiontrimsuffixbound. pfa_gap_division_degree_executiontrimsuffixbound + S (pftrim_index_division_degree_executiontrimsuffix) = (R)) -> (((exists ff_h_pfp_division_degree_executiontrimsuffixsource. ff_h_pfp_division_degree_executiontrimsuffixsource + S (pftrim_value_division_degree_executiontrimsuffix) = S ((S ((pfd_cut_division_degree_execution)+pftrim_index_division_degree_executiontrimsuffix)) * pfd_residual_scale_division_degree_execution)) /\ exists ff_q_pfp_division_degree_executiontrimsuffixsource. pfd_residual_code_division_degree_execution = ff_q_pfp_division_degree_executiontrimsuffixsource * S ((S ((pfd_cut_division_degree_execution)+pftrim_index_division_degree_executiontrimsuffix)) * pfd_residual_scale_division_degree_execution) + (pftrim_value_division_degree_executiontrimsuffix))) -> (((exists ff_h_pfp_division_degree_executiontrimsuffixoutput. ff_h_pfp_division_degree_executiontrimsuffixoutput + S (pftrim_value_division_degree_executiontrimsuffix) = S ((S (pftrim_index_division_degree_executiontrimsuffix)) * rc)) /\ exists ff_q_pfp_division_degree_executiontrimsuffixoutput. rb = ff_q_pfp_division_degree_executiontrimsuffixoutput * S ((S (pftrim_index_division_degree_executiontrimsuffix)) * rc) + (pftrim_value_division_degree_executiontrimsuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_degree_executiontrimnormal. ((((exists ff_h_pfp_division_degree_executiontrimnormalentry. ff_h_pfp_division_degree_executiontrimnormalentry + S (pftrim_leading_division_degree_executiontrimnormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_degree_executiontrimnormalentry. rb = ff_q_pfp_division_degree_executiontrimnormalentry * S ((S (0)) * rc) + (pftrim_leading_division_degree_executiontrimnormal))) /\ ((~(pftrim_leading_division_degree_executiontrimnormal=0))))))))))))))))))))))))))))))))) -> ((R)=0 \/ (exists pfd_remainder_degree_division_degree_result. (((((R)=S (pfd_remainder_degree_division_degree_result)) /\ (((forall fom_index_pfp_division_degree_resultrepresentedcoefficients. (exists fom_gap_pfp_division_degree_resultrepresentedcoefficients_index_bound. fom_gap_pfp_division_degree_resultrepresentedcoefficients_index_bound + S (fom_index_pfp_division_degree_resultrepresentedcoefficients) = R) -> exists fom_value_pfp_division_degree_resultrepresentedcoefficients. ((((exists fom_beta_height_pfp_division_degree_resultrepresentedcoefficients_entry. fom_beta_height_pfp_division_degree_resultrepresentedcoefficients_entry + S (fom_value_pfp_division_degree_resultrepresentedcoefficients) = S ((S (fom_index_pfp_division_degree_resultrepresentedcoefficients)) * rc)) /\ exists fom_beta_quotient_pfp_division_degree_resultrepresentedcoefficients_entry. rb = fom_beta_quotient_pfp_division_degree_resultrepresentedcoefficients_entry * S ((S (fom_index_pfp_division_degree_resultrepresentedcoefficients)) * rc) + (fom_value_pfp_division_degree_resultrepresentedcoefficients))) /\ (exists fom_gap_pfp_division_degree_resultrepresentedcoefficients_value_bound. fom_gap_pfp_division_degree_resultrepresentedcoefficients_value_bound + S (fom_value_pfp_division_degree_resultrepresentedcoefficients) = p))) /\ ((exists pfd_leading_division_degree_resultrepresented. ((((exists ff_h_pfp_division_degree_resultrepresentedentry. ff_h_pfp_division_degree_resultrepresentedentry + S (pfd_leading_division_degree_resultrepresented) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_degree_resultrepresentedentry. rb = ff_q_pfp_division_degree_resultrepresentedentry * S ((S (0)) * rc) + (pfd_leading_division_degree_resultrepresented))) /\ ((~(pfd_leading_division_degree_resultrepresented=0)))))))))) /\ ((exists pfa_gap_division_degree_resultstrict. pfa_gap_division_degree_resultstrict + S (pfd_remainder_degree_division_degree_result) = (d))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro d
  8. intro qb
  9. intro qc
  10. intro q
  11. intro rb
  12. intro rc
  13. intro R
  14. intro hp
  15. intro h
  16. cases h
  17. cases h_right
  18. cases h_right_right
  19. cases h_right_right_right
  20. cases h_right_right_right_witness
  21. cases h_right_right_right_witness_witness
  22. cases h_right_right_right_witness_witness_witness
  23. cases h_right_right_right_witness_witness_witness_witness
  24. cases h_right_right_right_witness_witness_witness_witness_witness
  25. cases h_right_right_right_witness_witness_witness_witness_witness_witness
  26. cases h_right_right_right_witness_witness_witness_witness_witness_witness_witness
  27. cases h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right
  28. cases h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right
  29. cases h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_right
  30. cases h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  31. have hbounds : ((exists pfc_gap_division_degree_q_bound. pfc_gap_division_degree_q_bound+(q)=(L)) /\ ((exists pfc_gap_division_degree_cover. pfc_gap_division_degree_cover+(L)=(q+d))))
  32. specialize polynomial_quotient_length_bounds (L)
  33. specialize polynomial_quotient_length_bounds (d)
  34. specialize polynomial_quotient_length_bounds (q)
  35. apply polynomial_quotient_length_bounds
  36. exact h_right_right_left
  37. cases hbounds
  38. specialize prime_field_polynomial_trim_bounded_degree (p)
  39. specialize prime_field_polynomial_trim_bounded_degree (x4)
  40. specialize prime_field_polynomial_trim_bounded_degree (x5)
  41. specialize prime_field_polynomial_trim_bounded_degree (L)
  42. specialize prime_field_polynomial_trim_bounded_degree (x6)
  43. specialize prime_field_polynomial_trim_bounded_degree (rb)
  44. specialize prime_field_polynomial_trim_bounded_degree (rc)
  45. specialize prime_field_polynomial_trim_bounded_degree (R)
  46. specialize prime_field_polynomial_trim_bounded_degree (d)
  47. apply prime_field_polynomial_trim_bounded_degree
  48. exact h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_right
  49. specialize prime_field_polynomial_trim_zero_prefix_remainder_bound (p)
  50. specialize prime_field_polynomial_trim_zero_prefix_remainder_bound (x4)
  51. specialize prime_field_polynomial_trim_zero_prefix_remainder_bound (x5)
  52. specialize prime_field_polynomial_trim_zero_prefix_remainder_bound (L)
  53. specialize prime_field_polynomial_trim_zero_prefix_remainder_bound (x6)
  54. specialize prime_field_polynomial_trim_zero_prefix_remainder_bound (rb)
  55. specialize prime_field_polynomial_trim_zero_prefix_remainder_bound (rc)
  56. specialize prime_field_polynomial_trim_zero_prefix_remainder_bound (R)
  57. specialize prime_field_polynomial_trim_zero_prefix_remainder_bound (q)
  58. specialize prime_field_polynomial_trim_zero_prefix_remainder_bound (d)
  59. apply prime_field_polynomial_trim_zero_prefix_remainder_bound
  60. exact hbounds_left
  61. exact hbounds_right
  62. specialize prime_field_polynomial_quotient_prefix_remainder_zero (p)
  63. specialize prime_field_polynomial_quotient_prefix_remainder_zero (x1)
  64. specialize prime_field_polynomial_quotient_prefix_remainder_zero (ab)
  65. specialize prime_field_polynomial_quotient_prefix_remainder_zero (ac)
  66. specialize prime_field_polynomial_quotient_prefix_remainder_zero (bb)
  67. specialize prime_field_polynomial_quotient_prefix_remainder_zero (bc)
  68. specialize prime_field_polynomial_quotient_prefix_remainder_zero (d)
  69. specialize prime_field_polynomial_quotient_prefix_remainder_zero (qb)
  70. specialize prime_field_polynomial_quotient_prefix_remainder_zero (qc)
  71. specialize prime_field_polynomial_quotient_prefix_remainder_zero (q)
  72. specialize prime_field_polynomial_quotient_prefix_remainder_zero (x)
  73. specialize prime_field_polynomial_quotient_prefix_remainder_zero (x2)
  74. specialize prime_field_polynomial_quotient_prefix_remainder_zero (x3)
  75. specialize prime_field_polynomial_quotient_prefix_remainder_zero (L)
  76. specialize prime_field_polynomial_quotient_prefix_remainder_zero (x4)
  77. specialize prime_field_polynomial_quotient_prefix_remainder_zero (x5)
  78. apply prime_field_polynomial_quotient_prefix_remainder_zero
  79. exact hp
  80. exact h_right_right_right_witness_witness_witness_witness_witness_witness_witness_left
  81. exact h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_left
  82. exact h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_left
  83. exact hbounds_left
  84. exact h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  85. exact h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_left
  86. exact h_right_right_right_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_right
prime_field_polynomial_scale_associative · unchanged support, not a new admission
forall p a b k ab ac bb bc ub uc vb vc l. (((exists pfa_gap_scale_assoc_scalarsleft. pfa_gap_scale_assoc_scalarsleft + S (a) = (p)) /\ (((exists pfa_gap_scale_assoc_scalarsright. pfa_gap_scale_assoc_scalarsright + S (b) = (p)) /\ ((((exists pfa_gap_scale_assoc_scalarsresultbound. pfa_gap_scale_assoc_scalarsresultbound + S (k) = (p)) /\ ((exists pfa_offset_left_scale_assoc_scalarsresultcongruence pfa_offset_right_scale_assoc_scalarsresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_scale_assoc_scalarsresultcongruence = (k) + (p) * pfa_offset_right_scale_assoc_scalarsresultcongruence))))))))) -> (((exists pfa_gap_scale_assoc_firstscalar. pfa_gap_scale_assoc_firstscalar + S (b) = (p)) /\ ((forall pfp_index_scale_assoc_first. (exists pfa_gap_scale_assoc_firstindex. pfa_gap_scale_assoc_firstindex + S (pfp_index_scale_assoc_first) = (l)) -> exists pfp_source_scale_assoc_first pfp_value_scale_assoc_first. ((((exists ff_h_pfp_scale_assoc_firstsource. ff_h_pfp_scale_assoc_firstsource + S (pfp_source_scale_assoc_first) = S ((S (pfp_index_scale_assoc_first)) * ac)) /\ exists ff_q_pfp_scale_assoc_firstsource. ab = ff_q_pfp_scale_assoc_firstsource * S ((S (pfp_index_scale_assoc_first)) * ac) + (pfp_source_scale_assoc_first))) /\ (((((exists ff_h_pfp_scale_assoc_firsttarget. ff_h_pfp_scale_assoc_firsttarget + S (pfp_value_scale_assoc_first) = S ((S (pfp_index_scale_assoc_first)) * bc)) /\ exists ff_q_pfp_scale_assoc_firsttarget. bb = ff_q_pfp_scale_assoc_firsttarget * S ((S (pfp_index_scale_assoc_first)) * bc) + (pfp_value_scale_assoc_first))) /\ ((((exists pfa_gap_scale_assoc_firstoperationleft. pfa_gap_scale_assoc_firstoperationleft + S (b) = (p)) /\ (((exists pfa_gap_scale_assoc_firstoperationright. pfa_gap_scale_assoc_firstoperationright + S (pfp_source_scale_assoc_first) = (p)) /\ ((((exists pfa_gap_scale_assoc_firstoperationresultbound. pfa_gap_scale_assoc_firstoperationresultbound + S (pfp_value_scale_assoc_first) = (p)) /\ ((exists pfa_offset_left_scale_assoc_firstoperationresultcongruence pfa_offset_right_scale_assoc_firstoperationresultcongruence. ((b) * (pfp_source_scale_assoc_first)) + (p) * pfa_offset_left_scale_assoc_firstoperationresultcongruence = (pfp_value_scale_assoc_first) + (p) * pfa_offset_right_scale_assoc_firstoperationresultcongruence))))))))))))))))) -> (((exists pfa_gap_scale_assoc_secondscalar. pfa_gap_scale_assoc_secondscalar + S (a) = (p)) /\ ((forall pfp_index_scale_assoc_second. (exists pfa_gap_scale_assoc_secondindex. pfa_gap_scale_assoc_secondindex + S (pfp_index_scale_assoc_second) = (l)) -> exists pfp_source_scale_assoc_second pfp_value_scale_assoc_second. ((((exists ff_h_pfp_scale_assoc_secondsource. ff_h_pfp_scale_assoc_secondsource + S (pfp_source_scale_assoc_second) = S ((S (pfp_index_scale_assoc_second)) * bc)) /\ exists ff_q_pfp_scale_assoc_secondsource. bb = ff_q_pfp_scale_assoc_secondsource * S ((S (pfp_index_scale_assoc_second)) * bc) + (pfp_source_scale_assoc_second))) /\ (((((exists ff_h_pfp_scale_assoc_secondtarget. ff_h_pfp_scale_assoc_secondtarget + S (pfp_value_scale_assoc_second) = S ((S (pfp_index_scale_assoc_second)) * uc)) /\ exists ff_q_pfp_scale_assoc_secondtarget. ub = ff_q_pfp_scale_assoc_secondtarget * S ((S (pfp_index_scale_assoc_second)) * uc) + (pfp_value_scale_assoc_second))) /\ ((((exists pfa_gap_scale_assoc_secondoperationleft. pfa_gap_scale_assoc_secondoperationleft + S (a) = (p)) /\ (((exists pfa_gap_scale_assoc_secondoperationright. pfa_gap_scale_assoc_secondoperationright + S (pfp_source_scale_assoc_second) = (p)) /\ ((((exists pfa_gap_scale_assoc_secondoperationresultbound. pfa_gap_scale_assoc_secondoperationresultbound + S (pfp_value_scale_assoc_second) = (p)) /\ ((exists pfa_offset_left_scale_assoc_secondoperationresultcongruence pfa_offset_right_scale_assoc_secondoperationresultcongruence. ((a) * (pfp_source_scale_assoc_second)) + (p) * pfa_offset_left_scale_assoc_secondoperationresultcongruence = (pfp_value_scale_assoc_second) + (p) * pfa_offset_right_scale_assoc_secondoperationresultcongruence))))))))))))))))) -> (((exists pfa_gap_scale_assoc_productscalar. pfa_gap_scale_assoc_productscalar + S (k) = (p)) /\ ((forall pfp_index_scale_assoc_product. (exists pfa_gap_scale_assoc_productindex. pfa_gap_scale_assoc_productindex + S (pfp_index_scale_assoc_product) = (l)) -> exists pfp_source_scale_assoc_product pfp_value_scale_assoc_product. ((((exists ff_h_pfp_scale_assoc_productsource. ff_h_pfp_scale_assoc_productsource + S (pfp_source_scale_assoc_product) = S ((S (pfp_index_scale_assoc_product)) * ac)) /\ exists ff_q_pfp_scale_assoc_productsource. ab = ff_q_pfp_scale_assoc_productsource * S ((S (pfp_index_scale_assoc_product)) * ac) + (pfp_source_scale_assoc_product))) /\ (((((exists ff_h_pfp_scale_assoc_producttarget. ff_h_pfp_scale_assoc_producttarget + S (pfp_value_scale_assoc_product) = S ((S (pfp_index_scale_assoc_product)) * vc)) /\ exists ff_q_pfp_scale_assoc_producttarget. vb = ff_q_pfp_scale_assoc_producttarget * S ((S (pfp_index_scale_assoc_product)) * vc) + (pfp_value_scale_assoc_product))) /\ ((((exists pfa_gap_scale_assoc_productoperationleft. pfa_gap_scale_assoc_productoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_assoc_productoperationright. pfa_gap_scale_assoc_productoperationright + S (pfp_source_scale_assoc_product) = (p)) /\ ((((exists pfa_gap_scale_assoc_productoperationresultbound. pfa_gap_scale_assoc_productoperationresultbound + S (pfp_value_scale_assoc_product) = (p)) /\ ((exists pfa_offset_left_scale_assoc_productoperationresultcongruence pfa_offset_right_scale_assoc_productoperationresultcongruence. ((k) * (pfp_source_scale_assoc_product)) + (p) * pfa_offset_left_scale_assoc_productoperationresultcongruence = (pfp_value_scale_assoc_product) + (p) * pfa_offset_right_scale_assoc_productoperationresultcongruence))))))))))))))))) -> (forall mdr_i_pfp_scale_assoc_result mdr_a_pfp_scale_assoc_result. (exists mdr_gap_pfp_scale_assoc_resultb. mdr_gap_pfp_scale_assoc_resultb + S (mdr_i_pfp_scale_assoc_result) = (l)) -> (((exists ff_h_mdr_pfp_scale_assoc_resulto. ff_h_mdr_pfp_scale_assoc_resulto + S (mdr_a_pfp_scale_assoc_result) = S ((S (mdr_i_pfp_scale_assoc_result)) * uc)) /\ exists ff_q_mdr_pfp_scale_assoc_resulto. ub = ff_q_mdr_pfp_scale_assoc_resulto * S ((S (mdr_i_pfp_scale_assoc_result)) * uc) + (mdr_a_pfp_scale_assoc_result))) -> (((exists ff_h_mdr_pfp_scale_assoc_resultn. ff_h_mdr_pfp_scale_assoc_resultn + S (mdr_a_pfp_scale_assoc_result) = S ((S (mdr_i_pfp_scale_assoc_result)) * vc)) /\ exists ff_q_mdr_pfp_scale_assoc_resultn. vb = ff_q_mdr_pfp_scale_assoc_resultn * S ((S (mdr_i_pfp_scale_assoc_result)) * vc) + (mdr_a_pfp_scale_assoc_result))))
  1. intro p
  2. intro a
  3. intro b
  4. intro k
  5. intro ab
  6. intro ac
  7. intro bb
  8. intro bc
  9. intro ub
  10. intro uc
  11. intro vb
  12. intro vc
  13. intro l
  14. intro hk
  15. intro hfirst
  16. intro hsecond
  17. intro hproduct
  18. intro i
  19. intro r
  20. intro hi
  21. intro hr
  22. have entry_a : exists z. (((exists ff_h_pfp_scale_assoc_choicea. ff_h_pfp_scale_assoc_choicea + S (z) = S ((S (i)) * ac)) /\ exists ff_q_pfp_scale_assoc_choicea. ab = ff_q_pfp_scale_assoc_choicea * S ((S (i)) * ac) + (z)))
  23. specialize beta_at_exists (ab)
  24. specialize beta_at_exists (ac)
  25. specialize beta_at_exists (i)
  26. apply beta_at_exists
  27. cases entry_a
  28. have entry_b : exists z. (((exists ff_h_pfp_scale_assoc_choiceb. ff_h_pfp_scale_assoc_choiceb + S (z) = S ((S (i)) * bc)) /\ exists ff_q_pfp_scale_assoc_choiceb. bb = ff_q_pfp_scale_assoc_choiceb * S ((S (i)) * bc) + (z)))
  29. specialize beta_at_exists (bb)
  30. specialize beta_at_exists (bc)
  31. specialize beta_at_exists (i)
  32. apply beta_at_exists
  33. cases entry_b
  34. have entry_v : exists z. (((exists ff_h_pfp_scale_assoc_choicev. ff_h_pfp_scale_assoc_choicev + S (z) = S ((S (i)) * vc)) /\ exists ff_q_pfp_scale_assoc_choicev. vb = ff_q_pfp_scale_assoc_choicev * S ((S (i)) * vc) + (z)))
  35. specialize beta_at_exists (vb)
  36. specialize beta_at_exists (vc)
  37. specialize beta_at_exists (i)
  38. apply beta_at_exists
  39. cases entry_v
  40. have heq : r=x2
  41. symm
  42. specialize prime_field_multiply_associative (p)
  43. specialize prime_field_multiply_associative (a)
  44. specialize prime_field_multiply_associative (b)
  45. specialize prime_field_multiply_associative (x)
  46. specialize prime_field_multiply_associative (k)
  47. specialize prime_field_multiply_associative (x1)
  48. specialize prime_field_multiply_associative (x2)
  49. specialize prime_field_multiply_associative (r)
  50. apply prime_field_multiply_associative
  51. exact hk
  52. specialize prime_field_polynomial_scale_entry (p)
  53. specialize prime_field_polynomial_scale_entry (k)
  54. specialize prime_field_polynomial_scale_entry (ab)
  55. specialize prime_field_polynomial_scale_entry (ac)
  56. specialize prime_field_polynomial_scale_entry (vb)
  57. specialize prime_field_polynomial_scale_entry (vc)
  58. specialize prime_field_polynomial_scale_entry (l)
  59. specialize prime_field_polynomial_scale_entry (i)
  60. specialize prime_field_polynomial_scale_entry (x)
  61. specialize prime_field_polynomial_scale_entry (x2)
  62. apply prime_field_polynomial_scale_entry
  63. exact hproduct
  64. exact hi
  65. exact entry_a_witness
  66. exact entry_v_witness
  67. specialize prime_field_polynomial_scale_entry (p)
  68. specialize prime_field_polynomial_scale_entry (b)
  69. specialize prime_field_polynomial_scale_entry (ab)
  70. specialize prime_field_polynomial_scale_entry (ac)
  71. specialize prime_field_polynomial_scale_entry (bb)
  72. specialize prime_field_polynomial_scale_entry (bc)
  73. specialize prime_field_polynomial_scale_entry (l)
  74. specialize prime_field_polynomial_scale_entry (i)
  75. specialize prime_field_polynomial_scale_entry (x)
  76. specialize prime_field_polynomial_scale_entry (x1)
  77. apply prime_field_polynomial_scale_entry
  78. exact hfirst
  79. exact hi
  80. exact entry_a_witness
  81. exact entry_b_witness
  82. specialize prime_field_polynomial_scale_entry (p)
  83. specialize prime_field_polynomial_scale_entry (a)
  84. specialize prime_field_polynomial_scale_entry (bb)
  85. specialize prime_field_polynomial_scale_entry (bc)
  86. specialize prime_field_polynomial_scale_entry (ub)
  87. specialize prime_field_polynomial_scale_entry (uc)
  88. specialize prime_field_polynomial_scale_entry (l)
  89. specialize prime_field_polynomial_scale_entry (i)
  90. specialize prime_field_polynomial_scale_entry (x1)
  91. specialize prime_field_polynomial_scale_entry (r)
  92. apply prime_field_polynomial_scale_entry
  93. exact hsecond
  94. exact hi
  95. exact entry_b_witness
  96. exact hr
  97. rewrite heq
  98. rewrite heq
  99. exact entry_v_witness
prime_field_polynomial_scale_one · unchanged support, not a new admission
forall p b c l. (~((p) = 1) /\ forall pfa_factor_left_scale_one_prime pfa_factor_right_scale_one_prime. (p) = pfa_factor_left_scale_one_prime * pfa_factor_right_scale_one_prime -> pfa_factor_left_scale_one_prime = 1 \/ pfa_factor_right_scale_one_prime = 1) -> (forall fom_index_pfp_scale_one_coefficients. (exists fom_gap_pfp_scale_one_coefficients_index_bound. fom_gap_pfp_scale_one_coefficients_index_bound + S (fom_index_pfp_scale_one_coefficients) = l) -> exists fom_value_pfp_scale_one_coefficients. ((((exists fom_beta_height_pfp_scale_one_coefficients_entry. fom_beta_height_pfp_scale_one_coefficients_entry + S (fom_value_pfp_scale_one_coefficients) = S ((S (fom_index_pfp_scale_one_coefficients)) * c)) /\ exists fom_beta_quotient_pfp_scale_one_coefficients_entry. b = fom_beta_quotient_pfp_scale_one_coefficients_entry * S ((S (fom_index_pfp_scale_one_coefficients)) * c) + (fom_value_pfp_scale_one_coefficients))) /\ (exists fom_gap_pfp_scale_one_coefficients_value_bound. fom_gap_pfp_scale_one_coefficients_value_bound + S (fom_value_pfp_scale_one_coefficients) = p))) -> (((exists pfa_gap_scale_one_resultscalar. pfa_gap_scale_one_resultscalar + S (1) = (p)) /\ ((forall pfp_index_scale_one_result. (exists pfa_gap_scale_one_resultindex. pfa_gap_scale_one_resultindex + S (pfp_index_scale_one_result) = (l)) -> exists pfp_source_scale_one_result pfp_value_scale_one_result. ((((exists ff_h_pfp_scale_one_resultsource. ff_h_pfp_scale_one_resultsource + S (pfp_source_scale_one_result) = S ((S (pfp_index_scale_one_result)) * c)) /\ exists ff_q_pfp_scale_one_resultsource. b = ff_q_pfp_scale_one_resultsource * S ((S (pfp_index_scale_one_result)) * c) + (pfp_source_scale_one_result))) /\ (((((exists ff_h_pfp_scale_one_resulttarget. ff_h_pfp_scale_one_resulttarget + S (pfp_value_scale_one_result) = S ((S (pfp_index_scale_one_result)) * c)) /\ exists ff_q_pfp_scale_one_resulttarget. b = ff_q_pfp_scale_one_resulttarget * S ((S (pfp_index_scale_one_result)) * c) + (pfp_value_scale_one_result))) /\ ((((exists pfa_gap_scale_one_resultoperationleft. pfa_gap_scale_one_resultoperationleft + S (1) = (p)) /\ (((exists pfa_gap_scale_one_resultoperationright. pfa_gap_scale_one_resultoperationright + S (pfp_source_scale_one_result) = (p)) /\ ((((exists pfa_gap_scale_one_resultoperationresultbound. pfa_gap_scale_one_resultoperationresultbound + S (pfp_value_scale_one_result) = (p)) /\ ((exists pfa_offset_left_scale_one_resultoperationresultcongruence pfa_offset_right_scale_one_resultoperationresultcongruence. ((1) * (pfp_source_scale_one_result)) + (p) * pfa_offset_left_scale_one_resultoperationresultcongruence = (pfp_value_scale_one_result) + (p) * pfa_offset_right_scale_one_resultoperationresultcongruence)))))))))))))))))
  1. intro p
  2. intro b
  3. intro c
  4. intro l
  5. intro hp
  6. intro hc
  7. split
  8. specialize prime_two_le (p)
  9. apply prime_two_le
  10. exact hp
  11. intro i
  12. intro hi
  13. have ha : exists a. ((((exists ff_h_pfp_scale_one_chosen. ff_h_pfp_scale_one_chosen + S (a) = S ((S (i)) * c)) /\ exists ff_q_pfp_scale_one_chosen. b = ff_q_pfp_scale_one_chosen * S ((S (i)) * c) + (a))) /\ ((exists pfa_gap_scale_one_bound. pfa_gap_scale_one_bound + S (a) = (p))))
  14. specialize hc (i)
  15. apply hc
  16. exact hi
  17. cases ha
  18. cases ha_witness
  19. exists x
  20. exists x
  21. split
  22. exact ha_witness_left
  23. split
  24. exact ha_witness_left
  25. specialize prime_field_multiply_one_left (p)
  26. specialize prime_field_multiply_one_left (x)
  27. apply prime_field_multiply_one_left
  28. exact hp
  29. exact ha_witness_right
prime_field_polynomial_scale_transport · unchanged support, not a new admission
forall p k ab ac bb bc AB AC BB BC l. (forall mdr_i_pfp_scale_transport_source mdr_a_pfp_scale_transport_source. (exists mdr_gap_pfp_scale_transport_sourceb. mdr_gap_pfp_scale_transport_sourceb + S (mdr_i_pfp_scale_transport_source) = (l)) -> (((exists ff_h_mdr_pfp_scale_transport_sourceo. ff_h_mdr_pfp_scale_transport_sourceo + S (mdr_a_pfp_scale_transport_source) = S ((S (mdr_i_pfp_scale_transport_source)) * ac)) /\ exists ff_q_mdr_pfp_scale_transport_sourceo. ab = ff_q_mdr_pfp_scale_transport_sourceo * S ((S (mdr_i_pfp_scale_transport_source)) * ac) + (mdr_a_pfp_scale_transport_source))) -> (((exists ff_h_mdr_pfp_scale_transport_sourcen. ff_h_mdr_pfp_scale_transport_sourcen + S (mdr_a_pfp_scale_transport_source) = S ((S (mdr_i_pfp_scale_transport_source)) * AC)) /\ exists ff_q_mdr_pfp_scale_transport_sourcen. AB = ff_q_mdr_pfp_scale_transport_sourcen * S ((S (mdr_i_pfp_scale_transport_source)) * AC) + (mdr_a_pfp_scale_transport_source)))) -> (forall mdr_i_pfp_scale_transport_target mdr_a_pfp_scale_transport_target. (exists mdr_gap_pfp_scale_transport_targetb. mdr_gap_pfp_scale_transport_targetb + S (mdr_i_pfp_scale_transport_target) = (l)) -> (((exists ff_h_mdr_pfp_scale_transport_targeto. ff_h_mdr_pfp_scale_transport_targeto + S (mdr_a_pfp_scale_transport_target) = S ((S (mdr_i_pfp_scale_transport_target)) * bc)) /\ exists ff_q_mdr_pfp_scale_transport_targeto. bb = ff_q_mdr_pfp_scale_transport_targeto * S ((S (mdr_i_pfp_scale_transport_target)) * bc) + (mdr_a_pfp_scale_transport_target))) -> (((exists ff_h_mdr_pfp_scale_transport_targetn. ff_h_mdr_pfp_scale_transport_targetn + S (mdr_a_pfp_scale_transport_target) = S ((S (mdr_i_pfp_scale_transport_target)) * BC)) /\ exists ff_q_mdr_pfp_scale_transport_targetn. BB = ff_q_mdr_pfp_scale_transport_targetn * S ((S (mdr_i_pfp_scale_transport_target)) * BC) + (mdr_a_pfp_scale_transport_target)))) -> (((exists pfa_gap_scale_transport_oldscalar. pfa_gap_scale_transport_oldscalar + S (k) = (p)) /\ ((forall pfp_index_scale_transport_old. (exists pfa_gap_scale_transport_oldindex. pfa_gap_scale_transport_oldindex + S (pfp_index_scale_transport_old) = (l)) -> exists pfp_source_scale_transport_old pfp_value_scale_transport_old. ((((exists ff_h_pfp_scale_transport_oldsource. ff_h_pfp_scale_transport_oldsource + S (pfp_source_scale_transport_old) = S ((S (pfp_index_scale_transport_old)) * ac)) /\ exists ff_q_pfp_scale_transport_oldsource. ab = ff_q_pfp_scale_transport_oldsource * S ((S (pfp_index_scale_transport_old)) * ac) + (pfp_source_scale_transport_old))) /\ (((((exists ff_h_pfp_scale_transport_oldtarget. ff_h_pfp_scale_transport_oldtarget + S (pfp_value_scale_transport_old) = S ((S (pfp_index_scale_transport_old)) * bc)) /\ exists ff_q_pfp_scale_transport_oldtarget. bb = ff_q_pfp_scale_transport_oldtarget * S ((S (pfp_index_scale_transport_old)) * bc) + (pfp_value_scale_transport_old))) /\ ((((exists pfa_gap_scale_transport_oldoperationleft. pfa_gap_scale_transport_oldoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_transport_oldoperationright. pfa_gap_scale_transport_oldoperationright + S (pfp_source_scale_transport_old) = (p)) /\ ((((exists pfa_gap_scale_transport_oldoperationresultbound. pfa_gap_scale_transport_oldoperationresultbound + S (pfp_value_scale_transport_old) = (p)) /\ ((exists pfa_offset_left_scale_transport_oldoperationresultcongruence pfa_offset_right_scale_transport_oldoperationresultcongruence. ((k) * (pfp_source_scale_transport_old)) + (p) * pfa_offset_left_scale_transport_oldoperationresultcongruence = (pfp_value_scale_transport_old) + (p) * pfa_offset_right_scale_transport_oldoperationresultcongruence))))))))))))))))) -> (((exists pfa_gap_scale_transport_newscalar. pfa_gap_scale_transport_newscalar + S (k) = (p)) /\ ((forall pfp_index_scale_transport_new. (exists pfa_gap_scale_transport_newindex. pfa_gap_scale_transport_newindex + S (pfp_index_scale_transport_new) = (l)) -> exists pfp_source_scale_transport_new pfp_value_scale_transport_new. ((((exists ff_h_pfp_scale_transport_newsource. ff_h_pfp_scale_transport_newsource + S (pfp_source_scale_transport_new) = S ((S (pfp_index_scale_transport_new)) * AC)) /\ exists ff_q_pfp_scale_transport_newsource. AB = ff_q_pfp_scale_transport_newsource * S ((S (pfp_index_scale_transport_new)) * AC) + (pfp_source_scale_transport_new))) /\ (((((exists ff_h_pfp_scale_transport_newtarget. ff_h_pfp_scale_transport_newtarget + S (pfp_value_scale_transport_new) = S ((S (pfp_index_scale_transport_new)) * BC)) /\ exists ff_q_pfp_scale_transport_newtarget. BB = ff_q_pfp_scale_transport_newtarget * S ((S (pfp_index_scale_transport_new)) * BC) + (pfp_value_scale_transport_new))) /\ ((((exists pfa_gap_scale_transport_newoperationleft. pfa_gap_scale_transport_newoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_transport_newoperationright. pfa_gap_scale_transport_newoperationright + S (pfp_source_scale_transport_new) = (p)) /\ ((((exists pfa_gap_scale_transport_newoperationresultbound. pfa_gap_scale_transport_newoperationresultbound + S (pfp_value_scale_transport_new) = (p)) /\ ((exists pfa_offset_left_scale_transport_newoperationresultcongruence pfa_offset_right_scale_transport_newoperationresultcongruence. ((k) * (pfp_source_scale_transport_new)) + (p) * pfa_offset_left_scale_transport_newoperationresultcongruence = (pfp_value_scale_transport_new) + (p) * pfa_offset_right_scale_transport_newoperationresultcongruence)))))))))))))))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro AB
  8. intro AC
  9. intro BB
  10. intro BC
  11. intro l
  12. intro ha
  13. intro hb
  14. intro h
  15. cases h
  16. split
  17. exact h_left
  18. intro i
  19. intro hi
  20. have hv : exists a r. ((((exists ff_h_pfp_scale_transport_a. ff_h_pfp_scale_transport_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_scale_transport_a. ab = ff_q_pfp_scale_transport_a * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_scale_transport_r. ff_h_pfp_scale_transport_r + S (r) = S ((S (i)) * bc)) /\ exists ff_q_pfp_scale_transport_r. bb = ff_q_pfp_scale_transport_r * S ((S (i)) * bc) + (r))) /\ ((((exists pfa_gap_scale_transport_operationleft. pfa_gap_scale_transport_operationleft + S (k) = (p)) /\ (((exists pfa_gap_scale_transport_operationright. pfa_gap_scale_transport_operationright + S (a) = (p)) /\ ((((exists pfa_gap_scale_transport_operationresultbound. pfa_gap_scale_transport_operationresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_scale_transport_operationresultcongruence pfa_offset_right_scale_transport_operationresultcongruence. ((k) * (a)) + (p) * pfa_offset_left_scale_transport_operationresultcongruence = (r) + (p) * pfa_offset_right_scale_transport_operationresultcongruence)))))))))))))
  21. specialize h_right (i)
  22. apply h_right
  23. exact hi
  24. cases hv
  25. cases hv_witness
  26. cases hv_witness_witness
  27. cases hv_witness_witness_right
  28. exists x
  29. exists x1
  30. split
  31. specialize ha (i)
  32. specialize ha (x)
  33. apply ha
  34. exact hi
  35. exact hv_witness_witness_left
  36. split
  37. specialize hb (i)
  38. specialize hb (x1)
  39. apply hb
  40. exact hi
  41. exact hv_witness_witness_right_left
  42. exact hv_witness_witness_right_right
prime_field_polynomial_inverse_scale · unchanged support, not a new admission
forall p a k ab ac bb bc L. (~((p) = 1) /\ forall pfa_factor_left_inverse_scale_prime pfa_factor_right_inverse_scale_prime. (p) = pfa_factor_left_inverse_scale_prime * pfa_factor_right_inverse_scale_prime -> pfa_factor_left_inverse_scale_prime = 1 \/ pfa_factor_right_inverse_scale_prime = 1) -> (((~((a) = 0)) /\ ((((exists pfa_gap_inverse_scale_inversemultiplicationleft. pfa_gap_inverse_scale_inversemultiplicationleft + S (a) = (p)) /\ (((exists pfa_gap_inverse_scale_inversemultiplicationright. pfa_gap_inverse_scale_inversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_inverse_scale_inversemultiplicationresultbound. pfa_gap_inverse_scale_inversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_inverse_scale_inversemultiplicationresultcongruence pfa_offset_right_inverse_scale_inversemultiplicationresultcongruence. ((a) * (k)) + (p) * pfa_offset_left_inverse_scale_inversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_inverse_scale_inversemultiplicationresultcongruence)))))))))))) -> (((exists pfa_gap_inverse_scale_forwardscalar. pfa_gap_inverse_scale_forwardscalar + S (k) = (p)) /\ ((forall pfp_index_inverse_scale_forward. (exists pfa_gap_inverse_scale_forwardindex. pfa_gap_inverse_scale_forwardindex + S (pfp_index_inverse_scale_forward) = (L)) -> exists pfp_source_inverse_scale_forward pfp_value_inverse_scale_forward. ((((exists ff_h_pfp_inverse_scale_forwardsource. ff_h_pfp_inverse_scale_forwardsource + S (pfp_source_inverse_scale_forward) = S ((S (pfp_index_inverse_scale_forward)) * ac)) /\ exists ff_q_pfp_inverse_scale_forwardsource. ab = ff_q_pfp_inverse_scale_forwardsource * S ((S (pfp_index_inverse_scale_forward)) * ac) + (pfp_source_inverse_scale_forward))) /\ (((((exists ff_h_pfp_inverse_scale_forwardtarget. ff_h_pfp_inverse_scale_forwardtarget + S (pfp_value_inverse_scale_forward) = S ((S (pfp_index_inverse_scale_forward)) * bc)) /\ exists ff_q_pfp_inverse_scale_forwardtarget. bb = ff_q_pfp_inverse_scale_forwardtarget * S ((S (pfp_index_inverse_scale_forward)) * bc) + (pfp_value_inverse_scale_forward))) /\ ((((exists pfa_gap_inverse_scale_forwardoperationleft. pfa_gap_inverse_scale_forwardoperationleft + S (k) = (p)) /\ (((exists pfa_gap_inverse_scale_forwardoperationright. pfa_gap_inverse_scale_forwardoperationright + S (pfp_source_inverse_scale_forward) = (p)) /\ ((((exists pfa_gap_inverse_scale_forwardoperationresultbound. pfa_gap_inverse_scale_forwardoperationresultbound + S (pfp_value_inverse_scale_forward) = (p)) /\ ((exists pfa_offset_left_inverse_scale_forwardoperationresultcongruence pfa_offset_right_inverse_scale_forwardoperationresultcongruence. ((k) * (pfp_source_inverse_scale_forward)) + (p) * pfa_offset_left_inverse_scale_forwardoperationresultcongruence = (pfp_value_inverse_scale_forward) + (p) * pfa_offset_right_inverse_scale_forwardoperationresultcongruence))))))))))))))))) -> (((exists pfa_gap_inverse_scale_backwardscalar. pfa_gap_inverse_scale_backwardscalar + S (a) = (p)) /\ ((forall pfp_index_inverse_scale_backward. (exists pfa_gap_inverse_scale_backwardindex. pfa_gap_inverse_scale_backwardindex + S (pfp_index_inverse_scale_backward) = (L)) -> exists pfp_source_inverse_scale_backward pfp_value_inverse_scale_backward. ((((exists ff_h_pfp_inverse_scale_backwardsource. ff_h_pfp_inverse_scale_backwardsource + S (pfp_source_inverse_scale_backward) = S ((S (pfp_index_inverse_scale_backward)) * bc)) /\ exists ff_q_pfp_inverse_scale_backwardsource. bb = ff_q_pfp_inverse_scale_backwardsource * S ((S (pfp_index_inverse_scale_backward)) * bc) + (pfp_source_inverse_scale_backward))) /\ (((((exists ff_h_pfp_inverse_scale_backwardtarget. ff_h_pfp_inverse_scale_backwardtarget + S (pfp_value_inverse_scale_backward) = S ((S (pfp_index_inverse_scale_backward)) * ac)) /\ exists ff_q_pfp_inverse_scale_backwardtarget. ab = ff_q_pfp_inverse_scale_backwardtarget * S ((S (pfp_index_inverse_scale_backward)) * ac) + (pfp_value_inverse_scale_backward))) /\ ((((exists pfa_gap_inverse_scale_backwardoperationleft. pfa_gap_inverse_scale_backwardoperationleft + S (a) = (p)) /\ (((exists pfa_gap_inverse_scale_backwardoperationright. pfa_gap_inverse_scale_backwardoperationright + S (pfp_source_inverse_scale_backward) = (p)) /\ ((((exists pfa_gap_inverse_scale_backwardoperationresultbound. pfa_gap_inverse_scale_backwardoperationresultbound + S (pfp_value_inverse_scale_backward) = (p)) /\ ((exists pfa_offset_left_inverse_scale_backwardoperationresultcongruence pfa_offset_right_inverse_scale_backwardoperationresultcongruence. ((a) * (pfp_source_inverse_scale_backward)) + (p) * pfa_offset_left_inverse_scale_backwardoperationresultcongruence = (pfp_value_inverse_scale_backward) + (p) * pfa_offset_right_inverse_scale_backwardoperationresultcongruence)))))))))))))))))
  1. intro p
  2. intro a
  3. intro k
  4. intro ab
  5. intro ac
  6. intro bb
  7. intro bc
  8. intro L
  9. intro hp
  10. intro hinv
  11. intro hs
  12. have hbound : ((forall fom_index_pfp_inverse_scale_A. (exists fom_gap_pfp_inverse_scale_A_index_bound. fom_gap_pfp_inverse_scale_A_index_bound + S (fom_index_pfp_inverse_scale_A) = L) -> exists fom_value_pfp_inverse_scale_A. ((((exists fom_beta_height_pfp_inverse_scale_A_entry. fom_beta_height_pfp_inverse_scale_A_entry + S (fom_value_pfp_inverse_scale_A) = S ((S (fom_index_pfp_inverse_scale_A)) * ac)) /\ exists fom_beta_quotient_pfp_inverse_scale_A_entry. ab = fom_beta_quotient_pfp_inverse_scale_A_entry * S ((S (fom_index_pfp_inverse_scale_A)) * ac) + (fom_value_pfp_inverse_scale_A))) /\ (exists fom_gap_pfp_inverse_scale_A_value_bound. fom_gap_pfp_inverse_scale_A_value_bound + S (fom_value_pfp_inverse_scale_A) = p))) /\ ((forall fom_index_pfp_inverse_scale_B. (exists fom_gap_pfp_inverse_scale_B_index_bound. fom_gap_pfp_inverse_scale_B_index_bound + S (fom_index_pfp_inverse_scale_B) = L) -> exists fom_value_pfp_inverse_scale_B. ((((exists fom_beta_height_pfp_inverse_scale_B_entry. fom_beta_height_pfp_inverse_scale_B_entry + S (fom_value_pfp_inverse_scale_B) = S ((S (fom_index_pfp_inverse_scale_B)) * bc)) /\ exists fom_beta_quotient_pfp_inverse_scale_B_entry. bb = fom_beta_quotient_pfp_inverse_scale_B_entry * S ((S (fom_index_pfp_inverse_scale_B)) * bc) + (fom_value_pfp_inverse_scale_B))) /\ (exists fom_gap_pfp_inverse_scale_B_value_bound. fom_gap_pfp_inverse_scale_B_value_bound + S (fom_value_pfp_inverse_scale_B) = p)))))
  13. specialize prime_field_polynomial_scale_bounded (p)
  14. specialize prime_field_polynomial_scale_bounded (k)
  15. specialize prime_field_polynomial_scale_bounded (ab)
  16. specialize prime_field_polynomial_scale_bounded (ac)
  17. specialize prime_field_polynomial_scale_bounded (bb)
  18. specialize prime_field_polynomial_scale_bounded (bc)
  19. specialize prime_field_polynomial_scale_bounded (L)
  20. apply prime_field_polynomial_scale_bounded
  21. exact hs
  22. cases hbound
  23. cases hinv
  24. have hm : ((exists pfa_gap_inverse_scale_productleft. pfa_gap_inverse_scale_productleft + S (a) = (p)) /\ (((exists pfa_gap_inverse_scale_productright. pfa_gap_inverse_scale_productright + S (k) = (p)) /\ ((((exists pfa_gap_inverse_scale_productresultbound. pfa_gap_inverse_scale_productresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_inverse_scale_productresultcongruence pfa_offset_right_inverse_scale_productresultcongruence. ((a) * (k)) + (p) * pfa_offset_left_inverse_scale_productresultcongruence = (1) + (p) * pfa_offset_right_inverse_scale_productresultcongruence))))))))
  25. exact hinv_right
  26. cases hinv_right
  27. cases hinv_right_right
  28. cases hinv_right_right_right
  29. have hr : exists cb cc. (((exists pfa_gap_inverse_scale_actualscalar. pfa_gap_inverse_scale_actualscalar + S (a) = (p)) /\ ((forall pfp_index_inverse_scale_actual. (exists pfa_gap_inverse_scale_actualindex. pfa_gap_inverse_scale_actualindex + S (pfp_index_inverse_scale_actual) = (L)) -> exists pfp_source_inverse_scale_actual pfp_value_inverse_scale_actual. ((((exists ff_h_pfp_inverse_scale_actualsource. ff_h_pfp_inverse_scale_actualsource + S (pfp_source_inverse_scale_actual) = S ((S (pfp_index_inverse_scale_actual)) * bc)) /\ exists ff_q_pfp_inverse_scale_actualsource. bb = ff_q_pfp_inverse_scale_actualsource * S ((S (pfp_index_inverse_scale_actual)) * bc) + (pfp_source_inverse_scale_actual))) /\ (((((exists ff_h_pfp_inverse_scale_actualtarget. ff_h_pfp_inverse_scale_actualtarget + S (pfp_value_inverse_scale_actual) = S ((S (pfp_index_inverse_scale_actual)) * cc)) /\ exists ff_q_pfp_inverse_scale_actualtarget. cb = ff_q_pfp_inverse_scale_actualtarget * S ((S (pfp_index_inverse_scale_actual)) * cc) + (pfp_value_inverse_scale_actual))) /\ ((((exists pfa_gap_inverse_scale_actualoperationleft. pfa_gap_inverse_scale_actualoperationleft + S (a) = (p)) /\ (((exists pfa_gap_inverse_scale_actualoperationright. pfa_gap_inverse_scale_actualoperationright + S (pfp_source_inverse_scale_actual) = (p)) /\ ((((exists pfa_gap_inverse_scale_actualoperationresultbound. pfa_gap_inverse_scale_actualoperationresultbound + S (pfp_value_inverse_scale_actual) = (p)) /\ ((exists pfa_offset_left_inverse_scale_actualoperationresultcongruence pfa_offset_right_inverse_scale_actualoperationresultcongruence. ((a) * (pfp_source_inverse_scale_actual)) + (p) * pfa_offset_left_inverse_scale_actualoperationresultcongruence = (pfp_value_inverse_scale_actual) + (p) * pfa_offset_right_inverse_scale_actualoperationresultcongruence)))))))))))))))))
  30. specialize prime_field_polynomial_scale_exists (p)
  31. specialize prime_field_polynomial_scale_exists (a)
  32. specialize prime_field_polynomial_scale_exists (bb)
  33. specialize prime_field_polynomial_scale_exists (bc)
  34. specialize prime_field_polynomial_scale_exists (L)
  35. apply prime_field_polynomial_scale_exists
  36. intro hpzero
  37. specialize prime_nonzero (p)
  38. apply prime_nonzero
  39. exact hp
  40. exact hpzero
  41. exact hinv_right_left
  42. exact hbound_right
  43. cases hr
  44. cases hr_witness
  45. have he : forall mdr_i_pfp_inverse_scale_result_equal mdr_a_pfp_inverse_scale_result_equal. (exists mdr_gap_pfp_inverse_scale_result_equalb. mdr_gap_pfp_inverse_scale_result_equalb + S (mdr_i_pfp_inverse_scale_result_equal) = (L)) -> (((exists ff_h_mdr_pfp_inverse_scale_result_equalo. ff_h_mdr_pfp_inverse_scale_result_equalo + S (mdr_a_pfp_inverse_scale_result_equal) = S ((S (mdr_i_pfp_inverse_scale_result_equal)) * x1)) /\ exists ff_q_mdr_pfp_inverse_scale_result_equalo. x = ff_q_mdr_pfp_inverse_scale_result_equalo * S ((S (mdr_i_pfp_inverse_scale_result_equal)) * x1) + (mdr_a_pfp_inverse_scale_result_equal))) -> (((exists ff_h_mdr_pfp_inverse_scale_result_equaln. ff_h_mdr_pfp_inverse_scale_result_equaln + S (mdr_a_pfp_inverse_scale_result_equal) = S ((S (mdr_i_pfp_inverse_scale_result_equal)) * ac)) /\ exists ff_q_mdr_pfp_inverse_scale_result_equaln. ab = ff_q_mdr_pfp_inverse_scale_result_equaln * S ((S (mdr_i_pfp_inverse_scale_result_equal)) * ac) + (mdr_a_pfp_inverse_scale_result_equal)))
  46. specialize prime_field_polynomial_scale_associative (p)
  47. specialize prime_field_polynomial_scale_associative (a)
  48. specialize prime_field_polynomial_scale_associative (k)
  49. specialize prime_field_polynomial_scale_associative (1)
  50. specialize prime_field_polynomial_scale_associative (ab)
  51. specialize prime_field_polynomial_scale_associative (ac)
  52. specialize prime_field_polynomial_scale_associative (bb)
  53. specialize prime_field_polynomial_scale_associative (bc)
  54. specialize prime_field_polynomial_scale_associative (x)
  55. specialize prime_field_polynomial_scale_associative (x1)
  56. specialize prime_field_polynomial_scale_associative (ab)
  57. specialize prime_field_polynomial_scale_associative (ac)
  58. specialize prime_field_polynomial_scale_associative (L)
  59. apply prime_field_polynomial_scale_associative
  60. exact hm
  61. exact hs
  62. exact hr_witness_witness
  63. specialize prime_field_polynomial_scale_one (p)
  64. specialize prime_field_polynomial_scale_one (ab)
  65. specialize prime_field_polynomial_scale_one (ac)
  66. specialize prime_field_polynomial_scale_one (L)
  67. apply prime_field_polynomial_scale_one
  68. exact hp
  69. exact hbound_left
  70. specialize prime_field_polynomial_scale_transport (p)
  71. specialize prime_field_polynomial_scale_transport (a)
  72. specialize prime_field_polynomial_scale_transport (bb)
  73. specialize prime_field_polynomial_scale_transport (bc)
  74. specialize prime_field_polynomial_scale_transport (x)
  75. specialize prime_field_polynomial_scale_transport (x1)
  76. specialize prime_field_polynomial_scale_transport (bb)
  77. specialize prime_field_polynomial_scale_transport (bc)
  78. specialize prime_field_polynomial_scale_transport (ab)
  79. specialize prime_field_polynomial_scale_transport (ac)
  80. specialize prime_field_polynomial_scale_transport (L)
  81. apply prime_field_polynomial_scale_transport
  82. intro i
  83. intro r
  84. intro hi
  85. intro hat
  86. exact hat
  87. exact he
  88. exact hr_witness_witness
prime_field_polynomial_leading_zero_cut_exists · unchanged support, not a new admission
forall b c L. exists t M. ((((L)=(t)+(M)) /\ (((forall pfp_repeat_index_cut_existszero. (exists pfa_gap_cut_existszeroindex. pfa_gap_cut_existszeroindex + S (pfp_repeat_index_cut_existszero) = (t)) -> (((exists ff_h_pfp_cut_existszeroentry. ff_h_pfp_cut_existszeroentry + S (0) = S ((S (pfp_repeat_index_cut_existszero)) * c)) /\ exists ff_q_pfp_cut_existszeroentry. b = ff_q_pfp_cut_existszeroentry * S ((S (pfp_repeat_index_cut_existszero)) * c) + (0)))) /\ (((M)=0 \/ (((~((M)=0)) /\ ((exists pftrim_leading_cut_existshead. ((((exists ff_h_pfp_cut_existsheadentry. ff_h_pfp_cut_existsheadentry + S (pftrim_leading_cut_existshead) = S ((S (t)) * c)) /\ exists ff_q_pfp_cut_existsheadentry. b = ff_q_pfp_cut_existsheadentry * S ((S (t)) * c) + (pftrim_leading_cut_existshead))) /\ ((~(pftrim_leading_cut_existshead=0))))))))))))))
  1. intro b
  2. intro c
  3. induction L
  4. exists 0
  5. exists 0
  6. split
  7. simp
  8. split
  9. specialize beta_repeat_empty (b)
  10. specialize beta_repeat_empty (c)
  11. specialize beta_repeat_empty (0)
  12. specialize beta_repeat_empty (0)
  13. apply beta_repeat_empty
  14. refl
  15. left
  16. refl
  17. have hold : exists t M. ((((L)=(t)+(M)) /\ (((forall pfp_repeat_index_cut_previouszero. (exists pfa_gap_cut_previouszeroindex. pfa_gap_cut_previouszeroindex + S (pfp_repeat_index_cut_previouszero) = (t)) -> (((exists ff_h_pfp_cut_previouszeroentry. ff_h_pfp_cut_previouszeroentry + S (0) = S ((S (pfp_repeat_index_cut_previouszero)) * c)) /\ exists ff_q_pfp_cut_previouszeroentry. b = ff_q_pfp_cut_previouszeroentry * S ((S (pfp_repeat_index_cut_previouszero)) * c) + (0)))) /\ (((M)=0 \/ (((~((M)=0)) /\ ((exists pftrim_leading_cut_previoushead. ((((exists ff_h_pfp_cut_previousheadentry. ff_h_pfp_cut_previousheadentry + S (pftrim_leading_cut_previoushead) = S ((S (t)) * c)) /\ exists ff_q_pfp_cut_previousheadentry. b = ff_q_pfp_cut_previousheadentry * S ((S (t)) * c) + (pftrim_leading_cut_previoushead))) /\ ((~(pftrim_leading_cut_previoushead=0))))))))))))))
  18. exact IH
  19. cases hold
  20. cases hold_witness
  21. cases hold_witness_witness
  22. cases hold_witness_witness_right
  23. cases hold_witness_witness_right_right
  24. have hlen : L=x
  25. trans x+x1
  26. exact hold_witness_witness_left
  27. rewrite hold_witness_witness_right_right_left
  28. simp
  29. have hzero : forall pfp_repeat_index_cut_zero_old. (exists pfa_gap_cut_zero_oldindex. pfa_gap_cut_zero_oldindex + S (pfp_repeat_index_cut_zero_old) = (L)) -> (((exists ff_h_pfp_cut_zero_oldentry. ff_h_pfp_cut_zero_oldentry + S (0) = S ((S (pfp_repeat_index_cut_zero_old)) * c)) /\ exists ff_q_pfp_cut_zero_oldentry. b = ff_q_pfp_cut_zero_oldentry * S ((S (pfp_repeat_index_cut_zero_old)) * c) + (0)))
  30. rewrite hlen
  31. exact hold_witness_witness_right_left
  32. have ha : exists a. (((exists ff_h_pfp_cut_last. ff_h_pfp_cut_last + S (a) = S ((S (L)) * c)) /\ exists ff_q_pfp_cut_last. b = ff_q_pfp_cut_last * S ((S (L)) * c) + (a)))
  33. specialize beta_at_exists (b)
  34. specialize beta_at_exists (c)
  35. specialize beta_at_exists (L)
  36. apply beta_at_exists
  37. cases ha
  38. have hz : x2=0 \/ ~(x2=0)
  39. specialize eq_decidable (x2)
  40. specialize eq_decidable (0)
  41. apply eq_decidable
  42. cases hz
  43. exists S L
  44. exists 0
  45. split
  46. simp
  47. split
  48. intro i
  49. intro hi
  50. have hindex : i=L \/ (exists pfa_gap_cut_old_index. pfa_gap_cut_old_index + S (i) = (L))
  51. specialize finite_lt_succ_eq_or_lt (L)
  52. specialize finite_lt_succ_eq_or_lt (i)
  53. apply finite_lt_succ_eq_or_lt
  54. exact hi
  55. cases hindex
  56. rewrite hindex_left
  57. rewrite hindex_left
  58. rewrite hz_left at ha_witness
  59. rewrite hz_left at ha_witness
  60. exact ha_witness
  61. specialize hzero (i)
  62. apply hzero
  63. exact hindex_right
  64. left
  65. refl
  66. exists L
  67. exists 1
  68. split
  69. simp
  70. split
  71. exact hzero
  72. right
  73. split
  74. intro hbad
  75. specialize succ_ne_zero (0)
  76. apply succ_ne_zero
  77. exact hbad
  78. exists x2
  79. split
  80. exact ha_witness
  81. exact hz_right
  82. cases hold_witness_witness_right_right_right
  83. exists x
  84. exists S x1
  85. split
  86. trans S (x+x1)
  87. congr
  88. exact hold_witness_witness_left
  89. symm
  90. apply PA4
  91. split
  92. exact hold_witness_witness_right_left
  93. right
  94. split
  95. intro hbad
  96. specialize succ_ne_zero (x1)
  97. apply succ_ne_zero
  98. exact hbad
  99. exact hold_witness_witness_right_right_right_right
prime_field_polynomial_suffix_exists · unchanged support, not a new admission
forall b c t M. exists d e. (forall pftrim_index_suffix_exists pftrim_value_suffix_exists. (exists pfa_gap_suffix_existsbound. pfa_gap_suffix_existsbound + S (pftrim_index_suffix_exists) = (M)) -> (((exists ff_h_pfp_suffix_existssource. ff_h_pfp_suffix_existssource + S (pftrim_value_suffix_exists) = S ((S ((t)+pftrim_index_suffix_exists)) * c)) /\ exists ff_q_pfp_suffix_existssource. b = ff_q_pfp_suffix_existssource * S ((S ((t)+pftrim_index_suffix_exists)) * c) + (pftrim_value_suffix_exists))) -> (((exists ff_h_pfp_suffix_existsoutput. ff_h_pfp_suffix_existsoutput + S (pftrim_value_suffix_exists) = S ((S (pftrim_index_suffix_exists)) * e)) /\ exists ff_q_pfp_suffix_existsoutput. d = ff_q_pfp_suffix_existsoutput * S ((S (pftrim_index_suffix_exists)) * e) + (pftrim_value_suffix_exists))))
  1. intro b
  2. intro c
  3. intro t
  4. intro M
  5. have hs : exists d e. (forall ff_index_mcp_trim_suffix_actual ff_source_mcp_trim_suffix_actual ff_target_mcp_trim_suffix_actual. (exists mcp_gap_trim_suffix_actual_bound. mcp_gap_trim_suffix_actual_bound + S (ff_index_mcp_trim_suffix_actual) = (M)) -> (((exists fs_h_mcp_trim_suffix_actual_source. fs_h_mcp_trim_suffix_actual_source + S (ff_source_mcp_trim_suffix_actual) = S ((S ((t) + (1) * ff_index_mcp_trim_suffix_actual)) * c)) /\ exists fs_q_mcp_trim_suffix_actual_source. b = fs_q_mcp_trim_suffix_actual_source * S ((S ((t) + (1) * ff_index_mcp_trim_suffix_actual)) * c) + (ff_source_mcp_trim_suffix_actual))) -> (((exists fs_h_mcp_trim_suffix_actual_target. fs_h_mcp_trim_suffix_actual_target + S (ff_target_mcp_trim_suffix_actual) = S ((S (ff_index_mcp_trim_suffix_actual)) * e)) /\ exists fs_q_mcp_trim_suffix_actual_target. d = fs_q_mcp_trim_suffix_actual_target * S ((S (ff_index_mcp_trim_suffix_actual)) * e) + (ff_target_mcp_trim_suffix_actual))) -> ff_target_mcp_trim_suffix_actual = ff_source_mcp_trim_suffix_actual)
  6. specialize beta_affine_matrix_slice_exists (b)
  7. specialize beta_affine_matrix_slice_exists (c)
  8. specialize beta_affine_matrix_slice_exists (t)
  9. specialize beta_affine_matrix_slice_exists (1)
  10. specialize beta_affine_matrix_slice_exists (M)
  11. apply beta_affine_matrix_slice_exists
  12. cases hs
  13. cases hs_witness
  14. exists x
  15. exists x1
  16. intro i
  17. intro a
  18. intro hi
  19. intro ha
  20. have hz : exists z. (((exists ff_h_pfp_suffix_output. ff_h_pfp_suffix_output + S (z) = S ((S (i)) * x1)) /\ exists ff_q_pfp_suffix_output. x = ff_q_pfp_suffix_output * S ((S (i)) * x1) + (z)))
  21. specialize beta_at_exists (x)
  22. specialize beta_at_exists (x1)
  23. specialize beta_at_exists (i)
  24. apply beta_at_exists
  25. cases hz
  26. have heq : x2=a
  27. specialize hs_witness_witness (i)
  28. specialize hs_witness_witness (a)
  29. specialize hs_witness_witness (x2)
  30. apply hs_witness_witness
  31. exact hi
  32. have hindex : t+1*i=t+i
  33. simp [one_mul]
  34. rewrite hindex
  35. rewrite hindex
  36. exact ha
  37. exact hz_witness
  38. rewrite heq at hz_witness
  39. rewrite heq at hz_witness
  40. exact hz_witness
prime_field_polynomial_trim_from_cut · unchanged support, not a new admission
forall p b c L t d e M. (forall fom_index_pfp_cut_to_trim_coefficients. (exists fom_gap_pfp_cut_to_trim_coefficients_index_bound. fom_gap_pfp_cut_to_trim_coefficients_index_bound + S (fom_index_pfp_cut_to_trim_coefficients) = L) -> exists fom_value_pfp_cut_to_trim_coefficients. ((((exists fom_beta_height_pfp_cut_to_trim_coefficients_entry. fom_beta_height_pfp_cut_to_trim_coefficients_entry + S (fom_value_pfp_cut_to_trim_coefficients) = S ((S (fom_index_pfp_cut_to_trim_coefficients)) * c)) /\ exists fom_beta_quotient_pfp_cut_to_trim_coefficients_entry. b = fom_beta_quotient_pfp_cut_to_trim_coefficients_entry * S ((S (fom_index_pfp_cut_to_trim_coefficients)) * c) + (fom_value_pfp_cut_to_trim_coefficients))) /\ (exists fom_gap_pfp_cut_to_trim_coefficients_value_bound. fom_gap_pfp_cut_to_trim_coefficients_value_bound + S (fom_value_pfp_cut_to_trim_coefficients) = p))) -> ((((L)=(t)+(M)) /\ (((forall pfp_repeat_index_cut_to_trim_sourcezero. (exists pfa_gap_cut_to_trim_sourcezeroindex. pfa_gap_cut_to_trim_sourcezeroindex + S (pfp_repeat_index_cut_to_trim_sourcezero) = (t)) -> (((exists ff_h_pfp_cut_to_trim_sourcezeroentry. ff_h_pfp_cut_to_trim_sourcezeroentry + S (0) = S ((S (pfp_repeat_index_cut_to_trim_sourcezero)) * c)) /\ exists ff_q_pfp_cut_to_trim_sourcezeroentry. b = ff_q_pfp_cut_to_trim_sourcezeroentry * S ((S (pfp_repeat_index_cut_to_trim_sourcezero)) * c) + (0)))) /\ (((M)=0 \/ (((~((M)=0)) /\ ((exists pftrim_leading_cut_to_trim_sourcehead. ((((exists ff_h_pfp_cut_to_trim_sourceheadentry. ff_h_pfp_cut_to_trim_sourceheadentry + S (pftrim_leading_cut_to_trim_sourcehead) = S ((S (t)) * c)) /\ exists ff_q_pfp_cut_to_trim_sourceheadentry. b = ff_q_pfp_cut_to_trim_sourceheadentry * S ((S (t)) * c) + (pftrim_leading_cut_to_trim_sourcehead))) /\ ((~(pftrim_leading_cut_to_trim_sourcehead=0)))))))))))))) -> (forall pftrim_index_cut_to_trim_suffix pftrim_value_cut_to_trim_suffix. (exists pfa_gap_cut_to_trim_suffixbound. pfa_gap_cut_to_trim_suffixbound + S (pftrim_index_cut_to_trim_suffix) = (M)) -> (((exists ff_h_pfp_cut_to_trim_suffixsource. ff_h_pfp_cut_to_trim_suffixsource + S (pftrim_value_cut_to_trim_suffix) = S ((S ((t)+pftrim_index_cut_to_trim_suffix)) * c)) /\ exists ff_q_pfp_cut_to_trim_suffixsource. b = ff_q_pfp_cut_to_trim_suffixsource * S ((S ((t)+pftrim_index_cut_to_trim_suffix)) * c) + (pftrim_value_cut_to_trim_suffix))) -> (((exists ff_h_pfp_cut_to_trim_suffixoutput. ff_h_pfp_cut_to_trim_suffixoutput + S (pftrim_value_cut_to_trim_suffix) = S ((S (pftrim_index_cut_to_trim_suffix)) * e)) /\ exists ff_q_pfp_cut_to_trim_suffixoutput. d = ff_q_pfp_cut_to_trim_suffixoutput * S ((S (pftrim_index_cut_to_trim_suffix)) * e) + (pftrim_value_cut_to_trim_suffix)))) -> ((((L)=(t)+(M)) /\ (((forall fom_index_pfp_cut_to_trim_resultinput. (exists fom_gap_pfp_cut_to_trim_resultinput_index_bound. fom_gap_pfp_cut_to_trim_resultinput_index_bound + S (fom_index_pfp_cut_to_trim_resultinput) = L) -> exists fom_value_pfp_cut_to_trim_resultinput. ((((exists fom_beta_height_pfp_cut_to_trim_resultinput_entry. fom_beta_height_pfp_cut_to_trim_resultinput_entry + S (fom_value_pfp_cut_to_trim_resultinput) = S ((S (fom_index_pfp_cut_to_trim_resultinput)) * c)) /\ exists fom_beta_quotient_pfp_cut_to_trim_resultinput_entry. b = fom_beta_quotient_pfp_cut_to_trim_resultinput_entry * S ((S (fom_index_pfp_cut_to_trim_resultinput)) * c) + (fom_value_pfp_cut_to_trim_resultinput))) /\ (exists fom_gap_pfp_cut_to_trim_resultinput_value_bound. fom_gap_pfp_cut_to_trim_resultinput_value_bound + S (fom_value_pfp_cut_to_trim_resultinput) = p))) /\ (((forall pfp_repeat_index_cut_to_trim_resultremoved. (exists pfa_gap_cut_to_trim_resultremovedindex. pfa_gap_cut_to_trim_resultremovedindex + S (pfp_repeat_index_cut_to_trim_resultremoved) = (t)) -> (((exists ff_h_pfp_cut_to_trim_resultremovedentry. ff_h_pfp_cut_to_trim_resultremovedentry + S (0) = S ((S (pfp_repeat_index_cut_to_trim_resultremoved)) * c)) /\ exists ff_q_pfp_cut_to_trim_resultremovedentry. b = ff_q_pfp_cut_to_trim_resultremovedentry * S ((S (pfp_repeat_index_cut_to_trim_resultremoved)) * c) + (0)))) /\ (((forall pftrim_index_cut_to_trim_resultsuffix pftrim_value_cut_to_trim_resultsuffix. (exists pfa_gap_cut_to_trim_resultsuffixbound. pfa_gap_cut_to_trim_resultsuffixbound + S (pftrim_index_cut_to_trim_resultsuffix) = (M)) -> (((exists ff_h_pfp_cut_to_trim_resultsuffixsource. ff_h_pfp_cut_to_trim_resultsuffixsource + S (pftrim_value_cut_to_trim_resultsuffix) = S ((S ((t)+pftrim_index_cut_to_trim_resultsuffix)) * c)) /\ exists ff_q_pfp_cut_to_trim_resultsuffixsource. b = ff_q_pfp_cut_to_trim_resultsuffixsource * S ((S ((t)+pftrim_index_cut_to_trim_resultsuffix)) * c) + (pftrim_value_cut_to_trim_resultsuffix))) -> (((exists ff_h_pfp_cut_to_trim_resultsuffixoutput. ff_h_pfp_cut_to_trim_resultsuffixoutput + S (pftrim_value_cut_to_trim_resultsuffix) = S ((S (pftrim_index_cut_to_trim_resultsuffix)) * e)) /\ exists ff_q_pfp_cut_to_trim_resultsuffixoutput. d = ff_q_pfp_cut_to_trim_resultsuffixoutput * S ((S (pftrim_index_cut_to_trim_resultsuffix)) * e) + (pftrim_value_cut_to_trim_resultsuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_cut_to_trim_resultnormal. ((((exists ff_h_pfp_cut_to_trim_resultnormalentry. ff_h_pfp_cut_to_trim_resultnormalentry + S (pftrim_leading_cut_to_trim_resultnormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_cut_to_trim_resultnormalentry. d = ff_q_pfp_cut_to_trim_resultnormalentry * S ((S (0)) * e) + (pftrim_leading_cut_to_trim_resultnormal))) /\ ((~(pftrim_leading_cut_to_trim_resultnormal=0)))))))))))))))
  1. intro p
  2. intro b
  3. intro c
  4. intro L
  5. intro t
  6. intro d
  7. intro e
  8. intro M
  9. intro hc
  10. intro hcut
  11. intro hs
  12. cases hcut
  13. cases hcut_right
  14. split
  15. exact hcut_left
  16. split
  17. exact hc
  18. split
  19. exact hcut_right_left
  20. split
  21. exact hs
  22. cases hcut_right_right
  23. left
  24. exact hcut_right_right_left
  25. right
  26. cases hcut_right_right_right
  27. cases hcut_right_right_right_right
  28. cases hcut_right_right_right_right_witness
  29. exists x
  30. split
  31. specialize hs (0)
  32. specialize hs (x)
  33. apply hs
  34. specialize one_le_of_ne_zero (M)
  35. apply one_le_of_ne_zero
  36. exact hcut_right_right_right_left
  37. have hindex : t+0=t
  38. simp
  39. rewrite hindex
  40. rewrite hindex
  41. exact hcut_right_right_right_right_witness_left
  42. exact hcut_right_right_right_right_witness_right
prime_field_polynomial_trim_exists · unchanged support, not a new admission
forall p b c L. (forall fom_index_pfp_trim_exists_source. (exists fom_gap_pfp_trim_exists_source_index_bound. fom_gap_pfp_trim_exists_source_index_bound + S (fom_index_pfp_trim_exists_source) = L) -> exists fom_value_pfp_trim_exists_source. ((((exists fom_beta_height_pfp_trim_exists_source_entry. fom_beta_height_pfp_trim_exists_source_entry + S (fom_value_pfp_trim_exists_source) = S ((S (fom_index_pfp_trim_exists_source)) * c)) /\ exists fom_beta_quotient_pfp_trim_exists_source_entry. b = fom_beta_quotient_pfp_trim_exists_source_entry * S ((S (fom_index_pfp_trim_exists_source)) * c) + (fom_value_pfp_trim_exists_source))) /\ (exists fom_gap_pfp_trim_exists_source_value_bound. fom_gap_pfp_trim_exists_source_value_bound + S (fom_value_pfp_trim_exists_source) = p))) -> exists t d e M. ((((L)=(t)+(M)) /\ (((forall fom_index_pfp_trim_exists_resultinput. (exists fom_gap_pfp_trim_exists_resultinput_index_bound. fom_gap_pfp_trim_exists_resultinput_index_bound + S (fom_index_pfp_trim_exists_resultinput) = L) -> exists fom_value_pfp_trim_exists_resultinput. ((((exists fom_beta_height_pfp_trim_exists_resultinput_entry. fom_beta_height_pfp_trim_exists_resultinput_entry + S (fom_value_pfp_trim_exists_resultinput) = S ((S (fom_index_pfp_trim_exists_resultinput)) * c)) /\ exists fom_beta_quotient_pfp_trim_exists_resultinput_entry. b = fom_beta_quotient_pfp_trim_exists_resultinput_entry * S ((S (fom_index_pfp_trim_exists_resultinput)) * c) + (fom_value_pfp_trim_exists_resultinput))) /\ (exists fom_gap_pfp_trim_exists_resultinput_value_bound. fom_gap_pfp_trim_exists_resultinput_value_bound + S (fom_value_pfp_trim_exists_resultinput) = p))) /\ (((forall pfp_repeat_index_trim_exists_resultremoved. (exists pfa_gap_trim_exists_resultremovedindex. pfa_gap_trim_exists_resultremovedindex + S (pfp_repeat_index_trim_exists_resultremoved) = (t)) -> (((exists ff_h_pfp_trim_exists_resultremovedentry. ff_h_pfp_trim_exists_resultremovedentry + S (0) = S ((S (pfp_repeat_index_trim_exists_resultremoved)) * c)) /\ exists ff_q_pfp_trim_exists_resultremovedentry. b = ff_q_pfp_trim_exists_resultremovedentry * S ((S (pfp_repeat_index_trim_exists_resultremoved)) * c) + (0)))) /\ (((forall pftrim_index_trim_exists_resultsuffix pftrim_value_trim_exists_resultsuffix. (exists pfa_gap_trim_exists_resultsuffixbound. pfa_gap_trim_exists_resultsuffixbound + S (pftrim_index_trim_exists_resultsuffix) = (M)) -> (((exists ff_h_pfp_trim_exists_resultsuffixsource. ff_h_pfp_trim_exists_resultsuffixsource + S (pftrim_value_trim_exists_resultsuffix) = S ((S ((t)+pftrim_index_trim_exists_resultsuffix)) * c)) /\ exists ff_q_pfp_trim_exists_resultsuffixsource. b = ff_q_pfp_trim_exists_resultsuffixsource * S ((S ((t)+pftrim_index_trim_exists_resultsuffix)) * c) + (pftrim_value_trim_exists_resultsuffix))) -> (((exists ff_h_pfp_trim_exists_resultsuffixoutput. ff_h_pfp_trim_exists_resultsuffixoutput + S (pftrim_value_trim_exists_resultsuffix) = S ((S (pftrim_index_trim_exists_resultsuffix)) * e)) /\ exists ff_q_pfp_trim_exists_resultsuffixoutput. d = ff_q_pfp_trim_exists_resultsuffixoutput * S ((S (pftrim_index_trim_exists_resultsuffix)) * e) + (pftrim_value_trim_exists_resultsuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_trim_exists_resultnormal. ((((exists ff_h_pfp_trim_exists_resultnormalentry. ff_h_pfp_trim_exists_resultnormalentry + S (pftrim_leading_trim_exists_resultnormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_trim_exists_resultnormalentry. d = ff_q_pfp_trim_exists_resultnormalentry * S ((S (0)) * e) + (pftrim_leading_trim_exists_resultnormal))) /\ ((~(pftrim_leading_trim_exists_resultnormal=0)))))))))))))))
  1. intro p
  2. intro b
  3. intro c
  4. intro L
  5. intro hc
  6. have hcut : exists t M. ((((L)=(t)+(M)) /\ (((forall pfp_repeat_index_trim_exists_cutzero. (exists pfa_gap_trim_exists_cutzeroindex. pfa_gap_trim_exists_cutzeroindex + S (pfp_repeat_index_trim_exists_cutzero) = (t)) -> (((exists ff_h_pfp_trim_exists_cutzeroentry. ff_h_pfp_trim_exists_cutzeroentry + S (0) = S ((S (pfp_repeat_index_trim_exists_cutzero)) * c)) /\ exists ff_q_pfp_trim_exists_cutzeroentry. b = ff_q_pfp_trim_exists_cutzeroentry * S ((S (pfp_repeat_index_trim_exists_cutzero)) * c) + (0)))) /\ (((M)=0 \/ (((~((M)=0)) /\ ((exists pftrim_leading_trim_exists_cuthead. ((((exists ff_h_pfp_trim_exists_cutheadentry. ff_h_pfp_trim_exists_cutheadentry + S (pftrim_leading_trim_exists_cuthead) = S ((S (t)) * c)) /\ exists ff_q_pfp_trim_exists_cutheadentry. b = ff_q_pfp_trim_exists_cutheadentry * S ((S (t)) * c) + (pftrim_leading_trim_exists_cuthead))) /\ ((~(pftrim_leading_trim_exists_cuthead=0))))))))))))))
  7. specialize prime_field_polynomial_leading_zero_cut_exists (b)
  8. specialize prime_field_polynomial_leading_zero_cut_exists (c)
  9. specialize prime_field_polynomial_leading_zero_cut_exists (L)
  10. apply prime_field_polynomial_leading_zero_cut_exists
  11. cases hcut
  12. cases hcut_witness
  13. have hs : exists d e. (forall pftrim_index_trim_exists_suffix pftrim_value_trim_exists_suffix. (exists pfa_gap_trim_exists_suffixbound. pfa_gap_trim_exists_suffixbound + S (pftrim_index_trim_exists_suffix) = (x1)) -> (((exists ff_h_pfp_trim_exists_suffixsource. ff_h_pfp_trim_exists_suffixsource + S (pftrim_value_trim_exists_suffix) = S ((S ((x)+pftrim_index_trim_exists_suffix)) * c)) /\ exists ff_q_pfp_trim_exists_suffixsource. b = ff_q_pfp_trim_exists_suffixsource * S ((S ((x)+pftrim_index_trim_exists_suffix)) * c) + (pftrim_value_trim_exists_suffix))) -> (((exists ff_h_pfp_trim_exists_suffixoutput. ff_h_pfp_trim_exists_suffixoutput + S (pftrim_value_trim_exists_suffix) = S ((S (pftrim_index_trim_exists_suffix)) * e)) /\ exists ff_q_pfp_trim_exists_suffixoutput. d = ff_q_pfp_trim_exists_suffixoutput * S ((S (pftrim_index_trim_exists_suffix)) * e) + (pftrim_value_trim_exists_suffix))))
  14. specialize prime_field_polynomial_suffix_exists (b)
  15. specialize prime_field_polynomial_suffix_exists (c)
  16. specialize prime_field_polynomial_suffix_exists (x)
  17. specialize prime_field_polynomial_suffix_exists (x1)
  18. apply prime_field_polynomial_suffix_exists
  19. cases hs
  20. cases hs_witness
  21. exists x
  22. exists x2
  23. exists x3
  24. exists x1
  25. specialize prime_field_polynomial_trim_from_cut (p)
  26. specialize prime_field_polynomial_trim_from_cut (b)
  27. specialize prime_field_polynomial_trim_from_cut (c)
  28. specialize prime_field_polynomial_trim_from_cut (L)
  29. specialize prime_field_polynomial_trim_from_cut (x)
  30. specialize prime_field_polynomial_trim_from_cut (x2)
  31. specialize prime_field_polynomial_trim_from_cut (x3)
  32. specialize prime_field_polynomial_trim_from_cut (x1)
  33. apply prime_field_polynomial_trim_from_cut
  34. exact hc
  35. exact hcut_witness_witness
  36. exact hs_witness_witness
prime_field_polynomial_trim_nonempty_degree_exists · unchanged support, not a new admission
forall p b c L t d e M. ((((L)=(t)+(M)) /\ (((forall fom_index_pfp_trim_nonempty_inputinput. (exists fom_gap_pfp_trim_nonempty_inputinput_index_bound. fom_gap_pfp_trim_nonempty_inputinput_index_bound + S (fom_index_pfp_trim_nonempty_inputinput) = L) -> exists fom_value_pfp_trim_nonempty_inputinput. ((((exists fom_beta_height_pfp_trim_nonempty_inputinput_entry. fom_beta_height_pfp_trim_nonempty_inputinput_entry + S (fom_value_pfp_trim_nonempty_inputinput) = S ((S (fom_index_pfp_trim_nonempty_inputinput)) * c)) /\ exists fom_beta_quotient_pfp_trim_nonempty_inputinput_entry. b = fom_beta_quotient_pfp_trim_nonempty_inputinput_entry * S ((S (fom_index_pfp_trim_nonempty_inputinput)) * c) + (fom_value_pfp_trim_nonempty_inputinput))) /\ (exists fom_gap_pfp_trim_nonempty_inputinput_value_bound. fom_gap_pfp_trim_nonempty_inputinput_value_bound + S (fom_value_pfp_trim_nonempty_inputinput) = p))) /\ (((forall pfp_repeat_index_trim_nonempty_inputremoved. (exists pfa_gap_trim_nonempty_inputremovedindex. pfa_gap_trim_nonempty_inputremovedindex + S (pfp_repeat_index_trim_nonempty_inputremoved) = (t)) -> (((exists ff_h_pfp_trim_nonempty_inputremovedentry. ff_h_pfp_trim_nonempty_inputremovedentry + S (0) = S ((S (pfp_repeat_index_trim_nonempty_inputremoved)) * c)) /\ exists ff_q_pfp_trim_nonempty_inputremovedentry. b = ff_q_pfp_trim_nonempty_inputremovedentry * S ((S (pfp_repeat_index_trim_nonempty_inputremoved)) * c) + (0)))) /\ (((forall pftrim_index_trim_nonempty_inputsuffix pftrim_value_trim_nonempty_inputsuffix. (exists pfa_gap_trim_nonempty_inputsuffixbound. pfa_gap_trim_nonempty_inputsuffixbound + S (pftrim_index_trim_nonempty_inputsuffix) = (M)) -> (((exists ff_h_pfp_trim_nonempty_inputsuffixsource. ff_h_pfp_trim_nonempty_inputsuffixsource + S (pftrim_value_trim_nonempty_inputsuffix) = S ((S ((t)+pftrim_index_trim_nonempty_inputsuffix)) * c)) /\ exists ff_q_pfp_trim_nonempty_inputsuffixsource. b = ff_q_pfp_trim_nonempty_inputsuffixsource * S ((S ((t)+pftrim_index_trim_nonempty_inputsuffix)) * c) + (pftrim_value_trim_nonempty_inputsuffix))) -> (((exists ff_h_pfp_trim_nonempty_inputsuffixoutput. ff_h_pfp_trim_nonempty_inputsuffixoutput + S (pftrim_value_trim_nonempty_inputsuffix) = S ((S (pftrim_index_trim_nonempty_inputsuffix)) * e)) /\ exists ff_q_pfp_trim_nonempty_inputsuffixoutput. d = ff_q_pfp_trim_nonempty_inputsuffixoutput * S ((S (pftrim_index_trim_nonempty_inputsuffix)) * e) + (pftrim_value_trim_nonempty_inputsuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_trim_nonempty_inputnormal. ((((exists ff_h_pfp_trim_nonempty_inputnormalentry. ff_h_pfp_trim_nonempty_inputnormalentry + S (pftrim_leading_trim_nonempty_inputnormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_trim_nonempty_inputnormalentry. d = ff_q_pfp_trim_nonempty_inputnormalentry * S ((S (0)) * e) + (pftrim_leading_trim_nonempty_inputnormal))) /\ ((~(pftrim_leading_trim_nonempty_inputnormal=0))))))))))))))) -> ~(M=0) -> exists q. ((((M)=S (q)) /\ (((forall fom_index_pfp_trim_nonempty_degreecoefficients. (exists fom_gap_pfp_trim_nonempty_degreecoefficients_index_bound. fom_gap_pfp_trim_nonempty_degreecoefficients_index_bound + S (fom_index_pfp_trim_nonempty_degreecoefficients) = M) -> exists fom_value_pfp_trim_nonempty_degreecoefficients. ((((exists fom_beta_height_pfp_trim_nonempty_degreecoefficients_entry. fom_beta_height_pfp_trim_nonempty_degreecoefficients_entry + S (fom_value_pfp_trim_nonempty_degreecoefficients) = S ((S (fom_index_pfp_trim_nonempty_degreecoefficients)) * e)) /\ exists fom_beta_quotient_pfp_trim_nonempty_degreecoefficients_entry. d = fom_beta_quotient_pfp_trim_nonempty_degreecoefficients_entry * S ((S (fom_index_pfp_trim_nonempty_degreecoefficients)) * e) + (fom_value_pfp_trim_nonempty_degreecoefficients))) /\ (exists fom_gap_pfp_trim_nonempty_degreecoefficients_value_bound. fom_gap_pfp_trim_nonempty_degreecoefficients_value_bound + S (fom_value_pfp_trim_nonempty_degreecoefficients) = p))) /\ ((exists pfd_leading_trim_nonempty_degree. ((((exists ff_h_pfp_trim_nonempty_degreeentry. ff_h_pfp_trim_nonempty_degreeentry + S (pfd_leading_trim_nonempty_degree) = S ((S (0)) * e)) /\ exists ff_q_pfp_trim_nonempty_degreeentry. d = ff_q_pfp_trim_nonempty_degreeentry * S ((S (0)) * e) + (pfd_leading_trim_nonempty_degree))) /\ ((~(pfd_leading_trim_nonempty_degree=0))))))))))
  1. intro p
  2. intro b
  3. intro c
  4. intro L
  5. intro t
  6. intro d
  7. intro e
  8. intro M
  9. intro h
  10. intro hM
  11. have hq : exists q. M=S q
  12. specialize nonzero_is_succ (M)
  13. apply nonzero_is_succ
  14. exact hM
  15. cases hq
  16. exists x
  17. specialize prime_field_polynomial_trim_represented_degree (p)
  18. specialize prime_field_polynomial_trim_represented_degree (b)
  19. specialize prime_field_polynomial_trim_represented_degree (c)
  20. specialize prime_field_polynomial_trim_represented_degree (L)
  21. specialize prime_field_polynomial_trim_represented_degree (t)
  22. specialize prime_field_polynomial_trim_represented_degree (d)
  23. specialize prime_field_polynomial_trim_represented_degree (e)
  24. specialize prime_field_polynomial_trim_represented_degree (M)
  25. specialize prime_field_polynomial_trim_represented_degree (x)
  26. apply prime_field_polynomial_trim_represented_degree
  27. exact h
  28. exact hq_witness
prime_field_inverse_exists · unchanged support, not a new admission
forall p a. (~((p) = 1) /\ forall pfa_factor_left_inverse_domain pfa_factor_right_inverse_domain. (p) = pfa_factor_left_inverse_domain * pfa_factor_right_inverse_domain -> pfa_factor_left_inverse_domain = 1 \/ pfa_factor_right_inverse_domain = 1) -> (exists pfa_gap_inverse_input. pfa_gap_inverse_input + S (a) = (p)) -> ~(a = 0) -> exists b. (((~((a) = 0)) /\ ((((exists pfa_gap_inverse_existsmultiplicationleft. pfa_gap_inverse_existsmultiplicationleft + S (a) = (p)) /\ (((exists pfa_gap_inverse_existsmultiplicationright. pfa_gap_inverse_existsmultiplicationright + S (b) = (p)) /\ ((((exists pfa_gap_inverse_existsmultiplicationresultbound. pfa_gap_inverse_existsmultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_inverse_existsmultiplicationresultcongruence pfa_offset_right_inverse_existsmultiplicationresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_inverse_existsmultiplicationresultcongruence = (1) + (p) * pfa_offset_right_inverse_existsmultiplicationresultcongruence))))))))))))
  1. intro p
  2. intro a
  3. intro hp
  4. intro ha
  5. intro hn
  6. have hi : exists b. ~(b = 0) /\ ((exists pfa_gap_inverse_bound. pfa_gap_inverse_bound + S (b) = (p)) /\ (exists pfa_offset_left_inverse_mod pfa_offset_right_inverse_mod. (a*b) + (p) * pfa_offset_left_inverse_mod = (1) + (p) * pfa_offset_right_inverse_mod))
  7. specialize prime_bounded_nonzero_mod_inverse (p)
  8. specialize prime_bounded_nonzero_mod_inverse (a)
  9. apply prime_bounded_nonzero_mod_inverse
  10. exact hp
  11. exact hn
  12. exact ha
  13. cases hi
  14. cases hi_witness
  15. cases hi_witness_right
  16. exists x
  17. split
  18. exact hn
  19. split
  20. exact ha
  21. split
  22. exact hi_witness_right_left
  23. split
  24. specialize prime_two_le (p)
  25. apply prime_two_le
  26. exact hp
  27. exact hi_witness_right_right
prime_field_polynomial_monic_normalization_exists · unchanged support, not a new admission
forall p ab ac L d. (~((p) = 1) /\ forall pfa_factor_left_normalization_exists_prime pfa_factor_right_normalization_exists_prime. (p) = pfa_factor_left_normalization_exists_prime * pfa_factor_right_normalization_exists_prime -> pfa_factor_left_normalization_exists_prime = 1 \/ pfa_factor_right_normalization_exists_prime = 1) -> ((((L)=S (d)) /\ (((forall fom_index_pfp_normalization_exists_inputcoefficients. (exists fom_gap_pfp_normalization_exists_inputcoefficients_index_bound. fom_gap_pfp_normalization_exists_inputcoefficients_index_bound + S (fom_index_pfp_normalization_exists_inputcoefficients) = L) -> exists fom_value_pfp_normalization_exists_inputcoefficients. ((((exists fom_beta_height_pfp_normalization_exists_inputcoefficients_entry. fom_beta_height_pfp_normalization_exists_inputcoefficients_entry + S (fom_value_pfp_normalization_exists_inputcoefficients) = S ((S (fom_index_pfp_normalization_exists_inputcoefficients)) * ac)) /\ exists fom_beta_quotient_pfp_normalization_exists_inputcoefficients_entry. ab = fom_beta_quotient_pfp_normalization_exists_inputcoefficients_entry * S ((S (fom_index_pfp_normalization_exists_inputcoefficients)) * ac) + (fom_value_pfp_normalization_exists_inputcoefficients))) /\ (exists fom_gap_pfp_normalization_exists_inputcoefficients_value_bound. fom_gap_pfp_normalization_exists_inputcoefficients_value_bound + S (fom_value_pfp_normalization_exists_inputcoefficients) = p))) /\ ((exists pfd_leading_normalization_exists_input. ((((exists ff_h_pfp_normalization_exists_inputentry. ff_h_pfp_normalization_exists_inputentry + S (pfd_leading_normalization_exists_input) = S ((S (0)) * ac)) /\ exists ff_q_pfp_normalization_exists_inputentry. ab = ff_q_pfp_normalization_exists_inputentry * S ((S (0)) * ac) + (pfd_leading_normalization_exists_input))) /\ ((~(pfd_leading_normalization_exists_input=0)))))))))) -> exists k bb bc. (((~((L) = 0)) /\ (((exists pfm_leading_normalization_exists_result. ((((exists ff_h_pfp_normalization_exists_resultsource. ff_h_pfp_normalization_exists_resultsource + S (pfm_leading_normalization_exists_result) = S ((S (0)) * ac)) /\ exists ff_q_pfp_normalization_exists_resultsource. ab = ff_q_pfp_normalization_exists_resultsource * S ((S (0)) * ac) + (pfm_leading_normalization_exists_result))) /\ ((((~((pfm_leading_normalization_exists_result) = 0)) /\ ((((exists pfa_gap_normalization_exists_resultinversemultiplicationleft. pfa_gap_normalization_exists_resultinversemultiplicationleft + S (pfm_leading_normalization_exists_result) = (p)) /\ (((exists pfa_gap_normalization_exists_resultinversemultiplicationright. pfa_gap_normalization_exists_resultinversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_normalization_exists_resultinversemultiplicationresultbound. pfa_gap_normalization_exists_resultinversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_normalization_exists_resultinversemultiplicationresultcongruence pfa_offset_right_normalization_exists_resultinversemultiplicationresultcongruence. ((pfm_leading_normalization_exists_result) * (k)) + (p) * pfa_offset_left_normalization_exists_resultinversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_normalization_exists_resultinversemultiplicationresultcongruence))))))))))))))) /\ ((((exists pfa_gap_normalization_exists_resultscalescalar. pfa_gap_normalization_exists_resultscalescalar + S (k) = (p)) /\ ((forall pfp_index_normalization_exists_resultscale. (exists pfa_gap_normalization_exists_resultscaleindex. pfa_gap_normalization_exists_resultscaleindex + S (pfp_index_normalization_exists_resultscale) = (L)) -> exists pfp_source_normalization_exists_resultscale pfp_value_normalization_exists_resultscale. ((((exists ff_h_pfp_normalization_exists_resultscalesource. ff_h_pfp_normalization_exists_resultscalesource + S (pfp_source_normalization_exists_resultscale) = S ((S (pfp_index_normalization_exists_resultscale)) * ac)) /\ exists ff_q_pfp_normalization_exists_resultscalesource. ab = ff_q_pfp_normalization_exists_resultscalesource * S ((S (pfp_index_normalization_exists_resultscale)) * ac) + (pfp_source_normalization_exists_resultscale))) /\ (((((exists ff_h_pfp_normalization_exists_resultscaletarget. ff_h_pfp_normalization_exists_resultscaletarget + S (pfp_value_normalization_exists_resultscale) = S ((S (pfp_index_normalization_exists_resultscale)) * bc)) /\ exists ff_q_pfp_normalization_exists_resultscaletarget. bb = ff_q_pfp_normalization_exists_resultscaletarget * S ((S (pfp_index_normalization_exists_resultscale)) * bc) + (pfp_value_normalization_exists_resultscale))) /\ ((((exists pfa_gap_normalization_exists_resultscaleoperationleft. pfa_gap_normalization_exists_resultscaleoperationleft + S (k) = (p)) /\ (((exists pfa_gap_normalization_exists_resultscaleoperationright. pfa_gap_normalization_exists_resultscaleoperationright + S (pfp_source_normalization_exists_resultscale) = (p)) /\ ((((exists pfa_gap_normalization_exists_resultscaleoperationresultbound. pfa_gap_normalization_exists_resultscaleoperationresultbound + S (pfp_value_normalization_exists_resultscale) = (p)) /\ ((exists pfa_offset_left_normalization_exists_resultscaleoperationresultcongruence pfa_offset_right_normalization_exists_resultscaleoperationresultcongruence. ((k) * (pfp_source_normalization_exists_resultscale)) + (p) * pfa_offset_left_normalization_exists_resultscaleoperationresultcongruence = (pfp_value_normalization_exists_resultscale) + (p) * pfa_offset_right_normalization_exists_resultscaleoperationresultcongruence))))))))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro d
  6. intro hp
  7. intro hd
  8. cases hd
  9. cases hd_right
  10. cases hd_right_right
  11. cases hd_right_right_witness
  12. have ha : exists pfa_gap_normalization_exists_bound. pfa_gap_normalization_exists_bound + S (x) = (p)
  13. specialize matrix_rank_bounded_prefix_value (ab)
  14. specialize matrix_rank_bounded_prefix_value (ac)
  15. specialize matrix_rank_bounded_prefix_value (L)
  16. specialize matrix_rank_bounded_prefix_value (p)
  17. specialize matrix_rank_bounded_prefix_value (0)
  18. specialize matrix_rank_bounded_prefix_value (x)
  19. apply matrix_rank_bounded_prefix_value
  20. exact hd_right_left
  21. rewrite hd_left
  22. exists d
  23. simp
  24. exact hd_right_right_witness_left
  25. have hi : exists k. (((~((x) = 0)) /\ ((((exists pfa_gap_normalization_exists_inversemultiplicationleft. pfa_gap_normalization_exists_inversemultiplicationleft + S (x) = (p)) /\ (((exists pfa_gap_normalization_exists_inversemultiplicationright. pfa_gap_normalization_exists_inversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_normalization_exists_inversemultiplicationresultbound. pfa_gap_normalization_exists_inversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_normalization_exists_inversemultiplicationresultcongruence pfa_offset_right_normalization_exists_inversemultiplicationresultcongruence. ((x) * (k)) + (p) * pfa_offset_left_normalization_exists_inversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_normalization_exists_inversemultiplicationresultcongruence))))))))))))
  26. specialize prime_field_inverse_exists (p)
  27. specialize prime_field_inverse_exists (x)
  28. apply prime_field_inverse_exists
  29. exact hp
  30. exact ha
  31. exact hd_right_right_witness_right
  32. cases hi
  33. have hc : ((~((x) = 0)) /\ ((((exists pfa_gap_normalization_exists_inverse_copymultiplicationleft. pfa_gap_normalization_exists_inverse_copymultiplicationleft + S (x) = (p)) /\ (((exists pfa_gap_normalization_exists_inverse_copymultiplicationright. pfa_gap_normalization_exists_inverse_copymultiplicationright + S (x1) = (p)) /\ ((((exists pfa_gap_normalization_exists_inverse_copymultiplicationresultbound. pfa_gap_normalization_exists_inverse_copymultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_normalization_exists_inverse_copymultiplicationresultcongruence pfa_offset_right_normalization_exists_inverse_copymultiplicationresultcongruence. ((x) * (x1)) + (p) * pfa_offset_left_normalization_exists_inverse_copymultiplicationresultcongruence = (1) + (p) * pfa_offset_right_normalization_exists_inverse_copymultiplicationresultcongruence)))))))))))
  34. exact hi_witness
  35. cases hc
  36. cases hc_right
  37. cases hc_right_right
  38. have hs : exists bb bc. (((exists pfa_gap_normalization_exists_scalescalar. pfa_gap_normalization_exists_scalescalar + S (x1) = (p)) /\ ((forall pfp_index_normalization_exists_scale. (exists pfa_gap_normalization_exists_scaleindex. pfa_gap_normalization_exists_scaleindex + S (pfp_index_normalization_exists_scale) = (L)) -> exists pfp_source_normalization_exists_scale pfp_value_normalization_exists_scale. ((((exists ff_h_pfp_normalization_exists_scalesource. ff_h_pfp_normalization_exists_scalesource + S (pfp_source_normalization_exists_scale) = S ((S (pfp_index_normalization_exists_scale)) * ac)) /\ exists ff_q_pfp_normalization_exists_scalesource. ab = ff_q_pfp_normalization_exists_scalesource * S ((S (pfp_index_normalization_exists_scale)) * ac) + (pfp_source_normalization_exists_scale))) /\ (((((exists ff_h_pfp_normalization_exists_scaletarget. ff_h_pfp_normalization_exists_scaletarget + S (pfp_value_normalization_exists_scale) = S ((S (pfp_index_normalization_exists_scale)) * bc)) /\ exists ff_q_pfp_normalization_exists_scaletarget. bb = ff_q_pfp_normalization_exists_scaletarget * S ((S (pfp_index_normalization_exists_scale)) * bc) + (pfp_value_normalization_exists_scale))) /\ ((((exists pfa_gap_normalization_exists_scaleoperationleft. pfa_gap_normalization_exists_scaleoperationleft + S (x1) = (p)) /\ (((exists pfa_gap_normalization_exists_scaleoperationright. pfa_gap_normalization_exists_scaleoperationright + S (pfp_source_normalization_exists_scale) = (p)) /\ ((((exists pfa_gap_normalization_exists_scaleoperationresultbound. pfa_gap_normalization_exists_scaleoperationresultbound + S (pfp_value_normalization_exists_scale) = (p)) /\ ((exists pfa_offset_left_normalization_exists_scaleoperationresultcongruence pfa_offset_right_normalization_exists_scaleoperationresultcongruence. ((x1) * (pfp_source_normalization_exists_scale)) + (p) * pfa_offset_left_normalization_exists_scaleoperationresultcongruence = (pfp_value_normalization_exists_scale) + (p) * pfa_offset_right_normalization_exists_scaleoperationresultcongruence)))))))))))))))))
  39. specialize prime_field_polynomial_scale_exists (p)
  40. specialize prime_field_polynomial_scale_exists (x1)
  41. specialize prime_field_polynomial_scale_exists (ab)
  42. specialize prime_field_polynomial_scale_exists (ac)
  43. specialize prime_field_polynomial_scale_exists (L)
  44. apply prime_field_polynomial_scale_exists
  45. intro hz
  46. specialize prime_nonzero (p)
  47. apply prime_nonzero
  48. exact hp
  49. exact hz
  50. exact hc_right_right_left
  51. exact hd_right_left
  52. cases hs
  53. cases hs_witness
  54. exists x1
  55. exists x2
  56. exists x3
  57. split
  58. intro hz
  59. specialize succ_ne_zero (d)
  60. apply succ_ne_zero
  61. trans L
  62. symm
  63. exact hd_left
  64. exact hz
  65. split
  66. exists x
  67. split
  68. exact hd_right_right_witness_left
  69. exact hi_witness
  70. exact hs_witness_witness
prime_field_polynomial_monic_normalization_bounded · unchanged support, not a new admission
forall p k ab ac bb bc L. (((~((L) = 0)) /\ (((exists pfm_leading_normalization_bound_source. ((((exists ff_h_pfp_normalization_bound_sourcesource. ff_h_pfp_normalization_bound_sourcesource + S (pfm_leading_normalization_bound_source) = S ((S (0)) * ac)) /\ exists ff_q_pfp_normalization_bound_sourcesource. ab = ff_q_pfp_normalization_bound_sourcesource * S ((S (0)) * ac) + (pfm_leading_normalization_bound_source))) /\ ((((~((pfm_leading_normalization_bound_source) = 0)) /\ ((((exists pfa_gap_normalization_bound_sourceinversemultiplicationleft. pfa_gap_normalization_bound_sourceinversemultiplicationleft + S (pfm_leading_normalization_bound_source) = (p)) /\ (((exists pfa_gap_normalization_bound_sourceinversemultiplicationright. pfa_gap_normalization_bound_sourceinversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_normalization_bound_sourceinversemultiplicationresultbound. pfa_gap_normalization_bound_sourceinversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_normalization_bound_sourceinversemultiplicationresultcongruence pfa_offset_right_normalization_bound_sourceinversemultiplicationresultcongruence. ((pfm_leading_normalization_bound_source) * (k)) + (p) * pfa_offset_left_normalization_bound_sourceinversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_normalization_bound_sourceinversemultiplicationresultcongruence))))))))))))))) /\ ((((exists pfa_gap_normalization_bound_sourcescalescalar. pfa_gap_normalization_bound_sourcescalescalar + S (k) = (p)) /\ ((forall pfp_index_normalization_bound_sourcescale. (exists pfa_gap_normalization_bound_sourcescaleindex. pfa_gap_normalization_bound_sourcescaleindex + S (pfp_index_normalization_bound_sourcescale) = (L)) -> exists pfp_source_normalization_bound_sourcescale pfp_value_normalization_bound_sourcescale. ((((exists ff_h_pfp_normalization_bound_sourcescalesource. ff_h_pfp_normalization_bound_sourcescalesource + S (pfp_source_normalization_bound_sourcescale) = S ((S (pfp_index_normalization_bound_sourcescale)) * ac)) /\ exists ff_q_pfp_normalization_bound_sourcescalesource. ab = ff_q_pfp_normalization_bound_sourcescalesource * S ((S (pfp_index_normalization_bound_sourcescale)) * ac) + (pfp_source_normalization_bound_sourcescale))) /\ (((((exists ff_h_pfp_normalization_bound_sourcescaletarget. ff_h_pfp_normalization_bound_sourcescaletarget + S (pfp_value_normalization_bound_sourcescale) = S ((S (pfp_index_normalization_bound_sourcescale)) * bc)) /\ exists ff_q_pfp_normalization_bound_sourcescaletarget. bb = ff_q_pfp_normalization_bound_sourcescaletarget * S ((S (pfp_index_normalization_bound_sourcescale)) * bc) + (pfp_value_normalization_bound_sourcescale))) /\ ((((exists pfa_gap_normalization_bound_sourcescaleoperationleft. pfa_gap_normalization_bound_sourcescaleoperationleft + S (k) = (p)) /\ (((exists pfa_gap_normalization_bound_sourcescaleoperationright. pfa_gap_normalization_bound_sourcescaleoperationright + S (pfp_source_normalization_bound_sourcescale) = (p)) /\ ((((exists pfa_gap_normalization_bound_sourcescaleoperationresultbound. pfa_gap_normalization_bound_sourcescaleoperationresultbound + S (pfp_value_normalization_bound_sourcescale) = (p)) /\ ((exists pfa_offset_left_normalization_bound_sourcescaleoperationresultcongruence pfa_offset_right_normalization_bound_sourcescaleoperationresultcongruence. ((k) * (pfp_source_normalization_bound_sourcescale)) + (p) * pfa_offset_left_normalization_bound_sourcescaleoperationresultcongruence = (pfp_value_normalization_bound_sourcescale) + (p) * pfa_offset_right_normalization_bound_sourcescaleoperationresultcongruence)))))))))))))))))))))) -> (((exists pfa_gap_normalization_bound_scalar. pfa_gap_normalization_bound_scalar + S (k) = (p)) /\ (((forall fom_index_pfp_normalization_bound_input. (exists fom_gap_pfp_normalization_bound_input_index_bound. fom_gap_pfp_normalization_bound_input_index_bound + S (fom_index_pfp_normalization_bound_input) = L) -> exists fom_value_pfp_normalization_bound_input. ((((exists fom_beta_height_pfp_normalization_bound_input_entry. fom_beta_height_pfp_normalization_bound_input_entry + S (fom_value_pfp_normalization_bound_input) = S ((S (fom_index_pfp_normalization_bound_input)) * ac)) /\ exists fom_beta_quotient_pfp_normalization_bound_input_entry. ab = fom_beta_quotient_pfp_normalization_bound_input_entry * S ((S (fom_index_pfp_normalization_bound_input)) * ac) + (fom_value_pfp_normalization_bound_input))) /\ (exists fom_gap_pfp_normalization_bound_input_value_bound. fom_gap_pfp_normalization_bound_input_value_bound + S (fom_value_pfp_normalization_bound_input) = p))) /\ ((forall fom_index_pfp_normalization_bound_output. (exists fom_gap_pfp_normalization_bound_output_index_bound. fom_gap_pfp_normalization_bound_output_index_bound + S (fom_index_pfp_normalization_bound_output) = L) -> exists fom_value_pfp_normalization_bound_output. ((((exists fom_beta_height_pfp_normalization_bound_output_entry. fom_beta_height_pfp_normalization_bound_output_entry + S (fom_value_pfp_normalization_bound_output) = S ((S (fom_index_pfp_normalization_bound_output)) * bc)) /\ exists fom_beta_quotient_pfp_normalization_bound_output_entry. bb = fom_beta_quotient_pfp_normalization_bound_output_entry * S ((S (fom_index_pfp_normalization_bound_output)) * bc) + (fom_value_pfp_normalization_bound_output))) /\ (exists fom_gap_pfp_normalization_bound_output_value_bound. fom_gap_pfp_normalization_bound_output_value_bound + S (fom_value_pfp_normalization_bound_output) = p))))))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro L
  8. intro h
  9. cases h
  10. cases h_right
  11. have hs : ((exists pfa_gap_normalization_bound_scalescalar. pfa_gap_normalization_bound_scalescalar + S (k) = (p)) /\ ((forall pfp_index_normalization_bound_scale. (exists pfa_gap_normalization_bound_scaleindex. pfa_gap_normalization_bound_scaleindex + S (pfp_index_normalization_bound_scale) = (L)) -> exists pfp_source_normalization_bound_scale pfp_value_normalization_bound_scale. ((((exists ff_h_pfp_normalization_bound_scalesource. ff_h_pfp_normalization_bound_scalesource + S (pfp_source_normalization_bound_scale) = S ((S (pfp_index_normalization_bound_scale)) * ac)) /\ exists ff_q_pfp_normalization_bound_scalesource. ab = ff_q_pfp_normalization_bound_scalesource * S ((S (pfp_index_normalization_bound_scale)) * ac) + (pfp_source_normalization_bound_scale))) /\ (((((exists ff_h_pfp_normalization_bound_scaletarget. ff_h_pfp_normalization_bound_scaletarget + S (pfp_value_normalization_bound_scale) = S ((S (pfp_index_normalization_bound_scale)) * bc)) /\ exists ff_q_pfp_normalization_bound_scaletarget. bb = ff_q_pfp_normalization_bound_scaletarget * S ((S (pfp_index_normalization_bound_scale)) * bc) + (pfp_value_normalization_bound_scale))) /\ ((((exists pfa_gap_normalization_bound_scaleoperationleft. pfa_gap_normalization_bound_scaleoperationleft + S (k) = (p)) /\ (((exists pfa_gap_normalization_bound_scaleoperationright. pfa_gap_normalization_bound_scaleoperationright + S (pfp_source_normalization_bound_scale) = (p)) /\ ((((exists pfa_gap_normalization_bound_scaleoperationresultbound. pfa_gap_normalization_bound_scaleoperationresultbound + S (pfp_value_normalization_bound_scale) = (p)) /\ ((exists pfa_offset_left_normalization_bound_scaleoperationresultcongruence pfa_offset_right_normalization_bound_scaleoperationresultcongruence. ((k) * (pfp_source_normalization_bound_scale)) + (p) * pfa_offset_left_normalization_bound_scaleoperationresultcongruence = (pfp_value_normalization_bound_scale) + (p) * pfa_offset_right_normalization_bound_scaleoperationresultcongruence))))))))))))))))
  12. exact h_right_right
  13. cases hs
  14. split
  15. exact hs_left
  16. specialize prime_field_polynomial_scale_bounded (p)
  17. specialize prime_field_polynomial_scale_bounded (k)
  18. specialize prime_field_polynomial_scale_bounded (ab)
  19. specialize prime_field_polynomial_scale_bounded (ac)
  20. specialize prime_field_polynomial_scale_bounded (bb)
  21. specialize prime_field_polynomial_scale_bounded (bc)
  22. specialize prime_field_polynomial_scale_bounded (L)
  23. apply prime_field_polynomial_scale_bounded
  24. exact h_right_right
prime_field_polynomial_monic_normalization_entry · unchanged support, not a new admission
forall p k ab ac bb bc L i a r. (((~((L) = 0)) /\ (((exists pfm_leading_normalization_entry_source. ((((exists ff_h_pfp_normalization_entry_sourcesource. ff_h_pfp_normalization_entry_sourcesource + S (pfm_leading_normalization_entry_source) = S ((S (0)) * ac)) /\ exists ff_q_pfp_normalization_entry_sourcesource. ab = ff_q_pfp_normalization_entry_sourcesource * S ((S (0)) * ac) + (pfm_leading_normalization_entry_source))) /\ ((((~((pfm_leading_normalization_entry_source) = 0)) /\ ((((exists pfa_gap_normalization_entry_sourceinversemultiplicationleft. pfa_gap_normalization_entry_sourceinversemultiplicationleft + S (pfm_leading_normalization_entry_source) = (p)) /\ (((exists pfa_gap_normalization_entry_sourceinversemultiplicationright. pfa_gap_normalization_entry_sourceinversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_normalization_entry_sourceinversemultiplicationresultbound. pfa_gap_normalization_entry_sourceinversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_normalization_entry_sourceinversemultiplicationresultcongruence pfa_offset_right_normalization_entry_sourceinversemultiplicationresultcongruence. ((pfm_leading_normalization_entry_source) * (k)) + (p) * pfa_offset_left_normalization_entry_sourceinversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_normalization_entry_sourceinversemultiplicationresultcongruence))))))))))))))) /\ ((((exists pfa_gap_normalization_entry_sourcescalescalar. pfa_gap_normalization_entry_sourcescalescalar + S (k) = (p)) /\ ((forall pfp_index_normalization_entry_sourcescale. (exists pfa_gap_normalization_entry_sourcescaleindex. pfa_gap_normalization_entry_sourcescaleindex + S (pfp_index_normalization_entry_sourcescale) = (L)) -> exists pfp_source_normalization_entry_sourcescale pfp_value_normalization_entry_sourcescale. ((((exists ff_h_pfp_normalization_entry_sourcescalesource. ff_h_pfp_normalization_entry_sourcescalesource + S (pfp_source_normalization_entry_sourcescale) = S ((S (pfp_index_normalization_entry_sourcescale)) * ac)) /\ exists ff_q_pfp_normalization_entry_sourcescalesource. ab = ff_q_pfp_normalization_entry_sourcescalesource * S ((S (pfp_index_normalization_entry_sourcescale)) * ac) + (pfp_source_normalization_entry_sourcescale))) /\ (((((exists ff_h_pfp_normalization_entry_sourcescaletarget. ff_h_pfp_normalization_entry_sourcescaletarget + S (pfp_value_normalization_entry_sourcescale) = S ((S (pfp_index_normalization_entry_sourcescale)) * bc)) /\ exists ff_q_pfp_normalization_entry_sourcescaletarget. bb = ff_q_pfp_normalization_entry_sourcescaletarget * S ((S (pfp_index_normalization_entry_sourcescale)) * bc) + (pfp_value_normalization_entry_sourcescale))) /\ ((((exists pfa_gap_normalization_entry_sourcescaleoperationleft. pfa_gap_normalization_entry_sourcescaleoperationleft + S (k) = (p)) /\ (((exists pfa_gap_normalization_entry_sourcescaleoperationright. pfa_gap_normalization_entry_sourcescaleoperationright + S (pfp_source_normalization_entry_sourcescale) = (p)) /\ ((((exists pfa_gap_normalization_entry_sourcescaleoperationresultbound. pfa_gap_normalization_entry_sourcescaleoperationresultbound + S (pfp_value_normalization_entry_sourcescale) = (p)) /\ ((exists pfa_offset_left_normalization_entry_sourcescaleoperationresultcongruence pfa_offset_right_normalization_entry_sourcescaleoperationresultcongruence. ((k) * (pfp_source_normalization_entry_sourcescale)) + (p) * pfa_offset_left_normalization_entry_sourcescaleoperationresultcongruence = (pfp_value_normalization_entry_sourcescale) + (p) * pfa_offset_right_normalization_entry_sourcescaleoperationresultcongruence)))))))))))))))))))))) -> (exists pfa_gap_normalization_entry_bound. pfa_gap_normalization_entry_bound + S (i) = (L)) -> (((exists ff_h_pfp_normalization_entry_input. ff_h_pfp_normalization_entry_input + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_normalization_entry_input. ab = ff_q_pfp_normalization_entry_input * S ((S (i)) * ac) + (a))) -> (((exists ff_h_pfp_normalization_entry_output. ff_h_pfp_normalization_entry_output + S (r) = S ((S (i)) * bc)) /\ exists ff_q_pfp_normalization_entry_output. bb = ff_q_pfp_normalization_entry_output * S ((S (i)) * bc) + (r))) -> (((exists pfa_gap_normalization_entry_multiplyleft. pfa_gap_normalization_entry_multiplyleft + S (k) = (p)) /\ (((exists pfa_gap_normalization_entry_multiplyright. pfa_gap_normalization_entry_multiplyright + S (a) = (p)) /\ ((((exists pfa_gap_normalization_entry_multiplyresultbound. pfa_gap_normalization_entry_multiplyresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_normalization_entry_multiplyresultcongruence pfa_offset_right_normalization_entry_multiplyresultcongruence. ((k) * (a)) + (p) * pfa_offset_left_normalization_entry_multiplyresultcongruence = (r) + (p) * pfa_offset_right_normalization_entry_multiplyresultcongruence)))))))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro L
  8. intro i
  9. intro a
  10. intro r
  11. intro h
  12. intro hi
  13. intro ha
  14. intro hr
  15. cases h
  16. cases h_right
  17. specialize prime_field_polynomial_scale_entry (p)
  18. specialize prime_field_polynomial_scale_entry (k)
  19. specialize prime_field_polynomial_scale_entry (ab)
  20. specialize prime_field_polynomial_scale_entry (ac)
  21. specialize prime_field_polynomial_scale_entry (bb)
  22. specialize prime_field_polynomial_scale_entry (bc)
  23. specialize prime_field_polynomial_scale_entry (L)
  24. specialize prime_field_polynomial_scale_entry (i)
  25. specialize prime_field_polynomial_scale_entry (a)
  26. specialize prime_field_polynomial_scale_entry (r)
  27. apply prime_field_polynomial_scale_entry
  28. exact h_right_right
  29. exact hi
  30. exact ha
  31. exact hr
prime_field_polynomial_monic_normalization_leading · unchanged support, not a new admission
forall p k ab ac bb bc L. (((~((L) = 0)) /\ (((exists pfm_leading_normalization_leading_source. ((((exists ff_h_pfp_normalization_leading_sourcesource. ff_h_pfp_normalization_leading_sourcesource + S (pfm_leading_normalization_leading_source) = S ((S (0)) * ac)) /\ exists ff_q_pfp_normalization_leading_sourcesource. ab = ff_q_pfp_normalization_leading_sourcesource * S ((S (0)) * ac) + (pfm_leading_normalization_leading_source))) /\ ((((~((pfm_leading_normalization_leading_source) = 0)) /\ ((((exists pfa_gap_normalization_leading_sourceinversemultiplicationleft. pfa_gap_normalization_leading_sourceinversemultiplicationleft + S (pfm_leading_normalization_leading_source) = (p)) /\ (((exists pfa_gap_normalization_leading_sourceinversemultiplicationright. pfa_gap_normalization_leading_sourceinversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_normalization_leading_sourceinversemultiplicationresultbound. pfa_gap_normalization_leading_sourceinversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_normalization_leading_sourceinversemultiplicationresultcongruence pfa_offset_right_normalization_leading_sourceinversemultiplicationresultcongruence. ((pfm_leading_normalization_leading_source) * (k)) + (p) * pfa_offset_left_normalization_leading_sourceinversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_normalization_leading_sourceinversemultiplicationresultcongruence))))))))))))))) /\ ((((exists pfa_gap_normalization_leading_sourcescalescalar. pfa_gap_normalization_leading_sourcescalescalar + S (k) = (p)) /\ ((forall pfp_index_normalization_leading_sourcescale. (exists pfa_gap_normalization_leading_sourcescaleindex. pfa_gap_normalization_leading_sourcescaleindex + S (pfp_index_normalization_leading_sourcescale) = (L)) -> exists pfp_source_normalization_leading_sourcescale pfp_value_normalization_leading_sourcescale. ((((exists ff_h_pfp_normalization_leading_sourcescalesource. ff_h_pfp_normalization_leading_sourcescalesource + S (pfp_source_normalization_leading_sourcescale) = S ((S (pfp_index_normalization_leading_sourcescale)) * ac)) /\ exists ff_q_pfp_normalization_leading_sourcescalesource. ab = ff_q_pfp_normalization_leading_sourcescalesource * S ((S (pfp_index_normalization_leading_sourcescale)) * ac) + (pfp_source_normalization_leading_sourcescale))) /\ (((((exists ff_h_pfp_normalization_leading_sourcescaletarget. ff_h_pfp_normalization_leading_sourcescaletarget + S (pfp_value_normalization_leading_sourcescale) = S ((S (pfp_index_normalization_leading_sourcescale)) * bc)) /\ exists ff_q_pfp_normalization_leading_sourcescaletarget. bb = ff_q_pfp_normalization_leading_sourcescaletarget * S ((S (pfp_index_normalization_leading_sourcescale)) * bc) + (pfp_value_normalization_leading_sourcescale))) /\ ((((exists pfa_gap_normalization_leading_sourcescaleoperationleft. pfa_gap_normalization_leading_sourcescaleoperationleft + S (k) = (p)) /\ (((exists pfa_gap_normalization_leading_sourcescaleoperationright. pfa_gap_normalization_leading_sourcescaleoperationright + S (pfp_source_normalization_leading_sourcescale) = (p)) /\ ((((exists pfa_gap_normalization_leading_sourcescaleoperationresultbound. pfa_gap_normalization_leading_sourcescaleoperationresultbound + S (pfp_value_normalization_leading_sourcescale) = (p)) /\ ((exists pfa_offset_left_normalization_leading_sourcescaleoperationresultcongruence pfa_offset_right_normalization_leading_sourcescaleoperationresultcongruence. ((k) * (pfp_source_normalization_leading_sourcescale)) + (p) * pfa_offset_left_normalization_leading_sourcescaleoperationresultcongruence = (pfp_value_normalization_leading_sourcescale) + (p) * pfa_offset_right_normalization_leading_sourcescaleoperationresultcongruence)))))))))))))))))))))) -> (((exists ff_h_pfp_normalization_leading_result. ff_h_pfp_normalization_leading_result + S (1) = S ((S (0)) * bc)) /\ exists ff_q_pfp_normalization_leading_result. bb = ff_q_pfp_normalization_leading_result * S ((S (0)) * bc) + (1)))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro L
  8. intro h
  9. have hc : ((~((L) = 0)) /\ (((exists pfm_leading_normalization_leading_copy. ((((exists ff_h_pfp_normalization_leading_copysource. ff_h_pfp_normalization_leading_copysource + S (pfm_leading_normalization_leading_copy) = S ((S (0)) * ac)) /\ exists ff_q_pfp_normalization_leading_copysource. ab = ff_q_pfp_normalization_leading_copysource * S ((S (0)) * ac) + (pfm_leading_normalization_leading_copy))) /\ ((((~((pfm_leading_normalization_leading_copy) = 0)) /\ ((((exists pfa_gap_normalization_leading_copyinversemultiplicationleft. pfa_gap_normalization_leading_copyinversemultiplicationleft + S (pfm_leading_normalization_leading_copy) = (p)) /\ (((exists pfa_gap_normalization_leading_copyinversemultiplicationright. pfa_gap_normalization_leading_copyinversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_normalization_leading_copyinversemultiplicationresultbound. pfa_gap_normalization_leading_copyinversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_normalization_leading_copyinversemultiplicationresultcongruence pfa_offset_right_normalization_leading_copyinversemultiplicationresultcongruence. ((pfm_leading_normalization_leading_copy) * (k)) + (p) * pfa_offset_left_normalization_leading_copyinversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_normalization_leading_copyinversemultiplicationresultcongruence))))))))))))))) /\ ((((exists pfa_gap_normalization_leading_copyscalescalar. pfa_gap_normalization_leading_copyscalescalar + S (k) = (p)) /\ ((forall pfp_index_normalization_leading_copyscale. (exists pfa_gap_normalization_leading_copyscaleindex. pfa_gap_normalization_leading_copyscaleindex + S (pfp_index_normalization_leading_copyscale) = (L)) -> exists pfp_source_normalization_leading_copyscale pfp_value_normalization_leading_copyscale. ((((exists ff_h_pfp_normalization_leading_copyscalesource. ff_h_pfp_normalization_leading_copyscalesource + S (pfp_source_normalization_leading_copyscale) = S ((S (pfp_index_normalization_leading_copyscale)) * ac)) /\ exists ff_q_pfp_normalization_leading_copyscalesource. ab = ff_q_pfp_normalization_leading_copyscalesource * S ((S (pfp_index_normalization_leading_copyscale)) * ac) + (pfp_source_normalization_leading_copyscale))) /\ (((((exists ff_h_pfp_normalization_leading_copyscaletarget. ff_h_pfp_normalization_leading_copyscaletarget + S (pfp_value_normalization_leading_copyscale) = S ((S (pfp_index_normalization_leading_copyscale)) * bc)) /\ exists ff_q_pfp_normalization_leading_copyscaletarget. bb = ff_q_pfp_normalization_leading_copyscaletarget * S ((S (pfp_index_normalization_leading_copyscale)) * bc) + (pfp_value_normalization_leading_copyscale))) /\ ((((exists pfa_gap_normalization_leading_copyscaleoperationleft. pfa_gap_normalization_leading_copyscaleoperationleft + S (k) = (p)) /\ (((exists pfa_gap_normalization_leading_copyscaleoperationright. pfa_gap_normalization_leading_copyscaleoperationright + S (pfp_source_normalization_leading_copyscale) = (p)) /\ ((((exists pfa_gap_normalization_leading_copyscaleoperationresultbound. pfa_gap_normalization_leading_copyscaleoperationresultbound + S (pfp_value_normalization_leading_copyscale) = (p)) /\ ((exists pfa_offset_left_normalization_leading_copyscaleoperationresultcongruence pfa_offset_right_normalization_leading_copyscaleoperationresultcongruence. ((k) * (pfp_source_normalization_leading_copyscale)) + (p) * pfa_offset_left_normalization_leading_copyscaleoperationresultcongruence = (pfp_value_normalization_leading_copyscale) + (p) * pfa_offset_right_normalization_leading_copyscaleoperationresultcongruence)))))))))))))))))))))
  10. exact h
  11. cases hc
  12. cases hc_right
  13. cases hc_right_left
  14. cases hc_right_left_witness
  15. cases hc_right_left_witness_right
  16. have hzero : exists pfa_gap_normalization_leading_index. pfa_gap_normalization_leading_index + S (0) = (L)
  17. specialize one_le_of_ne_zero (L)
  18. apply one_le_of_ne_zero
  19. exact hc_left
  20. have hr : exists r. (((exists ff_h_pfp_normalization_leading_decoding. ff_h_pfp_normalization_leading_decoding + S (r) = S ((S (0)) * bc)) /\ exists ff_q_pfp_normalization_leading_decoding. bb = ff_q_pfp_normalization_leading_decoding * S ((S (0)) * bc) + (r)))
  21. specialize beta_at_exists (bb)
  22. specialize beta_at_exists (bc)
  23. specialize beta_at_exists (0)
  24. apply beta_at_exists
  25. cases hr
  26. have hm : ((exists pfa_gap_normalization_leading_scaledleft. pfa_gap_normalization_leading_scaledleft + S (k) = (p)) /\ (((exists pfa_gap_normalization_leading_scaledright. pfa_gap_normalization_leading_scaledright + S (x) = (p)) /\ ((((exists pfa_gap_normalization_leading_scaledresultbound. pfa_gap_normalization_leading_scaledresultbound + S (x1) = (p)) /\ ((exists pfa_offset_left_normalization_leading_scaledresultcongruence pfa_offset_right_normalization_leading_scaledresultcongruence. ((k) * (x)) + (p) * pfa_offset_left_normalization_leading_scaledresultcongruence = (x1) + (p) * pfa_offset_right_normalization_leading_scaledresultcongruence))))))))
  27. specialize prime_field_polynomial_monic_normalization_entry (p)
  28. specialize prime_field_polynomial_monic_normalization_entry (k)
  29. specialize prime_field_polynomial_monic_normalization_entry (ab)
  30. specialize prime_field_polynomial_monic_normalization_entry (ac)
  31. specialize prime_field_polynomial_monic_normalization_entry (bb)
  32. specialize prime_field_polynomial_monic_normalization_entry (bc)
  33. specialize prime_field_polynomial_monic_normalization_entry (L)
  34. specialize prime_field_polynomial_monic_normalization_entry (0)
  35. specialize prime_field_polynomial_monic_normalization_entry (x)
  36. specialize prime_field_polynomial_monic_normalization_entry (x1)
  37. apply prime_field_polynomial_monic_normalization_entry
  38. exact h
  39. exact hzero
  40. exact hc_right_left_witness_left
  41. exact hr_witness
  42. have hu : ((exists pfa_gap_normalization_leading_unitleft. pfa_gap_normalization_leading_unitleft + S (k) = (p)) /\ (((exists pfa_gap_normalization_leading_unitright. pfa_gap_normalization_leading_unitright + S (x) = (p)) /\ ((((exists pfa_gap_normalization_leading_unitresultbound. pfa_gap_normalization_leading_unitresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_normalization_leading_unitresultcongruence pfa_offset_right_normalization_leading_unitresultcongruence. ((k) * (x)) + (p) * pfa_offset_left_normalization_leading_unitresultcongruence = (1) + (p) * pfa_offset_right_normalization_leading_unitresultcongruence))))))))
  43. specialize prime_field_multiply_commutative (p)
  44. specialize prime_field_multiply_commutative (x)
  45. specialize prime_field_multiply_commutative (k)
  46. specialize prime_field_multiply_commutative (1)
  47. apply prime_field_multiply_commutative
  48. exact hc_right_left_witness_right_right
  49. have he : x1=1
  50. specialize prime_field_multiply_functional (p)
  51. specialize prime_field_multiply_functional (k)
  52. specialize prime_field_multiply_functional (x)
  53. specialize prime_field_multiply_functional (x1)
  54. specialize prime_field_multiply_functional (1)
  55. apply prime_field_multiply_functional
  56. exact hm
  57. exact hu
  58. rewrite he at hr_witness
  59. rewrite he at hr_witness
  60. exact hr_witness
prime_field_polynomial_monic_normalization_monic · unchanged support, not a new admission
forall p k ab ac bb bc L. (((~((L) = 0)) /\ (((exists pfm_leading_normalization_monic_source. ((((exists ff_h_pfp_normalization_monic_sourcesource. ff_h_pfp_normalization_monic_sourcesource + S (pfm_leading_normalization_monic_source) = S ((S (0)) * ac)) /\ exists ff_q_pfp_normalization_monic_sourcesource. ab = ff_q_pfp_normalization_monic_sourcesource * S ((S (0)) * ac) + (pfm_leading_normalization_monic_source))) /\ ((((~((pfm_leading_normalization_monic_source) = 0)) /\ ((((exists pfa_gap_normalization_monic_sourceinversemultiplicationleft. pfa_gap_normalization_monic_sourceinversemultiplicationleft + S (pfm_leading_normalization_monic_source) = (p)) /\ (((exists pfa_gap_normalization_monic_sourceinversemultiplicationright. pfa_gap_normalization_monic_sourceinversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_normalization_monic_sourceinversemultiplicationresultbound. pfa_gap_normalization_monic_sourceinversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_normalization_monic_sourceinversemultiplicationresultcongruence pfa_offset_right_normalization_monic_sourceinversemultiplicationresultcongruence. ((pfm_leading_normalization_monic_source) * (k)) + (p) * pfa_offset_left_normalization_monic_sourceinversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_normalization_monic_sourceinversemultiplicationresultcongruence))))))))))))))) /\ ((((exists pfa_gap_normalization_monic_sourcescalescalar. pfa_gap_normalization_monic_sourcescalescalar + S (k) = (p)) /\ ((forall pfp_index_normalization_monic_sourcescale. (exists pfa_gap_normalization_monic_sourcescaleindex. pfa_gap_normalization_monic_sourcescaleindex + S (pfp_index_normalization_monic_sourcescale) = (L)) -> exists pfp_source_normalization_monic_sourcescale pfp_value_normalization_monic_sourcescale. ((((exists ff_h_pfp_normalization_monic_sourcescalesource. ff_h_pfp_normalization_monic_sourcescalesource + S (pfp_source_normalization_monic_sourcescale) = S ((S (pfp_index_normalization_monic_sourcescale)) * ac)) /\ exists ff_q_pfp_normalization_monic_sourcescalesource. ab = ff_q_pfp_normalization_monic_sourcescalesource * S ((S (pfp_index_normalization_monic_sourcescale)) * ac) + (pfp_source_normalization_monic_sourcescale))) /\ (((((exists ff_h_pfp_normalization_monic_sourcescaletarget. ff_h_pfp_normalization_monic_sourcescaletarget + S (pfp_value_normalization_monic_sourcescale) = S ((S (pfp_index_normalization_monic_sourcescale)) * bc)) /\ exists ff_q_pfp_normalization_monic_sourcescaletarget. bb = ff_q_pfp_normalization_monic_sourcescaletarget * S ((S (pfp_index_normalization_monic_sourcescale)) * bc) + (pfp_value_normalization_monic_sourcescale))) /\ ((((exists pfa_gap_normalization_monic_sourcescaleoperationleft. pfa_gap_normalization_monic_sourcescaleoperationleft + S (k) = (p)) /\ (((exists pfa_gap_normalization_monic_sourcescaleoperationright. pfa_gap_normalization_monic_sourcescaleoperationright + S (pfp_source_normalization_monic_sourcescale) = (p)) /\ ((((exists pfa_gap_normalization_monic_sourcescaleoperationresultbound. pfa_gap_normalization_monic_sourcescaleoperationresultbound + S (pfp_value_normalization_monic_sourcescale) = (p)) /\ ((exists pfa_offset_left_normalization_monic_sourcescaleoperationresultcongruence pfa_offset_right_normalization_monic_sourcescaleoperationresultcongruence. ((k) * (pfp_source_normalization_monic_sourcescale)) + (p) * pfa_offset_left_normalization_monic_sourcescaleoperationresultcongruence = (pfp_value_normalization_monic_sourcescale) + (p) * pfa_offset_right_normalization_monic_sourcescaleoperationresultcongruence)))))))))))))))))))))) -> (((~((L) = 0)) /\ (((forall fom_index_pfp_normalization_monic_resultcoefficients. (exists fom_gap_pfp_normalization_monic_resultcoefficients_index_bound. fom_gap_pfp_normalization_monic_resultcoefficients_index_bound + S (fom_index_pfp_normalization_monic_resultcoefficients) = L) -> exists fom_value_pfp_normalization_monic_resultcoefficients. ((((exists fom_beta_height_pfp_normalization_monic_resultcoefficients_entry. fom_beta_height_pfp_normalization_monic_resultcoefficients_entry + S (fom_value_pfp_normalization_monic_resultcoefficients) = S ((S (fom_index_pfp_normalization_monic_resultcoefficients)) * bc)) /\ exists fom_beta_quotient_pfp_normalization_monic_resultcoefficients_entry. bb = fom_beta_quotient_pfp_normalization_monic_resultcoefficients_entry * S ((S (fom_index_pfp_normalization_monic_resultcoefficients)) * bc) + (fom_value_pfp_normalization_monic_resultcoefficients))) /\ (exists fom_gap_pfp_normalization_monic_resultcoefficients_value_bound. fom_gap_pfp_normalization_monic_resultcoefficients_value_bound + S (fom_value_pfp_normalization_monic_resultcoefficients) = p))) /\ ((((exists ff_h_pfp_normalization_monic_resultleading. ff_h_pfp_normalization_monic_resultleading + S (1) = S ((S (0)) * bc)) /\ exists ff_q_pfp_normalization_monic_resultleading. bb = ff_q_pfp_normalization_monic_resultleading * S ((S (0)) * bc) + (1))))))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro L
  8. intro h
  9. have hc : ((~((L) = 0)) /\ (((exists pfm_leading_normalization_monic_copy. ((((exists ff_h_pfp_normalization_monic_copysource. ff_h_pfp_normalization_monic_copysource + S (pfm_leading_normalization_monic_copy) = S ((S (0)) * ac)) /\ exists ff_q_pfp_normalization_monic_copysource. ab = ff_q_pfp_normalization_monic_copysource * S ((S (0)) * ac) + (pfm_leading_normalization_monic_copy))) /\ ((((~((pfm_leading_normalization_monic_copy) = 0)) /\ ((((exists pfa_gap_normalization_monic_copyinversemultiplicationleft. pfa_gap_normalization_monic_copyinversemultiplicationleft + S (pfm_leading_normalization_monic_copy) = (p)) /\ (((exists pfa_gap_normalization_monic_copyinversemultiplicationright. pfa_gap_normalization_monic_copyinversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_normalization_monic_copyinversemultiplicationresultbound. pfa_gap_normalization_monic_copyinversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_normalization_monic_copyinversemultiplicationresultcongruence pfa_offset_right_normalization_monic_copyinversemultiplicationresultcongruence. ((pfm_leading_normalization_monic_copy) * (k)) + (p) * pfa_offset_left_normalization_monic_copyinversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_normalization_monic_copyinversemultiplicationresultcongruence))))))))))))))) /\ ((((exists pfa_gap_normalization_monic_copyscalescalar. pfa_gap_normalization_monic_copyscalescalar + S (k) = (p)) /\ ((forall pfp_index_normalization_monic_copyscale. (exists pfa_gap_normalization_monic_copyscaleindex. pfa_gap_normalization_monic_copyscaleindex + S (pfp_index_normalization_monic_copyscale) = (L)) -> exists pfp_source_normalization_monic_copyscale pfp_value_normalization_monic_copyscale. ((((exists ff_h_pfp_normalization_monic_copyscalesource. ff_h_pfp_normalization_monic_copyscalesource + S (pfp_source_normalization_monic_copyscale) = S ((S (pfp_index_normalization_monic_copyscale)) * ac)) /\ exists ff_q_pfp_normalization_monic_copyscalesource. ab = ff_q_pfp_normalization_monic_copyscalesource * S ((S (pfp_index_normalization_monic_copyscale)) * ac) + (pfp_source_normalization_monic_copyscale))) /\ (((((exists ff_h_pfp_normalization_monic_copyscaletarget. ff_h_pfp_normalization_monic_copyscaletarget + S (pfp_value_normalization_monic_copyscale) = S ((S (pfp_index_normalization_monic_copyscale)) * bc)) /\ exists ff_q_pfp_normalization_monic_copyscaletarget. bb = ff_q_pfp_normalization_monic_copyscaletarget * S ((S (pfp_index_normalization_monic_copyscale)) * bc) + (pfp_value_normalization_monic_copyscale))) /\ ((((exists pfa_gap_normalization_monic_copyscaleoperationleft. pfa_gap_normalization_monic_copyscaleoperationleft + S (k) = (p)) /\ (((exists pfa_gap_normalization_monic_copyscaleoperationright. pfa_gap_normalization_monic_copyscaleoperationright + S (pfp_source_normalization_monic_copyscale) = (p)) /\ ((((exists pfa_gap_normalization_monic_copyscaleoperationresultbound. pfa_gap_normalization_monic_copyscaleoperationresultbound + S (pfp_value_normalization_monic_copyscale) = (p)) /\ ((exists pfa_offset_left_normalization_monic_copyscaleoperationresultcongruence pfa_offset_right_normalization_monic_copyscaleoperationresultcongruence. ((k) * (pfp_source_normalization_monic_copyscale)) + (p) * pfa_offset_left_normalization_monic_copyscaleoperationresultcongruence = (pfp_value_normalization_monic_copyscale) + (p) * pfa_offset_right_normalization_monic_copyscaleoperationresultcongruence)))))))))))))))))))))
  10. exact h
  11. cases hc
  12. cases hc_right
  13. split
  14. exact hc_left
  15. split
  16. have hb : ((exists pfa_gap_normalization_bound_scalar. pfa_gap_normalization_bound_scalar + S (k) = (p)) /\ (((forall fom_index_pfp_normalization_bound_input. (exists fom_gap_pfp_normalization_bound_input_index_bound. fom_gap_pfp_normalization_bound_input_index_bound + S (fom_index_pfp_normalization_bound_input) = L) -> exists fom_value_pfp_normalization_bound_input. ((((exists fom_beta_height_pfp_normalization_bound_input_entry. fom_beta_height_pfp_normalization_bound_input_entry + S (fom_value_pfp_normalization_bound_input) = S ((S (fom_index_pfp_normalization_bound_input)) * ac)) /\ exists fom_beta_quotient_pfp_normalization_bound_input_entry. ab = fom_beta_quotient_pfp_normalization_bound_input_entry * S ((S (fom_index_pfp_normalization_bound_input)) * ac) + (fom_value_pfp_normalization_bound_input))) /\ (exists fom_gap_pfp_normalization_bound_input_value_bound. fom_gap_pfp_normalization_bound_input_value_bound + S (fom_value_pfp_normalization_bound_input) = p))) /\ ((forall fom_index_pfp_normalization_bound_output. (exists fom_gap_pfp_normalization_bound_output_index_bound. fom_gap_pfp_normalization_bound_output_index_bound + S (fom_index_pfp_normalization_bound_output) = L) -> exists fom_value_pfp_normalization_bound_output. ((((exists fom_beta_height_pfp_normalization_bound_output_entry. fom_beta_height_pfp_normalization_bound_output_entry + S (fom_value_pfp_normalization_bound_output) = S ((S (fom_index_pfp_normalization_bound_output)) * bc)) /\ exists fom_beta_quotient_pfp_normalization_bound_output_entry. bb = fom_beta_quotient_pfp_normalization_bound_output_entry * S ((S (fom_index_pfp_normalization_bound_output)) * bc) + (fom_value_pfp_normalization_bound_output))) /\ (exists fom_gap_pfp_normalization_bound_output_value_bound. fom_gap_pfp_normalization_bound_output_value_bound + S (fom_value_pfp_normalization_bound_output) = p)))))))
  17. specialize prime_field_polynomial_monic_normalization_bounded (p)
  18. specialize prime_field_polynomial_monic_normalization_bounded (k)
  19. specialize prime_field_polynomial_monic_normalization_bounded (ab)
  20. specialize prime_field_polynomial_monic_normalization_bounded (ac)
  21. specialize prime_field_polynomial_monic_normalization_bounded (bb)
  22. specialize prime_field_polynomial_monic_normalization_bounded (bc)
  23. specialize prime_field_polynomial_monic_normalization_bounded (L)
  24. apply prime_field_polynomial_monic_normalization_bounded
  25. exact h
  26. cases hb
  27. cases hb_right
  28. exact hb_right_right
  29. specialize prime_field_polynomial_monic_normalization_leading (p)
  30. specialize prime_field_polynomial_monic_normalization_leading (k)
  31. specialize prime_field_polynomial_monic_normalization_leading (ab)
  32. specialize prime_field_polynomial_monic_normalization_leading (ac)
  33. specialize prime_field_polynomial_monic_normalization_leading (bb)
  34. specialize prime_field_polynomial_monic_normalization_leading (bc)
  35. specialize prime_field_polynomial_monic_normalization_leading (L)
  36. apply prime_field_polynomial_monic_normalization_leading
  37. exact h
prime_field_polynomial_add_zero_right · unchanged support, not a new admission
forall p b c zb zc l. (~((p) = 1) /\ forall pfa_factor_left_add_zero_prime pfa_factor_right_add_zero_prime. (p) = pfa_factor_left_add_zero_prime * pfa_factor_right_add_zero_prime -> pfa_factor_left_add_zero_prime = 1 \/ pfa_factor_right_add_zero_prime = 1) -> (forall fom_index_pfp_add_zero_coefficients. (exists fom_gap_pfp_add_zero_coefficients_index_bound. fom_gap_pfp_add_zero_coefficients_index_bound + S (fom_index_pfp_add_zero_coefficients) = l) -> exists fom_value_pfp_add_zero_coefficients. ((((exists fom_beta_height_pfp_add_zero_coefficients_entry. fom_beta_height_pfp_add_zero_coefficients_entry + S (fom_value_pfp_add_zero_coefficients) = S ((S (fom_index_pfp_add_zero_coefficients)) * c)) /\ exists fom_beta_quotient_pfp_add_zero_coefficients_entry. b = fom_beta_quotient_pfp_add_zero_coefficients_entry * S ((S (fom_index_pfp_add_zero_coefficients)) * c) + (fom_value_pfp_add_zero_coefficients))) /\ (exists fom_gap_pfp_add_zero_coefficients_value_bound. fom_gap_pfp_add_zero_coefficients_value_bound + S (fom_value_pfp_add_zero_coefficients) = p))) -> (forall pfp_repeat_index_add_zero_table. (exists pfa_gap_add_zero_tableindex. pfa_gap_add_zero_tableindex + S (pfp_repeat_index_add_zero_table) = (l)) -> (((exists ff_h_pfp_add_zero_tableentry. ff_h_pfp_add_zero_tableentry + S (0) = S ((S (pfp_repeat_index_add_zero_table)) * zc)) /\ exists ff_q_pfp_add_zero_tableentry. zb = ff_q_pfp_add_zero_tableentry * S ((S (pfp_repeat_index_add_zero_table)) * zc) + (0)))) -> (forall pfp_index_add_zero_result. (exists pfa_gap_add_zero_resultindex. pfa_gap_add_zero_resultindex + S (pfp_index_add_zero_result) = (l)) -> exists pfp_left_add_zero_result pfp_right_add_zero_result pfp_value_add_zero_result. ((((exists ff_h_pfp_add_zero_resultleft. ff_h_pfp_add_zero_resultleft + S (pfp_left_add_zero_result) = S ((S (pfp_index_add_zero_result)) * c)) /\ exists ff_q_pfp_add_zero_resultleft. b = ff_q_pfp_add_zero_resultleft * S ((S (pfp_index_add_zero_result)) * c) + (pfp_left_add_zero_result))) /\ (((((exists ff_h_pfp_add_zero_resultright. ff_h_pfp_add_zero_resultright + S (pfp_right_add_zero_result) = S ((S (pfp_index_add_zero_result)) * zc)) /\ exists ff_q_pfp_add_zero_resultright. zb = ff_q_pfp_add_zero_resultright * S ((S (pfp_index_add_zero_result)) * zc) + (pfp_right_add_zero_result))) /\ (((((exists ff_h_pfp_add_zero_resulttarget. ff_h_pfp_add_zero_resulttarget + S (pfp_value_add_zero_result) = S ((S (pfp_index_add_zero_result)) * c)) /\ exists ff_q_pfp_add_zero_resulttarget. b = ff_q_pfp_add_zero_resulttarget * S ((S (pfp_index_add_zero_result)) * c) + (pfp_value_add_zero_result))) /\ ((((exists pfa_gap_add_zero_resultoperationleft. pfa_gap_add_zero_resultoperationleft + S (pfp_left_add_zero_result) = (p)) /\ (((exists pfa_gap_add_zero_resultoperationright. pfa_gap_add_zero_resultoperationright + S (pfp_right_add_zero_result) = (p)) /\ ((((exists pfa_gap_add_zero_resultoperationresultbound. pfa_gap_add_zero_resultoperationresultbound + S (pfp_value_add_zero_result) = (p)) /\ ((exists pfa_offset_left_add_zero_resultoperationresultcongruence pfa_offset_right_add_zero_resultoperationresultcongruence. ((pfp_left_add_zero_result) + (pfp_right_add_zero_result)) + (p) * pfa_offset_left_add_zero_resultoperationresultcongruence = (pfp_value_add_zero_result) + (p) * pfa_offset_right_add_zero_resultoperationresultcongruence))))))))))))))))
  1. intro p
  2. intro b
  3. intro c
  4. intro zb
  5. intro zc
  6. intro l
  7. intro hp
  8. intro hc
  9. intro hz
  10. intro i
  11. intro hi
  12. have ha : exists a. ((((exists ff_h_pfp_add_zero_chosen. ff_h_pfp_add_zero_chosen + S (a) = S ((S (i)) * c)) /\ exists ff_q_pfp_add_zero_chosen. b = ff_q_pfp_add_zero_chosen * S ((S (i)) * c) + (a))) /\ ((exists pfa_gap_add_zero_bound. pfa_gap_add_zero_bound + S (a) = (p))))
  13. specialize hc (i)
  14. apply hc
  15. exact hi
  16. cases ha
  17. cases ha_witness
  18. exists x
  19. exists 0
  20. exists x
  21. split
  22. exact ha_witness_left
  23. split
  24. specialize hz (i)
  25. apply hz
  26. exact hi
  27. split
  28. exact ha_witness_left
  29. specialize prime_field_add_zero_right (p)
  30. specialize prime_field_add_zero_right (x)
  31. apply prime_field_add_zero_right
  32. exact hp
  33. exact ha_witness_right
prime_field_polynomial_trim_length_bounds · unchanged support, not a new admission
forall p b c L t d e M. ((((L)=(t)+(M)) /\ (((forall fom_index_pfp_trim_length_sourceinput. (exists fom_gap_pfp_trim_length_sourceinput_index_bound. fom_gap_pfp_trim_length_sourceinput_index_bound + S (fom_index_pfp_trim_length_sourceinput) = L) -> exists fom_value_pfp_trim_length_sourceinput. ((((exists fom_beta_height_pfp_trim_length_sourceinput_entry. fom_beta_height_pfp_trim_length_sourceinput_entry + S (fom_value_pfp_trim_length_sourceinput) = S ((S (fom_index_pfp_trim_length_sourceinput)) * c)) /\ exists fom_beta_quotient_pfp_trim_length_sourceinput_entry. b = fom_beta_quotient_pfp_trim_length_sourceinput_entry * S ((S (fom_index_pfp_trim_length_sourceinput)) * c) + (fom_value_pfp_trim_length_sourceinput))) /\ (exists fom_gap_pfp_trim_length_sourceinput_value_bound. fom_gap_pfp_trim_length_sourceinput_value_bound + S (fom_value_pfp_trim_length_sourceinput) = p))) /\ (((forall pfp_repeat_index_trim_length_sourceremoved. (exists pfa_gap_trim_length_sourceremovedindex. pfa_gap_trim_length_sourceremovedindex + S (pfp_repeat_index_trim_length_sourceremoved) = (t)) -> (((exists ff_h_pfp_trim_length_sourceremovedentry. ff_h_pfp_trim_length_sourceremovedentry + S (0) = S ((S (pfp_repeat_index_trim_length_sourceremoved)) * c)) /\ exists ff_q_pfp_trim_length_sourceremovedentry. b = ff_q_pfp_trim_length_sourceremovedentry * S ((S (pfp_repeat_index_trim_length_sourceremoved)) * c) + (0)))) /\ (((forall pftrim_index_trim_length_sourcesuffix pftrim_value_trim_length_sourcesuffix. (exists pfa_gap_trim_length_sourcesuffixbound. pfa_gap_trim_length_sourcesuffixbound + S (pftrim_index_trim_length_sourcesuffix) = (M)) -> (((exists ff_h_pfp_trim_length_sourcesuffixsource. ff_h_pfp_trim_length_sourcesuffixsource + S (pftrim_value_trim_length_sourcesuffix) = S ((S ((t)+pftrim_index_trim_length_sourcesuffix)) * c)) /\ exists ff_q_pfp_trim_length_sourcesuffixsource. b = ff_q_pfp_trim_length_sourcesuffixsource * S ((S ((t)+pftrim_index_trim_length_sourcesuffix)) * c) + (pftrim_value_trim_length_sourcesuffix))) -> (((exists ff_h_pfp_trim_length_sourcesuffixoutput. ff_h_pfp_trim_length_sourcesuffixoutput + S (pftrim_value_trim_length_sourcesuffix) = S ((S (pftrim_index_trim_length_sourcesuffix)) * e)) /\ exists ff_q_pfp_trim_length_sourcesuffixoutput. d = ff_q_pfp_trim_length_sourcesuffixoutput * S ((S (pftrim_index_trim_length_sourcesuffix)) * e) + (pftrim_value_trim_length_sourcesuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_trim_length_sourcenormal. ((((exists ff_h_pfp_trim_length_sourcenormalentry. ff_h_pfp_trim_length_sourcenormalentry + S (pftrim_leading_trim_length_sourcenormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_trim_length_sourcenormalentry. d = ff_q_pfp_trim_length_sourcenormalentry * S ((S (0)) * e) + (pftrim_leading_trim_length_sourcenormal))) /\ ((~(pftrim_leading_trim_length_sourcenormal=0))))))))))))))) -> ((exists pftrim_gap_removed_bound. pftrim_gap_removed_bound+(t)=(L)) /\ ((exists pftrim_gap_retained_bound. pftrim_gap_retained_bound+(M)=(L))))
  1. intro p
  2. intro b
  3. intro c
  4. intro L
  5. intro t
  6. intro d
  7. intro e
  8. intro M
  9. intro h
  10. cases h
  11. cases h_right
  12. cases h_right_right
  13. cases h_right_right_right
  14. split
  15. exists M
  16. trans t+M
  17. apply add_comm
  18. symm
  19. exact h_left
  20. exists t
  21. symm
  22. exact h_left
polynomial_quotient_length_exists · unchanged support, not a new admission
forall L d. exists q. (((((q)=0) /\ ((exists pfc_gap_division_length_existsshort. pfc_gap_division_length_existsshort+(L)=(d))))) \/ (((~((q)=0)) /\ (((q)+(d)=(L))))))
  1. intro L
  2. intro d
  3. have horder : (exists pfc_gap_division_length_short. pfc_gap_division_length_short+(L)=(d)) \/ (exists pfa_gap_division_length_long. pfa_gap_division_length_long + S (d) = (L))
  4. specialize le_or_lt (L)
  5. specialize le_or_lt (d)
  6. apply le_or_lt
  7. cases horder
  8. exists 0
  9. left
  10. split
  11. refl
  12. exact horder_left
  13. cases horder_right
  14. exists S x
  15. right
  16. split
  17. intro hz
  18. specialize succ_ne_zero (x)
  19. apply succ_ne_zero
  20. exact hz
  21. trans x+S d
  22. simp [add_succ_left]
  23. exact horder_right_witness
prime_field_polynomial_quotient_prefix_empty · unchanged support, not a new admission
forall p k ab ac bb bc M qb qc. forall pfd_index_division_empty. (exists pfa_gap_division_emptybound. pfa_gap_division_emptybound + S (pfd_index_division_empty) = (0)) -> exists pfd_value_division_empty. ((((exists ff_h_pfp_division_emptyentry. ff_h_pfp_division_emptyentry + S (pfd_value_division_empty) = S ((S (pfd_index_division_empty)) * qc)) /\ exists ff_q_pfp_division_emptyentry. qb = ff_q_pfp_division_emptyentry * S ((S (pfd_index_division_empty)) * qc) + (pfd_value_division_empty))) /\ ((exists pfd_input_division_emptystep pfd_previous_division_emptystep pfd_difference_division_emptystep. ((((exists ff_h_pfp_division_emptystepinput. ff_h_pfp_division_emptystepinput + S (pfd_input_division_emptystep) = S ((S (pfd_index_division_empty)) * ac)) /\ exists ff_q_pfp_division_emptystepinput. ab = ff_q_pfp_division_emptystepinput * S ((S (pfd_index_division_empty)) * ac) + (pfd_input_division_emptystep))) /\ (((exists pfc_terms_code_division_emptystepprevious pfc_terms_scale_division_emptystepprevious pfc_natural_sum_division_emptystepprevious. ((forall pfc_index_division_emptysteppreviousdiagonal. (exists pfa_gap_division_emptysteppreviousdiagonalbound. pfa_gap_division_emptysteppreviousdiagonalbound + S (pfc_index_division_emptysteppreviousdiagonal) = (S (pfd_index_division_empty))) -> exists pfc_value_division_emptysteppreviousdiagonal. ((((exists ff_h_pfp_division_emptysteppreviousdiagonalentry. ff_h_pfp_division_emptysteppreviousdiagonalentry + S (pfc_value_division_emptysteppreviousdiagonal) = S ((S (pfc_index_division_emptysteppreviousdiagonal)) * pfc_terms_scale_division_emptystepprevious)) /\ exists ff_q_pfp_division_emptysteppreviousdiagonalentry. pfc_terms_code_division_emptystepprevious = ff_q_pfp_division_emptysteppreviousdiagonalentry * S ((S (pfc_index_division_emptysteppreviousdiagonal)) * pfc_terms_scale_division_emptystepprevious) + (pfc_value_division_emptysteppreviousdiagonal))) /\ ((exists pfc_complement_division_emptysteppreviousdiagonalterm pfc_left_division_emptysteppreviousdiagonalterm pfc_right_division_emptysteppreviousdiagonalterm. (((pfc_index_division_emptysteppreviousdiagonal)+pfc_complement_division_emptysteppreviousdiagonalterm=(pfd_index_division_empty)) /\ ((((((exists pfa_gap_division_emptysteppreviousdiagonaltermleftinside. pfa_gap_division_emptysteppreviousdiagonaltermleftinside + S (pfc_index_division_emptysteppreviousdiagonal) = (pfd_index_division_empty)) /\ ((((exists ff_h_pfp_division_emptysteppreviousdiagonaltermleftentry. ff_h_pfp_division_emptysteppreviousdiagonaltermleftentry + S (pfc_left_division_emptysteppreviousdiagonalterm) = S ((S (pfc_index_division_emptysteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_emptysteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_emptysteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_emptysteppreviousdiagonal)) * qc) + (pfc_left_division_emptysteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_emptysteppreviousdiagonaltermleftoutside. pfc_gap_division_emptysteppreviousdiagonaltermleftoutside+(pfd_index_division_empty)=(pfc_index_division_emptysteppreviousdiagonal)) /\ (((pfc_left_division_emptysteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_emptysteppreviousdiagonaltermrightinside. pfa_gap_division_emptysteppreviousdiagonaltermrightinside + S (pfc_complement_division_emptysteppreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_emptysteppreviousdiagonaltermrightentry. ff_h_pfp_division_emptysteppreviousdiagonaltermrightentry + S (pfc_right_division_emptysteppreviousdiagonalterm) = S ((S (pfc_complement_division_emptysteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_emptysteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_emptysteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_emptysteppreviousdiagonalterm)) * bc) + (pfc_right_division_emptysteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_emptysteppreviousdiagonaltermrightoutside. pfc_gap_division_emptysteppreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_emptysteppreviousdiagonalterm)) /\ (((pfc_right_division_emptysteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_emptysteppreviousdiagonal)=pfc_left_division_emptysteppreviousdiagonalterm*pfc_right_division_emptysteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_emptystepprevioussum fs_v_pfc_division_emptystepprevioussum. ((((exists fs_h_pfc_division_emptystepprevioussum_body_start. fs_h_pfc_division_emptystepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_emptystepprevioussum)) /\ exists fs_q_pfc_division_emptystepprevioussum_body_start. fs_u_pfc_division_emptystepprevioussum = fs_q_pfc_division_emptystepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_emptystepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_emptystepprevioussum_body_terminal. fs_h_pfc_division_emptystepprevioussum_body_terminal + S (pfc_natural_sum_division_emptystepprevious) = S ((S (S (pfd_index_division_empty))) * fs_v_pfc_division_emptystepprevioussum)) /\ exists fs_q_pfc_division_emptystepprevioussum_body_terminal. fs_u_pfc_division_emptystepprevioussum = fs_q_pfc_division_emptystepprevioussum_body_terminal * S ((S (S (pfd_index_division_empty))) * fs_v_pfc_division_emptystepprevioussum) + (pfc_natural_sum_division_emptystepprevious))) /\ forall fs_i_pfc_division_emptystepprevioussum_body_steps. (exists fs_lt_pfc_division_emptystepprevioussum_body_steps_bound. fs_lt_pfc_division_emptystepprevioussum_body_steps_bound + S fs_i_pfc_division_emptystepprevioussum_body_steps = S (pfd_index_division_empty)) -> exists fs_a_pfc_division_emptystepprevioussum_body_steps fs_r_pfc_division_emptystepprevioussum_body_steps fs_s_pfc_division_emptystepprevioussum_body_steps. ((((exists fs_h_pfc_division_emptystepprevioussum_body_steps_summand. fs_h_pfc_division_emptystepprevioussum_body_steps_summand + S (fs_a_pfc_division_emptystepprevioussum_body_steps) = S ((S (fs_i_pfc_division_emptystepprevioussum_body_steps)) * pfc_terms_scale_division_emptystepprevious)) /\ exists fs_q_pfc_division_emptystepprevioussum_body_steps_summand. pfc_terms_code_division_emptystepprevious = fs_q_pfc_division_emptystepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_emptystepprevioussum_body_steps)) * pfc_terms_scale_division_emptystepprevious) + (fs_a_pfc_division_emptystepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_emptystepprevioussum_body_steps_partial. fs_h_pfc_division_emptystepprevioussum_body_steps_partial + S (fs_r_pfc_division_emptystepprevioussum_body_steps) = S ((S (fs_i_pfc_division_emptystepprevioussum_body_steps)) * fs_v_pfc_division_emptystepprevioussum)) /\ exists fs_q_pfc_division_emptystepprevioussum_body_steps_partial. fs_u_pfc_division_emptystepprevioussum = fs_q_pfc_division_emptystepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_emptystepprevioussum_body_steps)) * fs_v_pfc_division_emptystepprevioussum) + (fs_r_pfc_division_emptystepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_emptystepprevioussum_body_steps_successor. fs_h_pfc_division_emptystepprevioussum_body_steps_successor + S (fs_s_pfc_division_emptystepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_emptystepprevioussum_body_steps)) * fs_v_pfc_division_emptystepprevioussum)) /\ exists fs_q_pfc_division_emptystepprevioussum_body_steps_successor. fs_u_pfc_division_emptystepprevioussum = fs_q_pfc_division_emptystepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_emptystepprevioussum_body_steps)) * fs_v_pfc_division_emptystepprevioussum) + (fs_s_pfc_division_emptystepprevioussum_body_steps))) /\ fs_s_pfc_division_emptystepprevioussum_body_steps = fs_r_pfc_division_emptystepprevioussum_body_steps + fs_a_pfc_division_emptystepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_emptysteppreviousresiduebound. pfa_gap_division_emptysteppreviousresiduebound + S (pfd_previous_division_emptystep) = (p)) /\ ((exists pfa_offset_left_division_emptysteppreviousresiduecongruence pfa_offset_right_division_emptysteppreviousresiduecongruence. (pfc_natural_sum_division_emptystepprevious) + (p) * pfa_offset_left_division_emptysteppreviousresiduecongruence = (pfd_previous_division_emptystep) + (p) * pfa_offset_right_division_emptysteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_emptystepsubtractleft. pfa_gap_division_emptystepsubtractleft + S (pfd_previous_division_emptystep) = (p)) /\ (((exists pfa_gap_division_emptystepsubtractright. pfa_gap_division_emptystepsubtractright + S (pfd_difference_division_emptystep) = (p)) /\ ((((exists pfa_gap_division_emptystepsubtractresultbound. pfa_gap_division_emptystepsubtractresultbound + S (pfd_input_division_emptystep) = (p)) /\ ((exists pfa_offset_left_division_emptystepsubtractresultcongruence pfa_offset_right_division_emptystepsubtractresultcongruence. ((pfd_previous_division_emptystep) + (pfd_difference_division_emptystep)) + (p) * pfa_offset_left_division_emptystepsubtractresultcongruence = (pfd_input_division_emptystep) + (p) * pfa_offset_right_division_emptystepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_emptystepmultiplyleft. pfa_gap_division_emptystepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_emptystepmultiplyright. pfa_gap_division_emptystepmultiplyright + S (pfd_difference_division_emptystep) = (p)) /\ ((((exists pfa_gap_division_emptystepmultiplyresultbound. pfa_gap_division_emptystepmultiplyresultbound + S (pfd_value_division_empty) = (p)) /\ ((exists pfa_offset_left_division_emptystepmultiplyresultcongruence pfa_offset_right_division_emptystepmultiplyresultcongruence. ((k) * (pfd_difference_division_emptystep)) + (p) * pfa_offset_left_division_emptystepmultiplyresultcongruence = (pfd_value_division_empty) + (p) * pfa_offset_right_division_emptystepmultiplyresultcongruence))))))))))))))))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro M
  8. intro qb
  9. intro qc
  10. intro i
  11. intro hi
  12. exfalso
  13. specialize lt_not_le (i)
  14. specialize lt_not_le (0)
  15. apply lt_not_le
  16. exact hi
  17. specialize zero_le (i)
  18. apply zero_le
polynomial_zero_extended_entry_transport · unchanged support, not a new admission
forall b c d e L i a. (forall mdr_i_pfp_pad_recode mdr_a_pfp_pad_recode. (exists mdr_gap_pfp_pad_recodeb. mdr_gap_pfp_pad_recodeb + S (mdr_i_pfp_pad_recode) = (L)) -> (((exists ff_h_mdr_pfp_pad_recodeo. ff_h_mdr_pfp_pad_recodeo + S (mdr_a_pfp_pad_recode) = S ((S (mdr_i_pfp_pad_recode)) * c)) /\ exists ff_q_mdr_pfp_pad_recodeo. b = ff_q_mdr_pfp_pad_recodeo * S ((S (mdr_i_pfp_pad_recode)) * c) + (mdr_a_pfp_pad_recode))) -> (((exists ff_h_mdr_pfp_pad_recoden. ff_h_mdr_pfp_pad_recoden + S (mdr_a_pfp_pad_recode) = S ((S (mdr_i_pfp_pad_recode)) * e)) /\ exists ff_q_mdr_pfp_pad_recoden. d = ff_q_mdr_pfp_pad_recoden * S ((S (mdr_i_pfp_pad_recode)) * e) + (mdr_a_pfp_pad_recode)))) -> ((((exists pfa_gap_pad_oldinside. pfa_gap_pad_oldinside + S (i) = (L)) /\ ((((exists ff_h_pfp_pad_oldentry. ff_h_pfp_pad_oldentry + S (a) = S ((S (i)) * c)) /\ exists ff_q_pfp_pad_oldentry. b = ff_q_pfp_pad_oldentry * S ((S (i)) * c) + (a)))))) \/ (((exists pfc_gap_pad_oldoutside. pfc_gap_pad_oldoutside+(L)=(i)) /\ (((a)=0))))) -> ((((exists pfa_gap_pad_newinside. pfa_gap_pad_newinside + S (i) = (L)) /\ ((((exists ff_h_pfp_pad_newentry. ff_h_pfp_pad_newentry + S (a) = S ((S (i)) * e)) /\ exists ff_q_pfp_pad_newentry. d = ff_q_pfp_pad_newentry * S ((S (i)) * e) + (a)))))) \/ (((exists pfc_gap_pad_newoutside. pfc_gap_pad_newoutside+(L)=(i)) /\ (((a)=0)))))
  1. intro b
  2. intro c
  3. intro d
  4. intro e
  5. intro L
  6. intro i
  7. intro a
  8. intro he
  9. intro ha
  10. cases ha
  11. cases ha_left
  12. left
  13. split
  14. exact ha_left_left
  15. specialize he (i)
  16. specialize he (a)
  17. apply he
  18. exact ha_left_left
  19. exact ha_left_right
  20. right
  21. exact ha_right
polynomial_diagonal_term_transport · unchanged support, not a new admission
forall ab ac L bb bc M AB AC BB BC i j t. (forall mdr_i_pfp_term_transport_a mdr_a_pfp_term_transport_a. (exists mdr_gap_pfp_term_transport_ab. mdr_gap_pfp_term_transport_ab + S (mdr_i_pfp_term_transport_a) = (L)) -> (((exists ff_h_mdr_pfp_term_transport_ao. ff_h_mdr_pfp_term_transport_ao + S (mdr_a_pfp_term_transport_a) = S ((S (mdr_i_pfp_term_transport_a)) * ac)) /\ exists ff_q_mdr_pfp_term_transport_ao. ab = ff_q_mdr_pfp_term_transport_ao * S ((S (mdr_i_pfp_term_transport_a)) * ac) + (mdr_a_pfp_term_transport_a))) -> (((exists ff_h_mdr_pfp_term_transport_an. ff_h_mdr_pfp_term_transport_an + S (mdr_a_pfp_term_transport_a) = S ((S (mdr_i_pfp_term_transport_a)) * AC)) /\ exists ff_q_mdr_pfp_term_transport_an. AB = ff_q_mdr_pfp_term_transport_an * S ((S (mdr_i_pfp_term_transport_a)) * AC) + (mdr_a_pfp_term_transport_a)))) -> (forall mdr_i_pfp_term_transport_b mdr_a_pfp_term_transport_b. (exists mdr_gap_pfp_term_transport_bb. mdr_gap_pfp_term_transport_bb + S (mdr_i_pfp_term_transport_b) = (M)) -> (((exists ff_h_mdr_pfp_term_transport_bo. ff_h_mdr_pfp_term_transport_bo + S (mdr_a_pfp_term_transport_b) = S ((S (mdr_i_pfp_term_transport_b)) * bc)) /\ exists ff_q_mdr_pfp_term_transport_bo. bb = ff_q_mdr_pfp_term_transport_bo * S ((S (mdr_i_pfp_term_transport_b)) * bc) + (mdr_a_pfp_term_transport_b))) -> (((exists ff_h_mdr_pfp_term_transport_bn. ff_h_mdr_pfp_term_transport_bn + S (mdr_a_pfp_term_transport_b) = S ((S (mdr_i_pfp_term_transport_b)) * BC)) /\ exists ff_q_mdr_pfp_term_transport_bn. BB = ff_q_mdr_pfp_term_transport_bn * S ((S (mdr_i_pfp_term_transport_b)) * BC) + (mdr_a_pfp_term_transport_b)))) -> (exists pfc_complement_term_transport_old pfc_left_term_transport_old pfc_right_term_transport_old. (((j)+pfc_complement_term_transport_old=(i)) /\ ((((((exists pfa_gap_term_transport_oldleftinside. pfa_gap_term_transport_oldleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_transport_oldleftentry. ff_h_pfp_term_transport_oldleftentry + S (pfc_left_term_transport_old) = S ((S (j)) * ac)) /\ exists ff_q_pfp_term_transport_oldleftentry. ab = ff_q_pfp_term_transport_oldleftentry * S ((S (j)) * ac) + (pfc_left_term_transport_old)))))) \/ (((exists pfc_gap_term_transport_oldleftoutside. pfc_gap_term_transport_oldleftoutside+(L)=(j)) /\ (((pfc_left_term_transport_old)=0))))) /\ ((((((exists pfa_gap_term_transport_oldrightinside. pfa_gap_term_transport_oldrightinside + S (pfc_complement_term_transport_old) = (M)) /\ ((((exists ff_h_pfp_term_transport_oldrightentry. ff_h_pfp_term_transport_oldrightentry + S (pfc_right_term_transport_old) = S ((S (pfc_complement_term_transport_old)) * bc)) /\ exists ff_q_pfp_term_transport_oldrightentry. bb = ff_q_pfp_term_transport_oldrightentry * S ((S (pfc_complement_term_transport_old)) * bc) + (pfc_right_term_transport_old)))))) \/ (((exists pfc_gap_term_transport_oldrightoutside. pfc_gap_term_transport_oldrightoutside+(M)=(pfc_complement_term_transport_old)) /\ (((pfc_right_term_transport_old)=0))))) /\ (((t)=pfc_left_term_transport_old*pfc_right_term_transport_old)))))))) -> (exists pfc_complement_term_transport_new pfc_left_term_transport_new pfc_right_term_transport_new. (((j)+pfc_complement_term_transport_new=(i)) /\ ((((((exists pfa_gap_term_transport_newleftinside. pfa_gap_term_transport_newleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_term_transport_newleftentry. ff_h_pfp_term_transport_newleftentry + S (pfc_left_term_transport_new) = S ((S (j)) * AC)) /\ exists ff_q_pfp_term_transport_newleftentry. AB = ff_q_pfp_term_transport_newleftentry * S ((S (j)) * AC) + (pfc_left_term_transport_new)))))) \/ (((exists pfc_gap_term_transport_newleftoutside. pfc_gap_term_transport_newleftoutside+(L)=(j)) /\ (((pfc_left_term_transport_new)=0))))) /\ ((((((exists pfa_gap_term_transport_newrightinside. pfa_gap_term_transport_newrightinside + S (pfc_complement_term_transport_new) = (M)) /\ ((((exists ff_h_pfp_term_transport_newrightentry. ff_h_pfp_term_transport_newrightentry + S (pfc_right_term_transport_new) = S ((S (pfc_complement_term_transport_new)) * BC)) /\ exists ff_q_pfp_term_transport_newrightentry. BB = ff_q_pfp_term_transport_newrightentry * S ((S (pfc_complement_term_transport_new)) * BC) + (pfc_right_term_transport_new)))))) \/ (((exists pfc_gap_term_transport_newrightoutside. pfc_gap_term_transport_newrightoutside+(M)=(pfc_complement_term_transport_new)) /\ (((pfc_right_term_transport_new)=0))))) /\ (((t)=pfc_left_term_transport_new*pfc_right_term_transport_new))))))))
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro AB
  8. intro AC
  9. intro BB
  10. intro BC
  11. intro i
  12. intro j
  13. intro t
  14. intro ha
  15. intro hb
  16. intro ht
  17. cases ht
  18. cases ht_witness
  19. cases ht_witness_witness
  20. cases ht_witness_witness_witness
  21. cases ht_witness_witness_witness_right
  22. cases ht_witness_witness_witness_right_right
  23. exists x
  24. exists x1
  25. exists x2
  26. split
  27. exact ht_witness_witness_witness_left
  28. split
  29. specialize polynomial_zero_extended_entry_transport (ab)
  30. specialize polynomial_zero_extended_entry_transport (ac)
  31. specialize polynomial_zero_extended_entry_transport (AB)
  32. specialize polynomial_zero_extended_entry_transport (AC)
  33. specialize polynomial_zero_extended_entry_transport (L)
  34. specialize polynomial_zero_extended_entry_transport (j)
  35. specialize polynomial_zero_extended_entry_transport (x1)
  36. apply polynomial_zero_extended_entry_transport
  37. exact ha
  38. exact ht_witness_witness_witness_right_left
  39. split
  40. specialize polynomial_zero_extended_entry_transport (bb)
  41. specialize polynomial_zero_extended_entry_transport (bc)
  42. specialize polynomial_zero_extended_entry_transport (BB)
  43. specialize polynomial_zero_extended_entry_transport (BC)
  44. specialize polynomial_zero_extended_entry_transport (M)
  45. specialize polynomial_zero_extended_entry_transport (x)
  46. specialize polynomial_zero_extended_entry_transport (x2)
  47. apply polynomial_zero_extended_entry_transport
  48. exact hb
  49. exact ht_witness_witness_witness_right_right_left
  50. exact ht_witness_witness_witness_right_right_right
polynomial_diagonal_prefix_input_transport · unchanged support, not a new admission
forall ab ac L bb bc M I AB AC BB BC db dc N. (forall mdr_i_pfp_diagonal_recode_a mdr_a_pfp_diagonal_recode_a. (exists mdr_gap_pfp_diagonal_recode_ab. mdr_gap_pfp_diagonal_recode_ab + S (mdr_i_pfp_diagonal_recode_a) = (L)) -> (((exists ff_h_mdr_pfp_diagonal_recode_ao. ff_h_mdr_pfp_diagonal_recode_ao + S (mdr_a_pfp_diagonal_recode_a) = S ((S (mdr_i_pfp_diagonal_recode_a)) * ac)) /\ exists ff_q_mdr_pfp_diagonal_recode_ao. ab = ff_q_mdr_pfp_diagonal_recode_ao * S ((S (mdr_i_pfp_diagonal_recode_a)) * ac) + (mdr_a_pfp_diagonal_recode_a))) -> (((exists ff_h_mdr_pfp_diagonal_recode_an. ff_h_mdr_pfp_diagonal_recode_an + S (mdr_a_pfp_diagonal_recode_a) = S ((S (mdr_i_pfp_diagonal_recode_a)) * AC)) /\ exists ff_q_mdr_pfp_diagonal_recode_an. AB = ff_q_mdr_pfp_diagonal_recode_an * S ((S (mdr_i_pfp_diagonal_recode_a)) * AC) + (mdr_a_pfp_diagonal_recode_a)))) -> (forall mdr_i_pfp_diagonal_recode_b mdr_a_pfp_diagonal_recode_b. (exists mdr_gap_pfp_diagonal_recode_bb. mdr_gap_pfp_diagonal_recode_bb + S (mdr_i_pfp_diagonal_recode_b) = (M)) -> (((exists ff_h_mdr_pfp_diagonal_recode_bo. ff_h_mdr_pfp_diagonal_recode_bo + S (mdr_a_pfp_diagonal_recode_b) = S ((S (mdr_i_pfp_diagonal_recode_b)) * bc)) /\ exists ff_q_mdr_pfp_diagonal_recode_bo. bb = ff_q_mdr_pfp_diagonal_recode_bo * S ((S (mdr_i_pfp_diagonal_recode_b)) * bc) + (mdr_a_pfp_diagonal_recode_b))) -> (((exists ff_h_mdr_pfp_diagonal_recode_bn. ff_h_mdr_pfp_diagonal_recode_bn + S (mdr_a_pfp_diagonal_recode_b) = S ((S (mdr_i_pfp_diagonal_recode_b)) * BC)) /\ exists ff_q_mdr_pfp_diagonal_recode_bn. BB = ff_q_mdr_pfp_diagonal_recode_bn * S ((S (mdr_i_pfp_diagonal_recode_b)) * BC) + (mdr_a_pfp_diagonal_recode_b)))) -> (forall pfc_index_diagonal_old. (exists pfa_gap_diagonal_oldbound. pfa_gap_diagonal_oldbound + S (pfc_index_diagonal_old) = (N)) -> exists pfc_value_diagonal_old. ((((exists ff_h_pfp_diagonal_oldentry. ff_h_pfp_diagonal_oldentry + S (pfc_value_diagonal_old) = S ((S (pfc_index_diagonal_old)) * dc)) /\ exists ff_q_pfp_diagonal_oldentry. db = ff_q_pfp_diagonal_oldentry * S ((S (pfc_index_diagonal_old)) * dc) + (pfc_value_diagonal_old))) /\ ((exists pfc_complement_diagonal_oldterm pfc_left_diagonal_oldterm pfc_right_diagonal_oldterm. (((pfc_index_diagonal_old)+pfc_complement_diagonal_oldterm=(I)) /\ ((((((exists pfa_gap_diagonal_oldtermleftinside. pfa_gap_diagonal_oldtermleftinside + S (pfc_index_diagonal_old) = (L)) /\ ((((exists ff_h_pfp_diagonal_oldtermleftentry. ff_h_pfp_diagonal_oldtermleftentry + S (pfc_left_diagonal_oldterm) = S ((S (pfc_index_diagonal_old)) * ac)) /\ exists ff_q_pfp_diagonal_oldtermleftentry. ab = ff_q_pfp_diagonal_oldtermleftentry * S ((S (pfc_index_diagonal_old)) * ac) + (pfc_left_diagonal_oldterm)))))) \/ (((exists pfc_gap_diagonal_oldtermleftoutside. pfc_gap_diagonal_oldtermleftoutside+(L)=(pfc_index_diagonal_old)) /\ (((pfc_left_diagonal_oldterm)=0))))) /\ ((((((exists pfa_gap_diagonal_oldtermrightinside. pfa_gap_diagonal_oldtermrightinside + S (pfc_complement_diagonal_oldterm) = (M)) /\ ((((exists ff_h_pfp_diagonal_oldtermrightentry. ff_h_pfp_diagonal_oldtermrightentry + S (pfc_right_diagonal_oldterm) = S ((S (pfc_complement_diagonal_oldterm)) * bc)) /\ exists ff_q_pfp_diagonal_oldtermrightentry. bb = ff_q_pfp_diagonal_oldtermrightentry * S ((S (pfc_complement_diagonal_oldterm)) * bc) + (pfc_right_diagonal_oldterm)))))) \/ (((exists pfc_gap_diagonal_oldtermrightoutside. pfc_gap_diagonal_oldtermrightoutside+(M)=(pfc_complement_diagonal_oldterm)) /\ (((pfc_right_diagonal_oldterm)=0))))) /\ (((pfc_value_diagonal_old)=pfc_left_diagonal_oldterm*pfc_right_diagonal_oldterm))))))))))) -> (forall pfc_index_diagonal_new. (exists pfa_gap_diagonal_newbound. pfa_gap_diagonal_newbound + S (pfc_index_diagonal_new) = (N)) -> exists pfc_value_diagonal_new. ((((exists ff_h_pfp_diagonal_newentry. ff_h_pfp_diagonal_newentry + S (pfc_value_diagonal_new) = S ((S (pfc_index_diagonal_new)) * dc)) /\ exists ff_q_pfp_diagonal_newentry. db = ff_q_pfp_diagonal_newentry * S ((S (pfc_index_diagonal_new)) * dc) + (pfc_value_diagonal_new))) /\ ((exists pfc_complement_diagonal_newterm pfc_left_diagonal_newterm pfc_right_diagonal_newterm. (((pfc_index_diagonal_new)+pfc_complement_diagonal_newterm=(I)) /\ ((((((exists pfa_gap_diagonal_newtermleftinside. pfa_gap_diagonal_newtermleftinside + S (pfc_index_diagonal_new) = (L)) /\ ((((exists ff_h_pfp_diagonal_newtermleftentry. ff_h_pfp_diagonal_newtermleftentry + S (pfc_left_diagonal_newterm) = S ((S (pfc_index_diagonal_new)) * AC)) /\ exists ff_q_pfp_diagonal_newtermleftentry. AB = ff_q_pfp_diagonal_newtermleftentry * S ((S (pfc_index_diagonal_new)) * AC) + (pfc_left_diagonal_newterm)))))) \/ (((exists pfc_gap_diagonal_newtermleftoutside. pfc_gap_diagonal_newtermleftoutside+(L)=(pfc_index_diagonal_new)) /\ (((pfc_left_diagonal_newterm)=0))))) /\ ((((((exists pfa_gap_diagonal_newtermrightinside. pfa_gap_diagonal_newtermrightinside + S (pfc_complement_diagonal_newterm) = (M)) /\ ((((exists ff_h_pfp_diagonal_newtermrightentry. ff_h_pfp_diagonal_newtermrightentry + S (pfc_right_diagonal_newterm) = S ((S (pfc_complement_diagonal_newterm)) * BC)) /\ exists ff_q_pfp_diagonal_newtermrightentry. BB = ff_q_pfp_diagonal_newtermrightentry * S ((S (pfc_complement_diagonal_newterm)) * BC) + (pfc_right_diagonal_newterm)))))) \/ (((exists pfc_gap_diagonal_newtermrightoutside. pfc_gap_diagonal_newtermrightoutside+(M)=(pfc_complement_diagonal_newterm)) /\ (((pfc_right_diagonal_newterm)=0))))) /\ (((pfc_value_diagonal_new)=pfc_left_diagonal_newterm*pfc_right_diagonal_newterm)))))))))))
  1. intro ab
  2. intro ac
  3. intro L
  4. intro bb
  5. intro bc
  6. intro M
  7. intro I
  8. intro AB
  9. intro AC
  10. intro BB
  11. intro BC
  12. intro db
  13. intro dc
  14. intro N
  15. intro ha
  16. intro hb
  17. intro hd
  18. intro j
  19. intro hj
  20. have hv : exists t. ((((exists ff_h_pfp_diagonal_chosen_entry. ff_h_pfp_diagonal_chosen_entry + S (t) = S ((S (j)) * dc)) /\ exists ff_q_pfp_diagonal_chosen_entry. db = ff_q_pfp_diagonal_chosen_entry * S ((S (j)) * dc) + (t))) /\ ((exists pfc_complement_diagonal_chosen_term pfc_left_diagonal_chosen_term pfc_right_diagonal_chosen_term. (((j)+pfc_complement_diagonal_chosen_term=(I)) /\ ((((((exists pfa_gap_diagonal_chosen_termleftinside. pfa_gap_diagonal_chosen_termleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_diagonal_chosen_termleftentry. ff_h_pfp_diagonal_chosen_termleftentry + S (pfc_left_diagonal_chosen_term) = S ((S (j)) * ac)) /\ exists ff_q_pfp_diagonal_chosen_termleftentry. ab = ff_q_pfp_diagonal_chosen_termleftentry * S ((S (j)) * ac) + (pfc_left_diagonal_chosen_term)))))) \/ (((exists pfc_gap_diagonal_chosen_termleftoutside. pfc_gap_diagonal_chosen_termleftoutside+(L)=(j)) /\ (((pfc_left_diagonal_chosen_term)=0))))) /\ ((((((exists pfa_gap_diagonal_chosen_termrightinside. pfa_gap_diagonal_chosen_termrightinside + S (pfc_complement_diagonal_chosen_term) = (M)) /\ ((((exists ff_h_pfp_diagonal_chosen_termrightentry. ff_h_pfp_diagonal_chosen_termrightentry + S (pfc_right_diagonal_chosen_term) = S ((S (pfc_complement_diagonal_chosen_term)) * bc)) /\ exists ff_q_pfp_diagonal_chosen_termrightentry. bb = ff_q_pfp_diagonal_chosen_termrightentry * S ((S (pfc_complement_diagonal_chosen_term)) * bc) + (pfc_right_diagonal_chosen_term)))))) \/ (((exists pfc_gap_diagonal_chosen_termrightoutside. pfc_gap_diagonal_chosen_termrightoutside+(M)=(pfc_complement_diagonal_chosen_term)) /\ (((pfc_right_diagonal_chosen_term)=0))))) /\ (((t)=pfc_left_diagonal_chosen_term*pfc_right_diagonal_chosen_term))))))))))
  21. specialize hd (j)
  22. apply hd
  23. exact hj
  24. cases hv
  25. cases hv_witness
  26. exists x
  27. split
  28. exact hv_witness_left
  29. specialize polynomial_diagonal_term_transport (ab)
  30. specialize polynomial_diagonal_term_transport (ac)
  31. specialize polynomial_diagonal_term_transport (L)
  32. specialize polynomial_diagonal_term_transport (bb)
  33. specialize polynomial_diagonal_term_transport (bc)
  34. specialize polynomial_diagonal_term_transport (M)
  35. specialize polynomial_diagonal_term_transport (AB)
  36. specialize polynomial_diagonal_term_transport (AC)
  37. specialize polynomial_diagonal_term_transport (BB)
  38. specialize polynomial_diagonal_term_transport (BC)
  39. specialize polynomial_diagonal_term_transport (I)
  40. specialize polynomial_diagonal_term_transport (j)
  41. specialize polynomial_diagonal_term_transport (x)
  42. apply polynomial_diagonal_term_transport
  43. exact ha
  44. exact hb
  45. exact hv_witness_right
prime_field_convolution_coefficient_transport · unchanged support, not a new admission
forall p ab ac L bb bc M i AB AC BB BC r. (forall mdr_i_pfp_coefficient_recode_a mdr_a_pfp_coefficient_recode_a. (exists mdr_gap_pfp_coefficient_recode_ab. mdr_gap_pfp_coefficient_recode_ab + S (mdr_i_pfp_coefficient_recode_a) = (L)) -> (((exists ff_h_mdr_pfp_coefficient_recode_ao. ff_h_mdr_pfp_coefficient_recode_ao + S (mdr_a_pfp_coefficient_recode_a) = S ((S (mdr_i_pfp_coefficient_recode_a)) * ac)) /\ exists ff_q_mdr_pfp_coefficient_recode_ao. ab = ff_q_mdr_pfp_coefficient_recode_ao * S ((S (mdr_i_pfp_coefficient_recode_a)) * ac) + (mdr_a_pfp_coefficient_recode_a))) -> (((exists ff_h_mdr_pfp_coefficient_recode_an. ff_h_mdr_pfp_coefficient_recode_an + S (mdr_a_pfp_coefficient_recode_a) = S ((S (mdr_i_pfp_coefficient_recode_a)) * AC)) /\ exists ff_q_mdr_pfp_coefficient_recode_an. AB = ff_q_mdr_pfp_coefficient_recode_an * S ((S (mdr_i_pfp_coefficient_recode_a)) * AC) + (mdr_a_pfp_coefficient_recode_a)))) -> (forall mdr_i_pfp_coefficient_recode_b mdr_a_pfp_coefficient_recode_b. (exists mdr_gap_pfp_coefficient_recode_bb. mdr_gap_pfp_coefficient_recode_bb + S (mdr_i_pfp_coefficient_recode_b) = (M)) -> (((exists ff_h_mdr_pfp_coefficient_recode_bo. ff_h_mdr_pfp_coefficient_recode_bo + S (mdr_a_pfp_coefficient_recode_b) = S ((S (mdr_i_pfp_coefficient_recode_b)) * bc)) /\ exists ff_q_mdr_pfp_coefficient_recode_bo. bb = ff_q_mdr_pfp_coefficient_recode_bo * S ((S (mdr_i_pfp_coefficient_recode_b)) * bc) + (mdr_a_pfp_coefficient_recode_b))) -> (((exists ff_h_mdr_pfp_coefficient_recode_bn. ff_h_mdr_pfp_coefficient_recode_bn + S (mdr_a_pfp_coefficient_recode_b) = S ((S (mdr_i_pfp_coefficient_recode_b)) * BC)) /\ exists ff_q_mdr_pfp_coefficient_recode_bn. BB = ff_q_mdr_pfp_coefficient_recode_bn * S ((S (mdr_i_pfp_coefficient_recode_b)) * BC) + (mdr_a_pfp_coefficient_recode_b)))) -> (exists pfc_terms_code_coefficient_old pfc_terms_scale_coefficient_old pfc_natural_sum_coefficient_old. ((forall pfc_index_coefficient_olddiagonal. (exists pfa_gap_coefficient_olddiagonalbound. pfa_gap_coefficient_olddiagonalbound + S (pfc_index_coefficient_olddiagonal) = (S (i))) -> exists pfc_value_coefficient_olddiagonal. ((((exists ff_h_pfp_coefficient_olddiagonalentry. ff_h_pfp_coefficient_olddiagonalentry + S (pfc_value_coefficient_olddiagonal) = S ((S (pfc_index_coefficient_olddiagonal)) * pfc_terms_scale_coefficient_old)) /\ exists ff_q_pfp_coefficient_olddiagonalentry. pfc_terms_code_coefficient_old = ff_q_pfp_coefficient_olddiagonalentry * S ((S (pfc_index_coefficient_olddiagonal)) * pfc_terms_scale_coefficient_old) + (pfc_value_coefficient_olddiagonal))) /\ ((exists pfc_complement_coefficient_olddiagonalterm pfc_left_coefficient_olddiagonalterm pfc_right_coefficient_olddiagonalterm. (((pfc_index_coefficient_olddiagonal)+pfc_complement_coefficient_olddiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_olddiagonaltermleftinside. pfa_gap_coefficient_olddiagonaltermleftinside + S (pfc_index_coefficient_olddiagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_olddiagonaltermleftentry. ff_h_pfp_coefficient_olddiagonaltermleftentry + S (pfc_left_coefficient_olddiagonalterm) = S ((S (pfc_index_coefficient_olddiagonal)) * ac)) /\ exists ff_q_pfp_coefficient_olddiagonaltermleftentry. ab = ff_q_pfp_coefficient_olddiagonaltermleftentry * S ((S (pfc_index_coefficient_olddiagonal)) * ac) + (pfc_left_coefficient_olddiagonalterm)))))) \/ (((exists pfc_gap_coefficient_olddiagonaltermleftoutside. pfc_gap_coefficient_olddiagonaltermleftoutside+(L)=(pfc_index_coefficient_olddiagonal)) /\ (((pfc_left_coefficient_olddiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_olddiagonaltermrightinside. pfa_gap_coefficient_olddiagonaltermrightinside + S (pfc_complement_coefficient_olddiagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_olddiagonaltermrightentry. ff_h_pfp_coefficient_olddiagonaltermrightentry + S (pfc_right_coefficient_olddiagonalterm) = S ((S (pfc_complement_coefficient_olddiagonalterm)) * bc)) /\ exists ff_q_pfp_coefficient_olddiagonaltermrightentry. bb = ff_q_pfp_coefficient_olddiagonaltermrightentry * S ((S (pfc_complement_coefficient_olddiagonalterm)) * bc) + (pfc_right_coefficient_olddiagonalterm)))))) \/ (((exists pfc_gap_coefficient_olddiagonaltermrightoutside. pfc_gap_coefficient_olddiagonaltermrightoutside+(M)=(pfc_complement_coefficient_olddiagonalterm)) /\ (((pfc_right_coefficient_olddiagonalterm)=0))))) /\ (((pfc_value_coefficient_olddiagonal)=pfc_left_coefficient_olddiagonalterm*pfc_right_coefficient_olddiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_oldsum fs_v_pfc_coefficient_oldsum. ((((exists fs_h_pfc_coefficient_oldsum_body_start. fs_h_pfc_coefficient_oldsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_oldsum)) /\ exists fs_q_pfc_coefficient_oldsum_body_start. fs_u_pfc_coefficient_oldsum = fs_q_pfc_coefficient_oldsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_oldsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_oldsum_body_terminal. fs_h_pfc_coefficient_oldsum_body_terminal + S (pfc_natural_sum_coefficient_old) = S ((S (S (i))) * fs_v_pfc_coefficient_oldsum)) /\ exists fs_q_pfc_coefficient_oldsum_body_terminal. fs_u_pfc_coefficient_oldsum = fs_q_pfc_coefficient_oldsum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_oldsum) + (pfc_natural_sum_coefficient_old))) /\ forall fs_i_pfc_coefficient_oldsum_body_steps. (exists fs_lt_pfc_coefficient_oldsum_body_steps_bound. fs_lt_pfc_coefficient_oldsum_body_steps_bound + S fs_i_pfc_coefficient_oldsum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_oldsum_body_steps fs_r_pfc_coefficient_oldsum_body_steps fs_s_pfc_coefficient_oldsum_body_steps. ((((exists fs_h_pfc_coefficient_oldsum_body_steps_summand. fs_h_pfc_coefficient_oldsum_body_steps_summand + S (fs_a_pfc_coefficient_oldsum_body_steps) = S ((S (fs_i_pfc_coefficient_oldsum_body_steps)) * pfc_terms_scale_coefficient_old)) /\ exists fs_q_pfc_coefficient_oldsum_body_steps_summand. pfc_terms_code_coefficient_old = fs_q_pfc_coefficient_oldsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_oldsum_body_steps)) * pfc_terms_scale_coefficient_old) + (fs_a_pfc_coefficient_oldsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_oldsum_body_steps_partial. fs_h_pfc_coefficient_oldsum_body_steps_partial + S (fs_r_pfc_coefficient_oldsum_body_steps) = S ((S (fs_i_pfc_coefficient_oldsum_body_steps)) * fs_v_pfc_coefficient_oldsum)) /\ exists fs_q_pfc_coefficient_oldsum_body_steps_partial. fs_u_pfc_coefficient_oldsum = fs_q_pfc_coefficient_oldsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_oldsum_body_steps)) * fs_v_pfc_coefficient_oldsum) + (fs_r_pfc_coefficient_oldsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_oldsum_body_steps_successor. fs_h_pfc_coefficient_oldsum_body_steps_successor + S (fs_s_pfc_coefficient_oldsum_body_steps) = S ((S (S fs_i_pfc_coefficient_oldsum_body_steps)) * fs_v_pfc_coefficient_oldsum)) /\ exists fs_q_pfc_coefficient_oldsum_body_steps_successor. fs_u_pfc_coefficient_oldsum = fs_q_pfc_coefficient_oldsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_oldsum_body_steps)) * fs_v_pfc_coefficient_oldsum) + (fs_s_pfc_coefficient_oldsum_body_steps))) /\ fs_s_pfc_coefficient_oldsum_body_steps = fs_r_pfc_coefficient_oldsum_body_steps + fs_a_pfc_coefficient_oldsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_oldresiduebound. pfa_gap_coefficient_oldresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_coefficient_oldresiduecongruence pfa_offset_right_coefficient_oldresiduecongruence. (pfc_natural_sum_coefficient_old) + (p) * pfa_offset_left_coefficient_oldresiduecongruence = (r) + (p) * pfa_offset_right_coefficient_oldresiduecongruence))))))))) -> (exists pfc_terms_code_coefficient_new pfc_terms_scale_coefficient_new pfc_natural_sum_coefficient_new. ((forall pfc_index_coefficient_newdiagonal. (exists pfa_gap_coefficient_newdiagonalbound. pfa_gap_coefficient_newdiagonalbound + S (pfc_index_coefficient_newdiagonal) = (S (i))) -> exists pfc_value_coefficient_newdiagonal. ((((exists ff_h_pfp_coefficient_newdiagonalentry. ff_h_pfp_coefficient_newdiagonalentry + S (pfc_value_coefficient_newdiagonal) = S ((S (pfc_index_coefficient_newdiagonal)) * pfc_terms_scale_coefficient_new)) /\ exists ff_q_pfp_coefficient_newdiagonalentry. pfc_terms_code_coefficient_new = ff_q_pfp_coefficient_newdiagonalentry * S ((S (pfc_index_coefficient_newdiagonal)) * pfc_terms_scale_coefficient_new) + (pfc_value_coefficient_newdiagonal))) /\ ((exists pfc_complement_coefficient_newdiagonalterm pfc_left_coefficient_newdiagonalterm pfc_right_coefficient_newdiagonalterm. (((pfc_index_coefficient_newdiagonal)+pfc_complement_coefficient_newdiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_newdiagonaltermleftinside. pfa_gap_coefficient_newdiagonaltermleftinside + S (pfc_index_coefficient_newdiagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_newdiagonaltermleftentry. ff_h_pfp_coefficient_newdiagonaltermleftentry + S (pfc_left_coefficient_newdiagonalterm) = S ((S (pfc_index_coefficient_newdiagonal)) * AC)) /\ exists ff_q_pfp_coefficient_newdiagonaltermleftentry. AB = ff_q_pfp_coefficient_newdiagonaltermleftentry * S ((S (pfc_index_coefficient_newdiagonal)) * AC) + (pfc_left_coefficient_newdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_newdiagonaltermleftoutside. pfc_gap_coefficient_newdiagonaltermleftoutside+(L)=(pfc_index_coefficient_newdiagonal)) /\ (((pfc_left_coefficient_newdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_newdiagonaltermrightinside. pfa_gap_coefficient_newdiagonaltermrightinside + S (pfc_complement_coefficient_newdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_newdiagonaltermrightentry. ff_h_pfp_coefficient_newdiagonaltermrightentry + S (pfc_right_coefficient_newdiagonalterm) = S ((S (pfc_complement_coefficient_newdiagonalterm)) * BC)) /\ exists ff_q_pfp_coefficient_newdiagonaltermrightentry. BB = ff_q_pfp_coefficient_newdiagonaltermrightentry * S ((S (pfc_complement_coefficient_newdiagonalterm)) * BC) + (pfc_right_coefficient_newdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_newdiagonaltermrightoutside. pfc_gap_coefficient_newdiagonaltermrightoutside+(M)=(pfc_complement_coefficient_newdiagonalterm)) /\ (((pfc_right_coefficient_newdiagonalterm)=0))))) /\ (((pfc_value_coefficient_newdiagonal)=pfc_left_coefficient_newdiagonalterm*pfc_right_coefficient_newdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_newsum fs_v_pfc_coefficient_newsum. ((((exists fs_h_pfc_coefficient_newsum_body_start. fs_h_pfc_coefficient_newsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_newsum)) /\ exists fs_q_pfc_coefficient_newsum_body_start. fs_u_pfc_coefficient_newsum = fs_q_pfc_coefficient_newsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_newsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_newsum_body_terminal. fs_h_pfc_coefficient_newsum_body_terminal + S (pfc_natural_sum_coefficient_new) = S ((S (S (i))) * fs_v_pfc_coefficient_newsum)) /\ exists fs_q_pfc_coefficient_newsum_body_terminal. fs_u_pfc_coefficient_newsum = fs_q_pfc_coefficient_newsum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_newsum) + (pfc_natural_sum_coefficient_new))) /\ forall fs_i_pfc_coefficient_newsum_body_steps. (exists fs_lt_pfc_coefficient_newsum_body_steps_bound. fs_lt_pfc_coefficient_newsum_body_steps_bound + S fs_i_pfc_coefficient_newsum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_newsum_body_steps fs_r_pfc_coefficient_newsum_body_steps fs_s_pfc_coefficient_newsum_body_steps. ((((exists fs_h_pfc_coefficient_newsum_body_steps_summand. fs_h_pfc_coefficient_newsum_body_steps_summand + S (fs_a_pfc_coefficient_newsum_body_steps) = S ((S (fs_i_pfc_coefficient_newsum_body_steps)) * pfc_terms_scale_coefficient_new)) /\ exists fs_q_pfc_coefficient_newsum_body_steps_summand. pfc_terms_code_coefficient_new = fs_q_pfc_coefficient_newsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_newsum_body_steps)) * pfc_terms_scale_coefficient_new) + (fs_a_pfc_coefficient_newsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_newsum_body_steps_partial. fs_h_pfc_coefficient_newsum_body_steps_partial + S (fs_r_pfc_coefficient_newsum_body_steps) = S ((S (fs_i_pfc_coefficient_newsum_body_steps)) * fs_v_pfc_coefficient_newsum)) /\ exists fs_q_pfc_coefficient_newsum_body_steps_partial. fs_u_pfc_coefficient_newsum = fs_q_pfc_coefficient_newsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_newsum_body_steps)) * fs_v_pfc_coefficient_newsum) + (fs_r_pfc_coefficient_newsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_newsum_body_steps_successor. fs_h_pfc_coefficient_newsum_body_steps_successor + S (fs_s_pfc_coefficient_newsum_body_steps) = S ((S (S fs_i_pfc_coefficient_newsum_body_steps)) * fs_v_pfc_coefficient_newsum)) /\ exists fs_q_pfc_coefficient_newsum_body_steps_successor. fs_u_pfc_coefficient_newsum = fs_q_pfc_coefficient_newsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_newsum_body_steps)) * fs_v_pfc_coefficient_newsum) + (fs_s_pfc_coefficient_newsum_body_steps))) /\ fs_s_pfc_coefficient_newsum_body_steps = fs_r_pfc_coefficient_newsum_body_steps + fs_a_pfc_coefficient_newsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_newresiduebound. pfa_gap_coefficient_newresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_coefficient_newresiduecongruence pfa_offset_right_coefficient_newresiduecongruence. (pfc_natural_sum_coefficient_new) + (p) * pfa_offset_left_coefficient_newresiduecongruence = (r) + (p) * pfa_offset_right_coefficient_newresiduecongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro M
  8. intro i
  9. intro AB
  10. intro AC
  11. intro BB
  12. intro BC
  13. intro r
  14. intro ha
  15. intro hb
  16. intro h
  17. cases h
  18. cases h_witness
  19. cases h_witness_witness
  20. cases h_witness_witness_witness
  21. cases h_witness_witness_witness_right
  22. exists x
  23. exists x1
  24. exists x2
  25. split
  26. specialize polynomial_diagonal_prefix_input_transport (ab)
  27. specialize polynomial_diagonal_prefix_input_transport (ac)
  28. specialize polynomial_diagonal_prefix_input_transport (L)
  29. specialize polynomial_diagonal_prefix_input_transport (bb)
  30. specialize polynomial_diagonal_prefix_input_transport (bc)
  31. specialize polynomial_diagonal_prefix_input_transport (M)
  32. specialize polynomial_diagonal_prefix_input_transport (i)
  33. specialize polynomial_diagonal_prefix_input_transport (AB)
  34. specialize polynomial_diagonal_prefix_input_transport (AC)
  35. specialize polynomial_diagonal_prefix_input_transport (BB)
  36. specialize polynomial_diagonal_prefix_input_transport (BC)
  37. specialize polynomial_diagonal_prefix_input_transport (x)
  38. specialize polynomial_diagonal_prefix_input_transport (x1)
  39. specialize polynomial_diagonal_prefix_input_transport (S i)
  40. apply polynomial_diagonal_prefix_input_transport
  41. exact ha
  42. exact hb
  43. exact h_witness_witness_witness_left
  44. split
  45. exact h_witness_witness_witness_right_left
  46. exact h_witness_witness_witness_right_right
prime_field_polynomial_quotient_step_recode · unchanged support, not a new admission
forall p k ab ac bb bc M qb qc QB QC i q. (forall mdr_i_pfp_division_step_recode mdr_a_pfp_division_step_recode. (exists mdr_gap_pfp_division_step_recodeb. mdr_gap_pfp_division_step_recodeb + S (mdr_i_pfp_division_step_recode) = (i)) -> (((exists ff_h_mdr_pfp_division_step_recodeo. ff_h_mdr_pfp_division_step_recodeo + S (mdr_a_pfp_division_step_recode) = S ((S (mdr_i_pfp_division_step_recode)) * qc)) /\ exists ff_q_mdr_pfp_division_step_recodeo. qb = ff_q_mdr_pfp_division_step_recodeo * S ((S (mdr_i_pfp_division_step_recode)) * qc) + (mdr_a_pfp_division_step_recode))) -> (((exists ff_h_mdr_pfp_division_step_recoden. ff_h_mdr_pfp_division_step_recoden + S (mdr_a_pfp_division_step_recode) = S ((S (mdr_i_pfp_division_step_recode)) * QC)) /\ exists ff_q_mdr_pfp_division_step_recoden. QB = ff_q_mdr_pfp_division_step_recoden * S ((S (mdr_i_pfp_division_step_recode)) * QC) + (mdr_a_pfp_division_step_recode)))) -> (exists pfd_input_division_step_old pfd_previous_division_step_old pfd_difference_division_step_old. ((((exists ff_h_pfp_division_step_oldinput. ff_h_pfp_division_step_oldinput + S (pfd_input_division_step_old) = S ((S (i)) * ac)) /\ exists ff_q_pfp_division_step_oldinput. ab = ff_q_pfp_division_step_oldinput * S ((S (i)) * ac) + (pfd_input_division_step_old))) /\ (((exists pfc_terms_code_division_step_oldprevious pfc_terms_scale_division_step_oldprevious pfc_natural_sum_division_step_oldprevious. ((forall pfc_index_division_step_oldpreviousdiagonal. (exists pfa_gap_division_step_oldpreviousdiagonalbound. pfa_gap_division_step_oldpreviousdiagonalbound + S (pfc_index_division_step_oldpreviousdiagonal) = (S (i))) -> exists pfc_value_division_step_oldpreviousdiagonal. ((((exists ff_h_pfp_division_step_oldpreviousdiagonalentry. ff_h_pfp_division_step_oldpreviousdiagonalentry + S (pfc_value_division_step_oldpreviousdiagonal) = S ((S (pfc_index_division_step_oldpreviousdiagonal)) * pfc_terms_scale_division_step_oldprevious)) /\ exists ff_q_pfp_division_step_oldpreviousdiagonalentry. pfc_terms_code_division_step_oldprevious = ff_q_pfp_division_step_oldpreviousdiagonalentry * S ((S (pfc_index_division_step_oldpreviousdiagonal)) * pfc_terms_scale_division_step_oldprevious) + (pfc_value_division_step_oldpreviousdiagonal))) /\ ((exists pfc_complement_division_step_oldpreviousdiagonalterm pfc_left_division_step_oldpreviousdiagonalterm pfc_right_division_step_oldpreviousdiagonalterm. (((pfc_index_division_step_oldpreviousdiagonal)+pfc_complement_division_step_oldpreviousdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_step_oldpreviousdiagonaltermleftinside. pfa_gap_division_step_oldpreviousdiagonaltermleftinside + S (pfc_index_division_step_oldpreviousdiagonal) = (i)) /\ ((((exists ff_h_pfp_division_step_oldpreviousdiagonaltermleftentry. ff_h_pfp_division_step_oldpreviousdiagonaltermleftentry + S (pfc_left_division_step_oldpreviousdiagonalterm) = S ((S (pfc_index_division_step_oldpreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_step_oldpreviousdiagonaltermleftentry. qb = ff_q_pfp_division_step_oldpreviousdiagonaltermleftentry * S ((S (pfc_index_division_step_oldpreviousdiagonal)) * qc) + (pfc_left_division_step_oldpreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_step_oldpreviousdiagonaltermleftoutside. pfc_gap_division_step_oldpreviousdiagonaltermleftoutside+(i)=(pfc_index_division_step_oldpreviousdiagonal)) /\ (((pfc_left_division_step_oldpreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_step_oldpreviousdiagonaltermrightinside. pfa_gap_division_step_oldpreviousdiagonaltermrightinside + S (pfc_complement_division_step_oldpreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_step_oldpreviousdiagonaltermrightentry. ff_h_pfp_division_step_oldpreviousdiagonaltermrightentry + S (pfc_right_division_step_oldpreviousdiagonalterm) = S ((S (pfc_complement_division_step_oldpreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_step_oldpreviousdiagonaltermrightentry. bb = ff_q_pfp_division_step_oldpreviousdiagonaltermrightentry * S ((S (pfc_complement_division_step_oldpreviousdiagonalterm)) * bc) + (pfc_right_division_step_oldpreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_step_oldpreviousdiagonaltermrightoutside. pfc_gap_division_step_oldpreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_step_oldpreviousdiagonalterm)) /\ (((pfc_right_division_step_oldpreviousdiagonalterm)=0))))) /\ (((pfc_value_division_step_oldpreviousdiagonal)=pfc_left_division_step_oldpreviousdiagonalterm*pfc_right_division_step_oldpreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_step_oldprevioussum fs_v_pfc_division_step_oldprevioussum. ((((exists fs_h_pfc_division_step_oldprevioussum_body_start. fs_h_pfc_division_step_oldprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_step_oldprevioussum)) /\ exists fs_q_pfc_division_step_oldprevioussum_body_start. fs_u_pfc_division_step_oldprevioussum = fs_q_pfc_division_step_oldprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_step_oldprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_step_oldprevioussum_body_terminal. fs_h_pfc_division_step_oldprevioussum_body_terminal + S (pfc_natural_sum_division_step_oldprevious) = S ((S (S (i))) * fs_v_pfc_division_step_oldprevioussum)) /\ exists fs_q_pfc_division_step_oldprevioussum_body_terminal. fs_u_pfc_division_step_oldprevioussum = fs_q_pfc_division_step_oldprevioussum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_step_oldprevioussum) + (pfc_natural_sum_division_step_oldprevious))) /\ forall fs_i_pfc_division_step_oldprevioussum_body_steps. (exists fs_lt_pfc_division_step_oldprevioussum_body_steps_bound. fs_lt_pfc_division_step_oldprevioussum_body_steps_bound + S fs_i_pfc_division_step_oldprevioussum_body_steps = S (i)) -> exists fs_a_pfc_division_step_oldprevioussum_body_steps fs_r_pfc_division_step_oldprevioussum_body_steps fs_s_pfc_division_step_oldprevioussum_body_steps. ((((exists fs_h_pfc_division_step_oldprevioussum_body_steps_summand. fs_h_pfc_division_step_oldprevioussum_body_steps_summand + S (fs_a_pfc_division_step_oldprevioussum_body_steps) = S ((S (fs_i_pfc_division_step_oldprevioussum_body_steps)) * pfc_terms_scale_division_step_oldprevious)) /\ exists fs_q_pfc_division_step_oldprevioussum_body_steps_summand. pfc_terms_code_division_step_oldprevious = fs_q_pfc_division_step_oldprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_step_oldprevioussum_body_steps)) * pfc_terms_scale_division_step_oldprevious) + (fs_a_pfc_division_step_oldprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_step_oldprevioussum_body_steps_partial. fs_h_pfc_division_step_oldprevioussum_body_steps_partial + S (fs_r_pfc_division_step_oldprevioussum_body_steps) = S ((S (fs_i_pfc_division_step_oldprevioussum_body_steps)) * fs_v_pfc_division_step_oldprevioussum)) /\ exists fs_q_pfc_division_step_oldprevioussum_body_steps_partial. fs_u_pfc_division_step_oldprevioussum = fs_q_pfc_division_step_oldprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_step_oldprevioussum_body_steps)) * fs_v_pfc_division_step_oldprevioussum) + (fs_r_pfc_division_step_oldprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_step_oldprevioussum_body_steps_successor. fs_h_pfc_division_step_oldprevioussum_body_steps_successor + S (fs_s_pfc_division_step_oldprevioussum_body_steps) = S ((S (S fs_i_pfc_division_step_oldprevioussum_body_steps)) * fs_v_pfc_division_step_oldprevioussum)) /\ exists fs_q_pfc_division_step_oldprevioussum_body_steps_successor. fs_u_pfc_division_step_oldprevioussum = fs_q_pfc_division_step_oldprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_step_oldprevioussum_body_steps)) * fs_v_pfc_division_step_oldprevioussum) + (fs_s_pfc_division_step_oldprevioussum_body_steps))) /\ fs_s_pfc_division_step_oldprevioussum_body_steps = fs_r_pfc_division_step_oldprevioussum_body_steps + fs_a_pfc_division_step_oldprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_step_oldpreviousresiduebound. pfa_gap_division_step_oldpreviousresiduebound + S (pfd_previous_division_step_old) = (p)) /\ ((exists pfa_offset_left_division_step_oldpreviousresiduecongruence pfa_offset_right_division_step_oldpreviousresiduecongruence. (pfc_natural_sum_division_step_oldprevious) + (p) * pfa_offset_left_division_step_oldpreviousresiduecongruence = (pfd_previous_division_step_old) + (p) * pfa_offset_right_division_step_oldpreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_step_oldsubtractleft. pfa_gap_division_step_oldsubtractleft + S (pfd_previous_division_step_old) = (p)) /\ (((exists pfa_gap_division_step_oldsubtractright. pfa_gap_division_step_oldsubtractright + S (pfd_difference_division_step_old) = (p)) /\ ((((exists pfa_gap_division_step_oldsubtractresultbound. pfa_gap_division_step_oldsubtractresultbound + S (pfd_input_division_step_old) = (p)) /\ ((exists pfa_offset_left_division_step_oldsubtractresultcongruence pfa_offset_right_division_step_oldsubtractresultcongruence. ((pfd_previous_division_step_old) + (pfd_difference_division_step_old)) + (p) * pfa_offset_left_division_step_oldsubtractresultcongruence = (pfd_input_division_step_old) + (p) * pfa_offset_right_division_step_oldsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_step_oldmultiplyleft. pfa_gap_division_step_oldmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_step_oldmultiplyright. pfa_gap_division_step_oldmultiplyright + S (pfd_difference_division_step_old) = (p)) /\ ((((exists pfa_gap_division_step_oldmultiplyresultbound. pfa_gap_division_step_oldmultiplyresultbound + S (q) = (p)) /\ ((exists pfa_offset_left_division_step_oldmultiplyresultcongruence pfa_offset_right_division_step_oldmultiplyresultcongruence. ((k) * (pfd_difference_division_step_old)) + (p) * pfa_offset_left_division_step_oldmultiplyresultcongruence = (q) + (p) * pfa_offset_right_division_step_oldmultiplyresultcongruence)))))))))))))))) -> (exists pfd_input_division_step_new pfd_previous_division_step_new pfd_difference_division_step_new. ((((exists ff_h_pfp_division_step_newinput. ff_h_pfp_division_step_newinput + S (pfd_input_division_step_new) = S ((S (i)) * ac)) /\ exists ff_q_pfp_division_step_newinput. ab = ff_q_pfp_division_step_newinput * S ((S (i)) * ac) + (pfd_input_division_step_new))) /\ (((exists pfc_terms_code_division_step_newprevious pfc_terms_scale_division_step_newprevious pfc_natural_sum_division_step_newprevious. ((forall pfc_index_division_step_newpreviousdiagonal. (exists pfa_gap_division_step_newpreviousdiagonalbound. pfa_gap_division_step_newpreviousdiagonalbound + S (pfc_index_division_step_newpreviousdiagonal) = (S (i))) -> exists pfc_value_division_step_newpreviousdiagonal. ((((exists ff_h_pfp_division_step_newpreviousdiagonalentry. ff_h_pfp_division_step_newpreviousdiagonalentry + S (pfc_value_division_step_newpreviousdiagonal) = S ((S (pfc_index_division_step_newpreviousdiagonal)) * pfc_terms_scale_division_step_newprevious)) /\ exists ff_q_pfp_division_step_newpreviousdiagonalentry. pfc_terms_code_division_step_newprevious = ff_q_pfp_division_step_newpreviousdiagonalentry * S ((S (pfc_index_division_step_newpreviousdiagonal)) * pfc_terms_scale_division_step_newprevious) + (pfc_value_division_step_newpreviousdiagonal))) /\ ((exists pfc_complement_division_step_newpreviousdiagonalterm pfc_left_division_step_newpreviousdiagonalterm pfc_right_division_step_newpreviousdiagonalterm. (((pfc_index_division_step_newpreviousdiagonal)+pfc_complement_division_step_newpreviousdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_step_newpreviousdiagonaltermleftinside. pfa_gap_division_step_newpreviousdiagonaltermleftinside + S (pfc_index_division_step_newpreviousdiagonal) = (i)) /\ ((((exists ff_h_pfp_division_step_newpreviousdiagonaltermleftentry. ff_h_pfp_division_step_newpreviousdiagonaltermleftentry + S (pfc_left_division_step_newpreviousdiagonalterm) = S ((S (pfc_index_division_step_newpreviousdiagonal)) * QC)) /\ exists ff_q_pfp_division_step_newpreviousdiagonaltermleftentry. QB = ff_q_pfp_division_step_newpreviousdiagonaltermleftentry * S ((S (pfc_index_division_step_newpreviousdiagonal)) * QC) + (pfc_left_division_step_newpreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_step_newpreviousdiagonaltermleftoutside. pfc_gap_division_step_newpreviousdiagonaltermleftoutside+(i)=(pfc_index_division_step_newpreviousdiagonal)) /\ (((pfc_left_division_step_newpreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_step_newpreviousdiagonaltermrightinside. pfa_gap_division_step_newpreviousdiagonaltermrightinside + S (pfc_complement_division_step_newpreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_step_newpreviousdiagonaltermrightentry. ff_h_pfp_division_step_newpreviousdiagonaltermrightentry + S (pfc_right_division_step_newpreviousdiagonalterm) = S ((S (pfc_complement_division_step_newpreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_step_newpreviousdiagonaltermrightentry. bb = ff_q_pfp_division_step_newpreviousdiagonaltermrightentry * S ((S (pfc_complement_division_step_newpreviousdiagonalterm)) * bc) + (pfc_right_division_step_newpreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_step_newpreviousdiagonaltermrightoutside. pfc_gap_division_step_newpreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_step_newpreviousdiagonalterm)) /\ (((pfc_right_division_step_newpreviousdiagonalterm)=0))))) /\ (((pfc_value_division_step_newpreviousdiagonal)=pfc_left_division_step_newpreviousdiagonalterm*pfc_right_division_step_newpreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_step_newprevioussum fs_v_pfc_division_step_newprevioussum. ((((exists fs_h_pfc_division_step_newprevioussum_body_start. fs_h_pfc_division_step_newprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_step_newprevioussum)) /\ exists fs_q_pfc_division_step_newprevioussum_body_start. fs_u_pfc_division_step_newprevioussum = fs_q_pfc_division_step_newprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_step_newprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_step_newprevioussum_body_terminal. fs_h_pfc_division_step_newprevioussum_body_terminal + S (pfc_natural_sum_division_step_newprevious) = S ((S (S (i))) * fs_v_pfc_division_step_newprevioussum)) /\ exists fs_q_pfc_division_step_newprevioussum_body_terminal. fs_u_pfc_division_step_newprevioussum = fs_q_pfc_division_step_newprevioussum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_step_newprevioussum) + (pfc_natural_sum_division_step_newprevious))) /\ forall fs_i_pfc_division_step_newprevioussum_body_steps. (exists fs_lt_pfc_division_step_newprevioussum_body_steps_bound. fs_lt_pfc_division_step_newprevioussum_body_steps_bound + S fs_i_pfc_division_step_newprevioussum_body_steps = S (i)) -> exists fs_a_pfc_division_step_newprevioussum_body_steps fs_r_pfc_division_step_newprevioussum_body_steps fs_s_pfc_division_step_newprevioussum_body_steps. ((((exists fs_h_pfc_division_step_newprevioussum_body_steps_summand. fs_h_pfc_division_step_newprevioussum_body_steps_summand + S (fs_a_pfc_division_step_newprevioussum_body_steps) = S ((S (fs_i_pfc_division_step_newprevioussum_body_steps)) * pfc_terms_scale_division_step_newprevious)) /\ exists fs_q_pfc_division_step_newprevioussum_body_steps_summand. pfc_terms_code_division_step_newprevious = fs_q_pfc_division_step_newprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_step_newprevioussum_body_steps)) * pfc_terms_scale_division_step_newprevious) + (fs_a_pfc_division_step_newprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_step_newprevioussum_body_steps_partial. fs_h_pfc_division_step_newprevioussum_body_steps_partial + S (fs_r_pfc_division_step_newprevioussum_body_steps) = S ((S (fs_i_pfc_division_step_newprevioussum_body_steps)) * fs_v_pfc_division_step_newprevioussum)) /\ exists fs_q_pfc_division_step_newprevioussum_body_steps_partial. fs_u_pfc_division_step_newprevioussum = fs_q_pfc_division_step_newprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_step_newprevioussum_body_steps)) * fs_v_pfc_division_step_newprevioussum) + (fs_r_pfc_division_step_newprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_step_newprevioussum_body_steps_successor. fs_h_pfc_division_step_newprevioussum_body_steps_successor + S (fs_s_pfc_division_step_newprevioussum_body_steps) = S ((S (S fs_i_pfc_division_step_newprevioussum_body_steps)) * fs_v_pfc_division_step_newprevioussum)) /\ exists fs_q_pfc_division_step_newprevioussum_body_steps_successor. fs_u_pfc_division_step_newprevioussum = fs_q_pfc_division_step_newprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_step_newprevioussum_body_steps)) * fs_v_pfc_division_step_newprevioussum) + (fs_s_pfc_division_step_newprevioussum_body_steps))) /\ fs_s_pfc_division_step_newprevioussum_body_steps = fs_r_pfc_division_step_newprevioussum_body_steps + fs_a_pfc_division_step_newprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_step_newpreviousresiduebound. pfa_gap_division_step_newpreviousresiduebound + S (pfd_previous_division_step_new) = (p)) /\ ((exists pfa_offset_left_division_step_newpreviousresiduecongruence pfa_offset_right_division_step_newpreviousresiduecongruence. (pfc_natural_sum_division_step_newprevious) + (p) * pfa_offset_left_division_step_newpreviousresiduecongruence = (pfd_previous_division_step_new) + (p) * pfa_offset_right_division_step_newpreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_step_newsubtractleft. pfa_gap_division_step_newsubtractleft + S (pfd_previous_division_step_new) = (p)) /\ (((exists pfa_gap_division_step_newsubtractright. pfa_gap_division_step_newsubtractright + S (pfd_difference_division_step_new) = (p)) /\ ((((exists pfa_gap_division_step_newsubtractresultbound. pfa_gap_division_step_newsubtractresultbound + S (pfd_input_division_step_new) = (p)) /\ ((exists pfa_offset_left_division_step_newsubtractresultcongruence pfa_offset_right_division_step_newsubtractresultcongruence. ((pfd_previous_division_step_new) + (pfd_difference_division_step_new)) + (p) * pfa_offset_left_division_step_newsubtractresultcongruence = (pfd_input_division_step_new) + (p) * pfa_offset_right_division_step_newsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_step_newmultiplyleft. pfa_gap_division_step_newmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_step_newmultiplyright. pfa_gap_division_step_newmultiplyright + S (pfd_difference_division_step_new) = (p)) /\ ((((exists pfa_gap_division_step_newmultiplyresultbound. pfa_gap_division_step_newmultiplyresultbound + S (q) = (p)) /\ ((exists pfa_offset_left_division_step_newmultiplyresultcongruence pfa_offset_right_division_step_newmultiplyresultcongruence. ((k) * (pfd_difference_division_step_new)) + (p) * pfa_offset_left_division_step_newmultiplyresultcongruence = (q) + (p) * pfa_offset_right_division_step_newmultiplyresultcongruence))))))))))))))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro M
  8. intro qb
  9. intro qc
  10. intro QB
  11. intro QC
  12. intro i
  13. intro q
  14. intro he
  15. intro hs
  16. cases hs
  17. cases hs_witness
  18. cases hs_witness_witness
  19. cases hs_witness_witness_witness
  20. cases hs_witness_witness_witness_right
  21. cases hs_witness_witness_witness_right_right
  22. exists x
  23. exists x1
  24. exists x2
  25. split
  26. exact hs_witness_witness_witness_left
  27. split
  28. specialize prime_field_convolution_coefficient_transport (p)
  29. specialize prime_field_convolution_coefficient_transport (qb)
  30. specialize prime_field_convolution_coefficient_transport (qc)
  31. specialize prime_field_convolution_coefficient_transport (i)
  32. specialize prime_field_convolution_coefficient_transport (bb)
  33. specialize prime_field_convolution_coefficient_transport (bc)
  34. specialize prime_field_convolution_coefficient_transport (M)
  35. specialize prime_field_convolution_coefficient_transport (i)
  36. specialize prime_field_convolution_coefficient_transport (QB)
  37. specialize prime_field_convolution_coefficient_transport (QC)
  38. specialize prime_field_convolution_coefficient_transport (bb)
  39. specialize prime_field_convolution_coefficient_transport (bc)
  40. specialize prime_field_convolution_coefficient_transport (x1)
  41. apply prime_field_convolution_coefficient_transport
  42. exact he
  43. intro j
  44. intro v
  45. intro hj
  46. intro hv
  47. exact hv
  48. exact hs_witness_witness_witness_right_left
  49. split
  50. exact hs_witness_witness_witness_right_right_left
  51. exact hs_witness_witness_witness_right_right_right
prime_field_polynomial_quotient_prefix_append · unchanged support, not a new admission
forall p k ab ac bb bc M qb qc QB QC N q. (forall pfd_index_division_append_old. (exists pfa_gap_division_append_oldbound. pfa_gap_division_append_oldbound + S (pfd_index_division_append_old) = (N)) -> exists pfd_value_division_append_old. ((((exists ff_h_pfp_division_append_oldentry. ff_h_pfp_division_append_oldentry + S (pfd_value_division_append_old) = S ((S (pfd_index_division_append_old)) * qc)) /\ exists ff_q_pfp_division_append_oldentry. qb = ff_q_pfp_division_append_oldentry * S ((S (pfd_index_division_append_old)) * qc) + (pfd_value_division_append_old))) /\ ((exists pfd_input_division_append_oldstep pfd_previous_division_append_oldstep pfd_difference_division_append_oldstep. ((((exists ff_h_pfp_division_append_oldstepinput. ff_h_pfp_division_append_oldstepinput + S (pfd_input_division_append_oldstep) = S ((S (pfd_index_division_append_old)) * ac)) /\ exists ff_q_pfp_division_append_oldstepinput. ab = ff_q_pfp_division_append_oldstepinput * S ((S (pfd_index_division_append_old)) * ac) + (pfd_input_division_append_oldstep))) /\ (((exists pfc_terms_code_division_append_oldstepprevious pfc_terms_scale_division_append_oldstepprevious pfc_natural_sum_division_append_oldstepprevious. ((forall pfc_index_division_append_oldsteppreviousdiagonal. (exists pfa_gap_division_append_oldsteppreviousdiagonalbound. pfa_gap_division_append_oldsteppreviousdiagonalbound + S (pfc_index_division_append_oldsteppreviousdiagonal) = (S (pfd_index_division_append_old))) -> exists pfc_value_division_append_oldsteppreviousdiagonal. ((((exists ff_h_pfp_division_append_oldsteppreviousdiagonalentry. ff_h_pfp_division_append_oldsteppreviousdiagonalentry + S (pfc_value_division_append_oldsteppreviousdiagonal) = S ((S (pfc_index_division_append_oldsteppreviousdiagonal)) * pfc_terms_scale_division_append_oldstepprevious)) /\ exists ff_q_pfp_division_append_oldsteppreviousdiagonalentry. pfc_terms_code_division_append_oldstepprevious = ff_q_pfp_division_append_oldsteppreviousdiagonalentry * S ((S (pfc_index_division_append_oldsteppreviousdiagonal)) * pfc_terms_scale_division_append_oldstepprevious) + (pfc_value_division_append_oldsteppreviousdiagonal))) /\ ((exists pfc_complement_division_append_oldsteppreviousdiagonalterm pfc_left_division_append_oldsteppreviousdiagonalterm pfc_right_division_append_oldsteppreviousdiagonalterm. (((pfc_index_division_append_oldsteppreviousdiagonal)+pfc_complement_division_append_oldsteppreviousdiagonalterm=(pfd_index_division_append_old)) /\ ((((((exists pfa_gap_division_append_oldsteppreviousdiagonaltermleftinside. pfa_gap_division_append_oldsteppreviousdiagonaltermleftinside + S (pfc_index_division_append_oldsteppreviousdiagonal) = (pfd_index_division_append_old)) /\ ((((exists ff_h_pfp_division_append_oldsteppreviousdiagonaltermleftentry. ff_h_pfp_division_append_oldsteppreviousdiagonaltermleftentry + S (pfc_left_division_append_oldsteppreviousdiagonalterm) = S ((S (pfc_index_division_append_oldsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_append_oldsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_append_oldsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_append_oldsteppreviousdiagonal)) * qc) + (pfc_left_division_append_oldsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_append_oldsteppreviousdiagonaltermleftoutside. pfc_gap_division_append_oldsteppreviousdiagonaltermleftoutside+(pfd_index_division_append_old)=(pfc_index_division_append_oldsteppreviousdiagonal)) /\ (((pfc_left_division_append_oldsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_append_oldsteppreviousdiagonaltermrightinside. pfa_gap_division_append_oldsteppreviousdiagonaltermrightinside + S (pfc_complement_division_append_oldsteppreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_append_oldsteppreviousdiagonaltermrightentry. ff_h_pfp_division_append_oldsteppreviousdiagonaltermrightentry + S (pfc_right_division_append_oldsteppreviousdiagonalterm) = S ((S (pfc_complement_division_append_oldsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_append_oldsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_append_oldsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_append_oldsteppreviousdiagonalterm)) * bc) + (pfc_right_division_append_oldsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_append_oldsteppreviousdiagonaltermrightoutside. pfc_gap_division_append_oldsteppreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_append_oldsteppreviousdiagonalterm)) /\ (((pfc_right_division_append_oldsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_append_oldsteppreviousdiagonal)=pfc_left_division_append_oldsteppreviousdiagonalterm*pfc_right_division_append_oldsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_append_oldstepprevioussum fs_v_pfc_division_append_oldstepprevioussum. ((((exists fs_h_pfc_division_append_oldstepprevioussum_body_start. fs_h_pfc_division_append_oldstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_append_oldstepprevioussum)) /\ exists fs_q_pfc_division_append_oldstepprevioussum_body_start. fs_u_pfc_division_append_oldstepprevioussum = fs_q_pfc_division_append_oldstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_append_oldstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_append_oldstepprevioussum_body_terminal. fs_h_pfc_division_append_oldstepprevioussum_body_terminal + S (pfc_natural_sum_division_append_oldstepprevious) = S ((S (S (pfd_index_division_append_old))) * fs_v_pfc_division_append_oldstepprevioussum)) /\ exists fs_q_pfc_division_append_oldstepprevioussum_body_terminal. fs_u_pfc_division_append_oldstepprevioussum = fs_q_pfc_division_append_oldstepprevioussum_body_terminal * S ((S (S (pfd_index_division_append_old))) * fs_v_pfc_division_append_oldstepprevioussum) + (pfc_natural_sum_division_append_oldstepprevious))) /\ forall fs_i_pfc_division_append_oldstepprevioussum_body_steps. (exists fs_lt_pfc_division_append_oldstepprevioussum_body_steps_bound. fs_lt_pfc_division_append_oldstepprevioussum_body_steps_bound + S fs_i_pfc_division_append_oldstepprevioussum_body_steps = S (pfd_index_division_append_old)) -> exists fs_a_pfc_division_append_oldstepprevioussum_body_steps fs_r_pfc_division_append_oldstepprevioussum_body_steps fs_s_pfc_division_append_oldstepprevioussum_body_steps. ((((exists fs_h_pfc_division_append_oldstepprevioussum_body_steps_summand. fs_h_pfc_division_append_oldstepprevioussum_body_steps_summand + S (fs_a_pfc_division_append_oldstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_append_oldstepprevioussum_body_steps)) * pfc_terms_scale_division_append_oldstepprevious)) /\ exists fs_q_pfc_division_append_oldstepprevioussum_body_steps_summand. pfc_terms_code_division_append_oldstepprevious = fs_q_pfc_division_append_oldstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_append_oldstepprevioussum_body_steps)) * pfc_terms_scale_division_append_oldstepprevious) + (fs_a_pfc_division_append_oldstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_append_oldstepprevioussum_body_steps_partial. fs_h_pfc_division_append_oldstepprevioussum_body_steps_partial + S (fs_r_pfc_division_append_oldstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_append_oldstepprevioussum_body_steps)) * fs_v_pfc_division_append_oldstepprevioussum)) /\ exists fs_q_pfc_division_append_oldstepprevioussum_body_steps_partial. fs_u_pfc_division_append_oldstepprevioussum = fs_q_pfc_division_append_oldstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_append_oldstepprevioussum_body_steps)) * fs_v_pfc_division_append_oldstepprevioussum) + (fs_r_pfc_division_append_oldstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_append_oldstepprevioussum_body_steps_successor. fs_h_pfc_division_append_oldstepprevioussum_body_steps_successor + S (fs_s_pfc_division_append_oldstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_append_oldstepprevioussum_body_steps)) * fs_v_pfc_division_append_oldstepprevioussum)) /\ exists fs_q_pfc_division_append_oldstepprevioussum_body_steps_successor. fs_u_pfc_division_append_oldstepprevioussum = fs_q_pfc_division_append_oldstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_append_oldstepprevioussum_body_steps)) * fs_v_pfc_division_append_oldstepprevioussum) + (fs_s_pfc_division_append_oldstepprevioussum_body_steps))) /\ fs_s_pfc_division_append_oldstepprevioussum_body_steps = fs_r_pfc_division_append_oldstepprevioussum_body_steps + fs_a_pfc_division_append_oldstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_append_oldsteppreviousresiduebound. pfa_gap_division_append_oldsteppreviousresiduebound + S (pfd_previous_division_append_oldstep) = (p)) /\ ((exists pfa_offset_left_division_append_oldsteppreviousresiduecongruence pfa_offset_right_division_append_oldsteppreviousresiduecongruence. (pfc_natural_sum_division_append_oldstepprevious) + (p) * pfa_offset_left_division_append_oldsteppreviousresiduecongruence = (pfd_previous_division_append_oldstep) + (p) * pfa_offset_right_division_append_oldsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_append_oldstepsubtractleft. pfa_gap_division_append_oldstepsubtractleft + S (pfd_previous_division_append_oldstep) = (p)) /\ (((exists pfa_gap_division_append_oldstepsubtractright. pfa_gap_division_append_oldstepsubtractright + S (pfd_difference_division_append_oldstep) = (p)) /\ ((((exists pfa_gap_division_append_oldstepsubtractresultbound. pfa_gap_division_append_oldstepsubtractresultbound + S (pfd_input_division_append_oldstep) = (p)) /\ ((exists pfa_offset_left_division_append_oldstepsubtractresultcongruence pfa_offset_right_division_append_oldstepsubtractresultcongruence. ((pfd_previous_division_append_oldstep) + (pfd_difference_division_append_oldstep)) + (p) * pfa_offset_left_division_append_oldstepsubtractresultcongruence = (pfd_input_division_append_oldstep) + (p) * pfa_offset_right_division_append_oldstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_append_oldstepmultiplyleft. pfa_gap_division_append_oldstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_append_oldstepmultiplyright. pfa_gap_division_append_oldstepmultiplyright + S (pfd_difference_division_append_oldstep) = (p)) /\ ((((exists pfa_gap_division_append_oldstepmultiplyresultbound. pfa_gap_division_append_oldstepmultiplyresultbound + S (pfd_value_division_append_old) = (p)) /\ ((exists pfa_offset_left_division_append_oldstepmultiplyresultcongruence pfa_offset_right_division_append_oldstepmultiplyresultcongruence. ((k) * (pfd_difference_division_append_oldstep)) + (p) * pfa_offset_left_division_append_oldstepmultiplyresultcongruence = (pfd_value_division_append_old) + (p) * pfa_offset_right_division_append_oldstepmultiplyresultcongruence))))))))))))))))))) -> (forall mdr_i_pfp_division_append_equal mdr_a_pfp_division_append_equal. (exists mdr_gap_pfp_division_append_equalb. mdr_gap_pfp_division_append_equalb + S (mdr_i_pfp_division_append_equal) = (N)) -> (((exists ff_h_mdr_pfp_division_append_equalo. ff_h_mdr_pfp_division_append_equalo + S (mdr_a_pfp_division_append_equal) = S ((S (mdr_i_pfp_division_append_equal)) * qc)) /\ exists ff_q_mdr_pfp_division_append_equalo. qb = ff_q_mdr_pfp_division_append_equalo * S ((S (mdr_i_pfp_division_append_equal)) * qc) + (mdr_a_pfp_division_append_equal))) -> (((exists ff_h_mdr_pfp_division_append_equaln. ff_h_mdr_pfp_division_append_equaln + S (mdr_a_pfp_division_append_equal) = S ((S (mdr_i_pfp_division_append_equal)) * QC)) /\ exists ff_q_mdr_pfp_division_append_equaln. QB = ff_q_mdr_pfp_division_append_equaln * S ((S (mdr_i_pfp_division_append_equal)) * QC) + (mdr_a_pfp_division_append_equal)))) -> (((exists ff_h_pfp_division_append_given_entry. ff_h_pfp_division_append_given_entry + S (q) = S ((S (N)) * QC)) /\ exists ff_q_pfp_division_append_given_entry. QB = ff_q_pfp_division_append_given_entry * S ((S (N)) * QC) + (q))) -> (exists pfd_input_division_append_given_step pfd_previous_division_append_given_step pfd_difference_division_append_given_step. ((((exists ff_h_pfp_division_append_given_stepinput. ff_h_pfp_division_append_given_stepinput + S (pfd_input_division_append_given_step) = S ((S (N)) * ac)) /\ exists ff_q_pfp_division_append_given_stepinput. ab = ff_q_pfp_division_append_given_stepinput * S ((S (N)) * ac) + (pfd_input_division_append_given_step))) /\ (((exists pfc_terms_code_division_append_given_stepprevious pfc_terms_scale_division_append_given_stepprevious pfc_natural_sum_division_append_given_stepprevious. ((forall pfc_index_division_append_given_steppreviousdiagonal. (exists pfa_gap_division_append_given_steppreviousdiagonalbound. pfa_gap_division_append_given_steppreviousdiagonalbound + S (pfc_index_division_append_given_steppreviousdiagonal) = (S (N))) -> exists pfc_value_division_append_given_steppreviousdiagonal. ((((exists ff_h_pfp_division_append_given_steppreviousdiagonalentry. ff_h_pfp_division_append_given_steppreviousdiagonalentry + S (pfc_value_division_append_given_steppreviousdiagonal) = S ((S (pfc_index_division_append_given_steppreviousdiagonal)) * pfc_terms_scale_division_append_given_stepprevious)) /\ exists ff_q_pfp_division_append_given_steppreviousdiagonalentry. pfc_terms_code_division_append_given_stepprevious = ff_q_pfp_division_append_given_steppreviousdiagonalentry * S ((S (pfc_index_division_append_given_steppreviousdiagonal)) * pfc_terms_scale_division_append_given_stepprevious) + (pfc_value_division_append_given_steppreviousdiagonal))) /\ ((exists pfc_complement_division_append_given_steppreviousdiagonalterm pfc_left_division_append_given_steppreviousdiagonalterm pfc_right_division_append_given_steppreviousdiagonalterm. (((pfc_index_division_append_given_steppreviousdiagonal)+pfc_complement_division_append_given_steppreviousdiagonalterm=(N)) /\ ((((((exists pfa_gap_division_append_given_steppreviousdiagonaltermleftinside. pfa_gap_division_append_given_steppreviousdiagonaltermleftinside + S (pfc_index_division_append_given_steppreviousdiagonal) = (N)) /\ ((((exists ff_h_pfp_division_append_given_steppreviousdiagonaltermleftentry. ff_h_pfp_division_append_given_steppreviousdiagonaltermleftentry + S (pfc_left_division_append_given_steppreviousdiagonalterm) = S ((S (pfc_index_division_append_given_steppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_append_given_steppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_append_given_steppreviousdiagonaltermleftentry * S ((S (pfc_index_division_append_given_steppreviousdiagonal)) * qc) + (pfc_left_division_append_given_steppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_append_given_steppreviousdiagonaltermleftoutside. pfc_gap_division_append_given_steppreviousdiagonaltermleftoutside+(N)=(pfc_index_division_append_given_steppreviousdiagonal)) /\ (((pfc_left_division_append_given_steppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_append_given_steppreviousdiagonaltermrightinside. pfa_gap_division_append_given_steppreviousdiagonaltermrightinside + S (pfc_complement_division_append_given_steppreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_append_given_steppreviousdiagonaltermrightentry. ff_h_pfp_division_append_given_steppreviousdiagonaltermrightentry + S (pfc_right_division_append_given_steppreviousdiagonalterm) = S ((S (pfc_complement_division_append_given_steppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_append_given_steppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_append_given_steppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_append_given_steppreviousdiagonalterm)) * bc) + (pfc_right_division_append_given_steppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_append_given_steppreviousdiagonaltermrightoutside. pfc_gap_division_append_given_steppreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_append_given_steppreviousdiagonalterm)) /\ (((pfc_right_division_append_given_steppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_append_given_steppreviousdiagonal)=pfc_left_division_append_given_steppreviousdiagonalterm*pfc_right_division_append_given_steppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_append_given_stepprevioussum fs_v_pfc_division_append_given_stepprevioussum. ((((exists fs_h_pfc_division_append_given_stepprevioussum_body_start. fs_h_pfc_division_append_given_stepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_append_given_stepprevioussum)) /\ exists fs_q_pfc_division_append_given_stepprevioussum_body_start. fs_u_pfc_division_append_given_stepprevioussum = fs_q_pfc_division_append_given_stepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_append_given_stepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_append_given_stepprevioussum_body_terminal. fs_h_pfc_division_append_given_stepprevioussum_body_terminal + S (pfc_natural_sum_division_append_given_stepprevious) = S ((S (S (N))) * fs_v_pfc_division_append_given_stepprevioussum)) /\ exists fs_q_pfc_division_append_given_stepprevioussum_body_terminal. fs_u_pfc_division_append_given_stepprevioussum = fs_q_pfc_division_append_given_stepprevioussum_body_terminal * S ((S (S (N))) * fs_v_pfc_division_append_given_stepprevioussum) + (pfc_natural_sum_division_append_given_stepprevious))) /\ forall fs_i_pfc_division_append_given_stepprevioussum_body_steps. (exists fs_lt_pfc_division_append_given_stepprevioussum_body_steps_bound. fs_lt_pfc_division_append_given_stepprevioussum_body_steps_bound + S fs_i_pfc_division_append_given_stepprevioussum_body_steps = S (N)) -> exists fs_a_pfc_division_append_given_stepprevioussum_body_steps fs_r_pfc_division_append_given_stepprevioussum_body_steps fs_s_pfc_division_append_given_stepprevioussum_body_steps. ((((exists fs_h_pfc_division_append_given_stepprevioussum_body_steps_summand. fs_h_pfc_division_append_given_stepprevioussum_body_steps_summand + S (fs_a_pfc_division_append_given_stepprevioussum_body_steps) = S ((S (fs_i_pfc_division_append_given_stepprevioussum_body_steps)) * pfc_terms_scale_division_append_given_stepprevious)) /\ exists fs_q_pfc_division_append_given_stepprevioussum_body_steps_summand. pfc_terms_code_division_append_given_stepprevious = fs_q_pfc_division_append_given_stepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_append_given_stepprevioussum_body_steps)) * pfc_terms_scale_division_append_given_stepprevious) + (fs_a_pfc_division_append_given_stepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_append_given_stepprevioussum_body_steps_partial. fs_h_pfc_division_append_given_stepprevioussum_body_steps_partial + S (fs_r_pfc_division_append_given_stepprevioussum_body_steps) = S ((S (fs_i_pfc_division_append_given_stepprevioussum_body_steps)) * fs_v_pfc_division_append_given_stepprevioussum)) /\ exists fs_q_pfc_division_append_given_stepprevioussum_body_steps_partial. fs_u_pfc_division_append_given_stepprevioussum = fs_q_pfc_division_append_given_stepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_append_given_stepprevioussum_body_steps)) * fs_v_pfc_division_append_given_stepprevioussum) + (fs_r_pfc_division_append_given_stepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_append_given_stepprevioussum_body_steps_successor. fs_h_pfc_division_append_given_stepprevioussum_body_steps_successor + S (fs_s_pfc_division_append_given_stepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_append_given_stepprevioussum_body_steps)) * fs_v_pfc_division_append_given_stepprevioussum)) /\ exists fs_q_pfc_division_append_given_stepprevioussum_body_steps_successor. fs_u_pfc_division_append_given_stepprevioussum = fs_q_pfc_division_append_given_stepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_append_given_stepprevioussum_body_steps)) * fs_v_pfc_division_append_given_stepprevioussum) + (fs_s_pfc_division_append_given_stepprevioussum_body_steps))) /\ fs_s_pfc_division_append_given_stepprevioussum_body_steps = fs_r_pfc_division_append_given_stepprevioussum_body_steps + fs_a_pfc_division_append_given_stepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_append_given_steppreviousresiduebound. pfa_gap_division_append_given_steppreviousresiduebound + S (pfd_previous_division_append_given_step) = (p)) /\ ((exists pfa_offset_left_division_append_given_steppreviousresiduecongruence pfa_offset_right_division_append_given_steppreviousresiduecongruence. (pfc_natural_sum_division_append_given_stepprevious) + (p) * pfa_offset_left_division_append_given_steppreviousresiduecongruence = (pfd_previous_division_append_given_step) + (p) * pfa_offset_right_division_append_given_steppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_append_given_stepsubtractleft. pfa_gap_division_append_given_stepsubtractleft + S (pfd_previous_division_append_given_step) = (p)) /\ (((exists pfa_gap_division_append_given_stepsubtractright. pfa_gap_division_append_given_stepsubtractright + S (pfd_difference_division_append_given_step) = (p)) /\ ((((exists pfa_gap_division_append_given_stepsubtractresultbound. pfa_gap_division_append_given_stepsubtractresultbound + S (pfd_input_division_append_given_step) = (p)) /\ ((exists pfa_offset_left_division_append_given_stepsubtractresultcongruence pfa_offset_right_division_append_given_stepsubtractresultcongruence. ((pfd_previous_division_append_given_step) + (pfd_difference_division_append_given_step)) + (p) * pfa_offset_left_division_append_given_stepsubtractresultcongruence = (pfd_input_division_append_given_step) + (p) * pfa_offset_right_division_append_given_stepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_append_given_stepmultiplyleft. pfa_gap_division_append_given_stepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_append_given_stepmultiplyright. pfa_gap_division_append_given_stepmultiplyright + S (pfd_difference_division_append_given_step) = (p)) /\ ((((exists pfa_gap_division_append_given_stepmultiplyresultbound. pfa_gap_division_append_given_stepmultiplyresultbound + S (q) = (p)) /\ ((exists pfa_offset_left_division_append_given_stepmultiplyresultcongruence pfa_offset_right_division_append_given_stepmultiplyresultcongruence. ((k) * (pfd_difference_division_append_given_step)) + (p) * pfa_offset_left_division_append_given_stepmultiplyresultcongruence = (q) + (p) * pfa_offset_right_division_append_given_stepmultiplyresultcongruence)))))))))))))))) -> (forall pfd_index_division_append_new. (exists pfa_gap_division_append_newbound. pfa_gap_division_append_newbound + S (pfd_index_division_append_new) = (S N)) -> exists pfd_value_division_append_new. ((((exists ff_h_pfp_division_append_newentry. ff_h_pfp_division_append_newentry + S (pfd_value_division_append_new) = S ((S (pfd_index_division_append_new)) * QC)) /\ exists ff_q_pfp_division_append_newentry. QB = ff_q_pfp_division_append_newentry * S ((S (pfd_index_division_append_new)) * QC) + (pfd_value_division_append_new))) /\ ((exists pfd_input_division_append_newstep pfd_previous_division_append_newstep pfd_difference_division_append_newstep. ((((exists ff_h_pfp_division_append_newstepinput. ff_h_pfp_division_append_newstepinput + S (pfd_input_division_append_newstep) = S ((S (pfd_index_division_append_new)) * ac)) /\ exists ff_q_pfp_division_append_newstepinput. ab = ff_q_pfp_division_append_newstepinput * S ((S (pfd_index_division_append_new)) * ac) + (pfd_input_division_append_newstep))) /\ (((exists pfc_terms_code_division_append_newstepprevious pfc_terms_scale_division_append_newstepprevious pfc_natural_sum_division_append_newstepprevious. ((forall pfc_index_division_append_newsteppreviousdiagonal. (exists pfa_gap_division_append_newsteppreviousdiagonalbound. pfa_gap_division_append_newsteppreviousdiagonalbound + S (pfc_index_division_append_newsteppreviousdiagonal) = (S (pfd_index_division_append_new))) -> exists pfc_value_division_append_newsteppreviousdiagonal. ((((exists ff_h_pfp_division_append_newsteppreviousdiagonalentry. ff_h_pfp_division_append_newsteppreviousdiagonalentry + S (pfc_value_division_append_newsteppreviousdiagonal) = S ((S (pfc_index_division_append_newsteppreviousdiagonal)) * pfc_terms_scale_division_append_newstepprevious)) /\ exists ff_q_pfp_division_append_newsteppreviousdiagonalentry. pfc_terms_code_division_append_newstepprevious = ff_q_pfp_division_append_newsteppreviousdiagonalentry * S ((S (pfc_index_division_append_newsteppreviousdiagonal)) * pfc_terms_scale_division_append_newstepprevious) + (pfc_value_division_append_newsteppreviousdiagonal))) /\ ((exists pfc_complement_division_append_newsteppreviousdiagonalterm pfc_left_division_append_newsteppreviousdiagonalterm pfc_right_division_append_newsteppreviousdiagonalterm. (((pfc_index_division_append_newsteppreviousdiagonal)+pfc_complement_division_append_newsteppreviousdiagonalterm=(pfd_index_division_append_new)) /\ ((((((exists pfa_gap_division_append_newsteppreviousdiagonaltermleftinside. pfa_gap_division_append_newsteppreviousdiagonaltermleftinside + S (pfc_index_division_append_newsteppreviousdiagonal) = (pfd_index_division_append_new)) /\ ((((exists ff_h_pfp_division_append_newsteppreviousdiagonaltermleftentry. ff_h_pfp_division_append_newsteppreviousdiagonaltermleftentry + S (pfc_left_division_append_newsteppreviousdiagonalterm) = S ((S (pfc_index_division_append_newsteppreviousdiagonal)) * QC)) /\ exists ff_q_pfp_division_append_newsteppreviousdiagonaltermleftentry. QB = ff_q_pfp_division_append_newsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_append_newsteppreviousdiagonal)) * QC) + (pfc_left_division_append_newsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_append_newsteppreviousdiagonaltermleftoutside. pfc_gap_division_append_newsteppreviousdiagonaltermleftoutside+(pfd_index_division_append_new)=(pfc_index_division_append_newsteppreviousdiagonal)) /\ (((pfc_left_division_append_newsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_append_newsteppreviousdiagonaltermrightinside. pfa_gap_division_append_newsteppreviousdiagonaltermrightinside + S (pfc_complement_division_append_newsteppreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_append_newsteppreviousdiagonaltermrightentry. ff_h_pfp_division_append_newsteppreviousdiagonaltermrightentry + S (pfc_right_division_append_newsteppreviousdiagonalterm) = S ((S (pfc_complement_division_append_newsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_append_newsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_append_newsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_append_newsteppreviousdiagonalterm)) * bc) + (pfc_right_division_append_newsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_append_newsteppreviousdiagonaltermrightoutside. pfc_gap_division_append_newsteppreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_append_newsteppreviousdiagonalterm)) /\ (((pfc_right_division_append_newsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_append_newsteppreviousdiagonal)=pfc_left_division_append_newsteppreviousdiagonalterm*pfc_right_division_append_newsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_append_newstepprevioussum fs_v_pfc_division_append_newstepprevioussum. ((((exists fs_h_pfc_division_append_newstepprevioussum_body_start. fs_h_pfc_division_append_newstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_append_newstepprevioussum)) /\ exists fs_q_pfc_division_append_newstepprevioussum_body_start. fs_u_pfc_division_append_newstepprevioussum = fs_q_pfc_division_append_newstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_append_newstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_append_newstepprevioussum_body_terminal. fs_h_pfc_division_append_newstepprevioussum_body_terminal + S (pfc_natural_sum_division_append_newstepprevious) = S ((S (S (pfd_index_division_append_new))) * fs_v_pfc_division_append_newstepprevioussum)) /\ exists fs_q_pfc_division_append_newstepprevioussum_body_terminal. fs_u_pfc_division_append_newstepprevioussum = fs_q_pfc_division_append_newstepprevioussum_body_terminal * S ((S (S (pfd_index_division_append_new))) * fs_v_pfc_division_append_newstepprevioussum) + (pfc_natural_sum_division_append_newstepprevious))) /\ forall fs_i_pfc_division_append_newstepprevioussum_body_steps. (exists fs_lt_pfc_division_append_newstepprevioussum_body_steps_bound. fs_lt_pfc_division_append_newstepprevioussum_body_steps_bound + S fs_i_pfc_division_append_newstepprevioussum_body_steps = S (pfd_index_division_append_new)) -> exists fs_a_pfc_division_append_newstepprevioussum_body_steps fs_r_pfc_division_append_newstepprevioussum_body_steps fs_s_pfc_division_append_newstepprevioussum_body_steps. ((((exists fs_h_pfc_division_append_newstepprevioussum_body_steps_summand. fs_h_pfc_division_append_newstepprevioussum_body_steps_summand + S (fs_a_pfc_division_append_newstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_append_newstepprevioussum_body_steps)) * pfc_terms_scale_division_append_newstepprevious)) /\ exists fs_q_pfc_division_append_newstepprevioussum_body_steps_summand. pfc_terms_code_division_append_newstepprevious = fs_q_pfc_division_append_newstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_append_newstepprevioussum_body_steps)) * pfc_terms_scale_division_append_newstepprevious) + (fs_a_pfc_division_append_newstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_append_newstepprevioussum_body_steps_partial. fs_h_pfc_division_append_newstepprevioussum_body_steps_partial + S (fs_r_pfc_division_append_newstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_append_newstepprevioussum_body_steps)) * fs_v_pfc_division_append_newstepprevioussum)) /\ exists fs_q_pfc_division_append_newstepprevioussum_body_steps_partial. fs_u_pfc_division_append_newstepprevioussum = fs_q_pfc_division_append_newstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_append_newstepprevioussum_body_steps)) * fs_v_pfc_division_append_newstepprevioussum) + (fs_r_pfc_division_append_newstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_append_newstepprevioussum_body_steps_successor. fs_h_pfc_division_append_newstepprevioussum_body_steps_successor + S (fs_s_pfc_division_append_newstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_append_newstepprevioussum_body_steps)) * fs_v_pfc_division_append_newstepprevioussum)) /\ exists fs_q_pfc_division_append_newstepprevioussum_body_steps_successor. fs_u_pfc_division_append_newstepprevioussum = fs_q_pfc_division_append_newstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_append_newstepprevioussum_body_steps)) * fs_v_pfc_division_append_newstepprevioussum) + (fs_s_pfc_division_append_newstepprevioussum_body_steps))) /\ fs_s_pfc_division_append_newstepprevioussum_body_steps = fs_r_pfc_division_append_newstepprevioussum_body_steps + fs_a_pfc_division_append_newstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_append_newsteppreviousresiduebound. pfa_gap_division_append_newsteppreviousresiduebound + S (pfd_previous_division_append_newstep) = (p)) /\ ((exists pfa_offset_left_division_append_newsteppreviousresiduecongruence pfa_offset_right_division_append_newsteppreviousresiduecongruence. (pfc_natural_sum_division_append_newstepprevious) + (p) * pfa_offset_left_division_append_newsteppreviousresiduecongruence = (pfd_previous_division_append_newstep) + (p) * pfa_offset_right_division_append_newsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_append_newstepsubtractleft. pfa_gap_division_append_newstepsubtractleft + S (pfd_previous_division_append_newstep) = (p)) /\ (((exists pfa_gap_division_append_newstepsubtractright. pfa_gap_division_append_newstepsubtractright + S (pfd_difference_division_append_newstep) = (p)) /\ ((((exists pfa_gap_division_append_newstepsubtractresultbound. pfa_gap_division_append_newstepsubtractresultbound + S (pfd_input_division_append_newstep) = (p)) /\ ((exists pfa_offset_left_division_append_newstepsubtractresultcongruence pfa_offset_right_division_append_newstepsubtractresultcongruence. ((pfd_previous_division_append_newstep) + (pfd_difference_division_append_newstep)) + (p) * pfa_offset_left_division_append_newstepsubtractresultcongruence = (pfd_input_division_append_newstep) + (p) * pfa_offset_right_division_append_newstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_append_newstepmultiplyleft. pfa_gap_division_append_newstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_append_newstepmultiplyright. pfa_gap_division_append_newstepmultiplyright + S (pfd_difference_division_append_newstep) = (p)) /\ ((((exists pfa_gap_division_append_newstepmultiplyresultbound. pfa_gap_division_append_newstepmultiplyresultbound + S (pfd_value_division_append_new) = (p)) /\ ((exists pfa_offset_left_division_append_newstepmultiplyresultcongruence pfa_offset_right_division_append_newstepmultiplyresultcongruence. ((k) * (pfd_difference_division_append_newstep)) + (p) * pfa_offset_left_division_append_newstepmultiplyresultcongruence = (pfd_value_division_append_new) + (p) * pfa_offset_right_division_append_newstepmultiplyresultcongruence)))))))))))))))))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro M
  8. intro qb
  9. intro qc
  10. intro QB
  11. intro QC
  12. intro N
  13. intro q
  14. intro h
  15. intro he
  16. intro hq
  17. intro hs
  18. intro i
  19. intro hi
  20. have hcase : i=N \/ (exists pfa_gap_division_append_earlier. pfa_gap_division_append_earlier + S (i) = (N))
  21. specialize finite_lt_succ_eq_or_lt (N)
  22. specialize finite_lt_succ_eq_or_lt (i)
  23. apply finite_lt_succ_eq_or_lt
  24. exact hi
  25. cases hcase
  26. exists q
  27. split
  28. rewrite hcase_left
  29. rewrite hcase_left
  30. exact hq
  31. rewrite hcase_left
  32. rewrite hcase_left
  33. rewrite hcase_left
  34. rewrite hcase_left
  35. rewrite hcase_left
  36. rewrite hcase_left
  37. rewrite hcase_left
  38. rewrite hcase_left
  39. rewrite hcase_left
  40. specialize prime_field_polynomial_quotient_step_recode (p)
  41. specialize prime_field_polynomial_quotient_step_recode (k)
  42. specialize prime_field_polynomial_quotient_step_recode (ab)
  43. specialize prime_field_polynomial_quotient_step_recode (ac)
  44. specialize prime_field_polynomial_quotient_step_recode (bb)
  45. specialize prime_field_polynomial_quotient_step_recode (bc)
  46. specialize prime_field_polynomial_quotient_step_recode (M)
  47. specialize prime_field_polynomial_quotient_step_recode (qb)
  48. specialize prime_field_polynomial_quotient_step_recode (qc)
  49. specialize prime_field_polynomial_quotient_step_recode (QB)
  50. specialize prime_field_polynomial_quotient_step_recode (QC)
  51. specialize prime_field_polynomial_quotient_step_recode (N)
  52. specialize prime_field_polynomial_quotient_step_recode (q)
  53. apply prime_field_polynomial_quotient_step_recode
  54. exact he
  55. exact hs
  56. have hv : exists r. ((((exists ff_h_pfp_division_append_old_entry. ff_h_pfp_division_append_old_entry + S (r) = S ((S (i)) * qc)) /\ exists ff_q_pfp_division_append_old_entry. qb = ff_q_pfp_division_append_old_entry * S ((S (i)) * qc) + (r))) /\ ((exists pfd_input_division_append_old_step pfd_previous_division_append_old_step pfd_difference_division_append_old_step. ((((exists ff_h_pfp_division_append_old_stepinput. ff_h_pfp_division_append_old_stepinput + S (pfd_input_division_append_old_step) = S ((S (i)) * ac)) /\ exists ff_q_pfp_division_append_old_stepinput. ab = ff_q_pfp_division_append_old_stepinput * S ((S (i)) * ac) + (pfd_input_division_append_old_step))) /\ (((exists pfc_terms_code_division_append_old_stepprevious pfc_terms_scale_division_append_old_stepprevious pfc_natural_sum_division_append_old_stepprevious. ((forall pfc_index_division_append_old_steppreviousdiagonal. (exists pfa_gap_division_append_old_steppreviousdiagonalbound. pfa_gap_division_append_old_steppreviousdiagonalbound + S (pfc_index_division_append_old_steppreviousdiagonal) = (S (i))) -> exists pfc_value_division_append_old_steppreviousdiagonal. ((((exists ff_h_pfp_division_append_old_steppreviousdiagonalentry. ff_h_pfp_division_append_old_steppreviousdiagonalentry + S (pfc_value_division_append_old_steppreviousdiagonal) = S ((S (pfc_index_division_append_old_steppreviousdiagonal)) * pfc_terms_scale_division_append_old_stepprevious)) /\ exists ff_q_pfp_division_append_old_steppreviousdiagonalentry. pfc_terms_code_division_append_old_stepprevious = ff_q_pfp_division_append_old_steppreviousdiagonalentry * S ((S (pfc_index_division_append_old_steppreviousdiagonal)) * pfc_terms_scale_division_append_old_stepprevious) + (pfc_value_division_append_old_steppreviousdiagonal))) /\ ((exists pfc_complement_division_append_old_steppreviousdiagonalterm pfc_left_division_append_old_steppreviousdiagonalterm pfc_right_division_append_old_steppreviousdiagonalterm. (((pfc_index_division_append_old_steppreviousdiagonal)+pfc_complement_division_append_old_steppreviousdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_append_old_steppreviousdiagonaltermleftinside. pfa_gap_division_append_old_steppreviousdiagonaltermleftinside + S (pfc_index_division_append_old_steppreviousdiagonal) = (i)) /\ ((((exists ff_h_pfp_division_append_old_steppreviousdiagonaltermleftentry. ff_h_pfp_division_append_old_steppreviousdiagonaltermleftentry + S (pfc_left_division_append_old_steppreviousdiagonalterm) = S ((S (pfc_index_division_append_old_steppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_append_old_steppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_append_old_steppreviousdiagonaltermleftentry * S ((S (pfc_index_division_append_old_steppreviousdiagonal)) * qc) + (pfc_left_division_append_old_steppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_append_old_steppreviousdiagonaltermleftoutside. pfc_gap_division_append_old_steppreviousdiagonaltermleftoutside+(i)=(pfc_index_division_append_old_steppreviousdiagonal)) /\ (((pfc_left_division_append_old_steppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_append_old_steppreviousdiagonaltermrightinside. pfa_gap_division_append_old_steppreviousdiagonaltermrightinside + S (pfc_complement_division_append_old_steppreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_append_old_steppreviousdiagonaltermrightentry. ff_h_pfp_division_append_old_steppreviousdiagonaltermrightentry + S (pfc_right_division_append_old_steppreviousdiagonalterm) = S ((S (pfc_complement_division_append_old_steppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_append_old_steppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_append_old_steppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_append_old_steppreviousdiagonalterm)) * bc) + (pfc_right_division_append_old_steppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_append_old_steppreviousdiagonaltermrightoutside. pfc_gap_division_append_old_steppreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_append_old_steppreviousdiagonalterm)) /\ (((pfc_right_division_append_old_steppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_append_old_steppreviousdiagonal)=pfc_left_division_append_old_steppreviousdiagonalterm*pfc_right_division_append_old_steppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_append_old_stepprevioussum fs_v_pfc_division_append_old_stepprevioussum. ((((exists fs_h_pfc_division_append_old_stepprevioussum_body_start. fs_h_pfc_division_append_old_stepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_append_old_stepprevioussum)) /\ exists fs_q_pfc_division_append_old_stepprevioussum_body_start. fs_u_pfc_division_append_old_stepprevioussum = fs_q_pfc_division_append_old_stepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_append_old_stepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_append_old_stepprevioussum_body_terminal. fs_h_pfc_division_append_old_stepprevioussum_body_terminal + S (pfc_natural_sum_division_append_old_stepprevious) = S ((S (S (i))) * fs_v_pfc_division_append_old_stepprevioussum)) /\ exists fs_q_pfc_division_append_old_stepprevioussum_body_terminal. fs_u_pfc_division_append_old_stepprevioussum = fs_q_pfc_division_append_old_stepprevioussum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_append_old_stepprevioussum) + (pfc_natural_sum_division_append_old_stepprevious))) /\ forall fs_i_pfc_division_append_old_stepprevioussum_body_steps. (exists fs_lt_pfc_division_append_old_stepprevioussum_body_steps_bound. fs_lt_pfc_division_append_old_stepprevioussum_body_steps_bound + S fs_i_pfc_division_append_old_stepprevioussum_body_steps = S (i)) -> exists fs_a_pfc_division_append_old_stepprevioussum_body_steps fs_r_pfc_division_append_old_stepprevioussum_body_steps fs_s_pfc_division_append_old_stepprevioussum_body_steps. ((((exists fs_h_pfc_division_append_old_stepprevioussum_body_steps_summand. fs_h_pfc_division_append_old_stepprevioussum_body_steps_summand + S (fs_a_pfc_division_append_old_stepprevioussum_body_steps) = S ((S (fs_i_pfc_division_append_old_stepprevioussum_body_steps)) * pfc_terms_scale_division_append_old_stepprevious)) /\ exists fs_q_pfc_division_append_old_stepprevioussum_body_steps_summand. pfc_terms_code_division_append_old_stepprevious = fs_q_pfc_division_append_old_stepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_append_old_stepprevioussum_body_steps)) * pfc_terms_scale_division_append_old_stepprevious) + (fs_a_pfc_division_append_old_stepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_append_old_stepprevioussum_body_steps_partial. fs_h_pfc_division_append_old_stepprevioussum_body_steps_partial + S (fs_r_pfc_division_append_old_stepprevioussum_body_steps) = S ((S (fs_i_pfc_division_append_old_stepprevioussum_body_steps)) * fs_v_pfc_division_append_old_stepprevioussum)) /\ exists fs_q_pfc_division_append_old_stepprevioussum_body_steps_partial. fs_u_pfc_division_append_old_stepprevioussum = fs_q_pfc_division_append_old_stepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_append_old_stepprevioussum_body_steps)) * fs_v_pfc_division_append_old_stepprevioussum) + (fs_r_pfc_division_append_old_stepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_append_old_stepprevioussum_body_steps_successor. fs_h_pfc_division_append_old_stepprevioussum_body_steps_successor + S (fs_s_pfc_division_append_old_stepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_append_old_stepprevioussum_body_steps)) * fs_v_pfc_division_append_old_stepprevioussum)) /\ exists fs_q_pfc_division_append_old_stepprevioussum_body_steps_successor. fs_u_pfc_division_append_old_stepprevioussum = fs_q_pfc_division_append_old_stepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_append_old_stepprevioussum_body_steps)) * fs_v_pfc_division_append_old_stepprevioussum) + (fs_s_pfc_division_append_old_stepprevioussum_body_steps))) /\ fs_s_pfc_division_append_old_stepprevioussum_body_steps = fs_r_pfc_division_append_old_stepprevioussum_body_steps + fs_a_pfc_division_append_old_stepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_append_old_steppreviousresiduebound. pfa_gap_division_append_old_steppreviousresiduebound + S (pfd_previous_division_append_old_step) = (p)) /\ ((exists pfa_offset_left_division_append_old_steppreviousresiduecongruence pfa_offset_right_division_append_old_steppreviousresiduecongruence. (pfc_natural_sum_division_append_old_stepprevious) + (p) * pfa_offset_left_division_append_old_steppreviousresiduecongruence = (pfd_previous_division_append_old_step) + (p) * pfa_offset_right_division_append_old_steppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_append_old_stepsubtractleft. pfa_gap_division_append_old_stepsubtractleft + S (pfd_previous_division_append_old_step) = (p)) /\ (((exists pfa_gap_division_append_old_stepsubtractright. pfa_gap_division_append_old_stepsubtractright + S (pfd_difference_division_append_old_step) = (p)) /\ ((((exists pfa_gap_division_append_old_stepsubtractresultbound. pfa_gap_division_append_old_stepsubtractresultbound + S (pfd_input_division_append_old_step) = (p)) /\ ((exists pfa_offset_left_division_append_old_stepsubtractresultcongruence pfa_offset_right_division_append_old_stepsubtractresultcongruence. ((pfd_previous_division_append_old_step) + (pfd_difference_division_append_old_step)) + (p) * pfa_offset_left_division_append_old_stepsubtractresultcongruence = (pfd_input_division_append_old_step) + (p) * pfa_offset_right_division_append_old_stepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_append_old_stepmultiplyleft. pfa_gap_division_append_old_stepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_append_old_stepmultiplyright. pfa_gap_division_append_old_stepmultiplyright + S (pfd_difference_division_append_old_step) = (p)) /\ ((((exists pfa_gap_division_append_old_stepmultiplyresultbound. pfa_gap_division_append_old_stepmultiplyresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_division_append_old_stepmultiplyresultcongruence pfa_offset_right_division_append_old_stepmultiplyresultcongruence. ((k) * (pfd_difference_division_append_old_step)) + (p) * pfa_offset_left_division_append_old_stepmultiplyresultcongruence = (r) + (p) * pfa_offset_right_division_append_old_stepmultiplyresultcongruence))))))))))))))))))
  57. specialize h (i)
  58. apply h
  59. exact hcase_right
  60. cases hv
  61. cases hv_witness
  62. exists x
  63. split
  64. specialize he (i)
  65. specialize he (x)
  66. apply he
  67. exact hcase_right
  68. exact hv_witness_left
  69. specialize prime_field_polynomial_quotient_step_recode (p)
  70. specialize prime_field_polynomial_quotient_step_recode (k)
  71. specialize prime_field_polynomial_quotient_step_recode (ab)
  72. specialize prime_field_polynomial_quotient_step_recode (ac)
  73. specialize prime_field_polynomial_quotient_step_recode (bb)
  74. specialize prime_field_polynomial_quotient_step_recode (bc)
  75. specialize prime_field_polynomial_quotient_step_recode (M)
  76. specialize prime_field_polynomial_quotient_step_recode (qb)
  77. specialize prime_field_polynomial_quotient_step_recode (qc)
  78. specialize prime_field_polynomial_quotient_step_recode (QB)
  79. specialize prime_field_polynomial_quotient_step_recode (QC)
  80. specialize prime_field_polynomial_quotient_step_recode (i)
  81. specialize prime_field_polynomial_quotient_step_recode (x)
  82. apply prime_field_polynomial_quotient_step_recode
  83. intro j
  84. intro a
  85. intro hj
  86. intro ha
  87. specialize he (j)
  88. specialize he (a)
  89. apply he
  90. specialize lt_of_lt_of_le (j)
  91. specialize lt_of_lt_of_le (S i)
  92. specialize lt_of_lt_of_le (N)
  93. apply lt_of_lt_of_le
  94. specialize le_succ (S j)
  95. specialize le_succ (i)
  96. apply le_succ
  97. exact hj
  98. exact hcase_right
  99. exact ha
  100. exact hv_witness_right
prime_field_polynomial_quotient_prefix_exists · unchanged support, not a new admission
forall p k ab ac bb bc M N. (~((p) = 1) /\ forall pfa_factor_left_division_exists_prime pfa_factor_right_division_exists_prime. (p) = pfa_factor_left_division_exists_prime * pfa_factor_right_division_exists_prime -> pfa_factor_left_division_exists_prime = 1 \/ pfa_factor_right_division_exists_prime = 1) -> (exists pfa_gap_division_exists_scalar. pfa_gap_division_exists_scalar + S (k) = (p)) -> (forall fom_index_pfp_division_exists_source. (exists fom_gap_pfp_division_exists_source_index_bound. fom_gap_pfp_division_exists_source_index_bound + S (fom_index_pfp_division_exists_source) = N) -> exists fom_value_pfp_division_exists_source. ((((exists fom_beta_height_pfp_division_exists_source_entry. fom_beta_height_pfp_division_exists_source_entry + S (fom_value_pfp_division_exists_source) = S ((S (fom_index_pfp_division_exists_source)) * ac)) /\ exists fom_beta_quotient_pfp_division_exists_source_entry. ab = fom_beta_quotient_pfp_division_exists_source_entry * S ((S (fom_index_pfp_division_exists_source)) * ac) + (fom_value_pfp_division_exists_source))) /\ (exists fom_gap_pfp_division_exists_source_value_bound. fom_gap_pfp_division_exists_source_value_bound + S (fom_value_pfp_division_exists_source) = p))) -> exists qb qc. (forall pfd_index_division_exists_result. (exists pfa_gap_division_exists_resultbound. pfa_gap_division_exists_resultbound + S (pfd_index_division_exists_result) = (N)) -> exists pfd_value_division_exists_result. ((((exists ff_h_pfp_division_exists_resultentry. ff_h_pfp_division_exists_resultentry + S (pfd_value_division_exists_result) = S ((S (pfd_index_division_exists_result)) * qc)) /\ exists ff_q_pfp_division_exists_resultentry. qb = ff_q_pfp_division_exists_resultentry * S ((S (pfd_index_division_exists_result)) * qc) + (pfd_value_division_exists_result))) /\ ((exists pfd_input_division_exists_resultstep pfd_previous_division_exists_resultstep pfd_difference_division_exists_resultstep. ((((exists ff_h_pfp_division_exists_resultstepinput. ff_h_pfp_division_exists_resultstepinput + S (pfd_input_division_exists_resultstep) = S ((S (pfd_index_division_exists_result)) * ac)) /\ exists ff_q_pfp_division_exists_resultstepinput. ab = ff_q_pfp_division_exists_resultstepinput * S ((S (pfd_index_division_exists_result)) * ac) + (pfd_input_division_exists_resultstep))) /\ (((exists pfc_terms_code_division_exists_resultstepprevious pfc_terms_scale_division_exists_resultstepprevious pfc_natural_sum_division_exists_resultstepprevious. ((forall pfc_index_division_exists_resultsteppreviousdiagonal. (exists pfa_gap_division_exists_resultsteppreviousdiagonalbound. pfa_gap_division_exists_resultsteppreviousdiagonalbound + S (pfc_index_division_exists_resultsteppreviousdiagonal) = (S (pfd_index_division_exists_result))) -> exists pfc_value_division_exists_resultsteppreviousdiagonal. ((((exists ff_h_pfp_division_exists_resultsteppreviousdiagonalentry. ff_h_pfp_division_exists_resultsteppreviousdiagonalentry + S (pfc_value_division_exists_resultsteppreviousdiagonal) = S ((S (pfc_index_division_exists_resultsteppreviousdiagonal)) * pfc_terms_scale_division_exists_resultstepprevious)) /\ exists ff_q_pfp_division_exists_resultsteppreviousdiagonalentry. pfc_terms_code_division_exists_resultstepprevious = ff_q_pfp_division_exists_resultsteppreviousdiagonalentry * S ((S (pfc_index_division_exists_resultsteppreviousdiagonal)) * pfc_terms_scale_division_exists_resultstepprevious) + (pfc_value_division_exists_resultsteppreviousdiagonal))) /\ ((exists pfc_complement_division_exists_resultsteppreviousdiagonalterm pfc_left_division_exists_resultsteppreviousdiagonalterm pfc_right_division_exists_resultsteppreviousdiagonalterm. (((pfc_index_division_exists_resultsteppreviousdiagonal)+pfc_complement_division_exists_resultsteppreviousdiagonalterm=(pfd_index_division_exists_result)) /\ ((((((exists pfa_gap_division_exists_resultsteppreviousdiagonaltermleftinside. pfa_gap_division_exists_resultsteppreviousdiagonaltermleftinside + S (pfc_index_division_exists_resultsteppreviousdiagonal) = (pfd_index_division_exists_result)) /\ ((((exists ff_h_pfp_division_exists_resultsteppreviousdiagonaltermleftentry. ff_h_pfp_division_exists_resultsteppreviousdiagonaltermleftentry + S (pfc_left_division_exists_resultsteppreviousdiagonalterm) = S ((S (pfc_index_division_exists_resultsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_exists_resultsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_exists_resultsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_exists_resultsteppreviousdiagonal)) * qc) + (pfc_left_division_exists_resultsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_exists_resultsteppreviousdiagonaltermleftoutside. pfc_gap_division_exists_resultsteppreviousdiagonaltermleftoutside+(pfd_index_division_exists_result)=(pfc_index_division_exists_resultsteppreviousdiagonal)) /\ (((pfc_left_division_exists_resultsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_exists_resultsteppreviousdiagonaltermrightinside. pfa_gap_division_exists_resultsteppreviousdiagonaltermrightinside + S (pfc_complement_division_exists_resultsteppreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_exists_resultsteppreviousdiagonaltermrightentry. ff_h_pfp_division_exists_resultsteppreviousdiagonaltermrightentry + S (pfc_right_division_exists_resultsteppreviousdiagonalterm) = S ((S (pfc_complement_division_exists_resultsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_exists_resultsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_exists_resultsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_exists_resultsteppreviousdiagonalterm)) * bc) + (pfc_right_division_exists_resultsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_exists_resultsteppreviousdiagonaltermrightoutside. pfc_gap_division_exists_resultsteppreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_exists_resultsteppreviousdiagonalterm)) /\ (((pfc_right_division_exists_resultsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_exists_resultsteppreviousdiagonal)=pfc_left_division_exists_resultsteppreviousdiagonalterm*pfc_right_division_exists_resultsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_exists_resultstepprevioussum fs_v_pfc_division_exists_resultstepprevioussum. ((((exists fs_h_pfc_division_exists_resultstepprevioussum_body_start. fs_h_pfc_division_exists_resultstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_exists_resultstepprevioussum)) /\ exists fs_q_pfc_division_exists_resultstepprevioussum_body_start. fs_u_pfc_division_exists_resultstepprevioussum = fs_q_pfc_division_exists_resultstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_exists_resultstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_exists_resultstepprevioussum_body_terminal. fs_h_pfc_division_exists_resultstepprevioussum_body_terminal + S (pfc_natural_sum_division_exists_resultstepprevious) = S ((S (S (pfd_index_division_exists_result))) * fs_v_pfc_division_exists_resultstepprevioussum)) /\ exists fs_q_pfc_division_exists_resultstepprevioussum_body_terminal. fs_u_pfc_division_exists_resultstepprevioussum = fs_q_pfc_division_exists_resultstepprevioussum_body_terminal * S ((S (S (pfd_index_division_exists_result))) * fs_v_pfc_division_exists_resultstepprevioussum) + (pfc_natural_sum_division_exists_resultstepprevious))) /\ forall fs_i_pfc_division_exists_resultstepprevioussum_body_steps. (exists fs_lt_pfc_division_exists_resultstepprevioussum_body_steps_bound. fs_lt_pfc_division_exists_resultstepprevioussum_body_steps_bound + S fs_i_pfc_division_exists_resultstepprevioussum_body_steps = S (pfd_index_division_exists_result)) -> exists fs_a_pfc_division_exists_resultstepprevioussum_body_steps fs_r_pfc_division_exists_resultstepprevioussum_body_steps fs_s_pfc_division_exists_resultstepprevioussum_body_steps. ((((exists fs_h_pfc_division_exists_resultstepprevioussum_body_steps_summand. fs_h_pfc_division_exists_resultstepprevioussum_body_steps_summand + S (fs_a_pfc_division_exists_resultstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_exists_resultstepprevioussum_body_steps)) * pfc_terms_scale_division_exists_resultstepprevious)) /\ exists fs_q_pfc_division_exists_resultstepprevioussum_body_steps_summand. pfc_terms_code_division_exists_resultstepprevious = fs_q_pfc_division_exists_resultstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_exists_resultstepprevioussum_body_steps)) * pfc_terms_scale_division_exists_resultstepprevious) + (fs_a_pfc_division_exists_resultstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_exists_resultstepprevioussum_body_steps_partial. fs_h_pfc_division_exists_resultstepprevioussum_body_steps_partial + S (fs_r_pfc_division_exists_resultstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_exists_resultstepprevioussum_body_steps)) * fs_v_pfc_division_exists_resultstepprevioussum)) /\ exists fs_q_pfc_division_exists_resultstepprevioussum_body_steps_partial. fs_u_pfc_division_exists_resultstepprevioussum = fs_q_pfc_division_exists_resultstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_exists_resultstepprevioussum_body_steps)) * fs_v_pfc_division_exists_resultstepprevioussum) + (fs_r_pfc_division_exists_resultstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_exists_resultstepprevioussum_body_steps_successor. fs_h_pfc_division_exists_resultstepprevioussum_body_steps_successor + S (fs_s_pfc_division_exists_resultstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_exists_resultstepprevioussum_body_steps)) * fs_v_pfc_division_exists_resultstepprevioussum)) /\ exists fs_q_pfc_division_exists_resultstepprevioussum_body_steps_successor. fs_u_pfc_division_exists_resultstepprevioussum = fs_q_pfc_division_exists_resultstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_exists_resultstepprevioussum_body_steps)) * fs_v_pfc_division_exists_resultstepprevioussum) + (fs_s_pfc_division_exists_resultstepprevioussum_body_steps))) /\ fs_s_pfc_division_exists_resultstepprevioussum_body_steps = fs_r_pfc_division_exists_resultstepprevioussum_body_steps + fs_a_pfc_division_exists_resultstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_exists_resultsteppreviousresiduebound. pfa_gap_division_exists_resultsteppreviousresiduebound + S (pfd_previous_division_exists_resultstep) = (p)) /\ ((exists pfa_offset_left_division_exists_resultsteppreviousresiduecongruence pfa_offset_right_division_exists_resultsteppreviousresiduecongruence. (pfc_natural_sum_division_exists_resultstepprevious) + (p) * pfa_offset_left_division_exists_resultsteppreviousresiduecongruence = (pfd_previous_division_exists_resultstep) + (p) * pfa_offset_right_division_exists_resultsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_exists_resultstepsubtractleft. pfa_gap_division_exists_resultstepsubtractleft + S (pfd_previous_division_exists_resultstep) = (p)) /\ (((exists pfa_gap_division_exists_resultstepsubtractright. pfa_gap_division_exists_resultstepsubtractright + S (pfd_difference_division_exists_resultstep) = (p)) /\ ((((exists pfa_gap_division_exists_resultstepsubtractresultbound. pfa_gap_division_exists_resultstepsubtractresultbound + S (pfd_input_division_exists_resultstep) = (p)) /\ ((exists pfa_offset_left_division_exists_resultstepsubtractresultcongruence pfa_offset_right_division_exists_resultstepsubtractresultcongruence. ((pfd_previous_division_exists_resultstep) + (pfd_difference_division_exists_resultstep)) + (p) * pfa_offset_left_division_exists_resultstepsubtractresultcongruence = (pfd_input_division_exists_resultstep) + (p) * pfa_offset_right_division_exists_resultstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_exists_resultstepmultiplyleft. pfa_gap_division_exists_resultstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_exists_resultstepmultiplyright. pfa_gap_division_exists_resultstepmultiplyright + S (pfd_difference_division_exists_resultstep) = (p)) /\ ((((exists pfa_gap_division_exists_resultstepmultiplyresultbound. pfa_gap_division_exists_resultstepmultiplyresultbound + S (pfd_value_division_exists_result) = (p)) /\ ((exists pfa_offset_left_division_exists_resultstepmultiplyresultcongruence pfa_offset_right_division_exists_resultstepmultiplyresultcongruence. ((k) * (pfd_difference_division_exists_resultstep)) + (p) * pfa_offset_left_division_exists_resultstepmultiplyresultcongruence = (pfd_value_division_exists_result) + (p) * pfa_offset_right_division_exists_resultstepmultiplyresultcongruence)))))))))))))))))))
  1. intro p
  2. intro k
  3. intro ab
  4. intro ac
  5. intro bb
  6. intro bc
  7. intro M
  8. intro N
  9. intro hp
  10. intro hk
  11. induction N
  12. intro ha
  13. exists 0
  14. exists 0
  15. specialize prime_field_polynomial_quotient_prefix_empty (p)
  16. specialize prime_field_polynomial_quotient_prefix_empty (k)
  17. specialize prime_field_polynomial_quotient_prefix_empty (ab)
  18. specialize prime_field_polynomial_quotient_prefix_empty (ac)
  19. specialize prime_field_polynomial_quotient_prefix_empty (bb)
  20. specialize prime_field_polynomial_quotient_prefix_empty (bc)
  21. specialize prime_field_polynomial_quotient_prefix_empty (M)
  22. specialize prime_field_polynomial_quotient_prefix_empty (0)
  23. specialize prime_field_polynomial_quotient_prefix_empty (0)
  24. apply prime_field_polynomial_quotient_prefix_empty
  25. intro ha
  26. have hold : exists qb qc. (forall pfd_index_division_exists_old. (exists pfa_gap_division_exists_oldbound. pfa_gap_division_exists_oldbound + S (pfd_index_division_exists_old) = (N)) -> exists pfd_value_division_exists_old. ((((exists ff_h_pfp_division_exists_oldentry. ff_h_pfp_division_exists_oldentry + S (pfd_value_division_exists_old) = S ((S (pfd_index_division_exists_old)) * qc)) /\ exists ff_q_pfp_division_exists_oldentry. qb = ff_q_pfp_division_exists_oldentry * S ((S (pfd_index_division_exists_old)) * qc) + (pfd_value_division_exists_old))) /\ ((exists pfd_input_division_exists_oldstep pfd_previous_division_exists_oldstep pfd_difference_division_exists_oldstep. ((((exists ff_h_pfp_division_exists_oldstepinput. ff_h_pfp_division_exists_oldstepinput + S (pfd_input_division_exists_oldstep) = S ((S (pfd_index_division_exists_old)) * ac)) /\ exists ff_q_pfp_division_exists_oldstepinput. ab = ff_q_pfp_division_exists_oldstepinput * S ((S (pfd_index_division_exists_old)) * ac) + (pfd_input_division_exists_oldstep))) /\ (((exists pfc_terms_code_division_exists_oldstepprevious pfc_terms_scale_division_exists_oldstepprevious pfc_natural_sum_division_exists_oldstepprevious. ((forall pfc_index_division_exists_oldsteppreviousdiagonal. (exists pfa_gap_division_exists_oldsteppreviousdiagonalbound. pfa_gap_division_exists_oldsteppreviousdiagonalbound + S (pfc_index_division_exists_oldsteppreviousdiagonal) = (S (pfd_index_division_exists_old))) -> exists pfc_value_division_exists_oldsteppreviousdiagonal. ((((exists ff_h_pfp_division_exists_oldsteppreviousdiagonalentry. ff_h_pfp_division_exists_oldsteppreviousdiagonalentry + S (pfc_value_division_exists_oldsteppreviousdiagonal) = S ((S (pfc_index_division_exists_oldsteppreviousdiagonal)) * pfc_terms_scale_division_exists_oldstepprevious)) /\ exists ff_q_pfp_division_exists_oldsteppreviousdiagonalentry. pfc_terms_code_division_exists_oldstepprevious = ff_q_pfp_division_exists_oldsteppreviousdiagonalentry * S ((S (pfc_index_division_exists_oldsteppreviousdiagonal)) * pfc_terms_scale_division_exists_oldstepprevious) + (pfc_value_division_exists_oldsteppreviousdiagonal))) /\ ((exists pfc_complement_division_exists_oldsteppreviousdiagonalterm pfc_left_division_exists_oldsteppreviousdiagonalterm pfc_right_division_exists_oldsteppreviousdiagonalterm. (((pfc_index_division_exists_oldsteppreviousdiagonal)+pfc_complement_division_exists_oldsteppreviousdiagonalterm=(pfd_index_division_exists_old)) /\ ((((((exists pfa_gap_division_exists_oldsteppreviousdiagonaltermleftinside. pfa_gap_division_exists_oldsteppreviousdiagonaltermleftinside + S (pfc_index_division_exists_oldsteppreviousdiagonal) = (pfd_index_division_exists_old)) /\ ((((exists ff_h_pfp_division_exists_oldsteppreviousdiagonaltermleftentry. ff_h_pfp_division_exists_oldsteppreviousdiagonaltermleftentry + S (pfc_left_division_exists_oldsteppreviousdiagonalterm) = S ((S (pfc_index_division_exists_oldsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_exists_oldsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_exists_oldsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_exists_oldsteppreviousdiagonal)) * qc) + (pfc_left_division_exists_oldsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_exists_oldsteppreviousdiagonaltermleftoutside. pfc_gap_division_exists_oldsteppreviousdiagonaltermleftoutside+(pfd_index_division_exists_old)=(pfc_index_division_exists_oldsteppreviousdiagonal)) /\ (((pfc_left_division_exists_oldsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_exists_oldsteppreviousdiagonaltermrightinside. pfa_gap_division_exists_oldsteppreviousdiagonaltermrightinside + S (pfc_complement_division_exists_oldsteppreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_exists_oldsteppreviousdiagonaltermrightentry. ff_h_pfp_division_exists_oldsteppreviousdiagonaltermrightentry + S (pfc_right_division_exists_oldsteppreviousdiagonalterm) = S ((S (pfc_complement_division_exists_oldsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_exists_oldsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_exists_oldsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_exists_oldsteppreviousdiagonalterm)) * bc) + (pfc_right_division_exists_oldsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_exists_oldsteppreviousdiagonaltermrightoutside. pfc_gap_division_exists_oldsteppreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_exists_oldsteppreviousdiagonalterm)) /\ (((pfc_right_division_exists_oldsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_exists_oldsteppreviousdiagonal)=pfc_left_division_exists_oldsteppreviousdiagonalterm*pfc_right_division_exists_oldsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_exists_oldstepprevioussum fs_v_pfc_division_exists_oldstepprevioussum. ((((exists fs_h_pfc_division_exists_oldstepprevioussum_body_start. fs_h_pfc_division_exists_oldstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_exists_oldstepprevioussum)) /\ exists fs_q_pfc_division_exists_oldstepprevioussum_body_start. fs_u_pfc_division_exists_oldstepprevioussum = fs_q_pfc_division_exists_oldstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_exists_oldstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_exists_oldstepprevioussum_body_terminal. fs_h_pfc_division_exists_oldstepprevioussum_body_terminal + S (pfc_natural_sum_division_exists_oldstepprevious) = S ((S (S (pfd_index_division_exists_old))) * fs_v_pfc_division_exists_oldstepprevioussum)) /\ exists fs_q_pfc_division_exists_oldstepprevioussum_body_terminal. fs_u_pfc_division_exists_oldstepprevioussum = fs_q_pfc_division_exists_oldstepprevioussum_body_terminal * S ((S (S (pfd_index_division_exists_old))) * fs_v_pfc_division_exists_oldstepprevioussum) + (pfc_natural_sum_division_exists_oldstepprevious))) /\ forall fs_i_pfc_division_exists_oldstepprevioussum_body_steps. (exists fs_lt_pfc_division_exists_oldstepprevioussum_body_steps_bound. fs_lt_pfc_division_exists_oldstepprevioussum_body_steps_bound + S fs_i_pfc_division_exists_oldstepprevioussum_body_steps = S (pfd_index_division_exists_old)) -> exists fs_a_pfc_division_exists_oldstepprevioussum_body_steps fs_r_pfc_division_exists_oldstepprevioussum_body_steps fs_s_pfc_division_exists_oldstepprevioussum_body_steps. ((((exists fs_h_pfc_division_exists_oldstepprevioussum_body_steps_summand. fs_h_pfc_division_exists_oldstepprevioussum_body_steps_summand + S (fs_a_pfc_division_exists_oldstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_exists_oldstepprevioussum_body_steps)) * pfc_terms_scale_division_exists_oldstepprevious)) /\ exists fs_q_pfc_division_exists_oldstepprevioussum_body_steps_summand. pfc_terms_code_division_exists_oldstepprevious = fs_q_pfc_division_exists_oldstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_exists_oldstepprevioussum_body_steps)) * pfc_terms_scale_division_exists_oldstepprevious) + (fs_a_pfc_division_exists_oldstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_exists_oldstepprevioussum_body_steps_partial. fs_h_pfc_division_exists_oldstepprevioussum_body_steps_partial + S (fs_r_pfc_division_exists_oldstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_exists_oldstepprevioussum_body_steps)) * fs_v_pfc_division_exists_oldstepprevioussum)) /\ exists fs_q_pfc_division_exists_oldstepprevioussum_body_steps_partial. fs_u_pfc_division_exists_oldstepprevioussum = fs_q_pfc_division_exists_oldstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_exists_oldstepprevioussum_body_steps)) * fs_v_pfc_division_exists_oldstepprevioussum) + (fs_r_pfc_division_exists_oldstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_exists_oldstepprevioussum_body_steps_successor. fs_h_pfc_division_exists_oldstepprevioussum_body_steps_successor + S (fs_s_pfc_division_exists_oldstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_exists_oldstepprevioussum_body_steps)) * fs_v_pfc_division_exists_oldstepprevioussum)) /\ exists fs_q_pfc_division_exists_oldstepprevioussum_body_steps_successor. fs_u_pfc_division_exists_oldstepprevioussum = fs_q_pfc_division_exists_oldstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_exists_oldstepprevioussum_body_steps)) * fs_v_pfc_division_exists_oldstepprevioussum) + (fs_s_pfc_division_exists_oldstepprevioussum_body_steps))) /\ fs_s_pfc_division_exists_oldstepprevioussum_body_steps = fs_r_pfc_division_exists_oldstepprevioussum_body_steps + fs_a_pfc_division_exists_oldstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_exists_oldsteppreviousresiduebound. pfa_gap_division_exists_oldsteppreviousresiduebound + S (pfd_previous_division_exists_oldstep) = (p)) /\ ((exists pfa_offset_left_division_exists_oldsteppreviousresiduecongruence pfa_offset_right_division_exists_oldsteppreviousresiduecongruence. (pfc_natural_sum_division_exists_oldstepprevious) + (p) * pfa_offset_left_division_exists_oldsteppreviousresiduecongruence = (pfd_previous_division_exists_oldstep) + (p) * pfa_offset_right_division_exists_oldsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_exists_oldstepsubtractleft. pfa_gap_division_exists_oldstepsubtractleft + S (pfd_previous_division_exists_oldstep) = (p)) /\ (((exists pfa_gap_division_exists_oldstepsubtractright. pfa_gap_division_exists_oldstepsubtractright + S (pfd_difference_division_exists_oldstep) = (p)) /\ ((((exists pfa_gap_division_exists_oldstepsubtractresultbound. pfa_gap_division_exists_oldstepsubtractresultbound + S (pfd_input_division_exists_oldstep) = (p)) /\ ((exists pfa_offset_left_division_exists_oldstepsubtractresultcongruence pfa_offset_right_division_exists_oldstepsubtractresultcongruence. ((pfd_previous_division_exists_oldstep) + (pfd_difference_division_exists_oldstep)) + (p) * pfa_offset_left_division_exists_oldstepsubtractresultcongruence = (pfd_input_division_exists_oldstep) + (p) * pfa_offset_right_division_exists_oldstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_exists_oldstepmultiplyleft. pfa_gap_division_exists_oldstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_exists_oldstepmultiplyright. pfa_gap_division_exists_oldstepmultiplyright + S (pfd_difference_division_exists_oldstep) = (p)) /\ ((((exists pfa_gap_division_exists_oldstepmultiplyresultbound. pfa_gap_division_exists_oldstepmultiplyresultbound + S (pfd_value_division_exists_old) = (p)) /\ ((exists pfa_offset_left_division_exists_oldstepmultiplyresultcongruence pfa_offset_right_division_exists_oldstepmultiplyresultcongruence. ((k) * (pfd_difference_division_exists_oldstep)) + (p) * pfa_offset_left_division_exists_oldstepmultiplyresultcongruence = (pfd_value_division_exists_old) + (p) * pfa_offset_right_division_exists_oldstepmultiplyresultcongruence)))))))))))))))))))
  27. apply IH
  28. intro i
  29. intro hi
  30. specialize ha (i)
  31. apply ha
  32. specialize le_succ (S i)
  33. specialize le_succ (N)
  34. apply le_succ
  35. exact hi
  36. cases hold
  37. cases hold_witness
  38. have hinput : exists a. ((((exists ff_h_pfp_division_exists_input. ff_h_pfp_division_exists_input + S (a) = S ((S (N)) * ac)) /\ exists ff_q_pfp_division_exists_input. ab = ff_q_pfp_division_exists_input * S ((S (N)) * ac) + (a))) /\ ((exists pfa_gap_division_exists_input_bound. pfa_gap_division_exists_input_bound + S (a) = (p))))
  39. specialize ha (N)
  40. apply ha
  41. specialize le_refl (S N)
  42. apply le_refl
  43. cases hinput
  44. cases hinput_witness
  45. have hc : exists c. (exists pfc_terms_code_division_exists_previous pfc_terms_scale_division_exists_previous pfc_natural_sum_division_exists_previous. ((forall pfc_index_division_exists_previousdiagonal. (exists pfa_gap_division_exists_previousdiagonalbound. pfa_gap_division_exists_previousdiagonalbound + S (pfc_index_division_exists_previousdiagonal) = (S (N))) -> exists pfc_value_division_exists_previousdiagonal. ((((exists ff_h_pfp_division_exists_previousdiagonalentry. ff_h_pfp_division_exists_previousdiagonalentry + S (pfc_value_division_exists_previousdiagonal) = S ((S (pfc_index_division_exists_previousdiagonal)) * pfc_terms_scale_division_exists_previous)) /\ exists ff_q_pfp_division_exists_previousdiagonalentry. pfc_terms_code_division_exists_previous = ff_q_pfp_division_exists_previousdiagonalentry * S ((S (pfc_index_division_exists_previousdiagonal)) * pfc_terms_scale_division_exists_previous) + (pfc_value_division_exists_previousdiagonal))) /\ ((exists pfc_complement_division_exists_previousdiagonalterm pfc_left_division_exists_previousdiagonalterm pfc_right_division_exists_previousdiagonalterm. (((pfc_index_division_exists_previousdiagonal)+pfc_complement_division_exists_previousdiagonalterm=(N)) /\ ((((((exists pfa_gap_division_exists_previousdiagonaltermleftinside. pfa_gap_division_exists_previousdiagonaltermleftinside + S (pfc_index_division_exists_previousdiagonal) = (N)) /\ ((((exists ff_h_pfp_division_exists_previousdiagonaltermleftentry. ff_h_pfp_division_exists_previousdiagonaltermleftentry + S (pfc_left_division_exists_previousdiagonalterm) = S ((S (pfc_index_division_exists_previousdiagonal)) * x1)) /\ exists ff_q_pfp_division_exists_previousdiagonaltermleftentry. x = ff_q_pfp_division_exists_previousdiagonaltermleftentry * S ((S (pfc_index_division_exists_previousdiagonal)) * x1) + (pfc_left_division_exists_previousdiagonalterm)))))) \/ (((exists pfc_gap_division_exists_previousdiagonaltermleftoutside. pfc_gap_division_exists_previousdiagonaltermleftoutside+(N)=(pfc_index_division_exists_previousdiagonal)) /\ (((pfc_left_division_exists_previousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_exists_previousdiagonaltermrightinside. pfa_gap_division_exists_previousdiagonaltermrightinside + S (pfc_complement_division_exists_previousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_exists_previousdiagonaltermrightentry. ff_h_pfp_division_exists_previousdiagonaltermrightentry + S (pfc_right_division_exists_previousdiagonalterm) = S ((S (pfc_complement_division_exists_previousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_exists_previousdiagonaltermrightentry. bb = ff_q_pfp_division_exists_previousdiagonaltermrightentry * S ((S (pfc_complement_division_exists_previousdiagonalterm)) * bc) + (pfc_right_division_exists_previousdiagonalterm)))))) \/ (((exists pfc_gap_division_exists_previousdiagonaltermrightoutside. pfc_gap_division_exists_previousdiagonaltermrightoutside+(M)=(pfc_complement_division_exists_previousdiagonalterm)) /\ (((pfc_right_division_exists_previousdiagonalterm)=0))))) /\ (((pfc_value_division_exists_previousdiagonal)=pfc_left_division_exists_previousdiagonalterm*pfc_right_division_exists_previousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_exists_previoussum fs_v_pfc_division_exists_previoussum. ((((exists fs_h_pfc_division_exists_previoussum_body_start. fs_h_pfc_division_exists_previoussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_exists_previoussum)) /\ exists fs_q_pfc_division_exists_previoussum_body_start. fs_u_pfc_division_exists_previoussum = fs_q_pfc_division_exists_previoussum_body_start * S ((S (0)) * fs_v_pfc_division_exists_previoussum) + (0))) /\ ((((exists fs_h_pfc_division_exists_previoussum_body_terminal. fs_h_pfc_division_exists_previoussum_body_terminal + S (pfc_natural_sum_division_exists_previous) = S ((S (S (N))) * fs_v_pfc_division_exists_previoussum)) /\ exists fs_q_pfc_division_exists_previoussum_body_terminal. fs_u_pfc_division_exists_previoussum = fs_q_pfc_division_exists_previoussum_body_terminal * S ((S (S (N))) * fs_v_pfc_division_exists_previoussum) + (pfc_natural_sum_division_exists_previous))) /\ forall fs_i_pfc_division_exists_previoussum_body_steps. (exists fs_lt_pfc_division_exists_previoussum_body_steps_bound. fs_lt_pfc_division_exists_previoussum_body_steps_bound + S fs_i_pfc_division_exists_previoussum_body_steps = S (N)) -> exists fs_a_pfc_division_exists_previoussum_body_steps fs_r_pfc_division_exists_previoussum_body_steps fs_s_pfc_division_exists_previoussum_body_steps. ((((exists fs_h_pfc_division_exists_previoussum_body_steps_summand. fs_h_pfc_division_exists_previoussum_body_steps_summand + S (fs_a_pfc_division_exists_previoussum_body_steps) = S ((S (fs_i_pfc_division_exists_previoussum_body_steps)) * pfc_terms_scale_division_exists_previous)) /\ exists fs_q_pfc_division_exists_previoussum_body_steps_summand. pfc_terms_code_division_exists_previous = fs_q_pfc_division_exists_previoussum_body_steps_summand * S ((S (fs_i_pfc_division_exists_previoussum_body_steps)) * pfc_terms_scale_division_exists_previous) + (fs_a_pfc_division_exists_previoussum_body_steps))) /\ ((((exists fs_h_pfc_division_exists_previoussum_body_steps_partial. fs_h_pfc_division_exists_previoussum_body_steps_partial + S (fs_r_pfc_division_exists_previoussum_body_steps) = S ((S (fs_i_pfc_division_exists_previoussum_body_steps)) * fs_v_pfc_division_exists_previoussum)) /\ exists fs_q_pfc_division_exists_previoussum_body_steps_partial. fs_u_pfc_division_exists_previoussum = fs_q_pfc_division_exists_previoussum_body_steps_partial * S ((S (fs_i_pfc_division_exists_previoussum_body_steps)) * fs_v_pfc_division_exists_previoussum) + (fs_r_pfc_division_exists_previoussum_body_steps))) /\ ((((exists fs_h_pfc_division_exists_previoussum_body_steps_successor. fs_h_pfc_division_exists_previoussum_body_steps_successor + S (fs_s_pfc_division_exists_previoussum_body_steps) = S ((S (S fs_i_pfc_division_exists_previoussum_body_steps)) * fs_v_pfc_division_exists_previoussum)) /\ exists fs_q_pfc_division_exists_previoussum_body_steps_successor. fs_u_pfc_division_exists_previoussum = fs_q_pfc_division_exists_previoussum_body_steps_successor * S ((S (S fs_i_pfc_division_exists_previoussum_body_steps)) * fs_v_pfc_division_exists_previoussum) + (fs_s_pfc_division_exists_previoussum_body_steps))) /\ fs_s_pfc_division_exists_previoussum_body_steps = fs_r_pfc_division_exists_previoussum_body_steps + fs_a_pfc_division_exists_previoussum_body_steps)))))) /\ ((((exists pfa_gap_division_exists_previousresiduebound. pfa_gap_division_exists_previousresiduebound + S (c) = (p)) /\ ((exists pfa_offset_left_division_exists_previousresiduecongruence pfa_offset_right_division_exists_previousresiduecongruence. (pfc_natural_sum_division_exists_previous) + (p) * pfa_offset_left_division_exists_previousresiduecongruence = (c) + (p) * pfa_offset_right_division_exists_previousresiduecongruence)))))))))
  46. specialize prime_field_convolution_coefficient_exists (p)
  47. specialize prime_field_convolution_coefficient_exists (x)
  48. specialize prime_field_convolution_coefficient_exists (x1)
  49. specialize prime_field_convolution_coefficient_exists (N)
  50. specialize prime_field_convolution_coefficient_exists (bb)
  51. specialize prime_field_convolution_coefficient_exists (bc)
  52. specialize prime_field_convolution_coefficient_exists (M)
  53. specialize prime_field_convolution_coefficient_exists (N)
  54. apply prime_field_convolution_coefficient_exists
  55. intro hz
  56. specialize prime_nonzero (p)
  57. apply prime_nonzero
  58. exact hp
  59. exact hz
  60. cases hc
  61. have hs : exists s. (((exists pfa_gap_division_exists_differenceleft. pfa_gap_division_exists_differenceleft + S (x3) = (p)) /\ (((exists pfa_gap_division_exists_differenceright. pfa_gap_division_exists_differenceright + S (s) = (p)) /\ ((((exists pfa_gap_division_exists_differenceresultbound. pfa_gap_division_exists_differenceresultbound + S (x2) = (p)) /\ ((exists pfa_offset_left_division_exists_differenceresultcongruence pfa_offset_right_division_exists_differenceresultcongruence. ((x3) + (s)) + (p) * pfa_offset_left_division_exists_differenceresultcongruence = (x2) + (p) * pfa_offset_right_division_exists_differenceresultcongruence)))))))))
  62. specialize prime_field_subtract_exists (p)
  63. specialize prime_field_subtract_exists (x2)
  64. specialize prime_field_subtract_exists (x3)
  65. apply prime_field_subtract_exists
  66. exact hp
  67. exact hinput_witness_right
  68. specialize prime_field_convolution_coefficient_bounded (p)
  69. specialize prime_field_convolution_coefficient_bounded (x)
  70. specialize prime_field_convolution_coefficient_bounded (x1)
  71. specialize prime_field_convolution_coefficient_bounded (N)
  72. specialize prime_field_convolution_coefficient_bounded (bb)
  73. specialize prime_field_convolution_coefficient_bounded (bc)
  74. specialize prime_field_convolution_coefficient_bounded (M)
  75. specialize prime_field_convolution_coefficient_bounded (N)
  76. specialize prime_field_convolution_coefficient_bounded (x3)
  77. apply prime_field_convolution_coefficient_bounded
  78. exact hc_witness
  79. cases hs
  80. have hq : exists q. (((exists pfa_gap_division_exists_quotientleft. pfa_gap_division_exists_quotientleft + S (k) = (p)) /\ (((exists pfa_gap_division_exists_quotientright. pfa_gap_division_exists_quotientright + S (x4) = (p)) /\ ((((exists pfa_gap_division_exists_quotientresultbound. pfa_gap_division_exists_quotientresultbound + S (q) = (p)) /\ ((exists pfa_offset_left_division_exists_quotientresultcongruence pfa_offset_right_division_exists_quotientresultcongruence. ((k) * (x4)) + (p) * pfa_offset_left_division_exists_quotientresultcongruence = (q) + (p) * pfa_offset_right_division_exists_quotientresultcongruence)))))))))
  81. specialize prime_field_multiply_exists (p)
  82. specialize prime_field_multiply_exists (k)
  83. specialize prime_field_multiply_exists (x4)
  84. apply prime_field_multiply_exists
  85. exact hp
  86. exact hk
  87. cases hs_witness
  88. cases hs_witness_right
  89. exact hs_witness_right_left
  90. cases hq
  91. have hnew : exists QB QC. ((((exists ff_h_pfp_division_exists_new_entry. ff_h_pfp_division_exists_new_entry + S (x5) = S ((S (N)) * QC)) /\ exists ff_q_pfp_division_exists_new_entry. QB = ff_q_pfp_division_exists_new_entry * S ((S (N)) * QC) + (x5))) /\ ((forall mdr_i_pfp_division_exists_preservation mdr_a_pfp_division_exists_preservation. (exists mdr_gap_pfp_division_exists_preservationb. mdr_gap_pfp_division_exists_preservationb + S (mdr_i_pfp_division_exists_preservation) = (N)) -> (((exists ff_h_mdr_pfp_division_exists_preservationo. ff_h_mdr_pfp_division_exists_preservationo + S (mdr_a_pfp_division_exists_preservation) = S ((S (mdr_i_pfp_division_exists_preservation)) * x1)) /\ exists ff_q_mdr_pfp_division_exists_preservationo. x = ff_q_mdr_pfp_division_exists_preservationo * S ((S (mdr_i_pfp_division_exists_preservation)) * x1) + (mdr_a_pfp_division_exists_preservation))) -> (((exists ff_h_mdr_pfp_division_exists_preservationn. ff_h_mdr_pfp_division_exists_preservationn + S (mdr_a_pfp_division_exists_preservation) = S ((S (mdr_i_pfp_division_exists_preservation)) * QC)) /\ exists ff_q_mdr_pfp_division_exists_preservationn. QB = ff_q_mdr_pfp_division_exists_preservationn * S ((S (mdr_i_pfp_division_exists_preservation)) * QC) + (mdr_a_pfp_division_exists_preservation))))))
  92. specialize beta_prefix_extend (N)
  93. specialize beta_prefix_extend (x)
  94. specialize beta_prefix_extend (x1)
  95. specialize beta_prefix_extend (x5)
  96. apply beta_prefix_extend
  97. cases hnew
  98. cases hnew_witness
  99. cases hnew_witness_witness
  100. exists x6
  101. exists x7
  102. specialize prime_field_polynomial_quotient_prefix_append (p)
  103. specialize prime_field_polynomial_quotient_prefix_append (k)
  104. specialize prime_field_polynomial_quotient_prefix_append (ab)
  105. specialize prime_field_polynomial_quotient_prefix_append (ac)
  106. specialize prime_field_polynomial_quotient_prefix_append (bb)
  107. specialize prime_field_polynomial_quotient_prefix_append (bc)
  108. specialize prime_field_polynomial_quotient_prefix_append (M)
  109. specialize prime_field_polynomial_quotient_prefix_append (x)
  110. specialize prime_field_polynomial_quotient_prefix_append (x1)
  111. specialize prime_field_polynomial_quotient_prefix_append (x6)
  112. specialize prime_field_polynomial_quotient_prefix_append (x7)
  113. specialize prime_field_polynomial_quotient_prefix_append (N)
  114. specialize prime_field_polynomial_quotient_prefix_append (x5)
  115. apply prime_field_polynomial_quotient_prefix_append
  116. exact hold_witness_witness
  117. exact hnew_witness_witness_right
  118. exact hnew_witness_witness_left
  119. exists x2
  120. exists x3
  121. exists x4
  122. split
  123. exact hinput_witness_left
  124. split
  125. exact hc_witness
  126. split
  127. exact hs_witness
  128. exact hq_witness
prime_field_polynomial_division_quotient_data_exists · unchanged support, not a new admission
forall p ab ac L bb bc d. (~((p) = 1) /\ forall pfa_factor_left_division_quotient_data_prime pfa_factor_right_division_quotient_data_prime. (p) = pfa_factor_left_division_quotient_data_prime * pfa_factor_right_division_quotient_data_prime -> pfa_factor_left_division_quotient_data_prime = 1 \/ pfa_factor_right_division_quotient_data_prime = 1) -> (forall fom_index_pfp_division_quotient_data_input. (exists fom_gap_pfp_division_quotient_data_input_index_bound. fom_gap_pfp_division_quotient_data_input_index_bound + S (fom_index_pfp_division_quotient_data_input) = L) -> exists fom_value_pfp_division_quotient_data_input. ((((exists fom_beta_height_pfp_division_quotient_data_input_entry. fom_beta_height_pfp_division_quotient_data_input_entry + S (fom_value_pfp_division_quotient_data_input) = S ((S (fom_index_pfp_division_quotient_data_input)) * ac)) /\ exists fom_beta_quotient_pfp_division_quotient_data_input_entry. ab = fom_beta_quotient_pfp_division_quotient_data_input_entry * S ((S (fom_index_pfp_division_quotient_data_input)) * ac) + (fom_value_pfp_division_quotient_data_input))) /\ (exists fom_gap_pfp_division_quotient_data_input_value_bound. fom_gap_pfp_division_quotient_data_input_value_bound + S (fom_value_pfp_division_quotient_data_input) = p))) -> ((((S d)=S (d)) /\ (((forall fom_index_pfp_division_quotient_data_divisorcoefficients. (exists fom_gap_pfp_division_quotient_data_divisorcoefficients_index_bound. fom_gap_pfp_division_quotient_data_divisorcoefficients_index_bound + S (fom_index_pfp_division_quotient_data_divisorcoefficients) = S d) -> exists fom_value_pfp_division_quotient_data_divisorcoefficients. ((((exists fom_beta_height_pfp_division_quotient_data_divisorcoefficients_entry. fom_beta_height_pfp_division_quotient_data_divisorcoefficients_entry + S (fom_value_pfp_division_quotient_data_divisorcoefficients) = S ((S (fom_index_pfp_division_quotient_data_divisorcoefficients)) * bc)) /\ exists fom_beta_quotient_pfp_division_quotient_data_divisorcoefficients_entry. bb = fom_beta_quotient_pfp_division_quotient_data_divisorcoefficients_entry * S ((S (fom_index_pfp_division_quotient_data_divisorcoefficients)) * bc) + (fom_value_pfp_division_quotient_data_divisorcoefficients))) /\ (exists fom_gap_pfp_division_quotient_data_divisorcoefficients_value_bound. fom_gap_pfp_division_quotient_data_divisorcoefficients_value_bound + S (fom_value_pfp_division_quotient_data_divisorcoefficients) = p))) /\ ((exists pfd_leading_division_quotient_data_divisor. ((((exists ff_h_pfp_division_quotient_data_divisorentry. ff_h_pfp_division_quotient_data_divisorentry + S (pfd_leading_division_quotient_data_divisor) = S ((S (0)) * bc)) /\ exists ff_q_pfp_division_quotient_data_divisorentry. bb = ff_q_pfp_division_quotient_data_divisorentry * S ((S (0)) * bc) + (pfd_leading_division_quotient_data_divisor))) /\ ((~(pfd_leading_division_quotient_data_divisor=0)))))))))) -> exists b k q qb qc. (((((exists ff_h_pfp_division_quotient_data_resulthead. ff_h_pfp_division_quotient_data_resulthead + S (b) = S ((S (0)) * bc)) /\ exists ff_q_pfp_division_quotient_data_resulthead. bb = ff_q_pfp_division_quotient_data_resulthead * S ((S (0)) * bc) + (b))) /\ (((((~((b) = 0)) /\ ((((exists pfa_gap_division_quotient_data_resultinversemultiplicationleft. pfa_gap_division_quotient_data_resultinversemultiplicationleft + S (b) = (p)) /\ (((exists pfa_gap_division_quotient_data_resultinversemultiplicationright. pfa_gap_division_quotient_data_resultinversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_division_quotient_data_resultinversemultiplicationresultbound. pfa_gap_division_quotient_data_resultinversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_division_quotient_data_resultinversemultiplicationresultcongruence pfa_offset_right_division_quotient_data_resultinversemultiplicationresultcongruence. ((b) * (k)) + (p) * pfa_offset_left_division_quotient_data_resultinversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_division_quotient_data_resultinversemultiplicationresultcongruence)))))))))))) /\ (((((((q)=0) /\ ((exists pfc_gap_division_quotient_data_resultlengthshort. pfc_gap_division_quotient_data_resultlengthshort+(L)=(d))))) \/ (((~((q)=0)) /\ (((q)+(d)=(L)))))) /\ ((forall pfd_index_division_quotient_data_resultexecution. (exists pfa_gap_division_quotient_data_resultexecutionbound. pfa_gap_division_quotient_data_resultexecutionbound + S (pfd_index_division_quotient_data_resultexecution) = (q)) -> exists pfd_value_division_quotient_data_resultexecution. ((((exists ff_h_pfp_division_quotient_data_resultexecutionentry. ff_h_pfp_division_quotient_data_resultexecutionentry + S (pfd_value_division_quotient_data_resultexecution) = S ((S (pfd_index_division_quotient_data_resultexecution)) * qc)) /\ exists ff_q_pfp_division_quotient_data_resultexecutionentry. qb = ff_q_pfp_division_quotient_data_resultexecutionentry * S ((S (pfd_index_division_quotient_data_resultexecution)) * qc) + (pfd_value_division_quotient_data_resultexecution))) /\ ((exists pfd_input_division_quotient_data_resultexecutionstep pfd_previous_division_quotient_data_resultexecutionstep pfd_difference_division_quotient_data_resultexecutionstep. ((((exists ff_h_pfp_division_quotient_data_resultexecutionstepinput. ff_h_pfp_division_quotient_data_resultexecutionstepinput + S (pfd_input_division_quotient_data_resultexecutionstep) = S ((S (pfd_index_division_quotient_data_resultexecution)) * ac)) /\ exists ff_q_pfp_division_quotient_data_resultexecutionstepinput. ab = ff_q_pfp_division_quotient_data_resultexecutionstepinput * S ((S (pfd_index_division_quotient_data_resultexecution)) * ac) + (pfd_input_division_quotient_data_resultexecutionstep))) /\ (((exists pfc_terms_code_division_quotient_data_resultexecutionstepprevious pfc_terms_scale_division_quotient_data_resultexecutionstepprevious pfc_natural_sum_division_quotient_data_resultexecutionstepprevious. ((forall pfc_index_division_quotient_data_resultexecutionsteppreviousdiagonal. (exists pfa_gap_division_quotient_data_resultexecutionsteppreviousdiagonalbound. pfa_gap_division_quotient_data_resultexecutionsteppreviousdiagonalbound + S (pfc_index_division_quotient_data_resultexecutionsteppreviousdiagonal) = (S (pfd_index_division_quotient_data_resultexecution))) -> exists pfc_value_division_quotient_data_resultexecutionsteppreviousdiagonal. ((((exists ff_h_pfp_division_quotient_data_resultexecutionsteppreviousdiagonalentry. ff_h_pfp_division_quotient_data_resultexecutionsteppreviousdiagonalentry + S (pfc_value_division_quotient_data_resultexecutionsteppreviousdiagonal) = S ((S (pfc_index_division_quotient_data_resultexecutionsteppreviousdiagonal)) * pfc_terms_scale_division_quotient_data_resultexecutionstepprevious)) /\ exists ff_q_pfp_division_quotient_data_resultexecutionsteppreviousdiagonalentry. pfc_terms_code_division_quotient_data_resultexecutionstepprevious = ff_q_pfp_division_quotient_data_resultexecutionsteppreviousdiagonalentry * S ((S (pfc_index_division_quotient_data_resultexecutionsteppreviousdiagonal)) * pfc_terms_scale_division_quotient_data_resultexecutionstepprevious) + (pfc_value_division_quotient_data_resultexecutionsteppreviousdiagonal))) /\ ((exists pfc_complement_division_quotient_data_resultexecutionsteppreviousdiagonalterm pfc_left_division_quotient_data_resultexecutionsteppreviousdiagonalterm pfc_right_division_quotient_data_resultexecutionsteppreviousdiagonalterm. (((pfc_index_division_quotient_data_resultexecutionsteppreviousdiagonal)+pfc_complement_division_quotient_data_resultexecutionsteppreviousdiagonalterm=(pfd_index_division_quotient_data_resultexecution)) /\ ((((((exists pfa_gap_division_quotient_data_resultexecutionsteppreviousdiagonaltermleftinside. pfa_gap_division_quotient_data_resultexecutionsteppreviousdiagonaltermleftinside + S (pfc_index_division_quotient_data_resultexecutionsteppreviousdiagonal) = (pfd_index_division_quotient_data_resultexecution)) /\ ((((exists ff_h_pfp_division_quotient_data_resultexecutionsteppreviousdiagonaltermleftentry. ff_h_pfp_division_quotient_data_resultexecutionsteppreviousdiagonaltermleftentry + S (pfc_left_division_quotient_data_resultexecutionsteppreviousdiagonalterm) = S ((S (pfc_index_division_quotient_data_resultexecutionsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_quotient_data_resultexecutionsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_quotient_data_resultexecutionsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_quotient_data_resultexecutionsteppreviousdiagonal)) * qc) + (pfc_left_division_quotient_data_resultexecutionsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_quotient_data_resultexecutionsteppreviousdiagonaltermleftoutside. pfc_gap_division_quotient_data_resultexecutionsteppreviousdiagonaltermleftoutside+(pfd_index_division_quotient_data_resultexecution)=(pfc_index_division_quotient_data_resultexecutionsteppreviousdiagonal)) /\ (((pfc_left_division_quotient_data_resultexecutionsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_quotient_data_resultexecutionsteppreviousdiagonaltermrightinside. pfa_gap_division_quotient_data_resultexecutionsteppreviousdiagonaltermrightinside + S (pfc_complement_division_quotient_data_resultexecutionsteppreviousdiagonalterm) = (S (d))) /\ ((((exists ff_h_pfp_division_quotient_data_resultexecutionsteppreviousdiagonaltermrightentry. ff_h_pfp_division_quotient_data_resultexecutionsteppreviousdiagonaltermrightentry + S (pfc_right_division_quotient_data_resultexecutionsteppreviousdiagonalterm) = S ((S (pfc_complement_division_quotient_data_resultexecutionsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_quotient_data_resultexecutionsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_quotient_data_resultexecutionsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_quotient_data_resultexecutionsteppreviousdiagonalterm)) * bc) + (pfc_right_division_quotient_data_resultexecutionsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_quotient_data_resultexecutionsteppreviousdiagonaltermrightoutside. pfc_gap_division_quotient_data_resultexecutionsteppreviousdiagonaltermrightoutside+(S (d))=(pfc_complement_division_quotient_data_resultexecutionsteppreviousdiagonalterm)) /\ (((pfc_right_division_quotient_data_resultexecutionsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_quotient_data_resultexecutionsteppreviousdiagonal)=pfc_left_division_quotient_data_resultexecutionsteppreviousdiagonalterm*pfc_right_division_quotient_data_resultexecutionsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_quotient_data_resultexecutionstepprevioussum fs_v_pfc_division_quotient_data_resultexecutionstepprevioussum. ((((exists fs_h_pfc_division_quotient_data_resultexecutionstepprevioussum_body_start. fs_h_pfc_division_quotient_data_resultexecutionstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_quotient_data_resultexecutionstepprevioussum)) /\ exists fs_q_pfc_division_quotient_data_resultexecutionstepprevioussum_body_start. fs_u_pfc_division_quotient_data_resultexecutionstepprevioussum = fs_q_pfc_division_quotient_data_resultexecutionstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_quotient_data_resultexecutionstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_quotient_data_resultexecutionstepprevioussum_body_terminal. fs_h_pfc_division_quotient_data_resultexecutionstepprevioussum_body_terminal + S (pfc_natural_sum_division_quotient_data_resultexecutionstepprevious) = S ((S (S (pfd_index_division_quotient_data_resultexecution))) * fs_v_pfc_division_quotient_data_resultexecutionstepprevioussum)) /\ exists fs_q_pfc_division_quotient_data_resultexecutionstepprevioussum_body_terminal. fs_u_pfc_division_quotient_data_resultexecutionstepprevioussum = fs_q_pfc_division_quotient_data_resultexecutionstepprevioussum_body_terminal * S ((S (S (pfd_index_division_quotient_data_resultexecution))) * fs_v_pfc_division_quotient_data_resultexecutionstepprevioussum) + (pfc_natural_sum_division_quotient_data_resultexecutionstepprevious))) /\ forall fs_i_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps. (exists fs_lt_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps_bound. fs_lt_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps_bound + S fs_i_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps = S (pfd_index_division_quotient_data_resultexecution)) -> exists fs_a_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps fs_r_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps fs_s_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps. ((((exists fs_h_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps_summand. fs_h_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps_summand + S (fs_a_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps)) * pfc_terms_scale_division_quotient_data_resultexecutionstepprevious)) /\ exists fs_q_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps_summand. pfc_terms_code_division_quotient_data_resultexecutionstepprevious = fs_q_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps)) * pfc_terms_scale_division_quotient_data_resultexecutionstepprevious) + (fs_a_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps_partial. fs_h_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps_partial + S (fs_r_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps)) * fs_v_pfc_division_quotient_data_resultexecutionstepprevioussum)) /\ exists fs_q_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps_partial. fs_u_pfc_division_quotient_data_resultexecutionstepprevioussum = fs_q_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps)) * fs_v_pfc_division_quotient_data_resultexecutionstepprevioussum) + (fs_r_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps_successor. fs_h_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps_successor + S (fs_s_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps)) * fs_v_pfc_division_quotient_data_resultexecutionstepprevioussum)) /\ exists fs_q_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps_successor. fs_u_pfc_division_quotient_data_resultexecutionstepprevioussum = fs_q_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps)) * fs_v_pfc_division_quotient_data_resultexecutionstepprevioussum) + (fs_s_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps))) /\ fs_s_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps = fs_r_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps + fs_a_pfc_division_quotient_data_resultexecutionstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_quotient_data_resultexecutionsteppreviousresiduebound. pfa_gap_division_quotient_data_resultexecutionsteppreviousresiduebound + S (pfd_previous_division_quotient_data_resultexecutionstep) = (p)) /\ ((exists pfa_offset_left_division_quotient_data_resultexecutionsteppreviousresiduecongruence pfa_offset_right_division_quotient_data_resultexecutionsteppreviousresiduecongruence. (pfc_natural_sum_division_quotient_data_resultexecutionstepprevious) + (p) * pfa_offset_left_division_quotient_data_resultexecutionsteppreviousresiduecongruence = (pfd_previous_division_quotient_data_resultexecutionstep) + (p) * pfa_offset_right_division_quotient_data_resultexecutionsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_quotient_data_resultexecutionstepsubtractleft. pfa_gap_division_quotient_data_resultexecutionstepsubtractleft + S (pfd_previous_division_quotient_data_resultexecutionstep) = (p)) /\ (((exists pfa_gap_division_quotient_data_resultexecutionstepsubtractright. pfa_gap_division_quotient_data_resultexecutionstepsubtractright + S (pfd_difference_division_quotient_data_resultexecutionstep) = (p)) /\ ((((exists pfa_gap_division_quotient_data_resultexecutionstepsubtractresultbound. pfa_gap_division_quotient_data_resultexecutionstepsubtractresultbound + S (pfd_input_division_quotient_data_resultexecutionstep) = (p)) /\ ((exists pfa_offset_left_division_quotient_data_resultexecutionstepsubtractresultcongruence pfa_offset_right_division_quotient_data_resultexecutionstepsubtractresultcongruence. ((pfd_previous_division_quotient_data_resultexecutionstep) + (pfd_difference_division_quotient_data_resultexecutionstep)) + (p) * pfa_offset_left_division_quotient_data_resultexecutionstepsubtractresultcongruence = (pfd_input_division_quotient_data_resultexecutionstep) + (p) * pfa_offset_right_division_quotient_data_resultexecutionstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_quotient_data_resultexecutionstepmultiplyleft. pfa_gap_division_quotient_data_resultexecutionstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_quotient_data_resultexecutionstepmultiplyright. pfa_gap_division_quotient_data_resultexecutionstepmultiplyright + S (pfd_difference_division_quotient_data_resultexecutionstep) = (p)) /\ ((((exists pfa_gap_division_quotient_data_resultexecutionstepmultiplyresultbound. pfa_gap_division_quotient_data_resultexecutionstepmultiplyresultbound + S (pfd_value_division_quotient_data_resultexecution) = (p)) /\ ((exists pfa_offset_left_division_quotient_data_resultexecutionstepmultiplyresultcongruence pfa_offset_right_division_quotient_data_resultexecutionstepmultiplyresultcongruence. ((k) * (pfd_difference_division_quotient_data_resultexecutionstep)) + (p) * pfa_offset_left_division_quotient_data_resultexecutionstepmultiplyresultcongruence = (pfd_value_division_quotient_data_resultexecution) + (p) * pfa_offset_right_division_quotient_data_resultexecutionstepmultiplyresultcongruence))))))))))))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro d
  8. intro hp
  9. intro ha
  10. intro hb
  11. cases hb
  12. cases hb_right
  13. cases hb_right_right
  14. cases hb_right_right_witness
  15. have hi : exists k. (((~((x) = 0)) /\ ((((exists pfa_gap_division_total_inversemultiplicationleft. pfa_gap_division_total_inversemultiplicationleft + S (x) = (p)) /\ (((exists pfa_gap_division_total_inversemultiplicationright. pfa_gap_division_total_inversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_division_total_inversemultiplicationresultbound. pfa_gap_division_total_inversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_division_total_inversemultiplicationresultcongruence pfa_offset_right_division_total_inversemultiplicationresultcongruence. ((x) * (k)) + (p) * pfa_offset_left_division_total_inversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_division_total_inversemultiplicationresultcongruence))))))))))))
  16. specialize prime_field_inverse_exists (p)
  17. specialize prime_field_inverse_exists (x)
  18. apply prime_field_inverse_exists
  19. exact hp
  20. specialize matrix_rank_bounded_prefix_value (bb)
  21. specialize matrix_rank_bounded_prefix_value (bc)
  22. specialize matrix_rank_bounded_prefix_value (S d)
  23. specialize matrix_rank_bounded_prefix_value (p)
  24. specialize matrix_rank_bounded_prefix_value (0)
  25. specialize matrix_rank_bounded_prefix_value (x)
  26. apply matrix_rank_bounded_prefix_value
  27. exact hb_right_left
  28. exists d
  29. simp
  30. exact hb_right_right_witness_left
  31. exact hb_right_right_witness_right
  32. cases hi
  33. have hk : exists pfa_gap_division_total_scalar_bound. pfa_gap_division_total_scalar_bound + S (x1) = (p)
  34. cases hi_witness
  35. cases hi_witness_right
  36. cases hi_witness_right_right
  37. exact hi_witness_right_right_left
  38. have hlength : exists q. (((((q)=0) /\ ((exists pfc_gap_division_total_lengthshort. pfc_gap_division_total_lengthshort+(L)=(d))))) \/ (((~((q)=0)) /\ (((q)+(d)=(L))))))
  39. specialize polynomial_quotient_length_exists (L)
  40. specialize polynomial_quotient_length_exists (d)
  41. apply polynomial_quotient_length_exists
  42. cases hlength
  43. have hbounds : ((exists pfc_gap_division_total_q_bound. pfc_gap_division_total_q_bound+(x2)=(L)) /\ ((exists pfc_gap_division_total_cover. pfc_gap_division_total_cover+(L)=(x2+d))))
  44. specialize polynomial_quotient_length_bounds (L)
  45. specialize polynomial_quotient_length_bounds (d)
  46. specialize polynomial_quotient_length_bounds (x2)
  47. apply polynomial_quotient_length_bounds
  48. exact hlength_witness
  49. cases hbounds
  50. have hquotient : exists qb qc. (forall pfd_index_division_total_quotient. (exists pfa_gap_division_total_quotientbound. pfa_gap_division_total_quotientbound + S (pfd_index_division_total_quotient) = (x2)) -> exists pfd_value_division_total_quotient. ((((exists ff_h_pfp_division_total_quotiententry. ff_h_pfp_division_total_quotiententry + S (pfd_value_division_total_quotient) = S ((S (pfd_index_division_total_quotient)) * qc)) /\ exists ff_q_pfp_division_total_quotiententry. qb = ff_q_pfp_division_total_quotiententry * S ((S (pfd_index_division_total_quotient)) * qc) + (pfd_value_division_total_quotient))) /\ ((exists pfd_input_division_total_quotientstep pfd_previous_division_total_quotientstep pfd_difference_division_total_quotientstep. ((((exists ff_h_pfp_division_total_quotientstepinput. ff_h_pfp_division_total_quotientstepinput + S (pfd_input_division_total_quotientstep) = S ((S (pfd_index_division_total_quotient)) * ac)) /\ exists ff_q_pfp_division_total_quotientstepinput. ab = ff_q_pfp_division_total_quotientstepinput * S ((S (pfd_index_division_total_quotient)) * ac) + (pfd_input_division_total_quotientstep))) /\ (((exists pfc_terms_code_division_total_quotientstepprevious pfc_terms_scale_division_total_quotientstepprevious pfc_natural_sum_division_total_quotientstepprevious. ((forall pfc_index_division_total_quotientsteppreviousdiagonal. (exists pfa_gap_division_total_quotientsteppreviousdiagonalbound. pfa_gap_division_total_quotientsteppreviousdiagonalbound + S (pfc_index_division_total_quotientsteppreviousdiagonal) = (S (pfd_index_division_total_quotient))) -> exists pfc_value_division_total_quotientsteppreviousdiagonal. ((((exists ff_h_pfp_division_total_quotientsteppreviousdiagonalentry. ff_h_pfp_division_total_quotientsteppreviousdiagonalentry + S (pfc_value_division_total_quotientsteppreviousdiagonal) = S ((S (pfc_index_division_total_quotientsteppreviousdiagonal)) * pfc_terms_scale_division_total_quotientstepprevious)) /\ exists ff_q_pfp_division_total_quotientsteppreviousdiagonalentry. pfc_terms_code_division_total_quotientstepprevious = ff_q_pfp_division_total_quotientsteppreviousdiagonalentry * S ((S (pfc_index_division_total_quotientsteppreviousdiagonal)) * pfc_terms_scale_division_total_quotientstepprevious) + (pfc_value_division_total_quotientsteppreviousdiagonal))) /\ ((exists pfc_complement_division_total_quotientsteppreviousdiagonalterm pfc_left_division_total_quotientsteppreviousdiagonalterm pfc_right_division_total_quotientsteppreviousdiagonalterm. (((pfc_index_division_total_quotientsteppreviousdiagonal)+pfc_complement_division_total_quotientsteppreviousdiagonalterm=(pfd_index_division_total_quotient)) /\ ((((((exists pfa_gap_division_total_quotientsteppreviousdiagonaltermleftinside. pfa_gap_division_total_quotientsteppreviousdiagonaltermleftinside + S (pfc_index_division_total_quotientsteppreviousdiagonal) = (pfd_index_division_total_quotient)) /\ ((((exists ff_h_pfp_division_total_quotientsteppreviousdiagonaltermleftentry. ff_h_pfp_division_total_quotientsteppreviousdiagonaltermleftentry + S (pfc_left_division_total_quotientsteppreviousdiagonalterm) = S ((S (pfc_index_division_total_quotientsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_total_quotientsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_total_quotientsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_total_quotientsteppreviousdiagonal)) * qc) + (pfc_left_division_total_quotientsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_total_quotientsteppreviousdiagonaltermleftoutside. pfc_gap_division_total_quotientsteppreviousdiagonaltermleftoutside+(pfd_index_division_total_quotient)=(pfc_index_division_total_quotientsteppreviousdiagonal)) /\ (((pfc_left_division_total_quotientsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_total_quotientsteppreviousdiagonaltermrightinside. pfa_gap_division_total_quotientsteppreviousdiagonaltermrightinside + S (pfc_complement_division_total_quotientsteppreviousdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_total_quotientsteppreviousdiagonaltermrightentry. ff_h_pfp_division_total_quotientsteppreviousdiagonaltermrightentry + S (pfc_right_division_total_quotientsteppreviousdiagonalterm) = S ((S (pfc_complement_division_total_quotientsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_total_quotientsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_total_quotientsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_total_quotientsteppreviousdiagonalterm)) * bc) + (pfc_right_division_total_quotientsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_total_quotientsteppreviousdiagonaltermrightoutside. pfc_gap_division_total_quotientsteppreviousdiagonaltermrightoutside+(S d)=(pfc_complement_division_total_quotientsteppreviousdiagonalterm)) /\ (((pfc_right_division_total_quotientsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_total_quotientsteppreviousdiagonal)=pfc_left_division_total_quotientsteppreviousdiagonalterm*pfc_right_division_total_quotientsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_total_quotientstepprevioussum fs_v_pfc_division_total_quotientstepprevioussum. ((((exists fs_h_pfc_division_total_quotientstepprevioussum_body_start. fs_h_pfc_division_total_quotientstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_total_quotientstepprevioussum)) /\ exists fs_q_pfc_division_total_quotientstepprevioussum_body_start. fs_u_pfc_division_total_quotientstepprevioussum = fs_q_pfc_division_total_quotientstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_total_quotientstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_total_quotientstepprevioussum_body_terminal. fs_h_pfc_division_total_quotientstepprevioussum_body_terminal + S (pfc_natural_sum_division_total_quotientstepprevious) = S ((S (S (pfd_index_division_total_quotient))) * fs_v_pfc_division_total_quotientstepprevioussum)) /\ exists fs_q_pfc_division_total_quotientstepprevioussum_body_terminal. fs_u_pfc_division_total_quotientstepprevioussum = fs_q_pfc_division_total_quotientstepprevioussum_body_terminal * S ((S (S (pfd_index_division_total_quotient))) * fs_v_pfc_division_total_quotientstepprevioussum) + (pfc_natural_sum_division_total_quotientstepprevious))) /\ forall fs_i_pfc_division_total_quotientstepprevioussum_body_steps. (exists fs_lt_pfc_division_total_quotientstepprevioussum_body_steps_bound. fs_lt_pfc_division_total_quotientstepprevioussum_body_steps_bound + S fs_i_pfc_division_total_quotientstepprevioussum_body_steps = S (pfd_index_division_total_quotient)) -> exists fs_a_pfc_division_total_quotientstepprevioussum_body_steps fs_r_pfc_division_total_quotientstepprevioussum_body_steps fs_s_pfc_division_total_quotientstepprevioussum_body_steps. ((((exists fs_h_pfc_division_total_quotientstepprevioussum_body_steps_summand. fs_h_pfc_division_total_quotientstepprevioussum_body_steps_summand + S (fs_a_pfc_division_total_quotientstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_total_quotientstepprevioussum_body_steps)) * pfc_terms_scale_division_total_quotientstepprevious)) /\ exists fs_q_pfc_division_total_quotientstepprevioussum_body_steps_summand. pfc_terms_code_division_total_quotientstepprevious = fs_q_pfc_division_total_quotientstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_total_quotientstepprevioussum_body_steps)) * pfc_terms_scale_division_total_quotientstepprevious) + (fs_a_pfc_division_total_quotientstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_total_quotientstepprevioussum_body_steps_partial. fs_h_pfc_division_total_quotientstepprevioussum_body_steps_partial + S (fs_r_pfc_division_total_quotientstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_total_quotientstepprevioussum_body_steps)) * fs_v_pfc_division_total_quotientstepprevioussum)) /\ exists fs_q_pfc_division_total_quotientstepprevioussum_body_steps_partial. fs_u_pfc_division_total_quotientstepprevioussum = fs_q_pfc_division_total_quotientstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_total_quotientstepprevioussum_body_steps)) * fs_v_pfc_division_total_quotientstepprevioussum) + (fs_r_pfc_division_total_quotientstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_total_quotientstepprevioussum_body_steps_successor. fs_h_pfc_division_total_quotientstepprevioussum_body_steps_successor + S (fs_s_pfc_division_total_quotientstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_total_quotientstepprevioussum_body_steps)) * fs_v_pfc_division_total_quotientstepprevioussum)) /\ exists fs_q_pfc_division_total_quotientstepprevioussum_body_steps_successor. fs_u_pfc_division_total_quotientstepprevioussum = fs_q_pfc_division_total_quotientstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_total_quotientstepprevioussum_body_steps)) * fs_v_pfc_division_total_quotientstepprevioussum) + (fs_s_pfc_division_total_quotientstepprevioussum_body_steps))) /\ fs_s_pfc_division_total_quotientstepprevioussum_body_steps = fs_r_pfc_division_total_quotientstepprevioussum_body_steps + fs_a_pfc_division_total_quotientstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_total_quotientsteppreviousresiduebound. pfa_gap_division_total_quotientsteppreviousresiduebound + S (pfd_previous_division_total_quotientstep) = (p)) /\ ((exists pfa_offset_left_division_total_quotientsteppreviousresiduecongruence pfa_offset_right_division_total_quotientsteppreviousresiduecongruence. (pfc_natural_sum_division_total_quotientstepprevious) + (p) * pfa_offset_left_division_total_quotientsteppreviousresiduecongruence = (pfd_previous_division_total_quotientstep) + (p) * pfa_offset_right_division_total_quotientsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_total_quotientstepsubtractleft. pfa_gap_division_total_quotientstepsubtractleft + S (pfd_previous_division_total_quotientstep) = (p)) /\ (((exists pfa_gap_division_total_quotientstepsubtractright. pfa_gap_division_total_quotientstepsubtractright + S (pfd_difference_division_total_quotientstep) = (p)) /\ ((((exists pfa_gap_division_total_quotientstepsubtractresultbound. pfa_gap_division_total_quotientstepsubtractresultbound + S (pfd_input_division_total_quotientstep) = (p)) /\ ((exists pfa_offset_left_division_total_quotientstepsubtractresultcongruence pfa_offset_right_division_total_quotientstepsubtractresultcongruence. ((pfd_previous_division_total_quotientstep) + (pfd_difference_division_total_quotientstep)) + (p) * pfa_offset_left_division_total_quotientstepsubtractresultcongruence = (pfd_input_division_total_quotientstep) + (p) * pfa_offset_right_division_total_quotientstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_total_quotientstepmultiplyleft. pfa_gap_division_total_quotientstepmultiplyleft + S (x1) = (p)) /\ (((exists pfa_gap_division_total_quotientstepmultiplyright. pfa_gap_division_total_quotientstepmultiplyright + S (pfd_difference_division_total_quotientstep) = (p)) /\ ((((exists pfa_gap_division_total_quotientstepmultiplyresultbound. pfa_gap_division_total_quotientstepmultiplyresultbound + S (pfd_value_division_total_quotient) = (p)) /\ ((exists pfa_offset_left_division_total_quotientstepmultiplyresultcongruence pfa_offset_right_division_total_quotientstepmultiplyresultcongruence. ((x1) * (pfd_difference_division_total_quotientstep)) + (p) * pfa_offset_left_division_total_quotientstepmultiplyresultcongruence = (pfd_value_division_total_quotient) + (p) * pfa_offset_right_division_total_quotientstepmultiplyresultcongruence)))))))))))))))))))
  51. specialize prime_field_polynomial_quotient_prefix_exists (p)
  52. specialize prime_field_polynomial_quotient_prefix_exists (x1)
  53. specialize prime_field_polynomial_quotient_prefix_exists (ab)
  54. specialize prime_field_polynomial_quotient_prefix_exists (ac)
  55. specialize prime_field_polynomial_quotient_prefix_exists (bb)
  56. specialize prime_field_polynomial_quotient_prefix_exists (bc)
  57. specialize prime_field_polynomial_quotient_prefix_exists (S d)
  58. specialize prime_field_polynomial_quotient_prefix_exists (x2)
  59. apply prime_field_polynomial_quotient_prefix_exists
  60. exact hp
  61. exact hk
  62. intro i
  63. intro hindex
  64. specialize ha (i)
  65. apply ha
  66. specialize lt_of_lt_of_le (i)
  67. specialize lt_of_lt_of_le (x2)
  68. specialize lt_of_lt_of_le (L)
  69. apply lt_of_lt_of_le
  70. exact hindex
  71. exact hbounds_left
  72. cases hquotient
  73. cases hquotient_witness
  74. exists x
  75. exists x1
  76. exists x2
  77. exists x3
  78. exists x4
  79. split
  80. exact hb_right_right_witness_left
  81. split
  82. exact hi_witness
  83. split
  84. exact hlength_witness
  85. exact hquotient_witness_witness
prime_field_polynomial_subtract_bounded · unchanged support, not a new admission
forall p ab ac bb bc rb rc l. (forall pfs_index_subtract_bounded_graph. (exists pfa_gap_subtract_bounded_graphindex. pfa_gap_subtract_bounded_graphindex + S (pfs_index_subtract_bounded_graph) = (l)) -> exists pfs_left_subtract_bounded_graph pfs_right_subtract_bounded_graph pfs_result_subtract_bounded_graph. ((((exists ff_h_pfp_subtract_bounded_graphleft. ff_h_pfp_subtract_bounded_graphleft + S (pfs_left_subtract_bounded_graph) = S ((S (pfs_index_subtract_bounded_graph)) * ac)) /\ exists ff_q_pfp_subtract_bounded_graphleft. ab = ff_q_pfp_subtract_bounded_graphleft * S ((S (pfs_index_subtract_bounded_graph)) * ac) + (pfs_left_subtract_bounded_graph))) /\ (((((exists ff_h_pfp_subtract_bounded_graphright. ff_h_pfp_subtract_bounded_graphright + S (pfs_right_subtract_bounded_graph) = S ((S (pfs_index_subtract_bounded_graph)) * bc)) /\ exists ff_q_pfp_subtract_bounded_graphright. bb = ff_q_pfp_subtract_bounded_graphright * S ((S (pfs_index_subtract_bounded_graph)) * bc) + (pfs_right_subtract_bounded_graph))) /\ (((((exists ff_h_pfp_subtract_bounded_graphresult. ff_h_pfp_subtract_bounded_graphresult + S (pfs_result_subtract_bounded_graph) = S ((S (pfs_index_subtract_bounded_graph)) * rc)) /\ exists ff_q_pfp_subtract_bounded_graphresult. rb = ff_q_pfp_subtract_bounded_graphresult * S ((S (pfs_index_subtract_bounded_graph)) * rc) + (pfs_result_subtract_bounded_graph))) /\ ((((exists pfa_gap_subtract_bounded_graphoperationleft. pfa_gap_subtract_bounded_graphoperationleft + S (pfs_right_subtract_bounded_graph) = (p)) /\ (((exists pfa_gap_subtract_bounded_graphoperationright. pfa_gap_subtract_bounded_graphoperationright + S (pfs_result_subtract_bounded_graph) = (p)) /\ ((((exists pfa_gap_subtract_bounded_graphoperationresultbound. pfa_gap_subtract_bounded_graphoperationresultbound + S (pfs_left_subtract_bounded_graph) = (p)) /\ ((exists pfa_offset_left_subtract_bounded_graphoperationresultcongruence pfa_offset_right_subtract_bounded_graphoperationresultcongruence. ((pfs_right_subtract_bounded_graph) + (pfs_result_subtract_bounded_graph)) + (p) * pfa_offset_left_subtract_bounded_graphoperationresultcongruence = (pfs_left_subtract_bounded_graph) + (p) * pfa_offset_right_subtract_bounded_graphoperationresultcongruence)))))))))))))))) -> ((forall fom_index_pfp_subtract_bounded_ab. (exists fom_gap_pfp_subtract_bounded_ab_index_bound. fom_gap_pfp_subtract_bounded_ab_index_bound + S (fom_index_pfp_subtract_bounded_ab) = l) -> exists fom_value_pfp_subtract_bounded_ab. ((((exists fom_beta_height_pfp_subtract_bounded_ab_entry. fom_beta_height_pfp_subtract_bounded_ab_entry + S (fom_value_pfp_subtract_bounded_ab) = S ((S (fom_index_pfp_subtract_bounded_ab)) * ac)) /\ exists fom_beta_quotient_pfp_subtract_bounded_ab_entry. ab = fom_beta_quotient_pfp_subtract_bounded_ab_entry * S ((S (fom_index_pfp_subtract_bounded_ab)) * ac) + (fom_value_pfp_subtract_bounded_ab))) /\ (exists fom_gap_pfp_subtract_bounded_ab_value_bound. fom_gap_pfp_subtract_bounded_ab_value_bound + S (fom_value_pfp_subtract_bounded_ab) = p))) /\ (((forall fom_index_pfp_subtract_bounded_bb. (exists fom_gap_pfp_subtract_bounded_bb_index_bound. fom_gap_pfp_subtract_bounded_bb_index_bound + S (fom_index_pfp_subtract_bounded_bb) = l) -> exists fom_value_pfp_subtract_bounded_bb. ((((exists fom_beta_height_pfp_subtract_bounded_bb_entry. fom_beta_height_pfp_subtract_bounded_bb_entry + S (fom_value_pfp_subtract_bounded_bb) = S ((S (fom_index_pfp_subtract_bounded_bb)) * bc)) /\ exists fom_beta_quotient_pfp_subtract_bounded_bb_entry. bb = fom_beta_quotient_pfp_subtract_bounded_bb_entry * S ((S (fom_index_pfp_subtract_bounded_bb)) * bc) + (fom_value_pfp_subtract_bounded_bb))) /\ (exists fom_gap_pfp_subtract_bounded_bb_value_bound. fom_gap_pfp_subtract_bounded_bb_value_bound + S (fom_value_pfp_subtract_bounded_bb) = p))) /\ ((forall fom_index_pfp_subtract_bounded_rb. (exists fom_gap_pfp_subtract_bounded_rb_index_bound. fom_gap_pfp_subtract_bounded_rb_index_bound + S (fom_index_pfp_subtract_bounded_rb) = l) -> exists fom_value_pfp_subtract_bounded_rb. ((((exists fom_beta_height_pfp_subtract_bounded_rb_entry. fom_beta_height_pfp_subtract_bounded_rb_entry + S (fom_value_pfp_subtract_bounded_rb) = S ((S (fom_index_pfp_subtract_bounded_rb)) * rc)) /\ exists fom_beta_quotient_pfp_subtract_bounded_rb_entry. rb = fom_beta_quotient_pfp_subtract_bounded_rb_entry * S ((S (fom_index_pfp_subtract_bounded_rb)) * rc) + (fom_value_pfp_subtract_bounded_rb))) /\ (exists fom_gap_pfp_subtract_bounded_rb_value_bound. fom_gap_pfp_subtract_bounded_rb_value_bound + S (fom_value_pfp_subtract_bounded_rb) = p)))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro rb
  7. intro rc
  8. intro l
  9. intro h
  10. split
  11. intro i
  12. intro hi
  13. have hv : exists a b r. (((((exists ff_h_pfp_subtract_bound_chosen0. ff_h_pfp_subtract_bound_chosen0 + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_subtract_bound_chosen0. ab = ff_q_pfp_subtract_bound_chosen0 * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_subtract_bound_chosen1. ff_h_pfp_subtract_bound_chosen1 + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_subtract_bound_chosen1. bb = ff_q_pfp_subtract_bound_chosen1 * S ((S (i)) * bc) + (b))) /\ (((((exists ff_h_pfp_subtract_bound_chosen2. ff_h_pfp_subtract_bound_chosen2 + S (r) = S ((S (i)) * rc)) /\ exists ff_q_pfp_subtract_bound_chosen2. rb = ff_q_pfp_subtract_bound_chosen2 * S ((S (i)) * rc) + (r))) /\ ((((exists pfa_gap_subtract_bound_chosenoperationleft. pfa_gap_subtract_bound_chosenoperationleft + S (b) = (p)) /\ (((exists pfa_gap_subtract_bound_chosenoperationright. pfa_gap_subtract_bound_chosenoperationright + S (r) = (p)) /\ ((((exists pfa_gap_subtract_bound_chosenoperationresultbound. pfa_gap_subtract_bound_chosenoperationresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_subtract_bound_chosenoperationresultcongruence pfa_offset_right_subtract_bound_chosenoperationresultcongruence. ((b) + (r)) + (p) * pfa_offset_left_subtract_bound_chosenoperationresultcongruence = (a) + (p) * pfa_offset_right_subtract_bound_chosenoperationresultcongruence))))))))))))))))
  14. specialize h (i)
  15. apply h
  16. exact hi
  17. cases hv
  18. cases hv_witness
  19. cases hv_witness_witness
  20. cases hv_witness_witness_witness
  21. cases hv_witness_witness_witness_right
  22. cases hv_witness_witness_witness_right_right
  23. cases hv_witness_witness_witness_right_right_right
  24. cases hv_witness_witness_witness_right_right_right_right
  25. cases hv_witness_witness_witness_right_right_right_right_right
  26. exists x
  27. split
  28. exact hv_witness_witness_witness_left
  29. exact hv_witness_witness_witness_right_right_right_right_right_left
  30. split
  31. intro i
  32. intro hi
  33. have hv : exists a b r. (((((exists ff_h_pfp_subtract_bound_chosen0. ff_h_pfp_subtract_bound_chosen0 + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_subtract_bound_chosen0. ab = ff_q_pfp_subtract_bound_chosen0 * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_subtract_bound_chosen1. ff_h_pfp_subtract_bound_chosen1 + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_subtract_bound_chosen1. bb = ff_q_pfp_subtract_bound_chosen1 * S ((S (i)) * bc) + (b))) /\ (((((exists ff_h_pfp_subtract_bound_chosen2. ff_h_pfp_subtract_bound_chosen2 + S (r) = S ((S (i)) * rc)) /\ exists ff_q_pfp_subtract_bound_chosen2. rb = ff_q_pfp_subtract_bound_chosen2 * S ((S (i)) * rc) + (r))) /\ ((((exists pfa_gap_subtract_bound_chosenoperationleft. pfa_gap_subtract_bound_chosenoperationleft + S (b) = (p)) /\ (((exists pfa_gap_subtract_bound_chosenoperationright. pfa_gap_subtract_bound_chosenoperationright + S (r) = (p)) /\ ((((exists pfa_gap_subtract_bound_chosenoperationresultbound. pfa_gap_subtract_bound_chosenoperationresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_subtract_bound_chosenoperationresultcongruence pfa_offset_right_subtract_bound_chosenoperationresultcongruence. ((b) + (r)) + (p) * pfa_offset_left_subtract_bound_chosenoperationresultcongruence = (a) + (p) * pfa_offset_right_subtract_bound_chosenoperationresultcongruence))))))))))))))))
  34. specialize h (i)
  35. apply h
  36. exact hi
  37. cases hv
  38. cases hv_witness
  39. cases hv_witness_witness
  40. cases hv_witness_witness_witness
  41. cases hv_witness_witness_witness_right
  42. cases hv_witness_witness_witness_right_right
  43. cases hv_witness_witness_witness_right_right_right
  44. cases hv_witness_witness_witness_right_right_right_right
  45. cases hv_witness_witness_witness_right_right_right_right_right
  46. exists x1
  47. split
  48. exact hv_witness_witness_witness_right_left
  49. exact hv_witness_witness_witness_right_right_right_left
  50. intro i
  51. intro hi
  52. have hv : exists a b r. (((((exists ff_h_pfp_subtract_bound_chosen0. ff_h_pfp_subtract_bound_chosen0 + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_subtract_bound_chosen0. ab = ff_q_pfp_subtract_bound_chosen0 * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_subtract_bound_chosen1. ff_h_pfp_subtract_bound_chosen1 + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_subtract_bound_chosen1. bb = ff_q_pfp_subtract_bound_chosen1 * S ((S (i)) * bc) + (b))) /\ (((((exists ff_h_pfp_subtract_bound_chosen2. ff_h_pfp_subtract_bound_chosen2 + S (r) = S ((S (i)) * rc)) /\ exists ff_q_pfp_subtract_bound_chosen2. rb = ff_q_pfp_subtract_bound_chosen2 * S ((S (i)) * rc) + (r))) /\ ((((exists pfa_gap_subtract_bound_chosenoperationleft. pfa_gap_subtract_bound_chosenoperationleft + S (b) = (p)) /\ (((exists pfa_gap_subtract_bound_chosenoperationright. pfa_gap_subtract_bound_chosenoperationright + S (r) = (p)) /\ ((((exists pfa_gap_subtract_bound_chosenoperationresultbound. pfa_gap_subtract_bound_chosenoperationresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_subtract_bound_chosenoperationresultcongruence pfa_offset_right_subtract_bound_chosenoperationresultcongruence. ((b) + (r)) + (p) * pfa_offset_left_subtract_bound_chosenoperationresultcongruence = (a) + (p) * pfa_offset_right_subtract_bound_chosenoperationresultcongruence))))))))))))))))
  53. specialize h (i)
  54. apply h
  55. exact hi
  56. cases hv
  57. cases hv_witness
  58. cases hv_witness_witness
  59. cases hv_witness_witness_witness
  60. cases hv_witness_witness_witness_right
  61. cases hv_witness_witness_witness_right_right
  62. cases hv_witness_witness_witness_right_right_right
  63. cases hv_witness_witness_witness_right_right_right_right
  64. cases hv_witness_witness_witness_right_right_right_right_right
  65. exists x2
  66. split
  67. exact hv_witness_witness_witness_right_right_left
  68. exact hv_witness_witness_witness_right_right_right_right_left
prime_field_polynomial_division_residual_data_exists · unchanged support, not a new admission
forall p ab ac L bb bc d qb qc q. (~((p) = 1) /\ forall pfa_factor_left_division_residual_data_prime pfa_factor_right_division_residual_data_prime. (p) = pfa_factor_left_division_residual_data_prime * pfa_factor_right_division_residual_data_prime -> pfa_factor_left_division_residual_data_prime = 1 \/ pfa_factor_right_division_residual_data_prime = 1) -> (forall fom_index_pfp_division_residual_data_input. (exists fom_gap_pfp_division_residual_data_input_index_bound. fom_gap_pfp_division_residual_data_input_index_bound + S (fom_index_pfp_division_residual_data_input) = L) -> exists fom_value_pfp_division_residual_data_input. ((((exists fom_beta_height_pfp_division_residual_data_input_entry. fom_beta_height_pfp_division_residual_data_input_entry + S (fom_value_pfp_division_residual_data_input) = S ((S (fom_index_pfp_division_residual_data_input)) * ac)) /\ exists fom_beta_quotient_pfp_division_residual_data_input_entry. ab = fom_beta_quotient_pfp_division_residual_data_input_entry * S ((S (fom_index_pfp_division_residual_data_input)) * ac) + (fom_value_pfp_division_residual_data_input))) /\ (exists fom_gap_pfp_division_residual_data_input_value_bound. fom_gap_pfp_division_residual_data_input_value_bound + S (fom_value_pfp_division_residual_data_input) = p))) -> exists pb pc ub uc t rb rc R. (((forall pfc_index_division_residual_data_resultproduct. (exists pfa_gap_division_residual_data_resultproductbound. pfa_gap_division_residual_data_resultproductbound + S (pfc_index_division_residual_data_resultproduct) = (L)) -> exists pfc_value_division_residual_data_resultproduct. ((((exists ff_h_pfp_division_residual_data_resultproductentry. ff_h_pfp_division_residual_data_resultproductentry + S (pfc_value_division_residual_data_resultproduct) = S ((S (pfc_index_division_residual_data_resultproduct)) * pc)) /\ exists ff_q_pfp_division_residual_data_resultproductentry. pb = ff_q_pfp_division_residual_data_resultproductentry * S ((S (pfc_index_division_residual_data_resultproduct)) * pc) + (pfc_value_division_residual_data_resultproduct))) /\ ((exists pfc_terms_code_division_residual_data_resultproductcoefficient pfc_terms_scale_division_residual_data_resultproductcoefficient pfc_natural_sum_division_residual_data_resultproductcoefficient. ((forall pfc_index_division_residual_data_resultproductcoefficientdiagonal. (exists pfa_gap_division_residual_data_resultproductcoefficientdiagonalbound. pfa_gap_division_residual_data_resultproductcoefficientdiagonalbound + S (pfc_index_division_residual_data_resultproductcoefficientdiagonal) = (S (pfc_index_division_residual_data_resultproduct))) -> exists pfc_value_division_residual_data_resultproductcoefficientdiagonal. ((((exists ff_h_pfp_division_residual_data_resultproductcoefficientdiagonalentry. ff_h_pfp_division_residual_data_resultproductcoefficientdiagonalentry + S (pfc_value_division_residual_data_resultproductcoefficientdiagonal) = S ((S (pfc_index_division_residual_data_resultproductcoefficientdiagonal)) * pfc_terms_scale_division_residual_data_resultproductcoefficient)) /\ exists ff_q_pfp_division_residual_data_resultproductcoefficientdiagonalentry. pfc_terms_code_division_residual_data_resultproductcoefficient = ff_q_pfp_division_residual_data_resultproductcoefficientdiagonalentry * S ((S (pfc_index_division_residual_data_resultproductcoefficientdiagonal)) * pfc_terms_scale_division_residual_data_resultproductcoefficient) + (pfc_value_division_residual_data_resultproductcoefficientdiagonal))) /\ ((exists pfc_complement_division_residual_data_resultproductcoefficientdiagonalterm pfc_left_division_residual_data_resultproductcoefficientdiagonalterm pfc_right_division_residual_data_resultproductcoefficientdiagonalterm. (((pfc_index_division_residual_data_resultproductcoefficientdiagonal)+pfc_complement_division_residual_data_resultproductcoefficientdiagonalterm=(pfc_index_division_residual_data_resultproduct)) /\ ((((((exists pfa_gap_division_residual_data_resultproductcoefficientdiagonaltermleftinside. pfa_gap_division_residual_data_resultproductcoefficientdiagonaltermleftinside + S (pfc_index_division_residual_data_resultproductcoefficientdiagonal) = (q)) /\ ((((exists ff_h_pfp_division_residual_data_resultproductcoefficientdiagonaltermleftentry. ff_h_pfp_division_residual_data_resultproductcoefficientdiagonaltermleftentry + S (pfc_left_division_residual_data_resultproductcoefficientdiagonalterm) = S ((S (pfc_index_division_residual_data_resultproductcoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_residual_data_resultproductcoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_residual_data_resultproductcoefficientdiagonaltermleftentry * S ((S (pfc_index_division_residual_data_resultproductcoefficientdiagonal)) * qc) + (pfc_left_division_residual_data_resultproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_residual_data_resultproductcoefficientdiagonaltermleftoutside. pfc_gap_division_residual_data_resultproductcoefficientdiagonaltermleftoutside+(q)=(pfc_index_division_residual_data_resultproductcoefficientdiagonal)) /\ (((pfc_left_division_residual_data_resultproductcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_residual_data_resultproductcoefficientdiagonaltermrightinside. pfa_gap_division_residual_data_resultproductcoefficientdiagonaltermrightinside + S (pfc_complement_division_residual_data_resultproductcoefficientdiagonalterm) = (S (d))) /\ ((((exists ff_h_pfp_division_residual_data_resultproductcoefficientdiagonaltermrightentry. ff_h_pfp_division_residual_data_resultproductcoefficientdiagonaltermrightentry + S (pfc_right_division_residual_data_resultproductcoefficientdiagonalterm) = S ((S (pfc_complement_division_residual_data_resultproductcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_residual_data_resultproductcoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_residual_data_resultproductcoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_residual_data_resultproductcoefficientdiagonalterm)) * bc) + (pfc_right_division_residual_data_resultproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_residual_data_resultproductcoefficientdiagonaltermrightoutside. pfc_gap_division_residual_data_resultproductcoefficientdiagonaltermrightoutside+(S (d))=(pfc_complement_division_residual_data_resultproductcoefficientdiagonalterm)) /\ (((pfc_right_division_residual_data_resultproductcoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_residual_data_resultproductcoefficientdiagonal)=pfc_left_division_residual_data_resultproductcoefficientdiagonalterm*pfc_right_division_residual_data_resultproductcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_residual_data_resultproductcoefficientsum fs_v_pfc_division_residual_data_resultproductcoefficientsum. ((((exists fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_start. fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_residual_data_resultproductcoefficientsum)) /\ exists fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_start. fs_u_pfc_division_residual_data_resultproductcoefficientsum = fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_residual_data_resultproductcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_terminal. fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_terminal + S (pfc_natural_sum_division_residual_data_resultproductcoefficient) = S ((S (S (pfc_index_division_residual_data_resultproduct))) * fs_v_pfc_division_residual_data_resultproductcoefficientsum)) /\ exists fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_terminal. fs_u_pfc_division_residual_data_resultproductcoefficientsum = fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_terminal * S ((S (S (pfc_index_division_residual_data_resultproduct))) * fs_v_pfc_division_residual_data_resultproductcoefficientsum) + (pfc_natural_sum_division_residual_data_resultproductcoefficient))) /\ forall fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps. (exists fs_lt_pfc_division_residual_data_resultproductcoefficientsum_body_steps_bound. fs_lt_pfc_division_residual_data_resultproductcoefficientsum_body_steps_bound + S fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps = S (pfc_index_division_residual_data_resultproduct)) -> exists fs_a_pfc_division_residual_data_resultproductcoefficientsum_body_steps fs_r_pfc_division_residual_data_resultproductcoefficientsum_body_steps fs_s_pfc_division_residual_data_resultproductcoefficientsum_body_steps. ((((exists fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_steps_summand. fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_steps_summand + S (fs_a_pfc_division_residual_data_resultproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps)) * pfc_terms_scale_division_residual_data_resultproductcoefficient)) /\ exists fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_steps_summand. pfc_terms_code_division_residual_data_resultproductcoefficient = fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps)) * pfc_terms_scale_division_residual_data_resultproductcoefficient) + (fs_a_pfc_division_residual_data_resultproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_steps_partial. fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_steps_partial + S (fs_r_pfc_division_residual_data_resultproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps)) * fs_v_pfc_division_residual_data_resultproductcoefficientsum)) /\ exists fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_steps_partial. fs_u_pfc_division_residual_data_resultproductcoefficientsum = fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps)) * fs_v_pfc_division_residual_data_resultproductcoefficientsum) + (fs_r_pfc_division_residual_data_resultproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_steps_successor. fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_steps_successor + S (fs_s_pfc_division_residual_data_resultproductcoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps)) * fs_v_pfc_division_residual_data_resultproductcoefficientsum)) /\ exists fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_steps_successor. fs_u_pfc_division_residual_data_resultproductcoefficientsum = fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps)) * fs_v_pfc_division_residual_data_resultproductcoefficientsum) + (fs_s_pfc_division_residual_data_resultproductcoefficientsum_body_steps))) /\ fs_s_pfc_division_residual_data_resultproductcoefficientsum_body_steps = fs_r_pfc_division_residual_data_resultproductcoefficientsum_body_steps + fs_a_pfc_division_residual_data_resultproductcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_residual_data_resultproductcoefficientresiduebound. pfa_gap_division_residual_data_resultproductcoefficientresiduebound + S (pfc_value_division_residual_data_resultproduct) = (p)) /\ ((exists pfa_offset_left_division_residual_data_resultproductcoefficientresiduecongruence pfa_offset_right_division_residual_data_resultproductcoefficientresiduecongruence. (pfc_natural_sum_division_residual_data_resultproductcoefficient) + (p) * pfa_offset_left_division_residual_data_resultproductcoefficientresiduecongruence = (pfc_value_division_residual_data_resultproduct) + (p) * pfa_offset_right_division_residual_data_resultproductcoefficientresiduecongruence)))))))))))) /\ (((forall pfs_index_division_residual_data_resultdifference. (exists pfa_gap_division_residual_data_resultdifferenceindex. pfa_gap_division_residual_data_resultdifferenceindex + S (pfs_index_division_residual_data_resultdifference) = (L)) -> exists pfs_left_division_residual_data_resultdifference pfs_right_division_residual_data_resultdifference pfs_result_division_residual_data_resultdifference. ((((exists ff_h_pfp_division_residual_data_resultdifferenceleft. ff_h_pfp_division_residual_data_resultdifferenceleft + S (pfs_left_division_residual_data_resultdifference) = S ((S (pfs_index_division_residual_data_resultdifference)) * ac)) /\ exists ff_q_pfp_division_residual_data_resultdifferenceleft. ab = ff_q_pfp_division_residual_data_resultdifferenceleft * S ((S (pfs_index_division_residual_data_resultdifference)) * ac) + (pfs_left_division_residual_data_resultdifference))) /\ (((((exists ff_h_pfp_division_residual_data_resultdifferenceright. ff_h_pfp_division_residual_data_resultdifferenceright + S (pfs_right_division_residual_data_resultdifference) = S ((S (pfs_index_division_residual_data_resultdifference)) * pc)) /\ exists ff_q_pfp_division_residual_data_resultdifferenceright. pb = ff_q_pfp_division_residual_data_resultdifferenceright * S ((S (pfs_index_division_residual_data_resultdifference)) * pc) + (pfs_right_division_residual_data_resultdifference))) /\ (((((exists ff_h_pfp_division_residual_data_resultdifferenceresult. ff_h_pfp_division_residual_data_resultdifferenceresult + S (pfs_result_division_residual_data_resultdifference) = S ((S (pfs_index_division_residual_data_resultdifference)) * uc)) /\ exists ff_q_pfp_division_residual_data_resultdifferenceresult. ub = ff_q_pfp_division_residual_data_resultdifferenceresult * S ((S (pfs_index_division_residual_data_resultdifference)) * uc) + (pfs_result_division_residual_data_resultdifference))) /\ ((((exists pfa_gap_division_residual_data_resultdifferenceoperationleft. pfa_gap_division_residual_data_resultdifferenceoperationleft + S (pfs_right_division_residual_data_resultdifference) = (p)) /\ (((exists pfa_gap_division_residual_data_resultdifferenceoperationright. pfa_gap_division_residual_data_resultdifferenceoperationright + S (pfs_result_division_residual_data_resultdifference) = (p)) /\ ((((exists pfa_gap_division_residual_data_resultdifferenceoperationresultbound. pfa_gap_division_residual_data_resultdifferenceoperationresultbound + S (pfs_left_division_residual_data_resultdifference) = (p)) /\ ((exists pfa_offset_left_division_residual_data_resultdifferenceoperationresultcongruence pfa_offset_right_division_residual_data_resultdifferenceoperationresultcongruence. ((pfs_right_division_residual_data_resultdifference) + (pfs_result_division_residual_data_resultdifference)) + (p) * pfa_offset_left_division_residual_data_resultdifferenceoperationresultcongruence = (pfs_left_division_residual_data_resultdifference) + (p) * pfa_offset_right_division_residual_data_resultdifferenceoperationresultcongruence)))))))))))))))) /\ (((((L)=(t)+(R)) /\ (((forall fom_index_pfp_division_residual_data_resulttriminput. (exists fom_gap_pfp_division_residual_data_resulttriminput_index_bound. fom_gap_pfp_division_residual_data_resulttriminput_index_bound + S (fom_index_pfp_division_residual_data_resulttriminput) = L) -> exists fom_value_pfp_division_residual_data_resulttriminput. ((((exists fom_beta_height_pfp_division_residual_data_resulttriminput_entry. fom_beta_height_pfp_division_residual_data_resulttriminput_entry + S (fom_value_pfp_division_residual_data_resulttriminput) = S ((S (fom_index_pfp_division_residual_data_resulttriminput)) * uc)) /\ exists fom_beta_quotient_pfp_division_residual_data_resulttriminput_entry. ub = fom_beta_quotient_pfp_division_residual_data_resulttriminput_entry * S ((S (fom_index_pfp_division_residual_data_resulttriminput)) * uc) + (fom_value_pfp_division_residual_data_resulttriminput))) /\ (exists fom_gap_pfp_division_residual_data_resulttriminput_value_bound. fom_gap_pfp_division_residual_data_resulttriminput_value_bound + S (fom_value_pfp_division_residual_data_resulttriminput) = p))) /\ (((forall pfp_repeat_index_division_residual_data_resulttrimremoved. (exists pfa_gap_division_residual_data_resulttrimremovedindex. pfa_gap_division_residual_data_resulttrimremovedindex + S (pfp_repeat_index_division_residual_data_resulttrimremoved) = (t)) -> (((exists ff_h_pfp_division_residual_data_resulttrimremovedentry. ff_h_pfp_division_residual_data_resulttrimremovedentry + S (0) = S ((S (pfp_repeat_index_division_residual_data_resulttrimremoved)) * uc)) /\ exists ff_q_pfp_division_residual_data_resulttrimremovedentry. ub = ff_q_pfp_division_residual_data_resulttrimremovedentry * S ((S (pfp_repeat_index_division_residual_data_resulttrimremoved)) * uc) + (0)))) /\ (((forall pftrim_index_division_residual_data_resulttrimsuffix pftrim_value_division_residual_data_resulttrimsuffix. (exists pfa_gap_division_residual_data_resulttrimsuffixbound. pfa_gap_division_residual_data_resulttrimsuffixbound + S (pftrim_index_division_residual_data_resulttrimsuffix) = (R)) -> (((exists ff_h_pfp_division_residual_data_resulttrimsuffixsource. ff_h_pfp_division_residual_data_resulttrimsuffixsource + S (pftrim_value_division_residual_data_resulttrimsuffix) = S ((S ((t)+pftrim_index_division_residual_data_resulttrimsuffix)) * uc)) /\ exists ff_q_pfp_division_residual_data_resulttrimsuffixsource. ub = ff_q_pfp_division_residual_data_resulttrimsuffixsource * S ((S ((t)+pftrim_index_division_residual_data_resulttrimsuffix)) * uc) + (pftrim_value_division_residual_data_resulttrimsuffix))) -> (((exists ff_h_pfp_division_residual_data_resulttrimsuffixoutput. ff_h_pfp_division_residual_data_resulttrimsuffixoutput + S (pftrim_value_division_residual_data_resulttrimsuffix) = S ((S (pftrim_index_division_residual_data_resulttrimsuffix)) * rc)) /\ exists ff_q_pfp_division_residual_data_resulttrimsuffixoutput. rb = ff_q_pfp_division_residual_data_resulttrimsuffixoutput * S ((S (pftrim_index_division_residual_data_resulttrimsuffix)) * rc) + (pftrim_value_division_residual_data_resulttrimsuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_residual_data_resulttrimnormal. ((((exists ff_h_pfp_division_residual_data_resulttrimnormalentry. ff_h_pfp_division_residual_data_resulttrimnormalentry + S (pftrim_leading_division_residual_data_resulttrimnormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_residual_data_resulttrimnormalentry. rb = ff_q_pfp_division_residual_data_resulttrimnormalentry * S ((S (0)) * rc) + (pftrim_leading_division_residual_data_resulttrimnormal))) /\ ((~(pftrim_leading_division_residual_data_resulttrimnormal=0))))))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro d
  8. intro qb
  9. intro qc
  10. intro q
  11. intro hp
  12. intro ha
  13. have hproduct : exists pb pc. (forall pfc_index_division_residual_product. (exists pfa_gap_division_residual_productbound. pfa_gap_division_residual_productbound + S (pfc_index_division_residual_product) = (L)) -> exists pfc_value_division_residual_product. ((((exists ff_h_pfp_division_residual_productentry. ff_h_pfp_division_residual_productentry + S (pfc_value_division_residual_product) = S ((S (pfc_index_division_residual_product)) * pc)) /\ exists ff_q_pfp_division_residual_productentry. pb = ff_q_pfp_division_residual_productentry * S ((S (pfc_index_division_residual_product)) * pc) + (pfc_value_division_residual_product))) /\ ((exists pfc_terms_code_division_residual_productcoefficient pfc_terms_scale_division_residual_productcoefficient pfc_natural_sum_division_residual_productcoefficient. ((forall pfc_index_division_residual_productcoefficientdiagonal. (exists pfa_gap_division_residual_productcoefficientdiagonalbound. pfa_gap_division_residual_productcoefficientdiagonalbound + S (pfc_index_division_residual_productcoefficientdiagonal) = (S (pfc_index_division_residual_product))) -> exists pfc_value_division_residual_productcoefficientdiagonal. ((((exists ff_h_pfp_division_residual_productcoefficientdiagonalentry. ff_h_pfp_division_residual_productcoefficientdiagonalentry + S (pfc_value_division_residual_productcoefficientdiagonal) = S ((S (pfc_index_division_residual_productcoefficientdiagonal)) * pfc_terms_scale_division_residual_productcoefficient)) /\ exists ff_q_pfp_division_residual_productcoefficientdiagonalentry. pfc_terms_code_division_residual_productcoefficient = ff_q_pfp_division_residual_productcoefficientdiagonalentry * S ((S (pfc_index_division_residual_productcoefficientdiagonal)) * pfc_terms_scale_division_residual_productcoefficient) + (pfc_value_division_residual_productcoefficientdiagonal))) /\ ((exists pfc_complement_division_residual_productcoefficientdiagonalterm pfc_left_division_residual_productcoefficientdiagonalterm pfc_right_division_residual_productcoefficientdiagonalterm. (((pfc_index_division_residual_productcoefficientdiagonal)+pfc_complement_division_residual_productcoefficientdiagonalterm=(pfc_index_division_residual_product)) /\ ((((((exists pfa_gap_division_residual_productcoefficientdiagonaltermleftinside. pfa_gap_division_residual_productcoefficientdiagonaltermleftinside + S (pfc_index_division_residual_productcoefficientdiagonal) = (q)) /\ ((((exists ff_h_pfp_division_residual_productcoefficientdiagonaltermleftentry. ff_h_pfp_division_residual_productcoefficientdiagonaltermleftentry + S (pfc_left_division_residual_productcoefficientdiagonalterm) = S ((S (pfc_index_division_residual_productcoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_residual_productcoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_residual_productcoefficientdiagonaltermleftentry * S ((S (pfc_index_division_residual_productcoefficientdiagonal)) * qc) + (pfc_left_division_residual_productcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_residual_productcoefficientdiagonaltermleftoutside. pfc_gap_division_residual_productcoefficientdiagonaltermleftoutside+(q)=(pfc_index_division_residual_productcoefficientdiagonal)) /\ (((pfc_left_division_residual_productcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_residual_productcoefficientdiagonaltermrightinside. pfa_gap_division_residual_productcoefficientdiagonaltermrightinside + S (pfc_complement_division_residual_productcoefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_residual_productcoefficientdiagonaltermrightentry. ff_h_pfp_division_residual_productcoefficientdiagonaltermrightentry + S (pfc_right_division_residual_productcoefficientdiagonalterm) = S ((S (pfc_complement_division_residual_productcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_residual_productcoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_residual_productcoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_residual_productcoefficientdiagonalterm)) * bc) + (pfc_right_division_residual_productcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_residual_productcoefficientdiagonaltermrightoutside. pfc_gap_division_residual_productcoefficientdiagonaltermrightoutside+(S d)=(pfc_complement_division_residual_productcoefficientdiagonalterm)) /\ (((pfc_right_division_residual_productcoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_residual_productcoefficientdiagonal)=pfc_left_division_residual_productcoefficientdiagonalterm*pfc_right_division_residual_productcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_residual_productcoefficientsum fs_v_pfc_division_residual_productcoefficientsum. ((((exists fs_h_pfc_division_residual_productcoefficientsum_body_start. fs_h_pfc_division_residual_productcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_residual_productcoefficientsum)) /\ exists fs_q_pfc_division_residual_productcoefficientsum_body_start. fs_u_pfc_division_residual_productcoefficientsum = fs_q_pfc_division_residual_productcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_residual_productcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_residual_productcoefficientsum_body_terminal. fs_h_pfc_division_residual_productcoefficientsum_body_terminal + S (pfc_natural_sum_division_residual_productcoefficient) = S ((S (S (pfc_index_division_residual_product))) * fs_v_pfc_division_residual_productcoefficientsum)) /\ exists fs_q_pfc_division_residual_productcoefficientsum_body_terminal. fs_u_pfc_division_residual_productcoefficientsum = fs_q_pfc_division_residual_productcoefficientsum_body_terminal * S ((S (S (pfc_index_division_residual_product))) * fs_v_pfc_division_residual_productcoefficientsum) + (pfc_natural_sum_division_residual_productcoefficient))) /\ forall fs_i_pfc_division_residual_productcoefficientsum_body_steps. (exists fs_lt_pfc_division_residual_productcoefficientsum_body_steps_bound. fs_lt_pfc_division_residual_productcoefficientsum_body_steps_bound + S fs_i_pfc_division_residual_productcoefficientsum_body_steps = S (pfc_index_division_residual_product)) -> exists fs_a_pfc_division_residual_productcoefficientsum_body_steps fs_r_pfc_division_residual_productcoefficientsum_body_steps fs_s_pfc_division_residual_productcoefficientsum_body_steps. ((((exists fs_h_pfc_division_residual_productcoefficientsum_body_steps_summand. fs_h_pfc_division_residual_productcoefficientsum_body_steps_summand + S (fs_a_pfc_division_residual_productcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_residual_productcoefficientsum_body_steps)) * pfc_terms_scale_division_residual_productcoefficient)) /\ exists fs_q_pfc_division_residual_productcoefficientsum_body_steps_summand. pfc_terms_code_division_residual_productcoefficient = fs_q_pfc_division_residual_productcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_residual_productcoefficientsum_body_steps)) * pfc_terms_scale_division_residual_productcoefficient) + (fs_a_pfc_division_residual_productcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_residual_productcoefficientsum_body_steps_partial. fs_h_pfc_division_residual_productcoefficientsum_body_steps_partial + S (fs_r_pfc_division_residual_productcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_residual_productcoefficientsum_body_steps)) * fs_v_pfc_division_residual_productcoefficientsum)) /\ exists fs_q_pfc_division_residual_productcoefficientsum_body_steps_partial. fs_u_pfc_division_residual_productcoefficientsum = fs_q_pfc_division_residual_productcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_residual_productcoefficientsum_body_steps)) * fs_v_pfc_division_residual_productcoefficientsum) + (fs_r_pfc_division_residual_productcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_residual_productcoefficientsum_body_steps_successor. fs_h_pfc_division_residual_productcoefficientsum_body_steps_successor + S (fs_s_pfc_division_residual_productcoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_residual_productcoefficientsum_body_steps)) * fs_v_pfc_division_residual_productcoefficientsum)) /\ exists fs_q_pfc_division_residual_productcoefficientsum_body_steps_successor. fs_u_pfc_division_residual_productcoefficientsum = fs_q_pfc_division_residual_productcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_residual_productcoefficientsum_body_steps)) * fs_v_pfc_division_residual_productcoefficientsum) + (fs_s_pfc_division_residual_productcoefficientsum_body_steps))) /\ fs_s_pfc_division_residual_productcoefficientsum_body_steps = fs_r_pfc_division_residual_productcoefficientsum_body_steps + fs_a_pfc_division_residual_productcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_residual_productcoefficientresiduebound. pfa_gap_division_residual_productcoefficientresiduebound + S (pfc_value_division_residual_product) = (p)) /\ ((exists pfa_offset_left_division_residual_productcoefficientresiduecongruence pfa_offset_right_division_residual_productcoefficientresiduecongruence. (pfc_natural_sum_division_residual_productcoefficient) + (p) * pfa_offset_left_division_residual_productcoefficientresiduecongruence = (pfc_value_division_residual_product) + (p) * pfa_offset_right_division_residual_productcoefficientresiduecongruence))))))))))))
  14. specialize prime_field_convolution_prefix_exists (p)
  15. specialize prime_field_convolution_prefix_exists (qb)
  16. specialize prime_field_convolution_prefix_exists (qc)
  17. specialize prime_field_convolution_prefix_exists (q)
  18. specialize prime_field_convolution_prefix_exists (bb)
  19. specialize prime_field_convolution_prefix_exists (bc)
  20. specialize prime_field_convolution_prefix_exists (S d)
  21. specialize prime_field_convolution_prefix_exists (L)
  22. apply prime_field_convolution_prefix_exists
  23. intro hz
  24. specialize prime_nonzero (p)
  25. apply prime_nonzero
  26. exact hp
  27. exact hz
  28. cases hproduct
  29. cases hproduct_witness
  30. have hresidual : exists ub uc. (forall pfs_index_division_residual_difference. (exists pfa_gap_division_residual_differenceindex. pfa_gap_division_residual_differenceindex + S (pfs_index_division_residual_difference) = (L)) -> exists pfs_left_division_residual_difference pfs_right_division_residual_difference pfs_result_division_residual_difference. ((((exists ff_h_pfp_division_residual_differenceleft. ff_h_pfp_division_residual_differenceleft + S (pfs_left_division_residual_difference) = S ((S (pfs_index_division_residual_difference)) * ac)) /\ exists ff_q_pfp_division_residual_differenceleft. ab = ff_q_pfp_division_residual_differenceleft * S ((S (pfs_index_division_residual_difference)) * ac) + (pfs_left_division_residual_difference))) /\ (((((exists ff_h_pfp_division_residual_differenceright. ff_h_pfp_division_residual_differenceright + S (pfs_right_division_residual_difference) = S ((S (pfs_index_division_residual_difference)) * x1)) /\ exists ff_q_pfp_division_residual_differenceright. x = ff_q_pfp_division_residual_differenceright * S ((S (pfs_index_division_residual_difference)) * x1) + (pfs_right_division_residual_difference))) /\ (((((exists ff_h_pfp_division_residual_differenceresult. ff_h_pfp_division_residual_differenceresult + S (pfs_result_division_residual_difference) = S ((S (pfs_index_division_residual_difference)) * uc)) /\ exists ff_q_pfp_division_residual_differenceresult. ub = ff_q_pfp_division_residual_differenceresult * S ((S (pfs_index_division_residual_difference)) * uc) + (pfs_result_division_residual_difference))) /\ ((((exists pfa_gap_division_residual_differenceoperationleft. pfa_gap_division_residual_differenceoperationleft + S (pfs_right_division_residual_difference) = (p)) /\ (((exists pfa_gap_division_residual_differenceoperationright. pfa_gap_division_residual_differenceoperationright + S (pfs_result_division_residual_difference) = (p)) /\ ((((exists pfa_gap_division_residual_differenceoperationresultbound. pfa_gap_division_residual_differenceoperationresultbound + S (pfs_left_division_residual_difference) = (p)) /\ ((exists pfa_offset_left_division_residual_differenceoperationresultcongruence pfa_offset_right_division_residual_differenceoperationresultcongruence. ((pfs_right_division_residual_difference) + (pfs_result_division_residual_difference)) + (p) * pfa_offset_left_division_residual_differenceoperationresultcongruence = (pfs_left_division_residual_difference) + (p) * pfa_offset_right_division_residual_differenceoperationresultcongruence))))))))))))))))
  31. specialize prime_field_polynomial_subtract_exists (p)
  32. specialize prime_field_polynomial_subtract_exists (ab)
  33. specialize prime_field_polynomial_subtract_exists (ac)
  34. specialize prime_field_polynomial_subtract_exists (x)
  35. specialize prime_field_polynomial_subtract_exists (x1)
  36. specialize prime_field_polynomial_subtract_exists (L)
  37. apply prime_field_polynomial_subtract_exists
  38. exact hp
  39. exact ha
  40. specialize prime_field_convolution_prefix_bounded (p)
  41. specialize prime_field_convolution_prefix_bounded (qb)
  42. specialize prime_field_convolution_prefix_bounded (qc)
  43. specialize prime_field_convolution_prefix_bounded (q)
  44. specialize prime_field_convolution_prefix_bounded (bb)
  45. specialize prime_field_convolution_prefix_bounded (bc)
  46. specialize prime_field_convolution_prefix_bounded (S d)
  47. specialize prime_field_convolution_prefix_bounded (x)
  48. specialize prime_field_convolution_prefix_bounded (x1)
  49. specialize prime_field_convolution_prefix_bounded (L)
  50. apply prime_field_convolution_prefix_bounded
  51. exact hproduct_witness_witness
  52. cases hresidual
  53. cases hresidual_witness
  54. have htrim : exists t rb rc R. ((((L)=(t)+(R)) /\ (((forall fom_index_pfp_division_residual_triminput. (exists fom_gap_pfp_division_residual_triminput_index_bound. fom_gap_pfp_division_residual_triminput_index_bound + S (fom_index_pfp_division_residual_triminput) = L) -> exists fom_value_pfp_division_residual_triminput. ((((exists fom_beta_height_pfp_division_residual_triminput_entry. fom_beta_height_pfp_division_residual_triminput_entry + S (fom_value_pfp_division_residual_triminput) = S ((S (fom_index_pfp_division_residual_triminput)) * x3)) /\ exists fom_beta_quotient_pfp_division_residual_triminput_entry. x2 = fom_beta_quotient_pfp_division_residual_triminput_entry * S ((S (fom_index_pfp_division_residual_triminput)) * x3) + (fom_value_pfp_division_residual_triminput))) /\ (exists fom_gap_pfp_division_residual_triminput_value_bound. fom_gap_pfp_division_residual_triminput_value_bound + S (fom_value_pfp_division_residual_triminput) = p))) /\ (((forall pfp_repeat_index_division_residual_trimremoved. (exists pfa_gap_division_residual_trimremovedindex. pfa_gap_division_residual_trimremovedindex + S (pfp_repeat_index_division_residual_trimremoved) = (t)) -> (((exists ff_h_pfp_division_residual_trimremovedentry. ff_h_pfp_division_residual_trimremovedentry + S (0) = S ((S (pfp_repeat_index_division_residual_trimremoved)) * x3)) /\ exists ff_q_pfp_division_residual_trimremovedentry. x2 = ff_q_pfp_division_residual_trimremovedentry * S ((S (pfp_repeat_index_division_residual_trimremoved)) * x3) + (0)))) /\ (((forall pftrim_index_division_residual_trimsuffix pftrim_value_division_residual_trimsuffix. (exists pfa_gap_division_residual_trimsuffixbound. pfa_gap_division_residual_trimsuffixbound + S (pftrim_index_division_residual_trimsuffix) = (R)) -> (((exists ff_h_pfp_division_residual_trimsuffixsource. ff_h_pfp_division_residual_trimsuffixsource + S (pftrim_value_division_residual_trimsuffix) = S ((S ((t)+pftrim_index_division_residual_trimsuffix)) * x3)) /\ exists ff_q_pfp_division_residual_trimsuffixsource. x2 = ff_q_pfp_division_residual_trimsuffixsource * S ((S ((t)+pftrim_index_division_residual_trimsuffix)) * x3) + (pftrim_value_division_residual_trimsuffix))) -> (((exists ff_h_pfp_division_residual_trimsuffixoutput. ff_h_pfp_division_residual_trimsuffixoutput + S (pftrim_value_division_residual_trimsuffix) = S ((S (pftrim_index_division_residual_trimsuffix)) * rc)) /\ exists ff_q_pfp_division_residual_trimsuffixoutput. rb = ff_q_pfp_division_residual_trimsuffixoutput * S ((S (pftrim_index_division_residual_trimsuffix)) * rc) + (pftrim_value_division_residual_trimsuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_residual_trimnormal. ((((exists ff_h_pfp_division_residual_trimnormalentry. ff_h_pfp_division_residual_trimnormalentry + S (pftrim_leading_division_residual_trimnormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_residual_trimnormalentry. rb = ff_q_pfp_division_residual_trimnormalentry * S ((S (0)) * rc) + (pftrim_leading_division_residual_trimnormal))) /\ ((~(pftrim_leading_division_residual_trimnormal=0)))))))))))))))
  55. specialize prime_field_polynomial_trim_exists (p)
  56. specialize prime_field_polynomial_trim_exists (x2)
  57. specialize prime_field_polynomial_trim_exists (x3)
  58. specialize prime_field_polynomial_trim_exists (L)
  59. apply prime_field_polynomial_trim_exists
  60. have hcanonical : ((forall fom_index_pfp_division_residual_source_bound. (exists fom_gap_pfp_division_residual_source_bound_index_bound. fom_gap_pfp_division_residual_source_bound_index_bound + S (fom_index_pfp_division_residual_source_bound) = L) -> exists fom_value_pfp_division_residual_source_bound. ((((exists fom_beta_height_pfp_division_residual_source_bound_entry. fom_beta_height_pfp_division_residual_source_bound_entry + S (fom_value_pfp_division_residual_source_bound) = S ((S (fom_index_pfp_division_residual_source_bound)) * ac)) /\ exists fom_beta_quotient_pfp_division_residual_source_bound_entry. ab = fom_beta_quotient_pfp_division_residual_source_bound_entry * S ((S (fom_index_pfp_division_residual_source_bound)) * ac) + (fom_value_pfp_division_residual_source_bound))) /\ (exists fom_gap_pfp_division_residual_source_bound_value_bound. fom_gap_pfp_division_residual_source_bound_value_bound + S (fom_value_pfp_division_residual_source_bound) = p))) /\ (((forall fom_index_pfp_division_residual_product_bound. (exists fom_gap_pfp_division_residual_product_bound_index_bound. fom_gap_pfp_division_residual_product_bound_index_bound + S (fom_index_pfp_division_residual_product_bound) = L) -> exists fom_value_pfp_division_residual_product_bound. ((((exists fom_beta_height_pfp_division_residual_product_bound_entry. fom_beta_height_pfp_division_residual_product_bound_entry + S (fom_value_pfp_division_residual_product_bound) = S ((S (fom_index_pfp_division_residual_product_bound)) * x1)) /\ exists fom_beta_quotient_pfp_division_residual_product_bound_entry. x = fom_beta_quotient_pfp_division_residual_product_bound_entry * S ((S (fom_index_pfp_division_residual_product_bound)) * x1) + (fom_value_pfp_division_residual_product_bound))) /\ (exists fom_gap_pfp_division_residual_product_bound_value_bound. fom_gap_pfp_division_residual_product_bound_value_bound + S (fom_value_pfp_division_residual_product_bound) = p))) /\ ((forall fom_index_pfp_division_residual_result_bound. (exists fom_gap_pfp_division_residual_result_bound_index_bound. fom_gap_pfp_division_residual_result_bound_index_bound + S (fom_index_pfp_division_residual_result_bound) = L) -> exists fom_value_pfp_division_residual_result_bound. ((((exists fom_beta_height_pfp_division_residual_result_bound_entry. fom_beta_height_pfp_division_residual_result_bound_entry + S (fom_value_pfp_division_residual_result_bound) = S ((S (fom_index_pfp_division_residual_result_bound)) * x3)) /\ exists fom_beta_quotient_pfp_division_residual_result_bound_entry. x2 = fom_beta_quotient_pfp_division_residual_result_bound_entry * S ((S (fom_index_pfp_division_residual_result_bound)) * x3) + (fom_value_pfp_division_residual_result_bound))) /\ (exists fom_gap_pfp_division_residual_result_bound_value_bound. fom_gap_pfp_division_residual_result_bound_value_bound + S (fom_value_pfp_division_residual_result_bound) = p)))))))
  61. specialize prime_field_polynomial_subtract_bounded (p)
  62. specialize prime_field_polynomial_subtract_bounded (ab)
  63. specialize prime_field_polynomial_subtract_bounded (ac)
  64. specialize prime_field_polynomial_subtract_bounded (x)
  65. specialize prime_field_polynomial_subtract_bounded (x1)
  66. specialize prime_field_polynomial_subtract_bounded (x2)
  67. specialize prime_field_polynomial_subtract_bounded (x3)
  68. specialize prime_field_polynomial_subtract_bounded (L)
  69. apply prime_field_polynomial_subtract_bounded
  70. exact hresidual_witness_witness
  71. cases hcanonical
  72. cases hcanonical_right
  73. exact hcanonical_right_right
  74. cases htrim
  75. cases htrim_witness
  76. cases htrim_witness_witness
  77. cases htrim_witness_witness_witness
  78. exists x
  79. exists x1
  80. exists x2
  81. exists x3
  82. exists x4
  83. exists x5
  84. exists x6
  85. exists x7
  86. split
  87. exact hproduct_witness_witness
  88. split
  89. exact hresidual_witness_witness
  90. exact htrim_witness_witness_witness_witness
prime_field_polynomial_division_execution_exists · unchanged support, not a new admission
forall p ab ac L bb bc d. (~((p) = 1) /\ forall pfa_factor_left_division_total_prime pfa_factor_right_division_total_prime. (p) = pfa_factor_left_division_total_prime * pfa_factor_right_division_total_prime -> pfa_factor_left_division_total_prime = 1 \/ pfa_factor_right_division_total_prime = 1) -> (forall fom_index_pfp_division_total_input. (exists fom_gap_pfp_division_total_input_index_bound. fom_gap_pfp_division_total_input_index_bound + S (fom_index_pfp_division_total_input) = L) -> exists fom_value_pfp_division_total_input. ((((exists fom_beta_height_pfp_division_total_input_entry. fom_beta_height_pfp_division_total_input_entry + S (fom_value_pfp_division_total_input) = S ((S (fom_index_pfp_division_total_input)) * ac)) /\ exists fom_beta_quotient_pfp_division_total_input_entry. ab = fom_beta_quotient_pfp_division_total_input_entry * S ((S (fom_index_pfp_division_total_input)) * ac) + (fom_value_pfp_division_total_input))) /\ (exists fom_gap_pfp_division_total_input_value_bound. fom_gap_pfp_division_total_input_value_bound + S (fom_value_pfp_division_total_input) = p))) -> ((((S d)=S (d)) /\ (((forall fom_index_pfp_division_total_divisorcoefficients. (exists fom_gap_pfp_division_total_divisorcoefficients_index_bound. fom_gap_pfp_division_total_divisorcoefficients_index_bound + S (fom_index_pfp_division_total_divisorcoefficients) = S d) -> exists fom_value_pfp_division_total_divisorcoefficients. ((((exists fom_beta_height_pfp_division_total_divisorcoefficients_entry. fom_beta_height_pfp_division_total_divisorcoefficients_entry + S (fom_value_pfp_division_total_divisorcoefficients) = S ((S (fom_index_pfp_division_total_divisorcoefficients)) * bc)) /\ exists fom_beta_quotient_pfp_division_total_divisorcoefficients_entry. bb = fom_beta_quotient_pfp_division_total_divisorcoefficients_entry * S ((S (fom_index_pfp_division_total_divisorcoefficients)) * bc) + (fom_value_pfp_division_total_divisorcoefficients))) /\ (exists fom_gap_pfp_division_total_divisorcoefficients_value_bound. fom_gap_pfp_division_total_divisorcoefficients_value_bound + S (fom_value_pfp_division_total_divisorcoefficients) = p))) /\ ((exists pfd_leading_division_total_divisor. ((((exists ff_h_pfp_division_total_divisorentry. ff_h_pfp_division_total_divisorentry + S (pfd_leading_division_total_divisor) = S ((S (0)) * bc)) /\ exists ff_q_pfp_division_total_divisorentry. bb = ff_q_pfp_division_total_divisorentry * S ((S (0)) * bc) + (pfd_leading_division_total_divisor))) /\ ((~(pfd_leading_division_total_divisor=0)))))))))) -> exists qb qc q rb rc R. (((forall fom_index_pfp_division_total_resultinput. (exists fom_gap_pfp_division_total_resultinput_index_bound. fom_gap_pfp_division_total_resultinput_index_bound + S (fom_index_pfp_division_total_resultinput) = L) -> exists fom_value_pfp_division_total_resultinput. ((((exists fom_beta_height_pfp_division_total_resultinput_entry. fom_beta_height_pfp_division_total_resultinput_entry + S (fom_value_pfp_division_total_resultinput) = S ((S (fom_index_pfp_division_total_resultinput)) * ac)) /\ exists fom_beta_quotient_pfp_division_total_resultinput_entry. ab = fom_beta_quotient_pfp_division_total_resultinput_entry * S ((S (fom_index_pfp_division_total_resultinput)) * ac) + (fom_value_pfp_division_total_resultinput))) /\ (exists fom_gap_pfp_division_total_resultinput_value_bound. fom_gap_pfp_division_total_resultinput_value_bound + S (fom_value_pfp_division_total_resultinput) = p))) /\ (((forall fom_index_pfp_division_total_resultdivisor. (exists fom_gap_pfp_division_total_resultdivisor_index_bound. fom_gap_pfp_division_total_resultdivisor_index_bound + S (fom_index_pfp_division_total_resultdivisor) = S (d)) -> exists fom_value_pfp_division_total_resultdivisor. ((((exists fom_beta_height_pfp_division_total_resultdivisor_entry. fom_beta_height_pfp_division_total_resultdivisor_entry + S (fom_value_pfp_division_total_resultdivisor) = S ((S (fom_index_pfp_division_total_resultdivisor)) * bc)) /\ exists fom_beta_quotient_pfp_division_total_resultdivisor_entry. bb = fom_beta_quotient_pfp_division_total_resultdivisor_entry * S ((S (fom_index_pfp_division_total_resultdivisor)) * bc) + (fom_value_pfp_division_total_resultdivisor))) /\ (exists fom_gap_pfp_division_total_resultdivisor_value_bound. fom_gap_pfp_division_total_resultdivisor_value_bound + S (fom_value_pfp_division_total_resultdivisor) = p))) /\ (((((((q)=0) /\ ((exists pfc_gap_division_total_resultlengthshort. pfc_gap_division_total_resultlengthshort+(L)=(d))))) \/ (((~((q)=0)) /\ (((q)+(d)=(L)))))) /\ ((exists pfd_head_division_total_result pfd_inverse_division_total_result pfd_product_code_division_total_result pfd_product_scale_division_total_result pfd_residual_code_division_total_result pfd_residual_scale_division_total_result pfd_cut_division_total_result. ((((exists ff_h_pfp_division_total_resulthead. ff_h_pfp_division_total_resulthead + S (pfd_head_division_total_result) = S ((S (0)) * bc)) /\ exists ff_q_pfp_division_total_resulthead. bb = ff_q_pfp_division_total_resulthead * S ((S (0)) * bc) + (pfd_head_division_total_result))) /\ (((((~((pfd_head_division_total_result) = 0)) /\ ((((exists pfa_gap_division_total_resultinversemultiplicationleft. pfa_gap_division_total_resultinversemultiplicationleft + S (pfd_head_division_total_result) = (p)) /\ (((exists pfa_gap_division_total_resultinversemultiplicationright. pfa_gap_division_total_resultinversemultiplicationright + S (pfd_inverse_division_total_result) = (p)) /\ ((((exists pfa_gap_division_total_resultinversemultiplicationresultbound. pfa_gap_division_total_resultinversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_division_total_resultinversemultiplicationresultcongruence pfa_offset_right_division_total_resultinversemultiplicationresultcongruence. ((pfd_head_division_total_result) * (pfd_inverse_division_total_result)) + (p) * pfa_offset_left_division_total_resultinversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_division_total_resultinversemultiplicationresultcongruence)))))))))))) /\ (((forall pfd_index_division_total_resultquotient. (exists pfa_gap_division_total_resultquotientbound. pfa_gap_division_total_resultquotientbound + S (pfd_index_division_total_resultquotient) = (q)) -> exists pfd_value_division_total_resultquotient. ((((exists ff_h_pfp_division_total_resultquotiententry. ff_h_pfp_division_total_resultquotiententry + S (pfd_value_division_total_resultquotient) = S ((S (pfd_index_division_total_resultquotient)) * qc)) /\ exists ff_q_pfp_division_total_resultquotiententry. qb = ff_q_pfp_division_total_resultquotiententry * S ((S (pfd_index_division_total_resultquotient)) * qc) + (pfd_value_division_total_resultquotient))) /\ ((exists pfd_input_division_total_resultquotientstep pfd_previous_division_total_resultquotientstep pfd_difference_division_total_resultquotientstep. ((((exists ff_h_pfp_division_total_resultquotientstepinput. ff_h_pfp_division_total_resultquotientstepinput + S (pfd_input_division_total_resultquotientstep) = S ((S (pfd_index_division_total_resultquotient)) * ac)) /\ exists ff_q_pfp_division_total_resultquotientstepinput. ab = ff_q_pfp_division_total_resultquotientstepinput * S ((S (pfd_index_division_total_resultquotient)) * ac) + (pfd_input_division_total_resultquotientstep))) /\ (((exists pfc_terms_code_division_total_resultquotientstepprevious pfc_terms_scale_division_total_resultquotientstepprevious pfc_natural_sum_division_total_resultquotientstepprevious. ((forall pfc_index_division_total_resultquotientsteppreviousdiagonal. (exists pfa_gap_division_total_resultquotientsteppreviousdiagonalbound. pfa_gap_division_total_resultquotientsteppreviousdiagonalbound + S (pfc_index_division_total_resultquotientsteppreviousdiagonal) = (S (pfd_index_division_total_resultquotient))) -> exists pfc_value_division_total_resultquotientsteppreviousdiagonal. ((((exists ff_h_pfp_division_total_resultquotientsteppreviousdiagonalentry. ff_h_pfp_division_total_resultquotientsteppreviousdiagonalentry + S (pfc_value_division_total_resultquotientsteppreviousdiagonal) = S ((S (pfc_index_division_total_resultquotientsteppreviousdiagonal)) * pfc_terms_scale_division_total_resultquotientstepprevious)) /\ exists ff_q_pfp_division_total_resultquotientsteppreviousdiagonalentry. pfc_terms_code_division_total_resultquotientstepprevious = ff_q_pfp_division_total_resultquotientsteppreviousdiagonalentry * S ((S (pfc_index_division_total_resultquotientsteppreviousdiagonal)) * pfc_terms_scale_division_total_resultquotientstepprevious) + (pfc_value_division_total_resultquotientsteppreviousdiagonal))) /\ ((exists pfc_complement_division_total_resultquotientsteppreviousdiagonalterm pfc_left_division_total_resultquotientsteppreviousdiagonalterm pfc_right_division_total_resultquotientsteppreviousdiagonalterm. (((pfc_index_division_total_resultquotientsteppreviousdiagonal)+pfc_complement_division_total_resultquotientsteppreviousdiagonalterm=(pfd_index_division_total_resultquotient)) /\ ((((((exists pfa_gap_division_total_resultquotientsteppreviousdiagonaltermleftinside. pfa_gap_division_total_resultquotientsteppreviousdiagonaltermleftinside + S (pfc_index_division_total_resultquotientsteppreviousdiagonal) = (pfd_index_division_total_resultquotient)) /\ ((((exists ff_h_pfp_division_total_resultquotientsteppreviousdiagonaltermleftentry. ff_h_pfp_division_total_resultquotientsteppreviousdiagonaltermleftentry + S (pfc_left_division_total_resultquotientsteppreviousdiagonalterm) = S ((S (pfc_index_division_total_resultquotientsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_total_resultquotientsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_total_resultquotientsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_total_resultquotientsteppreviousdiagonal)) * qc) + (pfc_left_division_total_resultquotientsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_total_resultquotientsteppreviousdiagonaltermleftoutside. pfc_gap_division_total_resultquotientsteppreviousdiagonaltermleftoutside+(pfd_index_division_total_resultquotient)=(pfc_index_division_total_resultquotientsteppreviousdiagonal)) /\ (((pfc_left_division_total_resultquotientsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_total_resultquotientsteppreviousdiagonaltermrightinside. pfa_gap_division_total_resultquotientsteppreviousdiagonaltermrightinside + S (pfc_complement_division_total_resultquotientsteppreviousdiagonalterm) = (S (d))) /\ ((((exists ff_h_pfp_division_total_resultquotientsteppreviousdiagonaltermrightentry. ff_h_pfp_division_total_resultquotientsteppreviousdiagonaltermrightentry + S (pfc_right_division_total_resultquotientsteppreviousdiagonalterm) = S ((S (pfc_complement_division_total_resultquotientsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_total_resultquotientsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_total_resultquotientsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_total_resultquotientsteppreviousdiagonalterm)) * bc) + (pfc_right_division_total_resultquotientsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_total_resultquotientsteppreviousdiagonaltermrightoutside. pfc_gap_division_total_resultquotientsteppreviousdiagonaltermrightoutside+(S (d))=(pfc_complement_division_total_resultquotientsteppreviousdiagonalterm)) /\ (((pfc_right_division_total_resultquotientsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_total_resultquotientsteppreviousdiagonal)=pfc_left_division_total_resultquotientsteppreviousdiagonalterm*pfc_right_division_total_resultquotientsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_total_resultquotientstepprevioussum fs_v_pfc_division_total_resultquotientstepprevioussum. ((((exists fs_h_pfc_division_total_resultquotientstepprevioussum_body_start. fs_h_pfc_division_total_resultquotientstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_total_resultquotientstepprevioussum)) /\ exists fs_q_pfc_division_total_resultquotientstepprevioussum_body_start. fs_u_pfc_division_total_resultquotientstepprevioussum = fs_q_pfc_division_total_resultquotientstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_total_resultquotientstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_total_resultquotientstepprevioussum_body_terminal. fs_h_pfc_division_total_resultquotientstepprevioussum_body_terminal + S (pfc_natural_sum_division_total_resultquotientstepprevious) = S ((S (S (pfd_index_division_total_resultquotient))) * fs_v_pfc_division_total_resultquotientstepprevioussum)) /\ exists fs_q_pfc_division_total_resultquotientstepprevioussum_body_terminal. fs_u_pfc_division_total_resultquotientstepprevioussum = fs_q_pfc_division_total_resultquotientstepprevioussum_body_terminal * S ((S (S (pfd_index_division_total_resultquotient))) * fs_v_pfc_division_total_resultquotientstepprevioussum) + (pfc_natural_sum_division_total_resultquotientstepprevious))) /\ forall fs_i_pfc_division_total_resultquotientstepprevioussum_body_steps. (exists fs_lt_pfc_division_total_resultquotientstepprevioussum_body_steps_bound. fs_lt_pfc_division_total_resultquotientstepprevioussum_body_steps_bound + S fs_i_pfc_division_total_resultquotientstepprevioussum_body_steps = S (pfd_index_division_total_resultquotient)) -> exists fs_a_pfc_division_total_resultquotientstepprevioussum_body_steps fs_r_pfc_division_total_resultquotientstepprevioussum_body_steps fs_s_pfc_division_total_resultquotientstepprevioussum_body_steps. ((((exists fs_h_pfc_division_total_resultquotientstepprevioussum_body_steps_summand. fs_h_pfc_division_total_resultquotientstepprevioussum_body_steps_summand + S (fs_a_pfc_division_total_resultquotientstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_total_resultquotientstepprevioussum_body_steps)) * pfc_terms_scale_division_total_resultquotientstepprevious)) /\ exists fs_q_pfc_division_total_resultquotientstepprevioussum_body_steps_summand. pfc_terms_code_division_total_resultquotientstepprevious = fs_q_pfc_division_total_resultquotientstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_total_resultquotientstepprevioussum_body_steps)) * pfc_terms_scale_division_total_resultquotientstepprevious) + (fs_a_pfc_division_total_resultquotientstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_total_resultquotientstepprevioussum_body_steps_partial. fs_h_pfc_division_total_resultquotientstepprevioussum_body_steps_partial + S (fs_r_pfc_division_total_resultquotientstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_total_resultquotientstepprevioussum_body_steps)) * fs_v_pfc_division_total_resultquotientstepprevioussum)) /\ exists fs_q_pfc_division_total_resultquotientstepprevioussum_body_steps_partial. fs_u_pfc_division_total_resultquotientstepprevioussum = fs_q_pfc_division_total_resultquotientstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_total_resultquotientstepprevioussum_body_steps)) * fs_v_pfc_division_total_resultquotientstepprevioussum) + (fs_r_pfc_division_total_resultquotientstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_total_resultquotientstepprevioussum_body_steps_successor. fs_h_pfc_division_total_resultquotientstepprevioussum_body_steps_successor + S (fs_s_pfc_division_total_resultquotientstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_total_resultquotientstepprevioussum_body_steps)) * fs_v_pfc_division_total_resultquotientstepprevioussum)) /\ exists fs_q_pfc_division_total_resultquotientstepprevioussum_body_steps_successor. fs_u_pfc_division_total_resultquotientstepprevioussum = fs_q_pfc_division_total_resultquotientstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_total_resultquotientstepprevioussum_body_steps)) * fs_v_pfc_division_total_resultquotientstepprevioussum) + (fs_s_pfc_division_total_resultquotientstepprevioussum_body_steps))) /\ fs_s_pfc_division_total_resultquotientstepprevioussum_body_steps = fs_r_pfc_division_total_resultquotientstepprevioussum_body_steps + fs_a_pfc_division_total_resultquotientstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_total_resultquotientsteppreviousresiduebound. pfa_gap_division_total_resultquotientsteppreviousresiduebound + S (pfd_previous_division_total_resultquotientstep) = (p)) /\ ((exists pfa_offset_left_division_total_resultquotientsteppreviousresiduecongruence pfa_offset_right_division_total_resultquotientsteppreviousresiduecongruence. (pfc_natural_sum_division_total_resultquotientstepprevious) + (p) * pfa_offset_left_division_total_resultquotientsteppreviousresiduecongruence = (pfd_previous_division_total_resultquotientstep) + (p) * pfa_offset_right_division_total_resultquotientsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_total_resultquotientstepsubtractleft. pfa_gap_division_total_resultquotientstepsubtractleft + S (pfd_previous_division_total_resultquotientstep) = (p)) /\ (((exists pfa_gap_division_total_resultquotientstepsubtractright. pfa_gap_division_total_resultquotientstepsubtractright + S (pfd_difference_division_total_resultquotientstep) = (p)) /\ ((((exists pfa_gap_division_total_resultquotientstepsubtractresultbound. pfa_gap_division_total_resultquotientstepsubtractresultbound + S (pfd_input_division_total_resultquotientstep) = (p)) /\ ((exists pfa_offset_left_division_total_resultquotientstepsubtractresultcongruence pfa_offset_right_division_total_resultquotientstepsubtractresultcongruence. ((pfd_previous_division_total_resultquotientstep) + (pfd_difference_division_total_resultquotientstep)) + (p) * pfa_offset_left_division_total_resultquotientstepsubtractresultcongruence = (pfd_input_division_total_resultquotientstep) + (p) * pfa_offset_right_division_total_resultquotientstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_total_resultquotientstepmultiplyleft. pfa_gap_division_total_resultquotientstepmultiplyleft + S (pfd_inverse_division_total_result) = (p)) /\ (((exists pfa_gap_division_total_resultquotientstepmultiplyright. pfa_gap_division_total_resultquotientstepmultiplyright + S (pfd_difference_division_total_resultquotientstep) = (p)) /\ ((((exists pfa_gap_division_total_resultquotientstepmultiplyresultbound. pfa_gap_division_total_resultquotientstepmultiplyresultbound + S (pfd_value_division_total_resultquotient) = (p)) /\ ((exists pfa_offset_left_division_total_resultquotientstepmultiplyresultcongruence pfa_offset_right_division_total_resultquotientstepmultiplyresultcongruence. ((pfd_inverse_division_total_result) * (pfd_difference_division_total_resultquotientstep)) + (p) * pfa_offset_left_division_total_resultquotientstepmultiplyresultcongruence = (pfd_value_division_total_resultquotient) + (p) * pfa_offset_right_division_total_resultquotientstepmultiplyresultcongruence))))))))))))))))))) /\ (((forall pfc_index_division_total_resultproduct. (exists pfa_gap_division_total_resultproductbound. pfa_gap_division_total_resultproductbound + S (pfc_index_division_total_resultproduct) = (L)) -> exists pfc_value_division_total_resultproduct. ((((exists ff_h_pfp_division_total_resultproductentry. ff_h_pfp_division_total_resultproductentry + S (pfc_value_division_total_resultproduct) = S ((S (pfc_index_division_total_resultproduct)) * pfd_product_scale_division_total_result)) /\ exists ff_q_pfp_division_total_resultproductentry. pfd_product_code_division_total_result = ff_q_pfp_division_total_resultproductentry * S ((S (pfc_index_division_total_resultproduct)) * pfd_product_scale_division_total_result) + (pfc_value_division_total_resultproduct))) /\ ((exists pfc_terms_code_division_total_resultproductcoefficient pfc_terms_scale_division_total_resultproductcoefficient pfc_natural_sum_division_total_resultproductcoefficient. ((forall pfc_index_division_total_resultproductcoefficientdiagonal. (exists pfa_gap_division_total_resultproductcoefficientdiagonalbound. pfa_gap_division_total_resultproductcoefficientdiagonalbound + S (pfc_index_division_total_resultproductcoefficientdiagonal) = (S (pfc_index_division_total_resultproduct))) -> exists pfc_value_division_total_resultproductcoefficientdiagonal. ((((exists ff_h_pfp_division_total_resultproductcoefficientdiagonalentry. ff_h_pfp_division_total_resultproductcoefficientdiagonalentry + S (pfc_value_division_total_resultproductcoefficientdiagonal) = S ((S (pfc_index_division_total_resultproductcoefficientdiagonal)) * pfc_terms_scale_division_total_resultproductcoefficient)) /\ exists ff_q_pfp_division_total_resultproductcoefficientdiagonalentry. pfc_terms_code_division_total_resultproductcoefficient = ff_q_pfp_division_total_resultproductcoefficientdiagonalentry * S ((S (pfc_index_division_total_resultproductcoefficientdiagonal)) * pfc_terms_scale_division_total_resultproductcoefficient) + (pfc_value_division_total_resultproductcoefficientdiagonal))) /\ ((exists pfc_complement_division_total_resultproductcoefficientdiagonalterm pfc_left_division_total_resultproductcoefficientdiagonalterm pfc_right_division_total_resultproductcoefficientdiagonalterm. (((pfc_index_division_total_resultproductcoefficientdiagonal)+pfc_complement_division_total_resultproductcoefficientdiagonalterm=(pfc_index_division_total_resultproduct)) /\ ((((((exists pfa_gap_division_total_resultproductcoefficientdiagonaltermleftinside. pfa_gap_division_total_resultproductcoefficientdiagonaltermleftinside + S (pfc_index_division_total_resultproductcoefficientdiagonal) = (q)) /\ ((((exists ff_h_pfp_division_total_resultproductcoefficientdiagonaltermleftentry. ff_h_pfp_division_total_resultproductcoefficientdiagonaltermleftentry + S (pfc_left_division_total_resultproductcoefficientdiagonalterm) = S ((S (pfc_index_division_total_resultproductcoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_total_resultproductcoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_total_resultproductcoefficientdiagonaltermleftentry * S ((S (pfc_index_division_total_resultproductcoefficientdiagonal)) * qc) + (pfc_left_division_total_resultproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_total_resultproductcoefficientdiagonaltermleftoutside. pfc_gap_division_total_resultproductcoefficientdiagonaltermleftoutside+(q)=(pfc_index_division_total_resultproductcoefficientdiagonal)) /\ (((pfc_left_division_total_resultproductcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_total_resultproductcoefficientdiagonaltermrightinside. pfa_gap_division_total_resultproductcoefficientdiagonaltermrightinside + S (pfc_complement_division_total_resultproductcoefficientdiagonalterm) = (S (d))) /\ ((((exists ff_h_pfp_division_total_resultproductcoefficientdiagonaltermrightentry. ff_h_pfp_division_total_resultproductcoefficientdiagonaltermrightentry + S (pfc_right_division_total_resultproductcoefficientdiagonalterm) = S ((S (pfc_complement_division_total_resultproductcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_total_resultproductcoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_total_resultproductcoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_total_resultproductcoefficientdiagonalterm)) * bc) + (pfc_right_division_total_resultproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_total_resultproductcoefficientdiagonaltermrightoutside. pfc_gap_division_total_resultproductcoefficientdiagonaltermrightoutside+(S (d))=(pfc_complement_division_total_resultproductcoefficientdiagonalterm)) /\ (((pfc_right_division_total_resultproductcoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_total_resultproductcoefficientdiagonal)=pfc_left_division_total_resultproductcoefficientdiagonalterm*pfc_right_division_total_resultproductcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_total_resultproductcoefficientsum fs_v_pfc_division_total_resultproductcoefficientsum. ((((exists fs_h_pfc_division_total_resultproductcoefficientsum_body_start. fs_h_pfc_division_total_resultproductcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_total_resultproductcoefficientsum)) /\ exists fs_q_pfc_division_total_resultproductcoefficientsum_body_start. fs_u_pfc_division_total_resultproductcoefficientsum = fs_q_pfc_division_total_resultproductcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_total_resultproductcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_total_resultproductcoefficientsum_body_terminal. fs_h_pfc_division_total_resultproductcoefficientsum_body_terminal + S (pfc_natural_sum_division_total_resultproductcoefficient) = S ((S (S (pfc_index_division_total_resultproduct))) * fs_v_pfc_division_total_resultproductcoefficientsum)) /\ exists fs_q_pfc_division_total_resultproductcoefficientsum_body_terminal. fs_u_pfc_division_total_resultproductcoefficientsum = fs_q_pfc_division_total_resultproductcoefficientsum_body_terminal * S ((S (S (pfc_index_division_total_resultproduct))) * fs_v_pfc_division_total_resultproductcoefficientsum) + (pfc_natural_sum_division_total_resultproductcoefficient))) /\ forall fs_i_pfc_division_total_resultproductcoefficientsum_body_steps. (exists fs_lt_pfc_division_total_resultproductcoefficientsum_body_steps_bound. fs_lt_pfc_division_total_resultproductcoefficientsum_body_steps_bound + S fs_i_pfc_division_total_resultproductcoefficientsum_body_steps = S (pfc_index_division_total_resultproduct)) -> exists fs_a_pfc_division_total_resultproductcoefficientsum_body_steps fs_r_pfc_division_total_resultproductcoefficientsum_body_steps fs_s_pfc_division_total_resultproductcoefficientsum_body_steps. ((((exists fs_h_pfc_division_total_resultproductcoefficientsum_body_steps_summand. fs_h_pfc_division_total_resultproductcoefficientsum_body_steps_summand + S (fs_a_pfc_division_total_resultproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_total_resultproductcoefficientsum_body_steps)) * pfc_terms_scale_division_total_resultproductcoefficient)) /\ exists fs_q_pfc_division_total_resultproductcoefficientsum_body_steps_summand. pfc_terms_code_division_total_resultproductcoefficient = fs_q_pfc_division_total_resultproductcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_total_resultproductcoefficientsum_body_steps)) * pfc_terms_scale_division_total_resultproductcoefficient) + (fs_a_pfc_division_total_resultproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_total_resultproductcoefficientsum_body_steps_partial. fs_h_pfc_division_total_resultproductcoefficientsum_body_steps_partial + S (fs_r_pfc_division_total_resultproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_total_resultproductcoefficientsum_body_steps)) * fs_v_pfc_division_total_resultproductcoefficientsum)) /\ exists fs_q_pfc_division_total_resultproductcoefficientsum_body_steps_partial. fs_u_pfc_division_total_resultproductcoefficientsum = fs_q_pfc_division_total_resultproductcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_total_resultproductcoefficientsum_body_steps)) * fs_v_pfc_division_total_resultproductcoefficientsum) + (fs_r_pfc_division_total_resultproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_total_resultproductcoefficientsum_body_steps_successor. fs_h_pfc_division_total_resultproductcoefficientsum_body_steps_successor + S (fs_s_pfc_division_total_resultproductcoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_total_resultproductcoefficientsum_body_steps)) * fs_v_pfc_division_total_resultproductcoefficientsum)) /\ exists fs_q_pfc_division_total_resultproductcoefficientsum_body_steps_successor. fs_u_pfc_division_total_resultproductcoefficientsum = fs_q_pfc_division_total_resultproductcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_total_resultproductcoefficientsum_body_steps)) * fs_v_pfc_division_total_resultproductcoefficientsum) + (fs_s_pfc_division_total_resultproductcoefficientsum_body_steps))) /\ fs_s_pfc_division_total_resultproductcoefficientsum_body_steps = fs_r_pfc_division_total_resultproductcoefficientsum_body_steps + fs_a_pfc_division_total_resultproductcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_total_resultproductcoefficientresiduebound. pfa_gap_division_total_resultproductcoefficientresiduebound + S (pfc_value_division_total_resultproduct) = (p)) /\ ((exists pfa_offset_left_division_total_resultproductcoefficientresiduecongruence pfa_offset_right_division_total_resultproductcoefficientresiduecongruence. (pfc_natural_sum_division_total_resultproductcoefficient) + (p) * pfa_offset_left_division_total_resultproductcoefficientresiduecongruence = (pfc_value_division_total_resultproduct) + (p) * pfa_offset_right_division_total_resultproductcoefficientresiduecongruence)))))))))))) /\ (((forall pfs_index_division_total_resultdifference. (exists pfa_gap_division_total_resultdifferenceindex. pfa_gap_division_total_resultdifferenceindex + S (pfs_index_division_total_resultdifference) = (L)) -> exists pfs_left_division_total_resultdifference pfs_right_division_total_resultdifference pfs_result_division_total_resultdifference. ((((exists ff_h_pfp_division_total_resultdifferenceleft. ff_h_pfp_division_total_resultdifferenceleft + S (pfs_left_division_total_resultdifference) = S ((S (pfs_index_division_total_resultdifference)) * ac)) /\ exists ff_q_pfp_division_total_resultdifferenceleft. ab = ff_q_pfp_division_total_resultdifferenceleft * S ((S (pfs_index_division_total_resultdifference)) * ac) + (pfs_left_division_total_resultdifference))) /\ (((((exists ff_h_pfp_division_total_resultdifferenceright. ff_h_pfp_division_total_resultdifferenceright + S (pfs_right_division_total_resultdifference) = S ((S (pfs_index_division_total_resultdifference)) * pfd_product_scale_division_total_result)) /\ exists ff_q_pfp_division_total_resultdifferenceright. pfd_product_code_division_total_result = ff_q_pfp_division_total_resultdifferenceright * S ((S (pfs_index_division_total_resultdifference)) * pfd_product_scale_division_total_result) + (pfs_right_division_total_resultdifference))) /\ (((((exists ff_h_pfp_division_total_resultdifferenceresult. ff_h_pfp_division_total_resultdifferenceresult + S (pfs_result_division_total_resultdifference) = S ((S (pfs_index_division_total_resultdifference)) * pfd_residual_scale_division_total_result)) /\ exists ff_q_pfp_division_total_resultdifferenceresult. pfd_residual_code_division_total_result = ff_q_pfp_division_total_resultdifferenceresult * S ((S (pfs_index_division_total_resultdifference)) * pfd_residual_scale_division_total_result) + (pfs_result_division_total_resultdifference))) /\ ((((exists pfa_gap_division_total_resultdifferenceoperationleft. pfa_gap_division_total_resultdifferenceoperationleft + S (pfs_right_division_total_resultdifference) = (p)) /\ (((exists pfa_gap_division_total_resultdifferenceoperationright. pfa_gap_division_total_resultdifferenceoperationright + S (pfs_result_division_total_resultdifference) = (p)) /\ ((((exists pfa_gap_division_total_resultdifferenceoperationresultbound. pfa_gap_division_total_resultdifferenceoperationresultbound + S (pfs_left_division_total_resultdifference) = (p)) /\ ((exists pfa_offset_left_division_total_resultdifferenceoperationresultcongruence pfa_offset_right_division_total_resultdifferenceoperationresultcongruence. ((pfs_right_division_total_resultdifference) + (pfs_result_division_total_resultdifference)) + (p) * pfa_offset_left_division_total_resultdifferenceoperationresultcongruence = (pfs_left_division_total_resultdifference) + (p) * pfa_offset_right_division_total_resultdifferenceoperationresultcongruence)))))))))))))))) /\ (((((L)=(pfd_cut_division_total_result)+(R)) /\ (((forall fom_index_pfp_division_total_resulttriminput. (exists fom_gap_pfp_division_total_resulttriminput_index_bound. fom_gap_pfp_division_total_resulttriminput_index_bound + S (fom_index_pfp_division_total_resulttriminput) = L) -> exists fom_value_pfp_division_total_resulttriminput. ((((exists fom_beta_height_pfp_division_total_resulttriminput_entry. fom_beta_height_pfp_division_total_resulttriminput_entry + S (fom_value_pfp_division_total_resulttriminput) = S ((S (fom_index_pfp_division_total_resulttriminput)) * pfd_residual_scale_division_total_result)) /\ exists fom_beta_quotient_pfp_division_total_resulttriminput_entry. pfd_residual_code_division_total_result = fom_beta_quotient_pfp_division_total_resulttriminput_entry * S ((S (fom_index_pfp_division_total_resulttriminput)) * pfd_residual_scale_division_total_result) + (fom_value_pfp_division_total_resulttriminput))) /\ (exists fom_gap_pfp_division_total_resulttriminput_value_bound. fom_gap_pfp_division_total_resulttriminput_value_bound + S (fom_value_pfp_division_total_resulttriminput) = p))) /\ (((forall pfp_repeat_index_division_total_resulttrimremoved. (exists pfa_gap_division_total_resulttrimremovedindex. pfa_gap_division_total_resulttrimremovedindex + S (pfp_repeat_index_division_total_resulttrimremoved) = (pfd_cut_division_total_result)) -> (((exists ff_h_pfp_division_total_resulttrimremovedentry. ff_h_pfp_division_total_resulttrimremovedentry + S (0) = S ((S (pfp_repeat_index_division_total_resulttrimremoved)) * pfd_residual_scale_division_total_result)) /\ exists ff_q_pfp_division_total_resulttrimremovedentry. pfd_residual_code_division_total_result = ff_q_pfp_division_total_resulttrimremovedentry * S ((S (pfp_repeat_index_division_total_resulttrimremoved)) * pfd_residual_scale_division_total_result) + (0)))) /\ (((forall pftrim_index_division_total_resulttrimsuffix pftrim_value_division_total_resulttrimsuffix. (exists pfa_gap_division_total_resulttrimsuffixbound. pfa_gap_division_total_resulttrimsuffixbound + S (pftrim_index_division_total_resulttrimsuffix) = (R)) -> (((exists ff_h_pfp_division_total_resulttrimsuffixsource. ff_h_pfp_division_total_resulttrimsuffixsource + S (pftrim_value_division_total_resulttrimsuffix) = S ((S ((pfd_cut_division_total_result)+pftrim_index_division_total_resulttrimsuffix)) * pfd_residual_scale_division_total_result)) /\ exists ff_q_pfp_division_total_resulttrimsuffixsource. pfd_residual_code_division_total_result = ff_q_pfp_division_total_resulttrimsuffixsource * S ((S ((pfd_cut_division_total_result)+pftrim_index_division_total_resulttrimsuffix)) * pfd_residual_scale_division_total_result) + (pftrim_value_division_total_resulttrimsuffix))) -> (((exists ff_h_pfp_division_total_resulttrimsuffixoutput. ff_h_pfp_division_total_resulttrimsuffixoutput + S (pftrim_value_division_total_resulttrimsuffix) = S ((S (pftrim_index_division_total_resulttrimsuffix)) * rc)) /\ exists ff_q_pfp_division_total_resulttrimsuffixoutput. rb = ff_q_pfp_division_total_resulttrimsuffixoutput * S ((S (pftrim_index_division_total_resulttrimsuffix)) * rc) + (pftrim_value_division_total_resulttrimsuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_total_resulttrimnormal. ((((exists ff_h_pfp_division_total_resulttrimnormalentry. ff_h_pfp_division_total_resulttrimnormalentry + S (pftrim_leading_division_total_resulttrimnormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_total_resulttrimnormalentry. rb = ff_q_pfp_division_total_resulttrimnormalentry * S ((S (0)) * rc) + (pftrim_leading_division_total_resulttrimnormal))) /\ ((~(pftrim_leading_division_total_resulttrimnormal=0)))))))))))))))))))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro bb
  6. intro bc
  7. intro d
  8. intro hp
  9. intro ha
  10. intro hb
  11. have hquotient : exists b k q qb qc. (((((exists ff_h_pfp_division_total_quotient_datahead. ff_h_pfp_division_total_quotient_datahead + S (b) = S ((S (0)) * bc)) /\ exists ff_q_pfp_division_total_quotient_datahead. bb = ff_q_pfp_division_total_quotient_datahead * S ((S (0)) * bc) + (b))) /\ (((((~((b) = 0)) /\ ((((exists pfa_gap_division_total_quotient_datainversemultiplicationleft. pfa_gap_division_total_quotient_datainversemultiplicationleft + S (b) = (p)) /\ (((exists pfa_gap_division_total_quotient_datainversemultiplicationright. pfa_gap_division_total_quotient_datainversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_division_total_quotient_datainversemultiplicationresultbound. pfa_gap_division_total_quotient_datainversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_division_total_quotient_datainversemultiplicationresultcongruence pfa_offset_right_division_total_quotient_datainversemultiplicationresultcongruence. ((b) * (k)) + (p) * pfa_offset_left_division_total_quotient_datainversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_division_total_quotient_datainversemultiplicationresultcongruence)))))))))))) /\ (((((((q)=0) /\ ((exists pfc_gap_division_total_quotient_datalengthshort. pfc_gap_division_total_quotient_datalengthshort+(L)=(d))))) \/ (((~((q)=0)) /\ (((q)+(d)=(L)))))) /\ ((forall pfd_index_division_total_quotient_dataexecution. (exists pfa_gap_division_total_quotient_dataexecutionbound. pfa_gap_division_total_quotient_dataexecutionbound + S (pfd_index_division_total_quotient_dataexecution) = (q)) -> exists pfd_value_division_total_quotient_dataexecution. ((((exists ff_h_pfp_division_total_quotient_dataexecutionentry. ff_h_pfp_division_total_quotient_dataexecutionentry + S (pfd_value_division_total_quotient_dataexecution) = S ((S (pfd_index_division_total_quotient_dataexecution)) * qc)) /\ exists ff_q_pfp_division_total_quotient_dataexecutionentry. qb = ff_q_pfp_division_total_quotient_dataexecutionentry * S ((S (pfd_index_division_total_quotient_dataexecution)) * qc) + (pfd_value_division_total_quotient_dataexecution))) /\ ((exists pfd_input_division_total_quotient_dataexecutionstep pfd_previous_division_total_quotient_dataexecutionstep pfd_difference_division_total_quotient_dataexecutionstep. ((((exists ff_h_pfp_division_total_quotient_dataexecutionstepinput. ff_h_pfp_division_total_quotient_dataexecutionstepinput + S (pfd_input_division_total_quotient_dataexecutionstep) = S ((S (pfd_index_division_total_quotient_dataexecution)) * ac)) /\ exists ff_q_pfp_division_total_quotient_dataexecutionstepinput. ab = ff_q_pfp_division_total_quotient_dataexecutionstepinput * S ((S (pfd_index_division_total_quotient_dataexecution)) * ac) + (pfd_input_division_total_quotient_dataexecutionstep))) /\ (((exists pfc_terms_code_division_total_quotient_dataexecutionstepprevious pfc_terms_scale_division_total_quotient_dataexecutionstepprevious pfc_natural_sum_division_total_quotient_dataexecutionstepprevious. ((forall pfc_index_division_total_quotient_dataexecutionsteppreviousdiagonal. (exists pfa_gap_division_total_quotient_dataexecutionsteppreviousdiagonalbound. pfa_gap_division_total_quotient_dataexecutionsteppreviousdiagonalbound + S (pfc_index_division_total_quotient_dataexecutionsteppreviousdiagonal) = (S (pfd_index_division_total_quotient_dataexecution))) -> exists pfc_value_division_total_quotient_dataexecutionsteppreviousdiagonal. ((((exists ff_h_pfp_division_total_quotient_dataexecutionsteppreviousdiagonalentry. ff_h_pfp_division_total_quotient_dataexecutionsteppreviousdiagonalentry + S (pfc_value_division_total_quotient_dataexecutionsteppreviousdiagonal) = S ((S (pfc_index_division_total_quotient_dataexecutionsteppreviousdiagonal)) * pfc_terms_scale_division_total_quotient_dataexecutionstepprevious)) /\ exists ff_q_pfp_division_total_quotient_dataexecutionsteppreviousdiagonalentry. pfc_terms_code_division_total_quotient_dataexecutionstepprevious = ff_q_pfp_division_total_quotient_dataexecutionsteppreviousdiagonalentry * S ((S (pfc_index_division_total_quotient_dataexecutionsteppreviousdiagonal)) * pfc_terms_scale_division_total_quotient_dataexecutionstepprevious) + (pfc_value_division_total_quotient_dataexecutionsteppreviousdiagonal))) /\ ((exists pfc_complement_division_total_quotient_dataexecutionsteppreviousdiagonalterm pfc_left_division_total_quotient_dataexecutionsteppreviousdiagonalterm pfc_right_division_total_quotient_dataexecutionsteppreviousdiagonalterm. (((pfc_index_division_total_quotient_dataexecutionsteppreviousdiagonal)+pfc_complement_division_total_quotient_dataexecutionsteppreviousdiagonalterm=(pfd_index_division_total_quotient_dataexecution)) /\ ((((((exists pfa_gap_division_total_quotient_dataexecutionsteppreviousdiagonaltermleftinside. pfa_gap_division_total_quotient_dataexecutionsteppreviousdiagonaltermleftinside + S (pfc_index_division_total_quotient_dataexecutionsteppreviousdiagonal) = (pfd_index_division_total_quotient_dataexecution)) /\ ((((exists ff_h_pfp_division_total_quotient_dataexecutionsteppreviousdiagonaltermleftentry. ff_h_pfp_division_total_quotient_dataexecutionsteppreviousdiagonaltermleftentry + S (pfc_left_division_total_quotient_dataexecutionsteppreviousdiagonalterm) = S ((S (pfc_index_division_total_quotient_dataexecutionsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_total_quotient_dataexecutionsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_total_quotient_dataexecutionsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_total_quotient_dataexecutionsteppreviousdiagonal)) * qc) + (pfc_left_division_total_quotient_dataexecutionsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_total_quotient_dataexecutionsteppreviousdiagonaltermleftoutside. pfc_gap_division_total_quotient_dataexecutionsteppreviousdiagonaltermleftoutside+(pfd_index_division_total_quotient_dataexecution)=(pfc_index_division_total_quotient_dataexecutionsteppreviousdiagonal)) /\ (((pfc_left_division_total_quotient_dataexecutionsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_total_quotient_dataexecutionsteppreviousdiagonaltermrightinside. pfa_gap_division_total_quotient_dataexecutionsteppreviousdiagonaltermrightinside + S (pfc_complement_division_total_quotient_dataexecutionsteppreviousdiagonalterm) = (S (d))) /\ ((((exists ff_h_pfp_division_total_quotient_dataexecutionsteppreviousdiagonaltermrightentry. ff_h_pfp_division_total_quotient_dataexecutionsteppreviousdiagonaltermrightentry + S (pfc_right_division_total_quotient_dataexecutionsteppreviousdiagonalterm) = S ((S (pfc_complement_division_total_quotient_dataexecutionsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_total_quotient_dataexecutionsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_total_quotient_dataexecutionsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_total_quotient_dataexecutionsteppreviousdiagonalterm)) * bc) + (pfc_right_division_total_quotient_dataexecutionsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_total_quotient_dataexecutionsteppreviousdiagonaltermrightoutside. pfc_gap_division_total_quotient_dataexecutionsteppreviousdiagonaltermrightoutside+(S (d))=(pfc_complement_division_total_quotient_dataexecutionsteppreviousdiagonalterm)) /\ (((pfc_right_division_total_quotient_dataexecutionsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_total_quotient_dataexecutionsteppreviousdiagonal)=pfc_left_division_total_quotient_dataexecutionsteppreviousdiagonalterm*pfc_right_division_total_quotient_dataexecutionsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_total_quotient_dataexecutionstepprevioussum fs_v_pfc_division_total_quotient_dataexecutionstepprevioussum. ((((exists fs_h_pfc_division_total_quotient_dataexecutionstepprevioussum_body_start. fs_h_pfc_division_total_quotient_dataexecutionstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_total_quotient_dataexecutionstepprevioussum)) /\ exists fs_q_pfc_division_total_quotient_dataexecutionstepprevioussum_body_start. fs_u_pfc_division_total_quotient_dataexecutionstepprevioussum = fs_q_pfc_division_total_quotient_dataexecutionstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_total_quotient_dataexecutionstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_total_quotient_dataexecutionstepprevioussum_body_terminal. fs_h_pfc_division_total_quotient_dataexecutionstepprevioussum_body_terminal + S (pfc_natural_sum_division_total_quotient_dataexecutionstepprevious) = S ((S (S (pfd_index_division_total_quotient_dataexecution))) * fs_v_pfc_division_total_quotient_dataexecutionstepprevioussum)) /\ exists fs_q_pfc_division_total_quotient_dataexecutionstepprevioussum_body_terminal. fs_u_pfc_division_total_quotient_dataexecutionstepprevioussum = fs_q_pfc_division_total_quotient_dataexecutionstepprevioussum_body_terminal * S ((S (S (pfd_index_division_total_quotient_dataexecution))) * fs_v_pfc_division_total_quotient_dataexecutionstepprevioussum) + (pfc_natural_sum_division_total_quotient_dataexecutionstepprevious))) /\ forall fs_i_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps. (exists fs_lt_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps_bound. fs_lt_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps_bound + S fs_i_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps = S (pfd_index_division_total_quotient_dataexecution)) -> exists fs_a_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps fs_r_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps fs_s_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps. ((((exists fs_h_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps_summand. fs_h_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps_summand + S (fs_a_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps)) * pfc_terms_scale_division_total_quotient_dataexecutionstepprevious)) /\ exists fs_q_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps_summand. pfc_terms_code_division_total_quotient_dataexecutionstepprevious = fs_q_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps)) * pfc_terms_scale_division_total_quotient_dataexecutionstepprevious) + (fs_a_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps_partial. fs_h_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps_partial + S (fs_r_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps)) * fs_v_pfc_division_total_quotient_dataexecutionstepprevioussum)) /\ exists fs_q_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps_partial. fs_u_pfc_division_total_quotient_dataexecutionstepprevioussum = fs_q_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps)) * fs_v_pfc_division_total_quotient_dataexecutionstepprevioussum) + (fs_r_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps_successor. fs_h_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps_successor + S (fs_s_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps)) * fs_v_pfc_division_total_quotient_dataexecutionstepprevioussum)) /\ exists fs_q_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps_successor. fs_u_pfc_division_total_quotient_dataexecutionstepprevioussum = fs_q_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps)) * fs_v_pfc_division_total_quotient_dataexecutionstepprevioussum) + (fs_s_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps))) /\ fs_s_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps = fs_r_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps + fs_a_pfc_division_total_quotient_dataexecutionstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_total_quotient_dataexecutionsteppreviousresiduebound. pfa_gap_division_total_quotient_dataexecutionsteppreviousresiduebound + S (pfd_previous_division_total_quotient_dataexecutionstep) = (p)) /\ ((exists pfa_offset_left_division_total_quotient_dataexecutionsteppreviousresiduecongruence pfa_offset_right_division_total_quotient_dataexecutionsteppreviousresiduecongruence. (pfc_natural_sum_division_total_quotient_dataexecutionstepprevious) + (p) * pfa_offset_left_division_total_quotient_dataexecutionsteppreviousresiduecongruence = (pfd_previous_division_total_quotient_dataexecutionstep) + (p) * pfa_offset_right_division_total_quotient_dataexecutionsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_total_quotient_dataexecutionstepsubtractleft. pfa_gap_division_total_quotient_dataexecutionstepsubtractleft + S (pfd_previous_division_total_quotient_dataexecutionstep) = (p)) /\ (((exists pfa_gap_division_total_quotient_dataexecutionstepsubtractright. pfa_gap_division_total_quotient_dataexecutionstepsubtractright + S (pfd_difference_division_total_quotient_dataexecutionstep) = (p)) /\ ((((exists pfa_gap_division_total_quotient_dataexecutionstepsubtractresultbound. pfa_gap_division_total_quotient_dataexecutionstepsubtractresultbound + S (pfd_input_division_total_quotient_dataexecutionstep) = (p)) /\ ((exists pfa_offset_left_division_total_quotient_dataexecutionstepsubtractresultcongruence pfa_offset_right_division_total_quotient_dataexecutionstepsubtractresultcongruence. ((pfd_previous_division_total_quotient_dataexecutionstep) + (pfd_difference_division_total_quotient_dataexecutionstep)) + (p) * pfa_offset_left_division_total_quotient_dataexecutionstepsubtractresultcongruence = (pfd_input_division_total_quotient_dataexecutionstep) + (p) * pfa_offset_right_division_total_quotient_dataexecutionstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_total_quotient_dataexecutionstepmultiplyleft. pfa_gap_division_total_quotient_dataexecutionstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_total_quotient_dataexecutionstepmultiplyright. pfa_gap_division_total_quotient_dataexecutionstepmultiplyright + S (pfd_difference_division_total_quotient_dataexecutionstep) = (p)) /\ ((((exists pfa_gap_division_total_quotient_dataexecutionstepmultiplyresultbound. pfa_gap_division_total_quotient_dataexecutionstepmultiplyresultbound + S (pfd_value_division_total_quotient_dataexecution) = (p)) /\ ((exists pfa_offset_left_division_total_quotient_dataexecutionstepmultiplyresultcongruence pfa_offset_right_division_total_quotient_dataexecutionstepmultiplyresultcongruence. ((k) * (pfd_difference_division_total_quotient_dataexecutionstep)) + (p) * pfa_offset_left_division_total_quotient_dataexecutionstepmultiplyresultcongruence = (pfd_value_division_total_quotient_dataexecution) + (p) * pfa_offset_right_division_total_quotient_dataexecutionstepmultiplyresultcongruence))))))))))))))))))))))))))
  12. specialize prime_field_polynomial_division_quotient_data_exists (p)
  13. specialize prime_field_polynomial_division_quotient_data_exists (ab)
  14. specialize prime_field_polynomial_division_quotient_data_exists (ac)
  15. specialize prime_field_polynomial_division_quotient_data_exists (L)
  16. specialize prime_field_polynomial_division_quotient_data_exists (bb)
  17. specialize prime_field_polynomial_division_quotient_data_exists (bc)
  18. specialize prime_field_polynomial_division_quotient_data_exists (d)
  19. apply prime_field_polynomial_division_quotient_data_exists
  20. exact hp
  21. exact ha
  22. exact hb
  23. cases hquotient
  24. cases hquotient_witness
  25. cases hquotient_witness_witness
  26. cases hquotient_witness_witness_witness
  27. cases hquotient_witness_witness_witness_witness
  28. cases hquotient_witness_witness_witness_witness_witness
  29. cases hquotient_witness_witness_witness_witness_witness_right
  30. cases hquotient_witness_witness_witness_witness_witness_right_right
  31. have hresidual : exists pb pc ub uc t rb rc R. (((forall pfc_index_division_total_residual_dataproduct. (exists pfa_gap_division_total_residual_dataproductbound. pfa_gap_division_total_residual_dataproductbound + S (pfc_index_division_total_residual_dataproduct) = (L)) -> exists pfc_value_division_total_residual_dataproduct. ((((exists ff_h_pfp_division_total_residual_dataproductentry. ff_h_pfp_division_total_residual_dataproductentry + S (pfc_value_division_total_residual_dataproduct) = S ((S (pfc_index_division_total_residual_dataproduct)) * pc)) /\ exists ff_q_pfp_division_total_residual_dataproductentry. pb = ff_q_pfp_division_total_residual_dataproductentry * S ((S (pfc_index_division_total_residual_dataproduct)) * pc) + (pfc_value_division_total_residual_dataproduct))) /\ ((exists pfc_terms_code_division_total_residual_dataproductcoefficient pfc_terms_scale_division_total_residual_dataproductcoefficient pfc_natural_sum_division_total_residual_dataproductcoefficient. ((forall pfc_index_division_total_residual_dataproductcoefficientdiagonal. (exists pfa_gap_division_total_residual_dataproductcoefficientdiagonalbound. pfa_gap_division_total_residual_dataproductcoefficientdiagonalbound + S (pfc_index_division_total_residual_dataproductcoefficientdiagonal) = (S (pfc_index_division_total_residual_dataproduct))) -> exists pfc_value_division_total_residual_dataproductcoefficientdiagonal. ((((exists ff_h_pfp_division_total_residual_dataproductcoefficientdiagonalentry. ff_h_pfp_division_total_residual_dataproductcoefficientdiagonalentry + S (pfc_value_division_total_residual_dataproductcoefficientdiagonal) = S ((S (pfc_index_division_total_residual_dataproductcoefficientdiagonal)) * pfc_terms_scale_division_total_residual_dataproductcoefficient)) /\ exists ff_q_pfp_division_total_residual_dataproductcoefficientdiagonalentry. pfc_terms_code_division_total_residual_dataproductcoefficient = ff_q_pfp_division_total_residual_dataproductcoefficientdiagonalentry * S ((S (pfc_index_division_total_residual_dataproductcoefficientdiagonal)) * pfc_terms_scale_division_total_residual_dataproductcoefficient) + (pfc_value_division_total_residual_dataproductcoefficientdiagonal))) /\ ((exists pfc_complement_division_total_residual_dataproductcoefficientdiagonalterm pfc_left_division_total_residual_dataproductcoefficientdiagonalterm pfc_right_division_total_residual_dataproductcoefficientdiagonalterm. (((pfc_index_division_total_residual_dataproductcoefficientdiagonal)+pfc_complement_division_total_residual_dataproductcoefficientdiagonalterm=(pfc_index_division_total_residual_dataproduct)) /\ ((((((exists pfa_gap_division_total_residual_dataproductcoefficientdiagonaltermleftinside. pfa_gap_division_total_residual_dataproductcoefficientdiagonaltermleftinside + S (pfc_index_division_total_residual_dataproductcoefficientdiagonal) = (x2)) /\ ((((exists ff_h_pfp_division_total_residual_dataproductcoefficientdiagonaltermleftentry. ff_h_pfp_division_total_residual_dataproductcoefficientdiagonaltermleftentry + S (pfc_left_division_total_residual_dataproductcoefficientdiagonalterm) = S ((S (pfc_index_division_total_residual_dataproductcoefficientdiagonal)) * x4)) /\ exists ff_q_pfp_division_total_residual_dataproductcoefficientdiagonaltermleftentry. x3 = ff_q_pfp_division_total_residual_dataproductcoefficientdiagonaltermleftentry * S ((S (pfc_index_division_total_residual_dataproductcoefficientdiagonal)) * x4) + (pfc_left_division_total_residual_dataproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_total_residual_dataproductcoefficientdiagonaltermleftoutside. pfc_gap_division_total_residual_dataproductcoefficientdiagonaltermleftoutside+(x2)=(pfc_index_division_total_residual_dataproductcoefficientdiagonal)) /\ (((pfc_left_division_total_residual_dataproductcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_total_residual_dataproductcoefficientdiagonaltermrightinside. pfa_gap_division_total_residual_dataproductcoefficientdiagonaltermrightinside + S (pfc_complement_division_total_residual_dataproductcoefficientdiagonalterm) = (S (d))) /\ ((((exists ff_h_pfp_division_total_residual_dataproductcoefficientdiagonaltermrightentry. ff_h_pfp_division_total_residual_dataproductcoefficientdiagonaltermrightentry + S (pfc_right_division_total_residual_dataproductcoefficientdiagonalterm) = S ((S (pfc_complement_division_total_residual_dataproductcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_total_residual_dataproductcoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_total_residual_dataproductcoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_total_residual_dataproductcoefficientdiagonalterm)) * bc) + (pfc_right_division_total_residual_dataproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_total_residual_dataproductcoefficientdiagonaltermrightoutside. pfc_gap_division_total_residual_dataproductcoefficientdiagonaltermrightoutside+(S (d))=(pfc_complement_division_total_residual_dataproductcoefficientdiagonalterm)) /\ (((pfc_right_division_total_residual_dataproductcoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_total_residual_dataproductcoefficientdiagonal)=pfc_left_division_total_residual_dataproductcoefficientdiagonalterm*pfc_right_division_total_residual_dataproductcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_total_residual_dataproductcoefficientsum fs_v_pfc_division_total_residual_dataproductcoefficientsum. ((((exists fs_h_pfc_division_total_residual_dataproductcoefficientsum_body_start. fs_h_pfc_division_total_residual_dataproductcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_total_residual_dataproductcoefficientsum)) /\ exists fs_q_pfc_division_total_residual_dataproductcoefficientsum_body_start. fs_u_pfc_division_total_residual_dataproductcoefficientsum = fs_q_pfc_division_total_residual_dataproductcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_total_residual_dataproductcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_total_residual_dataproductcoefficientsum_body_terminal. fs_h_pfc_division_total_residual_dataproductcoefficientsum_body_terminal + S (pfc_natural_sum_division_total_residual_dataproductcoefficient) = S ((S (S (pfc_index_division_total_residual_dataproduct))) * fs_v_pfc_division_total_residual_dataproductcoefficientsum)) /\ exists fs_q_pfc_division_total_residual_dataproductcoefficientsum_body_terminal. fs_u_pfc_division_total_residual_dataproductcoefficientsum = fs_q_pfc_division_total_residual_dataproductcoefficientsum_body_terminal * S ((S (S (pfc_index_division_total_residual_dataproduct))) * fs_v_pfc_division_total_residual_dataproductcoefficientsum) + (pfc_natural_sum_division_total_residual_dataproductcoefficient))) /\ forall fs_i_pfc_division_total_residual_dataproductcoefficientsum_body_steps. (exists fs_lt_pfc_division_total_residual_dataproductcoefficientsum_body_steps_bound. fs_lt_pfc_division_total_residual_dataproductcoefficientsum_body_steps_bound + S fs_i_pfc_division_total_residual_dataproductcoefficientsum_body_steps = S (pfc_index_division_total_residual_dataproduct)) -> exists fs_a_pfc_division_total_residual_dataproductcoefficientsum_body_steps fs_r_pfc_division_total_residual_dataproductcoefficientsum_body_steps fs_s_pfc_division_total_residual_dataproductcoefficientsum_body_steps. ((((exists fs_h_pfc_division_total_residual_dataproductcoefficientsum_body_steps_summand. fs_h_pfc_division_total_residual_dataproductcoefficientsum_body_steps_summand + S (fs_a_pfc_division_total_residual_dataproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_total_residual_dataproductcoefficientsum_body_steps)) * pfc_terms_scale_division_total_residual_dataproductcoefficient)) /\ exists fs_q_pfc_division_total_residual_dataproductcoefficientsum_body_steps_summand. pfc_terms_code_division_total_residual_dataproductcoefficient = fs_q_pfc_division_total_residual_dataproductcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_total_residual_dataproductcoefficientsum_body_steps)) * pfc_terms_scale_division_total_residual_dataproductcoefficient) + (fs_a_pfc_division_total_residual_dataproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_total_residual_dataproductcoefficientsum_body_steps_partial. fs_h_pfc_division_total_residual_dataproductcoefficientsum_body_steps_partial + S (fs_r_pfc_division_total_residual_dataproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_total_residual_dataproductcoefficientsum_body_steps)) * fs_v_pfc_division_total_residual_dataproductcoefficientsum)) /\ exists fs_q_pfc_division_total_residual_dataproductcoefficientsum_body_steps_partial. fs_u_pfc_division_total_residual_dataproductcoefficientsum = fs_q_pfc_division_total_residual_dataproductcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_total_residual_dataproductcoefficientsum_body_steps)) * fs_v_pfc_division_total_residual_dataproductcoefficientsum) + (fs_r_pfc_division_total_residual_dataproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_total_residual_dataproductcoefficientsum_body_steps_successor. fs_h_pfc_division_total_residual_dataproductcoefficientsum_body_steps_successor + S (fs_s_pfc_division_total_residual_dataproductcoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_total_residual_dataproductcoefficientsum_body_steps)) * fs_v_pfc_division_total_residual_dataproductcoefficientsum)) /\ exists fs_q_pfc_division_total_residual_dataproductcoefficientsum_body_steps_successor. fs_u_pfc_division_total_residual_dataproductcoefficientsum = fs_q_pfc_division_total_residual_dataproductcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_total_residual_dataproductcoefficientsum_body_steps)) * fs_v_pfc_division_total_residual_dataproductcoefficientsum) + (fs_s_pfc_division_total_residual_dataproductcoefficientsum_body_steps))) /\ fs_s_pfc_division_total_residual_dataproductcoefficientsum_body_steps = fs_r_pfc_division_total_residual_dataproductcoefficientsum_body_steps + fs_a_pfc_division_total_residual_dataproductcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_total_residual_dataproductcoefficientresiduebound. pfa_gap_division_total_residual_dataproductcoefficientresiduebound + S (pfc_value_division_total_residual_dataproduct) = (p)) /\ ((exists pfa_offset_left_division_total_residual_dataproductcoefficientresiduecongruence pfa_offset_right_division_total_residual_dataproductcoefficientresiduecongruence. (pfc_natural_sum_division_total_residual_dataproductcoefficient) + (p) * pfa_offset_left_division_total_residual_dataproductcoefficientresiduecongruence = (pfc_value_division_total_residual_dataproduct) + (p) * pfa_offset_right_division_total_residual_dataproductcoefficientresiduecongruence)))))))))))) /\ (((forall pfs_index_division_total_residual_datadifference. (exists pfa_gap_division_total_residual_datadifferenceindex. pfa_gap_division_total_residual_datadifferenceindex + S (pfs_index_division_total_residual_datadifference) = (L)) -> exists pfs_left_division_total_residual_datadifference pfs_right_division_total_residual_datadifference pfs_result_division_total_residual_datadifference. ((((exists ff_h_pfp_division_total_residual_datadifferenceleft. ff_h_pfp_division_total_residual_datadifferenceleft + S (pfs_left_division_total_residual_datadifference) = S ((S (pfs_index_division_total_residual_datadifference)) * ac)) /\ exists ff_q_pfp_division_total_residual_datadifferenceleft. ab = ff_q_pfp_division_total_residual_datadifferenceleft * S ((S (pfs_index_division_total_residual_datadifference)) * ac) + (pfs_left_division_total_residual_datadifference))) /\ (((((exists ff_h_pfp_division_total_residual_datadifferenceright. ff_h_pfp_division_total_residual_datadifferenceright + S (pfs_right_division_total_residual_datadifference) = S ((S (pfs_index_division_total_residual_datadifference)) * pc)) /\ exists ff_q_pfp_division_total_residual_datadifferenceright. pb = ff_q_pfp_division_total_residual_datadifferenceright * S ((S (pfs_index_division_total_residual_datadifference)) * pc) + (pfs_right_division_total_residual_datadifference))) /\ (((((exists ff_h_pfp_division_total_residual_datadifferenceresult. ff_h_pfp_division_total_residual_datadifferenceresult + S (pfs_result_division_total_residual_datadifference) = S ((S (pfs_index_division_total_residual_datadifference)) * uc)) /\ exists ff_q_pfp_division_total_residual_datadifferenceresult. ub = ff_q_pfp_division_total_residual_datadifferenceresult * S ((S (pfs_index_division_total_residual_datadifference)) * uc) + (pfs_result_division_total_residual_datadifference))) /\ ((((exists pfa_gap_division_total_residual_datadifferenceoperationleft. pfa_gap_division_total_residual_datadifferenceoperationleft + S (pfs_right_division_total_residual_datadifference) = (p)) /\ (((exists pfa_gap_division_total_residual_datadifferenceoperationright. pfa_gap_division_total_residual_datadifferenceoperationright + S (pfs_result_division_total_residual_datadifference) = (p)) /\ ((((exists pfa_gap_division_total_residual_datadifferenceoperationresultbound. pfa_gap_division_total_residual_datadifferenceoperationresultbound + S (pfs_left_division_total_residual_datadifference) = (p)) /\ ((exists pfa_offset_left_division_total_residual_datadifferenceoperationresultcongruence pfa_offset_right_division_total_residual_datadifferenceoperationresultcongruence. ((pfs_right_division_total_residual_datadifference) + (pfs_result_division_total_residual_datadifference)) + (p) * pfa_offset_left_division_total_residual_datadifferenceoperationresultcongruence = (pfs_left_division_total_residual_datadifference) + (p) * pfa_offset_right_division_total_residual_datadifferenceoperationresultcongruence)))))))))))))))) /\ (((((L)=(t)+(R)) /\ (((forall fom_index_pfp_division_total_residual_datatriminput. (exists fom_gap_pfp_division_total_residual_datatriminput_index_bound. fom_gap_pfp_division_total_residual_datatriminput_index_bound + S (fom_index_pfp_division_total_residual_datatriminput) = L) -> exists fom_value_pfp_division_total_residual_datatriminput. ((((exists fom_beta_height_pfp_division_total_residual_datatriminput_entry. fom_beta_height_pfp_division_total_residual_datatriminput_entry + S (fom_value_pfp_division_total_residual_datatriminput) = S ((S (fom_index_pfp_division_total_residual_datatriminput)) * uc)) /\ exists fom_beta_quotient_pfp_division_total_residual_datatriminput_entry. ub = fom_beta_quotient_pfp_division_total_residual_datatriminput_entry * S ((S (fom_index_pfp_division_total_residual_datatriminput)) * uc) + (fom_value_pfp_division_total_residual_datatriminput))) /\ (exists fom_gap_pfp_division_total_residual_datatriminput_value_bound. fom_gap_pfp_division_total_residual_datatriminput_value_bound + S (fom_value_pfp_division_total_residual_datatriminput) = p))) /\ (((forall pfp_repeat_index_division_total_residual_datatrimremoved. (exists pfa_gap_division_total_residual_datatrimremovedindex. pfa_gap_division_total_residual_datatrimremovedindex + S (pfp_repeat_index_division_total_residual_datatrimremoved) = (t)) -> (((exists ff_h_pfp_division_total_residual_datatrimremovedentry. ff_h_pfp_division_total_residual_datatrimremovedentry + S (0) = S ((S (pfp_repeat_index_division_total_residual_datatrimremoved)) * uc)) /\ exists ff_q_pfp_division_total_residual_datatrimremovedentry. ub = ff_q_pfp_division_total_residual_datatrimremovedentry * S ((S (pfp_repeat_index_division_total_residual_datatrimremoved)) * uc) + (0)))) /\ (((forall pftrim_index_division_total_residual_datatrimsuffix pftrim_value_division_total_residual_datatrimsuffix. (exists pfa_gap_division_total_residual_datatrimsuffixbound. pfa_gap_division_total_residual_datatrimsuffixbound + S (pftrim_index_division_total_residual_datatrimsuffix) = (R)) -> (((exists ff_h_pfp_division_total_residual_datatrimsuffixsource. ff_h_pfp_division_total_residual_datatrimsuffixsource + S (pftrim_value_division_total_residual_datatrimsuffix) = S ((S ((t)+pftrim_index_division_total_residual_datatrimsuffix)) * uc)) /\ exists ff_q_pfp_division_total_residual_datatrimsuffixsource. ub = ff_q_pfp_division_total_residual_datatrimsuffixsource * S ((S ((t)+pftrim_index_division_total_residual_datatrimsuffix)) * uc) + (pftrim_value_division_total_residual_datatrimsuffix))) -> (((exists ff_h_pfp_division_total_residual_datatrimsuffixoutput. ff_h_pfp_division_total_residual_datatrimsuffixoutput + S (pftrim_value_division_total_residual_datatrimsuffix) = S ((S (pftrim_index_division_total_residual_datatrimsuffix)) * rc)) /\ exists ff_q_pfp_division_total_residual_datatrimsuffixoutput. rb = ff_q_pfp_division_total_residual_datatrimsuffixoutput * S ((S (pftrim_index_division_total_residual_datatrimsuffix)) * rc) + (pftrim_value_division_total_residual_datatrimsuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_total_residual_datatrimnormal. ((((exists ff_h_pfp_division_total_residual_datatrimnormalentry. ff_h_pfp_division_total_residual_datatrimnormalentry + S (pftrim_leading_division_total_residual_datatrimnormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_total_residual_datatrimnormalentry. rb = ff_q_pfp_division_total_residual_datatrimnormalentry * S ((S (0)) * rc) + (pftrim_leading_division_total_residual_datatrimnormal))) /\ ((~(pftrim_leading_division_total_residual_datatrimnormal=0))))))))))))))))))))
  32. specialize prime_field_polynomial_division_residual_data_exists (p)
  33. specialize prime_field_polynomial_division_residual_data_exists (ab)
  34. specialize prime_field_polynomial_division_residual_data_exists (ac)
  35. specialize prime_field_polynomial_division_residual_data_exists (L)
  36. specialize prime_field_polynomial_division_residual_data_exists (bb)
  37. specialize prime_field_polynomial_division_residual_data_exists (bc)
  38. specialize prime_field_polynomial_division_residual_data_exists (d)
  39. specialize prime_field_polynomial_division_residual_data_exists (x3)
  40. specialize prime_field_polynomial_division_residual_data_exists (x4)
  41. specialize prime_field_polynomial_division_residual_data_exists (x2)
  42. apply prime_field_polynomial_division_residual_data_exists
  43. exact hp
  44. exact ha
  45. cases hresidual
  46. cases hresidual_witness
  47. cases hresidual_witness_witness
  48. cases hresidual_witness_witness_witness
  49. cases hresidual_witness_witness_witness_witness
  50. cases hresidual_witness_witness_witness_witness_witness
  51. cases hresidual_witness_witness_witness_witness_witness_witness
  52. cases hresidual_witness_witness_witness_witness_witness_witness_witness
  53. cases hresidual_witness_witness_witness_witness_witness_witness_witness_witness
  54. cases hresidual_witness_witness_witness_witness_witness_witness_witness_witness_right
  55. cases hb
  56. cases hb_right
  57. exists x3
  58. exists x4
  59. exists x2
  60. exists x10
  61. exists x11
  62. exists x12
  63. split
  64. exact ha
  65. split
  66. exact hb_right_left
  67. split
  68. exact hquotient_witness_witness_witness_witness_witness_right_right_left
  69. exists x
  70. exists x1
  71. exists x5
  72. exists x6
  73. exists x7
  74. exists x8
  75. exists x9
  76. split
  77. exact hquotient_witness_witness_witness_witness_witness_left
  78. split
  79. exact hquotient_witness_witness_witness_witness_witness_right_left
  80. split
  81. exact hquotient_witness_witness_witness_witness_witness_right_right_right
  82. split
  83. exact hresidual_witness_witness_witness_witness_witness_witness_witness_witness_left
  84. split
  85. exact hresidual_witness_witness_witness_witness_witness_witness_witness_witness_right_left
  86. exact hresidual_witness_witness_witness_witness_witness_witness_witness_witness_right_right
polynomial_product_length_positive_inputs · unchanged support, not a new admission
forall d e N. (((((S d)=0 \/ (S e)=0) /\ (((N)=0)))) \/ (((~((S d)=0)) /\ (((~((S e)=0)) /\ (((S d)+(S e)=S (N)))))))) -> N=S (d+e)
  1. intro d
  2. intro e
  3. intro N
  4. intro h
  5. specialize polynomial_product_length_functional (S d)
  6. specialize polynomial_product_length_functional (S e)
  7. specialize polynomial_product_length_functional (N)
  8. specialize polynomial_product_length_functional (S (d+e))
  9. apply polynomial_product_length_functional
  10. exact h
  11. right
  12. split
  13. intro hz
  14. specialize succ_ne_zero (d)
  15. apply succ_ne_zero
  16. exact hz
  17. split
  18. intro hz
  19. specialize succ_ne_zero (e)
  20. apply succ_ne_zero
  21. exact hz
  22. simp [add_succ_left]
polynomial_diagonal_term_leading · unchanged support, not a new admission
forall ab ac l bb bc m a b t. (((exists ff_h_pfp_term_first_a. ff_h_pfp_term_first_a + S (a) = S ((S (0)) * ac)) /\ exists ff_q_pfp_term_first_a. ab = ff_q_pfp_term_first_a * S ((S (0)) * ac) + (a))) -> (((exists ff_h_pfp_term_first_b. ff_h_pfp_term_first_b + S (b) = S ((S (0)) * bc)) /\ exists ff_q_pfp_term_first_b. bb = ff_q_pfp_term_first_b * S ((S (0)) * bc) + (b))) -> (exists pfc_complement_term_first_source pfc_left_term_first_source pfc_right_term_first_source. (((0)+pfc_complement_term_first_source=(0)) /\ ((((((exists pfa_gap_term_first_sourceleftinside. pfa_gap_term_first_sourceleftinside + S (0) = (S l)) /\ ((((exists ff_h_pfp_term_first_sourceleftentry. ff_h_pfp_term_first_sourceleftentry + S (pfc_left_term_first_source) = S ((S (0)) * ac)) /\ exists ff_q_pfp_term_first_sourceleftentry. ab = ff_q_pfp_term_first_sourceleftentry * S ((S (0)) * ac) + (pfc_left_term_first_source)))))) \/ (((exists pfc_gap_term_first_sourceleftoutside. pfc_gap_term_first_sourceleftoutside+(S l)=(0)) /\ (((pfc_left_term_first_source)=0))))) /\ ((((((exists pfa_gap_term_first_sourcerightinside. pfa_gap_term_first_sourcerightinside + S (pfc_complement_term_first_source) = (S m)) /\ ((((exists ff_h_pfp_term_first_sourcerightentry. ff_h_pfp_term_first_sourcerightentry + S (pfc_right_term_first_source) = S ((S (pfc_complement_term_first_source)) * bc)) /\ exists ff_q_pfp_term_first_sourcerightentry. bb = ff_q_pfp_term_first_sourcerightentry * S ((S (pfc_complement_term_first_source)) * bc) + (pfc_right_term_first_source)))))) \/ (((exists pfc_gap_term_first_sourcerightoutside. pfc_gap_term_first_sourcerightoutside+(S m)=(pfc_complement_term_first_source)) /\ (((pfc_right_term_first_source)=0))))) /\ (((t)=pfc_left_term_first_source*pfc_right_term_first_source)))))))) -> t=a*b
  1. intro ab
  2. intro ac
  3. intro l
  4. intro bb
  5. intro bc
  6. intro m
  7. intro a
  8. intro b
  9. intro t
  10. intro ha
  11. intro hb
  12. intro ht
  13. cases ht
  14. cases ht_witness
  15. cases ht_witness_witness
  16. cases ht_witness_witness_witness
  17. cases ht_witness_witness_witness_right
  18. cases ht_witness_witness_witness_right_right
  19. have hk : x=0
  20. specialize add_eq_zero_right (0)
  21. specialize add_eq_zero_right (x)
  22. apply add_eq_zero_right
  23. exact ht_witness_witness_witness_left
  24. rewrite hk at ht_witness_witness_witness_right_right_left
  25. rewrite hk at ht_witness_witness_witness_right_right_left
  26. rewrite hk at ht_witness_witness_witness_right_right_left
  27. rewrite hk at ht_witness_witness_witness_right_right_left
  28. have heqa : x1=a
  29. specialize polynomial_zero_extended_entry_functional (ab)
  30. specialize polynomial_zero_extended_entry_functional (ac)
  31. specialize polynomial_zero_extended_entry_functional (S l)
  32. specialize polynomial_zero_extended_entry_functional (0)
  33. specialize polynomial_zero_extended_entry_functional (x1)
  34. specialize polynomial_zero_extended_entry_functional (a)
  35. apply polynomial_zero_extended_entry_functional
  36. exact ht_witness_witness_witness_right_left
  37. left
  38. split
  39. exists l
  40. simp
  41. exact ha
  42. have heqb : x2=b
  43. specialize polynomial_zero_extended_entry_functional (bb)
  44. specialize polynomial_zero_extended_entry_functional (bc)
  45. specialize polynomial_zero_extended_entry_functional (S m)
  46. specialize polynomial_zero_extended_entry_functional (0)
  47. specialize polynomial_zero_extended_entry_functional (x2)
  48. specialize polynomial_zero_extended_entry_functional (b)
  49. apply polynomial_zero_extended_entry_functional
  50. exact ht_witness_witness_witness_right_right_left
  51. left
  52. split
  53. exists m
  54. simp
  55. exact hb
  56. trans x1*x2
  57. exact ht_witness_witness_witness_right_right_right
  58. congr
  59. exact heqa
  60. exact heqb
prime_field_convolution_coefficient_leading · unchanged support, not a new admission
forall p ab ac l bb bc m a b r. (forall fom_index_pfp_leading_left_coefficients. (exists fom_gap_pfp_leading_left_coefficients_index_bound. fom_gap_pfp_leading_left_coefficients_index_bound + S (fom_index_pfp_leading_left_coefficients) = S l) -> exists fom_value_pfp_leading_left_coefficients. ((((exists fom_beta_height_pfp_leading_left_coefficients_entry. fom_beta_height_pfp_leading_left_coefficients_entry + S (fom_value_pfp_leading_left_coefficients) = S ((S (fom_index_pfp_leading_left_coefficients)) * ac)) /\ exists fom_beta_quotient_pfp_leading_left_coefficients_entry. ab = fom_beta_quotient_pfp_leading_left_coefficients_entry * S ((S (fom_index_pfp_leading_left_coefficients)) * ac) + (fom_value_pfp_leading_left_coefficients))) /\ (exists fom_gap_pfp_leading_left_coefficients_value_bound. fom_gap_pfp_leading_left_coefficients_value_bound + S (fom_value_pfp_leading_left_coefficients) = p))) -> (forall fom_index_pfp_leading_right_coefficients. (exists fom_gap_pfp_leading_right_coefficients_index_bound. fom_gap_pfp_leading_right_coefficients_index_bound + S (fom_index_pfp_leading_right_coefficients) = S m) -> exists fom_value_pfp_leading_right_coefficients. ((((exists fom_beta_height_pfp_leading_right_coefficients_entry. fom_beta_height_pfp_leading_right_coefficients_entry + S (fom_value_pfp_leading_right_coefficients) = S ((S (fom_index_pfp_leading_right_coefficients)) * bc)) /\ exists fom_beta_quotient_pfp_leading_right_coefficients_entry. bb = fom_beta_quotient_pfp_leading_right_coefficients_entry * S ((S (fom_index_pfp_leading_right_coefficients)) * bc) + (fom_value_pfp_leading_right_coefficients))) /\ (exists fom_gap_pfp_leading_right_coefficients_value_bound. fom_gap_pfp_leading_right_coefficients_value_bound + S (fom_value_pfp_leading_right_coefficients) = p))) -> (((exists ff_h_pfp_leading_left. ff_h_pfp_leading_left + S (a) = S ((S (0)) * ac)) /\ exists ff_q_pfp_leading_left. ab = ff_q_pfp_leading_left * S ((S (0)) * ac) + (a))) -> (((exists ff_h_pfp_leading_right. ff_h_pfp_leading_right + S (b) = S ((S (0)) * bc)) /\ exists ff_q_pfp_leading_right. bb = ff_q_pfp_leading_right * S ((S (0)) * bc) + (b))) -> (exists pfc_terms_code_leading_coefficient pfc_terms_scale_leading_coefficient pfc_natural_sum_leading_coefficient. ((forall pfc_index_leading_coefficientdiagonal. (exists pfa_gap_leading_coefficientdiagonalbound. pfa_gap_leading_coefficientdiagonalbound + S (pfc_index_leading_coefficientdiagonal) = (S (0))) -> exists pfc_value_leading_coefficientdiagonal. ((((exists ff_h_pfp_leading_coefficientdiagonalentry. ff_h_pfp_leading_coefficientdiagonalentry + S (pfc_value_leading_coefficientdiagonal) = S ((S (pfc_index_leading_coefficientdiagonal)) * pfc_terms_scale_leading_coefficient)) /\ exists ff_q_pfp_leading_coefficientdiagonalentry. pfc_terms_code_leading_coefficient = ff_q_pfp_leading_coefficientdiagonalentry * S ((S (pfc_index_leading_coefficientdiagonal)) * pfc_terms_scale_leading_coefficient) + (pfc_value_leading_coefficientdiagonal))) /\ ((exists pfc_complement_leading_coefficientdiagonalterm pfc_left_leading_coefficientdiagonalterm pfc_right_leading_coefficientdiagonalterm. (((pfc_index_leading_coefficientdiagonal)+pfc_complement_leading_coefficientdiagonalterm=(0)) /\ ((((((exists pfa_gap_leading_coefficientdiagonaltermleftinside. pfa_gap_leading_coefficientdiagonaltermleftinside + S (pfc_index_leading_coefficientdiagonal) = (S l)) /\ ((((exists ff_h_pfp_leading_coefficientdiagonaltermleftentry. ff_h_pfp_leading_coefficientdiagonaltermleftentry + S (pfc_left_leading_coefficientdiagonalterm) = S ((S (pfc_index_leading_coefficientdiagonal)) * ac)) /\ exists ff_q_pfp_leading_coefficientdiagonaltermleftentry. ab = ff_q_pfp_leading_coefficientdiagonaltermleftentry * S ((S (pfc_index_leading_coefficientdiagonal)) * ac) + (pfc_left_leading_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_leading_coefficientdiagonaltermleftoutside. pfc_gap_leading_coefficientdiagonaltermleftoutside+(S l)=(pfc_index_leading_coefficientdiagonal)) /\ (((pfc_left_leading_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_leading_coefficientdiagonaltermrightinside. pfa_gap_leading_coefficientdiagonaltermrightinside + S (pfc_complement_leading_coefficientdiagonalterm) = (S m)) /\ ((((exists ff_h_pfp_leading_coefficientdiagonaltermrightentry. ff_h_pfp_leading_coefficientdiagonaltermrightentry + S (pfc_right_leading_coefficientdiagonalterm) = S ((S (pfc_complement_leading_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_leading_coefficientdiagonaltermrightentry. bb = ff_q_pfp_leading_coefficientdiagonaltermrightentry * S ((S (pfc_complement_leading_coefficientdiagonalterm)) * bc) + (pfc_right_leading_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_leading_coefficientdiagonaltermrightoutside. pfc_gap_leading_coefficientdiagonaltermrightoutside+(S m)=(pfc_complement_leading_coefficientdiagonalterm)) /\ (((pfc_right_leading_coefficientdiagonalterm)=0))))) /\ (((pfc_value_leading_coefficientdiagonal)=pfc_left_leading_coefficientdiagonalterm*pfc_right_leading_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_leading_coefficientsum fs_v_pfc_leading_coefficientsum. ((((exists fs_h_pfc_leading_coefficientsum_body_start. fs_h_pfc_leading_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_leading_coefficientsum)) /\ exists fs_q_pfc_leading_coefficientsum_body_start. fs_u_pfc_leading_coefficientsum = fs_q_pfc_leading_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_leading_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_leading_coefficientsum_body_terminal. fs_h_pfc_leading_coefficientsum_body_terminal + S (pfc_natural_sum_leading_coefficient) = S ((S (S (0))) * fs_v_pfc_leading_coefficientsum)) /\ exists fs_q_pfc_leading_coefficientsum_body_terminal. fs_u_pfc_leading_coefficientsum = fs_q_pfc_leading_coefficientsum_body_terminal * S ((S (S (0))) * fs_v_pfc_leading_coefficientsum) + (pfc_natural_sum_leading_coefficient))) /\ forall fs_i_pfc_leading_coefficientsum_body_steps. (exists fs_lt_pfc_leading_coefficientsum_body_steps_bound. fs_lt_pfc_leading_coefficientsum_body_steps_bound + S fs_i_pfc_leading_coefficientsum_body_steps = S (0)) -> exists fs_a_pfc_leading_coefficientsum_body_steps fs_r_pfc_leading_coefficientsum_body_steps fs_s_pfc_leading_coefficientsum_body_steps. ((((exists fs_h_pfc_leading_coefficientsum_body_steps_summand. fs_h_pfc_leading_coefficientsum_body_steps_summand + S (fs_a_pfc_leading_coefficientsum_body_steps) = S ((S (fs_i_pfc_leading_coefficientsum_body_steps)) * pfc_terms_scale_leading_coefficient)) /\ exists fs_q_pfc_leading_coefficientsum_body_steps_summand. pfc_terms_code_leading_coefficient = fs_q_pfc_leading_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_leading_coefficientsum_body_steps)) * pfc_terms_scale_leading_coefficient) + (fs_a_pfc_leading_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_leading_coefficientsum_body_steps_partial. fs_h_pfc_leading_coefficientsum_body_steps_partial + S (fs_r_pfc_leading_coefficientsum_body_steps) = S ((S (fs_i_pfc_leading_coefficientsum_body_steps)) * fs_v_pfc_leading_coefficientsum)) /\ exists fs_q_pfc_leading_coefficientsum_body_steps_partial. fs_u_pfc_leading_coefficientsum = fs_q_pfc_leading_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_leading_coefficientsum_body_steps)) * fs_v_pfc_leading_coefficientsum) + (fs_r_pfc_leading_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_leading_coefficientsum_body_steps_successor. fs_h_pfc_leading_coefficientsum_body_steps_successor + S (fs_s_pfc_leading_coefficientsum_body_steps) = S ((S (S fs_i_pfc_leading_coefficientsum_body_steps)) * fs_v_pfc_leading_coefficientsum)) /\ exists fs_q_pfc_leading_coefficientsum_body_steps_successor. fs_u_pfc_leading_coefficientsum = fs_q_pfc_leading_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_leading_coefficientsum_body_steps)) * fs_v_pfc_leading_coefficientsum) + (fs_s_pfc_leading_coefficientsum_body_steps))) /\ fs_s_pfc_leading_coefficientsum_body_steps = fs_r_pfc_leading_coefficientsum_body_steps + fs_a_pfc_leading_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_leading_coefficientresiduebound. pfa_gap_leading_coefficientresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_leading_coefficientresiduecongruence pfa_offset_right_leading_coefficientresiduecongruence. (pfc_natural_sum_leading_coefficient) + (p) * pfa_offset_left_leading_coefficientresiduecongruence = (r) + (p) * pfa_offset_right_leading_coefficientresiduecongruence))))))))) -> (((exists pfa_gap_leading_productleft. pfa_gap_leading_productleft + S (a) = (p)) /\ (((exists pfa_gap_leading_productright. pfa_gap_leading_productright + S (b) = (p)) /\ ((((exists pfa_gap_leading_productresultbound. pfa_gap_leading_productresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_leading_productresultcongruence pfa_offset_right_leading_productresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_leading_productresultcongruence = (r) + (p) * pfa_offset_right_leading_productresultcongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro l
  5. intro bb
  6. intro bc
  7. intro m
  8. intro a
  9. intro b
  10. intro r
  11. intro hca
  12. intro hcb
  13. intro ha
  14. intro hb
  15. intro hr
  16. cases hr
  17. cases hr_witness
  18. cases hr_witness_witness
  19. cases hr_witness_witness_witness
  20. cases hr_witness_witness_witness_right
  21. have hs : exists t h. (((((exists ff_h_pfp_leading_summand. ff_h_pfp_leading_summand + S (t) = S ((S (0)) * x1)) /\ exists ff_q_pfp_leading_summand. x = ff_q_pfp_leading_summand * S ((S (0)) * x1) + (t))) /\ (((exists fs_u_pfc_leading_empty_sum fs_v_pfc_leading_empty_sum. ((((exists fs_h_pfc_leading_empty_sum_body_start. fs_h_pfc_leading_empty_sum_body_start + S (0) = S ((S (0)) * fs_v_pfc_leading_empty_sum)) /\ exists fs_q_pfc_leading_empty_sum_body_start. fs_u_pfc_leading_empty_sum = fs_q_pfc_leading_empty_sum_body_start * S ((S (0)) * fs_v_pfc_leading_empty_sum) + (0))) /\ ((((exists fs_h_pfc_leading_empty_sum_body_terminal. fs_h_pfc_leading_empty_sum_body_terminal + S (h) = S ((S (0)) * fs_v_pfc_leading_empty_sum)) /\ exists fs_q_pfc_leading_empty_sum_body_terminal. fs_u_pfc_leading_empty_sum = fs_q_pfc_leading_empty_sum_body_terminal * S ((S (0)) * fs_v_pfc_leading_empty_sum) + (h))) /\ forall fs_i_pfc_leading_empty_sum_body_steps. (exists fs_lt_pfc_leading_empty_sum_body_steps_bound. fs_lt_pfc_leading_empty_sum_body_steps_bound + S fs_i_pfc_leading_empty_sum_body_steps = 0) -> exists fs_a_pfc_leading_empty_sum_body_steps fs_r_pfc_leading_empty_sum_body_steps fs_s_pfc_leading_empty_sum_body_steps. ((((exists fs_h_pfc_leading_empty_sum_body_steps_summand. fs_h_pfc_leading_empty_sum_body_steps_summand + S (fs_a_pfc_leading_empty_sum_body_steps) = S ((S (fs_i_pfc_leading_empty_sum_body_steps)) * x1)) /\ exists fs_q_pfc_leading_empty_sum_body_steps_summand. x = fs_q_pfc_leading_empty_sum_body_steps_summand * S ((S (fs_i_pfc_leading_empty_sum_body_steps)) * x1) + (fs_a_pfc_leading_empty_sum_body_steps))) /\ ((((exists fs_h_pfc_leading_empty_sum_body_steps_partial. fs_h_pfc_leading_empty_sum_body_steps_partial + S (fs_r_pfc_leading_empty_sum_body_steps) = S ((S (fs_i_pfc_leading_empty_sum_body_steps)) * fs_v_pfc_leading_empty_sum)) /\ exists fs_q_pfc_leading_empty_sum_body_steps_partial. fs_u_pfc_leading_empty_sum = fs_q_pfc_leading_empty_sum_body_steps_partial * S ((S (fs_i_pfc_leading_empty_sum_body_steps)) * fs_v_pfc_leading_empty_sum) + (fs_r_pfc_leading_empty_sum_body_steps))) /\ ((((exists fs_h_pfc_leading_empty_sum_body_steps_successor. fs_h_pfc_leading_empty_sum_body_steps_successor + S (fs_s_pfc_leading_empty_sum_body_steps) = S ((S (S fs_i_pfc_leading_empty_sum_body_steps)) * fs_v_pfc_leading_empty_sum)) /\ exists fs_q_pfc_leading_empty_sum_body_steps_successor. fs_u_pfc_leading_empty_sum = fs_q_pfc_leading_empty_sum_body_steps_successor * S ((S (S fs_i_pfc_leading_empty_sum_body_steps)) * fs_v_pfc_leading_empty_sum) + (fs_s_pfc_leading_empty_sum_body_steps))) /\ fs_s_pfc_leading_empty_sum_body_steps = fs_r_pfc_leading_empty_sum_body_steps + fs_a_pfc_leading_empty_sum_body_steps)))))) /\ ((x2=h+t))))))
  22. specialize beta_sum_succ_decompose (x)
  23. specialize beta_sum_succ_decompose (x1)
  24. specialize beta_sum_succ_decompose (0)
  25. specialize beta_sum_succ_decompose (x2)
  26. apply beta_sum_succ_decompose
  27. exact hr_witness_witness_witness_right_left
  28. cases hs
  29. cases hs_witness
  30. cases hs_witness_witness
  31. cases hs_witness_witness_right
  32. have hz : x4=0
  33. specialize beta_sum_zero (x)
  34. specialize beta_sum_zero (x1)
  35. specialize beta_sum_zero (x4)
  36. apply beta_sum_zero
  37. exact hs_witness_witness_right_left
  38. have ht : exists pfc_complement_leading_actual_term pfc_left_leading_actual_term pfc_right_leading_actual_term. (((0)+pfc_complement_leading_actual_term=(0)) /\ ((((((exists pfa_gap_leading_actual_termleftinside. pfa_gap_leading_actual_termleftinside + S (0) = (S l)) /\ ((((exists ff_h_pfp_leading_actual_termleftentry. ff_h_pfp_leading_actual_termleftentry + S (pfc_left_leading_actual_term) = S ((S (0)) * ac)) /\ exists ff_q_pfp_leading_actual_termleftentry. ab = ff_q_pfp_leading_actual_termleftentry * S ((S (0)) * ac) + (pfc_left_leading_actual_term)))))) \/ (((exists pfc_gap_leading_actual_termleftoutside. pfc_gap_leading_actual_termleftoutside+(S l)=(0)) /\ (((pfc_left_leading_actual_term)=0))))) /\ ((((((exists pfa_gap_leading_actual_termrightinside. pfa_gap_leading_actual_termrightinside + S (pfc_complement_leading_actual_term) = (S m)) /\ ((((exists ff_h_pfp_leading_actual_termrightentry. ff_h_pfp_leading_actual_termrightentry + S (pfc_right_leading_actual_term) = S ((S (pfc_complement_leading_actual_term)) * bc)) /\ exists ff_q_pfp_leading_actual_termrightentry. bb = ff_q_pfp_leading_actual_termrightentry * S ((S (pfc_complement_leading_actual_term)) * bc) + (pfc_right_leading_actual_term)))))) \/ (((exists pfc_gap_leading_actual_termrightoutside. pfc_gap_leading_actual_termrightoutside+(S m)=(pfc_complement_leading_actual_term)) /\ (((pfc_right_leading_actual_term)=0))))) /\ (((x3)=pfc_left_leading_actual_term*pfc_right_leading_actual_term)))))))
  39. specialize polynomial_diagonal_prefix_entry (ab)
  40. specialize polynomial_diagonal_prefix_entry (ac)
  41. specialize polynomial_diagonal_prefix_entry (S l)
  42. specialize polynomial_diagonal_prefix_entry (bb)
  43. specialize polynomial_diagonal_prefix_entry (bc)
  44. specialize polynomial_diagonal_prefix_entry (S m)
  45. specialize polynomial_diagonal_prefix_entry (0)
  46. specialize polynomial_diagonal_prefix_entry (x)
  47. specialize polynomial_diagonal_prefix_entry (x1)
  48. specialize polynomial_diagonal_prefix_entry (1)
  49. specialize polynomial_diagonal_prefix_entry (0)
  50. specialize polynomial_diagonal_prefix_entry (x3)
  51. apply polynomial_diagonal_prefix_entry
  52. exact hr_witness_witness_witness_left
  53. exists 0
  54. apply zero_add
  55. exact hs_witness_witness_left
  56. have hn : x2=a*b
  57. trans x4+x3
  58. exact hs_witness_witness_right_right
  59. trans x3
  60. rewrite hz
  61. apply zero_add
  62. specialize polynomial_diagonal_term_leading (ab)
  63. specialize polynomial_diagonal_term_leading (ac)
  64. specialize polynomial_diagonal_term_leading (l)
  65. specialize polynomial_diagonal_term_leading (bb)
  66. specialize polynomial_diagonal_term_leading (bc)
  67. specialize polynomial_diagonal_term_leading (m)
  68. specialize polynomial_diagonal_term_leading (a)
  69. specialize polynomial_diagonal_term_leading (b)
  70. specialize polynomial_diagonal_term_leading (x3)
  71. apply polynomial_diagonal_term_leading
  72. exact ha
  73. exact hb
  74. exact ht
  75. split
  76. specialize matrix_rank_bounded_prefix_value (ab)
  77. specialize matrix_rank_bounded_prefix_value (ac)
  78. specialize matrix_rank_bounded_prefix_value (S l)
  79. specialize matrix_rank_bounded_prefix_value (p)
  80. specialize matrix_rank_bounded_prefix_value (0)
  81. specialize matrix_rank_bounded_prefix_value (a)
  82. apply matrix_rank_bounded_prefix_value
  83. exact hca
  84. exists l
  85. simp
  86. exact ha
  87. split
  88. specialize matrix_rank_bounded_prefix_value (bb)
  89. specialize matrix_rank_bounded_prefix_value (bc)
  90. specialize matrix_rank_bounded_prefix_value (S m)
  91. specialize matrix_rank_bounded_prefix_value (p)
  92. specialize matrix_rank_bounded_prefix_value (0)
  93. specialize matrix_rank_bounded_prefix_value (b)
  94. apply matrix_rank_bounded_prefix_value
  95. exact hcb
  96. exists m
  97. simp
  98. exact hb
  99. specialize prime_field_residue_input_equal (p)
  100. specialize prime_field_residue_input_equal (a*b)
  101. specialize prime_field_residue_input_equal (x2)
  102. specialize prime_field_residue_input_equal (r)
  103. apply prime_field_residue_input_equal
  104. symm
  105. exact hn
  106. exact hr_witness_witness_witness_right_right
prime_field_polynomial_convolution_leading_coefficient · unchanged support, not a new admission
forall p ab ac d bb bc e cb cc N a b r. (((forall fom_index_pfp_leading_productleft. (exists fom_gap_pfp_leading_productleft_index_bound. fom_gap_pfp_leading_productleft_index_bound + S (fom_index_pfp_leading_productleft) = S d) -> exists fom_value_pfp_leading_productleft. ((((exists fom_beta_height_pfp_leading_productleft_entry. fom_beta_height_pfp_leading_productleft_entry + S (fom_value_pfp_leading_productleft) = S ((S (fom_index_pfp_leading_productleft)) * ac)) /\ exists fom_beta_quotient_pfp_leading_productleft_entry. ab = fom_beta_quotient_pfp_leading_productleft_entry * S ((S (fom_index_pfp_leading_productleft)) * ac) + (fom_value_pfp_leading_productleft))) /\ (exists fom_gap_pfp_leading_productleft_value_bound. fom_gap_pfp_leading_productleft_value_bound + S (fom_value_pfp_leading_productleft) = p))) /\ (((forall fom_index_pfp_leading_productright. (exists fom_gap_pfp_leading_productright_index_bound. fom_gap_pfp_leading_productright_index_bound + S (fom_index_pfp_leading_productright) = S e) -> exists fom_value_pfp_leading_productright. ((((exists fom_beta_height_pfp_leading_productright_entry. fom_beta_height_pfp_leading_productright_entry + S (fom_value_pfp_leading_productright) = S ((S (fom_index_pfp_leading_productright)) * bc)) /\ exists fom_beta_quotient_pfp_leading_productright_entry. bb = fom_beta_quotient_pfp_leading_productright_entry * S ((S (fom_index_pfp_leading_productright)) * bc) + (fom_value_pfp_leading_productright))) /\ (exists fom_gap_pfp_leading_productright_value_bound. fom_gap_pfp_leading_productright_value_bound + S (fom_value_pfp_leading_productright) = p))) /\ (((((((S d)=0 \/ (S e)=0) /\ (((N)=0)))) \/ (((~((S d)=0)) /\ (((~((S e)=0)) /\ (((S d)+(S e)=S (N)))))))) /\ ((forall pfc_index_leading_productcoefficients. (exists pfa_gap_leading_productcoefficientsbound. pfa_gap_leading_productcoefficientsbound + S (pfc_index_leading_productcoefficients) = (N)) -> exists pfc_value_leading_productcoefficients. ((((exists ff_h_pfp_leading_productcoefficientsentry. ff_h_pfp_leading_productcoefficientsentry + S (pfc_value_leading_productcoefficients) = S ((S (pfc_index_leading_productcoefficients)) * cc)) /\ exists ff_q_pfp_leading_productcoefficientsentry. cb = ff_q_pfp_leading_productcoefficientsentry * S ((S (pfc_index_leading_productcoefficients)) * cc) + (pfc_value_leading_productcoefficients))) /\ ((exists pfc_terms_code_leading_productcoefficientscoefficient pfc_terms_scale_leading_productcoefficientscoefficient pfc_natural_sum_leading_productcoefficientscoefficient. ((forall pfc_index_leading_productcoefficientscoefficientdiagonal. (exists pfa_gap_leading_productcoefficientscoefficientdiagonalbound. pfa_gap_leading_productcoefficientscoefficientdiagonalbound + S (pfc_index_leading_productcoefficientscoefficientdiagonal) = (S (pfc_index_leading_productcoefficients))) -> exists pfc_value_leading_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_leading_productcoefficientscoefficientdiagonalentry. ff_h_pfp_leading_productcoefficientscoefficientdiagonalentry + S (pfc_value_leading_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_leading_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_leading_productcoefficientscoefficient)) /\ exists ff_q_pfp_leading_productcoefficientscoefficientdiagonalentry. pfc_terms_code_leading_productcoefficientscoefficient = ff_q_pfp_leading_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_leading_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_leading_productcoefficientscoefficient) + (pfc_value_leading_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_leading_productcoefficientscoefficientdiagonalterm pfc_left_leading_productcoefficientscoefficientdiagonalterm pfc_right_leading_productcoefficientscoefficientdiagonalterm. (((pfc_index_leading_productcoefficientscoefficientdiagonal)+pfc_complement_leading_productcoefficientscoefficientdiagonalterm=(pfc_index_leading_productcoefficients)) /\ ((((((exists pfa_gap_leading_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_leading_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_leading_productcoefficientscoefficientdiagonal) = (S d)) /\ ((((exists ff_h_pfp_leading_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_leading_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_leading_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_leading_productcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_leading_productcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_leading_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_leading_productcoefficientscoefficientdiagonal)) * ac) + (pfc_left_leading_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_leading_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_leading_productcoefficientscoefficientdiagonaltermleftoutside+(S d)=(pfc_index_leading_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_leading_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_leading_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_leading_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_leading_productcoefficientscoefficientdiagonalterm) = (S e)) /\ ((((exists ff_h_pfp_leading_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_leading_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_leading_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_leading_productcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_leading_productcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_leading_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_leading_productcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_leading_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_leading_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_leading_productcoefficientscoefficientdiagonaltermrightoutside+(S e)=(pfc_complement_leading_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_leading_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_leading_productcoefficientscoefficientdiagonal)=pfc_left_leading_productcoefficientscoefficientdiagonalterm*pfc_right_leading_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_leading_productcoefficientscoefficientsum fs_v_pfc_leading_productcoefficientscoefficientsum. ((((exists fs_h_pfc_leading_productcoefficientscoefficientsum_body_start. fs_h_pfc_leading_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_leading_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_leading_productcoefficientscoefficientsum_body_start. fs_u_pfc_leading_productcoefficientscoefficientsum = fs_q_pfc_leading_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_leading_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_leading_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_leading_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_leading_productcoefficientscoefficient) = S ((S (S (pfc_index_leading_productcoefficients))) * fs_v_pfc_leading_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_leading_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_leading_productcoefficientscoefficientsum = fs_q_pfc_leading_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_leading_productcoefficients))) * fs_v_pfc_leading_productcoefficientscoefficientsum) + (pfc_natural_sum_leading_productcoefficientscoefficient))) /\ forall fs_i_pfc_leading_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_leading_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_leading_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_leading_productcoefficientscoefficientsum_body_steps = S (pfc_index_leading_productcoefficients)) -> exists fs_a_pfc_leading_productcoefficientscoefficientsum_body_steps fs_r_pfc_leading_productcoefficientscoefficientsum_body_steps fs_s_pfc_leading_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_leading_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_leading_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_leading_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_leading_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_leading_productcoefficientscoefficient)) /\ exists fs_q_pfc_leading_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_leading_productcoefficientscoefficient = fs_q_pfc_leading_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_leading_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_leading_productcoefficientscoefficient) + (fs_a_pfc_leading_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_leading_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_leading_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_leading_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_leading_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_leading_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_leading_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_leading_productcoefficientscoefficientsum = fs_q_pfc_leading_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_leading_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_leading_productcoefficientscoefficientsum) + (fs_r_pfc_leading_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_leading_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_leading_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_leading_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_leading_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_leading_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_leading_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_leading_productcoefficientscoefficientsum = fs_q_pfc_leading_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_leading_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_leading_productcoefficientscoefficientsum) + (fs_s_pfc_leading_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_leading_productcoefficientscoefficientsum_body_steps = fs_r_pfc_leading_productcoefficientscoefficientsum_body_steps + fs_a_pfc_leading_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_leading_productcoefficientscoefficientresiduebound. pfa_gap_leading_productcoefficientscoefficientresiduebound + S (pfc_value_leading_productcoefficients) = (p)) /\ ((exists pfa_offset_left_leading_productcoefficientscoefficientresiduecongruence pfa_offset_right_leading_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_leading_productcoefficientscoefficient) + (p) * pfa_offset_left_leading_productcoefficientscoefficientresiduecongruence = (pfc_value_leading_productcoefficients) + (p) * pfa_offset_right_leading_productcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((exists ff_h_pfp_leading_a. ff_h_pfp_leading_a + S (a) = S ((S (0)) * ac)) /\ exists ff_q_pfp_leading_a. ab = ff_q_pfp_leading_a * S ((S (0)) * ac) + (a))) -> (((exists ff_h_pfp_leading_b. ff_h_pfp_leading_b + S (b) = S ((S (0)) * bc)) /\ exists ff_q_pfp_leading_b. bb = ff_q_pfp_leading_b * S ((S (0)) * bc) + (b))) -> (((exists ff_h_pfp_leading_r. ff_h_pfp_leading_r + S (r) = S ((S (0)) * cc)) /\ exists ff_q_pfp_leading_r. cb = ff_q_pfp_leading_r * S ((S (0)) * cc) + (r))) -> (((exists pfa_gap_leading_actual_multiplyleft. pfa_gap_leading_actual_multiplyleft + S (a) = (p)) /\ (((exists pfa_gap_leading_actual_multiplyright. pfa_gap_leading_actual_multiplyright + S (b) = (p)) /\ ((((exists pfa_gap_leading_actual_multiplyresultbound. pfa_gap_leading_actual_multiplyresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_leading_actual_multiplyresultcongruence pfa_offset_right_leading_actual_multiplyresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_leading_actual_multiplyresultcongruence = (r) + (p) * pfa_offset_right_leading_actual_multiplyresultcongruence)))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro d
  5. intro bb
  6. intro bc
  7. intro e
  8. intro cb
  9. intro cc
  10. intro N
  11. intro a
  12. intro b
  13. intro r
  14. intro h
  15. intro ha
  16. intro hb
  17. intro hr
  18. have hcopy : ((forall fom_index_pfp_leading_product_copyleft. (exists fom_gap_pfp_leading_product_copyleft_index_bound. fom_gap_pfp_leading_product_copyleft_index_bound + S (fom_index_pfp_leading_product_copyleft) = S d) -> exists fom_value_pfp_leading_product_copyleft. ((((exists fom_beta_height_pfp_leading_product_copyleft_entry. fom_beta_height_pfp_leading_product_copyleft_entry + S (fom_value_pfp_leading_product_copyleft) = S ((S (fom_index_pfp_leading_product_copyleft)) * ac)) /\ exists fom_beta_quotient_pfp_leading_product_copyleft_entry. ab = fom_beta_quotient_pfp_leading_product_copyleft_entry * S ((S (fom_index_pfp_leading_product_copyleft)) * ac) + (fom_value_pfp_leading_product_copyleft))) /\ (exists fom_gap_pfp_leading_product_copyleft_value_bound. fom_gap_pfp_leading_product_copyleft_value_bound + S (fom_value_pfp_leading_product_copyleft) = p))) /\ (((forall fom_index_pfp_leading_product_copyright. (exists fom_gap_pfp_leading_product_copyright_index_bound. fom_gap_pfp_leading_product_copyright_index_bound + S (fom_index_pfp_leading_product_copyright) = S e) -> exists fom_value_pfp_leading_product_copyright. ((((exists fom_beta_height_pfp_leading_product_copyright_entry. fom_beta_height_pfp_leading_product_copyright_entry + S (fom_value_pfp_leading_product_copyright) = S ((S (fom_index_pfp_leading_product_copyright)) * bc)) /\ exists fom_beta_quotient_pfp_leading_product_copyright_entry. bb = fom_beta_quotient_pfp_leading_product_copyright_entry * S ((S (fom_index_pfp_leading_product_copyright)) * bc) + (fom_value_pfp_leading_product_copyright))) /\ (exists fom_gap_pfp_leading_product_copyright_value_bound. fom_gap_pfp_leading_product_copyright_value_bound + S (fom_value_pfp_leading_product_copyright) = p))) /\ (((((((S d)=0 \/ (S e)=0) /\ (((N)=0)))) \/ (((~((S d)=0)) /\ (((~((S e)=0)) /\ (((S d)+(S e)=S (N)))))))) /\ ((forall pfc_index_leading_product_copycoefficients. (exists pfa_gap_leading_product_copycoefficientsbound. pfa_gap_leading_product_copycoefficientsbound + S (pfc_index_leading_product_copycoefficients) = (N)) -> exists pfc_value_leading_product_copycoefficients. ((((exists ff_h_pfp_leading_product_copycoefficientsentry. ff_h_pfp_leading_product_copycoefficientsentry + S (pfc_value_leading_product_copycoefficients) = S ((S (pfc_index_leading_product_copycoefficients)) * cc)) /\ exists ff_q_pfp_leading_product_copycoefficientsentry. cb = ff_q_pfp_leading_product_copycoefficientsentry * S ((S (pfc_index_leading_product_copycoefficients)) * cc) + (pfc_value_leading_product_copycoefficients))) /\ ((exists pfc_terms_code_leading_product_copycoefficientscoefficient pfc_terms_scale_leading_product_copycoefficientscoefficient pfc_natural_sum_leading_product_copycoefficientscoefficient. ((forall pfc_index_leading_product_copycoefficientscoefficientdiagonal. (exists pfa_gap_leading_product_copycoefficientscoefficientdiagonalbound. pfa_gap_leading_product_copycoefficientscoefficientdiagonalbound + S (pfc_index_leading_product_copycoefficientscoefficientdiagonal) = (S (pfc_index_leading_product_copycoefficients))) -> exists pfc_value_leading_product_copycoefficientscoefficientdiagonal. ((((exists ff_h_pfp_leading_product_copycoefficientscoefficientdiagonalentry. ff_h_pfp_leading_product_copycoefficientscoefficientdiagonalentry + S (pfc_value_leading_product_copycoefficientscoefficientdiagonal) = S ((S (pfc_index_leading_product_copycoefficientscoefficientdiagonal)) * pfc_terms_scale_leading_product_copycoefficientscoefficient)) /\ exists ff_q_pfp_leading_product_copycoefficientscoefficientdiagonalentry. pfc_terms_code_leading_product_copycoefficientscoefficient = ff_q_pfp_leading_product_copycoefficientscoefficientdiagonalentry * S ((S (pfc_index_leading_product_copycoefficientscoefficientdiagonal)) * pfc_terms_scale_leading_product_copycoefficientscoefficient) + (pfc_value_leading_product_copycoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_leading_product_copycoefficientscoefficientdiagonalterm pfc_left_leading_product_copycoefficientscoefficientdiagonalterm pfc_right_leading_product_copycoefficientscoefficientdiagonalterm. (((pfc_index_leading_product_copycoefficientscoefficientdiagonal)+pfc_complement_leading_product_copycoefficientscoefficientdiagonalterm=(pfc_index_leading_product_copycoefficients)) /\ ((((((exists pfa_gap_leading_product_copycoefficientscoefficientdiagonaltermleftinside. pfa_gap_leading_product_copycoefficientscoefficientdiagonaltermleftinside + S (pfc_index_leading_product_copycoefficientscoefficientdiagonal) = (S d)) /\ ((((exists ff_h_pfp_leading_product_copycoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_leading_product_copycoefficientscoefficientdiagonaltermleftentry + S (pfc_left_leading_product_copycoefficientscoefficientdiagonalterm) = S ((S (pfc_index_leading_product_copycoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_leading_product_copycoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_leading_product_copycoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_leading_product_copycoefficientscoefficientdiagonal)) * ac) + (pfc_left_leading_product_copycoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_leading_product_copycoefficientscoefficientdiagonaltermleftoutside. pfc_gap_leading_product_copycoefficientscoefficientdiagonaltermleftoutside+(S d)=(pfc_index_leading_product_copycoefficientscoefficientdiagonal)) /\ (((pfc_left_leading_product_copycoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_leading_product_copycoefficientscoefficientdiagonaltermrightinside. pfa_gap_leading_product_copycoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_leading_product_copycoefficientscoefficientdiagonalterm) = (S e)) /\ ((((exists ff_h_pfp_leading_product_copycoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_leading_product_copycoefficientscoefficientdiagonaltermrightentry + S (pfc_right_leading_product_copycoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_leading_product_copycoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_leading_product_copycoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_leading_product_copycoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_leading_product_copycoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_leading_product_copycoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_leading_product_copycoefficientscoefficientdiagonaltermrightoutside. pfc_gap_leading_product_copycoefficientscoefficientdiagonaltermrightoutside+(S e)=(pfc_complement_leading_product_copycoefficientscoefficientdiagonalterm)) /\ (((pfc_right_leading_product_copycoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_leading_product_copycoefficientscoefficientdiagonal)=pfc_left_leading_product_copycoefficientscoefficientdiagonalterm*pfc_right_leading_product_copycoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_leading_product_copycoefficientscoefficientsum fs_v_pfc_leading_product_copycoefficientscoefficientsum. ((((exists fs_h_pfc_leading_product_copycoefficientscoefficientsum_body_start. fs_h_pfc_leading_product_copycoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_leading_product_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_leading_product_copycoefficientscoefficientsum_body_start. fs_u_pfc_leading_product_copycoefficientscoefficientsum = fs_q_pfc_leading_product_copycoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_leading_product_copycoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_leading_product_copycoefficientscoefficientsum_body_terminal. fs_h_pfc_leading_product_copycoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_leading_product_copycoefficientscoefficient) = S ((S (S (pfc_index_leading_product_copycoefficients))) * fs_v_pfc_leading_product_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_leading_product_copycoefficientscoefficientsum_body_terminal. fs_u_pfc_leading_product_copycoefficientscoefficientsum = fs_q_pfc_leading_product_copycoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_leading_product_copycoefficients))) * fs_v_pfc_leading_product_copycoefficientscoefficientsum) + (pfc_natural_sum_leading_product_copycoefficientscoefficient))) /\ forall fs_i_pfc_leading_product_copycoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_leading_product_copycoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_leading_product_copycoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_leading_product_copycoefficientscoefficientsum_body_steps = S (pfc_index_leading_product_copycoefficients)) -> exists fs_a_pfc_leading_product_copycoefficientscoefficientsum_body_steps fs_r_pfc_leading_product_copycoefficientscoefficientsum_body_steps fs_s_pfc_leading_product_copycoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_leading_product_copycoefficientscoefficientsum_body_steps_summand. fs_h_pfc_leading_product_copycoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_leading_product_copycoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_leading_product_copycoefficientscoefficientsum_body_steps)) * pfc_terms_scale_leading_product_copycoefficientscoefficient)) /\ exists fs_q_pfc_leading_product_copycoefficientscoefficientsum_body_steps_summand. pfc_terms_code_leading_product_copycoefficientscoefficient = fs_q_pfc_leading_product_copycoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_leading_product_copycoefficientscoefficientsum_body_steps)) * pfc_terms_scale_leading_product_copycoefficientscoefficient) + (fs_a_pfc_leading_product_copycoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_leading_product_copycoefficientscoefficientsum_body_steps_partial. fs_h_pfc_leading_product_copycoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_leading_product_copycoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_leading_product_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_leading_product_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_leading_product_copycoefficientscoefficientsum_body_steps_partial. fs_u_pfc_leading_product_copycoefficientscoefficientsum = fs_q_pfc_leading_product_copycoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_leading_product_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_leading_product_copycoefficientscoefficientsum) + (fs_r_pfc_leading_product_copycoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_leading_product_copycoefficientscoefficientsum_body_steps_successor. fs_h_pfc_leading_product_copycoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_leading_product_copycoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_leading_product_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_leading_product_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_leading_product_copycoefficientscoefficientsum_body_steps_successor. fs_u_pfc_leading_product_copycoefficientscoefficientsum = fs_q_pfc_leading_product_copycoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_leading_product_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_leading_product_copycoefficientscoefficientsum) + (fs_s_pfc_leading_product_copycoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_leading_product_copycoefficientscoefficientsum_body_steps = fs_r_pfc_leading_product_copycoefficientscoefficientsum_body_steps + fs_a_pfc_leading_product_copycoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_leading_product_copycoefficientscoefficientresiduebound. pfa_gap_leading_product_copycoefficientscoefficientresiduebound + S (pfc_value_leading_product_copycoefficients) = (p)) /\ ((exists pfa_offset_left_leading_product_copycoefficientscoefficientresiduecongruence pfa_offset_right_leading_product_copycoefficientscoefficientresiduecongruence. (pfc_natural_sum_leading_product_copycoefficientscoefficient) + (p) * pfa_offset_left_leading_product_copycoefficientscoefficientresiduecongruence = (pfc_value_leading_product_copycoefficients) + (p) * pfa_offset_right_leading_product_copycoefficientscoefficientresiduecongruence))))))))))))))))))
  19. exact h
  20. cases hcopy
  21. cases hcopy_right
  22. cases hcopy_right_right
  23. have hlen : N=S (d+e)
  24. specialize polynomial_product_length_positive_inputs (d)
  25. specialize polynomial_product_length_positive_inputs (e)
  26. specialize polynomial_product_length_positive_inputs (N)
  27. apply polynomial_product_length_positive_inputs
  28. exact hcopy_right_right_left
  29. specialize prime_field_convolution_coefficient_leading (p)
  30. specialize prime_field_convolution_coefficient_leading (ab)
  31. specialize prime_field_convolution_coefficient_leading (ac)
  32. specialize prime_field_convolution_coefficient_leading (d)
  33. specialize prime_field_convolution_coefficient_leading (bb)
  34. specialize prime_field_convolution_coefficient_leading (bc)
  35. specialize prime_field_convolution_coefficient_leading (e)
  36. specialize prime_field_convolution_coefficient_leading (a)
  37. specialize prime_field_convolution_coefficient_leading (b)
  38. specialize prime_field_convolution_coefficient_leading (r)
  39. apply prime_field_convolution_coefficient_leading
  40. exact hcopy_left
  41. exact hcopy_right_left
  42. exact ha
  43. exact hb
  44. specialize prime_field_polynomial_convolution_entry (p)
  45. specialize prime_field_polynomial_convolution_entry (ab)
  46. specialize prime_field_polynomial_convolution_entry (ac)
  47. specialize prime_field_polynomial_convolution_entry (S d)
  48. specialize prime_field_polynomial_convolution_entry (bb)
  49. specialize prime_field_polynomial_convolution_entry (bc)
  50. specialize prime_field_polynomial_convolution_entry (S e)
  51. specialize prime_field_polynomial_convolution_entry (cb)
  52. specialize prime_field_polynomial_convolution_entry (cc)
  53. specialize prime_field_polynomial_convolution_entry (N)
  54. specialize prime_field_polynomial_convolution_entry (0)
  55. specialize prime_field_polynomial_convolution_entry (r)
  56. apply prime_field_polynomial_convolution_entry
  57. exact h
  58. rewrite hlen
  59. exists d+e
  60. simp
  61. exact hr
prime_field_nonzero_coprime · unchanged support, not a new admission
forall p a. (~((p) = 1) /\ forall pfa_factor_left_coprime_domain pfa_factor_right_coprime_domain. (p) = pfa_factor_left_coprime_domain * pfa_factor_right_coprime_domain -> pfa_factor_left_coprime_domain = 1 \/ pfa_factor_right_coprime_domain = 1) -> (exists pfa_gap_coprime_bound. pfa_gap_coprime_bound + S (a) = (p)) -> ~(a = 0) -> (forall pfa_divisor_coprime_result. (exists pfa_left_factor_coprime_result. (a) = pfa_divisor_coprime_result * pfa_left_factor_coprime_result) -> (exists pfa_right_factor_coprime_result. (p) = pfa_divisor_coprime_result * pfa_right_factor_coprime_result) -> pfa_divisor_coprime_result = 1)
  1. intro p
  2. intro a
  3. intro hp
  4. intro ha
  5. intro hn
  6. have hi : exists b. (((~((a) = 0)) /\ ((((exists pfa_gap_coprime_inversemultiplicationleft. pfa_gap_coprime_inversemultiplicationleft + S (a) = (p)) /\ (((exists pfa_gap_coprime_inversemultiplicationright. pfa_gap_coprime_inversemultiplicationright + S (b) = (p)) /\ ((((exists pfa_gap_coprime_inversemultiplicationresultbound. pfa_gap_coprime_inversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_coprime_inversemultiplicationresultcongruence pfa_offset_right_coprime_inversemultiplicationresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_coprime_inversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_coprime_inversemultiplicationresultcongruence))))))))))))
  7. specialize prime_field_inverse_exists (p)
  8. specialize prime_field_inverse_exists (a)
  9. apply prime_field_inverse_exists
  10. exact hp
  11. exact ha
  12. exact hn
  13. cases hi
  14. cases hi_witness
  15. cases hi_witness_right
  16. cases hi_witness_right_right
  17. cases hi_witness_right_right_right
  18. specialize mod_inverse_implies_coprime (a)
  19. specialize mod_inverse_implies_coprime (p)
  20. specialize mod_inverse_implies_coprime (x)
  21. apply mod_inverse_implies_coprime
  22. exact hi_witness_right_right_right_right
prime_field_multiply_cancel_nonzero_left · unchanged support, not a new admission
forall p a b c z. (~((p) = 1) /\ forall pfa_factor_left_cancel_mul_domain pfa_factor_right_cancel_mul_domain. (p) = pfa_factor_left_cancel_mul_domain * pfa_factor_right_cancel_mul_domain -> pfa_factor_left_cancel_mul_domain = 1 \/ pfa_factor_right_cancel_mul_domain = 1) -> ~(a = 0) -> (((exists pfa_gap_cancel_mul_firstleft. pfa_gap_cancel_mul_firstleft + S (a) = (p)) /\ (((exists pfa_gap_cancel_mul_firstright. pfa_gap_cancel_mul_firstright + S (b) = (p)) /\ ((((exists pfa_gap_cancel_mul_firstresultbound. pfa_gap_cancel_mul_firstresultbound + S (z) = (p)) /\ ((exists pfa_offset_left_cancel_mul_firstresultcongruence pfa_offset_right_cancel_mul_firstresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_cancel_mul_firstresultcongruence = (z) + (p) * pfa_offset_right_cancel_mul_firstresultcongruence))))))))) -> (((exists pfa_gap_cancel_mul_secondleft. pfa_gap_cancel_mul_secondleft + S (a) = (p)) /\ (((exists pfa_gap_cancel_mul_secondright. pfa_gap_cancel_mul_secondright + S (c) = (p)) /\ ((((exists pfa_gap_cancel_mul_secondresultbound. pfa_gap_cancel_mul_secondresultbound + S (z) = (p)) /\ ((exists pfa_offset_left_cancel_mul_secondresultcongruence pfa_offset_right_cancel_mul_secondresultcongruence. ((a) * (c)) + (p) * pfa_offset_left_cancel_mul_secondresultcongruence = (z) + (p) * pfa_offset_right_cancel_mul_secondresultcongruence))))))))) -> b = c
  1. intro p
  2. intro a
  3. intro b
  4. intro c
  5. intro z
  6. intro hp
  7. intro hn
  8. intro hb
  9. intro hc
  10. cases hb
  11. cases hb_right
  12. cases hb_right_right
  13. cases hc
  14. cases hc_right
  15. cases hc_right_right
  16. specialize mod_eq_bounded_unique (p)
  17. specialize mod_eq_bounded_unique (b)
  18. specialize mod_eq_bounded_unique (c)
  19. apply mod_eq_bounded_unique
  20. exact hb_right_left
  21. exact hc_right_left
  22. specialize mod_eq_cancel_coprime (p)
  23. specialize mod_eq_cancel_coprime (a)
  24. specialize mod_eq_cancel_coprime (b)
  25. specialize mod_eq_cancel_coprime (c)
  26. apply mod_eq_cancel_coprime
  27. intro hz
  28. specialize prime_nonzero (p)
  29. apply prime_nonzero
  30. exact hp
  31. exact hz
  32. specialize prime_field_nonzero_coprime (p)
  33. specialize prime_field_nonzero_coprime (a)
  34. apply prime_field_nonzero_coprime
  35. exact hp
  36. exact hb_left
  37. exact hn
  38. specialize mod_eq_trans (p)
  39. specialize mod_eq_trans (a * b)
  40. specialize mod_eq_trans (z)
  41. specialize mod_eq_trans (a * c)
  42. apply mod_eq_trans
  43. exact hb_right_right_right
  44. specialize mod_eq_symm (p)
  45. specialize mod_eq_symm (a * c)
  46. specialize mod_eq_symm (z)
  47. apply mod_eq_symm
  48. exact hc_right_right_right
prime_field_multiply_zero_right · unchanged support, not a new admission
forall p a. (~((p) = 1) /\ forall pfa_factor_left_multiply_zero_domain pfa_factor_right_multiply_zero_domain. (p) = pfa_factor_left_multiply_zero_domain * pfa_factor_right_multiply_zero_domain -> pfa_factor_left_multiply_zero_domain = 1 \/ pfa_factor_right_multiply_zero_domain = 1) -> (exists pfa_gap_multiply_zero_bound. pfa_gap_multiply_zero_bound + S (a) = (p)) -> (((exists pfa_gap_multiply_zeroleft. pfa_gap_multiply_zeroleft + S (a) = (p)) /\ (((exists pfa_gap_multiply_zeroright. pfa_gap_multiply_zeroright + S (0) = (p)) /\ ((((exists pfa_gap_multiply_zeroresultbound. pfa_gap_multiply_zeroresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_multiply_zeroresultcongruence pfa_offset_right_multiply_zeroresultcongruence. ((a) * (0)) + (p) * pfa_offset_left_multiply_zeroresultcongruence = (0) + (p) * pfa_offset_right_multiply_zeroresultcongruence)))))))))
  1. intro p
  2. intro a
  3. intro hp
  4. intro ha
  5. have hz : exists pfa_gap_multiply_zero_canonical. pfa_gap_multiply_zero_canonical + S (0) = (p)
  6. specialize prime_field_zero_below_prime (p)
  7. apply prime_field_zero_below_prime
  8. exact hp
  9. split
  10. exact ha
  11. split
  12. exact hz
  13. split
  14. exact hz
  15. specialize prime_field_mod_of_equal (p)
  16. specialize prime_field_mod_of_equal (a * 0)
  17. specialize prime_field_mod_of_equal (0)
  18. apply prime_field_mod_of_equal
  19. apply PA5
prime_field_no_zero_divisors · unchanged support, not a new admission
forall p a b. (~((p) = 1) /\ forall pfa_factor_left_no_zero_divisors_domain pfa_factor_right_no_zero_divisors_domain. (p) = pfa_factor_left_no_zero_divisors_domain * pfa_factor_right_no_zero_divisors_domain -> pfa_factor_left_no_zero_divisors_domain = 1 \/ pfa_factor_right_no_zero_divisors_domain = 1) -> (((exists pfa_gap_no_zero_divisors_productleft. pfa_gap_no_zero_divisors_productleft + S (a) = (p)) /\ (((exists pfa_gap_no_zero_divisors_productright. pfa_gap_no_zero_divisors_productright + S (b) = (p)) /\ ((((exists pfa_gap_no_zero_divisors_productresultbound. pfa_gap_no_zero_divisors_productresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_no_zero_divisors_productresultcongruence pfa_offset_right_no_zero_divisors_productresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_no_zero_divisors_productresultcongruence = (0) + (p) * pfa_offset_right_no_zero_divisors_productresultcongruence))))))))) -> a = 0 \/ b = 0
  1. intro p
  2. intro a
  3. intro b
  4. intro hp
  5. intro hm
  6. have hcases : a = 0 \/ ~(a = 0)
  7. specialize eq_decidable (a)
  8. specialize eq_decidable (0)
  9. apply eq_decidable
  10. cases hcases
  11. left
  12. exact hcases_left
  13. right
  14. specialize prime_field_multiply_cancel_nonzero_left (p)
  15. specialize prime_field_multiply_cancel_nonzero_left (a)
  16. specialize prime_field_multiply_cancel_nonzero_left (b)
  17. specialize prime_field_multiply_cancel_nonzero_left (0)
  18. specialize prime_field_multiply_cancel_nonzero_left (0)
  19. apply prime_field_multiply_cancel_nonzero_left
  20. exact hp
  21. exact hcases_right
  22. exact hm
  23. specialize prime_field_multiply_zero_right (p)
  24. specialize prime_field_multiply_zero_right (a)
  25. apply prime_field_multiply_zero_right
  26. exact hp
  27. cases hm
  28. exact hm_left
prime_field_polynomial_convolution_represented_degree · unchanged support, not a new admission
forall p ab ac L d bb bc M e cb cc N. (~((p) = 1) /\ forall pfa_factor_left_degree_product_prime pfa_factor_right_degree_product_prime. (p) = pfa_factor_left_degree_product_prime * pfa_factor_right_degree_product_prime -> pfa_factor_left_degree_product_prime = 1 \/ pfa_factor_right_degree_product_prime = 1) -> ((((L)=S (d)) /\ (((forall fom_index_pfp_degree_product_leftcoefficients. (exists fom_gap_pfp_degree_product_leftcoefficients_index_bound. fom_gap_pfp_degree_product_leftcoefficients_index_bound + S (fom_index_pfp_degree_product_leftcoefficients) = L) -> exists fom_value_pfp_degree_product_leftcoefficients. ((((exists fom_beta_height_pfp_degree_product_leftcoefficients_entry. fom_beta_height_pfp_degree_product_leftcoefficients_entry + S (fom_value_pfp_degree_product_leftcoefficients) = S ((S (fom_index_pfp_degree_product_leftcoefficients)) * ac)) /\ exists fom_beta_quotient_pfp_degree_product_leftcoefficients_entry. ab = fom_beta_quotient_pfp_degree_product_leftcoefficients_entry * S ((S (fom_index_pfp_degree_product_leftcoefficients)) * ac) + (fom_value_pfp_degree_product_leftcoefficients))) /\ (exists fom_gap_pfp_degree_product_leftcoefficients_value_bound. fom_gap_pfp_degree_product_leftcoefficients_value_bound + S (fom_value_pfp_degree_product_leftcoefficients) = p))) /\ ((exists pfd_leading_degree_product_left. ((((exists ff_h_pfp_degree_product_leftentry. ff_h_pfp_degree_product_leftentry + S (pfd_leading_degree_product_left) = S ((S (0)) * ac)) /\ exists ff_q_pfp_degree_product_leftentry. ab = ff_q_pfp_degree_product_leftentry * S ((S (0)) * ac) + (pfd_leading_degree_product_left))) /\ ((~(pfd_leading_degree_product_left=0)))))))))) -> ((((M)=S (e)) /\ (((forall fom_index_pfp_degree_product_rightcoefficients. (exists fom_gap_pfp_degree_product_rightcoefficients_index_bound. fom_gap_pfp_degree_product_rightcoefficients_index_bound + S (fom_index_pfp_degree_product_rightcoefficients) = M) -> exists fom_value_pfp_degree_product_rightcoefficients. ((((exists fom_beta_height_pfp_degree_product_rightcoefficients_entry. fom_beta_height_pfp_degree_product_rightcoefficients_entry + S (fom_value_pfp_degree_product_rightcoefficients) = S ((S (fom_index_pfp_degree_product_rightcoefficients)) * bc)) /\ exists fom_beta_quotient_pfp_degree_product_rightcoefficients_entry. bb = fom_beta_quotient_pfp_degree_product_rightcoefficients_entry * S ((S (fom_index_pfp_degree_product_rightcoefficients)) * bc) + (fom_value_pfp_degree_product_rightcoefficients))) /\ (exists fom_gap_pfp_degree_product_rightcoefficients_value_bound. fom_gap_pfp_degree_product_rightcoefficients_value_bound + S (fom_value_pfp_degree_product_rightcoefficients) = p))) /\ ((exists pfd_leading_degree_product_right. ((((exists ff_h_pfp_degree_product_rightentry. ff_h_pfp_degree_product_rightentry + S (pfd_leading_degree_product_right) = S ((S (0)) * bc)) /\ exists ff_q_pfp_degree_product_rightentry. bb = ff_q_pfp_degree_product_rightentry * S ((S (0)) * bc) + (pfd_leading_degree_product_right))) /\ ((~(pfd_leading_degree_product_right=0)))))))))) -> (((forall fom_index_pfp_degree_product_actualleft. (exists fom_gap_pfp_degree_product_actualleft_index_bound. fom_gap_pfp_degree_product_actualleft_index_bound + S (fom_index_pfp_degree_product_actualleft) = L) -> exists fom_value_pfp_degree_product_actualleft. ((((exists fom_beta_height_pfp_degree_product_actualleft_entry. fom_beta_height_pfp_degree_product_actualleft_entry + S (fom_value_pfp_degree_product_actualleft) = S ((S (fom_index_pfp_degree_product_actualleft)) * ac)) /\ exists fom_beta_quotient_pfp_degree_product_actualleft_entry. ab = fom_beta_quotient_pfp_degree_product_actualleft_entry * S ((S (fom_index_pfp_degree_product_actualleft)) * ac) + (fom_value_pfp_degree_product_actualleft))) /\ (exists fom_gap_pfp_degree_product_actualleft_value_bound. fom_gap_pfp_degree_product_actualleft_value_bound + S (fom_value_pfp_degree_product_actualleft) = p))) /\ (((forall fom_index_pfp_degree_product_actualright. (exists fom_gap_pfp_degree_product_actualright_index_bound. fom_gap_pfp_degree_product_actualright_index_bound + S (fom_index_pfp_degree_product_actualright) = M) -> exists fom_value_pfp_degree_product_actualright. ((((exists fom_beta_height_pfp_degree_product_actualright_entry. fom_beta_height_pfp_degree_product_actualright_entry + S (fom_value_pfp_degree_product_actualright) = S ((S (fom_index_pfp_degree_product_actualright)) * bc)) /\ exists fom_beta_quotient_pfp_degree_product_actualright_entry. bb = fom_beta_quotient_pfp_degree_product_actualright_entry * S ((S (fom_index_pfp_degree_product_actualright)) * bc) + (fom_value_pfp_degree_product_actualright))) /\ (exists fom_gap_pfp_degree_product_actualright_value_bound. fom_gap_pfp_degree_product_actualright_value_bound + S (fom_value_pfp_degree_product_actualright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_degree_product_actualcoefficients. (exists pfa_gap_degree_product_actualcoefficientsbound. pfa_gap_degree_product_actualcoefficientsbound + S (pfc_index_degree_product_actualcoefficients) = (N)) -> exists pfc_value_degree_product_actualcoefficients. ((((exists ff_h_pfp_degree_product_actualcoefficientsentry. ff_h_pfp_degree_product_actualcoefficientsentry + S (pfc_value_degree_product_actualcoefficients) = S ((S (pfc_index_degree_product_actualcoefficients)) * cc)) /\ exists ff_q_pfp_degree_product_actualcoefficientsentry. cb = ff_q_pfp_degree_product_actualcoefficientsentry * S ((S (pfc_index_degree_product_actualcoefficients)) * cc) + (pfc_value_degree_product_actualcoefficients))) /\ ((exists pfc_terms_code_degree_product_actualcoefficientscoefficient pfc_terms_scale_degree_product_actualcoefficientscoefficient pfc_natural_sum_degree_product_actualcoefficientscoefficient. ((forall pfc_index_degree_product_actualcoefficientscoefficientdiagonal. (exists pfa_gap_degree_product_actualcoefficientscoefficientdiagonalbound. pfa_gap_degree_product_actualcoefficientscoefficientdiagonalbound + S (pfc_index_degree_product_actualcoefficientscoefficientdiagonal) = (S (pfc_index_degree_product_actualcoefficients))) -> exists pfc_value_degree_product_actualcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_degree_product_actualcoefficientscoefficientdiagonalentry. ff_h_pfp_degree_product_actualcoefficientscoefficientdiagonalentry + S (pfc_value_degree_product_actualcoefficientscoefficientdiagonal) = S ((S (pfc_index_degree_product_actualcoefficientscoefficientdiagonal)) * pfc_terms_scale_degree_product_actualcoefficientscoefficient)) /\ exists ff_q_pfp_degree_product_actualcoefficientscoefficientdiagonalentry. pfc_terms_code_degree_product_actualcoefficientscoefficient = ff_q_pfp_degree_product_actualcoefficientscoefficientdiagonalentry * S ((S (pfc_index_degree_product_actualcoefficientscoefficientdiagonal)) * pfc_terms_scale_degree_product_actualcoefficientscoefficient) + (pfc_value_degree_product_actualcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_degree_product_actualcoefficientscoefficientdiagonalterm pfc_left_degree_product_actualcoefficientscoefficientdiagonalterm pfc_right_degree_product_actualcoefficientscoefficientdiagonalterm. (((pfc_index_degree_product_actualcoefficientscoefficientdiagonal)+pfc_complement_degree_product_actualcoefficientscoefficientdiagonalterm=(pfc_index_degree_product_actualcoefficients)) /\ ((((((exists pfa_gap_degree_product_actualcoefficientscoefficientdiagonaltermleftinside. pfa_gap_degree_product_actualcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_degree_product_actualcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_degree_product_actualcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_degree_product_actualcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_degree_product_actualcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_degree_product_actualcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_degree_product_actualcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_degree_product_actualcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_degree_product_actualcoefficientscoefficientdiagonal)) * ac) + (pfc_left_degree_product_actualcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_degree_product_actualcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_degree_product_actualcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_degree_product_actualcoefficientscoefficientdiagonal)) /\ (((pfc_left_degree_product_actualcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_degree_product_actualcoefficientscoefficientdiagonaltermrightinside. pfa_gap_degree_product_actualcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_degree_product_actualcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_degree_product_actualcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_degree_product_actualcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_degree_product_actualcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_degree_product_actualcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_degree_product_actualcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_degree_product_actualcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_degree_product_actualcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_degree_product_actualcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_degree_product_actualcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_degree_product_actualcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_degree_product_actualcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_degree_product_actualcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_degree_product_actualcoefficientscoefficientdiagonal)=pfc_left_degree_product_actualcoefficientscoefficientdiagonalterm*pfc_right_degree_product_actualcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_degree_product_actualcoefficientscoefficientsum fs_v_pfc_degree_product_actualcoefficientscoefficientsum. ((((exists fs_h_pfc_degree_product_actualcoefficientscoefficientsum_body_start. fs_h_pfc_degree_product_actualcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_degree_product_actualcoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_actualcoefficientscoefficientsum_body_start. fs_u_pfc_degree_product_actualcoefficientscoefficientsum = fs_q_pfc_degree_product_actualcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_degree_product_actualcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_degree_product_actualcoefficientscoefficientsum_body_terminal. fs_h_pfc_degree_product_actualcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_degree_product_actualcoefficientscoefficient) = S ((S (S (pfc_index_degree_product_actualcoefficients))) * fs_v_pfc_degree_product_actualcoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_actualcoefficientscoefficientsum_body_terminal. fs_u_pfc_degree_product_actualcoefficientscoefficientsum = fs_q_pfc_degree_product_actualcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_degree_product_actualcoefficients))) * fs_v_pfc_degree_product_actualcoefficientscoefficientsum) + (pfc_natural_sum_degree_product_actualcoefficientscoefficient))) /\ forall fs_i_pfc_degree_product_actualcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_degree_product_actualcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_degree_product_actualcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_degree_product_actualcoefficientscoefficientsum_body_steps = S (pfc_index_degree_product_actualcoefficients)) -> exists fs_a_pfc_degree_product_actualcoefficientscoefficientsum_body_steps fs_r_pfc_degree_product_actualcoefficientscoefficientsum_body_steps fs_s_pfc_degree_product_actualcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_degree_product_actualcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_degree_product_actualcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_degree_product_actualcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_degree_product_actualcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_degree_product_actualcoefficientscoefficient)) /\ exists fs_q_pfc_degree_product_actualcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_degree_product_actualcoefficientscoefficient = fs_q_pfc_degree_product_actualcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_degree_product_actualcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_degree_product_actualcoefficientscoefficient) + (fs_a_pfc_degree_product_actualcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_degree_product_actualcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_degree_product_actualcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_degree_product_actualcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_degree_product_actualcoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_actualcoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_actualcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_degree_product_actualcoefficientscoefficientsum = fs_q_pfc_degree_product_actualcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_degree_product_actualcoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_actualcoefficientscoefficientsum) + (fs_r_pfc_degree_product_actualcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_degree_product_actualcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_degree_product_actualcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_degree_product_actualcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_degree_product_actualcoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_actualcoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_actualcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_degree_product_actualcoefficientscoefficientsum = fs_q_pfc_degree_product_actualcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_degree_product_actualcoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_actualcoefficientscoefficientsum) + (fs_s_pfc_degree_product_actualcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_degree_product_actualcoefficientscoefficientsum_body_steps = fs_r_pfc_degree_product_actualcoefficientscoefficientsum_body_steps + fs_a_pfc_degree_product_actualcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_degree_product_actualcoefficientscoefficientresiduebound. pfa_gap_degree_product_actualcoefficientscoefficientresiduebound + S (pfc_value_degree_product_actualcoefficients) = (p)) /\ ((exists pfa_offset_left_degree_product_actualcoefficientscoefficientresiduecongruence pfa_offset_right_degree_product_actualcoefficientscoefficientresiduecongruence. (pfc_natural_sum_degree_product_actualcoefficientscoefficient) + (p) * pfa_offset_left_degree_product_actualcoefficientscoefficientresiduecongruence = (pfc_value_degree_product_actualcoefficients) + (p) * pfa_offset_right_degree_product_actualcoefficientscoefficientresiduecongruence))))))))))))))))))) -> ((((N)=S (d+e)) /\ (((forall fom_index_pfp_degree_product_resultcoefficients. (exists fom_gap_pfp_degree_product_resultcoefficients_index_bound. fom_gap_pfp_degree_product_resultcoefficients_index_bound + S (fom_index_pfp_degree_product_resultcoefficients) = N) -> exists fom_value_pfp_degree_product_resultcoefficients. ((((exists fom_beta_height_pfp_degree_product_resultcoefficients_entry. fom_beta_height_pfp_degree_product_resultcoefficients_entry + S (fom_value_pfp_degree_product_resultcoefficients) = S ((S (fom_index_pfp_degree_product_resultcoefficients)) * cc)) /\ exists fom_beta_quotient_pfp_degree_product_resultcoefficients_entry. cb = fom_beta_quotient_pfp_degree_product_resultcoefficients_entry * S ((S (fom_index_pfp_degree_product_resultcoefficients)) * cc) + (fom_value_pfp_degree_product_resultcoefficients))) /\ (exists fom_gap_pfp_degree_product_resultcoefficients_value_bound. fom_gap_pfp_degree_product_resultcoefficients_value_bound + S (fom_value_pfp_degree_product_resultcoefficients) = p))) /\ ((exists pfd_leading_degree_product_result. ((((exists ff_h_pfp_degree_product_resultentry. ff_h_pfp_degree_product_resultentry + S (pfd_leading_degree_product_result) = S ((S (0)) * cc)) /\ exists ff_q_pfp_degree_product_resultentry. cb = ff_q_pfp_degree_product_resultentry * S ((S (0)) * cc) + (pfd_leading_degree_product_result))) /\ ((~(pfd_leading_degree_product_result=0))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro L
  5. intro d
  6. intro bb
  7. intro bc
  8. intro M
  9. intro e
  10. intro cb
  11. intro cc
  12. intro N
  13. intro hp
  14. intro ha
  15. intro hb
  16. intro hc
  17. cases ha
  18. cases ha_right
  19. cases hb
  20. cases hb_right
  21. have hcopy : ((forall fom_index_pfp_degree_product_copyleft. (exists fom_gap_pfp_degree_product_copyleft_index_bound. fom_gap_pfp_degree_product_copyleft_index_bound + S (fom_index_pfp_degree_product_copyleft) = L) -> exists fom_value_pfp_degree_product_copyleft. ((((exists fom_beta_height_pfp_degree_product_copyleft_entry. fom_beta_height_pfp_degree_product_copyleft_entry + S (fom_value_pfp_degree_product_copyleft) = S ((S (fom_index_pfp_degree_product_copyleft)) * ac)) /\ exists fom_beta_quotient_pfp_degree_product_copyleft_entry. ab = fom_beta_quotient_pfp_degree_product_copyleft_entry * S ((S (fom_index_pfp_degree_product_copyleft)) * ac) + (fom_value_pfp_degree_product_copyleft))) /\ (exists fom_gap_pfp_degree_product_copyleft_value_bound. fom_gap_pfp_degree_product_copyleft_value_bound + S (fom_value_pfp_degree_product_copyleft) = p))) /\ (((forall fom_index_pfp_degree_product_copyright. (exists fom_gap_pfp_degree_product_copyright_index_bound. fom_gap_pfp_degree_product_copyright_index_bound + S (fom_index_pfp_degree_product_copyright) = M) -> exists fom_value_pfp_degree_product_copyright. ((((exists fom_beta_height_pfp_degree_product_copyright_entry. fom_beta_height_pfp_degree_product_copyright_entry + S (fom_value_pfp_degree_product_copyright) = S ((S (fom_index_pfp_degree_product_copyright)) * bc)) /\ exists fom_beta_quotient_pfp_degree_product_copyright_entry. bb = fom_beta_quotient_pfp_degree_product_copyright_entry * S ((S (fom_index_pfp_degree_product_copyright)) * bc) + (fom_value_pfp_degree_product_copyright))) /\ (exists fom_gap_pfp_degree_product_copyright_value_bound. fom_gap_pfp_degree_product_copyright_value_bound + S (fom_value_pfp_degree_product_copyright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_degree_product_copycoefficients. (exists pfa_gap_degree_product_copycoefficientsbound. pfa_gap_degree_product_copycoefficientsbound + S (pfc_index_degree_product_copycoefficients) = (N)) -> exists pfc_value_degree_product_copycoefficients. ((((exists ff_h_pfp_degree_product_copycoefficientsentry. ff_h_pfp_degree_product_copycoefficientsentry + S (pfc_value_degree_product_copycoefficients) = S ((S (pfc_index_degree_product_copycoefficients)) * cc)) /\ exists ff_q_pfp_degree_product_copycoefficientsentry. cb = ff_q_pfp_degree_product_copycoefficientsentry * S ((S (pfc_index_degree_product_copycoefficients)) * cc) + (pfc_value_degree_product_copycoefficients))) /\ ((exists pfc_terms_code_degree_product_copycoefficientscoefficient pfc_terms_scale_degree_product_copycoefficientscoefficient pfc_natural_sum_degree_product_copycoefficientscoefficient. ((forall pfc_index_degree_product_copycoefficientscoefficientdiagonal. (exists pfa_gap_degree_product_copycoefficientscoefficientdiagonalbound. pfa_gap_degree_product_copycoefficientscoefficientdiagonalbound + S (pfc_index_degree_product_copycoefficientscoefficientdiagonal) = (S (pfc_index_degree_product_copycoefficients))) -> exists pfc_value_degree_product_copycoefficientscoefficientdiagonal. ((((exists ff_h_pfp_degree_product_copycoefficientscoefficientdiagonalentry. ff_h_pfp_degree_product_copycoefficientscoefficientdiagonalentry + S (pfc_value_degree_product_copycoefficientscoefficientdiagonal) = S ((S (pfc_index_degree_product_copycoefficientscoefficientdiagonal)) * pfc_terms_scale_degree_product_copycoefficientscoefficient)) /\ exists ff_q_pfp_degree_product_copycoefficientscoefficientdiagonalentry. pfc_terms_code_degree_product_copycoefficientscoefficient = ff_q_pfp_degree_product_copycoefficientscoefficientdiagonalentry * S ((S (pfc_index_degree_product_copycoefficientscoefficientdiagonal)) * pfc_terms_scale_degree_product_copycoefficientscoefficient) + (pfc_value_degree_product_copycoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_degree_product_copycoefficientscoefficientdiagonalterm pfc_left_degree_product_copycoefficientscoefficientdiagonalterm pfc_right_degree_product_copycoefficientscoefficientdiagonalterm. (((pfc_index_degree_product_copycoefficientscoefficientdiagonal)+pfc_complement_degree_product_copycoefficientscoefficientdiagonalterm=(pfc_index_degree_product_copycoefficients)) /\ ((((((exists pfa_gap_degree_product_copycoefficientscoefficientdiagonaltermleftinside. pfa_gap_degree_product_copycoefficientscoefficientdiagonaltermleftinside + S (pfc_index_degree_product_copycoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_degree_product_copycoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_degree_product_copycoefficientscoefficientdiagonaltermleftentry + S (pfc_left_degree_product_copycoefficientscoefficientdiagonalterm) = S ((S (pfc_index_degree_product_copycoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_degree_product_copycoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_degree_product_copycoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_degree_product_copycoefficientscoefficientdiagonal)) * ac) + (pfc_left_degree_product_copycoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_degree_product_copycoefficientscoefficientdiagonaltermleftoutside. pfc_gap_degree_product_copycoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_degree_product_copycoefficientscoefficientdiagonal)) /\ (((pfc_left_degree_product_copycoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_degree_product_copycoefficientscoefficientdiagonaltermrightinside. pfa_gap_degree_product_copycoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_degree_product_copycoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_degree_product_copycoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_degree_product_copycoefficientscoefficientdiagonaltermrightentry + S (pfc_right_degree_product_copycoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_degree_product_copycoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_degree_product_copycoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_degree_product_copycoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_degree_product_copycoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_degree_product_copycoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_degree_product_copycoefficientscoefficientdiagonaltermrightoutside. pfc_gap_degree_product_copycoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_degree_product_copycoefficientscoefficientdiagonalterm)) /\ (((pfc_right_degree_product_copycoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_degree_product_copycoefficientscoefficientdiagonal)=pfc_left_degree_product_copycoefficientscoefficientdiagonalterm*pfc_right_degree_product_copycoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_degree_product_copycoefficientscoefficientsum fs_v_pfc_degree_product_copycoefficientscoefficientsum. ((((exists fs_h_pfc_degree_product_copycoefficientscoefficientsum_body_start. fs_h_pfc_degree_product_copycoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_degree_product_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_copycoefficientscoefficientsum_body_start. fs_u_pfc_degree_product_copycoefficientscoefficientsum = fs_q_pfc_degree_product_copycoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_degree_product_copycoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_degree_product_copycoefficientscoefficientsum_body_terminal. fs_h_pfc_degree_product_copycoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_degree_product_copycoefficientscoefficient) = S ((S (S (pfc_index_degree_product_copycoefficients))) * fs_v_pfc_degree_product_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_copycoefficientscoefficientsum_body_terminal. fs_u_pfc_degree_product_copycoefficientscoefficientsum = fs_q_pfc_degree_product_copycoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_degree_product_copycoefficients))) * fs_v_pfc_degree_product_copycoefficientscoefficientsum) + (pfc_natural_sum_degree_product_copycoefficientscoefficient))) /\ forall fs_i_pfc_degree_product_copycoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_degree_product_copycoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_degree_product_copycoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_degree_product_copycoefficientscoefficientsum_body_steps = S (pfc_index_degree_product_copycoefficients)) -> exists fs_a_pfc_degree_product_copycoefficientscoefficientsum_body_steps fs_r_pfc_degree_product_copycoefficientscoefficientsum_body_steps fs_s_pfc_degree_product_copycoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_degree_product_copycoefficientscoefficientsum_body_steps_summand. fs_h_pfc_degree_product_copycoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_degree_product_copycoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_degree_product_copycoefficientscoefficientsum_body_steps)) * pfc_terms_scale_degree_product_copycoefficientscoefficient)) /\ exists fs_q_pfc_degree_product_copycoefficientscoefficientsum_body_steps_summand. pfc_terms_code_degree_product_copycoefficientscoefficient = fs_q_pfc_degree_product_copycoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_degree_product_copycoefficientscoefficientsum_body_steps)) * pfc_terms_scale_degree_product_copycoefficientscoefficient) + (fs_a_pfc_degree_product_copycoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_degree_product_copycoefficientscoefficientsum_body_steps_partial. fs_h_pfc_degree_product_copycoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_degree_product_copycoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_degree_product_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_copycoefficientscoefficientsum_body_steps_partial. fs_u_pfc_degree_product_copycoefficientscoefficientsum = fs_q_pfc_degree_product_copycoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_degree_product_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_copycoefficientscoefficientsum) + (fs_r_pfc_degree_product_copycoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_degree_product_copycoefficientscoefficientsum_body_steps_successor. fs_h_pfc_degree_product_copycoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_degree_product_copycoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_degree_product_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_copycoefficientscoefficientsum_body_steps_successor. fs_u_pfc_degree_product_copycoefficientscoefficientsum = fs_q_pfc_degree_product_copycoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_degree_product_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_copycoefficientscoefficientsum) + (fs_s_pfc_degree_product_copycoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_degree_product_copycoefficientscoefficientsum_body_steps = fs_r_pfc_degree_product_copycoefficientscoefficientsum_body_steps + fs_a_pfc_degree_product_copycoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_degree_product_copycoefficientscoefficientresiduebound. pfa_gap_degree_product_copycoefficientscoefficientresiduebound + S (pfc_value_degree_product_copycoefficients) = (p)) /\ ((exists pfa_offset_left_degree_product_copycoefficientscoefficientresiduecongruence pfa_offset_right_degree_product_copycoefficientscoefficientresiduecongruence. (pfc_natural_sum_degree_product_copycoefficientscoefficient) + (p) * pfa_offset_left_degree_product_copycoefficientscoefficientresiduecongruence = (pfc_value_degree_product_copycoefficients) + (p) * pfa_offset_right_degree_product_copycoefficientscoefficientresiduecongruence))))))))))))))))))
  22. exact hc
  23. cases hcopy
  24. cases hcopy_right
  25. cases hcopy_right_right
  26. have hl : ((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))
  27. exact hcopy_right_right_left
  28. rewrite ha_left at hl
  29. rewrite ha_left at hl
  30. rewrite ha_left at hl
  31. rewrite hb_left at hl
  32. rewrite hb_left at hl
  33. rewrite hb_left at hl
  34. have hlen : N=S (d+e)
  35. specialize polynomial_product_length_positive_inputs (d)
  36. specialize polynomial_product_length_positive_inputs (e)
  37. specialize polynomial_product_length_positive_inputs (N)
  38. apply polynomial_product_length_positive_inputs
  39. exact hl
  40. split
  41. exact hlen
  42. split
  43. specialize prime_field_polynomial_convolution_bounded (p)
  44. specialize prime_field_polynomial_convolution_bounded (ab)
  45. specialize prime_field_polynomial_convolution_bounded (ac)
  46. specialize prime_field_polynomial_convolution_bounded (L)
  47. specialize prime_field_polynomial_convolution_bounded (bb)
  48. specialize prime_field_polynomial_convolution_bounded (bc)
  49. specialize prime_field_polynomial_convolution_bounded (M)
  50. specialize prime_field_polynomial_convolution_bounded (cb)
  51. specialize prime_field_polynomial_convolution_bounded (cc)
  52. specialize prime_field_polynomial_convolution_bounded (N)
  53. apply prime_field_polynomial_convolution_bounded
  54. exact hc
  55. cases ha_right_right
  56. cases ha_right_right_witness
  57. cases hb_right_right
  58. cases hb_right_right_witness
  59. have hout : exists r. (((exists ff_h_pfp_degree_product_output. ff_h_pfp_degree_product_output + S (r) = S ((S (0)) * cc)) /\ exists ff_q_pfp_degree_product_output. cb = ff_q_pfp_degree_product_output * S ((S (0)) * cc) + (r)))
  60. specialize beta_at_exists (cb)
  61. specialize beta_at_exists (cc)
  62. specialize beta_at_exists (0)
  63. apply beta_at_exists
  64. cases hout
  65. exists x2
  66. split
  67. exact hout_witness
  68. intro hz
  69. have hcanon : ((forall fom_index_pfp_degree_product_canonicalleft. (exists fom_gap_pfp_degree_product_canonicalleft_index_bound. fom_gap_pfp_degree_product_canonicalleft_index_bound + S (fom_index_pfp_degree_product_canonicalleft) = S d) -> exists fom_value_pfp_degree_product_canonicalleft. ((((exists fom_beta_height_pfp_degree_product_canonicalleft_entry. fom_beta_height_pfp_degree_product_canonicalleft_entry + S (fom_value_pfp_degree_product_canonicalleft) = S ((S (fom_index_pfp_degree_product_canonicalleft)) * ac)) /\ exists fom_beta_quotient_pfp_degree_product_canonicalleft_entry. ab = fom_beta_quotient_pfp_degree_product_canonicalleft_entry * S ((S (fom_index_pfp_degree_product_canonicalleft)) * ac) + (fom_value_pfp_degree_product_canonicalleft))) /\ (exists fom_gap_pfp_degree_product_canonicalleft_value_bound. fom_gap_pfp_degree_product_canonicalleft_value_bound + S (fom_value_pfp_degree_product_canonicalleft) = p))) /\ (((forall fom_index_pfp_degree_product_canonicalright. (exists fom_gap_pfp_degree_product_canonicalright_index_bound. fom_gap_pfp_degree_product_canonicalright_index_bound + S (fom_index_pfp_degree_product_canonicalright) = S e) -> exists fom_value_pfp_degree_product_canonicalright. ((((exists fom_beta_height_pfp_degree_product_canonicalright_entry. fom_beta_height_pfp_degree_product_canonicalright_entry + S (fom_value_pfp_degree_product_canonicalright) = S ((S (fom_index_pfp_degree_product_canonicalright)) * bc)) /\ exists fom_beta_quotient_pfp_degree_product_canonicalright_entry. bb = fom_beta_quotient_pfp_degree_product_canonicalright_entry * S ((S (fom_index_pfp_degree_product_canonicalright)) * bc) + (fom_value_pfp_degree_product_canonicalright))) /\ (exists fom_gap_pfp_degree_product_canonicalright_value_bound. fom_gap_pfp_degree_product_canonicalright_value_bound + S (fom_value_pfp_degree_product_canonicalright) = p))) /\ (((((((S d)=0 \/ (S e)=0) /\ (((N)=0)))) \/ (((~((S d)=0)) /\ (((~((S e)=0)) /\ (((S d)+(S e)=S (N)))))))) /\ ((forall pfc_index_degree_product_canonicalcoefficients. (exists pfa_gap_degree_product_canonicalcoefficientsbound. pfa_gap_degree_product_canonicalcoefficientsbound + S (pfc_index_degree_product_canonicalcoefficients) = (N)) -> exists pfc_value_degree_product_canonicalcoefficients. ((((exists ff_h_pfp_degree_product_canonicalcoefficientsentry. ff_h_pfp_degree_product_canonicalcoefficientsentry + S (pfc_value_degree_product_canonicalcoefficients) = S ((S (pfc_index_degree_product_canonicalcoefficients)) * cc)) /\ exists ff_q_pfp_degree_product_canonicalcoefficientsentry. cb = ff_q_pfp_degree_product_canonicalcoefficientsentry * S ((S (pfc_index_degree_product_canonicalcoefficients)) * cc) + (pfc_value_degree_product_canonicalcoefficients))) /\ ((exists pfc_terms_code_degree_product_canonicalcoefficientscoefficient pfc_terms_scale_degree_product_canonicalcoefficientscoefficient pfc_natural_sum_degree_product_canonicalcoefficientscoefficient. ((forall pfc_index_degree_product_canonicalcoefficientscoefficientdiagonal. (exists pfa_gap_degree_product_canonicalcoefficientscoefficientdiagonalbound. pfa_gap_degree_product_canonicalcoefficientscoefficientdiagonalbound + S (pfc_index_degree_product_canonicalcoefficientscoefficientdiagonal) = (S (pfc_index_degree_product_canonicalcoefficients))) -> exists pfc_value_degree_product_canonicalcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_degree_product_canonicalcoefficientscoefficientdiagonalentry. ff_h_pfp_degree_product_canonicalcoefficientscoefficientdiagonalentry + S (pfc_value_degree_product_canonicalcoefficientscoefficientdiagonal) = S ((S (pfc_index_degree_product_canonicalcoefficientscoefficientdiagonal)) * pfc_terms_scale_degree_product_canonicalcoefficientscoefficient)) /\ exists ff_q_pfp_degree_product_canonicalcoefficientscoefficientdiagonalentry. pfc_terms_code_degree_product_canonicalcoefficientscoefficient = ff_q_pfp_degree_product_canonicalcoefficientscoefficientdiagonalentry * S ((S (pfc_index_degree_product_canonicalcoefficientscoefficientdiagonal)) * pfc_terms_scale_degree_product_canonicalcoefficientscoefficient) + (pfc_value_degree_product_canonicalcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_degree_product_canonicalcoefficientscoefficientdiagonalterm pfc_left_degree_product_canonicalcoefficientscoefficientdiagonalterm pfc_right_degree_product_canonicalcoefficientscoefficientdiagonalterm. (((pfc_index_degree_product_canonicalcoefficientscoefficientdiagonal)+pfc_complement_degree_product_canonicalcoefficientscoefficientdiagonalterm=(pfc_index_degree_product_canonicalcoefficients)) /\ ((((((exists pfa_gap_degree_product_canonicalcoefficientscoefficientdiagonaltermleftinside. pfa_gap_degree_product_canonicalcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_degree_product_canonicalcoefficientscoefficientdiagonal) = (S d)) /\ ((((exists ff_h_pfp_degree_product_canonicalcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_degree_product_canonicalcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_degree_product_canonicalcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_degree_product_canonicalcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_degree_product_canonicalcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_degree_product_canonicalcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_degree_product_canonicalcoefficientscoefficientdiagonal)) * ac) + (pfc_left_degree_product_canonicalcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_degree_product_canonicalcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_degree_product_canonicalcoefficientscoefficientdiagonaltermleftoutside+(S d)=(pfc_index_degree_product_canonicalcoefficientscoefficientdiagonal)) /\ (((pfc_left_degree_product_canonicalcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_degree_product_canonicalcoefficientscoefficientdiagonaltermrightinside. pfa_gap_degree_product_canonicalcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_degree_product_canonicalcoefficientscoefficientdiagonalterm) = (S e)) /\ ((((exists ff_h_pfp_degree_product_canonicalcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_degree_product_canonicalcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_degree_product_canonicalcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_degree_product_canonicalcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_degree_product_canonicalcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_degree_product_canonicalcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_degree_product_canonicalcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_degree_product_canonicalcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_degree_product_canonicalcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_degree_product_canonicalcoefficientscoefficientdiagonaltermrightoutside+(S e)=(pfc_complement_degree_product_canonicalcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_degree_product_canonicalcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_degree_product_canonicalcoefficientscoefficientdiagonal)=pfc_left_degree_product_canonicalcoefficientscoefficientdiagonalterm*pfc_right_degree_product_canonicalcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_degree_product_canonicalcoefficientscoefficientsum fs_v_pfc_degree_product_canonicalcoefficientscoefficientsum. ((((exists fs_h_pfc_degree_product_canonicalcoefficientscoefficientsum_body_start. fs_h_pfc_degree_product_canonicalcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_degree_product_canonicalcoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_canonicalcoefficientscoefficientsum_body_start. fs_u_pfc_degree_product_canonicalcoefficientscoefficientsum = fs_q_pfc_degree_product_canonicalcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_degree_product_canonicalcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_degree_product_canonicalcoefficientscoefficientsum_body_terminal. fs_h_pfc_degree_product_canonicalcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_degree_product_canonicalcoefficientscoefficient) = S ((S (S (pfc_index_degree_product_canonicalcoefficients))) * fs_v_pfc_degree_product_canonicalcoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_canonicalcoefficientscoefficientsum_body_terminal. fs_u_pfc_degree_product_canonicalcoefficientscoefficientsum = fs_q_pfc_degree_product_canonicalcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_degree_product_canonicalcoefficients))) * fs_v_pfc_degree_product_canonicalcoefficientscoefficientsum) + (pfc_natural_sum_degree_product_canonicalcoefficientscoefficient))) /\ forall fs_i_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps = S (pfc_index_degree_product_canonicalcoefficients)) -> exists fs_a_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps fs_r_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps fs_s_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_degree_product_canonicalcoefficientscoefficient)) /\ exists fs_q_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_degree_product_canonicalcoefficientscoefficient = fs_q_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_degree_product_canonicalcoefficientscoefficient) + (fs_a_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_canonicalcoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_degree_product_canonicalcoefficientscoefficientsum = fs_q_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_canonicalcoefficientscoefficientsum) + (fs_r_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_canonicalcoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_degree_product_canonicalcoefficientscoefficientsum = fs_q_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_canonicalcoefficientscoefficientsum) + (fs_s_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps = fs_r_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps + fs_a_pfc_degree_product_canonicalcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_degree_product_canonicalcoefficientscoefficientresiduebound. pfa_gap_degree_product_canonicalcoefficientscoefficientresiduebound + S (pfc_value_degree_product_canonicalcoefficients) = (p)) /\ ((exists pfa_offset_left_degree_product_canonicalcoefficientscoefficientresiduecongruence pfa_offset_right_degree_product_canonicalcoefficientscoefficientresiduecongruence. (pfc_natural_sum_degree_product_canonicalcoefficientscoefficient) + (p) * pfa_offset_left_degree_product_canonicalcoefficientscoefficientresiduecongruence = (pfc_value_degree_product_canonicalcoefficients) + (p) * pfa_offset_right_degree_product_canonicalcoefficientscoefficientresiduecongruence))))))))))))))))))
  70. have htemp : ((forall fom_index_pfp_degree_product_originalleft. (exists fom_gap_pfp_degree_product_originalleft_index_bound. fom_gap_pfp_degree_product_originalleft_index_bound + S (fom_index_pfp_degree_product_originalleft) = L) -> exists fom_value_pfp_degree_product_originalleft. ((((exists fom_beta_height_pfp_degree_product_originalleft_entry. fom_beta_height_pfp_degree_product_originalleft_entry + S (fom_value_pfp_degree_product_originalleft) = S ((S (fom_index_pfp_degree_product_originalleft)) * ac)) /\ exists fom_beta_quotient_pfp_degree_product_originalleft_entry. ab = fom_beta_quotient_pfp_degree_product_originalleft_entry * S ((S (fom_index_pfp_degree_product_originalleft)) * ac) + (fom_value_pfp_degree_product_originalleft))) /\ (exists fom_gap_pfp_degree_product_originalleft_value_bound. fom_gap_pfp_degree_product_originalleft_value_bound + S (fom_value_pfp_degree_product_originalleft) = p))) /\ (((forall fom_index_pfp_degree_product_originalright. (exists fom_gap_pfp_degree_product_originalright_index_bound. fom_gap_pfp_degree_product_originalright_index_bound + S (fom_index_pfp_degree_product_originalright) = M) -> exists fom_value_pfp_degree_product_originalright. ((((exists fom_beta_height_pfp_degree_product_originalright_entry. fom_beta_height_pfp_degree_product_originalright_entry + S (fom_value_pfp_degree_product_originalright) = S ((S (fom_index_pfp_degree_product_originalright)) * bc)) /\ exists fom_beta_quotient_pfp_degree_product_originalright_entry. bb = fom_beta_quotient_pfp_degree_product_originalright_entry * S ((S (fom_index_pfp_degree_product_originalright)) * bc) + (fom_value_pfp_degree_product_originalright))) /\ (exists fom_gap_pfp_degree_product_originalright_value_bound. fom_gap_pfp_degree_product_originalright_value_bound + S (fom_value_pfp_degree_product_originalright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_degree_product_originalcoefficients. (exists pfa_gap_degree_product_originalcoefficientsbound. pfa_gap_degree_product_originalcoefficientsbound + S (pfc_index_degree_product_originalcoefficients) = (N)) -> exists pfc_value_degree_product_originalcoefficients. ((((exists ff_h_pfp_degree_product_originalcoefficientsentry. ff_h_pfp_degree_product_originalcoefficientsentry + S (pfc_value_degree_product_originalcoefficients) = S ((S (pfc_index_degree_product_originalcoefficients)) * cc)) /\ exists ff_q_pfp_degree_product_originalcoefficientsentry. cb = ff_q_pfp_degree_product_originalcoefficientsentry * S ((S (pfc_index_degree_product_originalcoefficients)) * cc) + (pfc_value_degree_product_originalcoefficients))) /\ ((exists pfc_terms_code_degree_product_originalcoefficientscoefficient pfc_terms_scale_degree_product_originalcoefficientscoefficient pfc_natural_sum_degree_product_originalcoefficientscoefficient. ((forall pfc_index_degree_product_originalcoefficientscoefficientdiagonal. (exists pfa_gap_degree_product_originalcoefficientscoefficientdiagonalbound. pfa_gap_degree_product_originalcoefficientscoefficientdiagonalbound + S (pfc_index_degree_product_originalcoefficientscoefficientdiagonal) = (S (pfc_index_degree_product_originalcoefficients))) -> exists pfc_value_degree_product_originalcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_degree_product_originalcoefficientscoefficientdiagonalentry. ff_h_pfp_degree_product_originalcoefficientscoefficientdiagonalentry + S (pfc_value_degree_product_originalcoefficientscoefficientdiagonal) = S ((S (pfc_index_degree_product_originalcoefficientscoefficientdiagonal)) * pfc_terms_scale_degree_product_originalcoefficientscoefficient)) /\ exists ff_q_pfp_degree_product_originalcoefficientscoefficientdiagonalentry. pfc_terms_code_degree_product_originalcoefficientscoefficient = ff_q_pfp_degree_product_originalcoefficientscoefficientdiagonalentry * S ((S (pfc_index_degree_product_originalcoefficientscoefficientdiagonal)) * pfc_terms_scale_degree_product_originalcoefficientscoefficient) + (pfc_value_degree_product_originalcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_degree_product_originalcoefficientscoefficientdiagonalterm pfc_left_degree_product_originalcoefficientscoefficientdiagonalterm pfc_right_degree_product_originalcoefficientscoefficientdiagonalterm. (((pfc_index_degree_product_originalcoefficientscoefficientdiagonal)+pfc_complement_degree_product_originalcoefficientscoefficientdiagonalterm=(pfc_index_degree_product_originalcoefficients)) /\ ((((((exists pfa_gap_degree_product_originalcoefficientscoefficientdiagonaltermleftinside. pfa_gap_degree_product_originalcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_degree_product_originalcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_degree_product_originalcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_degree_product_originalcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_degree_product_originalcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_degree_product_originalcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_degree_product_originalcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_degree_product_originalcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_degree_product_originalcoefficientscoefficientdiagonal)) * ac) + (pfc_left_degree_product_originalcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_degree_product_originalcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_degree_product_originalcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_degree_product_originalcoefficientscoefficientdiagonal)) /\ (((pfc_left_degree_product_originalcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_degree_product_originalcoefficientscoefficientdiagonaltermrightinside. pfa_gap_degree_product_originalcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_degree_product_originalcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_degree_product_originalcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_degree_product_originalcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_degree_product_originalcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_degree_product_originalcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_degree_product_originalcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_degree_product_originalcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_degree_product_originalcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_degree_product_originalcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_degree_product_originalcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_degree_product_originalcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_degree_product_originalcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_degree_product_originalcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_degree_product_originalcoefficientscoefficientdiagonal)=pfc_left_degree_product_originalcoefficientscoefficientdiagonalterm*pfc_right_degree_product_originalcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_degree_product_originalcoefficientscoefficientsum fs_v_pfc_degree_product_originalcoefficientscoefficientsum. ((((exists fs_h_pfc_degree_product_originalcoefficientscoefficientsum_body_start. fs_h_pfc_degree_product_originalcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_degree_product_originalcoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_originalcoefficientscoefficientsum_body_start. fs_u_pfc_degree_product_originalcoefficientscoefficientsum = fs_q_pfc_degree_product_originalcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_degree_product_originalcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_degree_product_originalcoefficientscoefficientsum_body_terminal. fs_h_pfc_degree_product_originalcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_degree_product_originalcoefficientscoefficient) = S ((S (S (pfc_index_degree_product_originalcoefficients))) * fs_v_pfc_degree_product_originalcoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_originalcoefficientscoefficientsum_body_terminal. fs_u_pfc_degree_product_originalcoefficientscoefficientsum = fs_q_pfc_degree_product_originalcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_degree_product_originalcoefficients))) * fs_v_pfc_degree_product_originalcoefficientscoefficientsum) + (pfc_natural_sum_degree_product_originalcoefficientscoefficient))) /\ forall fs_i_pfc_degree_product_originalcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_degree_product_originalcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_degree_product_originalcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_degree_product_originalcoefficientscoefficientsum_body_steps = S (pfc_index_degree_product_originalcoefficients)) -> exists fs_a_pfc_degree_product_originalcoefficientscoefficientsum_body_steps fs_r_pfc_degree_product_originalcoefficientscoefficientsum_body_steps fs_s_pfc_degree_product_originalcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_degree_product_originalcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_degree_product_originalcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_degree_product_originalcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_degree_product_originalcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_degree_product_originalcoefficientscoefficient)) /\ exists fs_q_pfc_degree_product_originalcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_degree_product_originalcoefficientscoefficient = fs_q_pfc_degree_product_originalcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_degree_product_originalcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_degree_product_originalcoefficientscoefficient) + (fs_a_pfc_degree_product_originalcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_degree_product_originalcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_degree_product_originalcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_degree_product_originalcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_degree_product_originalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_originalcoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_originalcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_degree_product_originalcoefficientscoefficientsum = fs_q_pfc_degree_product_originalcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_degree_product_originalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_originalcoefficientscoefficientsum) + (fs_r_pfc_degree_product_originalcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_degree_product_originalcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_degree_product_originalcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_degree_product_originalcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_degree_product_originalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_originalcoefficientscoefficientsum)) /\ exists fs_q_pfc_degree_product_originalcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_degree_product_originalcoefficientscoefficientsum = fs_q_pfc_degree_product_originalcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_degree_product_originalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_degree_product_originalcoefficientscoefficientsum) + (fs_s_pfc_degree_product_originalcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_degree_product_originalcoefficientscoefficientsum_body_steps = fs_r_pfc_degree_product_originalcoefficientscoefficientsum_body_steps + fs_a_pfc_degree_product_originalcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_degree_product_originalcoefficientscoefficientresiduebound. pfa_gap_degree_product_originalcoefficientscoefficientresiduebound + S (pfc_value_degree_product_originalcoefficients) = (p)) /\ ((exists pfa_offset_left_degree_product_originalcoefficientscoefficientresiduecongruence pfa_offset_right_degree_product_originalcoefficientscoefficientresiduecongruence. (pfc_natural_sum_degree_product_originalcoefficientscoefficient) + (p) * pfa_offset_left_degree_product_originalcoefficientscoefficientresiduecongruence = (pfc_value_degree_product_originalcoefficients) + (p) * pfa_offset_right_degree_product_originalcoefficientscoefficientresiduecongruence))))))))))))))))))
  71. exact hc
  72. rewrite ha_left at htemp
  73. rewrite ha_left at htemp
  74. rewrite ha_left at htemp
  75. rewrite ha_left at htemp
  76. rewrite ha_left at htemp
  77. rewrite ha_left at htemp
  78. rewrite hb_left at htemp
  79. rewrite hb_left at htemp
  80. rewrite hb_left at htemp
  81. rewrite hb_left at htemp
  82. rewrite hb_left at htemp
  83. rewrite hb_left at htemp
  84. exact htemp
  85. have hm : ((exists pfa_gap_degree_product_leading_mulleft. pfa_gap_degree_product_leading_mulleft + S (x) = (p)) /\ (((exists pfa_gap_degree_product_leading_mulright. pfa_gap_degree_product_leading_mulright + S (x1) = (p)) /\ ((((exists pfa_gap_degree_product_leading_mulresultbound. pfa_gap_degree_product_leading_mulresultbound + S (x2) = (p)) /\ ((exists pfa_offset_left_degree_product_leading_mulresultcongruence pfa_offset_right_degree_product_leading_mulresultcongruence. ((x) * (x1)) + (p) * pfa_offset_left_degree_product_leading_mulresultcongruence = (x2) + (p) * pfa_offset_right_degree_product_leading_mulresultcongruence))))))))
  86. specialize prime_field_polynomial_convolution_leading_coefficient (p)
  87. specialize prime_field_polynomial_convolution_leading_coefficient (ab)
  88. specialize prime_field_polynomial_convolution_leading_coefficient (ac)
  89. specialize prime_field_polynomial_convolution_leading_coefficient (d)
  90. specialize prime_field_polynomial_convolution_leading_coefficient (bb)
  91. specialize prime_field_polynomial_convolution_leading_coefficient (bc)
  92. specialize prime_field_polynomial_convolution_leading_coefficient (e)
  93. specialize prime_field_polynomial_convolution_leading_coefficient (cb)
  94. specialize prime_field_polynomial_convolution_leading_coefficient (cc)
  95. specialize prime_field_polynomial_convolution_leading_coefficient (N)
  96. specialize prime_field_polynomial_convolution_leading_coefficient (x)
  97. specialize prime_field_polynomial_convolution_leading_coefficient (x1)
  98. specialize prime_field_polynomial_convolution_leading_coefficient (x2)
  99. apply prime_field_polynomial_convolution_leading_coefficient
  100. exact hcanon
  101. exact ha_right_right_witness_left
  102. exact hb_right_right_witness_left
  103. exact hout_witness
  104. rewrite hz at hm
  105. rewrite hz at hm
  106. have heither : x=0 \/ x1=0
  107. specialize prime_field_no_zero_divisors (p)
  108. specialize prime_field_no_zero_divisors (x)
  109. specialize prime_field_no_zero_divisors (x1)
  110. apply prime_field_no_zero_divisors
  111. exact hp
  112. exact hm
  113. cases heither
  114. apply ha_right_right_witness_right
  115. exact heither_left
  116. apply hb_right_right_witness_right
  117. exact heither_right
prime_field_polynomial_monic_represented_degree · unchanged support, not a new admission
forall p b c L d. (((~((L) = 0)) /\ (((forall fom_index_pfp_monic_degree_sourcecoefficients. (exists fom_gap_pfp_monic_degree_sourcecoefficients_index_bound. fom_gap_pfp_monic_degree_sourcecoefficients_index_bound + S (fom_index_pfp_monic_degree_sourcecoefficients) = L) -> exists fom_value_pfp_monic_degree_sourcecoefficients. ((((exists fom_beta_height_pfp_monic_degree_sourcecoefficients_entry. fom_beta_height_pfp_monic_degree_sourcecoefficients_entry + S (fom_value_pfp_monic_degree_sourcecoefficients) = S ((S (fom_index_pfp_monic_degree_sourcecoefficients)) * c)) /\ exists fom_beta_quotient_pfp_monic_degree_sourcecoefficients_entry. b = fom_beta_quotient_pfp_monic_degree_sourcecoefficients_entry * S ((S (fom_index_pfp_monic_degree_sourcecoefficients)) * c) + (fom_value_pfp_monic_degree_sourcecoefficients))) /\ (exists fom_gap_pfp_monic_degree_sourcecoefficients_value_bound. fom_gap_pfp_monic_degree_sourcecoefficients_value_bound + S (fom_value_pfp_monic_degree_sourcecoefficients) = p))) /\ ((((exists ff_h_pfp_monic_degree_sourceleading. ff_h_pfp_monic_degree_sourceleading + S (1) = S ((S (0)) * c)) /\ exists ff_q_pfp_monic_degree_sourceleading. b = ff_q_pfp_monic_degree_sourceleading * S ((S (0)) * c) + (1)))))))) -> L=S d -> ((((L)=S (d)) /\ (((forall fom_index_pfp_monic_degree_resultcoefficients. (exists fom_gap_pfp_monic_degree_resultcoefficients_index_bound. fom_gap_pfp_monic_degree_resultcoefficients_index_bound + S (fom_index_pfp_monic_degree_resultcoefficients) = L) -> exists fom_value_pfp_monic_degree_resultcoefficients. ((((exists fom_beta_height_pfp_monic_degree_resultcoefficients_entry. fom_beta_height_pfp_monic_degree_resultcoefficients_entry + S (fom_value_pfp_monic_degree_resultcoefficients) = S ((S (fom_index_pfp_monic_degree_resultcoefficients)) * c)) /\ exists fom_beta_quotient_pfp_monic_degree_resultcoefficients_entry. b = fom_beta_quotient_pfp_monic_degree_resultcoefficients_entry * S ((S (fom_index_pfp_monic_degree_resultcoefficients)) * c) + (fom_value_pfp_monic_degree_resultcoefficients))) /\ (exists fom_gap_pfp_monic_degree_resultcoefficients_value_bound. fom_gap_pfp_monic_degree_resultcoefficients_value_bound + S (fom_value_pfp_monic_degree_resultcoefficients) = p))) /\ ((exists pfd_leading_monic_degree_result. ((((exists ff_h_pfp_monic_degree_resultentry. ff_h_pfp_monic_degree_resultentry + S (pfd_leading_monic_degree_result) = S ((S (0)) * c)) /\ exists ff_q_pfp_monic_degree_resultentry. b = ff_q_pfp_monic_degree_resultentry * S ((S (0)) * c) + (pfd_leading_monic_degree_result))) /\ ((~(pfd_leading_monic_degree_result=0))))))))))
  1. intro p
  2. intro b
  3. intro c
  4. intro L
  5. intro d
  6. intro h
  7. intro hlen
  8. cases h
  9. cases h_right
  10. split
  11. exact hlen
  12. split
  13. exact h_right_left
  14. exists 1
  15. split
  16. exact h_right_right
  17. intro hz
  18. specialize succ_ne_zero (0)
  19. apply succ_ne_zero
  20. exact hz