我是精益证明者的初学者,我在以下示例中遇到了一些困难: 我需要证明以下 ∃ x, fx 其中 f 是先前在 lean 文件中定义的 function。 这看起来很简单,我可以轻松地提供英文证明(至少我认为这是正确的): 构造一个任意的 y 使得 fy 成立。 通过构造一个 fy 成立的任意 y,我们 ...
我是精益证明者的初学者,我在以下示例中遇到了一些困难: 我需要证明以下 ∃ x, fx 其中 f 是先前在 lean 文件中定义的 function。 这看起来很简单,我可以轻松地提供英文证明(至少我认为这是正确的): 构造一个任意的 y 使得 fy 成立。 通过构造一个 fy 成立的任意 y,我们 ...
Lean 3 中的很多证明都是通过assume语法构建的,例如 我无法在 lean 4 中找到与3中类似的战术参考部分,而且似乎assume已被删除。 将带有assume的精益 3 证明转换为没有它的精益 4 的一般方法是什么? ...
我在 VS Code 中使用 Lean4,它具有向我展示任何 select 定义的基本功能。是否有某种方法也可以找到 class 定义类型的实例? 例如,如果我写 并按住 Cmd 键然后单击IsCommutative.comm ,VS 代码将带我到 但我想查看Or的instance定义。 ...
我注意到两者 和 以同样的方式工作。 证明定理时也是如此。 那些是等价的吗? 它们之间有什么区别? ...
我想做以下 我尝试使用 exists.elim 和 exists_unique.elim 但我不知道如何正确使用它们,我也不能使用 h.some 因为我没有使用选择的公理。 我只想知道如何构造证明它定义明确的函数,谢谢。 ...
我正在努力学习精益。 我不明白为什么最后一个等式替换不起作用(我只是想“从字面上”用简单的c替换0+c ): 我得到了错误: "eliminator" elaborator 类型不匹配,项 h 的类型为 b + c = 0 + c 但预期类型为 b + (0 + c) = 0 + c 在我看来,精 ...
我想证明低于目标。 ring, simp, linarith 不工作。 我也试过 calc,但它太长了。 是否有任何自动命令来擦除方程式中的公共常数? ...
如果我有两个函数f和g ,在 Haskell 中我可以通过编写gf来组合它们。 我如何在精益 4 中做同样的事情? ...
我刚开始精益。 我可以定义定理的假设吗? 例如,证明对于任何 integer 对 min 和 max,每个数字 x 满足min <= x <= max ,即min^2 <= x^2 <= max^2 。 我可以为所有整数定义,但是当 min 和 max 的值满足约束( mi ...
我刚开始精益。 假设我想证明两种有限类型之间的函数。 例如 因为f理想情况下只有几种可能性,所以我想要cases x <;> cases f <;> rfl之类的东西,但我不能做cases f 。 目前,我根本不知道如何证明这一点,我认为cases / match (f f ...
我正在尝试用精益构建这个证明: (P → Q) ∧ (R → ¬Q) → ¬(P ∧ R) 感觉就像一个简单的矛盾证明: 假设 P 和 R,与结论相反。 假设 P → Q。由于 P,Q。 假设 R → ¬Q。 由于 R,¬Q。 Q 和 ¬Q。 矛盾。 以下是我目前在精益方面的成果: 这让我有了这 ...
在高级乘法世界级别 2/4中玩自然数游戏(精益)时,我使用了以下代码。 最后三行似乎引起了麻烦。 结束时no goals ,但出现错误invalid 'begin-end' expression, ',' expected ,因此关卡未完成。 使用have p:= succ_ne_zero _ h ...
我想证明“一个函数是单射的,那么它具有左逆”这一事实。 在精益证明者。 如你所知,在这个定理的标准证明中,( https://math.stackexchange.com/questions/2099699/left-inverse-in-fa-iff-injective-proof ),我们应该 ...
我正在学习自然数游戏中精益的定理证明,我很难理解rw策略的行为。 在Inequality world 的 Level 1/17 中,我编写了以下代码: 然后 Lean 完成了证明。 这里我没有使用refl策略。 另一方面, 在 Inequality world 的 Level 2/17 中,类 ...
Lean 4 前奏中的List类型实现了很多好东西,例如List.map 、 List.join等。 依赖类型语言中的一个经典示例是Vector an ,其中a是容器元素的类型, n是长度。 这使您可以做一些好事,例如编写 function concat (u: Vector am) (v: V ...
我是 Lean 4 的新手,我正在 Lean 中进行函数式编程的练习,特别是关于为自定义Segment类型定义length函数的练习。 这是我想出的,供参考: 我想知道如何惯用地概括这一点,所以Point是 R^n 中任意 n 中任意点的类型,然后编写有意义的相应Segment和length定义 ...
我刚买了一台新的 MacBook Air(M1,macOS 12.3.1)并从 dmg 安装了 Sage,它运行良好。 但现在我想安装一些其他的东西,而不是像我在旧电脑上那样破坏 Sage。 如果不能全部完成,以下是我现在想按重要性排序的事情: 在 Visual Studio Code 中运行 ...
Lean 4 是一种纯粹的函数式编程语言,但它是惰性的(如 Haskell)还是严格的(如 Idris),这意味着什么? 有没有办法选择加入(或退出)懒惰? ...