Scalar multiplication on BabyJubjub.
(baby-jubjub-mul scalar point) → point1
Function:
(defun baby-jubjub-mul (scalar point) (declare (xargs :guard (and (integerp scalar) (baby-jubjub-pointp point)))) (let ((acl2::__function__ 'baby-jubjub-mul)) (declare (ignorable acl2::__function__)) (ecurve::twisted-edwards-mul scalar point (baby-jubjub-curve))))
Theorem:
(defthm baby-jubjub-pointp-of-baby-jubjub-mul (implies (baby-jubjub-pointp point) (b* ((point1 (baby-jubjub-mul scalar point))) (baby-jubjub-pointp point1))) :rule-classes :rewrite)
Theorem:
(defthm baby-jubjub-mul-of-ifix-scalar (equal (baby-jubjub-mul (ifix scalar) point) (baby-jubjub-mul scalar point)))
Theorem:
(defthm baby-jubjub-mul-int-equiv-congruence-on-scalar (implies (acl2::int-equiv scalar scalar-equiv) (equal (baby-jubjub-mul scalar point) (baby-jubjub-mul scalar-equiv point))) :rule-classes :congruence)