Concrete implementation of strin-matches-p.
Function:
(defun sin$c-matches-p (lit sin$c) (declare (xargs :stobjs (sin$c))) (declare (xargs :guard (and (stringp lit) (sin$c-okp sin$c)))) (let ((__function__ 'sin$c-matches-p)) (declare (ignorable __function__)) (b* (((the string str) (sin$c-str sin$c)) ((the (unsigned-byte 60) pos) (sin$c-pos sin$c)) ((the (unsigned-byte 60) len) (length str)) ((the (integer 0 *) litlen) (length lit))) (str::strprefixp-impl lit str 0 pos litlen len))))
Theorem:
(defthm sin-matches-p{correspondence} (implies (and (sin$corr sin$c sin) (stringp lit) (strin-p sin)) (equal (sin$c-matches-p lit sin$c) (strin-matches-p lit sin))))