[英]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 : D
和P 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.