Y
あるセットが別のセットのサブセットであることをCoqでどのように記述できX
ますか?
私は以下をテストしました:
Definition subset (Y X:Set) : Prop :=
forall y:Y, y:X.
y
、要素が にY
ある場合、 にあることを表現しようとしていy
ますX
。y
しかし、これは驚くべきことではありませんが、について型エラーを生成します。
subset
Coqで定義する簡単な方法はありますか?
Y
あるセットが別のセットのサブセットであることをCoqでどのように記述できX
ますか?
私は以下をテストしました:
Definition subset (Y X:Set) : Prop :=
forall y:Y, y:X.
y
、要素が にY
ある場合、 にあることを表現しようとしていy
ますX
。y
しかし、これは驚くべきことではありませんが、について型エラーを生成します。
subset
Coqで定義する簡単な方法はありますか?
標準ライブラリ ( Coq.Logic.ClassicalChoice
) での実行方法は次のとおりです。
Definition subset (U:Type) (P Q:U->Prop) : Prop := forall x, P x -> Q x.
単項述語P
およびQ
は、(ユニバーサル) set の一部のサブセットを表すU
ため、上記の定義は次のようにx
なりP
ますQ
。
似たような定義が次の場所にありますCoq.MSets.MSetInterface
。
Definition Subset s s' := forall a : elt, In a s -> In a s'.
where In
has type elt -> t -> Prop
、つまり、 type の一部の要素が typeelt
のセットのメンバーであることを意味しt
ます。