$$ \definecolor{blue}{RGB}{0, 150, 255} \definecolor{red}{RGB}{255, 50, 50} \definecolor{purple}{RGB}{255, 50, 200} \definecolor{darkpurple}{RGB}{200, 50, 200} \definecolor{orange}{RGB}{255, 128, 0} \definecolor{darkgreen}{RGB}{50, 160, 0} \definecolor{green}{RGB}{0, 160, 40} \newcommand{\ol}[1]{\overline{#1}} \newcommand{\wt}[1]{\widetilde{#1}} \newcommand{\cal}[1]{\mathcal{#1}} \newcommand{\angle}[1]{\left\langle #1 \right\rangle} \newcommand{\paren}[1]{\mathopen{}\left( #1 \right)\mathopen{}{}} \newcommand{\braces}[1]{\left\{ #1 \right\}} \newcommand{\po}{\mathop{\mathsf{po}}} \newcommand{\mo}{\mathop{\mathsf{\color{blue}mo}}} \newcommand{\rf}{\mathop{\mathsf{\color{red}rf}}} \newcommand{\rfi}{\mathop{\mathsf{\color{red}rf^{-1}}}} \newcommand{\hb}{\mathop{\mathsf{\color{green}hb}}} \newcommand{\fr}{\mathop{\mathsf{\color{purple}fr}}} \newcommand{\rb}{\mathop{\mathsf{\color{darkpurple}rb}}} \newcommand{\sc}{\mathop{\mathsf{\color{orange}sc}}} \newcommand{\com}{\mathop{\mathsf{\color{darkgreen}com}}} \newcommand{\eco}{\mathop{\mathsf{\color{darkgreen}eco}}} \newcommand{\po}{\mathop{\mathsf{po}}} \newcommand{\porf}{\mathop{\mathsf{po\color{red}rf}}} \newcommand{\pourf}{\po \cup \rf} \newcommand{\rfufr}{\rf \cup \fr} \newcommand{\pourfumo}{\po \cup \rf \cup \mo} \newcommand{\Gpourfumo}[1]{\po \cup \mathop{#1.\rf} \cup \mo} \newcommand{\rfumoufr}{\rf \cup \mo \cup \fr} \newcommand{\rfumourb}{\rf \cup \mo \cup \rb} \newcommand{\pourfumoufr}{\po \cup \rf \cup \mo \cup \fr} \newcommand{\pourfumourb}{\po \cup \rf \cup \mo \cup \rb} $$

Grace Tan’s Site

Hello! I am a PhD student at the National University of Singapore (School of Computing), advised by Prof. Umang Mathur. I am a part of the group Foundations of Computer Systems Lab, led by my advisor. My research interest is on weak memory models, and I am currently studying algorithms for consistency testing!