Domination of an inner wired FK measure by an outer one
A.1. Inner edges
DefinitionInner vertex of the outer graph#✓fully proved
A vertex of G_out is inner if it lies in the image of ι.
def ocd_IsInnerVert (v : Vout) : Prop := ∃ x : Vin, ιV x = v
Used by 8
DefinitionImage of an inner-graph edge in the outer graph#✓fully proved
The image in G_out of an edge of G_in under ι.
Used by 37
LemmaInjectivity of the edge map#✓fully proved
The edge map Sym2.map ι is injective when ι is.
lemma ocd_innerEdge_injective (hι : Function.Injective ιV) :
Function.Injective (ocd_innerEdge ιV)
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
Uses 1 · Used by 2
LemmaEdge map sends \(\{x, y\}\) to \(\{\iota x, \iota y\}\)#✓fully proved
The image of the edge {x, y} is {ι x, ι y}.
lemma ocd_innerEdge_mk (x y : Vin) :
ocd_innerEdge ιV s(x, y) = s(ιV x, ιV y)
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
Uses 1 · Used by 5
DefinitionAdjacency matching of the inner embedding#✓fully proved
The map ι matches adjacency: x ~ y in G_in iff ι x ~ ι y in G_out.
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
Used by 28
A.2. Gluing configurations
DefinitionGluing of inner and outer configurations#✓fully proved
The configuration on G_out that equals the inner configuration ω on inner edges and the
outer configuration ψ elsewhere.
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
Uses 2 · Used by 28
DefinitionRestriction of an outer configuration to inner edges#✓fully proved
The restriction of a configuration on G_out to the edges of G_in, read through ι.
noncomputable def ocd_innerRestrict (ρ : ConfigSpace (Sym2 Vout)) : ConfigSpace (Sym2 Vin) :=
fun e => ρ (ocd_innerEdge ιV e)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
Uses 2 · Used by 15
DefinitionFinite set of inner edges#✓fully proved
The finite set of inner edges of G_out.
noncomputable def ocd_innerEdgeFinset : Finset (Sym2 Vout) :=
Finset.univ.image (ocd_innerEdge ιV)
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
Uses 1 · Used by 17
LemmaInner edge set is the range of the edge map#✓fully proved
Membership in the inner edge set is membership in the image of the edge map.
lemma ocd_mem_innerEdgeFinset {e : Sym2 Vout} :
e ∈ ocd_innerEdgeFinset (Vin := Vin) ιV ↔ e ∈ Set.range (ocd_innerEdge ιV)
noncomputable def ocd_innerEdgeFinset : Finset (Sym2 Vout) :=
Finset.univ.image (ocd_innerEdge ιV)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:128
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
Uses 2 · Used by 4
LemmaGlued configuration takes the inner value on inner edges#✓fully proved
The glued configuration takes the inner value on inner edges.
lemma ocd_psiExt_innerEdge (hι : Function.Injective ιV) (ψ : ConfigSpace (Sym2 Vout))
(ω : ConfigSpace (Sym2 Vin)) (e : Sym2 Vin) :
ocd_psiExt ιV ψ ω (ocd_innerEdge ιV e) = ω e
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
Uses 4 · Used by 6
LemmaGlued configuration equals the outer one at each non-inner edge#✓fully proved
The glued configuration takes the outer value off the inner edges.
lemma ocd_psiExt_eq_psi_of_not_range (ψ : ConfigSpace (Sym2 Vout))
(ω : ConfigSpace (Sym2 Vin)) {e : Sym2 Vout}
(he : e ∉ Set.range (ocd_innerEdge ιV)) : ocd_psiExt ιV ψ ω e = ψ e
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
Uses 3 · Used by 5
LemmaGlued value on \(\{\iota x, \iota y\}\) is the inner value on \(\{x, y\}\)#✓fully proved
The glued configuration on {ι x, ι y} is the inner value on {x, y}.
lemma ocd_psiExt_innerEdge_pair (hι : Function.Injective ιV) (ψ : ConfigSpace (Sym2 Vout))
(ω : ConfigSpace (Sym2 Vin)) (x y : Vin) :
ocd_psiExt ιV ψ ω s(ιV x, ιV y) = ω s(x, y)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
LemmaRestricting a glued configuration recovers the inner one#✓fully proved
Restricting a glued configuration recovers the inner configuration.
@[simp] lemma ocd_innerRestrict_psiExt (hι : Function.Injective ιV) (ψ : ConfigSpace (Sym2 Vout))
(ω : ConfigSpace (Sym2 Vin)) : ocd_innerRestrict ιV (ocd_psiExt ιV ψ ω) = ω
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_innerRestrict (ρ : ConfigSpace (Sym2 Vout)) : ConfigSpace (Sym2 Vin) :=
fun e => ρ (ocd_innerEdge ιV e)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:124
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
Uses 5 · Used by 7
LemmaGlued configuration agrees with the outer one off the inner edge set#✓fully proved
A glued configuration agrees with the outer configuration off the inner edges.
lemma ocd_agreesOff_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
AgreesOff (ocd_innerEdgeFinset (Vin := Vin) ιV) ψ (ocd_psiExt ιV ψ ω)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def AgreesOff (F : Finset (Sym2 V)) (ψ : ConfigSpace (Sym2 V)) :
ConfigSpace (Sym2 V) → Prop :=
fun ω => ∀ e, e ∉ F → ω e = ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/DomainMarkov.lean:58
noncomputable def ocd_innerEdgeFinset : Finset (Sym2 Vout) :=
Finset.univ.image (ocd_innerEdge ιV)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:128
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
Uses 7 · Used by 2
LemmaAgreeing configuration is the gluing of its own restriction#✓fully proved
A configuration that agrees with ψ off the inner edges is the gluing of ψ with its own
restriction.
lemma ocd_psiExt_innerRestrict_of_agreesOff (hι : Function.Injective ιV)
{ψ ρ : ConfigSpace (Sym2 Vout)}
(hρ : AgreesOff (ocd_innerEdgeFinset (Vin := Vin) ιV) ψ ρ) :
ocd_psiExt ιV ψ (ocd_innerRestrict ιV ρ) = ρ
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def AgreesOff (F : Finset (Sym2 V)) (ψ : ConfigSpace (Sym2 V)) :
ConfigSpace (Sym2 V) → Prop :=
fun ω => ∀ e, e ∉ F → ω e = ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/DomainMarkov.lean:58
noncomputable def ocd_innerEdgeFinset : Finset (Sym2 Vout) :=
Finset.univ.image (ocd_innerEdge ιV)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:128
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
noncomputable def ocd_innerRestrict (ρ : ConfigSpace (Sym2 Vout)) : ConfigSpace (Sym2 Vin) :=
fun e => ρ (ocd_innerEdge ιV e)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:124
Uses 7 · Used by 1
LemmaConditioning fibre is the set of gluings#✓fully proved
The configurations agreeing with ψ off the inner edges are exactly the gluings of ψ with
inner configurations.
lemma ocd_condFibre_eq_image_psiExt (hι : Function.Injective ιV) (ψ : ConfigSpace (Sym2 Vout)) :
condFibre (ocd_innerEdgeFinset (Vin := Vin) ιV) ψ
= Finset.univ.image (ocd_psiExt ιV ψ)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def condFibre (F : Finset (Sym2 V)) (ψ : ConfigSpace (Sym2 V)) :
Finset (ConfigSpace (Sym2 V)) :=
Finset.univ.filter (AgreesOff F ψ)
PhyslibExt/StatisticalMechanics/RandomCluster/DomainMarkov.lean:85
noncomputable def ocd_innerEdgeFinset : Finset (Sym2 Vout) :=
Finset.univ.image (ocd_innerEdge ιV)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:128
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
Uses 8 · Used by 2
B.1. Definitions
DefinitionGraph of open non-inner edges#✓fully proved
The graph of ψ-open edges of G_out that are not inner edges.
noncomputable def ocd_outsideOpenGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout where
Adj x y := Gout.Adj x y ∧ ψ s(x, y) = true ∧ s(x, y) ∉ Set.range (ocd_innerEdge ιV)
symm := by
refine ⟨?_⟩
rintro x y ⟨hadj, hopen, hrange⟩
refine ⟨hadj.symm, ?_, ?_⟩ <;> rw [Sym2.eq_swap] <;> assumption
loopless := ⟨by rintro x ⟨hadj, _, _⟩; exact hadj.ne rfl⟩
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
Uses 2 · Used by 4
DefinitionOutside graph with the wired boundary clique#✓fully proved
The outside graph: ψ-open non-inner edges together with the clique on the wired boundary
∂_out.
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_outsideOpenGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout where
Adj x y := Gout.Adj x y ∧ ψ s(x, y) = true ∧ s(x, y) ∉ Set.range (ocd_innerEdge ιV)
symm := by
refine ⟨?_⟩
rintro x y ⟨hadj, hopen, hrange⟩
refine ⟨hadj.symm, ?_, ?_⟩ <;> rw [Sym2.eq_swap] <;> assumption
loopless := ⟨by rintro x ⟨hadj, _, _⟩; exact hadj.ne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:216
def boundaryCliqueGraph : SimpleGraph V := SimpleGraph.fromRel (wireRel bdry)
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:121
Uses 3 · Used by 23
LemmaOutside-graph adjacency: open non-inner edge or boundary pair#✓fully proved
Adjacency in the outside graph.
lemma ocd_outsideGraph_adj (ψ : ConfigSpace (Sym2 Vout)) (x y : Vout) :
(ocd_outsideGraph Gout ιV bdryOut ψ).Adj x y
↔ (Gout.Adj x y ∧ ψ s(x, y) = true ∧ s(x, y) ∉ Set.range (ocd_innerEdge ιV))
∨ (x ≠ y ∧ bdryOut x ∧ bdryOut y)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
DefinitionWiring induced on the inner graph#✓fully proved
The wiring induced on G_in by ψ: distinct inner vertices are adjacent when their images
are joined in the outside graph.
noncomputable def ocd_inducedWiring (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vin where
Adj x y := x ≠ y ∧ (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)
symm := by
refine ⟨?_⟩
rintro x y ⟨hne, hreach⟩
exact ⟨hne.symm, hreach.symm⟩
loopless := ⟨by rintro x ⟨hne, _⟩; exact hne rfl⟩
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
Uses 2 · Used by 21
LemmaInduced-wiring adjacency: distinct and joined in the outside graph#✓fully proved
Adjacency in the induced wiring.
lemma ocd_inducedWiring_adj (ψ : ConfigSpace (Sym2 Vout)) (x y : Vin) :
(ocd_inducedWiring Gout ιV bdryOut ψ).Adj x y
↔ x ≠ y ∧ (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_inducedWiring (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vin where
Adj x y := x ≠ y ∧ (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)
symm := by
refine ⟨?_⟩
rintro x y ⟨hne, hreach⟩
exact ⟨hne.symm, hreach.symm⟩
loopless := ⟨by rintro x ⟨hne, _⟩; exact hne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:249
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
DefinitionImage of the inner open subgraph in the outer graph#✓fully proved
The image in G_out of the open subgraph of an inner configuration ω.
noncomputable def ocd_innerImageGraph (ω : ConfigSpace (Sym2 Vin)) : SimpleGraph Vout where
Adj x y := Gout.Adj x y ∧ ocd_psiExt ιV (fun _ => false) ω s(x, y) = true
∧ s(x, y) ∈ Set.range (ocd_innerEdge ιV)
symm := by
refine ⟨?_⟩
rintro x y ⟨hadj, hopen, hrange⟩
refine ⟨hadj.symm, ?_, ?_⟩ <;> rw [Sym2.eq_swap] <;> assumption
loopless := ⟨by rintro x ⟨hadj, _, _⟩; exact hadj.ne rfl⟩
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
Uses 3 · Used by 6
DefinitionInner cluster graph with the induced wiring#✓fully proved
The inner cluster graph: open edges of ω together with the induced wiring.
noncomputable def ocd_innerGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vin :=
openSub Gin ω ⊔ ocd_inducedWiring Gout ιV bdryOut ψ
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def openSub (ω : ConfigSpace (Sym2 V)) : SimpleGraph V where
Adj x y := G.Adj x y ∧ ω s(x, y) = true
symm := by
refine ⟨fun x y h => ?_⟩
refine ⟨h.1.symm, ?_⟩
rw [Sym2.eq_swap]; exact h.2
loopless := ⟨fun x h => h.1.ne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:82
noncomputable def ocd_inducedWiring (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vin where
Adj x y := x ≠ y ∧ (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)
symm := by
refine ⟨?_⟩
rintro x y ⟨hne, hreach⟩
exact ⟨hne.symm, hreach.symm⟩
loopless := ⟨by rintro x ⟨hne, _⟩; exact hne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:249
Uses 3 · Used by 11
DefinitionCluster graph of a glued configuration#✓fully proved
The cluster graph of the glued configuration on G_out with the wired boundary clique.
noncomputable def ocd_fullGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vout :=
openSub Gout (ocd_psiExt ιV ψ ω) ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def openSub (ω : ConfigSpace (Sym2 V)) : SimpleGraph V where
Adj x y := G.Adj x y ∧ ω s(x, y) = true
symm := by
refine ⟨fun x y h => ?_⟩
refine ⟨h.1.symm, ?_⟩
rw [Sym2.eq_swap]; exact h.2
loopless := ⟨fun x h => h.1.ne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:82
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
def boundaryCliqueGraph : SimpleGraph V := SimpleGraph.fromRel (wireRel bdry)
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:121
Uses 4 · Used by 14
B.2. Reachability
LemmaOutside graph is a subgraph of the full cluster graph#✓fully proved
The outside graph is a subgraph of the full cluster graph.
lemma ocd_outsideGraph_le_fullGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
ocd_outsideGraph Gout ιV bdryOut ψ ≤ ocd_fullGraph Gout ιV bdryOut ω ψ
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
noncomputable def ocd_fullGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vout :=
openSub Gout (ocd_psiExt ιV ψ ω) ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:294
Uses 9 · Used by 2
LemmaGlued configuration on inner edges ignores the outer configuration#✓fully proved
On inner edges the glued configuration does not depend on the outer configuration.
lemma ocd_psiExt_eq_false_of_range (hι : Function.Injective ιV) (ψ : ConfigSpace (Sym2 Vout))
(ω : ConfigSpace (Sym2 Vin)) {e : Sym2 Vout} (he : e ∈ Set.range (ocd_innerEdge ιV)) :
ocd_psiExt ιV ψ ω e = ocd_psiExt ιV (fun _ => false) ω e
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
Uses 4 · Used by 1
LemmaFull cluster graph as the union of inner image and outside graphs#✓fully proved
The full cluster graph is the union of the inner image graph and the outside graph.
lemma ocd_psiWiredGraph_eq_sup (hι : Function.Injective ιV) (ψ : ConfigSpace (Sym2 Vout))
(ω : ConfigSpace (Sym2 Vin)) :
ocd_fullGraph Gout ιV bdryOut ω ψ
= ocd_innerImageGraph Gout ιV ω ⊔ ocd_outsideGraph Gout ιV bdryOut ψ
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_fullGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vout :=
openSub Gout (ocd_psiExt ιV ψ ω) ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:294
noncomputable def ocd_innerImageGraph (ω : ConfigSpace (Sym2 Vin)) : SimpleGraph Vout where
Adj x y := Gout.Adj x y ∧ ocd_psiExt ιV (fun _ => false) ω s(x, y) = true
∧ s(x, y) ∈ Set.range (ocd_innerEdge ιV)
symm := by
refine ⟨?_⟩
rintro x y ⟨hadj, hopen, hrange⟩
refine ⟨hadj.symm, ?_, ?_⟩ <;> rw [Sym2.eq_swap] <;> assumption
loopless := ⟨by rintro x ⟨hadj, _, _⟩; exact hadj.ne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:269
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
Uses 11 · Used by 3
LemmaEndpoints of inner image edges are inner vertices#✓fully proved
Both endpoints of an inner image edge are inner vertices.
lemma ocd_innerImageGraph_adj_inner (hι : Function.Injective ιV) (ω : ConfigSpace (Sym2 Vin))
{u v : Vout} (h : (ocd_innerImageGraph Gout ιV ω).Adj u v) :
ocd_IsInnerVert ιV u ∧ ocd_IsInnerVert ιV v
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_innerImageGraph (ω : ConfigSpace (Sym2 Vin)) : SimpleGraph Vout where
Adj x y := Gout.Adj x y ∧ ocd_psiExt ιV (fun _ => false) ω s(x, y) = true
∧ s(x, y) ∈ Set.range (ocd_innerEdge ιV)
symm := by
refine ⟨?_⟩
rintro x y ⟨hadj, hopen, hrange⟩
refine ⟨hadj.symm, ?_, ?_⟩ <;> rw [Sym2.eq_swap] <;> assumption
loopless := ⟨by rintro x ⟨hadj, _, _⟩; exact hadj.ne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:269
def ocd_IsInnerVert (v : Vout) : Prop := ∃ x : Vin, ιV x = v
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:95
Uses 6 · Used by 2
LemmaInner image graph on embedded vertices is the open subgraph#✓fully proved
The inner image graph on images of ι is the open subgraph of ω.
lemma ocd_innerImageGraph_adj_ιV (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin)) (x y : Vin) :
(ocd_innerImageGraph Gout ιV ω).Adj (ιV x) (ιV y) ↔ (openSub Gin ω).Adj x y
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_innerImageGraph (ω : ConfigSpace (Sym2 Vin)) : SimpleGraph Vout where
Adj x y := Gout.Adj x y ∧ ocd_psiExt ιV (fun _ => false) ω s(x, y) = true
∧ s(x, y) ∈ Set.range (ocd_innerEdge ιV)
symm := by
refine ⟨?_⟩
rintro x y ⟨hadj, hopen, hrange⟩
refine ⟨hadj.symm, ?_, ?_⟩ <;> rw [Sym2.eq_swap] <;> assumption
loopless := ⟨by rintro x ⟨hadj, _, _⟩; exact hadj.ne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:269
def openSub (ω : ConfigSpace (Sym2 V)) : SimpleGraph V where
Adj x y := G.Adj x y ∧ ω s(x, y) = true
symm := by
refine ⟨fun x y h => ?_⟩
refine ⟨h.1.symm, ?_⟩
rw [Sym2.eq_swap]; exact h.2
loopless := ⟨fun x h => h.1.ne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:82
Uses 8 · Used by 2
LemmaOutside reachability gives inner cluster reachability#✓fully proved
Inner vertices whose images are joined in the outside graph are joined in the inner cluster graph.
lemma ocd_innerGraph_reachable_of_outsideReachable (ω : ConfigSpace (Sym2 Vin))
(ψ : ConfigSpace (Sym2 Vout)) {x y : Vin}
(h : (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)) :
(ocd_innerGraph Gin Gout ιV bdryOut ω ψ).Reachable x y
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
noncomputable def ocd_innerGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vin :=
openSub Gin ω ⊔ ocd_inducedWiring Gout ιV bdryOut ψ
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:284
Uses 5 · Used by 1
LemmaInner cluster reachability gives full-graph reachability of images#✓fully proved
Reachability in the inner cluster graph gives reachability of the images in the full cluster graph.
lemma ocd_fullGraph_reachable_of_innerGraph (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin))
(ψ : ConfigSpace (Sym2 Vout)) {x y : Vin}
(h : (ocd_innerGraph Gin Gout ιV bdryOut ω ψ).Reachable x y) :
(ocd_fullGraph Gout ιV bdryOut ω ψ).Reachable (ιV x) (ιV y)
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_innerGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vin :=
openSub Gin ω ⊔ ocd_inducedWiring Gout ιV bdryOut ψ
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:284
noncomputable def ocd_fullGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vout :=
openSub Gout (ocd_psiExt ιV ψ ω) ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:294
Uses 10 · Used by 2
LemmaFull-graph reachability of images gives inner cluster reachability#✓fully proved
Reachability of images in the full cluster graph gives reachability in the inner cluster graph.
lemma ocd_innerGraph_reachable_of_fullGraph (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin))
(ψ : ConfigSpace (Sym2 Vout)) {x y : Vin}
(h : (ocd_fullGraph Gout ιV bdryOut ω ψ).Reachable (ιV x) (ιV y)) :
(ocd_innerGraph Gin Gout ιV bdryOut ω ψ).Reachable x y
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_fullGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vout :=
openSub Gout (ocd_psiExt ιV ψ ω) ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:294
noncomputable def ocd_innerGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vin :=
openSub Gin ω ⊔ ocd_inducedWiring Gout ιV bdryOut ψ
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:284
Uses 13 · Used by 2
LemmaFull-graph and inner cluster reachability agree on embedded vertices#✓fully proved
Images of inner vertices are joined in the full cluster graph iff the vertices are joined in the inner cluster graph.
lemma ocd_fullGraph_reachable_ιV (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin))
(ψ : ConfigSpace (Sym2 Vout)) (x y : Vin) :
(ocd_fullGraph Gout ιV bdryOut ω ψ).Reachable (ιV x) (ιV y)
↔ (ocd_innerGraph Gin Gout ιV bdryOut ω ψ).Reachable x y
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_fullGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vout :=
openSub Gout (ocd_psiExt ιV ψ ω) ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:294
noncomputable def ocd_innerGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vin :=
openSub Gin ω ⊔ ocd_inducedWiring Gout ιV bdryOut ψ
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:284
LemmaFull-graph edges at non-inner vertices are outside-graph edges#✓fully proved
A full cluster graph edge at a non-inner vertex is an outside graph edge.
lemma ocd_fullGraph_adj_of_outside (hι : Function.Injective ιV) (ω : ConfigSpace (Sym2 Vin))
(ψ : ConfigSpace (Sym2 Vout)) {u w : Vout}
(hu : ¬ ocd_IsInnerVert ιV u) (h : (ocd_fullGraph Gout ιV bdryOut ω ψ).Adj u w) :
(ocd_outsideGraph Gout ιV bdryOut ψ).Adj u w
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def ocd_IsInnerVert (v : Vout) : Prop := ∃ x : Vin, ιV x = v
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:95
noncomputable def ocd_fullGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vout :=
openSub Gout (ocd_psiExt ιV ψ ω) ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:294
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
Uses 7 · Used by 1
B.3. Clusters of a glued configuration
DefinitionOutside-only vertex#✓fully proved
A vertex is outside-only if its outside cluster contains no inner vertex.
def ocd_OutsideOnly (ψ : ConfigSpace (Sym2 Vout)) (u : Vout) : Prop :=
∀ v, (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable u v → ¬ ocd_IsInnerVert ιV v
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
def ocd_IsInnerVert (v : Vout) : Prop := ∃ x : Vin, ιV x = v
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:95
Uses 3 · Used by 7
LemmaOutside-only vertices are not inner#✓fully proved
An outside-only vertex is not inner.
lemma ocd_outsideOnly_self_not_inner (ψ : ConfigSpace (Sym2 Vout)) {u : Vout}
(hu : ocd_OutsideOnly Gout ιV bdryOut ψ u) : ¬ ocd_IsInnerVert ιV u
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def ocd_OutsideOnly (ψ : ConfigSpace (Sym2 Vout)) (u : Vout) : Prop :=
∀ v, (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable u v → ¬ ocd_IsInnerVert ιV v
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:470
def ocd_IsInnerVert (v : Vout) : Prop := ∃ x : Vin, ιV x = v
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:95
Uses 4
LemmaOutside-only property is constant on outside clusters#✓fully proved
Being outside-only is constant on outside clusters.
lemma ocd_outsideOnly_of_reachable (ψ : ConfigSpace (Sym2 Vout)) {u v : Vout}
(hu : ocd_OutsideOnly Gout ιV bdryOut ψ u)
(h : (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable u v) :
ocd_OutsideOnly Gout ιV bdryOut ψ v
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def ocd_OutsideOnly (ψ : ConfigSpace (Sym2 Vout)) (u : Vout) : Prop :=
∀ v, (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable u v → ¬ ocd_IsInnerVert ιV v
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:470
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
Uses 3 · Used by 1
LemmaFull-graph reachability from an outside-only vertex stays outside#✓fully proved
From an outside-only vertex, reachability in the full cluster graph stays in the outside graph.
lemma ocd_outsideGraph_reachable_of_fullGraph_outsideOnly (hι : Function.Injective ιV)
(ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) {u w : Vout}
(hu : ocd_OutsideOnly Gout ιV bdryOut ψ u)
(h : (ocd_fullGraph Gout ιV bdryOut ω ψ).Reachable u w) :
(ocd_outsideGraph Gout ιV bdryOut ψ).Reachable u w
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def ocd_OutsideOnly (ψ : ConfigSpace (Sym2 Vout)) (u : Vout) : Prop :=
∀ v, (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable u v → ¬ ocd_IsInnerVert ιV v
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:470
noncomputable def ocd_fullGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vout :=
openSub Gout (ocd_psiExt ιV ψ ω) ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:294
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
Uses 6 · Used by 1
DefinitionOutside-only property of an outside cluster#✓fully proved
The outside-only property of a cluster of the outside graph.
noncomputable def ocd_IsOutsideOnly (ψ : ConfigSpace (Sym2 Vout)) :
(ocd_outsideGraph Gout ιV bdryOut ψ).ConnectedComponent → Prop :=
ConnectedComponent.lift (ocd_OutsideOnly Gout ιV bdryOut ψ)
(fun _ _ p _ => propext ⟨fun h => ocd_outsideOnly_of_reachable ψ h p.reachable,
fun h => ocd_outsideOnly_of_reachable ψ h p.reachable.symm⟩)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
def ocd_OutsideOnly (ψ : ConfigSpace (Sym2 Vout)) (u : Vout) : Prop :=
∀ v, (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable u v → ¬ ocd_IsInnerVert ιV v
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:470
lemma ocd_outsideOnly_of_reachable (ψ : ConfigSpace (Sym2 Vout)) {u v : Vout}
(hu : ocd_OutsideOnly Gout ιV bdryOut ψ u)
(h : (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable u v) :
ocd_OutsideOnly Gout ιV bdryOut ψ v
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:481
Uses 4 · Used by 7
LemmaCluster of a vertex is outside-only iff the vertex is#✓fully proved
The cluster of v is outside-only iff v is.
@[simp] lemma ocd_isOutsideOnly_mk (ψ : ConfigSpace (Sym2 Vout)) (v : Vout) :
ocd_IsOutsideOnly Gout ιV bdryOut ψ
((ocd_outsideGraph Gout ιV bdryOut ψ).connectedComponentMk v)
↔ ocd_OutsideOnly Gout ιV bdryOut ψ v
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_IsOutsideOnly (ψ : ConfigSpace (Sym2 Vout)) :
(ocd_outsideGraph Gout ιV bdryOut ψ).ConnectedComponent → Prop :=
ConnectedComponent.lift (ocd_OutsideOnly Gout ιV bdryOut ψ)
(fun _ _ p _ => propext ⟨fun h => ocd_outsideOnly_of_reachable ψ h p.reachable,
fun h => ocd_outsideOnly_of_reachable ψ h p.reachable.symm⟩)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:505
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
def ocd_OutsideOnly (ψ : ConfigSpace (Sym2 Vout)) (u : Vout) : Prop :=
∀ v, (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable u v → ¬ ocd_IsInnerVert ιV v
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:470
DefinitionOutside-only clusters#✓fully proved
The outside clusters that contain no inner vertex.
def ocd_OutsideOnlyComp (ψ : ConfigSpace (Sym2 Vout)) : Type _ :=
{c : (ocd_outsideGraph Gout ιV bdryOut ψ).ConnectedComponent //
ocd_IsOutsideOnly Gout ιV bdryOut ψ c}
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
noncomputable def ocd_IsOutsideOnly (ψ : ConfigSpace (Sym2 Vout)) :
(ocd_outsideGraph Gout ιV bdryOut ψ).ConnectedComponent → Prop :=
ConnectedComponent.lift (ocd_OutsideOnly Gout ιV bdryOut ψ)
(fun _ _ p _ => propext ⟨fun h => ocd_outsideOnly_of_reachable ψ h p.reachable,
fun h => ocd_outsideOnly_of_reachable ψ h p.reachable.symm⟩)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:505
Uses 3 · Used by 8
DefinitionCluster map into the clusters of a glued configuration#✓fully proved
The map from inner clusters and outside-only clusters to the clusters of the glued configuration.
noncomputable def ocd_fullComponentMap (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
(ocd_innerGraph Gin Gout ιV bdryOut ω ψ).ConnectedComponent ⊕
ocd_OutsideOnlyComp Gout ιV bdryOut ψ →
(ocd_fullGraph Gout ιV bdryOut ω ψ).ConnectedComponent
| Sum.inl c => c.lift (fun x => (ocd_fullGraph Gout ιV bdryOut ω ψ).connectedComponentMk (ιV x))
(fun _ _ p _ => ConnectedComponent.sound
(ocd_fullGraph_reachable_of_innerGraph hι hadjm ω ψ p.reachable))
| Sum.inr c => c.1.lift (fun v => (ocd_fullGraph Gout ιV bdryOut ω ψ).connectedComponentMk v)
(fun _ _ p _ => ConnectedComponent.sound
(p.reachable.mono (ocd_outsideGraph_le_fullGraph ω ψ)))
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_innerGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vin :=
openSub Gin ω ⊔ ocd_inducedWiring Gout ιV bdryOut ψ
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:284
def ocd_OutsideOnlyComp (ψ : ConfigSpace (Sym2 Vout)) : Type _ :=
{c : (ocd_outsideGraph Gout ιV bdryOut ψ).ConnectedComponent //
ocd_IsOutsideOnly Gout ιV bdryOut ψ c}
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:523
noncomputable def ocd_fullGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vout :=
openSub Gout (ocd_psiExt ιV ψ ω) ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:294
lemma ocd_fullGraph_reachable_of_innerGraph (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin))
(ψ : ConfigSpace (Sym2 Vout)) {x y : Vin}
(h : (ocd_innerGraph Gin Gout ιV bdryOut ω ψ).Reachable x y) :
(ocd_fullGraph Gout ιV bdryOut ω ψ).Reachable (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:389
lemma ocd_outsideGraph_le_fullGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
ocd_outsideGraph Gout ιV bdryOut ψ ≤ ocd_fullGraph Gout ιV bdryOut ω ψ
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:310
Uses 9 · Used by 5
LemmaCluster map sends the inner cluster of \(x\) to that of \(\iota x\)#✓fully proved
The cluster map sends the inner cluster of x to the full cluster of ι x.
lemma ocd_fullComponentMap_inl_mk (hι : Function.Injective ιV) (hadjm : ocd_AdjMatch Gin Gout ιV)
(ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) (x : Vin) :
ocd_fullComponentMap Gin Gout ιV bdryOut hι hadjm ω ψ
(Sum.inl ((ocd_innerGraph Gin Gout ιV bdryOut ω ψ).connectedComponentMk x))
= (ocd_fullGraph Gout ιV bdryOut ω ψ).connectedComponentMk (ιV x)
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_fullComponentMap (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
(ocd_innerGraph Gin Gout ιV bdryOut ω ψ).ConnectedComponent ⊕
ocd_OutsideOnlyComp Gout ιV bdryOut ψ →
(ocd_fullGraph Gout ιV bdryOut ω ψ).ConnectedComponent
| Sum.inl c => c.lift (fun x => (ocd_fullGraph Gout ιV bdryOut ω ψ).connectedComponentMk (ιV x))
(fun _ _ p _ => ConnectedComponent.sound
(ocd_fullGraph_reachable_of_innerGraph hι hadjm ω ψ p.reachable))
| Sum.inr c => c.1.lift (fun v => (ocd_fullGraph Gout ιV bdryOut ω ψ).connectedComponentMk v)
(fun _ _ p _ => ConnectedComponent.sound
(p.reachable.mono (ocd_outsideGraph_le_fullGraph ω ψ)))
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:535
noncomputable def ocd_innerGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vin :=
openSub Gin ω ⊔ ocd_inducedWiring Gout ιV bdryOut ψ
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:284
noncomputable def ocd_fullGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vout :=
openSub Gout (ocd_psiExt ιV ψ ω) ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:294
LemmaCluster map sends an outside-only cluster of \(v\) to that of \(v\)#✓fully proved
The cluster map sends an outside-only cluster of v to the full cluster of v.
lemma ocd_fullComponentMap_inr_mk (hι : Function.Injective ιV) (hadjm : ocd_AdjMatch Gin Gout ιV)
(ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) (v : Vout)
(hv : ocd_IsOutsideOnly Gout ιV bdryOut ψ
((ocd_outsideGraph Gout ιV bdryOut ψ).connectedComponentMk v)) :
ocd_fullComponentMap Gin Gout ιV bdryOut hι hadjm ω ψ
(Sum.inr ⟨(ocd_outsideGraph Gout ιV bdryOut ψ).connectedComponentMk v, hv⟩)
= (ocd_fullGraph Gout ιV bdryOut ω ψ).connectedComponentMk v
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_IsOutsideOnly (ψ : ConfigSpace (Sym2 Vout)) :
(ocd_outsideGraph Gout ιV bdryOut ψ).ConnectedComponent → Prop :=
ConnectedComponent.lift (ocd_OutsideOnly Gout ιV bdryOut ψ)
(fun _ _ p _ => propext ⟨fun h => ocd_outsideOnly_of_reachable ψ h p.reachable,
fun h => ocd_outsideOnly_of_reachable ψ h p.reachable.symm⟩)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:505
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
noncomputable def ocd_fullComponentMap (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
(ocd_innerGraph Gin Gout ιV bdryOut ω ψ).ConnectedComponent ⊕
ocd_OutsideOnlyComp Gout ιV bdryOut ψ →
(ocd_fullGraph Gout ιV bdryOut ω ψ).ConnectedComponent
| Sum.inl c => c.lift (fun x => (ocd_fullGraph Gout ιV bdryOut ω ψ).connectedComponentMk (ιV x))
(fun _ _ p _ => ConnectedComponent.sound
(ocd_fullGraph_reachable_of_innerGraph hι hadjm ω ψ p.reachable))
| Sum.inr c => c.1.lift (fun v => (ocd_fullGraph Gout ιV bdryOut ω ψ).connectedComponentMk v)
(fun _ _ p _ => ConnectedComponent.sound
(p.reachable.mono (ocd_outsideGraph_le_fullGraph ω ψ)))
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:535
noncomputable def ocd_fullGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vout :=
openSub Gout (ocd_psiExt ιV ψ ω) ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:294
Uses 8 · Used by 2
LemmaInjectivity of the cluster map#✓fully proved
The cluster map is injective.
lemma ocd_fullComponentMap_injective (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
Function.Injective (ocd_fullComponentMap Gin Gout ιV bdryOut hι hadjm ω ψ)
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_fullComponentMap (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
(ocd_innerGraph Gin Gout ιV bdryOut ω ψ).ConnectedComponent ⊕
ocd_OutsideOnlyComp Gout ιV bdryOut ψ →
(ocd_fullGraph Gout ιV bdryOut ω ψ).ConnectedComponent
| Sum.inl c => c.lift (fun x => (ocd_fullGraph Gout ιV bdryOut ω ψ).connectedComponentMk (ιV x))
(fun _ _ p _ => ConnectedComponent.sound
(ocd_fullGraph_reachable_of_innerGraph hι hadjm ω ψ p.reachable))
| Sum.inr c => c.1.lift (fun v => (ocd_fullGraph Gout ιV bdryOut ω ψ).connectedComponentMk v)
(fun _ _ p _ => ConnectedComponent.sound
(p.reachable.mono (ocd_outsideGraph_le_fullGraph ω ψ)))
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:535
Uses 15 · Used by 1
LemmaSurjectivity of the cluster map#✓fully proved
The cluster map is surjective.
lemma ocd_fullComponentMap_surjective (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
Function.Surjective (ocd_fullComponentMap Gin Gout ιV bdryOut hι hadjm ω ψ)
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_fullComponentMap (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
(ocd_innerGraph Gin Gout ιV bdryOut ω ψ).ConnectedComponent ⊕
ocd_OutsideOnlyComp Gout ιV bdryOut ψ →
(ocd_fullGraph Gout ιV bdryOut ω ψ).ConnectedComponent
| Sum.inl c => c.lift (fun x => (ocd_fullGraph Gout ιV bdryOut ω ψ).connectedComponentMk (ιV x))
(fun _ _ p _ => ConnectedComponent.sound
(ocd_fullGraph_reachable_of_innerGraph hι hadjm ω ψ p.reachable))
| Sum.inr c => c.1.lift (fun v => (ocd_fullGraph Gout ιV bdryOut ω ψ).connectedComponentMk v)
(fun _ _ p _ => ConnectedComponent.sound
(p.reachable.mono (ocd_outsideGraph_le_fullGraph ω ψ)))
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:535
Uses 14 · Used by 1
DefinitionCluster bijection for a glued configuration#✓fully proved
The clusters of the glued configuration are in bijection with the inner clusters plus the outside-only clusters.
noncomputable def ocd_fullComponentEquiv (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
(ocd_innerGraph Gin Gout ιV bdryOut ω ψ).ConnectedComponent ⊕
ocd_OutsideOnlyComp Gout ιV bdryOut ψ ≃
(ocd_fullGraph Gout ιV bdryOut ω ψ).ConnectedComponent :=
Equiv.ofBijective (ocd_fullComponentMap Gin Gout ιV bdryOut hι hadjm ω ψ)
⟨ocd_fullComponentMap_injective hι hadjm ω ψ, ocd_fullComponentMap_surjective hι hadjm ω ψ⟩
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_innerGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vin :=
openSub Gin ω ⊔ ocd_inducedWiring Gout ιV bdryOut ψ
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:284
def ocd_OutsideOnlyComp (ψ : ConfigSpace (Sym2 Vout)) : Type _ :=
{c : (ocd_outsideGraph Gout ιV bdryOut ψ).ConnectedComponent //
ocd_IsOutsideOnly Gout ιV bdryOut ψ c}
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:523
noncomputable def ocd_fullGraph (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
SimpleGraph Vout :=
openSub Gout (ocd_psiExt ιV ψ ω) ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:294
noncomputable def ocd_fullComponentMap (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
(ocd_innerGraph Gin Gout ιV bdryOut ω ψ).ConnectedComponent ⊕
ocd_OutsideOnlyComp Gout ιV bdryOut ψ →
(ocd_fullGraph Gout ιV bdryOut ω ψ).ConnectedComponent
| Sum.inl c => c.lift (fun x => (ocd_fullGraph Gout ιV bdryOut ω ψ).connectedComponentMk (ιV x))
(fun _ _ p _ => ConnectedComponent.sound
(ocd_fullGraph_reachable_of_innerGraph hι hadjm ω ψ p.reachable))
| Sum.inr c => c.1.lift (fun v => (ocd_fullGraph Gout ιV bdryOut ω ψ).connectedComponentMk v)
(fun _ _ p _ => ConnectedComponent.sound
(p.reachable.mono (ocd_outsideGraph_le_fullGraph ω ψ)))
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:535
lemma ocd_fullComponentMap_injective (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
Function.Injective (ocd_fullComponentMap Gin Gout ιV bdryOut hι hadjm ω ψ)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:566
lemma ocd_fullComponentMap_surjective (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
Function.Surjective (ocd_fullComponentMap Gin Gout ιV bdryOut hι hadjm ω ψ)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:604
Uses 8 · Used by 1
DefinitionNumber of outside-only clusters#✓fully proved
The number of outside-only clusters of ψ.
noncomputable def ocd_outsideShift (Gout : SimpleGraph Vout) [DecidableRel Gout.Adj]
(ιV : Vin → Vout) (bdryOut : Vout → Prop) [DecidablePred bdryOut]
(ψ : ConfigSpace (Sym2 Vout)) : ℕ :=
Nat.card (ocd_OutsideOnlyComp Gout ιV bdryOut ψ)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def ocd_OutsideOnlyComp (ψ : ConfigSpace (Sym2 Vout)) : Type _ :=
{c : (ocd_outsideGraph Gout ιV bdryOut ψ).ConnectedComponent //
ocd_IsOutsideOnly Gout ιV bdryOut ψ c}
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:523
Uses 2 · Used by 4
LemmaGlued cluster count is induced-wiring count plus outside-only clusters#✓fully proved
The wired cluster count of a glued configuration is the induced-wiring cluster count of the inner configuration plus the number of outside-only clusters.
lemma ocd_numClustersBC_psiExt (hι : Function.Injective ιV) (hadjm : ocd_AdjMatch Gin Gout ιV)
(ω : ConfigSpace (Sym2 Vin)) (ψ : ConfigSpace (Sym2 Vout)) :
numClustersBC Gout (StatMech.Lattice.boundaryCliqueGraph bdryOut) (ocd_psiExt ιV ψ ω)
= numClustersBC Gin (ocd_inducedWiring Gout ιV bdryOut ψ) ω
+ ocd_outsideShift Gout ιV bdryOut ψ
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def numClustersBC (C : SimpleGraph V) [DecidableRel C.Adj]
(ω : ConfigSpace (Sym2 V)) : ℕ :=
Nat.card (openSub G ω ⊔ C).ConnectedComponent
PhyslibExt/StatisticalMechanics/RandomCluster/MonoBC.lean:75
def boundaryCliqueGraph : SimpleGraph V := SimpleGraph.fromRel (wireRel bdry)
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:121
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
noncomputable def ocd_inducedWiring (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vin where
Adj x y := x ≠ y ∧ (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)
symm := by
refine ⟨?_⟩
rintro x y ⟨hne, hreach⟩
exact ⟨hne.symm, hreach.symm⟩
loopless := ⟨by rintro x ⟨hne, _⟩; exact hne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:249
noncomputable def ocd_outsideShift (Gout : SimpleGraph Vout) [DecidableRel Gout.Adj]
(ιV : Vin → Vout) (bdryOut : Vout → Prop) [DecidablePred bdryOut]
(ψ : ConfigSpace (Sym2 Vout)) : ℕ :=
Nat.card (ocd_OutsideOnlyComp Gout ιV bdryOut ψ)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:634
Uses 15 · Used by 1
C. Weights of glued configurations
LemmaEdges of the inner graph map onto the inner edges of the outer graph#✓fully proved
The image of the edges of G_in is the set of inner edges of G_out.
lemma ocd_innerEdge_image_edgeFinset (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) :
Gin.edgeFinset.image (ocd_innerEdge ιV)
= Gout.edgeFinset.filter (· ∈ Set.range (ocd_innerEdge ιV))
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
Uses 3 · Used by 1
DefinitionOuter Bernoulli edge weight of a configuration#✓fully proved
The Bernoulli edge weight of ψ on the non-inner edges of G_out.
noncomputable def ocd_psiEdgeFactor (Gout : SimpleGraph Vout) [DecidableRel Gout.Adj]
(ιV : Vin → Vout) (ψ : ConfigSpace (Sym2 Vout)) (p : ℝ) : ℝ :=
∏ e ∈ Gout.edgeFinset.filter (fun e => e ∉ Set.range (ocd_innerEdge ιV)),
(if ψ e then p else 1 - p)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
Uses 2 · Used by 5
LemmaPositivity of the outer edge weight#✓fully proved
The outer edge weight is positive for p ∈ (0, 1).
lemma ocd_psiEdgeFactor_pos {ψ : ConfigSpace (Sym2 Vout)} {p : ℝ} (hp : 0 < p) (hp1 : p < 1) :
0 < ocd_psiEdgeFactor Gout ιV ψ p
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_psiEdgeFactor (Gout : SimpleGraph Vout) [DecidableRel Gout.Adj]
(ιV : Vin → Vout) (ψ : ConfigSpace (Sym2 Vout)) (p : ℝ) : ℝ :=
∏ e ∈ Gout.edgeFinset.filter (fun e => e ∉ Set.range (ocd_innerEdge ιV)),
(if ψ e then p else 1 - p)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:681
Uses 3 · Used by 1
LemmaFactorization of the edge weight of a glued configuration#✓fully proved
The edge weight of a glued configuration factors into the inner edge weight and the outer edge weight.
lemma ocd_edgeProduct_psiExt (hι : Function.Injective ιV) (hadjm : ocd_AdjMatch Gin Gout ιV)
{p : ℝ} (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
edgeProduct Gout p (ocd_psiExt ιV ψ ω)
= edgeProduct Gin p ω * ocd_psiEdgeFactor Gout ιV ψ p
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def edgeProduct (p : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
∏ e ∈ G.edgeFinset, (if ω e then p else 1 - p)
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:126
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
noncomputable def ocd_psiEdgeFactor (Gout : SimpleGraph Vout) [DecidableRel Gout.Adj]
(ιV : Vin → Vout) (ψ : ConfigSpace (Sym2 Vout)) (p : ℝ) : ℝ :=
∏ e ∈ Gout.edgeFinset.filter (fun e => e ∉ Set.range (ocd_innerEdge ιV)),
(if ψ e then p else 1 - p)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:681
Uses 10 · Used by 1
DefinitionOuter factor of the FK weight of a glued configuration#✓fully proved
The factor ψ contributes to the FK weight of a glued configuration: its outer edge weight
times q to the number of outside-only clusters.
noncomputable def ocd_psiShift (Gout : SimpleGraph Vout) [DecidableRel Gout.Adj]
(ιV : Vin → Vout) (bdryOut : Vout → Prop) [DecidablePred bdryOut]
(ψ : ConfigSpace (Sym2 Vout)) (p q : ℝ) : ℝ :=
ocd_psiEdgeFactor Gout ιV ψ p * q ^ ocd_outsideShift Gout ιV bdryOut ψ
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_psiEdgeFactor (Gout : SimpleGraph Vout) [DecidableRel Gout.Adj]
(ιV : Vin → Vout) (ψ : ConfigSpace (Sym2 Vout)) (p : ℝ) : ℝ :=
∏ e ∈ Gout.edgeFinset.filter (fun e => e ∉ Set.range (ocd_innerEdge ιV)),
(if ψ e then p else 1 - p)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:681
noncomputable def ocd_outsideShift (Gout : SimpleGraph Vout) [DecidableRel Gout.Adj]
(ιV : Vin → Vout) (bdryOut : Vout → Prop) [DecidablePred bdryOut]
(ψ : ConfigSpace (Sym2 Vout)) : ℕ :=
Nat.card (ocd_OutsideOnlyComp Gout ιV bdryOut ψ)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:634
Uses 3 · Used by 4
LemmaPositivity of the outer factor#✓fully proved
The outer factor is positive for p ∈ (0, 1) and q > 0.
lemma ocd_psiShift_pos {ψ : ConfigSpace (Sym2 Vout)} {q : ℝ} {p : ℝ} (hp : 0 < p) (hp1 : p < 1)
(hq : 0 < q) :
0 < ocd_psiShift Gout ιV bdryOut ψ p q
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_psiShift (Gout : SimpleGraph Vout) [DecidableRel Gout.Adj]
(ιV : Vin → Vout) (bdryOut : Vout → Prop) [DecidablePred bdryOut]
(ψ : ConfigSpace (Sym2 Vout)) (p q : ℝ) : ℝ :=
ocd_psiEdgeFactor Gout ιV ψ p * q ^ ocd_outsideShift Gout ιV bdryOut ψ
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:717
LemmaFactorization of the wired FK weight of a glued configuration#✓fully proved
The wired FK weight of a glued configuration is the induced-wiring FK weight of the inner configuration times the outer factor.
lemma ocd_bcWeight_psiExt (hι : Function.Injective ιV) (hadjm : ocd_AdjMatch Gin Gout ιV)
{p q : ℝ} (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
bcWeight Gout (StatMech.Lattice.boundaryCliqueGraph bdryOut) p q (ocd_psiExt ιV ψ ω)
= bcWeight Gin (ocd_inducedWiring Gout ιV bdryOut ψ) p q ω
* ocd_psiShift Gout ιV bdryOut ψ p q
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def bcWeight (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
edgeProduct G p ω * q ^ numClustersBC G C ω
PhyslibExt/StatisticalMechanics/RandomCluster/MonoBC.lean:128
def boundaryCliqueGraph : SimpleGraph V := SimpleGraph.fromRel (wireRel bdry)
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:121
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
noncomputable def ocd_inducedWiring (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vin where
Adj x y := x ≠ y ∧ (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)
symm := by
refine ⟨?_⟩
rintro x y ⟨hne, hreach⟩
exact ⟨hne.symm, hreach.symm⟩
loopless := ⟨by rintro x ⟨hne, _⟩; exact hne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:249
noncomputable def ocd_psiShift (Gout : SimpleGraph Vout) [DecidableRel Gout.Adj]
(ιV : Vin → Vout) (bdryOut : Vout → Prop) [DecidablePred bdryOut]
(ψ : ConfigSpace (Sym2 Vout)) (p q : ℝ) : ℝ :=
ocd_psiEdgeFactor Gout ιV ψ p * q ^ ocd_outsideShift Gout ιV bdryOut ψ
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:717
Uses 14 · Used by 2
D. The conditional measure on the inner graph
LemmaFactorization of the conditioned outer partition function#✓fully proved
The partition function of the outer measure conditioned on ψ is the induced-wiring partition
function times the outer factor.
lemma ocd_inducedBcZ_psi (hι : Function.Injective ιV) (hadjm : ocd_AdjMatch Gin Gout ιV)
{p q : ℝ} (ψ : ConfigSpace (Sym2 Vout)) :
inducedBcZ Gout (StatMech.Lattice.boundaryCliqueGraph bdryOut) p q
(ocd_innerEdgeFinset (Vin := Vin) ιV) ψ
= bcZ Gin (ocd_inducedWiring Gout ιV bdryOut ψ) p q
* ocd_psiShift Gout ιV bdryOut ψ p q
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def inducedBcZ (p q : ℝ) (F : Finset (Sym2 V)) (ψ : ConfigSpace (Sym2 V)) : ℝ :=
∑ ρ ∈ condFibre F ψ, bcWeight G C p q ρ
PhyslibExt/StatisticalMechanics/RandomCluster/WiredDominationInner.lean:98
def boundaryCliqueGraph : SimpleGraph V := SimpleGraph.fromRel (wireRel bdry)
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:121
noncomputable def ocd_innerEdgeFinset : Finset (Sym2 Vout) :=
Finset.univ.image (ocd_innerEdge ιV)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:128
noncomputable def bcZ (p q : ℝ) : ℝ :=
∑ ω : ConfigSpace (Sym2 V), bcWeight G C p q ω
PhyslibExt/StatisticalMechanics/RandomCluster/MonoBC.lean:140
noncomputable def ocd_inducedWiring (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vin where
Adj x y := x ≠ y ∧ (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)
symm := by
refine ⟨?_⟩
rintro x y ⟨hne, hreach⟩
exact ⟨hne.symm, hreach.symm⟩
loopless := ⟨by rintro x ⟨hne, _⟩; exact hne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:249
noncomputable def ocd_psiShift (Gout : SimpleGraph Vout) [DecidableRel Gout.Adj]
(ιV : Vin → Vout) (bdryOut : Vout → Prop) [DecidablePred bdryOut]
(ψ : ConfigSpace (Sym2 Vout)) (p q : ℝ) : ℝ :=
ocd_psiEdgeFactor Gout ιV ψ p * q ^ ocd_outsideShift Gout ιV bdryOut ψ
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:717
Uses 16 · Used by 1
LemmaConditional outer measure is the induced-wiring FK measure#✓fully proved
Conditioned on ψ off the inner edges, the outer wired measure of a glued configuration is
the induced-wiring FK measure of the inner configuration.
lemma ocd_condBcProb_psiExt_eq_bcProb (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV)
{p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 0 < q)
(ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
condBcProb Gout (StatMech.Lattice.boundaryCliqueGraph bdryOut) p q
(ocd_innerEdgeFinset (Vin := Vin) ιV) ψ (ocd_psiExt ιV ψ ω)
= bcProb Gin (ocd_inducedWiring Gout ιV bdryOut ψ) p q ω
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def condBcProb (p q : ℝ) (F : Finset (Sym2 V)) (ψ ω : ConfigSpace (Sym2 V)) : ℝ :=
if AgreesOff F ψ ω then bcWeight G C p q ω / inducedBcZ G C p q F ψ else 0
PhyslibExt/StatisticalMechanics/RandomCluster/WiredDominationInner.lean:113
def boundaryCliqueGraph : SimpleGraph V := SimpleGraph.fromRel (wireRel bdry)
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:121
noncomputable def ocd_innerEdgeFinset : Finset (Sym2 Vout) :=
Finset.univ.image (ocd_innerEdge ιV)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:128
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
noncomputable def bcProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
bcWeight G C p q ω / bcZ G C p q
PhyslibExt/StatisticalMechanics/RandomCluster/MonoBC.lean:152
noncomputable def ocd_inducedWiring (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vin where
Adj x y := x ≠ y ∧ (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)
symm := by
refine ⟨?_⟩
rintro x y ⟨hne, hreach⟩
exact ⟨hne.symm, hreach.symm⟩
loopless := ⟨by rintro x ⟨hne, _⟩; exact hne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:249
Uses 18 · Used by 1
LemmaConditional outer probability as an induced-wiring probability#✓fully proved
The conditional outer probability of an event is the induced-wiring probability of its pullback under gluing.
lemma ocd_condBcProb_psiExt_sum_eq_inducedBox (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) {p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 0 < q)
(ψ : ConfigSpace (Sym2 Vout)) (B : Set (ConfigSpace (Sym2 Vout))) :
(∑ ρ, B.indicator (fun _ => (1:ℝ)) ρ *
condBcProb Gout (StatMech.Lattice.boundaryCliqueGraph bdryOut) p q
(ocd_innerEdgeFinset (Vin := Vin) ιV) ψ ρ)
= ∑ ω : ConfigSpace (Sym2 Vin),
(ocd_psiExt ιV ψ ⁻¹' B).indicator (fun _ => (1:ℝ)) ω
* bcProb Gin (ocd_inducedWiring Gout ιV bdryOut ψ) p q ω
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def condBcProb (p q : ℝ) (F : Finset (Sym2 V)) (ψ ω : ConfigSpace (Sym2 V)) : ℝ :=
if AgreesOff F ψ ω then bcWeight G C p q ω / inducedBcZ G C p q F ψ else 0
PhyslibExt/StatisticalMechanics/RandomCluster/WiredDominationInner.lean:113
def boundaryCliqueGraph : SimpleGraph V := SimpleGraph.fromRel (wireRel bdry)
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:121
noncomputable def ocd_innerEdgeFinset : Finset (Sym2 Vout) :=
Finset.univ.image (ocd_innerEdge ιV)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:128
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
noncomputable def bcProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
bcWeight G C p q ω / bcZ G C p q
PhyslibExt/StatisticalMechanics/RandomCluster/MonoBC.lean:152
noncomputable def ocd_inducedWiring (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vin where
Adj x y := x ≠ y ∧ (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)
symm := by
refine ⟨?_⟩
rintro x y ⟨hne, hreach⟩
exact ⟨hne.symm, hreach.symm⟩
loopless := ⟨by rintro x ⟨hne, _⟩; exact hne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:249
Uses 17 · Used by 5
LemmaDomination by the inner wired measure under a coarser induced wiring#✓fully proved
If the induced wiring is coarser than the clique on ∂_in, the induced-wiring measure is
dominated by the wired measure on G_in (for q ≥ 1).
lemma ocd_condBcProb_psiExt_dominated (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (bdryIn : Vin → Prop) [DecidablePred bdryIn]
{p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q)
(ψ : ConfigSpace (Sym2 Vout))
(hwire : ocd_inducedWiring Gout ιV bdryOut ψ ≤ StatMech.Lattice.boundaryCliqueGraph bdryIn)
{A : Set (ConfigSpace (Sym2 Vin))} (hA : IsIncreasing A) :
(∑ ω, A.indicator (fun _ => (1:ℝ)) ω
* bcProb Gin (ocd_inducedWiring Gout ιV bdryOut ψ) p q ω)
≤ ∑ ω, A.indicator (fun _ => (1:ℝ)) ω
* wiredFkProb Gin bdryIn p q ω
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_inducedWiring (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vin where
Adj x y := x ≠ y ∧ (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)
symm := by
refine ⟨?_⟩
rintro x y ⟨hne, hreach⟩
exact ⟨hne.symm, hreach.symm⟩
loopless := ⟨by rintro x ⟨hne, _⟩; exact hne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:249
def boundaryCliqueGraph : SimpleGraph V := SimpleGraph.fromRel (wireRel bdry)
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:121
def IsIncreasing (A : Set (ConfigSpace E)) : Prop := IsUpperSet A
MathlibExt/Probability/CorrelationInequalities/IncreasingEvent.lean:55
noncomputable def bcProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
bcWeight G C p q ω / bcZ G C p q
PhyslibExt/StatisticalMechanics/RandomCluster/MonoBC.lean:152
noncomputable def wiredFkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
wiredFkWeight G bdry p q ω / wiredFkZ G bdry p q
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:105
Uses 10 · Used by 1
LemmaFree inner measure is dominated by every induced-wiring measure#✓fully proved
The free FK measure on G_in is dominated by every induced-wiring measure (for q ≥ 1).
lemma ocd_free_le_inducedBcProb (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV)
{p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q)
(ψ : ConfigSpace (Sym2 Vout))
{A : Set (ConfigSpace (Sym2 Vin))} (hA : IsIncreasing A) :
(∑ ω, A.indicator (fun _ => (1 : ℝ)) ω * fkProb Gin p q ω) ≤
∑ ω, A.indicator (fun _ => (1 : ℝ)) ω *
bcProb Gin (ocd_inducedWiring Gout ιV bdryOut ψ) p q ω
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def IsIncreasing (A : Set (ConfigSpace E)) : Prop := IsUpperSet A
MathlibExt/Probability/CorrelationInequalities/IncreasingEvent.lean:55
noncomputable def fkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
fkWeight G p q ω / fkZ G p q
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:172
noncomputable def bcProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
bcWeight G C p q ω / bcZ G C p q
PhyslibExt/StatisticalMechanics/RandomCluster/MonoBC.lean:152
noncomputable def ocd_inducedWiring (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vin where
Adj x y := x ≠ y ∧ (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)
symm := by
refine ⟨?_⟩
rintro x y ⟨hne, hreach⟩
exact ⟨hne.symm, hreach.symm⟩
loopless := ⟨by rintro x ⟨hne, _⟩; exact hne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:249
Uses 8 · Used by 1
LemmaFree inner measure is dominated by the conditional outer measure#✓fully proved
The free FK measure on G_in is dominated by the restricted conditional outer measure (for q
≥ 1).
lemma ocd_free_le_condBcProb_innerRestrict
(hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV)
{p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q)
(ψ : ConfigSpace (Sym2 Vout))
{A : Set (ConfigSpace (Sym2 Vin))} (hA : IsIncreasing A) :
(∑ ω, A.indicator (fun _ => (1 : ℝ)) ω * fkProb Gin p q ω) ≤
∑ ρ, (ocd_innerRestrict ιV ⁻¹' A).indicator
(fun _ => (1 : ℝ)) ρ *
condBcProb Gout
(StatMech.Lattice.boundaryCliqueGraph bdryOut) p q
(ocd_innerEdgeFinset (Vin := Vin) ιV) ψ ρ
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def IsIncreasing (A : Set (ConfigSpace E)) : Prop := IsUpperSet A
MathlibExt/Probability/CorrelationInequalities/IncreasingEvent.lean:55
noncomputable def fkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
fkWeight G p q ω / fkZ G p q
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:172
noncomputable def ocd_innerRestrict (ρ : ConfigSpace (Sym2 Vout)) : ConfigSpace (Sym2 Vin) :=
fun e => ρ (ocd_innerEdge ιV e)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:124
noncomputable def condBcProb (p q : ℝ) (F : Finset (Sym2 V)) (ψ ω : ConfigSpace (Sym2 V)) : ℝ :=
if AgreesOff F ψ ω then bcWeight G C p q ω / inducedBcZ G C p q F ψ else 0
PhyslibExt/StatisticalMechanics/RandomCluster/WiredDominationInner.lean:113
def boundaryCliqueGraph : SimpleGraph V := SimpleGraph.fromRel (wireRel bdry)
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:121
noncomputable def ocd_innerEdgeFinset : Finset (Sym2 Vout) :=
Finset.univ.image (ocd_innerEdge ιV)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:128
Uses 15
E. Averaging over outside configurations
DefinitionProjection closing every inner edge#✓fully proved
The projection of a configuration on G_out that closes every inner edge.
noncomputable def ocd_outProj (ιV : Vin → Vout) (ρ : ConfigSpace (Sym2 Vout)) :
ConfigSpace (Sym2 Vout) :=
ocd_psiExt ιV ρ (fun _ => false)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_psiExt (ψ : ConfigSpace (Sym2 Vout)) (ω : ConfigSpace (Sym2 Vin)) :
ConfigSpace (Sym2 Vout) :=
fun e => if h : e ∈ Set.range (ocd_innerEdge ιV) then ω h.choose else ψ e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:119
Uses 2 · Used by 10
LemmaProjected configuration is closed on inner edges#✓fully proved
The projection closes inner edges.
lemma ocd_outProj_eq_false_of_range (hι : Function.Injective ιV) (ρ : ConfigSpace (Sym2 Vout))
{e : Sym2 Vout} (he : e ∈ Set.range (ocd_innerEdge ιV)) :
ocd_outProj ιV ρ e = false
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
noncomputable def ocd_outProj (ιV : Vin → Vout) (ρ : ConfigSpace (Sym2 Vout)) :
ConfigSpace (Sym2 Vout) :=
ocd_psiExt ιV ρ (fun _ => false)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:864
LemmaProjection keeps non-inner edges#✓fully proved
The projection keeps non-inner edges.
lemma ocd_outProj_eq_of_not_range (ρ : ConfigSpace (Sym2 Vout))
{e : Sym2 Vout} (he : e ∉ Set.range (ocd_innerEdge ιV)) :
ocd_outProj ιV ρ e = ρ e
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
noncomputable def ocd_outProj (ιV : Vin → Vout) (ρ : ConfigSpace (Sym2 Vout)) :
ConfigSpace (Sym2 Vout) :=
ocd_psiExt ιV ρ (fun _ => false)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:864
LemmaIdempotence of the inner-edge projection#✓fully proved
The projection is idempotent.
lemma ocd_outProj_idem (hι : Function.Injective ιV) (ρ : ConfigSpace (Sym2 Vout)) :
ocd_outProj ιV (ocd_outProj ιV ρ) = ocd_outProj ιV ρ
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_outProj (ιV : Vin → Vout) (ρ : ConfigSpace (Sym2 Vout)) :
ConfigSpace (Sym2 Vout) :=
ocd_psiExt ιV ρ (fun _ => false)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:864
LemmaProjection fibres are conditioning fibres#✓fully proved
The fibre of the projection over a projected configuration is its conditioning fibre.
lemma ocd_filter_outProj_eq_condFibre (hι : Function.Injective ιV) (ψ : ConfigSpace (Sym2 Vout))
(hψ : ocd_outProj ιV ψ = ψ) :
Finset.univ.filter (fun ρ => ocd_outProj ιV ρ = ψ)
= condFibre (ocd_innerEdgeFinset (Vin := Vin) ιV) ψ
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_outProj (ιV : Vin → Vout) (ρ : ConfigSpace (Sym2 Vout)) :
ConfigSpace (Sym2 Vout) :=
ocd_psiExt ιV ρ (fun _ => false)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:864
noncomputable def condFibre (F : Finset (Sym2 V)) (ψ : ConfigSpace (Sym2 V)) :
Finset (ConfigSpace (Sym2 V)) :=
Finset.univ.filter (AgreesOff F ψ)
PhyslibExt/StatisticalMechanics/RandomCluster/DomainMarkov.lean:85
noncomputable def ocd_innerEdgeFinset : Finset (Sym2 Vout) :=
Finset.univ.image (ocd_innerEdge ιV)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:128
Uses 9 · Used by 2
LemmaOuter wired fibre masses sum to one#✓fully proved
The outer wired masses of the fibres over projected configurations sum to one.
lemma ocd_sum_fibreMass_eq_one (hι : Function.Injective ιV) {p q : ℝ}
(hp : 0 < p) (hp1 : p < 1) (hq : 0 < q) :
∑ ψ ∈ Finset.univ.filter (fun ψ => ocd_outProj ιV ψ = ψ),
(∑ σ ∈ condFibre (ocd_innerEdgeFinset (Vin := Vin) ιV) ψ,
bcProb Gout (StatMech.Lattice.boundaryCliqueGraph bdryOut) p q σ) = 1
noncomputable def ocd_outProj (ιV : Vin → Vout) (ρ : ConfigSpace (Sym2 Vout)) :
ConfigSpace (Sym2 Vout) :=
ocd_psiExt ιV ρ (fun _ => false)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:864
noncomputable def condFibre (F : Finset (Sym2 V)) (ψ : ConfigSpace (Sym2 V)) :
Finset (ConfigSpace (Sym2 V)) :=
Finset.univ.filter (AgreesOff F ψ)
PhyslibExt/StatisticalMechanics/RandomCluster/DomainMarkov.lean:85
noncomputable def ocd_innerEdgeFinset : Finset (Sym2 Vout) :=
Finset.univ.image (ocd_innerEdge ιV)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:128
noncomputable def bcProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
bcWeight G C p q ω / bcZ G C p q
PhyslibExt/StatisticalMechanics/RandomCluster/MonoBC.lean:152
def boundaryCliqueGraph : SimpleGraph V := SimpleGraph.fromRel (wireRel bdry)
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:121
Uses 13 · Used by 4
LemmaLaw of total probability over outside configurations#✓fully proved
Law of total probability for the outer wired measure over the configuration off the inner
edges. See also bcProb_fibre_decompose in FKDisjointBoxDomainMarkov for a general
conditioned edge set.
lemma ocd_bcProb_decompose (hι : Function.Injective ιV) {p q : ℝ}
(hp : 0 < p) (hp1 : p < 1) (hq : 0 < q) (B : Set (ConfigSpace (Sym2 Vout))) :
(∑ ρ, B.indicator (fun _ => (1:ℝ)) ρ
* bcProb Gout (StatMech.Lattice.boundaryCliqueGraph bdryOut) p q ρ)
= ∑ ψ ∈ Finset.univ.filter (fun ψ => ocd_outProj ιV ψ = ψ),
(∑ σ ∈ condFibre (ocd_innerEdgeFinset (Vin := Vin) ιV) ψ,
bcProb Gout (StatMech.Lattice.boundaryCliqueGraph bdryOut) p q σ)
* (∑ ρ, B.indicator (fun _ => (1:ℝ)) ρ
* condBcProb Gout (StatMech.Lattice.boundaryCliqueGraph bdryOut) p q
(ocd_innerEdgeFinset (Vin := Vin) ιV) ψ ρ)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def bcProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
bcWeight G C p q ω / bcZ G C p q
PhyslibExt/StatisticalMechanics/RandomCluster/MonoBC.lean:152
def boundaryCliqueGraph : SimpleGraph V := SimpleGraph.fromRel (wireRel bdry)
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:121
noncomputable def ocd_outProj (ιV : Vin → Vout) (ρ : ConfigSpace (Sym2 Vout)) :
ConfigSpace (Sym2 Vout) :=
ocd_psiExt ιV ρ (fun _ => false)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:864
noncomputable def condFibre (F : Finset (Sym2 V)) (ψ : ConfigSpace (Sym2 V)) :
Finset (ConfigSpace (Sym2 V)) :=
Finset.univ.filter (AgreesOff F ψ)
PhyslibExt/StatisticalMechanics/RandomCluster/DomainMarkov.lean:85
noncomputable def ocd_innerEdgeFinset : Finset (Sym2 Vout) :=
Finset.univ.image (ocd_innerEdge ιV)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:128
noncomputable def condBcProb (p q : ℝ) (F : Finset (Sym2 V)) (ψ ω : ConfigSpace (Sym2 V)) : ℝ :=
if AgreesOff F ψ ω then bcWeight G C p q ω / inducedBcZ G C p q F ψ else 0
PhyslibExt/StatisticalMechanics/RandomCluster/WiredDominationInner.lean:113
Uses 15 · Used by 4
LemmaConditional outer wired probability at most the inner wired one, \(q \ge 1\)#✓fully proved
Conditioned on ψ, the restricted outer wired probability of an increasing event is at most
its wired probability on G_in, if the induced wiring is coarser than the clique on ∂_in.
lemma ocd_condBcProb_innerRestrict_le (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (bdryIn : Vin → Prop) [DecidablePred bdryIn]
{p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q)
(ψ : ConfigSpace (Sym2 Vout))
(hwire : ocd_inducedWiring Gout ιV bdryOut ψ ≤ StatMech.Lattice.boundaryCliqueGraph bdryIn)
{A : Set (ConfigSpace (Sym2 Vin))} (hA : IsIncreasing A) :
(∑ ρ, (ocd_innerRestrict ιV ⁻¹' A).indicator (fun _ => (1:ℝ)) ρ
* condBcProb Gout (StatMech.Lattice.boundaryCliqueGraph bdryOut) p q
(ocd_innerEdgeFinset (Vin := Vin) ιV) ψ ρ)
≤ ∑ ω, A.indicator (fun _ => (1:ℝ)) ω * wiredFkProb Gin bdryIn p q ω
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_inducedWiring (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vin where
Adj x y := x ≠ y ∧ (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)
symm := by
refine ⟨?_⟩
rintro x y ⟨hne, hreach⟩
exact ⟨hne.symm, hreach.symm⟩
loopless := ⟨by rintro x ⟨hne, _⟩; exact hne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:249
def boundaryCliqueGraph : SimpleGraph V := SimpleGraph.fromRel (wireRel bdry)
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:121
def IsIncreasing (A : Set (ConfigSpace E)) : Prop := IsUpperSet A
MathlibExt/Probability/CorrelationInequalities/IncreasingEvent.lean:55
noncomputable def ocd_innerRestrict (ρ : ConfigSpace (Sym2 Vout)) : ConfigSpace (Sym2 Vin) :=
fun e => ρ (ocd_innerEdge ιV e)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:124
noncomputable def condBcProb (p q : ℝ) (F : Finset (Sym2 V)) (ψ ω : ConfigSpace (Sym2 V)) : ℝ :=
if AgreesOff F ψ ω then bcWeight G C p q ω / inducedBcZ G C p q F ψ else 0
PhyslibExt/StatisticalMechanics/RandomCluster/WiredDominationInner.lean:113
noncomputable def ocd_innerEdgeFinset : Finset (Sym2 Vout) :=
Finset.univ.image (ocd_innerEdge ιV)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:128
noncomputable def wiredFkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
wiredFkWeight G bdry p q ω / wiredFkZ G bdry p q
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:105
Uses 15 · Used by 2
LemmaInner wired domination of the restricted outer wired measure#✓fully proved
Domination of the restricted outer wired measure by the inner wired measure on increasing
events, when every induced wiring is coarser than the clique on ∂_in (for q ≥ 1).
lemma ocd_wired_inner_dominated_bcProb (hι : Function.Injective ιV)
(hadjm : ocd_AdjMatch Gin Gout ιV) (bdryIn : Vin → Prop) [DecidablePred bdryIn]
{p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q)
(hwire : ∀ ψ : ConfigSpace (Sym2 Vout),
ocd_inducedWiring Gout ιV bdryOut ψ ≤ StatMech.Lattice.boundaryCliqueGraph bdryIn)
{A : Set (ConfigSpace (Sym2 Vin))} (hA : IsIncreasing A) :
(∑ ρ, (ocd_innerRestrict ιV ⁻¹' A).indicator (fun _ => (1:ℝ)) ρ
* bcProb Gout (StatMech.Lattice.boundaryCliqueGraph bdryOut) p q ρ)
≤ ∑ ω, A.indicator (fun _ => (1:ℝ)) ω * wiredFkProb Gin bdryIn p q ω
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_inducedWiring (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vin where
Adj x y := x ≠ y ∧ (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)
symm := by
refine ⟨?_⟩
rintro x y ⟨hne, hreach⟩
exact ⟨hne.symm, hreach.symm⟩
loopless := ⟨by rintro x ⟨hne, _⟩; exact hne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:249
def boundaryCliqueGraph : SimpleGraph V := SimpleGraph.fromRel (wireRel bdry)
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:121
def IsIncreasing (A : Set (ConfigSpace E)) : Prop := IsUpperSet A
MathlibExt/Probability/CorrelationInequalities/IncreasingEvent.lean:55
noncomputable def ocd_innerRestrict (ρ : ConfigSpace (Sym2 Vout)) : ConfigSpace (Sym2 Vin) :=
fun e => ρ (ocd_innerEdge ιV e)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:124
noncomputable def bcProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
bcWeight G C p q ω / bcZ G C p q
PhyslibExt/StatisticalMechanics/RandomCluster/MonoBC.lean:152
noncomputable def wiredFkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
wiredFkWeight G bdry p q ω / wiredFkZ G bdry p q
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:105
Uses 20 · Used by 1
F. Sub-boxes of the hypercubic lattice
LemmaLattice inclusion matches induced adjacency#✓fully proved
The inclusion of a vertex set of ℤ^d into a larger one matches the induced hypercubic
adjacency.
lemma ocd_latticeAdjMatch {Sin Sout : Set (Site d)} [Fintype Sin] [Fintype Sout]
(ιV : {y : Site d // y ∈ Sin} → {y : Site d // y ∈ Sout})
(hιval : ∀ x, (ιV x : Site d) = (x : Site d)) :
ocd_AdjMatch (SimpleGraph.comap Subtype.val (hypercubicLattice d))
(SimpleGraph.comap Subtype.val (hypercubicLattice d)) ιV
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def ocd_AdjMatch : Prop := ∀ x y, Gin.Adj x y ↔ Gout.Adj (ιV x) (ιV y)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:111
def hypercubicLattice (d : ℕ) : SimpleGraph (Site d) where
Adj := NearestNeighbour d
symm := ⟨fun _ _ h => nearestNeighbour_symm d h⟩
loopless := nearestNeighbour_irrefl d
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:76
Uses 3 · Used by 5
LemmaInner vertex with an outside-graph edge lies on the inner boundary#✓fully proved
An inner vertex joined to a non-inner vertex in the outside graph lies on the inner boundary.
lemma ocd_bdryIn_of_outsideGraph_adj [Fintype Sin] [Fintype Sout]
(ιV : {y : Site d // y ∈ Sin} → {y : Site d // y ∈ Sout})
(hιval : ∀ x, (ιV x : Site d) = (x : Site d))
(bdryOut : {y : Site d // y ∈ Sout} → Prop) [DecidablePred bdryOut]
(bdryIn : {y : Site d // y ∈ Sin} → Prop) [DecidablePred bdryIn]
(hmargin : ∀ x : {y : Site d // y ∈ Sin}, ¬ bdryOut (ιV x))
(hbdryIn : ∀ (x : {y : Site d // y ∈ Sin}) (z : Site d),
NearestNeighbour d (x : Site d) z → z ∉ Sin → bdryIn x)
(ψ : ConfigSpace (Sym2 {y : Site d // y ∈ Sout}))
{x : {y : Site d // y ∈ Sin}} {z : {y : Site d // y ∈ Sout}}
(h : (ocd_outsideGraph (SimpleGraph.comap Subtype.val (hypercubicLattice d)) ιV bdryOut ψ).Adj
(ιV x) z) :
bdryIn x
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def NearestNeighbour (d : ℕ) (x y : Site d) : Prop :=
(∑ i, (x i - y i).natAbs) = 1
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:58
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_outsideGraph (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vout :=
ocd_outsideOpenGraph Gout ιV ψ ⊔ StatMech.Lattice.boundaryCliqueGraph bdryOut
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:231
def hypercubicLattice (d : ℕ) : SimpleGraph (Site d) where
Adj := NearestNeighbour d
symm := ⟨fun _ _ h => nearestNeighbour_symm d h⟩
loopless := nearestNeighbour_irrefl d
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:76
Uses 8 · Used by 1
LemmaLattice induced wirings are coarser than the inner boundary clique#✓fully proved
For sub-boxes of ℤ^d avoiding the outer boundary, every induced wiring is coarser than the
clique on the inner boundary.
lemma ocd_latticeInducedWiring_le [Fintype Sin] [Fintype Sout]
(ιV : {y : Site d // y ∈ Sin} → {y : Site d // y ∈ Sout})
(hιval : ∀ x, (ιV x : Site d) = (x : Site d)) (hιinj : Function.Injective ιV)
(bdryOut : {y : Site d // y ∈ Sout} → Prop) [DecidablePred bdryOut]
(bdryIn : {y : Site d // y ∈ Sin} → Prop) [DecidablePred bdryIn]
(hmargin : ∀ x : {y : Site d // y ∈ Sin}, ¬ bdryOut (ιV x))
(hbdryIn : ∀ (x : {y : Site d // y ∈ Sin}) (z : Site d),
NearestNeighbour d (x : Site d) z → z ∉ Sin → bdryIn x)
(ψ : ConfigSpace (Sym2 {y : Site d // y ∈ Sout})) :
ocd_inducedWiring (SimpleGraph.comap Subtype.val (hypercubicLattice d)) ιV bdryOut ψ
≤ StatMech.Lattice.boundaryCliqueGraph bdryIn
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def NearestNeighbour (d : ℕ) (x y : Site d) : Prop :=
(∑ i, (x i - y i).natAbs) = 1
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:58
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def ocd_inducedWiring (ψ : ConfigSpace (Sym2 Vout)) : SimpleGraph Vin where
Adj x y := x ≠ y ∧ (ocd_outsideGraph Gout ιV bdryOut ψ).Reachable (ιV x) (ιV y)
symm := by
refine ⟨?_⟩
rintro x y ⟨hne, hreach⟩
exact ⟨hne.symm, hreach.symm⟩
loopless := ⟨by rintro x ⟨hne, _⟩; exact hne rfl⟩
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:249
def hypercubicLattice (d : ℕ) : SimpleGraph (Site d) where
Adj := NearestNeighbour d
symm := ⟨fun _ _ h => nearestNeighbour_symm d h⟩
loopless := nearestNeighbour_irrefl d
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:76
def boundaryCliqueGraph : SimpleGraph V := SimpleGraph.fromRel (wireRel bdry)
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:121
Uses 9 · Used by 2
LemmaInner wired domination for vertex sets of \(\mathbb{Z}^d\)#✓fully proved
For a vertex set of ℤ^d inside a larger one and avoiding its wired boundary, the restricted
outer wired FK measure is dominated by the inner wired FK measure on increasing events (for q
≥ 1).
lemma ocd_latticeWired_inner_dominated [Fintype Sin] [Fintype Sout]
(ιV : {y : Site d // y ∈ Sin} → {y : Site d // y ∈ Sout})
(hιval : ∀ x, (ιV x : Site d) = (x : Site d)) (hιinj : Function.Injective ιV)
(bdryOut : {y : Site d // y ∈ Sout} → Prop) [DecidablePred bdryOut]
(bdryIn : {y : Site d // y ∈ Sin} → Prop) [DecidablePred bdryIn]
(hmargin : ∀ x : {y : Site d // y ∈ Sin}, ¬ bdryOut (ιV x))
(hbdryIn : ∀ (x : {y : Site d // y ∈ Sin}) (z : Site d),
NearestNeighbour d (x : Site d) z → z ∉ Sin → bdryIn x)
{p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q)
{A : Set (ConfigSpace (Sym2 {y : Site d // y ∈ Sin}))} (hA : IsIncreasing A) :
(∑ ρ, (ocd_innerRestrict ιV ⁻¹' A).indicator (fun _ => (1:ℝ)) ρ
* wiredFkProb (SimpleGraph.comap Subtype.val (hypercubicLattice d)) bdryOut p q ρ)
≤ ∑ ω, A.indicator (fun _ => (1:ℝ)) ω
* wiredFkProb (SimpleGraph.comap Subtype.val (hypercubicLattice d)) bdryIn p q ω
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def NearestNeighbour (d : ℕ) (x y : Site d) : Prop :=
(∑ i, (x i - y i).natAbs) = 1
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:58
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def IsIncreasing (A : Set (ConfigSpace E)) : Prop := IsUpperSet A
MathlibExt/Probability/CorrelationInequalities/IncreasingEvent.lean:55
noncomputable def ocd_innerRestrict (ρ : ConfigSpace (Sym2 Vout)) : ConfigSpace (Sym2 Vin) :=
fun e => ρ (ocd_innerEdge ιV e)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:124
noncomputable def wiredFkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
wiredFkWeight G bdry p q ω / wiredFkZ G bdry p q
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:105
def hypercubicLattice (d : ℕ) : SimpleGraph (Site d) where
Adj := NearestNeighbour d
symm := ⟨fun _ _ h => nearestNeighbour_symm d h⟩
loopless := nearestNeighbour_irrefl d
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:76
Uses 16 · Used by 1
LemmaRestriction pulls back all-open events to their images#✓fully proved
The pullback of "all edges of t are open" under restriction is "all edges of ι(t) are
open".
lemma ocd_innerRestrict_preimage_multiOpenEvent (hι : Function.Injective ιV)
(t : Finset (Sym2 Vin)) :
ocd_innerRestrict ιV ⁻¹' (med_genericMultiOpenEvent t)
= med_genericMultiOpenEvent (t.image (ocd_innerEdge ιV))
noncomputable def ocd_innerRestrict (ρ : ConfigSpace (Sym2 Vout)) : ConfigSpace (Sym2 Vin) :=
fun e => ρ (ocd_innerEdge ιV e)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:124
def med_genericMultiOpenEvent {V : Type*} (t : Finset (Sym2 V)) :
Set (ConfigSpace (Sym2 V)) :=
{ω | ∀ e ∈ t, ω e = true}
PhyslibExt/StatisticalMechanics/RandomCluster/MultiEdgeDecay.lean:84
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
Uses 4 · Used by 5
LemmaOuter wired all-open probability at most the inner wired one#✓fully proved
For a vertex set of ℤ^d inside a larger one and avoiding its wired boundary, the outer wired
probability that all edges of ι(t) are open is at most the inner wired probability that all
edges of t are open (for q ≥ 1).
StatMech.FK.ocd_latticeWired_multiMass_dominated · 15 lines
lemma ocd_latticeWired_multiMass_dominated [Fintype Sin] [Fintype Sout]
(ιV : {y : Site d // y ∈ Sin} → {y : Site d // y ∈ Sout})
(hιval : ∀ x, (ιV x : Site d) = (x : Site d)) (hιinj : Function.Injective ιV)
(bdryOut : {y : Site d // y ∈ Sout} → Prop) [DecidablePred bdryOut]
(bdryIn : {y : Site d // y ∈ Sin} → Prop) [DecidablePred bdryIn]
(hmargin : ∀ x : {y : Site d // y ∈ Sin}, ¬ bdryOut (ιV x))
(hbdryIn : ∀ (x : {y : Site d // y ∈ Sin}) (z : Site d),
NearestNeighbour d (x : Site d) z → z ∉ Sin → bdryIn x)
{p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q)
(t : Finset (Sym2 {y : Site d // y ∈ Sin})) :
med_multiMassProb
(wiredFkProb (SimpleGraph.comap Subtype.val (hypercubicLattice d)) bdryOut p q)
(t.image (ocd_innerEdge ιV))
≤ med_multiMassProb
(wiredFkProb (SimpleGraph.comap Subtype.val (hypercubicLattice d)) bdryIn p q) t
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def NearestNeighbour (d : ℕ) (x y : Site d) : Prop :=
(∑ i, (x i - y i).natAbs) = 1
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:58
noncomputable def med_multiMassProb (μ : ConfigSpace (Sym2 V) → ℝ) (t : Finset (Sym2 V)) : ℝ :=
∑ ω : ConfigSpace (Sym2 V),
(med_genericMultiOpenEvent t).indicator (fun _ => (1 : ℝ)) ω * μ ω
PhyslibExt/StatisticalMechanics/RandomCluster/MultiEdgeDecay.lean:115
noncomputable def wiredFkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
wiredFkWeight G bdry p q ω / wiredFkZ G bdry p q
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:105
def hypercubicLattice (d : ℕ) : SimpleGraph (Site d) where
Adj := NearestNeighbour d
symm := ⟨fun _ _ h => nearestNeighbour_symm d h⟩
loopless := nearestNeighbour_irrefl d
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:76
def ocd_innerEdge (e : Sym2 Vin) : Sym2 Vout := Sym2.map ιV e
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreDomination.lean:98
Uses 12 · Used by 4
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.