Axiom
  typest_writing :
    forall t t' : type,
    typest t t' -> capst (getcap t') Write -> typest (getobj t') (getobj t).Axiom
  typest_reading :
    forall t t' : type,
    typest t t' -> capst (getcap t') Read -> typest (getobj t) (getobj t').Axiom
  typest_tail :
    forall t t' : type, typest t t' -> capst (getcap t) (getcap t').

Theorem subtyping_extension : forall (G D : env) (p : PP) (t1 t2 : type), envst D G -> typest t1 t2 -> envst (addenv D p t1) (addenv G p t2).