在 Isabelle 中将 int 转换为 nat

Casting int to nat in Isabelle

当我确定它是正数时,如何在 Isabelle 中将 int 转换为 nat?

value "((-10)::int) mod 3"

例如给出 2,如果我是正确的,任何对 int 取模的应用都应该得到 nat。

不幸的是,模数的类型签名是 'a => 'a => 'a,所以我无法预先将 3 固定为 nat,结果将是一个 int。

您可以使用 value "nat (((-10)::int) mod 3)"