https://123dok.net/document/ozl827rq-a-semi-syntactic-soundness-proof-for-hm-x.html