Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coq中的泛量化假设_Coq_Universal_Quantifiers - Fatal编程技术网

Coq中的泛量化假设

Coq中的泛量化假设,coq,universal,quantifiers,Coq,Universal,Quantifiers,我想改变下表中的假设H mL : Map mR : Map H : forall (k : RecType) (e : String.string), MapsTo k e (filter (is_vis_cookie l) mL) <-> MapsTo k e (filter (is_vis_cookie l) mR) ------------------------------------------------------- Goal mL:Map

我想改变下表中的假设H

mL : Map
mR : Map
H : forall (k : RecType) (e : String.string),
       MapsTo k e (filter (is_vis_cookie l) mL) <->
       MapsTo k e (filter (is_vis_cookie l) mR)
-------------------------------------------------------
Goal
mL:Map
先生:地图
H:forall(k:RecType)(e:String.String),
MapsTo k e(过滤器(is_vis_l)mL)
MapsTo k e(过滤器(is_vis_l)mR)
-------------------------------------------------------
目标

mL:Map
先生:地图
k:重排
e:String.String
H:MAPSTOK e(过滤器(is_vis_l)mL)
MapsTo k e(过滤器(is_vis_l)mR)
-------------------------------------------------------
目标
我认为,它们都可以解决同一个目标,但我需要后一种形式的假设。或者更具体地说,将k进一步分解为元素,如下所示。我怎样才能把假设H变成这两种形式

    mL : Map
    mR : Map
    ks : String.string
    kh : String.string
    e : String.string
    H : MapsTo {| elem1:= ks; elem2:= kh|} e (filter (is_vis_cookie l) mL) <->
        MapsTo {| elem1:= ks; elem2:= kh|} e (filter (is_vis_cookie l) mR)
    -------------------------------------------------------
    Goal
mL:Map
先生:地图
ks:String.String
kh:String.String
e:String.String
H:MapsTo{elem1:=ks;elem2:=kh}e(过滤器(is|vis|l)mL)
MapsTo{elem1:=ks;elem2:=kh}e(过滤器(is|vis|l)mR)
-------------------------------------------------------
目标

要做到这一点,您需要在您的上下文中有一个
k
类型的
RecType
和一个
e
类型的
String.String
。使用此选项,您可以获得以下信息:


使用姿势证明(H k e)作为Hke:

mL : Map
mR : Map
k : RecType
e : String.string
H : forall (k : RecType) (e : String.string),
    MapsTo k e (filter (is_vis_cookie l) mL) <->
    MapsTo k e (filter (is_vis_cookie l) mR)
Hke : MapsTo k e (filter (is_vis_cookie l) mL) <->
      MapsTo k e (filter (is_vis_cookie l) mR)
-------------------------------------------------------
Goal
请注意,H已专门化,不能再次专门化


您无法从
H
中“获取”
k
e
,但这对于通用量化没有多大意义,因为这些是术语
H
的形式参数(函数不带参数,而是要求将其作为输入)


你一定被存在量化弄错了,你可以破坏一个假设来获得证人和证人满足属性的证据,您需要在上下文中包含类型为
RecType
的术语
k
,以及类型为
String.String
的类型为
e
。使用此选项,您可以获得以下信息:


使用姿势证明(H k e)作为Hke:

mL : Map
mR : Map
k : RecType
e : String.string
H : forall (k : RecType) (e : String.string),
    MapsTo k e (filter (is_vis_cookie l) mL) <->
    MapsTo k e (filter (is_vis_cookie l) mR)
Hke : MapsTo k e (filter (is_vis_cookie l) mL) <->
      MapsTo k e (filter (is_vis_cookie l) mR)
-------------------------------------------------------
Goal
请注意,H已专门化,不能再次专门化


您无法从
H
中“获取”
k
e
,但这对于通用量化没有多大意义,因为这些是术语
H
的形式参数(函数不带参数,而是要求将其作为输入)


你一定是被存在量化弄错了,你可以破坏一个假设来获得证人和证人满足属性的证据。

谢谢你的回答。实际上,我没有上下文中的
k
e
。我用
介绍k e
尝试了所有(k:RecType)(e:String.String)、映射k e(filter(is_vis_cookie l)mL)和映射k e(filter(is_vis_cookie l)mR)的形式
的目标。(**现在k和e在上下文中*)然后
apply H
,但然后
k
e
重新组合…,我不想这样…你所做的非常混乱,表明你并不真正理解发生了什么。例如,你能提供你实际目标的形状吗?我不是专家,我的问题可能很烦人。对不起。目标是:
StringMap.MapsTo zk zv(get_site_cookies(http_url p d ru)ckmL)StringMap.MapsTo zk zv(get_site_cookies(http_url p d ru)ckmR)
其中
zk
zv
是键值字符串,
RecType
是五个元素的记录(key是其中之一)而
get\u site\u cookies
是一个折叠,f只在
RecType
的3个元素上运行<上面帖子中的H中的代码>映射到
是CookieMap.MapsTo。。。可能很难理解类型/映射,但是,如果您需要,我可以提供详细的类型/函数。初学者可以。试着提供细节来帮助别人帮助你!因此,似乎如果你需要应用你的假设,你想在
zk
zv
上使用它,比如
specialize(hzk-zv)。
。但是,它为您提供了
MapsTo zk zv(filter(is_vis_cookie l)mL)MapsTo zk zv(filter(is_vis_cookie l)mR)
的证明。这离你的目标还有很大的距离(如果
mL
ckmL
不一样,它甚至可能是无用的)。由于
get\u site\u cookies
是一个折页,您可能需要一个归纳证明。谢谢您的回复。实际上,我没有上下文中的
k
e
。我用
介绍k e
尝试了所有(k:RecType)(e:String.String)、映射k e(filter(is_vis_cookie l)mL)和映射k e(filter(is_vis_cookie l)mR)的形式
的目标。(**现在k和e在上下文中*)然后
apply H
,但然后
k
e
重新组合…,我不想这样…你所做的非常混乱,表明你并不真正理解发生了什么。例如,你能提供你实际目标的形状吗?我不是专家,我的问题可能很烦人。对不起。目标是:
StringMap.MapsTo zk zv(get_site_cookies(http_url p d ru)ckmL)StringMap.MapsTo zk zv(get_site_cookies(http_url p d ru)ckmR)
其中
zk
zv
是键值字符串,
RecType
是五个元素的记录(key是其中之一)而
get\u site\u cookies
是一个折叠,f只在
RecType
的3个元素上运行<上面帖子中的H中的代码>映射到
是CookieMap.MapsTo。。。可能很难理解类型/映射,但是,如果您需要,我可以提供详细的类型/函数。初学者可以。试着提供细节来帮助别人帮助你!所以,如果你需要应用你的假设,你想使用它
mL : Map
mR : Map
k : RecType
e : String.string
H : MapsTo k e (filter (is_vis_cookie l) mL) <->
    MapsTo k e (filter (is_vis_cookie l) mR)
-------------------------------------------------------
Goal