2016-07-24 14 views
1

Wie kann ich in Coq beschreiben, dass ein Satz Y eine Untermenge eines anderen Satzes X ist?Wie kann man eine Teilmengenrelation in Coq ausdrücken?

Getestet habe ich die folgenden:

Definition subset (Y X:Set) : Prop := 
    forall y:Y, y:X. 

, dass, wenn ein Element zum Ausdruck zu bringen versucht y in Y ist dann y in X ist. Aber dies erzeugt Typfehler über y, nicht überraschend.

Gibt es eine einfache Möglichkeit, subset in Coq zu definieren?

Antwort

2

Hier ist, wie es in der Standardbibliothek durchgeführt wird (Coq.Logic.ClassicalChoice):

Definition subset (U:Type) (P Q:U->Prop) : Prop := forall x, P x -> Q x. 

Unary Prädikate P und Q einige Untergruppen der (universal) repräsentieren gesetzt U, so dass die obige Definition lautet: wann immer einige x ist in P, es ist in Q gleichzeitig.

Definition Subset s s' := forall a : elt, In a s -> In a s'. 

wo In Typ elt -> t -> Prop hat, was bedeutet, dass ein Element des Typs eltt ein Mitglied einer Gruppe von Typ ist:

Eine etwas ähnliche defintion kann in Coq.MSets.MSetInterface gefunden werden.

Verwandte Themen