高电感类型是同伦型理论中非常重要的工具。我试图用Z3-SMT-LIB定义一些更高电感类型。一个例子是圆圈,它由一个点base
和一条路径loop
自由生成,从base
到它自己。我正在使用代码
(declare-datatypes () ((Circle base (loop (Circle Circle)))))
(declare-fun x1 () Circle)
(declare-fun x2 () Circle)
(assert (not (= x1 x2)))
(check-sat)
(get-model)
,输出
sat
(model
(define-fun x2 () Circle (loop base))
(define-fun x1 () Circle base) )
问题是:我真的定义了一个名为circle的高级归纳类型?
答案 0 :(得分:1)
请注意,Z3仅支持一阶归纳类型。你提供的那个也是一阶的。