Notation "n .-tuple" := (tuple_of n)
  (at level 2, format "n .-tuple") : type_scope.Notation "[ 'tnth' t i ]" := (tnth t (@Ordinal (tsize t) i (erefl true)))
  (at level 0, t, i at level 8, format "[ 'tnth'  t  i ]") : form_scope.Definition in_tuple (s : seq T) := Tuple (eqxx (size s)).

Lemma tcast_trans m n p (eq_mn : m = n) (eq_np : n = p) t: tcast (etrans eq_mn eq_np) t = tcast eq_np (tcast eq_mn t).