No, I did not say that. Again Assembly != DLL or LIB or "library".
"To me, an assembly is just a library"? We're talking about technical terms. It can't mean one thing to you and another to me or anyone else. That's why people are having problems helping you. You use a LOT of terms that are technical, or at least technical sounding, but the context in which you use them don't make any sense to those who know enough to help you.
Even in this post, you confuse things badly. A Stack and a Queue are classes, not libraries. And all this "implicit" and "sub-assembly" stuff makes no sense.
Let me try and define at least some of the terms you're using.
An assembly is a binary file produced for the CLR. There are two types of assemblies. Applications (EXE) and libraries (DLL).
.NET doesn't use static libraries (LIB).
A library (DLL) used by an application (EXE) in .NET is a reference assembly, not a "sub-assembly" or "implicit assembly". It's "external" in the sense that the two files are not combined, as is done with static libraries (LIB) in some other languages.
A class is a type definition, including implementation. An interface is just a type definition with out an implementation. In .NET classes use single inheritance, but may implement multiple interfaces. This is all very much in line with other languages and technologies, including COM. Which is another reason why your posts have been so confusing.