(Double-precision) floating point multiplication.
(er-double* a b) is a lispfloat wrapper function.
In the logic this function does not have a definition, but
its ACL2::constraints say it returns
Theorem:
(defthm er-double*-mvtypes-0 (maybe-stringp (mv-nth 0 (er-double* a b))) :rule-classes :type-prescription)
Theorem:
(defthm er-double*-mvtypes-1 (rationalp (mv-nth 1 (er-double* a b))) :rule-classes :type-prescription)
Theorem:
(defthm er-double*-of-rfix-a (equal (er-double* (rfix a) b) (er-double* a b)))
Theorem:
(defthm er-double*-rational-equiv-congruence-on-a (implies (acl2::rational-equiv a a-equiv) (equal (er-double* a b) (er-double* a-equiv b))) :rule-classes :congruence)
Theorem:
(defthm er-double*-of-rfix-b (equal (er-double* a (rfix b)) (er-double* a b)))
Theorem:
(defthm er-double*-rational-equiv-congruence-on-b (implies (acl2::rational-equiv b b-equiv) (equal (er-double* a b) (er-double* a b-equiv))) :rule-classes :congruence)