| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- (def! inc (fn* [a] (i+ a 1)))
- (def! gensym
- (let* [counter (atom 0)]
- (fn* []
- (symbol (str "G__" (swap! counter inc))))))
- (defmacro! zk-square (fn* [var] (
- (let* [v1 (gensym)
- v2 (gensym)] (
- `(alloc ~v1 ~var)
- `(def! v2 (alloc ~v2 (square ~var)))
- `(enforce
- (scalar::one ~v1)
- (scalar::one ~v1)
- (scalar::one ~v2)
- )
- `{ "v2" v2 }
- )
- ))
- ))
- ;; -u^2 + v^2 = 1 + du^2v^2
- (defmacro! zk-witness (fn* [val1 val2] (
- (let* [v (gensym)
- u (gensym)
- u2v2 (gensym)] (
- `(alloc ~v1 ~var)
- `(alloc ~v2 (square ~var))
- `(enforce
- (scalar::one ~v1)
- (scalar::one ~v1)
- (scalar::one ~v2)
- )
- )
- ))
- ))
- (def! param1 (scalar 3))
- (def! param2 (scalar 1))
- (prove
- (
- (def! result1 (zk-square param1))
- ;; (def! result2 (zk-square param2))
- (println 'result1_map (nth (nth result1 0) 3))
- (println 'result1 (nth (nth result1 0) 1))
- )
- )
|