Lifting of the circuit to a predicate.
Theorem:
(defthm field-eq-pred-suff (implies (and (pfield::fep w prime) (and (field-neq-pred x y w prime) (boolean-not-pred w z prime))) (field-eq-pred x y z prime)))
Theorem:
(defthm definition-satp-to-field-eq-pred (implies (and (equal (pfcs::lookup-definition "field_eq" pfcs::defs) '(:definition (pfcs::name . "field_eq") (pfcs::para "x" "y" "z") (pfcs::body (:relation "field_neq" ((:var "x") (:var "y") (:var "w"))) (:relation "boolean_not" ((:var "w") (:var "z")))))) (equal (pfcs::lookup-definition "boolean_not" pfcs::defs) '(:definition (pfcs::name . "boolean_not") (pfcs::para "x" "y") (pfcs::body (:equal (:mul (:add (:const 1) (:mul (:const -1) (:var "x"))) (:const 1)) (:var "y"))))) (equal (pfcs::lookup-definition "field_neq" pfcs::defs) '(:definition (pfcs::name . "field_neq") (pfcs::para "x" "y" "z") (pfcs::body (:equal (:mul (:add (:var "x") (:mul (:const -1) (:var "y"))) (:var "w")) (:var "z")) (:equal (:mul (:add (:var "x") (:mul (:const -1) (:var "y"))) (:add (:const 1) (:mul (:const -1) (:var "z")))) (:const 0))))) (pfield::fep x prime) (pfield::fep y prime) (pfield::fep z prime) (primep prime)) (equal (pfcs::definition-satp "field_eq" pfcs::defs (list x y z) prime) (field-eq-pred x y z prime))))