Intersection of `≤ t₁` and `≁ t₂`
The intersection of an upper bound and an incomparible depends on how the two types are related.
(≤ t₁) ∧ (≁ t₂) = ∅ if t₁ ⊆ t₂
= (≤ t₁) ∧ (≁ t₂) otherwise
Equationally
⟦≤ t₁⟧ = {x | x ⊆ t₁}
⟦≁ t₂⟧ = {x | x ⊈ t₂ ∧ t₂ ⊈ x}
If `t₁ ⊆ t₂`, the key step is that `x ⊆ t₁` implies `x ⊆ t₂` by transitivity, which contradicts the incomparible constraint on `t₂`.
⟦(≤ t₁) ∧ (≁ t₂)⟧
= {x | x ⊆ t₁} ∩ {x | x ⊈ t₂ ∧ t₂ ⊈ x}
= {x | x ⊆ t₁ ∧ x ⊈ t₂ ∧ t₂ ⊈ x}
= {x | x ⊆ t₁ ∧ x ⊆ t₂ ∧ x ⊈ t₂ ∧ t₂ ⊈ x}
= {x | x ⊆ t₁ ∧ false ∧ t₂ ⊈ x}
= {x | false}
= ∅
Otherwise, the two constraints cannot be simplified.