End HARDWARE_ALIGNOF_FACTS.
Module hardware_alignof_facts: HARDWARE_ALIGNOF_FACTS.

Lemma aux1: forall T co,
(fix fm (l : list (ident * type * Z)) : Z :=
match l with
| nil => 1
| (_, _, ha) :: l' => Z.max ha (fm l')
end)
(map
(fun it0 : positive * type =>
let (i0, t0) := it0 in
(i0, t0,
type_func.F
(fun t : type =>
match access_mode t with
| By_value ch => align_chunk ch
| By_reference => 1
| By_copy => 1
| By_nothing => 1
end) (fun (ha : Z) (_ : type) (_: Z) (_ : attr) => ha)
(fun (ha : Z) (_ : ident) (_ : attr) => ha)
(fun (ha : Z) (_ : ident) (_ : attr) => ha) T t0)) (co_members co)) =
hardware_alignof_composite T (co_members co).