Variables: 
bool[1]: "a" 
bool[2]: "b" 

Event graph: 
event[0]: fork: null, #pred: 0, succ: 1 

# process[0]:
event[1]: fork: , pid: 0, #pred: 1, succ: 19 20 
event[2]: assign: a := true, pid: 0, #pred: 1, succ: 21 
event[3]: assign: a := false, pid: 0, #pred: 1, succ: 2 
event[4]: assign: a := false, pid: 0, #pred: 1, succ: 3 
event[5]: assign: a := false, pid: 0, #pred: 1, succ: 4 
event[6]: assign: a := false, pid: 0, #pred: 1, succ: 5 
event[7]: assign: b := true, pid: 0, #pred: 1, succ: 21 
event[8]: assign: b := false, pid: 0, #pred: 1, succ: 7 
event[9]: join: , pid: 0, #pred: 2, succ: 21 
event[10]: assign: a := false, pid: 0, #pred: 1, succ: 9 
event[11]: assign: b := false, pid: 0, #pred: 1, succ: 9 
event[12]: fork: , pid: 0, #pred: 1, succ: 10 11 
event[13]: join: , pid: 0, #pred: 2, succ: 12 
event[14]: wait: [a], pid: 0, #pred: 1, succ: 13 
bool deps: 1 
event[15]: wait: [b], pid: 0, #pred: 1, succ: 13 
bool deps: 2 
event[16]: fork: , pid: 0, #pred: 1, succ: 14 15 
event[17]: fork: , pid: 0, #pred: 1, succ: 6 8 16 
event[18]: join: , pid: 0, #pred: 2, succ: 17 
event[19]: assign: a := false, pid: 0, #pred: 1, succ: 18 
event[20]: assign: b := false, pid: 0, #pred: 1, succ: 18 
event[21]: join: , pid: 0, #pred: 3, succ: 

