let sub s t = 
  match s, t with
    | F, _ -> true
    | _, F -> false
    | _, T -> true
    | T, _ -> false
    | Zero, (Zero | Nonpos | Nonneg-> true
    | Zero, _ -> false
    | Neg, (Neg | Nonpos-> true
    | Neg, _ -> false
    | Pos, (Pos | Nonneg-> true
    | Pos, _ -> false
    | NonnegNonneg -> true
    | Nonneg, _ -> false
    | NonposNonpos -> true
    | Nonpos, _ -> false