Check that the prime of a short Weierstrass curve is prime.
(short-weierstrass-primep curve) → yes/no
This is in a separate predicate for the reason explained in short-weierstrass.
Function:
(defun short-weierstrass-primep (curve) (declare (xargs :guard (short-weierstrass-p curve))) (let ((acl2::__function__ 'short-weierstrass-primep)) (declare (ignorable acl2::__function__)) (dm::primep (short-weierstrass->p curve))))
Theorem:
(defthm booleanp-of-short-weierstrass-primep (b* ((yes/no (short-weierstrass-primep curve))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm short-weierstrass-primep-of-short-weierstrass-fix-curve (equal (short-weierstrass-primep (short-weierstrass-fix curve)) (short-weierstrass-primep curve)))
Theorem:
(defthm short-weierstrass-primep-short-weierstrass-equiv-congruence-on-curve (implies (short-weierstrass-equiv curve curve-equiv) (equal (short-weierstrass-primep curve) (short-weierstrass-primep curve-equiv))) :rule-classes :congruence)