Edward = Probabilistic Programming Language on Tensor Flow?


I have been studying the semantics of probabilistic programming languages. Edward is fascinating to me since it tries to combine probability theory and differentiation (essentially). I would love to know more about the the syntax of Edward and what it means.

My understanding is that Edward is a probabilistic programming language that builds on top of Tensor Flow. Hence, Edward can implement variational inference or other inference algorithms that would benefit from automatic differentiation (e.g. HMC) using Tensor Flow. Is this the ‘‘secret’’ why Edward’s HMC is faster than Stan’s as stated in the ICLR 2017 paper?

Also, is it true to say that besides the fact that Edward can use functions from Tensor Flow, it is just a probabilistic programming language, like Church?