如何同时应用多个假设?
How to apply in many hypothesis at once?
我把这些当真:
a, x, y : nat
l : list nat
H : x <= y
S : sorted (y :: l)
IHS : sorted (insert a (y :: l))
H0 : a > x
H1 : a > y
如何在不复制粘贴的情况下在 H0 和 H1 中应用 Nat.lt_le_incl
? apply in *
不工作,即使我 try
它。我收到以下错误:
Syntax error: [id_or_meta] expected after 'in' (in [in_hyp_as])
您可以使用 match
策略:
repeat match goal with
| H : ?a > ?b |- _ => apply Nat.lt_le_incl in H
end
repeat
策略只是尽可能多地运行它的参数。 match
策略检查目标和上下文是否具有特定形式,如果是,则运行相应分支中提供的策略。 (|-
后的通配符表示我们不关心目标是什么;我们只对寻找 ?a > ?b
形式的假设感兴趣。)
我把这些当真:
a, x, y : nat
l : list nat
H : x <= y
S : sorted (y :: l)
IHS : sorted (insert a (y :: l))
H0 : a > x
H1 : a > y
如何在不复制粘贴的情况下在 H0 和 H1 中应用 Nat.lt_le_incl
? apply in *
不工作,即使我 try
它。我收到以下错误:
Syntax error: [id_or_meta] expected after 'in' (in [in_hyp_as])
您可以使用 match
策略:
repeat match goal with
| H : ?a > ?b |- _ => apply Nat.lt_le_incl in H
end
repeat
策略只是尽可能多地运行它的参数。 match
策略检查目标和上下文是否具有特定形式,如果是,则运行相应分支中提供的策略。 (|-
后的通配符表示我们不关心目标是什么;我们只对寻找 ?a > ?b
形式的假设感兴趣。)