Peer-Reviewed Publications
Leveraging Compiler Intermediate Representation for Multi- and Cross-Language Verification
Proceedings of the 21st International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI), 2020
An SMT Theory of Fixed-Point Arithmetic
Proceedings of the 10th International Joint Conference on Automated Reasoning (IJCAR), 2020
FailAmp: Relativization Transformation for Soft Error Detection in Structured Address Generation
ACM Transactions on Architecture and Code Optimimization (TACO), 2019
Stochastic Local Search for Solving Floating-Point Constraints
Proceedings of the 12th International Workshop on Numerical Software Verification (NSV), 2019
A Mixed Real and Floating-Point Solver
Proceedings of the 11th NASA Formal Methods Symposium (NFM), 2019
A Timeless Model for The Verification of Quasi-Periodic Distributed Systems
Proceedings of the 17th ACM/IEEE International Conference on Formal Methods and Models for System Design (MEMOCODE), 2019
PRUNERS: Providing Reproducibility for Uncovering Non-Deterministic Errors in Runs on Supercomputers
International Journal of High Performance Computing Applications (IJHPCA), 2019
RedLeaf: Towards An Operating System for Safe and Verified Firmware
Proceedings of the 17th Workshop on Hot Topics in Operating Systems (HotOS), 2019
Exploring Floating-Point Trade-Offs in ML
Informal Proceedings of the Workshop on Approximate Computing Across the Stack (WAX), 2018
Rigorous Estimation of Floating-Point Round-off Errors with Symbolic Taylor Expansions
ACM Transactions on Programming Languages and Systems (TOPLAS), 2018
Verifying Relative Safety, Accuracy, and Termination for Program Approximations
Journal of Automated Reasoning (JAR), 2018
Sword: A Bounded Memory-Overhead Detector of OpenMP Data Races in Production Runs
Proceedings of the 32nd IEEE International Parallel and Distributed Processing Symposium (IPDPS), 2018
LLNL Deputy Director's 2019 S&T Excellence in Publication Award
Study of Integrating Random and Symbolic Testing for Object-Oriented Software
Proceedings of the 14th International Conference on Integrated Formal Methods (IFM), 2018
Verifying Rust Programs with SMACK
Proceedings of the 16th International Symposium on Automated Technology for Verification and Analysis (ATVA), 2018
Static Assertion Checking of Production Software with Angelic Verification
8th Workshop on Tools for Automatic Program Analysis (TAPAS), 2017
Rigorous Floating-Point Mixed-Precision Tuning
Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL), 2017
Consistency-Aware Scheduling for Weakly Consistent Programs
ACM SIGSOFT Software Engineering Notes, 2017
System Programming in Rust: Beyond Safety
Proceedings of the 16th Workshop on Hot Topics in Operating Systems (HotOS), 2017
PRUNERS: Providing Reproducibility for Uncovering Non-Deterministic Errors in Runs on Supercomputers
Computational Reproducibility at Exascale Workshop (CRE), 2017
Counterexample-Guided Bit-Precision Selection
Proceedings of the 15th Asian Symposium on Programming Languages and Systems (APLAS), 2017
JDart: A Dynamic Symbolic Analysis Framework
Proceedings of the 22nd International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), 2016
Portable Inter-workgroup Barrier Synchronisation for GPUs
Proceedings of the ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2016
Verifying Relative Safety, Accuracy, and Termination for Program Approximations
Proceedings of the 8th NASA Formal Methods Symposium (NFM), 2016
Archer: Effectively Spotting Data Races in Large OpenMP Applications
Proceedings of the 30th IEEE International Parallel and Distributed Processing Symposium (IPDPS), 2016
SMACK Software Verification Toolchain
Proceedings of the 38th IEEE/ACM International Conference on Software Engineering (ICSE) Companion, 2016
SMACK+Corral: A Modular Verifier (Competition Contribution)
Proceedings of the 21st International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), 2015
Rigorous Estimation of Floating-Point Round-off Errors with Symbolic Taylor Expansions
Proceedings of the 20th International Symposium on Formal Methods (FM), 2015
Fast and Precise Symbolic Analysis of Concurrency Bugs in Device Drivers
Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering (ASE), 2015
Efficient Search for Inputs Causing High Floating-point Errors
Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), 2014
Systematic Debugging Methods for Large Scale HPC Computational Frameworks
Computing in Science and Engineering (CiSE), 2014
SMACK: Decoupling Source Language Details from Verifier Implementations
Proceedings of the 26th International Conference on Computer Aided Verification (CAV), 2014
Taming Test Inputs for Separation Assurance
Proceedings of the 29th IEEE/ACM International Conference on Automated Software Engineering (ASE), 2014
Towards Formal Approaches to System Resilience
Proceedings of the 19th IEEE Pacific Rim International Symposium on Dependable Computing (PRDC), 2013
Formal Analysis of GPU Programs with Atomics via Conflict-Directed Delay-Bounding
Proceedings of the 5th NASA Formal Methods Symposium (NFM), 2013
Hybrid Learning: Interface Generation through Static, Dynamic, and Symbolic Analysis
Proceedings of the International Symposium on Software Testing and Analysis (ISSTA), 2013
Asynchronously Communicating Visibly Pushdown Systems
Proceedings of the IFIP Joint International Conference on Formal Techniques for Distributed Systems (33rd FORTE/15th FMOODS), 2013
Symbolic Learning of Component Interfaces
Proceedings of the 19th International Static Analysis Symposium (SAS), 2012
Proving Termination of Nonlinear Command Sequences
Formal Aspects of Computing (FAC), 2012
Delay-Bounded Scheduling
Proceedings of the 38th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL), 2011
STORM: Static Unit Checking of Concurrent Programs
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE) - Volume 2, 2010
Silver Medal Winner in the ACM Student Research Competition
A Scalable Memory Model for Low-Level Code
Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI), 2009
A Low-Level Memory Model and an Accompanying Reachability Predicate
International Journal on Software Tools for Technology Transfer (STTT), 2009
Static and Precise Detection of Concurrency Errors in Systems Code Using SMT Solvers
Proceedings of the 21st International Conference on Computer Aided Verification (CAV), 2009
Automatic Inference of Frame Axioms Using Static Analysis
Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE), 2008
Proving Termination by Divergence
Proceedings of the 5th IEEE International Conference on Software Engineering and Formal Methods (SEFM), 2007
Invited for special section submission to Formal Aspects of Computing (FAC)
Verifying Heap-Manipulating Programs in an SMT Framework
Proceedings of the 5th International Symposium on Automated Technology for Verification and Analysis (ATVA), 2007
Other Publications
Modular Verification of Shared-Memory Concurrent System Software
University of British Columbia, PhD Thesis, March 2011