Commit 405eec83 authored by Christian Müller's avatar Christian Müller
Browse files

fix a few things

parent 9a99c60c
digraph "Invariant Labelling" {
0 [label = "Node 0:
True"]
1 [label = "Node 1:
∀ xt:X,pt:P. (Conf(t1)(xt,pt) ↔ eq())"]
1 -> 2 [label = "forall x:X,p:P may (Some(choice1))
¬ Conf(x,p) → Assign += (x,p);", color = red]
0 -> 1 [label = "forall x:X,p:P may (Some(choice0))
True → Conf += (x,p);", color = red]
4 [label = "Node 4:
∀ xt:X,pt:P,rt:R. (Read(t1)(xt,pt,rt) ↔ eq()) ∧
∀ xt:X,yt:X,pt:P. (Comm(t1)(xt,yt,pt) ↔ eq()) ∧
∀ xt:X,pt:P. ((Conf(t1)(xt,pt) ↔ eq()) ∧
(Assign(t1)(xt,pt) ↔ eq()))"]
3 [label = "Node 3:
∀ xt:X,pt:P,rt:R. (Read(t1)(xt,pt,rt) ↔ eq()) ∧
∀ xt:X,pt:P. ((Conf(t1)(xt,pt) ↔ eq()) ∧
(Assign(t1)(xt,pt) ↔ eq())) ∧
∀ xt:X,pt:P,rt:R,yt:X. ((¬ Read(t1)(xt,pt,rt) ∨
Read(t2)(xt,pt,rt)) ∧
(¬ Read(t2)(xt,pt,rt) ∨
Read(t1)(xt,pt,rt)) ∧
(¬ Assign(t1)(xt,pt) ∨
¬ Assign(t1)(yt,pt) ∨
¬ choice2(t1)(yt,xt,pt) ∨
(Assign(t2)(yt,pt) ∧
((¬ informed(t1)(yt) ∧
choice2(t1)(yt,xt,pt)) ∨
(informed(t1)(yt) ∧
choice2(t2)(yt,xt,pt))))) ∧
(¬ Assign(t2)(xt,pt) ∨
¬ Assign(t2)(yt,pt) ∨
((informed(t1)(yt) ∨
¬ choice2(t1)(yt,xt,pt)) ∧
(¬ informed(t1)(yt) ∨
¬ choice2(t2)(yt,xt,pt))) ∨
(Assign(t1)(xt,pt) ∧
Assign(t1)(yt,pt) ∧
choice2(t1)(yt,xt,pt))) ∧
(¬ Conf(t1)(xt,pt) ∨
Conf(t2)(xt,pt)) ∧
(¬ Conf(t2)...(931 characters)"]
2 [label = "Node 2:
∀ xt:X,pt:P. ((Conf(t1)(xt,pt) ↔ eq()) ∧
(Assign(t1)(xt,pt) ↔ eq())) ∧
∀ xt:X,pt:P,rt:R,yt:X,p:P,r:R. ((¬ Assign(t1)(xt,pt) ∨
¬ O(t1)(xt,pt,rt) ∨
(Assign(t2)(xt,pt) ∧
((¬ Conf(t1)(xt,pt) ∧
O(t1)(xt,pt,rt)) ∨
(Conf(t1)(xt,pt) ∧
O(t2)(xt,pt,rt))))) ∧
(¬ Assign(t2)(xt,pt) ∨
((Conf(t1)(xt,pt) ∨
¬ O(t1)(xt,pt,rt)) ∧
(¬ Conf(t1)(xt,pt) ∨
¬ O(t2)(xt,pt,rt))) ∨
(Assign(t1)(xt,pt) ∧
O(t1)(xt,pt,rt))) ∧
(¬ Assign(t1)(xt,pt) ∨
¬ Assign(t1)(yt,pt) ∨
¬ choice2(t1)(yt,xt,pt) ∨
(Assign(t2)(yt,pt) ∧
((¬ informed(t1)(yt) ∧
(¬ Assign(t1)(yt,p) ∨
¬ O(t1)(yt,p,r) ∨
(Assign(t2)(yt,p) ∧
((¬ Conf(t1)(xt,p) ∧
O(t1)(yt,p,r)) ∨
(Conf(...(3237 characters)"]
4 -> 4 [label = "forall
", color = green]
2 -> 3 [label = "forall x:X,p:P,r:R
Assign(x,p) ∧ O(x,p,r) → Read += (x,p,r);", color = green]
3 -> 4 [label = "forall y:X,x:X,p:P may (Some(choice2))
Assign(x,p) ∧ Assign(y,p) → Comm += (x,y,p);", color = green]
}
\ No newline at end of file
digraph "Invariant Labelling" {
1 -> 2 [label = "forall x:X,p:P may (Some(choice1))
¬ Conf(x,p) → Assign += (x,p);", color = green]
0 [label = "Node 0:
True"]
0 -> 1 [label = "forall x:X,p:P may (Some(choice0))
True → Conf += (x,p);", color = red]
4 [label = "Node 4:
∀ xt:X,pt:P,rt:R. (Read(t1)(xt,pt,rt) ↔ eq()) ∧
∀ xt:X,yt:X,pt:P. (Comm(t1)(xt,yt,pt) ↔ eq()) ∧
∀ xt:X,pt:P. ((Conf(t1)(xt,pt) ↔ eq()) ∧
(Assign(t1)(xt,pt) ↔ eq()))"]
3 [label = "Node 3:
∀ xt:X,pt:P,rt:R. (Read(t1)(xt,pt,rt) ↔ eq()) ∧
∀ xt:X,pt:P. ((Conf(t1)(xt,pt) ↔ eq()) ∧
(Assign(t1)(xt,pt) ↔ eq())) ∧
∀ xt:X,pt:P,rt:R,yt:X. ((¬ Read(t1)(xt,pt,rt) ∨
Read(t2)(xt,pt,rt)) ∧
(¬ Read(t2)(xt,pt,rt) ∨
Read(t1)(xt,pt,rt)) ∧
(¬ Assign(t1)(xt,pt) ∨
¬ Assign(t1)(yt,pt) ∨
¬ choice2(t1)(yt,xt,pt) ∨
(Assign(t2)(yt,pt) ∧
((¬ informed(t1)(yt) ∧
choice2(t1)(yt,xt,pt)) ∨
(informed(t1)(yt) ∧
choice2(t2)(yt,xt,pt))))) ∧
(¬ Assign(t2)(xt,pt) ∨
¬ Assign(t2)(yt,pt) ∨
((informed(t1)(yt) ∨
¬ choice2(t1)(yt,xt,pt)) ∧
(¬ informed(t1)(yt) ∨
¬ choice2(t2)(yt,xt,pt))) ∨
(Assign(t1)(xt,pt) ∧
Assign(t1)(yt,pt) ∧
choice2(t1)(yt,xt,pt))) ∧
(¬ Conf(t1)(xt,pt) ∨
Conf(t2)(xt,pt)) ∧
(¬ Conf(t2)...(931 characters)"]
2 [label = "Node 2:
∀ xt:X,pt:P. ((Conf(t1)(xt,pt) ↔ eq()) ∧
(Assign(t1)(xt,pt) ↔ eq())) ∧
∀ xt:X,pt:P,rt:R,yt:X,p:P,r:R. ((¬ Assign(t1)(xt,pt) ∨
¬ O(t1)(xt,pt,rt) ∨
(Assign(t2)(xt,pt) ∧
((¬ Conf(t1)(xt,pt) ∧
O(t1)(xt,pt,rt)) ∨
(Conf(t1)(xt,pt) ∧
O(t2)(xt,pt,rt))))) ∧
(¬ Assign(t2)(xt,pt) ∨
((Conf(t1)(xt,pt) ∨
¬ O(t1)(xt,pt,rt)) ∧
(¬ Conf(t1)(xt,pt) ∨
¬ O(t2)(xt,pt,rt))) ∨
(Assign(t1)(xt,pt) ∧
O(t1)(xt,pt,rt))) ∧
(¬ Assign(t1)(xt,pt) ∨
¬ Assign(t1)(yt,pt) ∨
¬ choice2(t1)(yt,xt,pt) ∨
(Assign(t2)(yt,pt) ∧
((¬ informed(t1)(yt) ∧
(¬ Assign(t1)(yt,p) ∨
¬ O(t1)(yt,p,r) ∨
(Assign(t2)(yt,p) ∧
((¬ Conf(t1)(xt,p) ∧
O(t1)(yt,p,r)) ∨
(Conf(...(3237 characters)"]
1 [label = "Node 1:
∀ xt:X,pt:P. (Conf(t1)(xt,pt) ↔ eq()) ∧
∀ xt:X,pt:P,rt:R,yt:X,p:P,r:R. ((Conf(t1)(xt,pt) ∨
¬ choice1(t1)(xt,pt) ∨
Conf(t1)(yt,pt) ∨
¬ choice1(t1)(yt,pt) ∨
¬ choice2(t1)(yt,xt,pt) ∨
(¬ Conf(t2)(yt,pt) ∧
((¬ informed(t1)(yt) ∧
choice1(t1)(yt,pt)) ∨
(informed(t1)(yt) ∧
choice1(t2)(yt,pt))) ∧
((¬ informed(t1)(yt) ∧
(Conf(t1)(yt,p) ∨
¬ choice1(t1)(yt,p) ∨
¬ Conf(t2)(yt,p)) ∧
(Conf(t2)(yt,p) ∨
informed(t1)(yt) ∨
¬ choice1(t1)(yt,p) ∨
(¬ Conf(t1)(yt,p) ∧
choice1(t1)(yt,p))) ∧
(Conf(t1)(yt,p) ∨
¬ choice1(t1)(yt,p) ∨
¬ O(t1)(yt,p,r) ∨
(¬ Conf(t2)(yt,p) ∧
((¬ informed(t1)(yt) ∧
...(6044 characters)"]
4 -> 4 [label = "forall
", color = green]
2 -> 3 [label = "forall x:X,p:P,r:R
Assign(x,p) ∧ O(x,p,r) → Read += (x,p,r);", color = green]
3 -> 4 [label = "forall y:X,x:X,p:P may (Some(choice2))
Assign(x,p) ∧ Assign(y,p) → Comm += (x,y,p);", color = green]
}
\ No newline at end of file
digraph "Invariant Labelling" {
3 -> 4 [label = "forall y:X,x:X,p:P may (Some(choice2))
Assign(x,p) ∧ Assign(y,p) → Comm += (x,y,p);
forall x:X,y:X,p:P
¬ (Comm(t1)(x,y,p) ↔ Comm(t2)(x,y,p)) → informed += (x);", color = red]
2 -> 3 [label = "forall x:X,p:P,r:R may (Some(O))
Assign(x,p) → Read += (x,p,r);
forall x:X,p:P,r:R
¬ (Read(t1)(x,p,r) ↔ Read(t2)(x,p,r)) → informed += (x);", color = red]
0 -> 1 [label = "forall x:X,p:P may (Some(choice0))
True → Conf += (x,p);
forall x:X,p:P
¬ (Conf(t1)(x,p) ↔ Conf(t2)(x,p)) → informed += (x);", color = red]
4 [label = "Node 4:
4"]
1 -> 2 [label = "forall x:X,p:P may (Some(choice1))
¬ Conf(x,p) → Assign += (x,p);
forall x:X,p:P
¬ (Assign(t1)(x,p) ↔ Assign(t2)(x,p)) → informed += (x);", color = red]
4 -> 4 [label = "forall
", color = red]
2 [label = "Node 2:
2"]
1 [label = "Node 1:
1"]
0 [label = "Node 0:
0"]
3 [label = "Node 3:
3"]
}
\ No newline at end of file
Node 0:
True
Node 5:
∀ xat:A,xbt:A,pt:P,rt:R. ((Read(t1)(xat,xbt,pt,rt) ↔ eq()) ∧
(Assign(t1)(xat,pt) ∨
Read(t1)(xat,xbt,pt,rt) ∨
¬ Assign(t2)(xat,pt) ∨
¬ Assign(t2)(xbt,pt)) ∧
(Assign(t1)(xat,pt) ∨
Read(t1)(xat,xbt,pt,rt) ∨
¬ Assign(t2)(xat,pt) ∨
¬ Review(t2)(xbt,pt,rt)) ∧
(Assign(t1)(xat,pt) ∨
Read(t1)(xat,xbt,pt,rt) ∨
¬ Read(t2)(xat,xbt,pt,rt)) ∧
(Assign(t1)(xbt,pt) ∨
Read(t1)(xat,xbt,pt,rt) ∨
Review(t1)(xbt,pt,rt) ∨
¬ Assign(t2)(xat,pt) ∨
¬ Assign(t2)(xbt,pt)) ∧
(Assign(t1)(xbt,pt) ∨
Read(t1)(xat,xbt,pt,rt) ∨
Review(t1)(xbt,pt,rt) ∨
¬ Assign(t2)(xat,pt) ∨
¬ Review(t2)(xbt,pt,rt)) ∧
(Assign(t1)(xbt,pt) ∨
Read(t1)(xat,xbt,pt,rt) ∨
Review(t1)(xbt,pt,rt) ∨
¬ Read(t2)(xat,xbt,pt,rt)) ∧
(Assign(t2)(xat,pt) ∨
Read(t2)(xat,xbt,pt,rt) ∨
¬ Assign(t1)(xat,pt) ∨
¬ Assign(t1)(xbt,pt)) ∧
(Assign(t2)(xat,pt) ∨
Read(t2)(xat,xbt,pt,rt) ∨
¬ Assign(t1)(xat,pt) ∨
¬ Review(t1)(xbt,pt,rt)) ∧
(Assign(t2)(xat,pt) ∨
Read(t2)(xat,xbt,pt,rt) ∨
¬ Read(t1)(xat,xbt,pt,rt)) ∧
(Assign(t2)(xbt,pt) ∨
Read(t2)(xat,xbt,pt,rt) ∨
Review(t2)(xbt,pt,rt) ∨
¬ Assign(t1)(xat,pt) ∨
¬ Assign(t1)(xbt,pt)) ∧
(Assign(t2)(xbt,pt) ∨
Read(t2)(xat,xbt,pt,rt) ∨
Review(t2)(xbt,pt,rt) ∨
¬ Assign(t1)(xat,pt) ∨
¬ Review(t1)(xbt,pt,rt)) ∧
(Assign(t2)(xbt,pt) ∨
Read(t2)(xat,xbt,pt,rt) ∨
Review(t2)(xbt,pt,rt) ∨
¬ Read(t1)(xat,xbt,pt,rt)))
Node 1:
∀ xat:A,xbt:A,pt:P,rt:R. ((Conf(t2)(xat,pt) ∨
Conf(t2)(xbt,pt) ∨
¬ Conf(t1)(xbt,pt)) ∧
(Conf(t2)(xat,pt) ∨
Conf(t2)(xbt,pt) ∨
¬ Conf(t1)(xat,pt) ∨
¬ Oracle(t2)(xbt,pt,rt)) ∧
(Conf(t1)(xat,pt) ∨
Conf(t1)(xbt,pt) ∨
Oracle(t1)(xbt,pt,rt) ∨
Oracle(t2)(xbt,pt,rt) ∨
¬ Conf(t2)(xat,pt) ∨
¬ Conf(t2)(xbt,pt)))
Node 2:
∀ xat:A,xbt:A,pt:P,rt:R. ((¬ Assign(t1)(xat,pt) ∨
¬ Assign(t1)(xbt,pt) ∨
¬ Oracle(t1)(xbt,pt,rt) ∨
(¬ Conf(t1)(xat,pt) ∧
Oracle(t1)(xbt,pt,rt)) ∨
(Conf(t1)(xat,pt) ∧
Oracle(t2)(xbt,pt,rt))) ∧
(¬ Assign(t2)(xat,pt) ∨
¬ Assign(t2)(xbt,pt) ∨
((Conf(t1)(xat,pt) ∨
¬ Oracle(t1)(xbt,pt,rt)) ∧
(¬ Conf(t1)(xat,pt) ∨
¬ Oracle(t2)(xbt,pt,rt))) ∨
(Assign(t1)(xat,pt) ∧
Assign(t1)(xbt,pt) ∧
((¬ Conf(t1)(xat,pt) ∧
Oracle(t1)(xbt,pt,rt)) ∨
(Conf(t1)(xat,pt) ∧
Oracle(t1)(xbt,pt,rt))))) ∧
(Assign(t1)(xat,pt) ∨
¬ Assign(t2)(xat,pt) ∨
¬ Assign(t2)(xbt,pt)) ∧
(Assign(t1)(xbt,pt) ∨
(Assign(t1)(xat,pt) ∧
Assign(t1)(xbt,pt) ∧
((¬ Conf(t1)(xat,pt) ∧
Oracle(t1)(xbt,pt,rt)) ∨
(Conf(t1)(xat,pt) ∧
Oracle(t1)(xbt,pt,rt)))) ∨
¬ Assign(t2)(xat,pt) ∨
¬ Assign(t2)(xbt,pt)) ∧
(Assign(t2)(xat,pt) ∨
¬ Assign(t1)(xat,pt) ∨
¬ Assign(t1)(xbt,pt)) ∧
(Assign(t2)(xbt,pt) ∨
(Assign(t2)(xat,pt) ∧
Assign(t2)(xbt,pt) ∧
((¬ Conf(t1)(xat,pt) ∧
Oracle(t1)(xbt,pt,rt)) ∨
(Conf(t1)(xat,pt) ∧
Oracle(t2)(xbt,pt,rt)))) ∨
(Assign(t2)(xbt,pt) ∧
((¬ Conf(t1)(xat,pt) ∧
Oracle(t1)(xbt,pt,rt)) ∨
(Conf(t1)(xat,pt) ∧
Oracle(t2)(xbt,pt,rt)))) ∨
¬ Assign(t1)(xat,pt) ∨
¬ Assign(t1)(xbt,pt)))
Node 3:
∀ xat:A,xbt:A,pt:P,rt:R. ((Read(t1)(xat,xbt,pt,rt) ↔ eq()) ∧
((¬ Read(t1)(xat,xbt,pt,rt) ∧
(¬ Assign(t1)(xat,pt) ∨
¬ Review(t1)(xbt,pt,rt))) ∨
Read(t2)(xat,xbt,pt,rt) ∨
(Assign(t2)(xat,pt) ∧
Review(t2)(xbt,pt,rt))) ∧
((¬ Read(t2)(xat,xbt,pt,rt) ∧
(¬ Assign(t2)(xat,pt) ∨
¬ Review(t2)(xbt,pt,rt))) ∨
Read(t1)(xat,xbt,pt,rt) ∨
(Assign(t1)(xat,pt) ∧
Review(t1)(xbt,pt,rt))) ∧
((¬ Read(t1)(xat,xbt,pt,rt) ∧
(¬ Assign(t1)(xat,pt) ∨
¬ Review(t1)(xbt,pt,rt))) ∨
Read(t2)(xat,xbt,pt,rt) ∨
Review(t2)(xbt,pt,rt)) ∧
((¬ Read(t2)(xat,xbt,pt,rt) ∧
(¬ Assign(t2)(xat,pt) ∨
¬ Review(t2)(xbt,pt,rt))) ∨
Read(t1)(xat,xbt,pt,rt) ∨
(Assign(t1)(xat,pt) ∧
Review(t1)(xbt,pt,rt))) ∧
(Assign(t1)(xat,pt) ∨
Read(t1)(xat,xbt,pt,rt) ∨
(Assign(t1)(xat,pt) ∧
Review(t1)(xbt,pt,rt)) ∨
¬ Assign(t2)(xat,pt) ∨
¬ Assign(t2)(xbt,pt)) ∧
(Assign(t1)(xbt,pt) ∨
Read(t1)(xat,xbt,pt,rt) ∨
(Assign(t1)(xat,pt) ∧
Review(t1)(xbt,pt,rt)) ∨
Review(t1)(xbt,pt,rt) ∨
¬ Assign(t2)(xat,pt) ∨
¬ Assign(t2)(xbt,pt)) ∧
(Assign(t2)(xat,pt) ∨
Read(t2)(xat,xbt,pt,rt) ∨
(Assign(t2)(xat,pt) ∧
Review(t2)(xbt,pt,rt)) ∨
¬ Assign(t1)(xat,pt) ∨
¬ Assign(t1)(xbt,pt)) ∧
(Assign(t2)(xat,pt) ∨
Read(t2)(xat,xbt,pt,rt) ∨
(Assign(t2)(xat,pt) ∧
Review(t2)(xbt,pt,rt)) ∨
(¬ Read(t1)(xat,xbt,pt,rt) ∧
(¬ Assign(t1)(xat,pt) ∨
¬ Review(t1)(xbt,pt,rt)))) ∧
(Assign(t2)(xbt,pt) ∨
Read(t2)(xat,xbt,pt,rt) ∨
(Assign(t2)(xat,pt) ∧
Review(t2)(xbt,pt,rt)) ∨
Review(t2)(xbt,pt,rt) ∨
¬ Assign(t1)(xat,pt) ∨
¬ Assign(t1)(xbt,pt)))
Node 4:
∀ xat:A,xbt:A,pt:P,rt:R. (Read(t1)(xat,xbt,pt,rt) ↔ eq())
Name: nonomitting/conference_stubborn
Description: alleq
Invariant: ∀ xat:A,xbt:A,pt:P,rt:R. (Read(t1)(xat,xbt,pt,rt) ↔ Read(t2)(xat,xbt,pt,rt))
Model: stubborn
Result: inductive
WF size: 6
Time: 1694 ms
Proof steps: 11
Strengthenings: 5
Largest Inv: 139
Average Inv: 69
\ No newline at end of file
digraph "Invariant Labelling" {
3 [label = "Node 3:
∀ xat:A,xbt:A,pt:P,rt:R. (Read(t1)(xat,xbt,pt,rt) ↔ eq())"]
0 [label = "Node 0:
True"]
3 -> 5 [label = "forall xa:A,xb:A,p:P,r:R
Assign(xa,p) ∧ Review(xb,p,r) → Read += (xa,xb,p,r);", color = red]
3 -> 4 [label = "forall
", color = red]
2 -> 3 [label = "forall x:A,p:P,r:R
Assign(x,p) ∧ Oracle(x,p,r) → Review += (x,p,r);", color = red]
4 [label = "Node 4:
∀ xat:A,xbt:A,pt:P,rt:R. (Read(t1)(xat,xbt,pt,rt) ↔ eq())"]
5 -> 3 [label = "forall x:A,p:P,r:R may (Some(choice2))
Assign(x,p) → Review += (x,p,r);", color = red]
1 -> 2 [label = "forall x:A,p:P may (Some(choice1))
¬ Conf(x,p) → Assign += (x,p);", color = red]
0 -> 1 [label = "forall x:A,p:P may (Some(choice0))
True → Conf += (x,p);", color = red]
1 [label = "Node 1:
True"]
4 -> 4 [label = "forall
", color = red]
2 [label = "Node 2:
True"]
5 [label = "Node 5:
∀ xat:A,xbt:A,pt:P,rt:R. (Read(t1)(xat,xbt,pt,rt) ↔ eq())"]
}
\ No newline at end of file
digraph "Invariant Labelling" {
3 [label = "Node 3:
∀ xat:A,xbt:A,pt:P,rt:R. (Read(t1)(xat,xbt,pt,rt) ↔ eq())"]
0 [label = "Node 0:
True"]
5 -> 3 [label = "forall x:A,p:P,r:R may (Some(choice2))
Assign(x,p) → Review += (x,p,r);", color = green]
3 -> 5 [label = "forall xa:A,xb:A,p:P,r:R
Assign(xa,p) ∧ Review(xb,p,r) → Read += (xa,xb,p,r);", color = red]
3 -> 4 [label = "forall
", color = red]
2 -> 3 [label = "forall x:A,p:P,r:R
Assign(x,p) ∧ Oracle(x,p,r) → Review += (x,p,r);", color = red]
4 [label = "Node 4:
∀ xat:A,xbt:A,pt:P,rt:R. (Read(t1)(xat,xbt,pt,rt) ↔ eq())"]
1 -> 2 [label = "forall x:A,p:P may (Some(choice1))
¬ Conf(x,p) → Assign += (x,p);", color = red]
0 -> 1 [label = "forall x:A,p:P may (Some(choice0))
True → Conf += (x,p);", color = red]
1 [label = "Node 1:
True"]
4 -> 4 [label = "forall
", color = red]
2 [label = "Node 2:
True"]
5 [label = "Node 5:
∀ xat:A,xbt:A,pt:P,rt:R. (Read(t1)(xat,xbt,pt,rt) ↔ eq())"]
}
\ No newline at end of file
digraph "Invariant Labelling" {
1 [label = "Node 1:
∀ xat:A,xbt:A,pt:P,rt:R. ((Conf(t2)(xat,pt) ∨
Conf(t2)(xbt,pt) ∨
¬ Conf(t1)(xbt,pt)) ∧
(Conf(t2)(xat,pt) ∨
Conf(t2)(xbt,pt) ∨
¬ Conf(t1)(xat,pt) ∨
¬ Oracle(t2)(xbt,pt,rt)) ∧
(Conf(t1)(xat,pt) ∨
Conf(t1)(xbt,pt) ∨
Oracle(t1)(xbt,pt,rt) ∨
Oracle(t2)(xbt,pt,rt) ∨
¬ Conf(t2)(xat,pt) ∨
¬ Conf(t2)(xbt,pt)))"]
1 -> 2 [label = "forall x:A,p:P may (Some(choice1))
¬ Conf(x,p) → Assign += (x,p);", color = green]
0 [label = "Node 0:
True"]
5 -> 3 [label = "forall x:A,p:P,r:R may (Some(choice2))
Assign(x,p) → Review += (x,p,r);", color = green]
4 [label = "Node 4:
∀ xat:A,xbt:A,pt:P,rt:R. (Read(t1)(xat,xbt,pt,rt) ↔ eq())"]
2 -> 3 [label = "forall x:A,p:P,r:R
Assign(x,p) ∧ Oracle(x,p,r) → Review += (x,p,r);", color = green]
3 [label = "Node 3:
∀ xat:A,xbt:A,pt:P,rt:R. ((Read(t1)(xat,xbt,pt,rt) ↔ eq()) ∧
((¬ Read(t1)(xat,xbt,pt,rt) ∧
(¬ Assign(t1)(xat,pt) ∨
¬ Review(t1)(xbt,pt,rt))) ∨
Read(t2)(xat,xbt,pt,rt) ∨
(Assign(t2)(xat,pt) ∧
Review(t2)(xbt,pt,rt))) ∧
((¬ Read(t2)(xat,xbt,pt,rt) ∧
(¬ Assign(t2)(xat,pt) ∨
¬ Review(t2)(xbt,pt,rt))) ∨
Read(t1)(xat,xbt,pt,rt) ∨
(Assign(t1)(xat,pt) ∧
Review(t1)(xbt,pt,rt))) ∧
((¬ Read(t1)(xat,xbt,pt,rt) ∧
(¬ Assign(t1)(xat,pt) ∨
¬ Review(t1)(xbt,pt,rt))) ∨
Read(t2)(xat,xbt,pt,rt) ∨
Review(t2)(xbt,pt,rt)) ∧
((¬ Read(t2)(xat,xbt,pt,rt) ∧
(¬ Assign(t2)(xat,pt) ∨
¬ Review(t2)(xbt,pt,rt))) ∨
Read(t1)(xat,xbt,pt,rt) ∨
(Assign(t1)(xat,pt) ∧
Review(t1)(xbt,pt,rt))) ∧
(Assign(t1)(xat,pt) ∨
...(1705 characters)"]
0 -> 1 [label = "forall x:A,p:P may (Some(choice0))
True → Conf += (x,p);", color = green]
2 [label = "Node 2:
∀ xat:A,xbt:A,pt:P,rt:R. ((¬ Assign(t1)(xat,pt) ∨
¬ Assign(t1)(xbt,pt) ∨
¬ Oracle(t1)(xbt,pt,rt) ∨
(¬ Conf(t1)(xat,pt) ∧
Oracle(t1)(xbt,pt,rt)) ∨
(Conf(t1)(xat,pt) ∧
Oracle(t2)(xbt,pt,rt))) ∧
(¬ Assign(t2)(xat,pt) ∨
¬ Assign(t2)(xbt,pt) ∨
((Conf(t1)(xat,pt) ∨
¬ Oracle(t1)(xbt,pt,rt)) ∧
(¬ Conf(t1)(xat,pt) ∨
¬ Oracle(t2)(xbt,pt,rt))) ∨
(Assign(t1)(xat,pt) ∧
Assign(t1)(xbt,pt) ∧
((¬ Conf(t1)(xat,pt) ∧
Oracle(t1)(xbt,pt,rt)) ∨
(Conf(t1)(xat,pt) ∧
Oracle(t1)(xbt,pt,rt))))) ∧
(Assign(t1)(xat,pt) ∨
¬ Assign(t2)(xat,pt) ∨
¬ Assign(t2)(xbt,pt)) ∧
(Assign(t1)(xbt,pt) ∨
(Assign(t1)(xat,pt) ∧
Assign(t1)(xbt,pt) ∧
((¬ Conf(t1)(xat,pt) ∧
Oracle(t1)(xbt,pt,rt)) ∨
...(1413 characters)"]
5 [label = "Node 5:
∀ xat:A,xbt:A,pt:P,rt:R. ((Read(t1)(xat,xbt,pt,rt) ↔ eq()) ∧
(Assign(t1)(xat,pt) ∨
Read(t1)(xat,xbt,pt,rt) ∨
¬ Assign(t2)(xat,pt) ∨
¬ Assign(t2)(xbt,pt)) ∧
(Assign(t1)(xat,pt) ∨
Read(t1)(xat,xbt,pt,rt) ∨
¬ Assign(t2)(xat,pt) ∨
¬ Review(t2)(xbt,pt,rt)) ∧
(Assign(t1)(xat,pt) ∨
Read(t1)(xat,xbt,pt,rt) ∨
¬ Read(t2)(xat,xbt,pt,rt)) ∧
(Assign(t1)(xbt,pt) ∨
Read(t1)(xat,xbt,pt,rt) ∨
Review(t1)(xbt,pt,rt) ∨
¬ Assign(t2)(xat,pt) ∨
¬ Assign(t2)(xbt,pt)) ∧
(Assign(t1)(xbt,pt) ∨
Read(t1)(xat,xbt,pt,rt) ∨
Review(t1)(xbt,pt,rt) ∨
¬ Assign(t2)(xat,pt) ∨
¬ Review(t2)(xbt,pt,rt)) ∧
(Assign(t1)(xbt,pt) ∨