在范围内展开方程式

Unfold a notation within a scope

This answer 提供了一个简单有用的技巧:unfold ">="unfold ge 相同,但不需要您知道 >= 是 [=15 的表示法=].

你能对范围内的符号做同样的事情吗?

Require Import NArith.
Goal forall x, (x >= x)%N.
unfold ">=".

这里 unfold ">=" 不做任何事情,因为它试图展开 ge,而不是 N.ge

我找到了以下解决方案:

Open Scope N.
unfold ">=".

但是有没有一种语法允许在不首先打开范围的情况下展开这个符号?

是的,您可以按如下方式使用模板unfold string % scope

Require Import NArith.
Goal forall x, (x >= x)%N.
  unfold ">=" % N.

这给了我们目标 forall x : N, (x ?= x)%N <> Lt 展开 >=