在Coq中使用MSets的示例

时间:2017-06-28 03:13:03

标签: set coq

MSets似乎是采用OCaml风格有限集的方法。可悲的是,我无法找到示例用途。

如何定义空MSet或单MSets?我怎样才能将两个{{1}}结合在一起?

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提供的操作和规范。