Marcell J. Vazquez-Chanlatte


I am a graduate student working with Prof. Sanjit A. Seshia in the department of Computer Science at UC Berkeley. I recieved a B.S. in Computer Science and a B.S. Physics at the University of Illinois at Urbana-Champaign. I have also spent time at VMWare, SRI, Toyota, Google, Mozilla, and Qualcomm. Please take the time to explore this site and learn more about my research interests, active software projects, and publications.

Proposed Thesis Topic: Communicating Intent and Formal Specifications through Demonstrating (slides)

Research Interests

  1. Specification Inference
  2. Formal Methods for Cyberphysical Systems
  3. AI Alignment
  4. Controller Synthesis

Select Software Projects

See Github for a more exhaustive list.

Sequential Circuits

pyAiger: A python library for convenient modeling/ manipulation of sequential circuits, combinatorial circuits, and boolean expressions represented as (A)nd & (I)nverter (G)ates (AIGs). Co-developed with Markus N. Rabe.

pyAiger-BV: Word Level (bitvector) abstractions on top of pyAiger. Co-developed with Markus N. Rabe.

There are a number of other projects that I have spawned off the py-aiger code base for supporting bdds, SAT solvers, past tense LTL, gridworlds, and conversion to and from DFAs.


py-Metric-Temporal-Logic: Python library for working with Metric Temporal Logic (MTL). Metric Temporal Logic is an extension of Linear Temporal Logic (LTL) for specifying properties over time series.

DiscreteSignals: A Python embedded domain specific language for modeling and manipulating discrete time signals. The key distinction between many other timeseries libraries is the lightweight encoding of non-uniform time steps. This abstraction made implementing the py-Metric-Temporal-Logic library much easier.

Specification Inference

WARNING! Not yet stable! Likely to dramatically change or bit-rot! yasit - (Y)et (A)nother (S)pecification (I)nference (T)ool: Yasit is a tool for learning "Boolean Specifications" from demonstrations. In particular, we are given a set of examples from an agent (also called the teacher) who is performing some task in an environment and ask what is the most likey task given the examples (also called the demonstrations). This can be seen as an extension of Maxium Entropy Inverse Reinforcement Learning to Boolean Trajectory level rewards. This can also be seen as a tool performing unsupervised specification mining in the presence of noise. See "Learning Task Specifications from Demonstrations".

Gridworld Visualizer: Python Code for visualizing gridworlds used in my research (see Learning Task Specifcations from Demonstrations and the yasit tool).

Monotone Bipartition: This library enable manipulating and comparing implicitly defined monotone bipartitions on the unit box using adaptive mesh refinement. Inspired by Maler, Oded. "Learning Monotone Partitions of Partially-Ordered Domains (Work in Progress)." (2017). and the main work horse our series of papers on Logical Lens and Logical Clustering.

Logical Lens: Implementation of Logical Lens algorithm for (1) using a parametric specification to map data to an abstract boundary and (2) compute the induced "Logical Distance" between data w.r.t. a parametric specification.


DFA: A simple python implementation of a Discrete Finite Automata and Moore Machines. Notable features include implicit/lazy definitions, immutable/frozen design, and hashability.

lstar: Python implementation of the discriminant tree for learning DFA and Moore Machines from membership and equivalence queries. Supports a co-routine API for interfacing with other learning algorithms. Works well with my dfa library :)


Lazy Tree: Python library for manipulating infinite trees. Used in a number of my libraries. For example, the adaptive mesh-refinement in monotone-bipartition and the counterexample search tree in lstar. Useful when a problem can be framed as a search on infinite trees which themselves may be functions of infinite trees.

Select Publications


  1. Vazquez-Chanlatte, Marcell, and Sanjit A. Seshia. "Learning Task Specifications from Demonstrationsvia the Principle of Maximum Causal Entropy" arxiv
  2. Vazquez-Chanlatte, Marcell, et al. "A Model Counter's Guide to Probabilistic Systems" arxiv


  1. Vazquez-Chanlatte, Marcell, et al. "Time Series Learning using Monotonic Logical Properties.", International Conference on Runtime Verification, RV, 2018 pdf arxiv bibtex slides
  2. Vazquez-Chanlatte, Marcell, et al. "Learning Task Specifications from Demonstrations.", Advances in Neural Information Processing Systems, NeurIPS, 2018 (formally known as NIPS). pdf arxiv bibtex
  3. Vazquez-Chanlatte, Marcell, et al. "Logical Clustering and Learning for Time-Series Data." International Conference on Computer Aided Verification. Springer, Cham, 2017. pdf arxiv bibtex
  4. Vazquez-Chanlatte, Marcell, et al. "Generating Dominant Strategies for Continuous Two-Player Zero-Sum Games." Analysis and Design of Hybrid Systems. ADHS, 2018. pdf bibtex
  5. (Extended Abstract) Vazquez-Chanlatte, Marcell, et al. "Communicating Compositional and Temporal Specifications by Demonstration." IFAC Conference on Cyber-Physical & Human Systems. CPHS, 2018

Teaching Experience

  1. Introduction to Embedded Systems - EECS 149/249A - Fall 2017 - UC Berkeley
    Teaching Assistant (TA)
  2. Formal Methods: Specification, Verification, and Synthesis - EECS219C - Spring 2018 - UC Berkeley
    Teaching Assistant (TA)