Exact admission and proof evidence

121 first admissions to Alpha v33; current Alpha4092 and Stable432. The same complete377-node bundle was checked by original HA and independently by compiled Lean. Its376 theorem bodies comprise121 new and255 unchanged inherited records; one final packaging node is not a theorem.

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

Coefficients are highest-degree-first. The divisor has a nonzero decoded head; primality supplies its actual inverse. Empty quotients and remainders are included. Functionality compares the constructed execution lengths and decoded coefficients, never arbitrary beta codes. Formal polynomial equivalence compares every coefficient, not evaluations on a finite field. The formal identity and remainder-degree bound are proved separately, not assumed by the execution graph. Arbitrary quotient/remainder-pair uniqueness from a formal identity, multiplication associativity, gcd/Bezout, irreducible-polynomial existence, and the full G091 prime-power-field goal remain open. The seven displayed new names are conservative first-order notation, not new kernel primitives.

Eight complete ordinary-certificate checks

Literal artifacts and first admission

All121 bodies have complete bundle checking. Only the eight listed endpoints claim a separately expanded ordinary-certificate run. Historical working observations are not authority for this admission.

All255 inherited support bodies

zero_add · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 0 · statement SHA-256 b759e0dfbf2a583a91d2b5db09cc55d201ef09cc1690d6ab1a32fcca5af5cdb9

forall n. 0 + n = n
  1. induction n
  2. simp
  3. simp [IH]
add_succ_left · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 1 · statement SHA-256 0bc9b136088bc891fed6c9873f0dbb46abcec3b920de28f42a237cde46f40c8c

forall n m. S n + m = S (n + m)
  1. intro n
  2. induction m
  3. simp
  4. simp [IH]
add_comm · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 2 · statement SHA-256 d0964c9be754ff543a32b916d0b2a1bc278f849ba40378004f32a397d83a168c

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 3 · statement SHA-256 98bb7eada0e16e877b3f05b7f60db70be3cffb4890b28c9cb374e05d028cbd63

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 4 · statement SHA-256 7c27ee052812f6b8859296a3c956934b801dccecd4ccfc038acd0eb01d1c4d04

forall n. 0 * n = 0
  1. induction n
  2. simp
  3. simp [IH]
mul_succ_left · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 5 · statement SHA-256 aebf57da1f9dd2ebc4e114962045c6d3f807af8be3d6da14b246e2275f4851fd

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 6 · statement SHA-256 b5277583d2ad3b537c2ccf0fecc33912b9ff69674ec9659cf8d70f58b691b65d

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 7 · statement SHA-256 b1afc7125bb883fa5aaf63be201ec684eb602aaf59b0a608d920685e11d5f0ff

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 8 · statement SHA-256 085c35afadeb1fafeb905d334c75f2799104ead8ddd8e59a301230d6e5b290d6

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 9 · statement SHA-256 a3fba3e972fc2ec6f5a274a8d21550e1081cf5f1581eda98922616aa20cda490

forall n. 1 * n = n
  1. induction n
  2. simp
  3. simp [IH]
mul_one · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 10 · statement SHA-256 1c5292d92762aae47f3833dd3c85aa1275122554525aae695a40d1380c74c24e

forall n. n * 1 = n
  1. intro n
  2. simp [zero_add]
add_mul · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 11 · statement SHA-256 fb6f51d471f2e355d6d05d4075b9d56342fca469726d20d04d025dffa754c4f1

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 12 · statement SHA-256 38711df11e3d8fa1d5014115f8bcef8fbbaf89b5cdab99a80006dc2eb96b952e

forall n. ~(S n = 0)
  1. apply PA1
succ_injective · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 13 · statement SHA-256 c16217b6875dcfa0aa358b562b3a38fc782beb9f73523eb15b5daddf7971e6bc

forall n m. S n = S m -> n = m
  1. apply PA2
le_refl · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 14 · statement SHA-256 4a63925d2370803a106dd819be4a0b5369ca4575fd36d6bcdb133020703a17fd

forall n. n <= n
  1. intro n
  2. exists 0
  3. simp [zero_add]
le_trans · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 15 · statement SHA-256 9283783a3d2617190746cb05073cdf1f8a1b90c1a6bbdd640a26e28eb44b887d

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 16 · statement SHA-256 b6910d70f7897fcc08aea696e57bb6b268d9d4937bcccd9f54999333e318596e

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 17 · statement SHA-256 fc04eea446bfda394850b9d5a3e53fe40d7440b7ed9c7fc8e0446bd0f53614b4

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 18 · statement SHA-256 3d8226729f0ca1a4d22bf215c769a3dac997702556d72df032e159d67f19c546

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 19 · statement SHA-256 36359f47ba62b2438175755ce85840f484d11507996806089b029bde8060d44b

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 20 · statement SHA-256 2ef5c47f3b3ab68662be5f6d251f4137db17cf182408f3856cb3314e230fc443

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 21 · statement SHA-256 80f155113c1ed6af4126e1411c83c3c95b9f90b28aca748e5f8c2d4bd31fad9d

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 22 · statement SHA-256 fc8a78012f8f2c9041a232da57ec2f9bfe30f251aad0f88ae89f2dcd267109b0

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 23 · statement SHA-256 bf1c19bef4084f72c4802b8c142a9e877e7fea7b5a9d94dae0acc3ffba746ac5

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 24 · statement SHA-256 6f5a7cfea0dc08516fe1b42bfd4dab65d7aadd8f4f19a72e27ebce2919640c38

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 25 · statement SHA-256 8313d9a8e59db84e5f4224d1c0cb0dd21e689e5b3619ce9b00eb1008c8d157da

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 26 · statement SHA-256 cb6b9c79c0e35aa2a381057e90d5bb8f44b6d21db9895d42d2edec69095d3500

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 27 · statement SHA-256 2f327c37358783cb9ba205146b0b9b5a8960e8a54e54aadda888e43a00ff5a2c

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 28 · statement SHA-256 d3cad8d0d0ea07e339bdb8eb3b864e3511e648763977ff6882e77d60c984aa01

forall n. 0 <= n
  1. intro n
  2. exists n
  3. rewrite PA3
  4. refl
le_succ_self · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 29 · statement SHA-256 60174e116dc1779726af5ab6335933bf94a1278b174352205c842e300e570651

forall n. n <= S n
  1. intro n
  2. exists 1
  3. simp [add_succ_left, zero_add]
le_zero · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 30 · statement SHA-256 f9c4e4faa5263ab84d5c6221a21f22a3a581de21585d30f87fe8e24fcb81faef

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 31 · statement SHA-256 9f9374fe6969e53321d624beaac819c8e40bb41f0379ab9690a997b7edf9c78d

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 32 · statement SHA-256 f85ed618c604015ac31fb7aef5bb6d3fa8518fe542b1bbd1da828e9511531932

forall a b. exists k. k + a = b + a
  1. intro a
  2. intro b
  3. exists b
  4. refl
le_add_right · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 33 · statement SHA-256 43a00a7148437b96f81a2d4d1cd1b75d9c6a2c188249e6bf50becde7ec03c021

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 34 · statement SHA-256 c5ea1fada63b0616885522521837b110911a50154a49e3a6c52b103c50bda6d9

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 35 · statement SHA-256 eaf18f9365a225548fa501ab5469364d88741e493376f054045260a20e0cce78

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 36 · statement SHA-256 97c872aaa1b7fe31e8728e6f814edf1e967b5a4009d1e7716d52d4c136ac0a06

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 37 · statement SHA-256 bfa8be55903d6a037b942f30e28a0606ad55956d00b47532ab2c1cadb87d9a2a

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 38 · statement SHA-256 3adee5fa95d2437f4677d9f9a0937c5b48a7fcebb3350403b5be969ed30c7c50

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 39 · statement SHA-256 9e493b5dc3b69c4928b6407ba5dcc7ac15a4f742206233f11520326b9263aec3

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 40 · statement SHA-256 22477d2bf94cc82cddafa6b4777e965159776f7f3bdfa5c581186189fc397074

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 41 · statement SHA-256 36419ca17cc6063a3e08e29301a4d45b5e6bd4736202b70c0163315dab03f752

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 42 · statement SHA-256 c62d7d9dd2e202f7ef167c085afae1c16f5ee96d7d8269234b68249f5038f72a

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 43 · statement SHA-256 77a33ca0318a38749730ba2122d5389160258f4a01039a730ab2843f2f38995e

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 44 · statement SHA-256 8a03efb24e132c6a02cb9bc952656f9d39e68effdb3b27c76fb2a9a943f2e1a1

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 45 · statement SHA-256 8de4e5aab24028cd322fece1246d528f4edcc1b777e58b18aa81dc0caf3c282c

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 46 · statement SHA-256 67ac242c268a6e5548258ffc82934cea4f21faded2a1a32553e05a7319fad23d

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 47 · statement SHA-256 4076af297701b47b20de01d8b340853f56a9fc06955371a95cd6b71c75d50827

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 48 · statement SHA-256 fa09ddd51c91e615765e8594cb62e9e029397032fb979207ca6a4f5ffaca5d89

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 49 · statement SHA-256 54b369a63ff86b8e1c26e034c4f5570cfd0b8eaa05800eba556760aa544ee73f

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 50 · statement SHA-256 5129cc09f73a6bfed8749bccdd181148e27fa13ee31c796f9e3a8010fb8197a0

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 51 · statement SHA-256 786ef31fec8c4316918611789ef2dca6e47e7e9f7b851daabfecce387573863b

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 52 · statement SHA-256 4698e0fcd888a3b8421f8bb4c03cc180e8caffaadbb9912cb4a54e53490cab5e

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 53 · statement SHA-256 ac379ac8ead0d1bf27c1085c8406a8af96e793d92368414d19535ff3a4869db0

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 54 · statement SHA-256 af292cc4e3fc50ce80c3a2ae23dbe2465126642c0ff255428451ef0d61b547ca

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 55 · statement SHA-256 6735bc30f9bc8b28c3d07715c40ff48104313bf5ef4356b2f67502aebe9ac675

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 56 · statement SHA-256 047b84c476678d8a239b7b39ddfab05457e4bed47b5e16252da9eea346a0bd0b

forall a. exists q. 0 = a * q
  1. intro a
  2. exists 0
  3. rewrite PA5
  4. refl
multiple_refl · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 57 · statement SHA-256 ad00d15db40a3e58e2850ef3082b58a5f50debb96f5b9fafa94b2e7b886762d0

forall a. exists q. a = a * q
  1. intro a
  2. exists 1
  3. symm
  4. apply mul_one
multiple_mul_right · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 58 · statement SHA-256 d6bb86ea470eec921f64256623b7352dbfe18087dba79eaef80075c788127a5b

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 59 · statement SHA-256 2ba2b335c4bf2e997debd3b94a8dbb40cc2798f8ac297a1f1d1b467f87a23d70

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 60 · statement SHA-256 464577cb5cb19a434e48707cb1fc5d8f8bafc3bf75bb1984d8105de7c0f689ee

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 61 · statement SHA-256 1fe13b628abe4610ddc4c81d29f2daa0399dd69a81efbdc1547fbcf431482475

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 62 · statement SHA-256 fc4952ebbd4234812faddef25b4319f0f645871ab977ae50f030658b9d02b7ac

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 63 · statement SHA-256 ec5e2b8144908b29c0624e773e8e524ae5d4d0cdc7497794d587712715cab00c

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 64 · statement SHA-256 9415644052f74b1922b2b229c005100f4c4d378bbc48c63650f048c60ee5fbf3

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 65 · statement SHA-256 bc5c62f50355b14e75531ce68a6b9f6308a762c7c7b25fa2d157d2533bd9b813

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 66 · statement SHA-256 0eee24b27ab545ad57f2090e86e4ca5d21840b8a8391f41e9e8074b0ce00cf71

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 67 · statement SHA-256 672b58418edf1a0eb9c7738102c0284176cb530658deda99bef83a40a8966321

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 68 · statement SHA-256 90c22e192ead142cbbeab2f48fdc4e07711a124218e3b8105dc87df7a60f4ee2

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 69 · statement SHA-256 344ae50f597ba7d8033e2f60d4d7d8ce9a304b49aa863298f875a28c7115cb69

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 70 · statement SHA-256 bae190bbc659b21d4af75b8430aed3d2b852082c8fad967dc425f993fd83023f

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 71 · statement SHA-256 259774621ec64b47db54d52c4504abf8c9ecb2a423c0e0b08965f5a44f55ea5a

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 72 · statement SHA-256 3b6f2fba9093863f374428df77f28fc81b787a2103e0fbfbfe9a8f19db83f98a

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 73 · statement SHA-256 ee6ecd53ab81a278d0802f9d2297db20d14c702a45703340efe11f888f1eece7

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 74 · statement SHA-256 a04ae60ae70da68a964c4440c8f521856fdfdcea733d6251294357eaaeab6af8

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 75 · statement SHA-256 59e7bcfea451e25ca739bc2bdbee87e497f83db25712dc3743e1fa10c36e075e

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 76 · statement SHA-256 a1c724b5b09f2645426190ed9da60a61d5fcdd1f1c7f963e768a890d4df4a8de

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 77 · statement SHA-256 5a0429f7b8a6b245056b0fe0e9a1651c4eb4818dce780e85f75082d2c19e5cb8

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 78 · statement SHA-256 1c3666be9deded79202818d9d6228aa230fefc0d123b60b73614b8a34483ff9c

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 79 · statement SHA-256 c13a817645afe596d7f55f88eb9400073ae742c17213dfbf907f4c497aa1aca1

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 80 · statement SHA-256 f74d3a446b0634b8019db1906e37846c34e3d71f60d5261139ed9ed69b465ed7

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 81 · statement SHA-256 ebafa11a2163b9a35d431eea316b19c434ff1f6fd8d702b76530f1b8c1292bfb

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 82 · statement SHA-256 fcff327b653f93b5a53460bbb0dc67a5e04ee9212c0d1a88a04bdecf93d17add

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 83 · statement SHA-256 198ad914d976d480b8d9df5b0ada71e74e1be9e0b01656dd7e641038874ff27e

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 84 · statement SHA-256 07009140b6d6d7f4e1e34d6c33bf1b007ea29c26a14eeafa9b2fa3d377abe7a9

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 85 · statement SHA-256 6e8c1e97ea5c4221a993e587d4475550418981e5fbef1b4c65e149dee0713ddd

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 86 · statement SHA-256 8733e14f0e281c8da5e450d12fe21b7d5929d4b5e9953d867333be510677d636

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 87 · statement SHA-256 dbadf46b1b0bf5a186fbdd59491a88885e0649b62e28e8465f6dee8bdb9e21fe

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 88 · statement SHA-256 a3983a74ea581e76450a400c1ed5b4e06e6feac6ff9a6ebb90d8f82f3c316d2b

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 89 · statement SHA-256 5329024af13cfcbc0e4662ef24110fcbe2ece3d384ffca5c07cf3f6b7a49b55b

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 90 · statement SHA-256 8e73abc172b556b5fb557c527977e6f07c1e366080b207163dd58b7931643c0d

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 91 · statement SHA-256 03d36e6993b3691311ccb9e9e75006895f186ff659f1042d9b69fe4811db2360

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 92 · statement SHA-256 6701007cb46c44334c05d9bd894078b9b002f9624b4057b9203dd83087294526

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 93 · statement SHA-256 2d7d05bc900916fb1c5e23a402436d7e460ee6ad7ac1de57ba9cc1db76a9c095

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 94 · statement SHA-256 acd7a937d6ec7c3c4d6214357bdfcdf3a975ccd71f7e14a540a1690d5e9b1773

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 95 · statement SHA-256 eac0700b7c24aa059073c61ffdf1541dc02d23400571b003fe964b9df65f5afd

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 96 · statement SHA-256 9934b7b533260bf9c2c53f4a06d653873048b3ccb1b78fba0bd897fe6a604536

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 97 · statement SHA-256 3b77bc1178426af328d8421d69095fe945c23fc793c323a9ffe5bb51c5e73799

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 98 · statement SHA-256 7c933e89b5e783e0fe57654937ee8202b8b0a917184b23463fccbda85de308b0

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 99 · statement SHA-256 2b9829ff7d6d6582927a7b85c058b531717e3d91259f9bcc574a76f687eec068

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 100 · statement SHA-256 ff9e6397219fcf402e7a0e46e5d1ce0cee284f43b12ebdd124e21082c0170db4

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 101 · statement SHA-256 25e1f5213a9a5b04f3a20077b936ba8814f6ae8951f4f72e5f5e2135d7c9148f

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 102 · statement SHA-256 e3888d0932249958689f3ec9e8d191cf866212c101dabfe5b62c198c39c4d373

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 103 · statement SHA-256 5e42d3c08bd8cc965eac53bfd7e6abfdf30d1a27ee43f0d38ab3febc24389b0f

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 104 · statement SHA-256 df6c3daf567bc06a5ca361d2b1cfc976d2ec1bca03f3b8dd5e24dba8b0070602

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 105 · statement SHA-256 7a8fdf6f5a7e1d28efecf7a58005eb7f45d21dccd7aee4cb2cd8acbe7ca792ec

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 106 · statement SHA-256 ad3921906117ef267f82ff3e9be6d228c7872b98fccb582228c9d4a86866019f

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 107 · statement SHA-256 d63d720fac911184a5163168382a134d76d511a2c6708360a83516556f3568df

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 108 · statement SHA-256 eb5bc880e1349d365cef2c73bd1b3412bac10615d2c14180fddbbb2f54dbcc2c

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 109 · statement SHA-256 1060b24a0e43b4388c2ac9ecac0e76f60914ccf6cd449d37592e4b4d22461735

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 110 · statement SHA-256 246654070ff9a4577e17991d9189766a93fe7c11629ec2303a8ad111c86451e3

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 111 · statement SHA-256 41595b681a738bcfa873935a4aed93b2a865da235cc68d0910aba631cfd4e432

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 112 · statement SHA-256 4bfe67ec918a0e0f7c189a56fda0d1b256ecaefc78272611b51ec68507987b7d

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 113 · statement SHA-256 a0b0b9cc668ff0d5345e4b2e41b08ac66b3210e536258d53f95b88337c01876c

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 114 · statement SHA-256 850c8372cd6743df77e4354d3cf23d92749917cdda214f1c1ac0dbe0868b32f9

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 115 · statement SHA-256 3a0c9778138f2ee2ecbab9a5c829a4b1f40f19de61b65eae4765f67ebb1dedaa

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 116 · statement SHA-256 a514ad09db5eae76cb17193a87016a905895f8450a3f9bb35dc77ef00b299945

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 117 · statement SHA-256 723e34f7303079ad1d5510dcde76756e36f758aed266f6bf8bd225aa8b568268

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 118 · statement SHA-256 17864693ef24007d91e415865da8a8623b72bb3e2c4aae995e72665c9929fb8c

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 119 · statement SHA-256 623df71bb00a1df01ed2b113ce65eb8e8c1b5ae56fd4a92a05861cd2b914b2bb

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 120 · statement SHA-256 29947a185cb5bd3e6d5f3addc026b0c148f4e5aca0428989ce28c64955dce949

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 121 · statement SHA-256 9eaa14524e19b2f11771b44c6676033b3e31080ee96371c11bac0f48ca1c51f6

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 122 · statement SHA-256 29564e9bae7783feeb631c02f82f5e9af720bdfd28c9b4c49aba47a41ff0d6c3

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 123 · statement SHA-256 292c7a2a1abbf591e9a3cfd77ad0533f12761f691460fca7a20f413c6f66a1e0

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 124 · statement SHA-256 e310ccf777e1102929f85585d9a0f2f8e771b6b05ea09fefb03c5026cd529b8d

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 125 · statement SHA-256 9657ca6ff3e3194dc5682b2e780c25ad3330f8b0ca3f2bde6a8d75a22c4bb377

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 126 · statement SHA-256 9ab591572e48818c23c1accbf4f53decd14eef661b0bd6895ebf7e41bb392b3f

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 127 · statement SHA-256 33b236e8989b0560f501fb96456435aa960b02ff3e1287a13ebc3c3e17311d49

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 128 · statement SHA-256 612a0e917da04e586df00f3ed45e38c8bb9ecffbc9c915e7406656c5c64df9e1

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 129 · statement SHA-256 97209b3dd1a6cecb2ed728484fcab57198efa167eb4bab80ccdd89abc6807088

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 130 · statement SHA-256 62b0f92e036d1d11e2dcf21fbad7d45678527d8172360c84fa5ef3cbbf67d14c

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 131 · statement SHA-256 9f3fed643e53f457ebf661ddcd2751fe7599a5da1ee869289435c099655e5617

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 132 · statement SHA-256 a4ad6bb157898eb13c75907ede72658f8ddc10374241fb93e85d8f18316099a3

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 133 · statement SHA-256 4db612970c1ab4a1eae11fcf82cecc2995f92ee6faf50a15913992a659d3b21e

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 134 · statement SHA-256 fd7e87b5f6bf3f681f5119dcb26cf9c39ac85d96285aa1bf7e249703f41caf74

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 135 · statement SHA-256 ecf90e2a2b39c046b09e297ac8c4e4a0c9122aa11397c99afae298f12a69ca79

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 136 · statement SHA-256 3a8ad3ae322bd05c47a4380f4a6b0d4e508ebc5fca17d5fe6bb11284889f30e4

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 137 · statement SHA-256 76aa796de70dbf5de160aff93193b6fb873ffc4a3cd16db90390ba6b19865539

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
prime_mod_inverse · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 138 · statement SHA-256 514c8bb65e398f96a858acb9475416823924b2782fa7282b01477b9ddd379373

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 139 · statement SHA-256 4829550fa55790a5ce617b99bbd357d27af724ca5316fbc0a5afef062fb3a1f6

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 140 · statement SHA-256 3ade15c63f82b8b6f96ddbc586c1b59313dee6864a8e2cc690c3359b19cebc7e

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 · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 141 · statement SHA-256 67905ae851dfcbf579ebf65b1f411b870c81a35367a23dea591006a7d8a1df92

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
bounded_mod_inverse_unique · inherited Alpha-v32 support · Stable member

