Name for Cartesian Product variant that does not return an empty set if one of the sets is empty I am looking for the name of this mathematical operation that behaves very similar to Cartesian Product.
Given:


*

*A = {1,2}

*B = {3,4}

*C = {5}

*D = ∅
The operation (which I'll write as *), behaves like this:


*

*A * B = {1,2} * {3,4} = {(1,3),(1,4),(2,3),(2,4)} // Same as a Cartesian Product

*A * C = {1,2} * {5} = {(1,5),(2,5)} // Same as a Cartesian Product

*A * D = {1,2} * ∅ = {1,2} // Different from a Cartesian Product

*D * A = ∅ * {1,2}  = {1,2} // Different from a Cartesian Product


Furthermore:


*

*A * B * C = {1,2} * {3,4} * {5} = {(1,3,5),(1,4,5),(2,3,5),(2,4,5)} // Same as a Cartesian Product

*A * C * D = {1,2} * {5} * ∅ = {(1,5),(2,5)} // Different from a Cartesian Product

*A * D * D = {1,2} * ∅ * ∅ = {1,2} // Different from a Cartesian Product


Generally, this is the formal definition of that operator:


*

*A * B = A × B if A ≠ ∅ and B ≠ ∅

*A * B = A if B = ∅

*A * B = B if A = ∅

*A * B = ∅ if A = ∅ and B = ∅
What's the correct name for that operation?

I am unaware of this sort of operations. But one can easily define it to be $$A*B=\begin{cases} A\times B & \text{if } A\times B\neq\varnothing\\ A\cup B & \text{if }A\times B=\varnothing\end{cases}$$
That is a legitimate mathematical definition, even if a bit peculiar generally.
