Definition Annotation_sub (A1 A2: option Annotation):Prop := 
  match A1, A2 with
    _, None => True
  | Some (StrongAnnotation _), Some (WeakAnnotation _) => True
  | Some (StrongAnnotation X), Some (StrongAnnotation Y) => X=Y (*maybe have entailment here?*)
  | X, Y => X=Y 
  end.

(* Specifications: *)
Lemma Annotation_sub_trans a1 a2 a3: Annotation_sub a1 a2 -> Annotation_sub a2 a3 -> Annotation_sub a1 a3.
Lemma Annotation_sub_refl a: Annotation_sub a a.
Lemma Annotation_sub_antisymm a b: Annotation_sub a b -> Annotation_sub b a -> a=b.
Lemma tycontext_eqv_spec: forall Delta Delta', tycontext_eqv Delta Delta' <-> tycontext_sub Delta Delta' /\ tycontext_sub Delta' Delta.
Lemma tycontext_sub_refl: forall Delta, tycontext_sub Delta Delta.
Lemma tycontext_sub_trans: forall Delta1 Delta2 Delta3, tycontext_sub Delta1 Delta2 -> tycontext_sub Delta2 Delta3 -> tycontext_sub Delta1 Delta3.