Group addition on BabyJubjub.
(baby-jubjub-add point1 point2) → point
Function:
(defun baby-jubjub-add (point1 point2) (declare (xargs :guard (and (baby-jubjub-pointp point1) (baby-jubjub-pointp point2)))) (let ((acl2::__function__ 'baby-jubjub-add)) (declare (ignorable acl2::__function__)) (ecurve::twisted-edwards-add point1 point2 (baby-jubjub-curve))))
Theorem:
(defthm baby-jubjub-pointp-of-baby-jubjub-add (implies (and (baby-jubjub-pointp point1) (baby-jubjub-pointp point2)) (b* ((point (baby-jubjub-add point1 point2))) (baby-jubjub-pointp point))) :rule-classes :rewrite)