2016-07-24 5 views
1

Yのセットが別のセットXのサブセットであることをCoqでどのように記述できますか?Coqでサブセット関係を表現するには?

私は次のようにテストした:

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

、要素yYである場合、その後、yXであることを表現しようとしています。しかし、これは驚くことではないが、yについてのタイプエラーを生成する。

Coqでsubsetを定義する簡単な方法はありますか?ここで

答えて

2

は、それが標準ライブラリ(Coq.Logic.ClassicalChoice)で行われる方法です。

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

単項述語PQは、(ユニバーサル)のいくつかのサブセットを表すUを設定するので、上記の定義が読み取りますたびに、いくつかのxPにあると同時に、Qにあります。

幾分類似defintionはCoq.MSets.MSetInterfaceに見出すことができる:

Inタイプ eltいくつかの要素がタイプ tのセットのメンバであることを意味し、 elt -> t -> Prop型を持つ
Definition Subset s s' := forall a : elt, In a s -> In a s'. 

関連する問題