Привет, я пытаюсь сделать некоторую математику в помощнике Lean proof, чтобы посмотреть, как это работает. Я решил, что должно быть весело играть с идемпотентами коммутативного кольца. Вот что я пробовал:Идемпотенты коммутативного кольца в помощнике по проверке на лету
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, кажется, забыли, что А кольцо?
Так, например, если изменить определение
definition KR (A : Type) (R : comm_ring A) : Type := Σ x : A , x = x * x
то все в порядке. Но это означает, что я должен нести дополнительные бухгалтерские данные. Есть ли способ использовать переменные, чтобы обойти необходимость в ведении бухгалтерского учета.
В Lean 3.3.1 и, возможно, ранее, линия после предложения Себастьяна Ульриха теперь должна, вероятно, быть «определение KR: Prop: = ...» (в противном случае существуют проблемы с функцией от A до типа, имеющего тип Тип 1). –