;;;; -- L'esprit de l'escalier ------------------------------------------------ (defun sre-equal (r s) "Do the two SREs /r/ and /s/ describe the very same language?" (sre-empty-p `(or (- ,r ,s) (- ,s ,r)))) (defun sre-less-p (r s) "Is R a subset of S?" (sre-empty-p `(- ,r ,s))) (defun sre-empty-p (r) "Does the SRE /r/ denote the empty language?" (let ((dfa (re-dfa r))) (notany #'(lambda (q) (dfa-state-exit-transition dfa q)) (dfa-states dfa))))