精益证明助手中的交换环的幂等元

时间:2016-06-07 23:36:26

标签: proof theorem-proving lean

您好,我正在尝试在精益校对助手中做一些数学,看看它是如何工作的。我决定用一个可交换环的幂等元来玩它应该很有趣。这是我试过的:

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
然后一切都很好。但这意味着我必须携带额外的簿记数据。有没有办法使用变量来解决保持簿记的问题。

1 个答案:

答案 0 :(得分:2)

默认情况下,精益仅在实际使用它们的定义中包含部分变量和参数。您可以使用includeomit命令覆盖此设置。但由于comm_ring是一个类型类,所以你可能想要将它声明为一个类推理参数:

variables (A : Type) [comm_ring A]

默认情况下,将参数的名称保留在每个定义中,因此您的定义应该有效。