如何使用模块在coq中隐藏引理?

如何使用模块在coq中隐藏引理?,coq,Coq,我有一个定理T,它的证明,以及无数用来证明它的引理 我想隐藏引理,只提供定理——主要是因为我不想为引理想出好的全局名称 我能把定理,它的证明,和引理放在一个模块中,用一个模块类型限制,并且只提供定理吗 比如: 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

我有一个定理T,它的证明,以及无数用来证明它的引理

我想隐藏引理,只提供定理——主要是因为我不想为引理想出好的全局名称

我能把定理,它的证明,和引理放在一个模块中,用一个模块类型限制,并且只提供定理吗

比如:

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. 模块类型T\u MY\u T。 结束我的工作。 模块T_My_定理:T_My_T。 引理L1:。。。 证明。承认。 引理L2:。。。 证明。承认。 定理我的伟大定理:。。。 证明。应用L1;应用L2。Qed。 结束我的定理。
如果是这样的话,有人能给我发一个简单的例子吗?

模块类型a应该包含您想要导出的定理的公理。
模块B:A
包含这些公理,作为需要证明的定理。它还可以包含证明定理所需的任何引理和其他机制。要从模块外部访问定理,您可以
应用B.Theorem1
,等等