簡體   English   中英

在COQ中將集合用作假設和目標

[英]Using sets as hyphotesis and goal in COQ

怎樣才能像下面這樣證明?

1 subgoals
IHt1 : {t' : some_type | something_using t'}
IHt2 : {t' : some_type | something_else_using t'}
______________________________________(1/1)
{t' : some_type | another_thing_involving t'}

我確實知道{x|P x}表示法是sig定義的簡寫,但我真的不明白如何使用它。

{x : D | P x} {x : D | P x}直覺上說,域D的子集包含滿足謂詞P的元素。 作為一個命題,如果那個子集是非空的,即在D有一個見證人x0使得P x0為真,則為真。

{x : D | P x}類型的對象 {x : D | P x}是一對包含元素x0 : DP x0的證明的對。 當您查看{x : D | P x}的定義時,這是可見的{x : D | P x} {x : D | P x} ,這是sig (fun x:D => P x)語法糖sig (fun x:D => P x)

Inductive sig (D:Type) (P:D -> Prop) : Type :=
    exist : forall x:D, P x -> sig P.

構造函數的類型是從屬對類型。 該對中的第一個元素具有類型D ,第二個元素具有類型P x ,其中x是第一個元素。

利用形式{x : D | P x} {x : D | P x} ,最基本的方法是使用destruct策略將其分解為兩個部分:見證x0 : D和證明H : P x0

destruct IHt1.

1 subgoals
t' : some_type
H : something_using t'
IHt2 : {t'0 : some_type | something_else_using t'0}
______________________________________(1/1)
{t'0 : some_type | another_thing_involving t'0}

證明目標的形式為{x : D | P x} {x : D | P x} ,最基本的是使用exist策略來介紹預期的證人。 這留下了一個子目標,以證明證人具有所需的財產。

exists u.

⋮
______________________________________(1/1)
another_thing_involving u

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM