(****************)
(* Type dynamic *)
(****************)
(* putting it in a module, to get a path name for typ and val *)
Module Dyn.
Record dynamic : Type := dyn {typ : Type; val : typ}.
End Dyn.
Notation dynamic := Dyn.dynamic.
Notation dyn := Dyn.dyn.

(* Specifications: *)
Lemma dyn_inj A (x y : A) : dyn x = dyn y -> x = y.
Lemma jmeq_refl A (x : T A) : jmeq x x.
Lemma contVT B (P : B -> B -> Prop) :
(forall x x', B = B -> x =jm x' -> P x x') <-> forall x, P x x.