MSets
似乎是采用OCaml风格有限集的方法。可悲的是,我无法找到示例用途。
如何定义空MSet
或单MSets
?我怎样才能将两个{{1}}结合在一起?
答案 0 :(得分:4)
让我展示有限自然数集的一个简单例子:
From Coq
Require Import MSets Arith.
(* We can make a set out of an ordered type *)
Module S := Make Nat_as_OT.
Definition test := S.union (S.singleton 42)
(S.empty).
(* membership *)
Compute S.mem 0 test. (* evaluates to `false` *)
Compute S.mem 42 test. (* evaluates to `true` *)
Compute S.is_empty test. (* evaluates to `false` *)
Compute S.is_empty S.empty. (* evaluates to `true` *)
您可以阅读Coq.MSets.MSetInterface
以了解MSet
提供的操作和规范。