The Jubjub coefficient
(jubjub-d) → d
We show that this coefficient is not a square
using Euler's criterion.
We use the fast modular exponentiation operation
from the
Function:
(defun jubjub-d nil (declare (xargs :guard t)) (let ((__function__ 'jubjub-d)) (declare (ignorable __function__)) (neg (div 10240 10241 (jubjub-q)) (jubjub-q))))
Theorem:
(defthm return-type-of-jubjub-d (b* ((d (jubjub-d))) (fep d (jubjub-q))) :rule-classes :rewrite)
Theorem:
(defthm jubjub-d-not-zero (not (equal (jubjub-d) 0)))
Theorem:
(defthm jubjub-d-not-equal-to-a (not (equal (jubjub-d) (jubjub-a))))
Theorem:
(defthm not-pfield-squarep-of-jubjub-d (not (ecurve::pfield-squarep (jubjub-d) (jubjub-q))))