typeclass - 重写子证明中的“未能合成类型类实例”
问题描述
下面的代码验证失败,并显示“无法为...合成类型类实例⊢ has_pow R R
”。
这看起来很奇怪,因为我^
在封闭范围内的相同类型上使用了相同的运算符 (),并且没有问题!具有相同签名的第二个定理可以很好地进行类型检查。
为什么它只在重写内部失败?如何在不更改定理类型签名的情况下修复它?
import algebra.group_power
theorem pow_eq_zero_1 {R : Type} [domain R] {r : R} {n : ℕ} : r ^ (n + 1) = 0 → r = 0
:= begin
rw (show r ^ (n + 1) = r ^ n * r,
by { have rn := λ x : R, r ^ x,
sorry, }),
sorry,
end
theorem pow_eq_zero_2 {R : Type} [domain R] {r : R} {n : ℕ} : r ^ (n + 1) = 0 → r = 0
:= pow_eq_zero -- it's in mathlib
解决方案
推荐阅读
- haskell - 简单 ADT 到数组的通用转换
- node.js - 为什么安装后缺少 apiconnect 模块?
- python - Python: Json string to csv via Pandas --> ValueError: Mixing dicts with non-Series可能会导致排序不明确
- javascript - 如何异步使用 chrome.cookies.getAll?
- java - 独立迭代时,无序哈希映射中的键和值是否对齐?
- c# - 如何在不导致无限循环的情况下将数据添加到 XML 文件
- r - ZIP - 隐马尔可夫模型 r Stan
- python - wxPython 的 wx.grid.Grid() 不会完全进入视野
- python - 将列表中的日期与数据框中的日期范围进行比较
- python - Pygame - 更有效地从 spritesheet 中 blit 一个 sprite,或 blit 单个 sprite 到它们自己的表面?