在Isabelle中将前n个自然数的列表写为int

时间:2019-01-18 13:39:45

标签: isabelle

我需要一个描述范围的列表,例如:

[0..<length P]

但是它的类型为nat list。以后我需要将其类型设置为int list

如何进行这种转换?

2 个答案:

答案 0 :(得分:1)

最简单的方法可能是map int [0..<length p]。实际上,如果您只写下[0..<length p],Isabelle可能会自动将其作为强制插入。

不幸的是,这种表示法仅适用于nat;我想它根本不经常使用。集的等效表示法({a..<b}等)更加灵活。

答案 1 :(得分:0)

还有List.upto带有特殊语法[m..n],可以从int list生成整数列表(类型m)。直到 {{1 }}(上下限都包括在内)。

所以在您的情况下,我可能会使用

n

(请注意,对于[0 .. int (length xs) - 1] 的结果,您仍需要从natint的转换。