Section Properties.
Implicit Types x y : TVar.
Implicit Types xs ys : list TVar.
(* ---------------------------------------------------------------------- *)
(** *** Primary properties *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of singulars *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of concatenation *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of get *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of dom *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of img *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of belongs *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of all_belongs *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of notin *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of all_notin *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of map *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of update_one *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of update *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of remove *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of all_remove *)
(* ---------------------------------------------------------------------- *)
(** **** Properties of ok *)

(** Ok stands if there is no variable duplication. *)
Axiom ok_singles : forall A xs (vs : list A),
List.NoDup xs ->
ok (xs ∷ vs).