我需要一个描述范围的列表,例如:
[0..<length P]
但是它的类型为nat list
。以后我需要将其类型设置为int list
。
如何进行这种转换?
答案 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]
的结果,您仍需要从nat
到int
的转换。