If I'm using a library that is licensed under GPL v3 in my project, can I license my project under the MIT license? I tried to read the GPL v3 text but I cannot understand it without your assistance.
Yes, I can use the MIT license. This is my own code and I can use any license I please. (I assume I am not copying any GPL-licensed code in my MIT-licensed library). Furthermore, the MIT license is considered by the Free Software Foundation as compatible with the GPL and LGPL licenses (all versions). There are plenty of examples of MIT-licensed code used in combination of GPL-licensed code, for instance in the Linux Kernel.
But I would need to consider what happens in these two cases:
at rest, my source code is MIT-licensed (assuming there is no GPL-licensed code copied in it). As long as I do not run nor build the code there is no GPL in play.
when built or at runtime my code eventually interacts with the GPL library I depend on. What happens is technology specific here: it may be C code that is statically or dynamically linked with the GPL-licensed library. Or is could be Java, Ruby or Python code that imports or requires the GPL-licensed package.
What matters is how my code does interacts and depends on the GPL-licensed library at build and/or runtime. I can check this answerthis answer (disclosure: I wrote it) for some background on interactions and dependencies. If I redistribute binaries and my code is combined with the GPL-libraries in a certain way, my code may be subject to the GPL source code redistribution requirements. The same would apply to user of my source code: when they build it, the combined binary may be come subject to the GPL terms for instance if my code is itself a library, the GPL may extend at runtime through my library to my users' code.
Since in the end what matters is eventually running code (vs. source code at rest) even though my code may be MIT-licensed, I would clearly state to my users that when built the code is combined by default with GPL-licensed code and that the GPL terms may apply.
Alternatively a user could replace or remove the GPL-licensed library dependency from my code and it would not be combined with the GPL-licensed any more and only the MIT would apply.
As a practical example of a project with such a policy consider FFmpeg. It's overall license is the LGPL (and not the MIT, but from the point of view of the GPL the results are the same). Depending on how FFmpeg is built and which parts are used when effectively building and running FFmpeg binaries (as opposed to just considering the source) the resulting licensing may be GPL.
FFmpeg is licensed under the GNU Lesser General Public License (LGPL) version 2.1 or later. However, FFmpeg incorporates several optional parts and optimizations that are covered by the GNU General Public License (GPL) version 2 or later. If those parts get used the GPL applies to all of FFmpeg.