Почему lean добавляет неявные переменные к леммам из eq?

Следующий код имеет странное поведение

variable (toto : Type)
check eq.symm  --output: eq.symm : ?a toto = ?b toto → ?b toto = ?a toto

Я ожидал бы, что проверка не учитывает не относящуюся к делу неявную переменную toto, показывая мне тип eq.symm. Это действительно предназначено?

1 ответ

Решение

Я получил ответ от вопросов GitHub здесь.

На самом деле это ошибка, на которую здесь ссылаются, которую можно обойти, выполнив

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
Другие вопросы по тегам