Распечатайте успехи с помощью redex-check

Я использую redex-check для проверки модели относительно другой, и хотел бы видеть промежуточные (успешные) результаты для целей отладки. Наиболее очевидный способ сделать это - распечатать свойство-expr для данного термина в качестве побочного эффекта, но это не изящно. Есть ли другой способ посмотреть на промежуточные попытки повторной проверки?

1 ответ

Решение

Похоже, у вас есть правильное представление о том, как это сделать. На самом деле, пример для redex-check в документах на самом деле делает это:

(let ([R (reduction-relation
            empty-lang
            (--> (Σ) 0)
            (--> (Σ number) number)
            (--> (Σ number_1 number_2 number_3 ...)
                 (Σ ,(+ (term number_1) (term number_2))
                    number_3 ...)))])
    (redex-check
     empty-lang
     (Σ number ...)
     (printf "~s\n" (term (number ...)))
      #:attempts 3
      #:source R))

Записывает следующий результат current-output-port:

()
(0)
(2 0)
redex-check: no counterexamples in 1 attempt (with each clause)
Другие вопросы по тегам