jubjub.lisp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. (def! D "0x2a9318e74bfa2b48f5fd9207e6bd7fd4292d7f6d37579d2601065fd6d6343eb1")
  2. (def! ONE "0x0000000000000000000000000000000000000000000000000000000000000001")
  3. (def! jj-add (fn* [x1 y1 x2 y2] (println x1 y1 x2 y2 D ONE)))
  4. (jj-add 1 2 3 4)
  5. ;; (def! U (mul (add (x1 y1)) (add (x2 y2))))
  6. ;; (enforce
  7. ;; (add_lc0 (x1 y1))
  8. ;; (add_lc1 (x2 y2))
  9. ;; (add_lc2 U))
  10. ;; (def A (mul (x2 x1)))
  11. ;; (def B (mul (x2 y1)))
  12. ;; (def C (mul (C_ONE A)))
  13. ;; (enforce
  14. ;; (add_coeff_lc0 (C_D A))
  15. ;; (add_lc1 B)
  16. ;; (add_lc2 C))
  17. ;; (def Px
  18. ;; (div (add A B)
  19. ;; (add C_ONE C)))
  20. ;; (enforce
  21. ;; (add_one_lc0)
  22. ;; (sub_lc0 C)
  23. ;; (add_lc1 Px)
  24. ;; (add_lc2 (A B)))
  25. ;;
  26. ;; (def Py
  27. ;; (div (sub U A B)
  28. ;; (sub C_ONE C)))
  29. ;; (enforce
  30. ;; (add_one_lc0)
  31. ;; (sub_lc0 C)
  32. ;; (add_lc1 Py)
  33. ;; (add_lc2 (U A B)))
  34. ;; (Px Py)
  35. ;; )
  36. ;; (def input_spend (contract x1 y1 x2 y2) (
  37. ;; (def P (jjadd (x1 y1 x2 y2)))
  38. ;; (enforce
  39. ;; (add_lc0 Px)
  40. ;; (add_lc1_one)
  41. ;; (add_lc2 Px))
  42. ;; (enforce
  43. ;; (add_lc0 Py)
  44. ;; (add_lc1_one)
  45. ;; (add_lc2 Py))
  46. ;; )