【发布时间】:2023-10-10 20:16:01
【问题描述】:
我关注https://github.com/brunofx86/LL/blob/master/FOLL/LL/SyntaxLL.v 并在那里定义了归纳类型(参数化的高阶抽象语法 - 此处使用 PHOAS):
(** Closed Terms *)
Inductive ClosedT : Term -> Prop :=
| cl_cte: forall C, ClosedT (Cte C)
| cl_fc1: forall n t1, ClosedT t1 -> ClosedT (FC1 n t1)
| cl_fc2: forall n t1 t2, ClosedT t1 -> ClosedT t2 -> ClosedT (FC2 n t1 t2).
我的问题是 - 如何使用构造函数 cl_cte 将常量 John 定义为 ClosedT 类型?
还有一个问题:在某些情况下,我想定义更多类型,例如John : Person 和 Bruno : Tortoise 所以 - 我应该创建新类型,例如ClosedT_Tortoise 新类型? ClosedT 是构建对象逻辑的基本类型,所以,也许我不应该继续使用多分类逻辑?
据我了解,我正在使用的线性逻辑的这种形式化应用于另一个 Coq 项目http://subsell.logic.at/bio-CTC/,并且可能在那里定义了常量。但是浏览源我找不到它们。
【问题讨论】: