Implement point operations over doppio points, which are represented as AllocatedPoints. Each operation will take the input AllocatedPoints and the constraint system (if the AllocatedPoint doesn't store a reference to a constraint system?), and allocate new constraints that enforce that the operation is valid. Also it would allocate new variables that represent the result of the operation, and make assignments to the variables.
- Squaring
- Multiplication
- Addition
- Equality