Our research involves the use of mathematics to assist with the specification, design, implementation, and verification of computing systems.
- Declarative Programming:
- Declarative approaches to search. Nonmonotonic logic. Stable models. Semantics of answer set programming languages. Answer set solvers.
- Theory of concurrency and causality, Language for distributed and concurrent programming, Process algebra.
- Hardware and Software Verification:
- Microprocessor ISA specification. Microcode verification. Floating-point verification. Binary code analysis. Number theory and metamathematics.
- Model Checking:
- Property checking. Predicate abstraction. Automatic verification. Reachability. State-space exploration.
- Model checking. Constraint solving. Computational soundness.
- Theorem Proving:
- Rewriting. Rule-driven simplification. Decision and semi-decision procedures. Heuristic proof techniques. Induction. Integrated proof techniques. Domain-specific proof techniques. Metafunctions. Search. Interactive guidance. Proof development environments.
- CS 389R Recursion and Induction