我想归结一个定义reducible
。我很确定我的语法正确,因为我从tutorial (p. 118)逐字复制它。
definition pr1 [reducible] (A : Type) (a b : A) : A := a
attribute pr1 [reducible]
这两个属性的组合都没有通过语法检查:将其直接附加到定义会导致type expected at reducible
,而独立声明会导致command expected
。
我在Windows上使用Lean 3.1二进制发行版和VS Code语言工具fwiw,但它似乎也无法在浏览器中运行。
答案 0 :(得分:1)
您使用的是教程的过时版本,最新版本为here。您可以使用以下语法:
@[reducible]
definition pr1 (A : Type) (a b : A) : A := a
或
attribute [reducible]
definition pr1 {A B : Type} (a : A) (b : B) := a
也可以在定义发生后的任何时间分配属性:
definition pr1 (A : Type) (a b : A) : A := a
-- some code
attribute [reducible] pr1