Function declaration of a function definition.
(fundef-to-fun-declon fundef) → declon
As also explained in fundef, a function definition is essentially a function declaration plus a body, but it is not quite defined like that for the technical reasons explained there. But this ACL2 function explicates that mapping.
Function:
(defun fundef-to-fun-declon (fundef) (declare (xargs :guard (fundefp fundef))) (let ((__function__ 'fundef-to-fun-declon)) (declare (ignorable __function__)) (make-fun-declon :tyspec (fundef->tyspec fundef) :declor (fundef->declor fundef))))
Theorem:
(defthm fun-declonp-of-fundef-to-fun-declon (b* ((declon (fundef-to-fun-declon fundef))) (fun-declonp declon)) :rule-classes :rewrite)
Theorem:
(defthm fundef-to-fun-declon-of-fundef-fix-fundef (equal (fundef-to-fun-declon (fundef-fix fundef)) (fundef-to-fun-declon fundef)))
Theorem:
(defthm fundef-to-fun-declon-fundef-equiv-congruence-on-fundef (implies (fundef-equiv fundef fundef-equiv) (equal (fundef-to-fun-declon fundef) (fundef-to-fun-declon fundef-equiv))) :rule-classes :congruence)