如何访问coq中记录的元素

时间:2014-11-13 23:34:49

标签: coq

假设我有一条记录

Record ToyModel:={
universe:Set; 
aNiceProperty:universe->Prop;
color:universe->nat
}.

我想定义一个兼容性的概念 ToyModel类型的元素。

Definition Compatible(T1 T2: ToyModel):=
if there is an element of T1.universe with color a then there 
exists an element of T2.universe with color a. 

我怎样才能在coq中写出来?问题是我不知道 如何访问记录中的元素。

1 个答案:

答案 0 :(得分:2)

记录的字段成为它的访问者功能,所以它应该只是一个问题:

universe t (* where t : ToyModel *)
color t u  (* where t : ToyModel, u : universe *)

或者:

t.(universe)
t.(color) u

您可能需要:

Set Printing Projections.

比照https://coq.inria.fr/distrib/current/refman/Reference-Manual004.html#toc15