∀ {α : Type u_1} {β : Type u_2} [inst : Preorder α] [inst_1 : Preorder β] {γ : Type u_3} [inst_2 : Preorder γ]
  {g : α × β → γ},
  Monotone g →
    ∀ {d : Set (α × β)},
      DirectedOn (fun x1 x2 => x1 ≤ x2) d → upperBounds (g '' d) = upperBounds (g '' (Prod.fst '' d) ×ˢ (Prod.snd '' d))