You are pretty close so I think all replies will be pedantic differences.
I like to think of applications as libraries + state. This isn’t a rigorous definition, but I find the mental model helpful.
I had a question about why app.src is included in Erlang libraries and got insightful responses. So basically libraries are applications without processes being started.
Framework isn’t an erlang specific term, and I believe that common test is using it in the same way other ecosystem’s might.