Visualizing Rust's type-system
jadpole.github.io
jadpole.github.io
The phrase is usually "bear with me". Please don't take your clothes off.
Great discussion of dynamic dispatch, though.
Firstly the symbol you are using for "subset of" is in fact the symbol for "strict subset of". This means you are saying that when C : A + B there is some value that implements A and B but that is not accepted in the place of C. This is of course, simply not true.
Secondly, Type theory itself was created in part due to the inadequacies of Set theory, which is why it is tempting to find parallels in the two, but it will only go so far.