I just learnt that 'record' keyword can be used to define a Prop type, for example in:
Record Equivalence (A : Type) (R : relation A) : Prop := Build_Equivalence
{ Equivalence_Reflexive : Reflexive R;
Equivalence_Symmetric : Symmetric R;
Equivalence_Transitive : Transitive R }
But when I tried to define a Proposition using Record, as in:
Record proprecord : Prop := Build_proprecord
{
Baa : nat;
Boo : Prop
}.
I get the following message by Coq:
proprecord is defined
Baa cannot be defined because it is informative and proprecord is not.
[cannot-define-projection,records]
Boo cannot be defined because it is informative and proprecord is not.
[cannot-define-projection,records]
Can anyone explain what Coq is complaining about - and how to fix it?