将PVS转换为Coq

时间:2018-03-02 12:11:31

标签: coq

我想将以下PVS翻译成Coq: enter image description here

其中 trans 类型的类型为 env - > env - > bool ,我按如下方式编写Coq代码:

Definition trans := env -> env -> bool.

Definition dseq (P Q : trans) : trans :=
  fun s1 s2 => andb (P s1 s') (Q s' s2).

但是,我不知道在Coq中代表 Exists(s:env)。该定义的目标是存在满足(P s1 s)和(P s s2)的值 s 。我不想使用逻辑,因为我想证明以下定理:

Theorem dseq_comm:
  forall (F G H : trans), dseq (desq F G) H = dseq F (dseq G H).

1 个答案:

答案 0 :(得分:3)

您可能希望使用Prop而不是bool。然后你可以写:

Parameter env : Type.

Definition trans := env -> env -> Prop.

Definition dseq (P Q : trans) : trans :=
  fun s1 s2 => exists s', P s1 s' /\ Q s' s2.

你将能够证明

Theorem dseq_assoc:
  forall (F G H : trans), dseq (desq F G) H = dseq F (dseq G H).

如果您愿意假设Proposition extensionality