Definition struct_value_fits_aux (m m0: members)
      (P: ListType (map (fun it => reptype (field_type (fst it) m0) -> Prop) m))
      (v: compact_prod (map (fun it => reptype (field_type (fst it) m0)) m)) : Prop.Definition union_value_fits_aux (m m0: members)
      (P: ListType (map (fun it => reptype (field_type (fst it) m0) -> Prop) m))
      (v: compact_sum (map (fun it => reptype (field_type (fst it) m0)) m)) : Prop.

Lemma union_value_fits_aux_spec: forall m m0 v P, union_value_fits_aux m m0 (ListTypeGen (fun it => reptype (field_type (fst it) m0) -> Prop) P m) v = union_Prop m P v.