如何同时应用多个假设?

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_inclapply 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 形式的假设感兴趣。)