We offer here a formal hierarchy of weak memory models implemented in Coq, which we show how to instantiate to obtain Sequential Consistency (SC) and Sparc Total Store Ordering (TSO). We provide the proofs of equivalences of these instantiations with the native models, as well as characterisation criteria. We show theorems about the strength and placement of memory barriers to regain a strong model from a weaker one.