Not a new v33 admission. Bundle node 142 · statement SHA-256 d4545da3327b3ba077e2ecf511b4f0b00ea44c3afdc5af430ae6495f659e3b99

forall p x y z. (exists wip_strict_gap_unique_y_bound. wip_strict_gap_unique_y_bound + S y = p) -> (exists wip_strict_gap_unique_z_bound. wip_strict_gap_unique_z_bound + S z = p) -> (exists wip_mod_left_unique_xy wip_mod_right_unique_xy. x * y + p * wip_mod_left_unique_xy = 1 + p * wip_mod_right_unique_xy) -> (exists wip_mod_left_unique_xz wip_mod_right_unique_xz. x * z + p * wip_mod_left_unique_xz = 1 + p * wip_mod_right_unique_xz) -> y = z
  1. intro p
  2. intro x
  3. intro y
  4. intro z
  5. intro hy
  6. intro hz
  7. intro hxy
  8. intro hxz
  9. have hreverse : exists wip_mod_left_unique_reverse_xz wip_mod_right_unique_reverse_xz. 1 + p * wip_mod_left_unique_reverse_xz = x * z + p * wip_mod_right_unique_reverse_xz
  10. specialize mod_eq_symm p
  11. specialize mod_eq_symm (x * z)
  12. specialize mod_eq_symm 1
  13. apply mod_eq_symm
  14. exact hxz
  15. have hleftscaled : exists wip_mod_left_unique_left_scaled wip_mod_right_unique_left_scaled. y * 1 + p * wip_mod_left_unique_left_scaled = y * (x * z) + p * wip_mod_right_unique_left_scaled
  16. specialize mod_eq_mul_left p
  17. specialize mod_eq_mul_left 1
  18. specialize mod_eq_mul_left (x * z)
  19. specialize mod_eq_mul_left y
  20. apply mod_eq_mul_left
  21. exact hreverse
  22. have hrightscaled : exists wip_mod_left_unique_right_scaled wip_mod_right_unique_right_scaled. (x * y) * z + p * wip_mod_left_unique_right_scaled = 1 * z + p * wip_mod_right_unique_right_scaled
  23. specialize mod_eq_mul_right p
  24. specialize mod_eq_mul_right (x * y)
  25. specialize mod_eq_mul_right 1
  26. specialize mod_eq_mul_right z
  27. apply mod_eq_mul_right
  28. exact hxy
  29. have hleft : y * 1 = y
  30. specialize mul_one y
  31. exact mul_one
  32. have hmiddle : y * (x * z) = (x * y) * z
  33. trans (y * x) * z
  34. symm
  35. specialize mul_assoc y
  36. specialize mul_assoc x
  37. specialize mul_assoc z
  38. apply mul_assoc
  39. congr
  40. apply mul_comm
  41. refl
  42. have hright : 1 * z = z
  43. specialize one_mul z
  44. exact one_mul
  45. rewrite hleft at hleftscaled
  46. rewrite hmiddle at hleftscaled
  47. rewrite hright at hrightscaled
  48. have hyz : exists wip_mod_left_unique_result wip_mod_right_unique_result. y + p * wip_mod_left_unique_result = z + p * wip_mod_right_unique_result
  49. specialize mod_eq_trans p
  50. specialize mod_eq_trans y
  51. specialize mod_eq_trans ((x * y) * z)
  52. specialize mod_eq_trans z
  53. apply mod_eq_trans
  54. exact hleftscaled
  55. exact hrightscaled
  56. specialize mod_eq_bounded_unique p
  57. specialize mod_eq_bounded_unique y
  58. specialize mod_eq_bounded_unique z
  59. apply mod_eq_bounded_unique
  60. exact hy
  61. exact hz
  62. exact hyz
beta_pointwise_mul_prefix_extend · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 143 · statement SHA-256 effadbb2e017f714693b0a8fe3f2353d70a99f85925ad603028899f3d95b54bb

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 144 · statement SHA-256 61170d1ab57371e2d19f5f39e0d8f8a69ca31b2d0918a5e33a3a10c72fba8019

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 145 · statement SHA-256 cec6006a1941b572a48c95a09f08c4d8bf3322a3560c43f2a949767dd791ff87

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 146 · statement SHA-256 d82de890a8fdd2afd3f31bb1621391d7f8385f5ca7d8f78ca5556f6c5f40ec89

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 147 · statement SHA-256 ef6c6fcebc40c7149a557d9037414398349e241100405799e4fc2bbd5c9913b0

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 148 · statement SHA-256 2dfa98ec8006d553d44bd99dabe7b140a4d391a404e6dab15e06197eb7f1e68e

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 149 · statement SHA-256 23d4db00ce4416e5516a6c9dc938a937725631c60c72d4dc7e0c76c61d5ed540

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 150 · statement SHA-256 1b3c7c140e6ce0e53d771c6580a3b8cf081835013d994878a22e5de1d1a04e7c

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 151 · statement SHA-256 49d9f50bc9b4d137d364a205bb2afe51958c8cd3f5cc774791700a5e7a601c9e

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 152 · statement SHA-256 5b602c75911b18361b15f04f92ea048d28eed96baaf885cb02fb622830419a50

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
binary_canonical_residue_functional · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 153 · statement SHA-256 6ceca7d1c5171f65ecad03675e8ac1c4a69bfaf38c82b9a3423795134e3c797d

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 154 · statement SHA-256 066c15de995914fe5c790c0ff3d913e5968f3e7f03d152ed028aaa9bafc96441

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 155 · statement SHA-256 6087cc007f5164665c5bf8cc8232594a35c74d0229c5249183a6b433d43f4f54

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 156 · statement SHA-256 def8c34a80f6fcb1eeb267cc02a6868ea60a878b61a1f132c9aa8794c16f38d1

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 157 · statement SHA-256 fd0bc4e5fb8aed4bafa978311940d6b51528b6ab4fda3ac0dc6a26838b0f2faa

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 158 · statement SHA-256 cdeb4b26ef07b798ef8fa0f8e5a7407b1566606bbcc549462d3af17ed78a8ea7

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
hensel_canonical_residue_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 159 · statement SHA-256 dc9639fa0704fb3ca2c3f58b70e86c9f0522c288847b73b1163b476cdf712610

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 160 · statement SHA-256 233df7be3e22de3a0fa76280abd2fa68dbe6e4977ec4e247d20cdadad8534453

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_mod_of_equal · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 161 · statement SHA-256 6dae761ed991e6c1ccf4da589783450f2d4cf3ba4cb315292c94a8bba33fdce9

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_zero_below_prime · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 162 · statement SHA-256 0ca8b7560d07740725a4338b9178c29262b28e42b942dd7d3f916ebbc8994a65

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
prime_field_residue_reflexive · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 163 · statement SHA-256 d2f71ba56bfef6344db6ecf06faa53db86a44fa6662b28eb9995f7e78964c34e

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_input_equal · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 164 · statement SHA-256 8a67e6b41afbd90d000146e21cc49bd896ad98a1f49f9abdb1a9dad0ed415f15

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_residue_bounded_value · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 165 · statement SHA-256 b00356da2ba62c76d1f86eaafa4748773449d83bde803ce79ffce841e10c7eb6

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_add_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 166 · statement SHA-256 f868f012a0cf475ff501e3a1889c43a6ffe188c356b48a599e0c09dc944c249f

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_functional · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 167 · statement SHA-256 30463b4d09266ac2d9772aab0c66c91c7d0cb7d126004461f56772d6c785cc5a

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_add_commutative · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 168 · statement SHA-256 6b6feebc3278dbe6c1f0e607290ea212c37e926e5deafc09806c985281266eef

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_multiply_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 169 · statement SHA-256 c69574574d3f512ae1f7bee7bd628795a321f8ac444161a4171e9d921cd544a1

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
prime_field_multiply_functional · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 170 · statement SHA-256 f824a9ae47e91cfab40a6fe0f3799442ce2500eef067434c7f2c536be1020d26

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_multiply_commutative · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 171 · statement SHA-256 aba2977f822869aa78817c12dad704c3d93aebaf2c762692d76be540923655ff

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_add_associative · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 172 · statement SHA-256 c9db339df9862949b1545c9b23388756020fcac89a1a0cbe219a8e6c33138a11

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_multiply_associative · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 173 · statement SHA-256 336b83b70a36429e4ae3310807df7b0d0becbb681ff562e22ed31ec3d65c76b0

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_add_zero_right · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 174 · statement SHA-256 da05372cea2d4e4921c6c60c8e37d16e7abc18ed004d242b61f4494eea636530

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 175 · statement SHA-256 469e5eb02eedb1a79a093ee26fb4bb2ca2b7adedf500f210ba12c8ba9db80cf2

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_multiply_one_right · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 176 · statement SHA-256 a5cfe9255b0e4554a42c2f88868228e2f191b53828fac88db3288b5d49cee03d

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 177 · statement SHA-256 2f74146518b15a749b86265bd455b8584ef930b2f1ac71d05ee5d1555eab94ed

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_multiply_zero_right · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 178 · statement SHA-256 0b527a155868a16af18fafdccf7acef9783dabe55f6baf908274dfe83316d93f

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_add_cancel_left · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 179 · statement SHA-256 ca97b53d21ba62d358ca3a26b48dc167952ae24a9ee30ff7680112677759d999

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_negate_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 180 · statement SHA-256 b3526ca11f4aa9e065f9752287cffc8b5eb89550ee03a199ae84a18556c217ba

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_inverse_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 181 · statement SHA-256 980d7273a6f19d41dc37d9d4918b8a00d4b22d0d13ed871bd9145e36755a6f61

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_inverse_functional · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 182 · statement SHA-256 610f20c0b7bc4fb9539b3bb8757aa90d75f31930c4c7cd620432fcb0916746c7

forall p a b c. (((~((a) = 0)) /\ ((((exists pfa_gap_inverse_firstmultiplicationleft. pfa_gap_inverse_firstmultiplicationleft + S (a) = (p)) /\ (((exists pfa_gap_inverse_firstmultiplicationright. pfa_gap_inverse_firstmultiplicationright + S (b) = (p)) /\ ((((exists pfa_gap_inverse_firstmultiplicationresultbound. pfa_gap_inverse_firstmultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_inverse_firstmultiplicationresultcongruence pfa_offset_right_inverse_firstmultiplicationresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_inverse_firstmultiplicationresultcongruence = (1) + (p) * pfa_offset_right_inverse_firstmultiplicationresultcongruence)))))))))))) -> (((~((a) = 0)) /\ ((((exists pfa_gap_inverse_secondmultiplicationleft. pfa_gap_inverse_secondmultiplicationleft + S (a) = (p)) /\ (((exists pfa_gap_inverse_secondmultiplicationright. pfa_gap_inverse_secondmultiplicationright + S (c) = (p)) /\ ((((exists pfa_gap_inverse_secondmultiplicationresultbound. pfa_gap_inverse_secondmultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_inverse_secondmultiplicationresultcongruence pfa_offset_right_inverse_secondmultiplicationresultcongruence. ((a) * (c)) + (p) * pfa_offset_left_inverse_secondmultiplicationresultcongruence = (1) + (p) * pfa_offset_right_inverse_secondmultiplicationresultcongruence)))))))))))) -> b = c
  1. intro p
  2. intro a
  3. intro b
  4. intro c
  5. intro hb
  6. intro hc
  7. cases hb
  8. cases hb_right
  9. cases hb_right_right
  10. cases hb_right_right_right
  11. cases hc
  12. cases hc_right
  13. cases hc_right_right
  14. cases hc_right_right_right
  15. specialize bounded_mod_inverse_unique (p)
  16. specialize bounded_mod_inverse_unique (a)
  17. specialize bounded_mod_inverse_unique (b)
  18. specialize bounded_mod_inverse_unique (c)
  19. apply bounded_mod_inverse_unique
  20. exact hb_right_right_left
  21. exact hc_right_right_left
  22. exact hb_right_right_right_right
  23. exact hc_right_right_right_right
prime_field_polynomial_normalization_from_division · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 183 · statement SHA-256 35f1d5d132dc9cfec171139fc1613a31252e42e8fca9a095f8096335d405b306

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 184 · statement SHA-256 fc691cdfddf49e1a62efec0e453562a4f92e605903fd5907835ab03472dba157

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_polynomial_add_entry · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 185 · statement SHA-256 3822c1cb92ee314db9989f85492490b7ebe47dfcd2717f24e7b8fb1de7cfe7b4

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
prime_field_polynomial_add_bounded · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 186 · statement SHA-256 ae4ad7dcaa66a4f97f16aab74c42173cef063ab4b288140bdc566d6b32dfb26e

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_polynomial_add_functional · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 187 · statement SHA-256 8f864f869b0b6846487cae5f80d402f778dbb633c7a8b7f3fd9f238136f4dfa6

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_scale_from_normalization · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 188 · statement SHA-256 1955b2fa2a5b6af239f13b79a825986de4ad0750d5c6b3f717f885d8e1a92631

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 189 · statement SHA-256 05428ef8dbdd1751708288e1153c03b9f565d8b50900118153fa4c031e52b278

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_entry · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 190 · statement SHA-256 7ece59877d49222f32886e569691e4309b9acebdb12238fbda11712669abae4b

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
prime_field_polynomial_scale_bounded · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 191 · statement SHA-256 6fe3b703f788bbfcb279577d621eb93810dcfe01db5526c261f591dad9b11a44

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_polynomial_scale_transport · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 192 · statement SHA-256 bc1419f45446bab30caaa1d0592e30309230605969b0e488af86f983d9a3250f

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_scale_one · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 193 · statement SHA-256 3a93ef4144478db7e14db037c4f9b07e075e5874226cdd5db2fe6afddf998ce5

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_associative · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 194 · statement SHA-256 34783333ce4daff9f00ca102f4fe7f5720249c018a2abd40afabe00c6fb3163f

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
polynomial_zero_extended_entry_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 195 · statement SHA-256 4dbd13a1eb66b9560eeed8d9d77806ca26dc4269488940b011a8d48a69d31fc0

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 196 · statement SHA-256 a808a7fdf4d1fe772fc5dd5752d80a22bbf8b4614ad4bfb897ab07c7e469fa89

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
polynomial_zero_extended_entry_inside · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 197 · statement SHA-256 4a43635d934708c5bee45b52f93a2f4e400770c1af0381714f858a6d24971a0d

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
polynomial_zero_extended_entry_transport · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 198 · statement SHA-256 c3cf5c8d38a4918f961a4ef861eb8198b2272e31e63fe2b73926ddfba2fa3c43

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_zero_extended_zero_value · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 199 · statement SHA-256 ef59f2fce86abd3cb8b1cf822957f9a2046d9f2071abde42b95d1e372d48f026

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_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 200 · statement SHA-256 542cf693d7ac5bdc40c4b9bbe1d0724d9e8238e1b04f4a61192e45c50ec1bbdf

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_term_functional · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 201 · statement SHA-256 5db3f2959a2da32826e254d59a442985a97570cffc91eefbbd3965f23ce3cf4e

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_term_transport · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 202 · statement SHA-256 7211c0336cdb339b1ce4ac105632c77111045932bc2a1761ef4872ec4703f684

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_term_zero_left · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 203 · statement SHA-256 6466b449ceec0861a86b0554524d46c376e33ac60033a24d9ef59b00e2bc8b0d

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
polynomial_diagonal_term_zero_right · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 204 · statement SHA-256 ece90a7924b123ef610b4f56fc568841af320732fc5a366f3c43377467dbdd57

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
polynomial_diagonal_term_past_support · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 205 · statement SHA-256 f7a587b10eee6a825333f18d26c1fe172aee82dc503fc11ca7745765daddc67c

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
polynomial_diagonal_prefix_entry · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 206 · statement SHA-256 395aaa03e1ac5b8cfdd29791cb6a29e93a4c1a933c204ab4d5142d6f919f716a

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_from_pointwise · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 207 · statement SHA-256 b2d3ce425b183f513b3c973323841654b4c4219b05ca49742c8715f60b84b05a

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_prefix_functional · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 208 · statement SHA-256 2c92bd1550e3a3adf207e60f658799e971fbc68ef75f533aed5e33adf707fea9

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
polynomial_diagonal_prefix_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 209 · statement SHA-256 1232289d771ccc9da8f958da18d17273ec63a40683d77c6b702cad274c40da73

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
polynomial_diagonal_prefix_input_transport · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 210 · statement SHA-256 0eee93535c776e98e6667a51d15691fa14640e0e6a968c3e2d15c1962a4f92ce

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_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 211 · statement SHA-256 37b4cfe208f2aa7330d3c96e61d2282a19bd4d480797b309a3142b2ba2345e5f

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_coefficient_functional · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 212 · statement SHA-256 72b9b85d27f8a691468d76df8bfb2cc9817d837000ece5f325f18c496cbfaa9c

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
prime_field_convolution_coefficient_bounded · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 213 · statement SHA-256 cefc4f251e2a51096b96ee5c64ef8bd2b989182937999edde121e721850d0460

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_coefficient_transport · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 214 · statement SHA-256 305624e426212382fffb0e919b607c3122ed712a568572b3eeceb26503d4a5ce

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_convolution_coefficient_zero_left · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 215 · statement SHA-256 8c4c119a6c21ea6e53caab246406b09aebb21072d080af4b29089494c7635274

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
prime_field_convolution_coefficient_zero_right · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 216 · statement SHA-256 669ceda800776b70fdc705d7ffbcef98a19ec46f4d60bea82a3b5bd57b3a7b1b

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
prime_field_convolution_coefficient_zero_past_support · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 217 · statement SHA-256 7e8bd8fc60ea17c8fefd0b1e08b90b8375d2556c1fbdf0a0481c910897ce5e28

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_convolution_prefix_entry · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 218 · statement SHA-256 d21408e47652092765493134991d8b9f3d00417e446dc35f5cc573376e282b11

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
prime_field_convolution_prefix_from_pointwise · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 219 · statement SHA-256 edd6de9b1ef2203a6b165ca7302bbcd9244a0b9de90eb6c138b122a8f14887b3

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
prime_field_convolution_prefix_functional · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 220 · statement SHA-256 cd99928d1d4054c4d2959b1a7f0adf41cc20457a825645848271ee564442a8be

