func (p *Point) MustBeOnCurve(cs *frontend.ConstraintSystem, curve EdCurve) {
	one := big.NewInt(1)
	xx := cs.Mul(p.X, p.X)
	yy := cs.Mul(p.Y, p.Y)
	lhs := cs.Sub(yy, xx)
	dxx := cs.Mul(xx, &curve.D)
	dxxyy := cs.Mul(dxx, yy)
	rhs := cs.Add(dxxyy, one)
	cs.AssertIsEqual(lhs, rhs)
}
MustBeOnCurve checks if a point is on the reduced twisted Edwards curve
-x^2 + y^2 = 1 + d*x^2*y^2.
package twistededwards
import (
	"math/big"
	"github.com/consensys/gnark-crypto/ecc"
	"github.com/consensys/gnark/frontend"
)
type Point struct {
	X, Y frontend.Variable
}