/// <summary>
 /// 二項関係Rが一対一であるかどうか
 /// 左一意的かつ右一意的
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="rel">二項関係R</param>
 /// <returns>一対一</returns>
 public static bool isOneToOne <T1, T2>(this BinaryRelation <T1, T2> rel)
 {
     return(rel.isLeftUnique() && rel.isRightUnique());
 }
 /// <summary>
 /// 二項関係Rが関数かどうか
 /// 右一意的かつ左全域的
 /// 函数関係・一意対応・写像とも言う
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="rel">二項関係R</param>
 /// <returns>関数</returns>
 public static bool isFunction <T1, T2>(this BinaryRelation <T1, T2> rel)
 {
     return(rel.isLeftTotal() && rel.isRightUnique());
 }