openlang

Lean4 报告不认识 'begin'

我在 VSCode 编辑器中输入了下面的 Lean4 代码:

example (a b c : Prop) : ((a ∨ b) → c) ↔ ((a → c) ∧ (b → c)) :=
begin

然后得到 "unknown identifier 'begin'"。在下面三行处加入 end,会得到 "invalid 'end', insufficient scopes"。我哪里做错了?Lean 的安装不正确吗?

从英语翻译查看原文

后续讨论 2

顺着彼此的依据读下去
  1. 固定链接

    begin/end 块的写法属于 lean 3 的语法。在 Lean 4 中,要进入策略模式,应使用关键字 by,例如:

    example (a b c : Prop) : ((a ∨ b) → c) ↔ ((a → c) ∧ (b → c)) := by sorry

    现在没有对应的 end,因为作用域由空白决定,不过可以选择以 done 结束,如果还有未解决的目标,它就会报错。

    即使你很熟悉 lean 3,我也建议浏览手册(https://lean-lang.org/lean4/doc/ )以及 Theorem Proving in Lean/Functional Programming in Lean 中的一本或两本(手册第 4 和第 5 章),因为变化和改进相当多。

    关键字 end 仍然用于结束节和命名空间,这解释了你在这里使用 end 时看到的诊断信息。

    从英语翻译查看原文

同一个问题的其他角度

  1. 用函数式编程把列表元素格式化成文本

    我是函数式编程的新手,想写一个函数,接收长度不固定的值列表,然后生成一个字符串,其中包含每个值经过格式化后的表示。 用伪代码举个例子。 (我具体用的是 Gleam (https://gleam.run/),不过我想同样的思路也适用于其他函数式语言,只…

    回复 2最近活动 gleam
  2. 有什么 JavaScript 课程值得学?

    我上次查看 JavaScript 文档还是在 1996 年。我想找一门涵盖“必需的 JavaScript 和网页概念”的课程,让我能有把握地编写 Elm 和使用端口。 不理解 DOM 确实阻碍了我的 Elm 工作,而且我也不知道自己还缺哪些知识。:f…

    回复 2最近活动 elmjavascript
  3. 在哪里能找到 fmt 和 main 包?

    很多 go 示例都这样开头, 我使用的 GOPATH, main 和 fmt 模块存在哪里?

    回复 2最近活动 go