forall p ab ac L bb bc M 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_terms_code_prefix_unique_firstcoefficient pfc_terms_scale_prefix_unique_firstcoefficient pfc_natural_sum_prefix_unique_firstcoefficient. ((forall pfc_index_prefix_unique_firstcoefficientdiagonal. (exists pfa_gap_prefix_unique_firstcoefficientdiagonalbound. pfa_gap_prefix_unique_firstcoefficientdiagonalbound + S (pfc_index_prefix_unique_firstcoefficientdiagonal) = (S (pfc_index_prefix_unique_first))) -> exists pfc_value_prefix_unique_firstcoefficientdiagonal. ((((exists ff_h_pfp_prefix_unique_firstcoefficientdiagonalentry. ff_h_pfp_prefix_unique_firstcoefficientdiagonalentry + S (pfc_value_prefix_unique_firstcoefficientdiagonal) = S ((S (pfc_index_prefix_unique_firstcoefficientdiagonal)) * pfc_terms_scale_prefix_unique_firstcoefficient)) /\ exists ff_q_pfp_prefix_unique_firstcoefficientdiagonalentry. pfc_terms_code_prefix_unique_firstcoefficient = ff_q_pfp_prefix_unique_firstcoefficientdiagonalentry * S ((S (pfc_index_prefix_unique_firstcoefficientdiagonal)) * pfc_terms_scale_prefix_unique_firstcoefficient) + (pfc_value_prefix_unique_firstcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_unique_firstcoefficientdiagonalterm pfc_left_prefix_unique_firstcoefficientdiagonalterm pfc_right_prefix_unique_firstcoefficientdiagonalterm. (((pfc_index_prefix_unique_firstcoefficientdiagonal)+pfc_complement_prefix_unique_firstcoefficientdiagonalterm=(pfc_index_prefix_unique_first)) /\ ((((((exists pfa_gap_prefix_unique_firstcoefficientdiagonaltermleftinside. pfa_gap_prefix_unique_firstcoefficientdiagonaltermleftinside + S (pfc_index_prefix_unique_firstcoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_unique_firstcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_unique_firstcoefficientdiagonaltermleftentry + S (pfc_left_prefix_unique_firstcoefficientdiagonalterm) = S ((S (pfc_index_prefix_unique_firstcoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_prefix_unique_firstcoefficientdiagonaltermleftentry. ab = ff_q_pfp_prefix_unique_firstcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_unique_firstcoefficientdiagonal)) * ac) + (pfc_left_prefix_unique_firstcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_unique_firstcoefficientdiagonaltermleftoutside. pfc_gap_prefix_unique_firstcoefficientdiagonaltermleftoutside+(L)=(pfc_index_prefix_unique_firstcoefficientdiagonal)) /\ (((pfc_left_prefix_unique_firstcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_unique_firstcoefficientdiagonaltermrightinside. pfa_gap_prefix_unique_firstcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_unique_firstcoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_unique_firstcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_unique_firstcoefficientdiagonaltermrightentry + S (pfc_right_prefix_unique_firstcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_unique_firstcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_prefix_unique_firstcoefficientdiagonaltermrightentry. bb = ff_q_pfp_prefix_unique_firstcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_unique_firstcoefficientdiagonalterm)) * bc) + (pfc_right_prefix_unique_firstcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_unique_firstcoefficientdiagonaltermrightoutside. pfc_gap_prefix_unique_firstcoefficientdiagonaltermrightoutside+(M)=(pfc_complement_prefix_unique_firstcoefficientdiagonalterm)) /\ (((pfc_right_prefix_unique_firstcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_unique_firstcoefficientdiagonal)=pfc_left_prefix_unique_firstcoefficientdiagonalterm*pfc_right_prefix_unique_firstcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_unique_firstcoefficientsum fs_v_pfc_prefix_unique_firstcoefficientsum. ((((exists fs_h_pfc_prefix_unique_firstcoefficientsum_body_start. fs_h_pfc_prefix_unique_firstcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_unique_firstcoefficientsum)) /\ exists fs_q_pfc_prefix_unique_firstcoefficientsum_body_start. fs_u_pfc_prefix_unique_firstcoefficientsum = fs_q_pfc_prefix_unique_firstcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_unique_firstcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_unique_firstcoefficientsum_body_terminal. fs_h_pfc_prefix_unique_firstcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_unique_firstcoefficient) = S ((S (S (pfc_index_prefix_unique_first))) * fs_v_pfc_prefix_unique_firstcoefficientsum)) /\ exists fs_q_pfc_prefix_unique_firstcoefficientsum_body_terminal. fs_u_pfc_prefix_unique_firstcoefficientsum = fs_q_pfc_prefix_unique_firstcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_unique_first))) * fs_v_pfc_prefix_unique_firstcoefficientsum) + (pfc_natural_sum_prefix_unique_firstcoefficient))) /\ forall fs_i_pfc_prefix_unique_firstcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_unique_firstcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_unique_firstcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_unique_firstcoefficientsum_body_steps = S (pfc_index_prefix_unique_first)) -> exists fs_a_pfc_prefix_unique_firstcoefficientsum_body_steps fs_r_pfc_prefix_unique_firstcoefficientsum_body_steps fs_s_pfc_prefix_unique_firstcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_unique_firstcoefficientsum_body_steps_summand. fs_h_pfc_prefix_unique_firstcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_unique_firstcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_unique_firstcoefficientsum_body_steps)) * pfc_terms_scale_prefix_unique_firstcoefficient)) /\ exists fs_q_pfc_prefix_unique_firstcoefficientsum_body_steps_summand. pfc_terms_code_prefix_unique_firstcoefficient = fs_q_pfc_prefix_unique_firstcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_unique_firstcoefficientsum_body_steps)) * pfc_terms_scale_prefix_unique_firstcoefficient) + (fs_a_pfc_prefix_unique_firstcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_unique_firstcoefficientsum_body_steps_partial. fs_h_pfc_prefix_unique_firstcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_unique_firstcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_unique_firstcoefficientsum_body_steps)) * fs_v_pfc_prefix_unique_firstcoefficientsum)) /\ exists fs_q_pfc_prefix_unique_firstcoefficientsum_body_steps_partial. fs_u_pfc_prefix_unique_firstcoefficientsum = fs_q_pfc_prefix_unique_firstcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_unique_firstcoefficientsum_body_steps)) * fs_v_pfc_prefix_unique_firstcoefficientsum) + (fs_r_pfc_prefix_unique_firstcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_unique_firstcoefficientsum_body_steps_successor. fs_h_pfc_prefix_unique_firstcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_unique_firstcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_unique_firstcoefficientsum_body_steps)) * fs_v_pfc_prefix_unique_firstcoefficientsum)) /\ exists fs_q_pfc_prefix_unique_firstcoefficientsum_body_steps_successor. fs_u_pfc_prefix_unique_firstcoefficientsum = fs_q_pfc_prefix_unique_firstcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_unique_firstcoefficientsum_body_steps)) * fs_v_pfc_prefix_unique_firstcoefficientsum) + (fs_s_pfc_prefix_unique_firstcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_unique_firstcoefficientsum_body_steps = fs_r_pfc_prefix_unique_firstcoefficientsum_body_steps + fs_a_pfc_prefix_unique_firstcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_unique_firstcoefficientresiduebound. pfa_gap_prefix_unique_firstcoefficientresiduebound + S (pfc_value_prefix_unique_first) = (p)) /\ ((exists pfa_offset_left_prefix_unique_firstcoefficientresiduecongruence pfa_offset_right_prefix_unique_firstcoefficientresiduecongruence. (pfc_natural_sum_prefix_unique_firstcoefficient) + (p) * pfa_offset_left_prefix_unique_firstcoefficientresiduecongruence = (pfc_value_prefix_unique_first) + (p) * pfa_offset_right_prefix_unique_firstcoefficientresiduecongruence)))))))))))) -> (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_terms_code_prefix_unique_secondcoefficient pfc_terms_scale_prefix_unique_secondcoefficient pfc_natural_sum_prefix_unique_secondcoefficient. ((forall pfc_index_prefix_unique_secondcoefficientdiagonal. (exists pfa_gap_prefix_unique_secondcoefficientdiagonalbound. pfa_gap_prefix_unique_secondcoefficientdiagonalbound + S (pfc_index_prefix_unique_secondcoefficientdiagonal) = (S (pfc_index_prefix_unique_second))) -> exists pfc_value_prefix_unique_secondcoefficientdiagonal. ((((exists ff_h_pfp_prefix_unique_secondcoefficientdiagonalentry. ff_h_pfp_prefix_unique_secondcoefficientdiagonalentry + S (pfc_value_prefix_unique_secondcoefficientdiagonal) = S ((S (pfc_index_prefix_unique_secondcoefficientdiagonal)) * pfc_terms_scale_prefix_unique_secondcoefficient)) /\ exists ff_q_pfp_prefix_unique_secondcoefficientdiagonalentry. pfc_terms_code_prefix_unique_secondcoefficient = ff_q_pfp_prefix_unique_secondcoefficientdiagonalentry * S ((S (pfc_index_prefix_unique_secondcoefficientdiagonal)) * pfc_terms_scale_prefix_unique_secondcoefficient) + (pfc_value_prefix_unique_secondcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_unique_secondcoefficientdiagonalterm pfc_left_prefix_unique_secondcoefficientdiagonalterm pfc_right_prefix_unique_secondcoefficientdiagonalterm. (((pfc_index_prefix_unique_secondcoefficientdiagonal)+pfc_complement_prefix_unique_secondcoefficientdiagonalterm=(pfc_index_prefix_unique_second)) /\ ((((((exists pfa_gap_prefix_unique_secondcoefficientdiagonaltermleftinside. pfa_gap_prefix_unique_secondcoefficientdiagonaltermleftinside + S (pfc_index_prefix_unique_secondcoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_unique_secondcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_unique_secondcoefficientdiagonaltermleftentry + S (pfc_left_prefix_unique_secondcoefficientdiagonalterm) = S ((S (pfc_index_prefix_unique_secondcoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_prefix_unique_secondcoefficientdiagonaltermleftentry. ab = ff_q_pfp_prefix_unique_secondcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_unique_secondcoefficientdiagonal)) * ac) + (pfc_left_prefix_unique_secondcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_unique_secondcoefficientdiagonaltermleftoutside. pfc_gap_prefix_unique_secondcoefficientdiagonaltermleftoutside+(L)=(pfc_index_prefix_unique_secondcoefficientdiagonal)) /\ (((pfc_left_prefix_unique_secondcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_unique_secondcoefficientdiagonaltermrightinside. pfa_gap_prefix_unique_secondcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_unique_secondcoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_unique_secondcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_unique_secondcoefficientdiagonaltermrightentry + S (pfc_right_prefix_unique_secondcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_unique_secondcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_prefix_unique_secondcoefficientdiagonaltermrightentry. bb = ff_q_pfp_prefix_unique_secondcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_unique_secondcoefficientdiagonalterm)) * bc) + (pfc_right_prefix_unique_secondcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_unique_secondcoefficientdiagonaltermrightoutside. pfc_gap_prefix_unique_secondcoefficientdiagonaltermrightoutside+(M)=(pfc_complement_prefix_unique_secondcoefficientdiagonalterm)) /\ (((pfc_right_prefix_unique_secondcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_unique_secondcoefficientdiagonal)=pfc_left_prefix_unique_secondcoefficientdiagonalterm*pfc_right_prefix_unique_secondcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_unique_secondcoefficientsum fs_v_pfc_prefix_unique_secondcoefficientsum. ((((exists fs_h_pfc_prefix_unique_secondcoefficientsum_body_start. fs_h_pfc_prefix_unique_secondcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_unique_secondcoefficientsum)) /\ exists fs_q_pfc_prefix_unique_secondcoefficientsum_body_start. fs_u_pfc_prefix_unique_secondcoefficientsum = fs_q_pfc_prefix_unique_secondcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_unique_secondcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_unique_secondcoefficientsum_body_terminal. fs_h_pfc_prefix_unique_secondcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_unique_secondcoefficient) = S ((S (S (pfc_index_prefix_unique_second))) * fs_v_pfc_prefix_unique_secondcoefficientsum)) /\ exists fs_q_pfc_prefix_unique_secondcoefficientsum_body_terminal. fs_u_pfc_prefix_unique_secondcoefficientsum = fs_q_pfc_prefix_unique_secondcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_unique_second))) * fs_v_pfc_prefix_unique_secondcoefficientsum) + (pfc_natural_sum_prefix_unique_secondcoefficient))) /\ forall fs_i_pfc_prefix_unique_secondcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_unique_secondcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_unique_secondcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_unique_secondcoefficientsum_body_steps = S (pfc_index_prefix_unique_second)) -> exists fs_a_pfc_prefix_unique_secondcoefficientsum_body_steps fs_r_pfc_prefix_unique_secondcoefficientsum_body_steps fs_s_pfc_prefix_unique_secondcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_unique_secondcoefficientsum_body_steps_summand. fs_h_pfc_prefix_unique_secondcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_unique_secondcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_unique_secondcoefficientsum_body_steps)) * pfc_terms_scale_prefix_unique_secondcoefficient)) /\ exists fs_q_pfc_prefix_unique_secondcoefficientsum_body_steps_summand. pfc_terms_code_prefix_unique_secondcoefficient = fs_q_pfc_prefix_unique_secondcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_unique_secondcoefficientsum_body_steps)) * pfc_terms_scale_prefix_unique_secondcoefficient) + (fs_a_pfc_prefix_unique_secondcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_unique_secondcoefficientsum_body_steps_partial. fs_h_pfc_prefix_unique_secondcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_unique_secondcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_unique_secondcoefficientsum_body_steps)) * fs_v_pfc_prefix_unique_secondcoefficientsum)) /\ exists fs_q_pfc_prefix_unique_secondcoefficientsum_body_steps_partial. fs_u_pfc_prefix_unique_secondcoefficientsum = fs_q_pfc_prefix_unique_secondcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_unique_secondcoefficientsum_body_steps)) * fs_v_pfc_prefix_unique_secondcoefficientsum) + (fs_r_pfc_prefix_unique_secondcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_unique_secondcoefficientsum_body_steps_successor. fs_h_pfc_prefix_unique_secondcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_unique_secondcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_unique_secondcoefficientsum_body_steps)) * fs_v_pfc_prefix_unique_secondcoefficientsum)) /\ exists fs_q_pfc_prefix_unique_secondcoefficientsum_body_steps_successor. fs_u_pfc_prefix_unique_secondcoefficientsum = fs_q_pfc_prefix_unique_secondcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_unique_secondcoefficientsum_body_steps)) * fs_v_pfc_prefix_unique_secondcoefficientsum) + (fs_s_pfc_prefix_unique_secondcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_unique_secondcoefficientsum_body_steps = fs_r_pfc_prefix_unique_secondcoefficientsum_body_steps + fs_a_pfc_prefix_unique_secondcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_unique_secondcoefficientresiduebound. pfa_gap_prefix_unique_secondcoefficientresiduebound + S (pfc_value_prefix_unique_second) = (p)) /\ ((exists pfa_offset_left_prefix_unique_secondcoefficientresiduecongruence pfa_offset_right_prefix_unique_secondcoefficientresiduecongruence. (pfc_natural_sum_prefix_unique_secondcoefficient) + (p) * pfa_offset_left_prefix_unique_secondcoefficientresiduecongruence = (pfc_value_prefix_unique_second) + (p) * pfa_offset_right_prefix_unique_secondcoefficientresiduecongruence)))))))))))) -> (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 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 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 prime_field_convolution_coefficient_functional (p)
  27. specialize prime_field_convolution_coefficient_functional (ab)
  28. specialize prime_field_convolution_coefficient_functional (ac)
  29. specialize prime_field_convolution_coefficient_functional (L)
  30. specialize prime_field_convolution_coefficient_functional (bb)
  31. specialize prime_field_convolution_coefficient_functional (bc)
  32. specialize prime_field_convolution_coefficient_functional (M)
  33. specialize prime_field_convolution_coefficient_functional (i)
  34. specialize prime_field_convolution_coefficient_functional (a)
  35. specialize prime_field_convolution_coefficient_functional (x)
  36. apply prime_field_convolution_coefficient_functional
  37. specialize prime_field_convolution_prefix_entry (p)
  38. specialize prime_field_convolution_prefix_entry (ab)
  39. specialize prime_field_convolution_prefix_entry (ac)
  40. specialize prime_field_convolution_prefix_entry (L)
  41. specialize prime_field_convolution_prefix_entry (bb)
  42. specialize prime_field_convolution_prefix_entry (bc)
  43. specialize prime_field_convolution_prefix_entry (M)
  44. specialize prime_field_convolution_prefix_entry (db)
  45. specialize prime_field_convolution_prefix_entry (dc)
  46. specialize prime_field_convolution_prefix_entry (N)
  47. specialize prime_field_convolution_prefix_entry (i)
  48. specialize prime_field_convolution_prefix_entry (a)
  49. apply prime_field_convolution_prefix_entry
  50. exact hd
  51. exact hi
  52. exact ha
  53. specialize prime_field_convolution_prefix_entry (p)
  54. specialize prime_field_convolution_prefix_entry (ab)
  55. specialize prime_field_convolution_prefix_entry (ac)
  56. specialize prime_field_convolution_prefix_entry (L)
  57. specialize prime_field_convolution_prefix_entry (bb)
  58. specialize prime_field_convolution_prefix_entry (bc)
  59. specialize prime_field_convolution_prefix_entry (M)
  60. specialize prime_field_convolution_prefix_entry (eb)
  61. specialize prime_field_convolution_prefix_entry (ec)
  62. specialize prime_field_convolution_prefix_entry (N)
  63. specialize prime_field_convolution_prefix_entry (i)
  64. specialize prime_field_convolution_prefix_entry (x)
  65. apply prime_field_convolution_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_prefix_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 221 · statement SHA-256 da79e875558867cc0f8e76432e1920208e6a04581bf93d8fbfc335078e91e78b

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_convolution_prefix_bounded · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 222 · statement SHA-256 e01e7fefa29235f5137d9e2477a92427484e72ec8b0bdc207b4607908afb12b6

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_convolution_prefix_input_transport · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 223 · statement SHA-256 6e3327d598c3c5c226bb518292590820ae80264e0a5b27782717c6eaff66eff2

forall p ab ac L bb bc M AB AC BB BC cb cc N. (forall mdr_i_pfp_prefix_input_recode_a mdr_a_pfp_prefix_input_recode_a. (exists mdr_gap_pfp_prefix_input_recode_ab. mdr_gap_pfp_prefix_input_recode_ab + S (mdr_i_pfp_prefix_input_recode_a) = (L)) -> (((exists ff_h_mdr_pfp_prefix_input_recode_ao. ff_h_mdr_pfp_prefix_input_recode_ao + S (mdr_a_pfp_prefix_input_recode_a) = S ((S (mdr_i_pfp_prefix_input_recode_a)) * ac)) /\ exists ff_q_mdr_pfp_prefix_input_recode_ao. ab = ff_q_mdr_pfp_prefix_input_recode_ao * S ((S (mdr_i_pfp_prefix_input_recode_a)) * ac) + (mdr_a_pfp_prefix_input_recode_a))) -> (((exists ff_h_mdr_pfp_prefix_input_recode_an. ff_h_mdr_pfp_prefix_input_recode_an + S (mdr_a_pfp_prefix_input_recode_a) = S ((S (mdr_i_pfp_prefix_input_recode_a)) * AC)) /\ exists ff_q_mdr_pfp_prefix_input_recode_an. AB = ff_q_mdr_pfp_prefix_input_recode_an * S ((S (mdr_i_pfp_prefix_input_recode_a)) * AC) + (mdr_a_pfp_prefix_input_recode_a)))) -> (forall mdr_i_pfp_prefix_input_recode_b mdr_a_pfp_prefix_input_recode_b. (exists mdr_gap_pfp_prefix_input_recode_bb. mdr_gap_pfp_prefix_input_recode_bb + S (mdr_i_pfp_prefix_input_recode_b) = (M)) -> (((exists ff_h_mdr_pfp_prefix_input_recode_bo. ff_h_mdr_pfp_prefix_input_recode_bo + S (mdr_a_pfp_prefix_input_recode_b) = S ((S (mdr_i_pfp_prefix_input_recode_b)) * bc)) /\ exists ff_q_mdr_pfp_prefix_input_recode_bo. bb = ff_q_mdr_pfp_prefix_input_recode_bo * S ((S (mdr_i_pfp_prefix_input_recode_b)) * bc) + (mdr_a_pfp_prefix_input_recode_b))) -> (((exists ff_h_mdr_pfp_prefix_input_recode_bn. ff_h_mdr_pfp_prefix_input_recode_bn + S (mdr_a_pfp_prefix_input_recode_b) = S ((S (mdr_i_pfp_prefix_input_recode_b)) * BC)) /\ exists ff_q_mdr_pfp_prefix_input_recode_bn. BB = ff_q_mdr_pfp_prefix_input_recode_bn * S ((S (mdr_i_pfp_prefix_input_recode_b)) * BC) + (mdr_a_pfp_prefix_input_recode_b)))) -> (forall pfc_index_prefix_input_old. (exists pfa_gap_prefix_input_oldbound. pfa_gap_prefix_input_oldbound + S (pfc_index_prefix_input_old) = (N)) -> exists pfc_value_prefix_input_old. ((((exists ff_h_pfp_prefix_input_oldentry. ff_h_pfp_prefix_input_oldentry + S (pfc_value_prefix_input_old) = S ((S (pfc_index_prefix_input_old)) * cc)) /\ exists ff_q_pfp_prefix_input_oldentry. cb = ff_q_pfp_prefix_input_oldentry * S ((S (pfc_index_prefix_input_old)) * cc) + (pfc_value_prefix_input_old))) /\ ((exists pfc_terms_code_prefix_input_oldcoefficient pfc_terms_scale_prefix_input_oldcoefficient pfc_natural_sum_prefix_input_oldcoefficient. ((forall pfc_index_prefix_input_oldcoefficientdiagonal. (exists pfa_gap_prefix_input_oldcoefficientdiagonalbound. pfa_gap_prefix_input_oldcoefficientdiagonalbound + S (pfc_index_prefix_input_oldcoefficientdiagonal) = (S (pfc_index_prefix_input_old))) -> exists pfc_value_prefix_input_oldcoefficientdiagonal. ((((exists ff_h_pfp_prefix_input_oldcoefficientdiagonalentry. ff_h_pfp_prefix_input_oldcoefficientdiagonalentry + S (pfc_value_prefix_input_oldcoefficientdiagonal) = S ((S (pfc_index_prefix_input_oldcoefficientdiagonal)) * pfc_terms_scale_prefix_input_oldcoefficient)) /\ exists ff_q_pfp_prefix_input_oldcoefficientdiagonalentry. pfc_terms_code_prefix_input_oldcoefficient = ff_q_pfp_prefix_input_oldcoefficientdiagonalentry * S ((S (pfc_index_prefix_input_oldcoefficientdiagonal)) * pfc_terms_scale_prefix_input_oldcoefficient) + (pfc_value_prefix_input_oldcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_input_oldcoefficientdiagonalterm pfc_left_prefix_input_oldcoefficientdiagonalterm pfc_right_prefix_input_oldcoefficientdiagonalterm. (((pfc_index_prefix_input_oldcoefficientdiagonal)+pfc_complement_prefix_input_oldcoefficientdiagonalterm=(pfc_index_prefix_input_old)) /\ ((((((exists pfa_gap_prefix_input_oldcoefficientdiagonaltermleftinside. pfa_gap_prefix_input_oldcoefficientdiagonaltermleftinside + S (pfc_index_prefix_input_oldcoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_input_oldcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_input_oldcoefficientdiagonaltermleftentry + S (pfc_left_prefix_input_oldcoefficientdiagonalterm) = S ((S (pfc_index_prefix_input_oldcoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_prefix_input_oldcoefficientdiagonaltermleftentry. ab = ff_q_pfp_prefix_input_oldcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_input_oldcoefficientdiagonal)) * ac) + (pfc_left_prefix_input_oldcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_input_oldcoefficientdiagonaltermleftoutside. pfc_gap_prefix_input_oldcoefficientdiagonaltermleftoutside+(L)=(pfc_index_prefix_input_oldcoefficientdiagonal)) /\ (((pfc_left_prefix_input_oldcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_input_oldcoefficientdiagonaltermrightinside. pfa_gap_prefix_input_oldcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_input_oldcoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_input_oldcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_input_oldcoefficientdiagonaltermrightentry + S (pfc_right_prefix_input_oldcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_input_oldcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_prefix_input_oldcoefficientdiagonaltermrightentry. bb = ff_q_pfp_prefix_input_oldcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_input_oldcoefficientdiagonalterm)) * bc) + (pfc_right_prefix_input_oldcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_input_oldcoefficientdiagonaltermrightoutside. pfc_gap_prefix_input_oldcoefficientdiagonaltermrightoutside+(M)=(pfc_complement_prefix_input_oldcoefficientdiagonalterm)) /\ (((pfc_right_prefix_input_oldcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_input_oldcoefficientdiagonal)=pfc_left_prefix_input_oldcoefficientdiagonalterm*pfc_right_prefix_input_oldcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_input_oldcoefficientsum fs_v_pfc_prefix_input_oldcoefficientsum. ((((exists fs_h_pfc_prefix_input_oldcoefficientsum_body_start. fs_h_pfc_prefix_input_oldcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_input_oldcoefficientsum)) /\ exists fs_q_pfc_prefix_input_oldcoefficientsum_body_start. fs_u_pfc_prefix_input_oldcoefficientsum = fs_q_pfc_prefix_input_oldcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_input_oldcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_input_oldcoefficientsum_body_terminal. fs_h_pfc_prefix_input_oldcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_input_oldcoefficient) = S ((S (S (pfc_index_prefix_input_old))) * fs_v_pfc_prefix_input_oldcoefficientsum)) /\ exists fs_q_pfc_prefix_input_oldcoefficientsum_body_terminal. fs_u_pfc_prefix_input_oldcoefficientsum = fs_q_pfc_prefix_input_oldcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_input_old))) * fs_v_pfc_prefix_input_oldcoefficientsum) + (pfc_natural_sum_prefix_input_oldcoefficient))) /\ forall fs_i_pfc_prefix_input_oldcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_input_oldcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_input_oldcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_input_oldcoefficientsum_body_steps = S (pfc_index_prefix_input_old)) -> exists fs_a_pfc_prefix_input_oldcoefficientsum_body_steps fs_r_pfc_prefix_input_oldcoefficientsum_body_steps fs_s_pfc_prefix_input_oldcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_input_oldcoefficientsum_body_steps_summand. fs_h_pfc_prefix_input_oldcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_input_oldcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_input_oldcoefficientsum_body_steps)) * pfc_terms_scale_prefix_input_oldcoefficient)) /\ exists fs_q_pfc_prefix_input_oldcoefficientsum_body_steps_summand. pfc_terms_code_prefix_input_oldcoefficient = fs_q_pfc_prefix_input_oldcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_input_oldcoefficientsum_body_steps)) * pfc_terms_scale_prefix_input_oldcoefficient) + (fs_a_pfc_prefix_input_oldcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_input_oldcoefficientsum_body_steps_partial. fs_h_pfc_prefix_input_oldcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_input_oldcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_input_oldcoefficientsum_body_steps)) * fs_v_pfc_prefix_input_oldcoefficientsum)) /\ exists fs_q_pfc_prefix_input_oldcoefficientsum_body_steps_partial. fs_u_pfc_prefix_input_oldcoefficientsum = fs_q_pfc_prefix_input_oldcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_input_oldcoefficientsum_body_steps)) * fs_v_pfc_prefix_input_oldcoefficientsum) + (fs_r_pfc_prefix_input_oldcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_input_oldcoefficientsum_body_steps_successor. fs_h_pfc_prefix_input_oldcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_input_oldcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_input_oldcoefficientsum_body_steps)) * fs_v_pfc_prefix_input_oldcoefficientsum)) /\ exists fs_q_pfc_prefix_input_oldcoefficientsum_body_steps_successor. fs_u_pfc_prefix_input_oldcoefficientsum = fs_q_pfc_prefix_input_oldcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_input_oldcoefficientsum_body_steps)) * fs_v_pfc_prefix_input_oldcoefficientsum) + (fs_s_pfc_prefix_input_oldcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_input_oldcoefficientsum_body_steps = fs_r_pfc_prefix_input_oldcoefficientsum_body_steps + fs_a_pfc_prefix_input_oldcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_input_oldcoefficientresiduebound. pfa_gap_prefix_input_oldcoefficientresiduebound + S (pfc_value_prefix_input_old) = (p)) /\ ((exists pfa_offset_left_prefix_input_oldcoefficientresiduecongruence pfa_offset_right_prefix_input_oldcoefficientresiduecongruence. (pfc_natural_sum_prefix_input_oldcoefficient) + (p) * pfa_offset_left_prefix_input_oldcoefficientresiduecongruence = (pfc_value_prefix_input_old) + (p) * pfa_offset_right_prefix_input_oldcoefficientresiduecongruence)))))))))))) -> (forall pfc_index_prefix_input_new. (exists pfa_gap_prefix_input_newbound. pfa_gap_prefix_input_newbound + S (pfc_index_prefix_input_new) = (N)) -> exists pfc_value_prefix_input_new. ((((exists ff_h_pfp_prefix_input_newentry. ff_h_pfp_prefix_input_newentry + S (pfc_value_prefix_input_new) = S ((S (pfc_index_prefix_input_new)) * cc)) /\ exists ff_q_pfp_prefix_input_newentry. cb = ff_q_pfp_prefix_input_newentry * S ((S (pfc_index_prefix_input_new)) * cc) + (pfc_value_prefix_input_new))) /\ ((exists pfc_terms_code_prefix_input_newcoefficient pfc_terms_scale_prefix_input_newcoefficient pfc_natural_sum_prefix_input_newcoefficient. ((forall pfc_index_prefix_input_newcoefficientdiagonal. (exists pfa_gap_prefix_input_newcoefficientdiagonalbound. pfa_gap_prefix_input_newcoefficientdiagonalbound + S (pfc_index_prefix_input_newcoefficientdiagonal) = (S (pfc_index_prefix_input_new))) -> exists pfc_value_prefix_input_newcoefficientdiagonal. ((((exists ff_h_pfp_prefix_input_newcoefficientdiagonalentry. ff_h_pfp_prefix_input_newcoefficientdiagonalentry + S (pfc_value_prefix_input_newcoefficientdiagonal) = S ((S (pfc_index_prefix_input_newcoefficientdiagonal)) * pfc_terms_scale_prefix_input_newcoefficient)) /\ exists ff_q_pfp_prefix_input_newcoefficientdiagonalentry. pfc_terms_code_prefix_input_newcoefficient = ff_q_pfp_prefix_input_newcoefficientdiagonalentry * S ((S (pfc_index_prefix_input_newcoefficientdiagonal)) * pfc_terms_scale_prefix_input_newcoefficient) + (pfc_value_prefix_input_newcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_input_newcoefficientdiagonalterm pfc_left_prefix_input_newcoefficientdiagonalterm pfc_right_prefix_input_newcoefficientdiagonalterm. (((pfc_index_prefix_input_newcoefficientdiagonal)+pfc_complement_prefix_input_newcoefficientdiagonalterm=(pfc_index_prefix_input_new)) /\ ((((((exists pfa_gap_prefix_input_newcoefficientdiagonaltermleftinside. pfa_gap_prefix_input_newcoefficientdiagonaltermleftinside + S (pfc_index_prefix_input_newcoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_input_newcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_input_newcoefficientdiagonaltermleftentry + S (pfc_left_prefix_input_newcoefficientdiagonalterm) = S ((S (pfc_index_prefix_input_newcoefficientdiagonal)) * AC)) /\ exists ff_q_pfp_prefix_input_newcoefficientdiagonaltermleftentry. AB = ff_q_pfp_prefix_input_newcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_input_newcoefficientdiagonal)) * AC) + (pfc_left_prefix_input_newcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_input_newcoefficientdiagonaltermleftoutside. pfc_gap_prefix_input_newcoefficientdiagonaltermleftoutside+(L)=(pfc_index_prefix_input_newcoefficientdiagonal)) /\ (((pfc_left_prefix_input_newcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_input_newcoefficientdiagonaltermrightinside. pfa_gap_prefix_input_newcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_input_newcoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_input_newcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_input_newcoefficientdiagonaltermrightentry + S (pfc_right_prefix_input_newcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_input_newcoefficientdiagonalterm)) * BC)) /\ exists ff_q_pfp_prefix_input_newcoefficientdiagonaltermrightentry. BB = ff_q_pfp_prefix_input_newcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_input_newcoefficientdiagonalterm)) * BC) + (pfc_right_prefix_input_newcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_input_newcoefficientdiagonaltermrightoutside. pfc_gap_prefix_input_newcoefficientdiagonaltermrightoutside+(M)=(pfc_complement_prefix_input_newcoefficientdiagonalterm)) /\ (((pfc_right_prefix_input_newcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_input_newcoefficientdiagonal)=pfc_left_prefix_input_newcoefficientdiagonalterm*pfc_right_prefix_input_newcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_input_newcoefficientsum fs_v_pfc_prefix_input_newcoefficientsum. ((((exists fs_h_pfc_prefix_input_newcoefficientsum_body_start. fs_h_pfc_prefix_input_newcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_input_newcoefficientsum)) /\ exists fs_q_pfc_prefix_input_newcoefficientsum_body_start. fs_u_pfc_prefix_input_newcoefficientsum = fs_q_pfc_prefix_input_newcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_input_newcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_input_newcoefficientsum_body_terminal. fs_h_pfc_prefix_input_newcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_input_newcoefficient) = S ((S (S (pfc_index_prefix_input_new))) * fs_v_pfc_prefix_input_newcoefficientsum)) /\ exists fs_q_pfc_prefix_input_newcoefficientsum_body_terminal. fs_u_pfc_prefix_input_newcoefficientsum = fs_q_pfc_prefix_input_newcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_input_new))) * fs_v_pfc_prefix_input_newcoefficientsum) + (pfc_natural_sum_prefix_input_newcoefficient))) /\ forall fs_i_pfc_prefix_input_newcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_input_newcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_input_newcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_input_newcoefficientsum_body_steps = S (pfc_index_prefix_input_new)) -> exists fs_a_pfc_prefix_input_newcoefficientsum_body_steps fs_r_pfc_prefix_input_newcoefficientsum_body_steps fs_s_pfc_prefix_input_newcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_input_newcoefficientsum_body_steps_summand. fs_h_pfc_prefix_input_newcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_input_newcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_input_newcoefficientsum_body_steps)) * pfc_terms_scale_prefix_input_newcoefficient)) /\ exists fs_q_pfc_prefix_input_newcoefficientsum_body_steps_summand. pfc_terms_code_prefix_input_newcoefficient = fs_q_pfc_prefix_input_newcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_input_newcoefficientsum_body_steps)) * pfc_terms_scale_prefix_input_newcoefficient) + (fs_a_pfc_prefix_input_newcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_input_newcoefficientsum_body_steps_partial. fs_h_pfc_prefix_input_newcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_input_newcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_input_newcoefficientsum_body_steps)) * fs_v_pfc_prefix_input_newcoefficientsum)) /\ exists fs_q_pfc_prefix_input_newcoefficientsum_body_steps_partial. fs_u_pfc_prefix_input_newcoefficientsum = fs_q_pfc_prefix_input_newcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_input_newcoefficientsum_body_steps)) * fs_v_pfc_prefix_input_newcoefficientsum) + (fs_r_pfc_prefix_input_newcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_input_newcoefficientsum_body_steps_successor. fs_h_pfc_prefix_input_newcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_input_newcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_input_newcoefficientsum_body_steps)) * fs_v_pfc_prefix_input_newcoefficientsum)) /\ exists fs_q_pfc_prefix_input_newcoefficientsum_body_steps_successor. fs_u_pfc_prefix_input_newcoefficientsum = fs_q_pfc_prefix_input_newcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_input_newcoefficientsum_body_steps)) * fs_v_pfc_prefix_input_newcoefficientsum) + (fs_s_pfc_prefix_input_newcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_input_newcoefficientsum_body_steps = fs_r_pfc_prefix_input_newcoefficientsum_body_steps + fs_a_pfc_prefix_input_newcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_input_newcoefficientresiduebound. pfa_gap_prefix_input_newcoefficientresiduebound + S (pfc_value_prefix_input_new) = (p)) /\ ((exists pfa_offset_left_prefix_input_newcoefficientresiduecongruence pfa_offset_right_prefix_input_newcoefficientresiduecongruence. (pfc_natural_sum_prefix_input_newcoefficient) + (p) * pfa_offset_left_prefix_input_newcoefficientresiduecongruence = (pfc_value_prefix_input_new) + (p) * pfa_offset_right_prefix_input_newcoefficientresiduecongruence))))))))))))
  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 BB
  11. intro BC
  12. intro cb
  13. intro cc
  14. intro N
  15. intro ha
  16. intro hb
  17. intro h
  18. intro i
  19. intro hi
  20. have hv : exists r. ((((exists ff_h_pfp_prefix_recode_entry. ff_h_pfp_prefix_recode_entry + S (r) = S ((S (i)) * cc)) /\ exists ff_q_pfp_prefix_recode_entry. cb = ff_q_pfp_prefix_recode_entry * S ((S (i)) * cc) + (r))) /\ ((exists pfc_terms_code_prefix_recode_value pfc_terms_scale_prefix_recode_value pfc_natural_sum_prefix_recode_value. ((forall pfc_index_prefix_recode_valuediagonal. (exists pfa_gap_prefix_recode_valuediagonalbound. pfa_gap_prefix_recode_valuediagonalbound + S (pfc_index_prefix_recode_valuediagonal) = (S (i))) -> exists pfc_value_prefix_recode_valuediagonal. ((((exists ff_h_pfp_prefix_recode_valuediagonalentry. ff_h_pfp_prefix_recode_valuediagonalentry + S (pfc_value_prefix_recode_valuediagonal) = S ((S (pfc_index_prefix_recode_valuediagonal)) * pfc_terms_scale_prefix_recode_value)) /\ exists ff_q_pfp_prefix_recode_valuediagonalentry. pfc_terms_code_prefix_recode_value = ff_q_pfp_prefix_recode_valuediagonalentry * S ((S (pfc_index_prefix_recode_valuediagonal)) * pfc_terms_scale_prefix_recode_value) + (pfc_value_prefix_recode_valuediagonal))) /\ ((exists pfc_complement_prefix_recode_valuediagonalterm pfc_left_prefix_recode_valuediagonalterm pfc_right_prefix_recode_valuediagonalterm. (((pfc_index_prefix_recode_valuediagonal)+pfc_complement_prefix_recode_valuediagonalterm=(i)) /\ ((((((exists pfa_gap_prefix_recode_valuediagonaltermleftinside. pfa_gap_prefix_recode_valuediagonaltermleftinside + S (pfc_index_prefix_recode_valuediagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_recode_valuediagonaltermleftentry. ff_h_pfp_prefix_recode_valuediagonaltermleftentry + S (pfc_left_prefix_recode_valuediagonalterm) = S ((S (pfc_index_prefix_recode_valuediagonal)) * ac)) /\ exists ff_q_pfp_prefix_recode_valuediagonaltermleftentry. ab = ff_q_pfp_prefix_recode_valuediagonaltermleftentry * S ((S (pfc_index_prefix_recode_valuediagonal)) * ac) + (pfc_left_prefix_recode_valuediagonalterm)))))) \/ (((exists pfc_gap_prefix_recode_valuediagonaltermleftoutside. pfc_gap_prefix_recode_valuediagonaltermleftoutside+(L)=(pfc_index_prefix_recode_valuediagonal)) /\ (((pfc_left_prefix_recode_valuediagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_recode_valuediagonaltermrightinside. pfa_gap_prefix_recode_valuediagonaltermrightinside + S (pfc_complement_prefix_recode_valuediagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_recode_valuediagonaltermrightentry. ff_h_pfp_prefix_recode_valuediagonaltermrightentry + S (pfc_right_prefix_recode_valuediagonalterm) = S ((S (pfc_complement_prefix_recode_valuediagonalterm)) * bc)) /\ exists ff_q_pfp_prefix_recode_valuediagonaltermrightentry. bb = ff_q_pfp_prefix_recode_valuediagonaltermrightentry * S ((S (pfc_complement_prefix_recode_valuediagonalterm)) * bc) + (pfc_right_prefix_recode_valuediagonalterm)))))) \/ (((exists pfc_gap_prefix_recode_valuediagonaltermrightoutside. pfc_gap_prefix_recode_valuediagonaltermrightoutside+(M)=(pfc_complement_prefix_recode_valuediagonalterm)) /\ (((pfc_right_prefix_recode_valuediagonalterm)=0))))) /\ (((pfc_value_prefix_recode_valuediagonal)=pfc_left_prefix_recode_valuediagonalterm*pfc_right_prefix_recode_valuediagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_recode_valuesum fs_v_pfc_prefix_recode_valuesum. ((((exists fs_h_pfc_prefix_recode_valuesum_body_start. fs_h_pfc_prefix_recode_valuesum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_recode_valuesum)) /\ exists fs_q_pfc_prefix_recode_valuesum_body_start. fs_u_pfc_prefix_recode_valuesum = fs_q_pfc_prefix_recode_valuesum_body_start * S ((S (0)) * fs_v_pfc_prefix_recode_valuesum) + (0))) /\ ((((exists fs_h_pfc_prefix_recode_valuesum_body_terminal. fs_h_pfc_prefix_recode_valuesum_body_terminal + S (pfc_natural_sum_prefix_recode_value) = S ((S (S (i))) * fs_v_pfc_prefix_recode_valuesum)) /\ exists fs_q_pfc_prefix_recode_valuesum_body_terminal. fs_u_pfc_prefix_recode_valuesum = fs_q_pfc_prefix_recode_valuesum_body_terminal * S ((S (S (i))) * fs_v_pfc_prefix_recode_valuesum) + (pfc_natural_sum_prefix_recode_value))) /\ forall fs_i_pfc_prefix_recode_valuesum_body_steps. (exists fs_lt_pfc_prefix_recode_valuesum_body_steps_bound. fs_lt_pfc_prefix_recode_valuesum_body_steps_bound + S fs_i_pfc_prefix_recode_valuesum_body_steps = S (i)) -> exists fs_a_pfc_prefix_recode_valuesum_body_steps fs_r_pfc_prefix_recode_valuesum_body_steps fs_s_pfc_prefix_recode_valuesum_body_steps. ((((exists fs_h_pfc_prefix_recode_valuesum_body_steps_summand. fs_h_pfc_prefix_recode_valuesum_body_steps_summand + S (fs_a_pfc_prefix_recode_valuesum_body_steps) = S ((S (fs_i_pfc_prefix_recode_valuesum_body_steps)) * pfc_terms_scale_prefix_recode_value)) /\ exists fs_q_pfc_prefix_recode_valuesum_body_steps_summand. pfc_terms_code_prefix_recode_value = fs_q_pfc_prefix_recode_valuesum_body_steps_summand * S ((S (fs_i_pfc_prefix_recode_valuesum_body_steps)) * pfc_terms_scale_prefix_recode_value) + (fs_a_pfc_prefix_recode_valuesum_body_steps))) /\ ((((exists fs_h_pfc_prefix_recode_valuesum_body_steps_partial. fs_h_pfc_prefix_recode_valuesum_body_steps_partial + S (fs_r_pfc_prefix_recode_valuesum_body_steps) = S ((S (fs_i_pfc_prefix_recode_valuesum_body_steps)) * fs_v_pfc_prefix_recode_valuesum)) /\ exists fs_q_pfc_prefix_recode_valuesum_body_steps_partial. fs_u_pfc_prefix_recode_valuesum = fs_q_pfc_prefix_recode_valuesum_body_steps_partial * S ((S (fs_i_pfc_prefix_recode_valuesum_body_steps)) * fs_v_pfc_prefix_recode_valuesum) + (fs_r_pfc_prefix_recode_valuesum_body_steps))) /\ ((((exists fs_h_pfc_prefix_recode_valuesum_body_steps_successor. fs_h_pfc_prefix_recode_valuesum_body_steps_successor + S (fs_s_pfc_prefix_recode_valuesum_body_steps) = S ((S (S fs_i_pfc_prefix_recode_valuesum_body_steps)) * fs_v_pfc_prefix_recode_valuesum)) /\ exists fs_q_pfc_prefix_recode_valuesum_body_steps_successor. fs_u_pfc_prefix_recode_valuesum = fs_q_pfc_prefix_recode_valuesum_body_steps_successor * S ((S (S fs_i_pfc_prefix_recode_valuesum_body_steps)) * fs_v_pfc_prefix_recode_valuesum) + (fs_s_pfc_prefix_recode_valuesum_body_steps))) /\ fs_s_pfc_prefix_recode_valuesum_body_steps = fs_r_pfc_prefix_recode_valuesum_body_steps + fs_a_pfc_prefix_recode_valuesum_body_steps)))))) /\ ((((exists pfa_gap_prefix_recode_valueresiduebound. pfa_gap_prefix_recode_valueresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_prefix_recode_valueresiduecongruence pfa_offset_right_prefix_recode_valueresiduecongruence. (pfc_natural_sum_prefix_recode_value) + (p) * pfa_offset_left_prefix_recode_valueresiduecongruence = (r) + (p) * pfa_offset_right_prefix_recode_valueresiduecongruence)))))))))))
  21. specialize h (i)
  22. apply h
  23. exact hi
  24. cases hv
  25. cases hv_witness
  26. exists x
  27. split
  28. exact hv_witness_left
  29. specialize prime_field_convolution_coefficient_transport (p)
  30. specialize prime_field_convolution_coefficient_transport (ab)
  31. specialize prime_field_convolution_coefficient_transport (ac)
  32. specialize prime_field_convolution_coefficient_transport (L)
  33. specialize prime_field_convolution_coefficient_transport (bb)
  34. specialize prime_field_convolution_coefficient_transport (bc)
  35. specialize prime_field_convolution_coefficient_transport (M)
  36. specialize prime_field_convolution_coefficient_transport (i)
  37. specialize prime_field_convolution_coefficient_transport (AB)
  38. specialize prime_field_convolution_coefficient_transport (AC)
  39. specialize prime_field_convolution_coefficient_transport (BB)
  40. specialize prime_field_convolution_coefficient_transport (BC)
  41. specialize prime_field_convolution_coefficient_transport (x)
  42. apply prime_field_convolution_coefficient_transport
  43. exact ha
  44. exact hb
  45. exact hv_witness_right
polynomial_product_length_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 224 · statement SHA-256 1e2b5f95f0cd24fa0855ee9a3b0737bdbc18f9ced079435a4894e931ebcd4431

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_polynomial_convolution_entry · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 225 · statement SHA-256 ad6c27efb59cd792dd2840047b1325f9d6cd018561f1cafac0749c5feaf27caf

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_convolution_at_length_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 226 · statement SHA-256 f2919de6415c69620d3b091ebbb0cab8cb9a9bfbbfacb69905d6567c61d44b61

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
prime_field_polynomial_convolution_zero_left · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 227 · statement SHA-256 17472f6910ccbce6a16719a6a65d743e88fc6fb1b6ad91cd8058952e474f3697

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 228 · statement SHA-256 30120967e6a97e55f0c00069a2823b8171f59460c636bb42c0bdf01e139a240a

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_subtract_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 229 · statement SHA-256 929c4f0d125cb8970f92fc6482cb275616236e2148ac7f031fc8583f430966d0

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_subtract_equal_zero · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 230 · statement SHA-256 cbdf064cf9bcabe588e484ea03ec69e1fee6988fe9b58e8f74fa14f23f652cd4

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_empty · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 231 · statement SHA-256 0bc60218a50a6daa78c0b436a82a538308c8e4ef2516fac211ca6d630d26afea

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_polynomial_subtract_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 232 · statement SHA-256 e6a46edf32d7a565ab18ccc9406cec320dbeefc6f0094b7169f28a1080d6a965

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_polynomial_subtract_entry · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 233 · statement SHA-256 cc6c24dbd4619f6c3c816e23c321c3807c59513d416544e857eff4d51e03cb5c

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_bounded · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 234 · statement SHA-256 f45789a4a2ad5c26ef69793b3b7876b32a16df39e5b95abbb9c0cfe07efdc043

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_subtract_functional · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 235 · statement SHA-256 b9ea11e703fa5bd6f0d161527125b33b9006d802e52f619234eae72516ff145d

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_transport · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 236 · statement SHA-256 35585cc5e0d590301623e13c7163f554383514e29af43fe2c46f00fb7a482207

forall p ab ac bb bc rb rc AB AC BB BC RB RC l. (forall mdr_i_pfp_subtract_transport_ab mdr_a_pfp_subtract_transport_ab. (exists mdr_gap_pfp_subtract_transport_abb. mdr_gap_pfp_subtract_transport_abb + S (mdr_i_pfp_subtract_transport_ab) = (l)) -> (((exists ff_h_mdr_pfp_subtract_transport_abo. ff_h_mdr_pfp_subtract_transport_abo + S (mdr_a_pfp_subtract_transport_ab) = S ((S (mdr_i_pfp_subtract_transport_ab)) * ac)) /\ exists ff_q_mdr_pfp_subtract_transport_abo. ab = ff_q_mdr_pfp_subtract_transport_abo * S ((S (mdr_i_pfp_subtract_transport_ab)) * ac) + (mdr_a_pfp_subtract_transport_ab))) -> (((exists ff_h_mdr_pfp_subtract_transport_abn. ff_h_mdr_pfp_subtract_transport_abn + S (mdr_a_pfp_subtract_transport_ab) = S ((S (mdr_i_pfp_subtract_transport_ab)) * AC)) /\ exists ff_q_mdr_pfp_subtract_transport_abn. AB = ff_q_mdr_pfp_subtract_transport_abn * S ((S (mdr_i_pfp_subtract_transport_ab)) * AC) + (mdr_a_pfp_subtract_transport_ab)))) -> (forall mdr_i_pfp_subtract_transport_bb mdr_a_pfp_subtract_transport_bb. (exists mdr_gap_pfp_subtract_transport_bbb. mdr_gap_pfp_subtract_transport_bbb + S (mdr_i_pfp_subtract_transport_bb) = (l)) -> (((exists ff_h_mdr_pfp_subtract_transport_bbo. ff_h_mdr_pfp_subtract_transport_bbo + S (mdr_a_pfp_subtract_transport_bb) = S ((S (mdr_i_pfp_subtract_transport_bb)) * bc)) /\ exists ff_q_mdr_pfp_subtract_transport_bbo. bb = ff_q_mdr_pfp_subtract_transport_bbo * S ((S (mdr_i_pfp_subtract_transport_bb)) * bc) + (mdr_a_pfp_subtract_transport_bb))) -> (((exists ff_h_mdr_pfp_subtract_transport_bbn. ff_h_mdr_pfp_subtract_transport_bbn + S (mdr_a_pfp_subtract_transport_bb) = S ((S (mdr_i_pfp_subtract_transport_bb)) * BC)) /\ exists ff_q_mdr_pfp_subtract_transport_bbn. BB = ff_q_mdr_pfp_subtract_transport_bbn * S ((S (mdr_i_pfp_subtract_transport_bb)) * BC) + (mdr_a_pfp_subtract_transport_bb)))) -> (forall mdr_i_pfp_subtract_transport_rb mdr_a_pfp_subtract_transport_rb. (exists mdr_gap_pfp_subtract_transport_rbb. mdr_gap_pfp_subtract_transport_rbb + S (mdr_i_pfp_subtract_transport_rb) = (l)) -> (((exists ff_h_mdr_pfp_subtract_transport_rbo. ff_h_mdr_pfp_subtract_transport_rbo + S (mdr_a_pfp_subtract_transport_rb) = S ((S (mdr_i_pfp_subtract_transport_rb)) * rc)) /\ exists ff_q_mdr_pfp_subtract_transport_rbo. rb = ff_q_mdr_pfp_subtract_transport_rbo * S ((S (mdr_i_pfp_subtract_transport_rb)) * rc) + (mdr_a_pfp_subtract_transport_rb))) -> (((exists ff_h_mdr_pfp_subtract_transport_rbn. ff_h_mdr_pfp_subtract_transport_rbn + S (mdr_a_pfp_subtract_transport_rb) = S ((S (mdr_i_pfp_subtract_transport_rb)) * RC)) /\ exists ff_q_mdr_pfp_subtract_transport_rbn. RB = ff_q_mdr_pfp_subtract_transport_rbn * S ((S (mdr_i_pfp_subtract_transport_rb)) * RC) + (mdr_a_pfp_subtract_transport_rb)))) -> (forall pfs_index_subtract_transport_old. (exists pfa_gap_subtract_transport_oldindex. pfa_gap_subtract_transport_oldindex + S (pfs_index_subtract_transport_old) = (l)) -> exists pfs_left_subtract_transport_old pfs_right_subtract_transport_old pfs_result_subtract_transport_old. ((((exists ff_h_pfp_subtract_transport_oldleft. ff_h_pfp_subtract_transport_oldleft + S (pfs_left_subtract_transport_old) = S ((S (pfs_index_subtract_transport_old)) * ac)) /\ exists ff_q_pfp_subtract_transport_oldleft. ab = ff_q_pfp_subtract_transport_oldleft * S ((S (pfs_index_subtract_transport_old)) * ac) + (pfs_left_subtract_transport_old))) /\ (((((exists ff_h_pfp_subtract_transport_oldright. ff_h_pfp_subtract_transport_oldright + S (pfs_right_subtract_transport_old) = S ((S (pfs_index_subtract_transport_old)) * bc)) /\ exists ff_q_pfp_subtract_transport_oldright. bb = ff_q_pfp_subtract_transport_oldright * S ((S (pfs_index_subtract_transport_old)) * bc) + (pfs_right_subtract_transport_old))) /\ (((((exists ff_h_pfp_subtract_transport_oldresult. ff_h_pfp_subtract_transport_oldresult + S (pfs_result_subtract_transport_old) = S ((S (pfs_index_subtract_transport_old)) * rc)) /\ exists ff_q_pfp_subtract_transport_oldresult. rb = ff_q_pfp_subtract_transport_oldresult * S ((S (pfs_index_subtract_transport_old)) * rc) + (pfs_result_subtract_transport_old))) /\ ((((exists pfa_gap_subtract_transport_oldoperationleft. pfa_gap_subtract_transport_oldoperationleft + S (pfs_right_subtract_transport_old) = (p)) /\ (((exists pfa_gap_subtract_transport_oldoperationright. pfa_gap_subtract_transport_oldoperationright + S (pfs_result_subtract_transport_old) = (p)) /\ ((((exists pfa_gap_subtract_transport_oldoperationresultbound. pfa_gap_subtract_transport_oldoperationresultbound + S (pfs_left_subtract_transport_old) = (p)) /\ ((exists pfa_offset_left_subtract_transport_oldoperationresultcongruence pfa_offset_right_subtract_transport_oldoperationresultcongruence. ((pfs_right_subtract_transport_old) + (pfs_result_subtract_transport_old)) + (p) * pfa_offset_left_subtract_transport_oldoperationresultcongruence = (pfs_left_subtract_transport_old) + (p) * pfa_offset_right_subtract_transport_oldoperationresultcongruence)))))))))))))))) -> (forall pfs_index_subtract_transport_new. (exists pfa_gap_subtract_transport_newindex. pfa_gap_subtract_transport_newindex + S (pfs_index_subtract_transport_new) = (l)) -> exists pfs_left_subtract_transport_new pfs_right_subtract_transport_new pfs_result_subtract_transport_new. ((((exists ff_h_pfp_subtract_transport_newleft. ff_h_pfp_subtract_transport_newleft + S (pfs_left_subtract_transport_new) = S ((S (pfs_index_subtract_transport_new)) * AC)) /\ exists ff_q_pfp_subtract_transport_newleft. AB = ff_q_pfp_subtract_transport_newleft * S ((S (pfs_index_subtract_transport_new)) * AC) + (pfs_left_subtract_transport_new))) /\ (((((exists ff_h_pfp_subtract_transport_newright. ff_h_pfp_subtract_transport_newright + S (pfs_right_subtract_transport_new) = S ((S (pfs_index_subtract_transport_new)) * BC)) /\ exists ff_q_pfp_subtract_transport_newright. BB = ff_q_pfp_subtract_transport_newright * S ((S (pfs_index_subtract_transport_new)) * BC) + (pfs_right_subtract_transport_new))) /\ (((((exists ff_h_pfp_subtract_transport_newresult. ff_h_pfp_subtract_transport_newresult + S (pfs_result_subtract_transport_new) = S ((S (pfs_index_subtract_transport_new)) * RC)) /\ exists ff_q_pfp_subtract_transport_newresult. RB = ff_q_pfp_subtract_transport_newresult * S ((S (pfs_index_subtract_transport_new)) * RC) + (pfs_result_subtract_transport_new))) /\ ((((exists pfa_gap_subtract_transport_newoperationleft. pfa_gap_subtract_transport_newoperationleft + S (pfs_right_subtract_transport_new) = (p)) /\ (((exists pfa_gap_subtract_transport_newoperationright. pfa_gap_subtract_transport_newoperationright + S (pfs_result_subtract_transport_new) = (p)) /\ ((((exists pfa_gap_subtract_transport_newoperationresultbound. pfa_gap_subtract_transport_newoperationresultbound + S (pfs_left_subtract_transport_new) = (p)) /\ ((exists pfa_offset_left_subtract_transport_newoperationresultcongruence pfa_offset_right_subtract_transport_newoperationresultcongruence. ((pfs_right_subtract_transport_new) + (pfs_result_subtract_transport_new)) + (p) * pfa_offset_left_subtract_transport_newoperationresultcongruence = (pfs_left_subtract_transport_new) + (p) * pfa_offset_right_subtract_transport_newoperationresultcongruence))))))))))))))))
  1. intro p
  2. intro ab
  3. intro ac
  4. intro bb
  5. intro bc
  6. intro rb
  7. intro rc
  8. intro AB
  9. intro AC
  10. intro BB
  11. intro BC
  12. intro RB
  13. intro RC
  14. intro l
  15. intro h0
  16. intro h1
  17. intro h2
  18. intro h
  19. intro i
  20. intro hi
  21. have hv : exists a b r. (((((exists ff_h_pfp_subtract_transport_chosen0. ff_h_pfp_subtract_transport_chosen0 + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_subtract_transport_chosen0. ab = ff_q_pfp_subtract_transport_chosen0 * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_subtract_transport_chosen1. ff_h_pfp_subtract_transport_chosen1 + S (b) = S ((S (i)) * bc)) /\ exists ff_q_pfp_subtract_transport_chosen1. bb = ff_q_pfp_subtract_transport_chosen1 * S ((S (i)) * bc) + (b))) /\ (((((exists ff_h_pfp_subtract_transport_chosen2. ff_h_pfp_subtract_transport_chosen2 + S (r) = S ((S (i)) * rc)) /\ exists ff_q_pfp_subtract_transport_chosen2. rb = ff_q_pfp_subtract_transport_chosen2 * S ((S (i)) * rc) + (r))) /\ ((((exists pfa_gap_subtract_transport_chosenoperationleft. pfa_gap_subtract_transport_chosenoperationleft + S (b) = (p)) /\ (((exists pfa_gap_subtract_transport_chosenoperationright. pfa_gap_subtract_transport_chosenoperationright + S (r) = (p)) /\ ((((exists pfa_gap_subtract_transport_chosenoperationresultbound. pfa_gap_subtract_transport_chosenoperationresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_subtract_transport_chosenoperationresultcongruence pfa_offset_right_subtract_transport_chosenoperationresultcongruence. ((b) + (r)) + (p) * pfa_offset_left_subtract_transport_chosenoperationresultcongruence = (a) + (p) * pfa_offset_right_subtract_transport_chosenoperationresultcongruence))))))))))))))))
  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 h0 (i)
  36. specialize h0 (x)
  37. apply h0
  38. exact hi
  39. exact hv_witness_witness_witness_left
  40. split
  41. specialize h1 (i)
  42. specialize h1 (x1)
  43. apply h1
  44. exact hi
  45. exact hv_witness_witness_witness_right_left
  46. split
  47. specialize h2 (i)
  48. specialize h2 (x2)
  49. apply h2
  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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 237 · statement SHA-256 5c32956806d9cd0511d0be1d233e6c2b57bc935ece4a67ce1a91aa1f69480b7d

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_from_add · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 238 · statement SHA-256 a02cf0a4b99c0c2cb09715665214d43f99816a426dcaf36b6d4ef79f23a805b2

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_subtract_equal_entry_zero · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 239 · statement SHA-256 3118752edd6a4c565e9ee8e1df306346fac51eb229632e75018386b4cb0ed516

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 240 · statement SHA-256 b08ed8bb998138cf22b6f3aefd4a3c88b7a3e4a1205174a05fe72d9cae162dcd

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_polynomial_suffix_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 241 · statement SHA-256 f2282e8f60487a7f4b3a84e1221938950e6559f87a2736bf7a10e6ab5598f1af

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_suffix_bounded · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 242 · statement SHA-256 dd439ab6bc37ee42cf0ea9326ed23762d45ef07f8d97fd4d109cecd0fb636963

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_suffix_equal · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 243 · statement SHA-256 46332d08fdcb99b9b26a71dfdea4c4e8766e820944f8246e9a43a8b3f9cbc7ab

