使用redex-check打印成功

时间:2015-10-20 19:03:51

标签: racket plt-redex

我正在使用redex-check来验证模型与另一个模型,并且希望看到用于调试目的的中间(成功)结果。最明显的方法是将property-expr打印出给定的术语作为副作用,但这是不优雅的。还有另一种方法来查看中间重新检查尝试吗?

1 个答案:

答案 0 :(得分:1)

看起来你对如何做到这一点有正确的想法。实际上,example for redex-check in the docs actually does this

(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)