Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/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 当我们有很多等式时,控制'subst'_Coq_Coq Tactic - Fatal编程技术网

Coq 当我们有很多等式时,控制'subst'

Coq 当我们有很多等式时,控制'subst',coq,coq-tactic,Coq,Coq Tactic,若有很多形式为a=b的假设,我发现当我们使用倒置时,这种情况经常发生,有什么方法可以防止替换发生吗 我经常有这样的假设 H0: rec = someLargeRecord { field := val1; ...; fieldn := valn } rel1: some_relation rec rec' rel2: some_relation rec rec'' equal1: a = b equal2: b = c ... equal3: y = z 在此时运行subst时,rel1、re

若有很多形式为a=b的假设,我发现当我们使用倒置时,这种情况经常发生,有什么方法可以防止替换发生吗

我经常有这样的假设

H0: rec = someLargeRecord { field := val1; ...; fieldn := valn }
rel1: some_relation rec rec'
rel2: some_relation rec rec''
equal1: a = b
equal2: b = c
...
equal3: y = z
在此时运行subst时,rel1、rel2和类似的东西会爆炸,变成某种形式

rel1: some_relation someLargeRecord { field := val1; ...; fieldn := valn } rel'
rel2: some_relation someLargeRecord { field := val1; ...; fieldn := valn }
 rel''
这是可怕的工作

我希望以某种方式控制SUST,最好要求它不要考虑H0。这有可能吗

谢谢

您可以告诉subst要替换哪些变量。例如,电话

subst a b y.
将替换a、b和c,但不替换rec。如果尝试替换多个变量,这可能不方便;在这种情况下,您可以在调用subst之前将要保留的等式放回目标中。例如,以下代码段将替换上下文中除rec之外的所有变量

revert H0.
subst.
intros H0.