如何使用模块隐藏coq中的lemmas?

时间:2012-07-12 12:10:02

标签: coq

我有一个定理T,它的证明,以及用于证明它的数以万计的引理。

我想隐藏这些引理,只提供定理 - 主要是因为我不想为Lemmas想出好的全球名称。

我可以将定理,证明和引理放在一个模块中,用模块类型限制,并且只提供定理吗?

类似的东西:

Module Type T_MY_T.
End T_MY_T.

Module T_My_theorem : T_MY_T.
  Lemma L1: ...
  Proof. Admitted.
  Lemma L2: ...
  Proof. Admitted.
  Theorem My_Great_Theorem: ...
  Proof. apply L1; apply L2. Qed.
End T_My_theorem.

如果是这样,有人可以发帖或指点我一个简单的例子吗?

1 个答案:

答案 0 :(得分:2)

Module Type A应包含您要导出的定理的公理。 Module B : A包含这些公理作为需要证明的定理。它还可以包含证明定理所需的任何引理和其他机器。要从模块外部访问定理,您可以apply B.Theorem1