Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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 是否有一个关于使用ssreflect战术/战术顺序的约定?_Coq_Coq Tactic_Ssreflect - Fatal编程技术网

Coq 是否有一个关于使用ssreflect战术/战术顺序的约定?

Coq 是否有一个关于使用ssreflect战术/战术顺序的约定?,coq,coq-tactic,ssreflect,Coq,Coq Tactic,Ssreflect,我试图理解如何“分解”组合ssreflect战术(或者它们最初是如何组合的)。我遇到的问题之一是理解静态的顺序和关联性 有时候,我觉得顺序是从右到左。比如说 apply : AiB. 似乎相当于 move : AiB; apply. 忽略no opmove,就好像我们正在按顺序将函数应用于AiB,而apply:AiB.可以被视为apply(:AiB)。。也就是说,我们首先将AiB移动到目标中,然后在目标中调用AiB 然而,我在其他场合感到困惑: case: (EM (P y)) =>

我试图理解如何“分解”组合ssreflect战术(或者它们最初是如何组合的)。我遇到的问题之一是理解静态的顺序和关联性

有时候,我觉得顺序是从右到左。比如说

apply : AiB.
似乎相当于

move : AiB; apply. 
忽略no op
move
,就好像我们正在按顺序将函数应用于
AiB
,而
apply:AiB.
可以被视为
apply(:AiB)。
。也就是说,我们首先将AiB移动到目标中,然后在目标中调用
AiB

然而,我在其他场合感到困惑:

case: (EM (P y)) => // notPy.
根据,这一个对
(EM(py))
进行案例分析,然后
/
尝试解决琐碎的子目标。那么<代码>移动=>将其余的内容引入上下文?这里的操作顺序是什么

EM
成为
(EM(py))
,它是
(move=>notPy(//)(case(:EM_)))
?? 我读对了吗?战术运用的“正确顺序”是什么


顺序有点扭曲接近notPy,总体上不一致。有没有办法把上面的内容从右向左写在正确的ssreflect中?

我建议您阅读手册以了解更多细节

在你的例子中,回想一下,移动总是一个无操作,所以它“融合”。因此,与冒号,它融合在左边

move: H; case <=> case: H
因此,就你的具体例子而言

case: (EM (P y)) => // notPy.
可视为

move: (EM (P y)); case; move=> // notPy.
问候

move: (EM (P y)); case; move=> // notPy.