2017-06-28 5 views

Antwort

3

ich ein einfaches Beispiel für endliche Mengen natürlicher Zahlen zeigen lassen:

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` *) 

Sie Coq.MSets.MSetInterface lesen können die Operationen und Spezifikationen MSet s bieten zu entdecken.

+0

Vielen Dank! Die Anforderung, dass wir mit einem 'OrderedType' arbeiten, ist vielleicht etwas anstößig, gibt es keine Formulierungen von Sets, die auf Typklassen angewiesen sind? –

+1

Sie können die MathClasses-Bibliothek überprüfen, die auf Typenkürzungen basiert, siehe z. [hier] (https://github.com/math-classes/math-classes/blob/751e63b260bd2f78b280f2566c08a18034bd40b3/interfaces/finite_sets.v) –

+0

Das ist einfach wunderbar, danke Anton. –