Definition RKA_randomFunc := @randomFunc (K * D) R RndR _.Definition dual_f (A B C : Set)(f : A -> B -> C) : B -> A -> C :=
  fun b a => f a b.Definition b := @b c p.Definition GHMAC_2K := GHMAC_2K h iv fpad.Definition GHMAC := GHMAC h iv fpad opad ipad.Definition app_fpad := @app_fpad c p fpad.Definition h_star := h_star p h.Definition GNMAC := GNMAC h fpad.

(* Specifications: *)
Theorem GHMAC_2K_GNMAC_equiv : forall k ls, let (k_Out, k_In) := splitVector b b k in let k' := Vector.append (h iv k_Out) (h iv k_In) in GHMAC_2K k ls = GNMAC k' ls.
Theorem xor_1_1 : forall (n : nat)(x y z : Bvector n), BVxor