Decompose a parameter declaration into an identifier and a type name.
(param-declon-to-ident+tyname declon) → (mv id tyname)
Function:
(defun param-declon-to-ident+tyname (declon) (declare (xargs :guard (param-declonp declon))) (let ((__function__ 'param-declon-to-ident+tyname)) (declare (ignorable __function__)) (b* (((param-declon declon) declon)) (tyspec+declor-to-ident+tyname declon.tyspec declon.declor))))
Theorem:
(defthm identp-of-param-declon-to-ident+tyname.id (b* (((mv acl2::?id ?tyname) (param-declon-to-ident+tyname declon))) (identp id)) :rule-classes :rewrite)
Theorem:
(defthm tynamep-of-param-declon-to-ident+tyname.tyname (b* (((mv acl2::?id ?tyname) (param-declon-to-ident+tyname declon))) (tynamep tyname)) :rule-classes :rewrite)
Theorem:
(defthm param-declon-to-ident+tyname-of-param-declon-fix-declon (equal (param-declon-to-ident+tyname (param-declon-fix declon)) (param-declon-to-ident+tyname declon)))
Theorem:
(defthm param-declon-to-ident+tyname-param-declon-equiv-congruence-on-declon (implies (param-declon-equiv declon declon-equiv) (equal (param-declon-to-ident+tyname declon) (param-declon-to-ident+tyname declon-equiv))) :rule-classes :congruence)