Faulty channels 2
 
 
správa je stratená, ak sender zapíše do x prv, nez to receiver precítal
správa je zduplikovaná, ak receiver znova cíta x bez toho, ze by sa medzitým obsah x zmenil
podobne platí strata/duplikovanie pre y
predpokladáme, ze sender posiela postupnost 1, 2, 3… (teda správy ocíslujeme a namiesto správ posielame len ich císla)
nech
	ks – posledné císlo poslané senderom
	kr – posledné císlo prijaté receiverom
initially ks = 1 ? kr = 0
invariant kr ? ks	{prijíma sa len to, co bolo poslané}
kr = n ? kr = n + 1 	{nakoniec sa prijmú všetky správy}
pozadovaný program musí splnat túto špecifikáciu a naviac jeho príkazy sa dajú rozdelit do dvoch skupín (pre sender a receiver):
- ks vie cítat a písat len sender		(sRW)
 - kr vie cítat a písat len receiver		(rRW)
 - x, y sa môzu vyskytovat v oboch skupinách
 - do x vie priradovat len sender
 - do y vie priradovat len receiver