Given the following assumptions:
Variable A : finType.
Variable B : finType.
Variable C : finType.
and a record defined as:
Record example := Example {
example_A : A;
example_B : B;
example_C : C;
}.
Intuitively, it would seem that example would also have to be of finType
.
Looking at other code-bases, I have seen people derive finType
for records with only one non-proof term using a construction of the form
Definition <record>_subType := Eval hnf in [subtype for <record-accessor>].
Definition <record>_finMixin := Eval hnf in [finMixin of <record> by <:].
But in this case, there are multiple fields to the record.
Is there an automatic way to derive fintype for the record, if not, how can fintype be derived for the record?