fact: Fixpoint ty_subst (n : name) (t u : type) := match t with | Tvar k => if k =? n then u else Tvar k | Arrow t1 t2 => Arrow (ty_subst n t1 u) (ty_subst n t2 u) | Forall k t1 => if n =? k then t else Forall k (ty_subst n t1 u) end.
imports: List Arith Bool