在Coq中处理多个整数库?

时间:2018-06-26 14:58:22

标签: coq coq-tactic

我经常得到以下形式的证明条款:

Lemma of_nat_gt_0: forall (n: nat),
(Z.of_nat n >=? Int32.unsigned (Int32.repr 0)) = true.

该定理显然是正确的(自然数的Z总是>= 0。类似地,unsigned的{​​{1}}中的repr将产生0

但是,它们只是烦人,因为我需要处理

  1. 0来自Int32模块
  2. CompCert.Integers转换。

通常,我也有Z.of_natPos定义中的术语。

这些证明涉及多次手动重写以变幻成某种标准形式,然后进行N调用。

有什么方法可以将所有这些“标准化”为一个统一的表示形式?

我知道这隐含地涉及到不同环之间的传输(例如omegaInt32)。如果有某种方法可以解决这个问题,那就太好了,因为这些证明会变得冗长。

0 个答案:

没有答案