Definition RNatIso_law (F G : Functor A B) (T : NT F G) 
  (T1 : NT G F) := T1 o_NTv T =_NT Id_CatFunct G.Definition AreNatIsos (T : NT F G) (T1 : NT G F) :=
  RNatIso_law T T1 /\ RNatIso_law T1 T.Structure > NatIso : Type := 
  {NatIso_mor :> NT F G;
   NatIso_inv : NT G F;
   Prf_NatIso :> AreNatIsos NatIso_mor NatIso_inv}.Structure > NatIso : Type := 
  {NatIso_mor :> NT F G;
   NatIso_inv : NT G F;
   Prf_NatIso :> AreNatIsos NatIso_mor NatIso_inv}.Structure > NatIso : Type := 
  {NatIso_mor :> NT F G;
   NatIso_inv : NT G F;
   Prf_NatIso :> AreNatIsos NatIso_mor NatIso_inv}.Structure > NatIso : Type := 
  {NatIso_mor :> NT F G;
   NatIso_inv : NT G F;
   Prf_NatIso :> AreNatIsos NatIso_mor NatIso_inv}.

(* Specifications: *)
Lemma Idl_nat_inv : forall i : NatIso, RNatIso_law (NatIso_mor i) (NatIso_inv i).
Lemma Idr_nat_inv : forall i : NatIso, RNatIso_law (NatIso_inv i) (NatIso_mor i).
Lemma NTinv_nt_law : NT_law h.