【问题标题】:Idempotents of a commutatitive ring in Lean proof assistant精益证明助手中交换环的幂等性
【发布时间】:2016-06-07 23:36:26
【问题描述】:

您好,我正在尝试在精益证明助手中做一些数学运算,看看它是如何工作的。我认为与交换环的幂等一起玩应该很有趣。这是我尝试过的:

variables (A : Type) (R : comm_ring A)
definition KR : Type := \Sigma x : A, x * x = x

然后我得到错误

failed to synthesize placeholder
A : Type,
x : A
⊢ has_mul A

所以 Lean 似乎忘记了 A 是环?

例如,如果我将定义更改为

definition KR (A : Type) (R : comm_ring A) :  Type := Σ x : A , x = x * x

那么一切都很好。但这意味着我必须携带额外的簿记数据。有没有办法使用变量来解决保留簿记的需要。

【问题讨论】:

    标签: proof theorem-proving lean


    【解决方案1】:

    默认情况下,Lean 仅在实际使用它们的定义中包含部分变量和参数。您可以使用includeomit 命令覆盖它。但由于comm_ring 是一个类型类,您可能还是希望将其声明为类推断参数:

    variables (A : Type) [comm_ring A]
    

    这样省略参数的名称将默认将其包含在每个定义中,因此您的定义应该可以工作。

    【讨论】:

    • 在精益 3.3.1 和可能更早的版本中,Sebastian Ullrich 建议的行之后的行现在可能应该是 definition KR : Prop := ...(否则从 A 到 Type 的函数存在类型 1 的问题)。
    猜你喜欢
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多