Skip to content

Commit b16b593

Browse files
authored
Merge pull request #15 from cmu-soda/andy_updates
Adding REU page
2 parents a5cf246 + 92e773c commit b16b593

File tree

11 files changed

+193
-1
lines changed

11 files changed

+193
-1
lines changed

_config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ collections:
6868
output: true
6969
layout: product
7070
show_sidebar: false
71+
reu:
72+
output: true
73+
layout: product
74+
show_sidebar: false
75+
permalink: /reu/:name/
7176
navbar_fixed: true
7277
footer_fixed: true
7378

_data/navigation.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,5 @@
88
link: /news/
99
- name: Tools
1010
link: /tools/
11+
- name: REU
12+
link: /reu/

_reu/FOL_separators.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
title: First-Order Quantified Separator in Alloy Analyzer
3+
subtitle:
4+
layout: product
5+
image: /assets/img/separator.png
6+
year: 2025
7+
student: One An
8+
mentor: Andy Hammer
9+
features:
10+
- label: First-Order Logic
11+
icon: fa-ellipsis-v
12+
- label: Alloy
13+
icon: fa-cloud
14+
- label: Example Driven Synthesis
15+
icon: fa-filter
16+
---
17+
18+
__Description and Significance__
19+
First-order logic is used to express system invarients, but it's formal complexity hinders wide-scale adoption.
20+
During debugging of formal expression, *counter-examples* are often used to identify cases that have unexpected behavior for a given invariant.
21+
These examples can be used to identify what is called a *separator* -- an expression that separates positive and negative examples.
22+
23+
__Student Involvement__
24+
Students will use Alloy -- a modeling tool based on first-order and relational logics and transitive closure -- to create a separator when given examples.
25+
The goal of the project is to identify if using formal methods is a viable method for synthesis of a separator.
26+
27+
__Project Results__
28+
One An successfully submitted a Student Research Competition paper to the Automated Software Engineering Conference of 2025 on Folloy - the tool created to synthesize separators in Alloy.

_reu/TLA_threading.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
title: TLA+ Threading for Recomp-Verify
3+
subtitle:
4+
layout: product
5+
image: /assets/img/recomposition.jpg
6+
year: 2024
7+
student: Eduardo Naranjo
8+
mentor: Ian Dardik
9+
features:
10+
- label: Compositional Verification
11+
icon: fa-home
12+
- label: TLA+
13+
icon: fa-bug
14+
- label: Distributed Protocols
15+
icon: fa-history
16+
---
17+
18+
This project aims to improve _recomposition_ for efficiently verifying distributed systems.
19+
The project involves improving techniques for decomposing systems and improving algorithms for threading to accelerate the speed of model checking.

_reu/comp_verif_tla.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
title: Compositional Verification of Distributed Protocols in TLA+
3+
subtitle:
4+
layout: product
5+
image: /assets/img/john_reu_project.png
6+
year: 2025
7+
mentor: Ian Dardik
8+
student: John Ngyuyen
9+
features:
10+
- label: Compositional Verification
11+
icon: fa-object-group
12+
- label: TLA+
13+
icon: fa-plus-square
14+
- label: Distributed Protocols
15+
icon: fa-cogs
16+
---
17+
18+
__Description and Significance__
19+
Distributed protocols, e.g. Paxos and Raft, are at the heart of communication for distributed systems. It is very important for these protocols to be correct, yet verifying (proving) their correctness is extremely challenging. In this project, we aim to improve the scalability and performance of tools that are used to verify the correctness of distributed protocols written in the TLA+ formal specification language. In particular, we will be applying compositional techniques to improve the state of the art for model checking (automatically verifying) distributed protocols.
20+
21+
__Student Involvement__
22+
Students will learn about the theory of model checking, including TLA+ and compositional verification. The goal of the project is for the student to implement compositional verification techniques in an existing model checker for the TLA+ language. Students will work with one of two model checkers that our team has been developing: Recomp-Verify and Carini (see the references). Both model checkers are implemented in Java, so students will be expected to write Java code.
23+
24+
__References__
25+
- [https://github.com/cmu-soda/recomp-verify/tree/FMCAD24](https://github.com/cmu-soda/recomp-verify/tree/FMCAD24)
26+
- [https://github.com/cmu-soda/carini](https://github.com/cmu-soda/carini)
27+

_reu/fault_centered_robustness.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
title: Fault Centered Robustness in TLA+
3+
subtitle:
4+
layout: product
5+
image: /assets/img/will_reu_project.png
6+
year: 2024
7+
mentor: Ian Dardik
8+
student: William Morris
9+
features:
10+
- label: Robustness
11+
icon: fa-puzzle-piece
12+
- label: TLA+
13+
icon: fa-plus-square
14+
- label: Distributed Protocols
15+
icon: fa-cogs
16+
---
17+
18+
The guarantees provided by formal verification are only as good as the _assumptions_ that are made about the environment.
19+
Therefore, in prior work, we have proposed _robustness analysis_ to help system designers how robust their guarantees are to environmental _deviations_.
20+
In this project, we lift the notion of robustness to symbolic transition systems in _fault-centered robustness_, in which we calculate safe environmental envelopes based on a user-given set of symbolic faults.

assets/img/john_reu_project.png

86.8 KB
Loading

assets/img/separator.png

29.2 KB
Loading

assets/img/will_reu_project.png

232 KB
Loading

projects.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ Parv's STL/RL project (ICCPS and NFM work)
1616
Saloni's Kafka project (ABZ paper)
1717
Leo's Alloy visualization project
1818
Ian's TLA+ project
19-
Andy's MPC project -->
19+
Andy's MPC project -->

0 commit comments

Comments
 (0)