anchor.diff:          (fig-3-4 (make-fa '((e 0 e) (e 1 1)
                               (1 0 1) (1 1 11)
                               (11 0 11) (11 1 11))
  -                          'e '1))
  +                          'e (finite-set 1)))
           (fig-3-4-min (make-fa '((e 0 e) (e 1 1)
                                   (1 0 1))
  -                              'e '1)))
  +                              'e (finite-set 1))))
       ;; mostly-minimal
       (lisp-unit:assert-true (dfa-equal fig-3-4-min
                                         (dfa-minimize-hopcroft fig-3-4)))
  
positive.code:   (let ((fig-2-15-a (make-fa '((q7 :epsilon q5) (q7 :epsilon q8)
                                 (q5 1 q6)
                                 (q6 :epsilon q5) (q6 :epsilon q8))
                               'q7 'q8))
          (fig-2-15-b (make-fa '((q3 0 q4)
                                 (q4 :epsilon q7)
                                 (q7 :epsilon q5) (q7 :epsilon q8)
                                 (q5 1 q6)
                                 (q6 :epsilon q5) (q6 :epsilon q8))
                               'q3 'q8))
          (fig-2-15-c (make-fa '((q9 :epsilon q1) (q9 :epsilon q3)
                                 (q1 1 q2)
                                 (q2 :epsilon q10)
  
negative.code:     (lisp-unit:assert-false (grammar-chain-rule-p '(1 2 3) '(a b c) '(a 1 c)))))
  
  (lisp-unit:define-test grammar-regular
    (let ((fa (make-fa '((0 x 1) (1 y 0) (1 z 2)) 0 (finite-set 2)))
          (gram-1 '((a x b) (b y a)  (b z)))
          (gram-2 '((a x b) (b y a) (b y x b) (b z))))
      (lisp-unit:assert-true
  