如何在Z3中定义更高的归纳类型

时间:2013-12-10 01:15:53

标签: types z3 homotopy-type-theory

高电感类型是同伦型理论中非常重要的工具。我试图用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的高级归纳类型?

1 个答案:

答案 0 :(得分:1)

请注意,Z3仅支持一阶归纳类型。你提供的那个也是一阶的。