let div s t =
match s, t with
| F, _ -> F
| _, F -> F
| _, Zero -> F
| Zero, _ -> Zero
| T, _ -> T
| _, T -> T
| Pos, (Pos | Nonneg) -> Pos
| Pos, (Neg | Nonpos) -> Neg
| Neg, (Pos | Nonneg) -> Neg
| Neg, (Neg | Nonpos) -> Pos
| Nonneg, (Pos | Nonneg) -> Nonneg
| Nonneg, (Neg | Nonpos) -> Nonpos
| Nonpos, (Pos | Nonneg) -> Nonpos
| Nonpos, (Neg | Nonpos) -> Nonneg