Ltac match_composite :=
match goal with
| |- {| co_su := ?co_su1;
co_members := ?co_members1;
co_attr := ?co_attr1;
co_sizeof := ?co_size1 ;
co_alignof := ?co_alignof1;
co_rank := ?co_rank1;
co_sizeof_pos := ?co_sizeof_pos_proof1;
co_alignof_two_p := ?co_alignof_two_p_proof1;
co_sizeof_alignof := ?co_sizeof_alignof_proof1
|} =
{| co_su := ?co_su2;
co_members := ?co_members2;
co_attr := ?co_attr2;
co_sizeof := ?co_size2 ;
co_alignof := ?co_alignof2;
co_rank := ?co_rank2;
co_sizeof_pos := ?co_sizeof_pos_proof2;
co_alignof_two_p := ?co_alignof_two_p_proof2;
co_sizeof_alignof := ?co_sizeof_alignof_proof2
|} =>
replace co_sizeof_pos_proof1
with co_sizeof_pos_proof2;
replace co_alignof_two_p_proof1
with co_alignof_two_p_proof2;
replace co_sizeof_alignof_proof1
with co_sizeof_alignof_proof2
end.

Lemma add_composite_definitions_nil env: add_composite_definitions env nil = Errors.OK env.