| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- constant one 0x0000000000000000000000000000000000000000000000000000000000000001
- contract tutorial_contract
- param w
- param a
- param b
- private m
- set m a
- mul m b
- # ab = m
- lc0_add a
- lc1_add b
- lc2_add m
- enforce
- # v = wab ...
- public v
- set v w
- mul v a
- mul v b
- # v = wab + a + b ...
- add v a
- add v b
- # v = wab + a + b - v'
- # v' = w(a + b)
- local vprime
- set vprime a
- add vprime b
- mul vprime w
- sub v vprime
- # w(m - a - b) = v - a - b
- lc0_add w
- lc1_add m
- lc1_sub a
- lc1_sub b
- lc2_add v
- lc2_sub a
- lc2_sub b
- enforce
- # Binary check that w^2 = w
- lc0_add w
- lc1_add w
- lc2_add w
- enforce
- end
|