At: strong switch inv decomposable 1 2 1 1 2 2 1 2 1 1 1 1 1 2 1 2 1 2 1 1 1
1. E: TaggedEventStruct
2. tr: |E| List
3. ...
4.
i:
(||tr||-1).
(is-send(E)(tr[i]) 
is-send(E)(tr[(i+1)]) 
(tr[i] =msg=(E) tr[(i+1)]))
& ((
x,y:
||tr||.
x < y
& is-send(E)(tr[x])
& is-send(E)(tr[y])
& tr[x] delivered at time i+1
& tr[y] delivered at time i)

loc(E)(tr[i]) = loc(E)(tr[(i+1)]))
5.
i,j:
||tr||.
is-send(E)(tr[i]) 
is-send(E)(tr[j]) 
(tr[j] =msg=(E) tr[i]) 
loc(E)(tr[i]) = loc(E)(tr[j]) 
i = j
6.
tr = nil
7. ls:
||tr||
8. is-send(E)(tr[ls])
9. ...
10. ...
11. EquivRel(|E|)(_1 =msg=(E) _2)
12. ...
13. d: 
14. 0 < d
15. ...
16. i:
||tr||
17. j:
||tr||
18. d = j-i
19. i (switchR(tr)^*) ls
20. i
j
21. is-send(E)(tr[i])
22.
is-send(E)(tr[j])
23. i
j-1
24.
is-send(E)(tr[(j-1)])
25. k:
||tr||
26. k (switchR(tr)^*) ls
27. tr[k] =msg=(E) tr[(j-1)]
28. j@0:
||tr||
29. j@0
j
30. is-send(E)(tr[j@0])
31. tr[j@0] =msg=(E) tr[j]
32. j@0 < k
33. k':
||tr||
34. tr[j@0] =msg=(E) tr[k']
35.
is-send(E)(tr[k'])
36. loc(E)(tr[k']) = loc(E)(tr[(j-1)])
37.
j-1
k'
is-send(E)(tr[k])
By:
AllHyps (Unfold `hide`)
THEN
EasyHyp
Generated subgoals:None
About: