anchor.diff:                                    ,@(loop for v in initial-false collect `(not ,v)))))
   
            (goal (or goal (pddl-facts-goal facts)))
  -         (n-op (length concrete-actions))
  +         (n-op (length ground-actions))
            (n-var (length state-vars)))
       (format t "~&ground actions: ~D" n-op)
       (format t "~&ground states: ~D" n-var)
  
positive.code:                (plan-step (i)
                   (format t "~&trying step ~D" i)
                   ;; step declarations
                   (stmt-list (smt-plan-step-stmts state-vars concrete-actions i))
                   ;; namespace
                   (stmt '(|push| 1))
                   ;; goal assertion
  
negative.code:                              ;; exp
                               (apply #'smt-and
                                      (loop
                                         for op in ground-actions
                                         for op-var in op-i
                                         collect
                                           (let ((pre (rewrite-exp (ground-action-precondition op) 'i))
                                                 (eff (rewrite-exp (ground-action-effect op) 'j)))
                                             `(or (not ,op-var)      ; action not active
                                                  (and ,pre          ; precondition holds
                                                       ,eff)))))))
  