如何用伊莎贝尔写ARG_MIN

How to write ARG_MIN in Isabelle

我正在尝试将 Isabelle (2020) 中的以下 arg_min 表达式重写为更方便的 ARG_MIN 语法。

lemma "1 = arg_min (λ(x::int). x*x) ((<) 0)"

我目前拥有的是:

lemma "1 = (ARG_MIN ((x::int)*x). 0 < x)"

但它给我一个“内部语法错误”。

我只是想知道使用上面的 ARG_MIN 的正确方法是什么。

查看 ARG_MIN 的语法翻译(通过 C 键单击 arg_min 找到,然后查看该定义后的几行):

translations
  "ARG_MIN f x. P" ⇌ "CONST arg_min f (λx. P)"

你想要arg_min (λ(x::int). x*x) (λx. x < 0)。因此匹配 P、x 和 f 是什么,表示法变为:

ARG_MIN (λ(x::int). x*x) x. (x < 0)