forall b c t d e f g M. (forall pftrim_index_suffix_equal_left pftrim_value_suffix_equal_left. (exists pfa_gap_suffix_equal_leftbound. pfa_gap_suffix_equal_leftbound + S (pftrim_index_suffix_equal_left) = (M)) -> (((exists ff_h_pfp_suffix_equal_leftsource. ff_h_pfp_suffix_equal_leftsource + S (pftrim_value_suffix_equal_left) = S ((S ((t)+pftrim_index_suffix_equal_left)) * c)) /\ exists ff_q_pfp_suffix_equal_leftsource. b = ff_q_pfp_suffix_equal_leftsource * S ((S ((t)+pftrim_index_suffix_equal_left)) * c) + (pftrim_value_suffix_equal_left))) -> (((exists ff_h_pfp_suffix_equal_leftoutput. ff_h_pfp_suffix_equal_leftoutput + S (pftrim_value_suffix_equal_left) = S ((S (pftrim_index_suffix_equal_left)) * e)) /\ exists ff_q_pfp_suffix_equal_leftoutput. d = ff_q_pfp_suffix_equal_leftoutput * S ((S (pftrim_index_suffix_equal_left)) * e) + (pftrim_value_suffix_equal_left)))) -> (forall pftrim_index_suffix_equal_right pftrim_value_suffix_equal_right. (exists pfa_gap_suffix_equal_rightbound. pfa_gap_suffix_equal_rightbound + S (pftrim_index_suffix_equal_right) = (M)) -> (((exists ff_h_pfp_suffix_equal_rightsource. ff_h_pfp_suffix_equal_rightsource + S (pftrim_value_suffix_equal_right) = S ((S ((t)+pftrim_index_suffix_equal_right)) * c)) /\ exists ff_q_pfp_suffix_equal_rightsource. b = ff_q_pfp_suffix_equal_rightsource * S ((S ((t)+pftrim_index_suffix_equal_right)) * c) + (pftrim_value_suffix_equal_right))) -> (((exists ff_h_pfp_suffix_equal_rightoutput. ff_h_pfp_suffix_equal_rightoutput + S (pftrim_value_suffix_equal_right) = S ((S (pftrim_index_suffix_equal_right)) * g)) /\ exists ff_q_pfp_suffix_equal_rightoutput. f = ff_q_pfp_suffix_equal_rightoutput * S ((S (pftrim_index_suffix_equal_right)) * g) + (pftrim_value_suffix_equal_right)))) -> (forall mdr_i_pfp_suffix_equal_result mdr_a_pfp_suffix_equal_result. (exists mdr_gap_pfp_suffix_equal_resultb. mdr_gap_pfp_suffix_equal_resultb + S (mdr_i_pfp_suffix_equal_result) = (M)) -> (((exists ff_h_mdr_pfp_suffix_equal_resulto. ff_h_mdr_pfp_suffix_equal_resulto + S (mdr_a_pfp_suffix_equal_result) = S ((S (mdr_i_pfp_suffix_equal_result)) * e)) /\ exists ff_q_mdr_pfp_suffix_equal_resulto. d = ff_q_mdr_pfp_suffix_equal_resulto * S ((S (mdr_i_pfp_suffix_equal_result)) * e) + (mdr_a_pfp_suffix_equal_result))) -> (((exists ff_h_mdr_pfp_suffix_equal_resultn. ff_h_mdr_pfp_suffix_equal_resultn + S (mdr_a_pfp_suffix_equal_result) = S ((S (mdr_i_pfp_suffix_equal_result)) * g)) /\ exists ff_q_mdr_pfp_suffix_equal_resultn. f = ff_q_mdr_pfp_suffix_equal_resultn * S ((S (mdr_i_pfp_suffix_equal_result)) * g) + (mdr_a_pfp_suffix_equal_result))))
  1. intro b
  2. intro c
  3. intro t
  4. intro d
  5. intro e
  6. intro f
  7. intro g
  8. intro M
  9. intro hd
  10. intro hf
  11. intro i
  12. intro a
  13. intro hi
  14. intro ha
  15. have hz : exists z. (((exists ff_h_pfp_suffix_equal_source. ff_h_pfp_suffix_equal_source + S (z) = S ((S (t+i)) * c)) /\ exists ff_q_pfp_suffix_equal_source. b = ff_q_pfp_suffix_equal_source * S ((S (t+i)) * c) + (z)))
  16. specialize beta_at_exists (b)
  17. specialize beta_at_exists (c)
  18. specialize beta_at_exists (t+i)
  19. apply beta_at_exists
  20. cases hz
  21. have heq : a=x
  22. specialize beta_at_unique (d)
  23. specialize beta_at_unique (e)
  24. specialize beta_at_unique (i)
  25. specialize beta_at_unique (a)
  26. specialize beta_at_unique (x)
  27. apply beta_at_unique
  28. exact ha
  29. specialize hd (i)
  30. specialize hd (x)
  31. apply hd
  32. exact hi
  33. exact hz_witness
  34. rewrite heq
  35. rewrite heq
  36. specialize hf (i)
  37. specialize hf (x)
  38. apply hf
  39. exact hi
  40. exact hz_witness
