Almost-sure consensus from graph propagation #
theorem
Voter.iterate_survival
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(K : Dynamics.Kernel (Config V Bool))
(n : ℕ)
(s : Config V Bool)
:
Finite-time nonconsensus as an event.
theorem
Voter.transition_constant
{V : Type u_1}
[Fintype V]
[DecidableEq V]
{C : Type u_2}
[Fintype C]
(H : Dynamics.Kernel V)
(c : C)
(f : Config V C → ℝ)
:
Consensus configurations are absorbing.
theorem
Voter.survival_step
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(H : Dynamics.Kernel V)
(s : Config V Bool)
:
theorem
Voter.possible_positive
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
(H : Dynamics.Kernel V)
(hsupport : ∀ (i j : V), G.Adj i j → 0 < (H i).weight j)
{s t : Config V Bool}
(h : Possible G s t)
:
Every graph-allowed round has positive probability.
theorem
Voter.reachable_success
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
(H : Dynamics.Kernel V)
(hsupport : ∀ (i j : V), G.Adj i j → 0 < (H i).weight j)
{s : Config V Bool}
{c : Bool}
(h : Relation.ReflTransGen (Possible G) s fun (x : V) => c)
:
∃ (n : ℕ), (transition H).iterate n survival s < 1
theorem
Voter.consensus_tendsto
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
(hc : G.Connected)
(hn : ¬G.Colorable 2)
(H : Dynamics.Kernel V)
(hsupport : ∀ (i j : V), G.Adj i j → 0 < (H i).weight j)
(s : Config V Bool)
:
Filter.Tendsto (fun (n : ℕ) => (transition H).iterate n survival s) Filter.atTop (nhds 0)
Nonconsensus probability tends to zero (Lemma 2.1).