2014-03-12 46 views
3

如何在Coq中創建一組元素?如何在Coq中創建合奏

我看過Ensembles的文檔,但我沒有看到任何方法來構建一個。例如,在Haskell中,我會使用「Data.Set.fromList [1..10]」創建一個包含10個元素的集合。 Coq中的等價物是什麼?

謝謝。

回答

3

正如所解釋的here,比如,你可以這樣做

Require Import List Ensembles. 

Fixpoint list_to_set {A:Type} (l : list A) {struct l}: Ensemble A := 
    match l with 
    | nil => Empty_set A 
    | hd :: tl => Add A (list_to_set tl) hd 
    end. 
+0

感謝,但如果是在給定的鏈接解釋呢? – user2674487

+0

鏈接只是Ensemble庫的文檔。基於'Empty_set'和像'Add'或'Union'這樣的基元,你應該能夠建立你需要的任何構建器。也許我應該寫下「如此處所述」而不是解釋。 – Vinz