prime_field_polynomial_leading_zero_cut_exists · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 244 · statement SHA-256 a4a4616cc9e62984eb3063646296e53f9d6b108885d580b71a8f4aaf5ae54d5f

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_trim_from_cut · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 245 · statement SHA-256 580c2c6f8fc5b412e8f4ebca972e51d365f2fe2af3a862df976d58f7f6846076

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 · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 246 · statement SHA-256 97c6ba61a72ea2e0b9a692fd8c9b026a8904c325f38e89d4f9836f1f31c3a056

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_output_coefficients · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 247 · statement SHA-256 9931ce1139d8cfaee0f5c58d7b4780f1ae87e1bfe9ad34db96a6632d91e5e831

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_trim_length_bounds · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 248 · statement SHA-256 f8e81984ba3fb092294196ded3431b97d8712419a223421244d7539319382b6b

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
prime_field_polynomial_trim_leading_source_nonzero · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 249 · statement SHA-256 f57beef2a2c4349ab6a5cc43462160afd3e32c9905ff0b0636a951e6a07f00a0

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_removed_le · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 250 · statement SHA-256 bf1a6f90d2a8d4429a44190f19938279e86e1b8c8dc6fb017e81977bdadc4531

forall p b c L t d e M u f g N. ((((L)=(t)+(M)) /\ (((forall fom_index_pfp_unique_firstinput. (exists fom_gap_pfp_unique_firstinput_index_bound. fom_gap_pfp_unique_firstinput_index_bound + S (fom_index_pfp_unique_firstinput) = L) -> exists fom_value_pfp_unique_firstinput. ((((exists fom_beta_height_pfp_unique_firstinput_entry. fom_beta_height_pfp_unique_firstinput_entry + S (fom_value_pfp_unique_firstinput) = S ((S (fom_index_pfp_unique_firstinput)) * c)) /\ exists fom_beta_quotient_pfp_unique_firstinput_entry. b = fom_beta_quotient_pfp_unique_firstinput_entry * S ((S (fom_index_pfp_unique_firstinput)) * c) + (fom_value_pfp_unique_firstinput))) /\ (exists fom_gap_pfp_unique_firstinput_value_bound. fom_gap_pfp_unique_firstinput_value_bound + S (fom_value_pfp_unique_firstinput) = p))) /\ (((forall pfp_repeat_index_unique_firstremoved. (exists pfa_gap_unique_firstremovedindex. pfa_gap_unique_firstremovedindex + S (pfp_repeat_index_unique_firstremoved) = (t)) -> (((exists ff_h_pfp_unique_firstremovedentry. ff_h_pfp_unique_firstremovedentry + S (0) = S ((S (pfp_repeat_index_unique_firstremoved)) * c)) /\ exists ff_q_pfp_unique_firstremovedentry. b = ff_q_pfp_unique_firstremovedentry * S ((S (pfp_repeat_index_unique_firstremoved)) * c) + (0)))) /\ (((forall pftrim_index_unique_firstsuffix pftrim_value_unique_firstsuffix. (exists pfa_gap_unique_firstsuffixbound. pfa_gap_unique_firstsuffixbound + S (pftrim_index_unique_firstsuffix) = (M)) -> (((exists ff_h_pfp_unique_firstsuffixsource. ff_h_pfp_unique_firstsuffixsource + S (pftrim_value_unique_firstsuffix) = S ((S ((t)+pftrim_index_unique_firstsuffix)) * c)) /\ exists ff_q_pfp_unique_firstsuffixsource. b = ff_q_pfp_unique_firstsuffixsource * S ((S ((t)+pftrim_index_unique_firstsuffix)) * c) + (pftrim_value_unique_firstsuffix))) -> (((exists ff_h_pfp_unique_firstsuffixoutput. ff_h_pfp_unique_firstsuffixoutput + S (pftrim_value_unique_firstsuffix) = S ((S (pftrim_index_unique_firstsuffix)) * e)) /\ exists ff_q_pfp_unique_firstsuffixoutput. d = ff_q_pfp_unique_firstsuffixoutput * S ((S (pftrim_index_unique_firstsuffix)) * e) + (pftrim_value_unique_firstsuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_unique_firstnormal. ((((exists ff_h_pfp_unique_firstnormalentry. ff_h_pfp_unique_firstnormalentry + S (pftrim_leading_unique_firstnormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_unique_firstnormalentry. d = ff_q_pfp_unique_firstnormalentry * S ((S (0)) * e) + (pftrim_leading_unique_firstnormal))) /\ ((~(pftrim_leading_unique_firstnormal=0))))))))))))))) -> ((((L)=(u)+(N)) /\ (((forall fom_index_pfp_unique_secondinput. (exists fom_gap_pfp_unique_secondinput_index_bound. fom_gap_pfp_unique_secondinput_index_bound + S (fom_index_pfp_unique_secondinput) = L) -> exists fom_value_pfp_unique_secondinput. ((((exists fom_beta_height_pfp_unique_secondinput_entry. fom_beta_height_pfp_unique_secondinput_entry + S (fom_value_pfp_unique_secondinput) = S ((S (fom_index_pfp_unique_secondinput)) * c)) /\ exists fom_beta_quotient_pfp_unique_secondinput_entry. b = fom_beta_quotient_pfp_unique_secondinput_entry * S ((S (fom_index_pfp_unique_secondinput)) * c) + (fom_value_pfp_unique_secondinput))) /\ (exists fom_gap_pfp_unique_secondinput_value_bound. fom_gap_pfp_unique_secondinput_value_bound + S (fom_value_pfp_unique_secondinput) = p))) /\ (((forall pfp_repeat_index_unique_secondremoved. (exists pfa_gap_unique_secondremovedindex. pfa_gap_unique_secondremovedindex + S (pfp_repeat_index_unique_secondremoved) = (u)) -> (((exists ff_h_pfp_unique_secondremovedentry. ff_h_pfp_unique_secondremovedentry + S (0) = S ((S (pfp_repeat_index_unique_secondremoved)) * c)) /\ exists ff_q_pfp_unique_secondremovedentry. b = ff_q_pfp_unique_secondremovedentry * S ((S (pfp_repeat_index_unique_secondremoved)) * c) + (0)))) /\ (((forall pftrim_index_unique_secondsuffix pftrim_value_unique_secondsuffix. (exists pfa_gap_unique_secondsuffixbound. pfa_gap_unique_secondsuffixbound + S (pftrim_index_unique_secondsuffix) = (N)) -> (((exists ff_h_pfp_unique_secondsuffixsource. ff_h_pfp_unique_secondsuffixsource + S (pftrim_value_unique_secondsuffix) = S ((S ((u)+pftrim_index_unique_secondsuffix)) * c)) /\ exists ff_q_pfp_unique_secondsuffixsource. b = ff_q_pfp_unique_secondsuffixsource * S ((S ((u)+pftrim_index_unique_secondsuffix)) * c) + (pftrim_value_unique_secondsuffix))) -> (((exists ff_h_pfp_unique_secondsuffixoutput. ff_h_pfp_unique_secondsuffixoutput + S (pftrim_value_unique_secondsuffix) = S ((S (pftrim_index_unique_secondsuffix)) * g)) /\ exists ff_q_pfp_unique_secondsuffixoutput. f = ff_q_pfp_unique_secondsuffixoutput * S ((S (pftrim_index_unique_secondsuffix)) * g) + (pftrim_value_unique_secondsuffix)))) /\ (((N)=0 \/ (exists pftrim_leading_unique_secondnormal. ((((exists ff_h_pfp_unique_secondnormalentry. ff_h_pfp_unique_secondnormalentry + S (pftrim_leading_unique_secondnormal) = S ((S (0)) * g)) /\ exists ff_q_pfp_unique_secondnormalentry. f = ff_q_pfp_unique_secondnormalentry * S ((S (0)) * g) + (pftrim_leading_unique_secondnormal))) /\ ((~(pftrim_leading_unique_secondnormal=0))))))))))))))) -> (exists pftrim_gap_unique_removed_le. pftrim_gap_unique_removed_le+(t)=(u))
  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 u
  10. intro f
  11. intro g
  12. intro N
  13. intro h
  14. intro hk
  15. have hbound : ((exists pftrim_gap_compare_t. pftrim_gap_compare_t+(t)=(L)) /\ ((exists pftrim_gap_compare_M. pftrim_gap_compare_M+(M)=(L))))
  16. specialize prime_field_polynomial_trim_length_bounds (p)
  17. specialize prime_field_polynomial_trim_length_bounds (b)
  18. specialize prime_field_polynomial_trim_length_bounds (c)
  19. specialize prime_field_polynomial_trim_length_bounds (L)
  20. specialize prime_field_polynomial_trim_length_bounds (t)
  21. specialize prime_field_polynomial_trim_length_bounds (d)
  22. specialize prime_field_polynomial_trim_length_bounds (e)
  23. specialize prime_field_polynomial_trim_length_bounds (M)
  24. apply prime_field_polynomial_trim_length_bounds
  25. exact h
  26. cases hbound
  27. have horder : (exists pftrim_gap_compare_le. pftrim_gap_compare_le+(t)=(u)) \/ (exists pfa_gap_compare_lt. pfa_gap_compare_lt + S (u) = (t))
  28. specialize le_or_lt (t)
  29. specialize le_or_lt (u)
  30. apply le_or_lt
  31. cases horder
  32. exact horder_left
  33. exfalso
  34. have hN : N=0 \/ ~(N=0)
  35. specialize eq_decidable (N)
  36. specialize eq_decidable (0)
  37. apply eq_decidable
  38. cases hN
  39. have hkcopy : (((L)=(u)+(N)) /\ (((forall fom_index_pfp_compare_second_copyinput. (exists fom_gap_pfp_compare_second_copyinput_index_bound. fom_gap_pfp_compare_second_copyinput_index_bound + S (fom_index_pfp_compare_second_copyinput) = L) -> exists fom_value_pfp_compare_second_copyinput. ((((exists fom_beta_height_pfp_compare_second_copyinput_entry. fom_beta_height_pfp_compare_second_copyinput_entry + S (fom_value_pfp_compare_second_copyinput) = S ((S (fom_index_pfp_compare_second_copyinput)) * c)) /\ exists fom_beta_quotient_pfp_compare_second_copyinput_entry. b = fom_beta_quotient_pfp_compare_second_copyinput_entry * S ((S (fom_index_pfp_compare_second_copyinput)) * c) + (fom_value_pfp_compare_second_copyinput))) /\ (exists fom_gap_pfp_compare_second_copyinput_value_bound. fom_gap_pfp_compare_second_copyinput_value_bound + S (fom_value_pfp_compare_second_copyinput) = p))) /\ (((forall pfp_repeat_index_compare_second_copyremoved. (exists pfa_gap_compare_second_copyremovedindex. pfa_gap_compare_second_copyremovedindex + S (pfp_repeat_index_compare_second_copyremoved) = (u)) -> (((exists ff_h_pfp_compare_second_copyremovedentry. ff_h_pfp_compare_second_copyremovedentry + S (0) = S ((S (pfp_repeat_index_compare_second_copyremoved)) * c)) /\ exists ff_q_pfp_compare_second_copyremovedentry. b = ff_q_pfp_compare_second_copyremovedentry * S ((S (pfp_repeat_index_compare_second_copyremoved)) * c) + (0)))) /\ (((forall pftrim_index_compare_second_copysuffix pftrim_value_compare_second_copysuffix. (exists pfa_gap_compare_second_copysuffixbound. pfa_gap_compare_second_copysuffixbound + S (pftrim_index_compare_second_copysuffix) = (N)) -> (((exists ff_h_pfp_compare_second_copysuffixsource. ff_h_pfp_compare_second_copysuffixsource + S (pftrim_value_compare_second_copysuffix) = S ((S ((u)+pftrim_index_compare_second_copysuffix)) * c)) /\ exists ff_q_pfp_compare_second_copysuffixsource. b = ff_q_pfp_compare_second_copysuffixsource * S ((S ((u)+pftrim_index_compare_second_copysuffix)) * c) + (pftrim_value_compare_second_copysuffix))) -> (((exists ff_h_pfp_compare_second_copysuffixoutput. ff_h_pfp_compare_second_copysuffixoutput + S (pftrim_value_compare_second_copysuffix) = S ((S (pftrim_index_compare_second_copysuffix)) * g)) /\ exists ff_q_pfp_compare_second_copysuffixoutput. f = ff_q_pfp_compare_second_copysuffixoutput * S ((S (pftrim_index_compare_second_copysuffix)) * g) + (pftrim_value_compare_second_copysuffix)))) /\ (((N)=0 \/ (exists pftrim_leading_compare_second_copynormal. ((((exists ff_h_pfp_compare_second_copynormalentry. ff_h_pfp_compare_second_copynormalentry + S (pftrim_leading_compare_second_copynormal) = S ((S (0)) * g)) /\ exists ff_q_pfp_compare_second_copynormalentry. f = ff_q_pfp_compare_second_copynormalentry * S ((S (0)) * g) + (pftrim_leading_compare_second_copynormal))) /\ ((~(pftrim_leading_compare_second_copynormal=0))))))))))))))
  40. exact hk
  41. cases hkcopy
  42. cases hkcopy_right
  43. cases hkcopy_right_right
  44. cases hkcopy_right_right_right
  45. have hlen : L=u
  46. trans u+N
  47. exact hkcopy_left
  48. rewrite hN_left
  49. simp
  50. rewrite hlen at hbound_left
  51. specialize lt_not_le (u)
  52. specialize lt_not_le (t)
  53. apply lt_not_le
  54. exact horder_right
  55. exact hbound_left
  56. have hcopy : (((L)=(t)+(M)) /\ (((forall fom_index_pfp_compare_first_copyinput. (exists fom_gap_pfp_compare_first_copyinput_index_bound. fom_gap_pfp_compare_first_copyinput_index_bound + S (fom_index_pfp_compare_first_copyinput) = L) -> exists fom_value_pfp_compare_first_copyinput. ((((exists fom_beta_height_pfp_compare_first_copyinput_entry. fom_beta_height_pfp_compare_first_copyinput_entry + S (fom_value_pfp_compare_first_copyinput) = S ((S (fom_index_pfp_compare_first_copyinput)) * c)) /\ exists fom_beta_quotient_pfp_compare_first_copyinput_entry. b = fom_beta_quotient_pfp_compare_first_copyinput_entry * S ((S (fom_index_pfp_compare_first_copyinput)) * c) + (fom_value_pfp_compare_first_copyinput))) /\ (exists fom_gap_pfp_compare_first_copyinput_value_bound. fom_gap_pfp_compare_first_copyinput_value_bound + S (fom_value_pfp_compare_first_copyinput) = p))) /\ (((forall pfp_repeat_index_compare_first_copyremoved. (exists pfa_gap_compare_first_copyremovedindex. pfa_gap_compare_first_copyremovedindex + S (pfp_repeat_index_compare_first_copyremoved) = (t)) -> (((exists ff_h_pfp_compare_first_copyremovedentry. ff_h_pfp_compare_first_copyremovedentry + S (0) = S ((S (pfp_repeat_index_compare_first_copyremoved)) * c)) /\ exists ff_q_pfp_compare_first_copyremovedentry. b = ff_q_pfp_compare_first_copyremovedentry * S ((S (pfp_repeat_index_compare_first_copyremoved)) * c) + (0)))) /\ (((forall pftrim_index_compare_first_copysuffix pftrim_value_compare_first_copysuffix. (exists pfa_gap_compare_first_copysuffixbound. pfa_gap_compare_first_copysuffixbound + S (pftrim_index_compare_first_copysuffix) = (M)) -> (((exists ff_h_pfp_compare_first_copysuffixsource. ff_h_pfp_compare_first_copysuffixsource + S (pftrim_value_compare_first_copysuffix) = S ((S ((t)+pftrim_index_compare_first_copysuffix)) * c)) /\ exists ff_q_pfp_compare_first_copysuffixsource. b = ff_q_pfp_compare_first_copysuffixsource * S ((S ((t)+pftrim_index_compare_first_copysuffix)) * c) + (pftrim_value_compare_first_copysuffix))) -> (((exists ff_h_pfp_compare_first_copysuffixoutput. ff_h_pfp_compare_first_copysuffixoutput + S (pftrim_value_compare_first_copysuffix) = S ((S (pftrim_index_compare_first_copysuffix)) * e)) /\ exists ff_q_pfp_compare_first_copysuffixoutput. d = ff_q_pfp_compare_first_copysuffixoutput * S ((S (pftrim_index_compare_first_copysuffix)) * e) + (pftrim_value_compare_first_copysuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_compare_first_copynormal. ((((exists ff_h_pfp_compare_first_copynormalentry. ff_h_pfp_compare_first_copynormalentry + S (pftrim_leading_compare_first_copynormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_compare_first_copynormalentry. d = ff_q_pfp_compare_first_copynormalentry * S ((S (0)) * e) + (pftrim_leading_compare_first_copynormal))) /\ ((~(pftrim_leading_compare_first_copynormal=0))))))))))))))
  57. exact h
  58. cases hcopy
  59. cases hcopy_right
  60. cases hcopy_right_right
  61. cases hcopy_right_right_right
  62. have hz : ((exists ff_h_pfp_compare_zero. ff_h_pfp_compare_zero + S (0) = S ((S (u)) * c)) /\ exists ff_q_pfp_compare_zero. b = ff_q_pfp_compare_zero * S ((S (u)) * c) + (0))
  63. specialize hcopy_right_right_left (u)
  64. apply hcopy_right_right_left
  65. exact horder_right
  66. specialize prime_field_polynomial_trim_leading_source_nonzero (p)
  67. specialize prime_field_polynomial_trim_leading_source_nonzero (b)
  68. specialize prime_field_polynomial_trim_leading_source_nonzero (c)
  69. specialize prime_field_polynomial_trim_leading_source_nonzero (L)
  70. specialize prime_field_polynomial_trim_leading_source_nonzero (u)
  71. specialize prime_field_polynomial_trim_leading_source_nonzero (f)
  72. specialize prime_field_polynomial_trim_leading_source_nonzero (g)
  73. specialize prime_field_polynomial_trim_leading_source_nonzero (N)
  74. specialize prime_field_polynomial_trim_leading_source_nonzero (0)
  75. apply prime_field_polynomial_trim_leading_source_nonzero
  76. exact hk
  77. exact hN_right
  78. exact hz
  79. refl
prime_field_polynomial_trim_removed_count_unique · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 251 · statement SHA-256 740b717477213c9f00805fd5737ff74bfad4119b93295f27754cda5f36043081

forall p b c L t d e M u f g N. ((((L)=(t)+(M)) /\ (((forall fom_index_pfp_unique_firstinput. (exists fom_gap_pfp_unique_firstinput_index_bound. fom_gap_pfp_unique_firstinput_index_bound + S (fom_index_pfp_unique_firstinput) = L) -> exists fom_value_pfp_unique_firstinput. ((((exists fom_beta_height_pfp_unique_firstinput_entry. fom_beta_height_pfp_unique_firstinput_entry + S (fom_value_pfp_unique_firstinput) = S ((S (fom_index_pfp_unique_firstinput)) * c)) /\ exists fom_beta_quotient_pfp_unique_firstinput_entry. b = fom_beta_quotient_pfp_unique_firstinput_entry * S ((S (fom_index_pfp_unique_firstinput)) * c) + (fom_value_pfp_unique_firstinput))) /\ (exists fom_gap_pfp_unique_firstinput_value_bound. fom_gap_pfp_unique_firstinput_value_bound + S (fom_value_pfp_unique_firstinput) = p))) /\ (((forall pfp_repeat_index_unique_firstremoved. (exists pfa_gap_unique_firstremovedindex. pfa_gap_unique_firstremovedindex + S (pfp_repeat_index_unique_firstremoved) = (t)) -> (((exists ff_h_pfp_unique_firstremovedentry. ff_h_pfp_unique_firstremovedentry + S (0) = S ((S (pfp_repeat_index_unique_firstremoved)) * c)) /\ exists ff_q_pfp_unique_firstremovedentry. b = ff_q_pfp_unique_firstremovedentry * S ((S (pfp_repeat_index_unique_firstremoved)) * c) + (0)))) /\ (((forall pftrim_index_unique_firstsuffix pftrim_value_unique_firstsuffix. (exists pfa_gap_unique_firstsuffixbound. pfa_gap_unique_firstsuffixbound + S (pftrim_index_unique_firstsuffix) = (M)) -> (((exists ff_h_pfp_unique_firstsuffixsource. ff_h_pfp_unique_firstsuffixsource + S (pftrim_value_unique_firstsuffix) = S ((S ((t)+pftrim_index_unique_firstsuffix)) * c)) /\ exists ff_q_pfp_unique_firstsuffixsource. b = ff_q_pfp_unique_firstsuffixsource * S ((S ((t)+pftrim_index_unique_firstsuffix)) * c) + (pftrim_value_unique_firstsuffix))) -> (((exists ff_h_pfp_unique_firstsuffixoutput. ff_h_pfp_unique_firstsuffixoutput + S (pftrim_value_unique_firstsuffix) = S ((S (pftrim_index_unique_firstsuffix)) * e)) /\ exists ff_q_pfp_unique_firstsuffixoutput. d = ff_q_pfp_unique_firstsuffixoutput * S ((S (pftrim_index_unique_firstsuffix)) * e) + (pftrim_value_unique_firstsuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_unique_firstnormal. ((((exists ff_h_pfp_unique_firstnormalentry. ff_h_pfp_unique_firstnormalentry + S (pftrim_leading_unique_firstnormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_unique_firstnormalentry. d = ff_q_pfp_unique_firstnormalentry * S ((S (0)) * e) + (pftrim_leading_unique_firstnormal))) /\ ((~(pftrim_leading_unique_firstnormal=0))))))))))))))) -> ((((L)=(u)+(N)) /\ (((forall fom_index_pfp_unique_secondinput. (exists fom_gap_pfp_unique_secondinput_index_bound. fom_gap_pfp_unique_secondinput_index_bound + S (fom_index_pfp_unique_secondinput) = L) -> exists fom_value_pfp_unique_secondinput. ((((exists fom_beta_height_pfp_unique_secondinput_entry. fom_beta_height_pfp_unique_secondinput_entry + S (fom_value_pfp_unique_secondinput) = S ((S (fom_index_pfp_unique_secondinput)) * c)) /\ exists fom_beta_quotient_pfp_unique_secondinput_entry. b = fom_beta_quotient_pfp_unique_secondinput_entry * S ((S (fom_index_pfp_unique_secondinput)) * c) + (fom_value_pfp_unique_secondinput))) /\ (exists fom_gap_pfp_unique_secondinput_value_bound. fom_gap_pfp_unique_secondinput_value_bound + S (fom_value_pfp_unique_secondinput) = p))) /\ (((forall pfp_repeat_index_unique_secondremoved. (exists pfa_gap_unique_secondremovedindex. pfa_gap_unique_secondremovedindex + S (pfp_repeat_index_unique_secondremoved) = (u)) -> (((exists ff_h_pfp_unique_secondremovedentry. ff_h_pfp_unique_secondremovedentry + S (0) = S ((S (pfp_repeat_index_unique_secondremoved)) * c)) /\ exists ff_q_pfp_unique_secondremovedentry. b = ff_q_pfp_unique_secondremovedentry * S ((S (pfp_repeat_index_unique_secondremoved)) * c) + (0)))) /\ (((forall pftrim_index_unique_secondsuffix pftrim_value_unique_secondsuffix. (exists pfa_gap_unique_secondsuffixbound. pfa_gap_unique_secondsuffixbound + S (pftrim_index_unique_secondsuffix) = (N)) -> (((exists ff_h_pfp_unique_secondsuffixsource. ff_h_pfp_unique_secondsuffixsource + S (pftrim_value_unique_secondsuffix) = S ((S ((u)+pftrim_index_unique_secondsuffix)) * c)) /\ exists ff_q_pfp_unique_secondsuffixsource. b = ff_q_pfp_unique_secondsuffixsource * S ((S ((u)+pftrim_index_unique_secondsuffix)) * c) + (pftrim_value_unique_secondsuffix))) -> (((exists ff_h_pfp_unique_secondsuffixoutput. ff_h_pfp_unique_secondsuffixoutput + S (pftrim_value_unique_secondsuffix) = S ((S (pftrim_index_unique_secondsuffix)) * g)) /\ exists ff_q_pfp_unique_secondsuffixoutput. f = ff_q_pfp_unique_secondsuffixoutput * S ((S (pftrim_index_unique_secondsuffix)) * g) + (pftrim_value_unique_secondsuffix)))) /\ (((N)=0 \/ (exists pftrim_leading_unique_secondnormal. ((((exists ff_h_pfp_unique_secondnormalentry. ff_h_pfp_unique_secondnormalentry + S (pftrim_leading_unique_secondnormal) = S ((S (0)) * g)) /\ exists ff_q_pfp_unique_secondnormalentry. f = ff_q_pfp_unique_secondnormalentry * S ((S (0)) * g) + (pftrim_leading_unique_secondnormal))) /\ ((~(pftrim_leading_unique_secondnormal=0))))))))))))))) -> t=u
  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 u
  10. intro f
  11. intro g
  12. intro N
  13. intro h
  14. intro hk
  15. specialize le_antisymm (t)
  16. specialize le_antisymm (u)
  17. apply le_antisymm
  18. specialize prime_field_polynomial_trim_removed_le (p)
  19. specialize prime_field_polynomial_trim_removed_le (b)
  20. specialize prime_field_polynomial_trim_removed_le (c)
  21. specialize prime_field_polynomial_trim_removed_le (L)
  22. specialize prime_field_polynomial_trim_removed_le (t)
  23. specialize prime_field_polynomial_trim_removed_le (d)
  24. specialize prime_field_polynomial_trim_removed_le (e)
  25. specialize prime_field_polynomial_trim_removed_le (M)
  26. specialize prime_field_polynomial_trim_removed_le (u)
  27. specialize prime_field_polynomial_trim_removed_le (f)
  28. specialize prime_field_polynomial_trim_removed_le (g)
  29. specialize prime_field_polynomial_trim_removed_le (N)
  30. apply prime_field_polynomial_trim_removed_le
  31. exact h
  32. exact hk
  33. specialize prime_field_polynomial_trim_removed_le (p)
  34. specialize prime_field_polynomial_trim_removed_le (b)
  35. specialize prime_field_polynomial_trim_removed_le (c)
  36. specialize prime_field_polynomial_trim_removed_le (L)
  37. specialize prime_field_polynomial_trim_removed_le (u)
  38. specialize prime_field_polynomial_trim_removed_le (f)
  39. specialize prime_field_polynomial_trim_removed_le (g)
  40. specialize prime_field_polynomial_trim_removed_le (N)
  41. specialize prime_field_polynomial_trim_removed_le (t)
  42. specialize prime_field_polynomial_trim_removed_le (d)
  43. specialize prime_field_polynomial_trim_removed_le (e)
  44. specialize prime_field_polynomial_trim_removed_le (M)
  45. apply prime_field_polynomial_trim_removed_le
  46. exact hk
  47. exact h
prime_field_polynomial_trim_retained_length_unique · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 252 · statement SHA-256 0b747d8e1965ef0a5643affaa0c885db6fd7aa3e39ab85e6c6b54946dfae2409

forall p b c L t d e M u f g N. ((((L)=(t)+(M)) /\ (((forall fom_index_pfp_unique_firstinput. (exists fom_gap_pfp_unique_firstinput_index_bound. fom_gap_pfp_unique_firstinput_index_bound + S (fom_index_pfp_unique_firstinput) = L) -> exists fom_value_pfp_unique_firstinput. ((((exists fom_beta_height_pfp_unique_firstinput_entry. fom_beta_height_pfp_unique_firstinput_entry + S (fom_value_pfp_unique_firstinput) = S ((S (fom_index_pfp_unique_firstinput)) * c)) /\ exists fom_beta_quotient_pfp_unique_firstinput_entry. b = fom_beta_quotient_pfp_unique_firstinput_entry * S ((S (fom_index_pfp_unique_firstinput)) * c) + (fom_value_pfp_unique_firstinput))) /\ (exists fom_gap_pfp_unique_firstinput_value_bound. fom_gap_pfp_unique_firstinput_value_bound + S (fom_value_pfp_unique_firstinput) = p))) /\ (((forall pfp_repeat_index_unique_firstremoved. (exists pfa_gap_unique_firstremovedindex. pfa_gap_unique_firstremovedindex + S (pfp_repeat_index_unique_firstremoved) = (t)) -> (((exists ff_h_pfp_unique_firstremovedentry. ff_h_pfp_unique_firstremovedentry + S (0) = S ((S (pfp_repeat_index_unique_firstremoved)) * c)) /\ exists ff_q_pfp_unique_firstremovedentry. b = ff_q_pfp_unique_firstremovedentry * S ((S (pfp_repeat_index_unique_firstremoved)) * c) + (0)))) /\ (((forall pftrim_index_unique_firstsuffix pftrim_value_unique_firstsuffix. (exists pfa_gap_unique_firstsuffixbound. pfa_gap_unique_firstsuffixbound + S (pftrim_index_unique_firstsuffix) = (M)) -> (((exists ff_h_pfp_unique_firstsuffixsource. ff_h_pfp_unique_firstsuffixsource + S (pftrim_value_unique_firstsuffix) = S ((S ((t)+pftrim_index_unique_firstsuffix)) * c)) /\ exists ff_q_pfp_unique_firstsuffixsource. b = ff_q_pfp_unique_firstsuffixsource * S ((S ((t)+pftrim_index_unique_firstsuffix)) * c) + (pftrim_value_unique_firstsuffix))) -> (((exists ff_h_pfp_unique_firstsuffixoutput. ff_h_pfp_unique_firstsuffixoutput + S (pftrim_value_unique_firstsuffix) = S ((S (pftrim_index_unique_firstsuffix)) * e)) /\ exists ff_q_pfp_unique_firstsuffixoutput. d = ff_q_pfp_unique_firstsuffixoutput * S ((S (pftrim_index_unique_firstsuffix)) * e) + (pftrim_value_unique_firstsuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_unique_firstnormal. ((((exists ff_h_pfp_unique_firstnormalentry. ff_h_pfp_unique_firstnormalentry + S (pftrim_leading_unique_firstnormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_unique_firstnormalentry. d = ff_q_pfp_unique_firstnormalentry * S ((S (0)) * e) + (pftrim_leading_unique_firstnormal))) /\ ((~(pftrim_leading_unique_firstnormal=0))))))))))))))) -> ((((L)=(u)+(N)) /\ (((forall fom_index_pfp_unique_secondinput. (exists fom_gap_pfp_unique_secondinput_index_bound. fom_gap_pfp_unique_secondinput_index_bound + S (fom_index_pfp_unique_secondinput) = L) -> exists fom_value_pfp_unique_secondinput. ((((exists fom_beta_height_pfp_unique_secondinput_entry. fom_beta_height_pfp_unique_secondinput_entry + S (fom_value_pfp_unique_secondinput) = S ((S (fom_index_pfp_unique_secondinput)) * c)) /\ exists fom_beta_quotient_pfp_unique_secondinput_entry. b = fom_beta_quotient_pfp_unique_secondinput_entry * S ((S (fom_index_pfp_unique_secondinput)) * c) + (fom_value_pfp_unique_secondinput))) /\ (exists fom_gap_pfp_unique_secondinput_value_bound. fom_gap_pfp_unique_secondinput_value_bound + S (fom_value_pfp_unique_secondinput) = p))) /\ (((forall pfp_repeat_index_unique_secondremoved. (exists pfa_gap_unique_secondremovedindex. pfa_gap_unique_secondremovedindex + S (pfp_repeat_index_unique_secondremoved) = (u)) -> (((exists ff_h_pfp_unique_secondremovedentry. ff_h_pfp_unique_secondremovedentry + S (0) = S ((S (pfp_repeat_index_unique_secondremoved)) * c)) /\ exists ff_q_pfp_unique_secondremovedentry. b = ff_q_pfp_unique_secondremovedentry * S ((S (pfp_repeat_index_unique_secondremoved)) * c) + (0)))) /\ (((forall pftrim_index_unique_secondsuffix pftrim_value_unique_secondsuffix. (exists pfa_gap_unique_secondsuffixbound. pfa_gap_unique_secondsuffixbound + S (pftrim_index_unique_secondsuffix) = (N)) -> (((exists ff_h_pfp_unique_secondsuffixsource. ff_h_pfp_unique_secondsuffixsource + S (pftrim_value_unique_secondsuffix) = S ((S ((u)+pftrim_index_unique_secondsuffix)) * c)) /\ exists ff_q_pfp_unique_secondsuffixsource. b = ff_q_pfp_unique_secondsuffixsource * S ((S ((u)+pftrim_index_unique_secondsuffix)) * c) + (pftrim_value_unique_secondsuffix))) -> (((exists ff_h_pfp_unique_secondsuffixoutput. ff_h_pfp_unique_secondsuffixoutput + S (pftrim_value_unique_secondsuffix) = S ((S (pftrim_index_unique_secondsuffix)) * g)) /\ exists ff_q_pfp_unique_secondsuffixoutput. f = ff_q_pfp_unique_secondsuffixoutput * S ((S (pftrim_index_unique_secondsuffix)) * g) + (pftrim_value_unique_secondsuffix)))) /\ (((N)=0 \/ (exists pftrim_leading_unique_secondnormal. ((((exists ff_h_pfp_unique_secondnormalentry. ff_h_pfp_unique_secondnormalentry + S (pftrim_leading_unique_secondnormal) = S ((S (0)) * g)) /\ exists ff_q_pfp_unique_secondnormalentry. f = ff_q_pfp_unique_secondnormalentry * S ((S (0)) * g) + (pftrim_leading_unique_secondnormal))) /\ ((~(pftrim_leading_unique_secondnormal=0))))))))))))))) -> M=N
  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 u
  10. intro f
  11. intro g
  12. intro N
  13. intro h
  14. intro hk
  15. have ht : t=u
  16. specialize prime_field_polynomial_trim_removed_count_unique (p)
  17. specialize prime_field_polynomial_trim_removed_count_unique (b)
  18. specialize prime_field_polynomial_trim_removed_count_unique (c)
  19. specialize prime_field_polynomial_trim_removed_count_unique (L)
  20. specialize prime_field_polynomial_trim_removed_count_unique (t)
  21. specialize prime_field_polynomial_trim_removed_count_unique (d)
  22. specialize prime_field_polynomial_trim_removed_count_unique (e)
  23. specialize prime_field_polynomial_trim_removed_count_unique (M)
  24. specialize prime_field_polynomial_trim_removed_count_unique (u)
  25. specialize prime_field_polynomial_trim_removed_count_unique (f)
  26. specialize prime_field_polynomial_trim_removed_count_unique (g)
  27. specialize prime_field_polynomial_trim_removed_count_unique (N)
  28. apply prime_field_polynomial_trim_removed_count_unique
  29. exact h
  30. exact hk
  31. cases h
  32. cases h_right
  33. cases h_right_right
  34. cases h_right_right_right
  35. cases hk
  36. cases hk_right
  37. cases hk_right_right
  38. cases hk_right_right_right
  39. specialize add_left_cancel (t)
  40. specialize add_left_cancel (M)
  41. specialize add_left_cancel (N)
  42. apply add_left_cancel
  43. trans L
  44. symm
  45. exact h_left
  46. trans u+N
  47. exact hk_left
  48. congr
  49. symm
  50. exact ht
  51. refl
prime_field_polynomial_trim_output_equal · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 253 · statement SHA-256 6b164bd03ffa37df21c1bea56aedaef6ce38da25feb7fa58c3360e1b561ba928

forall p b c L t d e M u f g N. ((((L)=(t)+(M)) /\ (((forall fom_index_pfp_unique_firstinput. (exists fom_gap_pfp_unique_firstinput_index_bound. fom_gap_pfp_unique_firstinput_index_bound + S (fom_index_pfp_unique_firstinput) = L) -> exists fom_value_pfp_unique_firstinput. ((((exists fom_beta_height_pfp_unique_firstinput_entry. fom_beta_height_pfp_unique_firstinput_entry + S (fom_value_pfp_unique_firstinput) = S ((S (fom_index_pfp_unique_firstinput)) * c)) /\ exists fom_beta_quotient_pfp_unique_firstinput_entry. b = fom_beta_quotient_pfp_unique_firstinput_entry * S ((S (fom_index_pfp_unique_firstinput)) * c) + (fom_value_pfp_unique_firstinput))) /\ (exists fom_gap_pfp_unique_firstinput_value_bound. fom_gap_pfp_unique_firstinput_value_bound + S (fom_value_pfp_unique_firstinput) = p))) /\ (((forall pfp_repeat_index_unique_firstremoved. (exists pfa_gap_unique_firstremovedindex. pfa_gap_unique_firstremovedindex + S (pfp_repeat_index_unique_firstremoved) = (t)) -> (((exists ff_h_pfp_unique_firstremovedentry. ff_h_pfp_unique_firstremovedentry + S (0) = S ((S (pfp_repeat_index_unique_firstremoved)) * c)) /\ exists ff_q_pfp_unique_firstremovedentry. b = ff_q_pfp_unique_firstremovedentry * S ((S (pfp_repeat_index_unique_firstremoved)) * c) + (0)))) /\ (((forall pftrim_index_unique_firstsuffix pftrim_value_unique_firstsuffix. (exists pfa_gap_unique_firstsuffixbound. pfa_gap_unique_firstsuffixbound + S (pftrim_index_unique_firstsuffix) = (M)) -> (((exists ff_h_pfp_unique_firstsuffixsource. ff_h_pfp_unique_firstsuffixsource + S (pftrim_value_unique_firstsuffix) = S ((S ((t)+pftrim_index_unique_firstsuffix)) * c)) /\ exists ff_q_pfp_unique_firstsuffixsource. b = ff_q_pfp_unique_firstsuffixsource * S ((S ((t)+pftrim_index_unique_firstsuffix)) * c) + (pftrim_value_unique_firstsuffix))) -> (((exists ff_h_pfp_unique_firstsuffixoutput. ff_h_pfp_unique_firstsuffixoutput + S (pftrim_value_unique_firstsuffix) = S ((S (pftrim_index_unique_firstsuffix)) * e)) /\ exists ff_q_pfp_unique_firstsuffixoutput. d = ff_q_pfp_unique_firstsuffixoutput * S ((S (pftrim_index_unique_firstsuffix)) * e) + (pftrim_value_unique_firstsuffix)))) /\ (((M)=0 \/ (exists pftrim_leading_unique_firstnormal. ((((exists ff_h_pfp_unique_firstnormalentry. ff_h_pfp_unique_firstnormalentry + S (pftrim_leading_unique_firstnormal) = S ((S (0)) * e)) /\ exists ff_q_pfp_unique_firstnormalentry. d = ff_q_pfp_unique_firstnormalentry * S ((S (0)) * e) + (pftrim_leading_unique_firstnormal))) /\ ((~(pftrim_leading_unique_firstnormal=0))))))))))))))) -> ((((L)=(u)+(N)) /\ (((forall fom_index_pfp_unique_secondinput. (exists fom_gap_pfp_unique_secondinput_index_bound. fom_gap_pfp_unique_secondinput_index_bound + S (fom_index_pfp_unique_secondinput) = L) -> exists fom_value_pfp_unique_secondinput. ((((exists fom_beta_height_pfp_unique_secondinput_entry. fom_beta_height_pfp_unique_secondinput_entry + S (fom_value_pfp_unique_secondinput) = S ((S (fom_index_pfp_unique_secondinput)) * c)) /\ exists fom_beta_quotient_pfp_unique_secondinput_entry. b = fom_beta_quotient_pfp_unique_secondinput_entry * S ((S (fom_index_pfp_unique_secondinput)) * c) + (fom_value_pfp_unique_secondinput))) /\ (exists fom_gap_pfp_unique_secondinput_value_bound. fom_gap_pfp_unique_secondinput_value_bound + S (fom_value_pfp_unique_secondinput) = p))) /\ (((forall pfp_repeat_index_unique_secondremoved. (exists pfa_gap_unique_secondremovedindex. pfa_gap_unique_secondremovedindex + S (pfp_repeat_index_unique_secondremoved) = (u)) -> (((exists ff_h_pfp_unique_secondremovedentry. ff_h_pfp_unique_secondremovedentry + S (0) = S ((S (pfp_repeat_index_unique_secondremoved)) * c)) /\ exists ff_q_pfp_unique_secondremovedentry. b = ff_q_pfp_unique_secondremovedentry * S ((S (pfp_repeat_index_unique_secondremoved)) * c) + (0)))) /\ (((forall pftrim_index_unique_secondsuffix pftrim_value_unique_secondsuffix. (exists pfa_gap_unique_secondsuffixbound. pfa_gap_unique_secondsuffixbound + S (pftrim_index_unique_secondsuffix) = (N)) -> (((exists ff_h_pfp_unique_secondsuffixsource. ff_h_pfp_unique_secondsuffixsource + S (pftrim_value_unique_secondsuffix) = S ((S ((u)+pftrim_index_unique_secondsuffix)) * c)) /\ exists ff_q_pfp_unique_secondsuffixsource. b = ff_q_pfp_unique_secondsuffixsource * S ((S ((u)+pftrim_index_unique_secondsuffix)) * c) + (pftrim_value_unique_secondsuffix))) -> (((exists ff_h_pfp_unique_secondsuffixoutput. ff_h_pfp_unique_secondsuffixoutput + S (pftrim_value_unique_secondsuffix) = S ((S (pftrim_index_unique_secondsuffix)) * g)) /\ exists ff_q_pfp_unique_secondsuffixoutput. f = ff_q_pfp_unique_secondsuffixoutput * S ((S (pftrim_index_unique_secondsuffix)) * g) + (pftrim_value_unique_secondsuffix)))) /\ (((N)=0 \/ (exists pftrim_leading_unique_secondnormal. ((((exists ff_h_pfp_unique_secondnormalentry. ff_h_pfp_unique_secondnormalentry + S (pftrim_leading_unique_secondnormal) = S ((S (0)) * g)) /\ exists ff_q_pfp_unique_secondnormalentry. f = ff_q_pfp_unique_secondnormalentry * S ((S (0)) * g) + (pftrim_leading_unique_secondnormal))) /\ ((~(pftrim_leading_unique_secondnormal=0))))))))))))))) -> (forall mdr_i_pfp_unique_coefficients mdr_a_pfp_unique_coefficients. (exists mdr_gap_pfp_unique_coefficientsb. mdr_gap_pfp_unique_coefficientsb + S (mdr_i_pfp_unique_coefficients) = (M)) -> (((exists ff_h_mdr_pfp_unique_coefficientso. ff_h_mdr_pfp_unique_coefficientso + S (mdr_a_pfp_unique_coefficients) = S ((S (mdr_i_pfp_unique_coefficients)) * e)) /\ exists ff_q_mdr_pfp_unique_coefficientso. d = ff_q_mdr_pfp_unique_coefficientso * S ((S (mdr_i_pfp_unique_coefficients)) * e) + (mdr_a_pfp_unique_coefficients))) -> (((exists ff_h_mdr_pfp_unique_coefficientsn. ff_h_mdr_pfp_unique_coefficientsn + S (mdr_a_pfp_unique_coefficients) = S ((S (mdr_i_pfp_unique_coefficients)) * g)) /\ exists ff_q_mdr_pfp_unique_coefficientsn. f = ff_q_mdr_pfp_unique_coefficientsn * S ((S (mdr_i_pfp_unique_coefficients)) * g) + (mdr_a_pfp_unique_coefficients))))
  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 u
  10. intro f
  11. intro g
  12. intro N
  13. intro h
  14. intro hk
  15. have ht : t=u
  16. specialize prime_field_polynomial_trim_removed_count_unique (p)
  17. specialize prime_field_polynomial_trim_removed_count_unique (b)
  18. specialize prime_field_polynomial_trim_removed_count_unique (c)
  19. specialize prime_field_polynomial_trim_removed_count_unique (L)
  20. specialize prime_field_polynomial_trim_removed_count_unique (t)
  21. specialize prime_field_polynomial_trim_removed_count_unique (d)
  22. specialize prime_field_polynomial_trim_removed_count_unique (e)
  23. specialize prime_field_polynomial_trim_removed_count_unique (M)
  24. specialize prime_field_polynomial_trim_removed_count_unique (u)
  25. specialize prime_field_polynomial_trim_removed_count_unique (f)
  26. specialize prime_field_polynomial_trim_removed_count_unique (g)
  27. specialize prime_field_polynomial_trim_removed_count_unique (N)
  28. apply prime_field_polynomial_trim_removed_count_unique
  29. exact h
  30. exact hk
  31. have hM : M=N
  32. specialize prime_field_polynomial_trim_retained_length_unique (p)
  33. specialize prime_field_polynomial_trim_retained_length_unique (b)
  34. specialize prime_field_polynomial_trim_retained_length_unique (c)
  35. specialize prime_field_polynomial_trim_retained_length_unique (L)
  36. specialize prime_field_polynomial_trim_retained_length_unique (t)
  37. specialize prime_field_polynomial_trim_retained_length_unique (d)
  38. specialize prime_field_polynomial_trim_retained_length_unique (e)
  39. specialize prime_field_polynomial_trim_retained_length_unique (M)
  40. specialize prime_field_polynomial_trim_retained_length_unique (u)
  41. specialize prime_field_polynomial_trim_retained_length_unique (f)
  42. specialize prime_field_polynomial_trim_retained_length_unique (g)
  43. specialize prime_field_polynomial_trim_retained_length_unique (N)
  44. apply prime_field_polynomial_trim_retained_length_unique
  45. exact h
  46. exact hk
  47. cases h
  48. cases h_right
  49. cases h_right_right
  50. cases h_right_right_right
  51. cases hk
  52. cases hk_right
  53. cases hk_right_right
  54. cases hk_right_right_right
  55. rewrite ht at h_right_right_right_left
  56. rewrite ht at h_right_right_right_left
  57. rewrite hM at h_right_right_right_left
  58. rewrite hM
  59. specialize prime_field_polynomial_suffix_equal (b)
  60. specialize prime_field_polynomial_suffix_equal (c)
  61. specialize prime_field_polynomial_suffix_equal (u)
  62. specialize prime_field_polynomial_suffix_equal (d)
  63. specialize prime_field_polynomial_suffix_equal (e)
  64. specialize prime_field_polynomial_suffix_equal (f)
  65. specialize prime_field_polynomial_suffix_equal (g)
  66. specialize prime_field_polynomial_suffix_equal (N)
  67. apply prime_field_polynomial_suffix_equal
  68. exact h_right_right_right_left
  69. exact hk_right_right_right_left
prime_field_polynomial_trim_represented_degree · inherited Alpha-v32 support · not Stable

Not a new v33 admission. Bundle node 254 · statement SHA-256 0fdd9a531d8218df97eeef68f54a4952e294eeda30a419ae7e442005a2811f76

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