Module Qcert.Data.Model.ForeignData
Require
Import
EquivDec
.
Require
Import
CoqLibAdd
.
Section
ForeignData
.
Class
foreign_data
:
Type
:=
mk_foreign_data
{
foreign_data_model
:
Set
;
foreign_data_dec
:>
EqDec
foreign_data_model
eq
;
foreign_data_normalized
(
a
:
foreign_data_model
) :
Prop
;
foreign_data_normalize
(
a
:
foreign_data_model
) :
foreign_data_model
;
foreign_data_normalize_normalizes
(
a
:
foreign_data_model
) :
foreign_data_normalized
(
foreign_data_normalize
a
)
;
foreign_data_normalize_idempotent
(
a
:
foreign_data_model
) :
foreign_data_normalized
a
->
foreign_data_normalize
a
=
a
;
foreign_data_tostring
:>
ToString
foreign_data_model
}.
End
ForeignData
.