Definition gen_ftrt_inv00 i v_pow v_log log pow gv :=
PROP ( )
LOCAL (lvar _log (tarray tint 256) v_log;
lvar _pow (tarray tint 256) v_pow;
gvars gv)
SEP (data_at Tsh (tarray tint 256) pow v_pow;
data_at Tsh (tarray tint 256) log v_log;
field_at Ews t_struct_tables [StructField _FSb] (map Vint FSb) (gv _tables);
field_at Ews t_struct_tables [StructField _FT0] (partially_filled i 256 calc_FT0) (gv _tables);
field_at Ews t_struct_tables [StructField _FT1] (partially_filled i 256 calc_FT1) (gv _tables);
field_at Ews t_struct_tables [StructField _FT2] (partially_filled i 256 calc_FT2) (gv _tables);
field_at Ews t_struct_tables [StructField _FT3] (partially_filled i 256 calc_FT3) (gv _tables);
field_at Ews t_struct_tables [StructField _RSb] (map Vint RSb) (gv _tables);
field_at Ews t_struct_tables [StructField _RT0] (partially_filled i 256 calc_RT0) (gv _tables);
field_at Ews t_struct_tables [StructField _RT1] (partially_filled i 256 calc_RT1) (gv _tables);
field_at Ews t_struct_tables [StructField _RT2] (partially_filled i 256 calc_RT2) (gv _tables);
field_at Ews t_struct_tables [StructField _RT3] (partially_filled i 256 calc_RT3) (gv _tables);
field_at Ews t_struct_tables [StructField _RCON] (map Vint RCON) (gv _tables)).
Definition gen_ftrt_inv0 v_pow v_log log pow gv :=
EX i: Z, gen_ftrt_inv00 i v_pow v_log log pow gv.

Lemma add_no_overflow: forall n i log
(Hn: 1 <= n < 256)
(Hlog : forall j : Z, 1 <= j < 256 -> Znth j log = log3 (Int.repr j))
(H1: forall i : Z, Int.unsigned (Znth i RSb) <= Byte.max_unsigned)
(H3 : (if Int.eq (Znth i RSb) Int.zero
then Int.zero else Int.one) <> Int.zero),
Int.min_signed <=
Int.signed (Int.repr (Znth n log)) +
Int.signed (Int.repr (Znth (Int.unsigned (Znth i RSb)) log))
<= Int.max_signed.