我正在尝试定义以下数量partn:
变量pi:nat - >支柱变量(Hdecp:?p,decidable(pi p))
定义partn(n:nat):nat:= p (prime_factors n),(如果pi p则p ^(…
我找到了解决方案:
definition partn (n : nat) : nat := �� p �� (prime_factors n), (@ite (pi p) (Hdecp p) nat (p^(mult p n)) 1)
这允许我在我的if-the-else中明确使用Hdecp
的 编辑 强> :只要在定义的上下文中可用,elaborator实际上可以完全自己推断实例:
variable (Hdecp : ? p, decidable (pi p)) include Hdecp definition partn (n : nat) : nat := �� p �� (prime_factors n), (if pi p then p^(mult p n) else 1)
原始答案(如果实例有更复杂的假设,仍然有用):
如果你想避免显式调用 ite ,你可以在当地介绍 decidable 例如:
ite
decidable
definition partn (n : nat) : nat := �� p �� (prime_factors n), have decidable (pi p), from Hdecp p, if pi p then p^(mult p n) else 1