我目前正在使用vellvm,对其进行转换。我是一个coq新手。
在编程时,我遇到了以下警告:
警告:在 nat 中处理大量数字时会发生堆栈溢出或分段错误(观察到的阈值可能在 5000 到 70000 之间变化,具体取决于您的系统限制和执行的命令)。
我生成此警告的函数会计算签名。签名分为上位和下位。给定两个代表高位和低位的 nat n1 和 n2,它计算 (n1*65536)+n2 - 这是并排放置两个 16 位二进制数的抽象。
我很惊讶,因为 coq nat 定义似乎可以处理来自外部的大整数,这要归功于 S 构造函数。
我应该如何避免这个警告/在 coq 中使用大数字?我愿意将实现从 nat 更改为某种二进制结构。
谢谢!