为什么 lean 将隐式变量添加到 eq 的引理中?
Why does lean add implicit variables to lemmas from eq?
以下代码有一个奇怪的行为
variable (toto : Type)
check eq.symm --output: eq.symm : ?a toto = ?b toto → ?b toto = ?a toto
我希望检查在向我显示 eq.symm 的类型时不会考虑不相关的隐式变量 toto。
这是真的吗?
我从github issues here那里得到了答案。
这实际上是一个引用 here 的错误,可以通过以下任一方式解决
print eq.symm -- theorem eq.symm : ∀ {A : Type} {a b : A}, a = b → b = a :=
-- λ A a, eq.rec (eq.refl a)
check @eq.symm -- eq.symm : ∀ {A} {a b}, a = b → b = a
以下代码有一个奇怪的行为
variable (toto : Type)
check eq.symm --output: eq.symm : ?a toto = ?b toto → ?b toto = ?a toto
我希望检查在向我显示 eq.symm 的类型时不会考虑不相关的隐式变量 toto。 这是真的吗?
我从github issues here那里得到了答案。
这实际上是一个引用 here 的错误,可以通过以下任一方式解决
print eq.symm -- theorem eq.symm : ∀ {A : Type} {a b : A}, a = b → b = a :=
-- λ A a, eq.rec (eq.refl a)
check @eq.symm -- eq.symm : ∀ {A} {a b}, a = b → b = a