Check if a point is in the cartesian product of a prime field, or it is the point at infinity.
This predicate checks if a point (as defined in pointp)
is either the point at infity,
or is in the cartesian product
The purpose of this predicate is to provide a preliminary constraint
for points of curves in specific fields (described by
We do not require the parameter
Function:
(defun point-in-pxp-p (point p) (declare (xargs :guard (and (pointp point) (natp p)))) (declare (xargs :guard (<= 2 p))) (let ((acl2::__function__ 'point-in-pxp-p)) (declare (ignorable acl2::__function__)) (or (eq point :infinity) (and (< (car point) p) (< (cdr point) p)))))
Theorem:
(defthm point-in-pxp-p-of-infinity (implies (< 0 p) (point-in-pxp-p :infinity p)))