There are multiple ways to write logical argument or inference rules in Latex, but bussproofs is a great package that also works with MathJax.
Example
\newcommand\inf[2]{$\langle#1,[]\rangle\rightarrow #2$} \begin{prooftree} \AXC{}\RL{num} \UIC{\inf{1}{1}} \AXC{}\RL{var} \UIC{\inf{x}{0}}\RL{gt} \BIC{\inf{x>1}{false}} \AXC{}\RL{skip} \UIC{\inf{skip()}{[]}}\RL{if} \BIC{\inf{if(x>1)then(x:=10)else(skip())}{[]}} \end{prooftree}