Software Foundations Vol 6: Separation Logic Foundations