End EVAL.
Definition hold (k: kind) : rtyp k ->  Prop :=
if k as k0 return (rtyp k0 -> Prop) then fun x  => x else is_true.
Definition eiff (k: kind) : rtyp k -> rtyp k -> Prop :=
if k as k' return rtyp k' -> rtyp k' -> Prop then iff else @eq bool.

Lemma eiff_trans k (x y z : rtyp k) : eiff k x y -> eiff k y z -> eiff k x z.