Section legal_alignas.
Context (cenv: composite_env) (ha_env: PTree.t Z).

Lemma aux1: forall T co,
(fix fm (l : list (ident * type * bool)) : bool :=
match l with
| nil => true
| (_, _, la) :: l' => la && fm l'
end)
(map
(fun it0 : positive * type =>
let (i0, t0) := it0 in
(i0, t0,
type_func.F
(fun t : type =>
(hardware_alignof ha_env t <=? alignof cenv t) &&
match access_mode t with
| By_value _ => true
| By_reference => false
| By_copy => false
| By_nothing => false
end)
(fun (la : bool) (t : type) (n : Z) (a0 : attr) =>
(hardware_alignof ha_env (Tarray t n a0) <=? alignof cenv (Tarray t n a0)) && ((sizeof cenv t mod alignof cenv t =? 0) && la))
(fun (la : bool) (id : ident) (a0 : attr) =>
(hardware_alignof ha_env (Tstruct id a0) <=? alignof cenv (Tstruct id a0)) && la)
(fun (la : bool) (id : ident) (a0 : attr) =>
(hardware_alignof ha_env (Tunion id a0) <=? alignof cenv (Tunion id a0)) && la) T t0)) (co_members co)) =
legal_alignas_composite cenv ha_env T co.