Lifting of the circuit to a predicate.
Function:
(defun field-double-pred (x y prime) (and (equal (pfield::mul (pfield::add x x prime) (mod 1 prime) prime) y)))
Theorem:
(defthm definition-satp-to-field-double-pred (implies (and (equal (pfcs::lookup-definition '(:simple "field_double") pfcs::defs) '(:definition (name :simple "field_double") (pfcs::para (:simple "x") (:simple "y")) (pfcs::body (:equal (:mul (:add (:var (:simple "x")) (:var (:simple "x"))) (:const 1)) (:var (:simple "y")))))) (pfield::fep x prime) (pfield::fep y prime) (primep prime)) (equal (pfcs::definition-satp '(:simple "field_double") pfcs::defs (list x y) prime) (field-double-pred x y prime))))