Newman lema (véase también la Confluencia) establece que una reescritura del sistema es confluente si se está terminando y localmente confluentes. Voy a aplicar esto a mi pregunta.
Deje w s ser como en mi pregunta, y deje q(v) el número de incrementos debido en v ("cola").
El siguiente vuelve a escribir, a continuación, se permitirá por ningún v:
- q(v)←q(v)−1 si s(v)=outbreak q(v)>0
- w(v)←w(v)+1 q(v)←q(v)−1 si q(v)>0 w(v)<3 s(v)=no outbreak
- s(v)←outbreak q(v)←q(v)−1 ∀(v,u)∈E:q(u)←q(u)+1 si q(v)>0 w(v)=3 s(v)=no outbreak.
(Tenga en cuenta que al aplicar las reglas de la Pandemia, s(v) es inicialmente no outbreak q(v) 0 todos los v. No creo que esto es importante para la prueba.)
Para mostrar que esto se está terminando, considerar como una función de terminación de t(s,w,s)=(|s−1(no outbreak)|,Σv∈V(3−w(v)),Σv∈Vq(v)), es decir, un triple de 1. el número de verticies no en el brote de estado; 2. la capacidad en cada vértice para la absorción de aumentos sin romper; 3. el número de debido aumenta. (Los triples son ordenados lexicográficamente).
La primera regla reduce el tercer componente sin el aumento de cualquier otro. La segunda regla de baja el segundo componente sin el aumento de la primera. La tercera de las reglas disminuye el primero. Por lo tanto, la aplicación de cualquier regla conduce a una lexicográficamente menor valor de la triple a, y por lo tanto, la reescritura de proceso termina. (finalmente, la tercera no disminuya aún más, al punto que el segundo disminuye al menos una vez y la tercera toma cualquier valor; se repite, por lo tanto la segunda, eventualmente puede disminuir aún más, etc.).
A continuación, la confluencia, la definición de lo que es la "si a→b a→c ∃d tal que b→∗dc→∗d", es decir, si puedo tomar el sistema de dos estados diferentes en un solo volver a escribir, no es un estado que se puede acceder desde cada una de las b c (con cero o más vuelve a escribir).
Tenga en cuenta que en mi sistema, el estado no permite la reescritura en v con más de una regla-es decir, nunca hay dos condiciones de satisfacción al mismo tiempo; el solo paso de reescritura es determinista en cada vértice. Por lo tanto, si puedo volver a escribir a dos estados diferentes, debe ser por el aumento en dos diferentes vértices vu.
Voy a demostrar que increase(v) then increase(u) lleva al mismo estado como increase(u) then increase(v) todos los uv.
Tenga en cuenta que las dos primeras reglas de reescritura sólo la actualización de q w en el vértice, siendo mayor. Por lo tanto, si la tercera regla se aplica a los ni u ni v luego de la reescritura en u v lleva al mismo estado, no importa el orden de las reescrituras. (Programadores: cuenta de la similitud con la (ausencia de) carreras de datos.)
Para asumir la tercera regla se aplica a v.
Si la tercera regla no se aplica a u u no es un vecino de v, una vez más, no la superposición de piezas de (q,w,s) están siendo reescritos, y se puede hacer pedido de forma independiente.
Si la tercera regla no se aplica a u u es un vecino de v, q(u) se incrementa en 1 (regla de 1 a v) y la disminución de la 1 (la regla 1 o 2 en u), que claramente desplazamientos; cualquier otro reescribe son que no se superponen.
Así que el último caso: la regla 3 se aplica tanto a uv.
Si no son los vecinos y no tienen compartido vecinos, una vez más, no la superposición de piezas de q, w y s son reescritos, que conmutan.
Si no son los vecinos, pero han mutuo vecinos, xi algunos i, entonces cada una de las q(xi) es dos veces mayor en 1; estas dos operaciones claramente viaje.
Si u v son vecinos y también han mutuo vecinos:
- q(u) q(v) son tanto el aumento y la disminución, la que viajes.
- q(xi) es el aumento de dos veces para cada vecino xi, que los desplazamientos.
- todos los otros cambios que no se superponen.
Q. E. D.
Comentario: he visto que el ({0,…,3},≥) ({no outbreak,outbreak},(x↦outbreak)) son semilattices. Un par de (número de aumento-por-1 operaciones, el número de disminución-por-1 operaciones) con pares de la suma como la combinación también forma un semilattice con un extraño pedido. En el lenguaje de CRDTs, estos son dos de incremento de sólo (limitado) de los contadores y un PN contador. Dado que Newman lema habla de combinaciones, creo que esto puede haber ayudado a evitar algunos de la complejidad. Trabajando en algunas de estructura de datos en un semilattice sugiere que es posible que desee buscar en la unión de los dos estados sucesores de a, pero no automáticamente probar esta d a ser accesible a través de su conjunto de reglas de reescritura. Supongo que si hay una reescritura a partir de cada elemento para cada elemento superior de la prueba es trivial.