(* works, but very slow! Lemma exp_table_correct : forall a : nat, (a < 256)%nat -> nth a ff_exp_table Int.zero = exp3 a. *)

(* Specifications: *)
Lemma nth_cons_S: forall {T: Type} (n: nat) (h: T) (tl: list T),
nth (S n) (h :: tl) = nth n tl.
Lemma fast_times3: forall (i : int),
0 <= (Int.unsigned i) < 256 ->
Int.xor i (xtime i) = ff_mult (Int.repr 3) i.
Lemma ff_exp_step: forall a e,
0 <= Int.unsigned a < 256 ->
0 <= e < Int.max_signed ->
ff_exp a (Int.repr (1 + e)) = ff_mult a (ff_exp a (Int.repr e)).
Lemma exp3_step: forall e,
0 <= e < Int.max_signed ->
ff_exp (Int.repr 3) (Int.repr (1 + e)) = ff_mult (Int.repr 3) (ff_exp (Int.repr 3) (Int.repr e)).