Kac–Ward matrices
AbbreviationSites of the square-lattice torus#✓fully proved
The sites ℤ_L × ℤ_L of the L × L square-lattice torus.
DefinitionNeighbouring site in a given direction on the torus#✓fully proved
The neighbor of a site in direction μ: 0 east, 1 north, 2 west, 3 south.
def ons_dirStep (L : ℕ) (μ : Fin 4) (s : ZMod L × ZMod L) : ZMod L × ZMod L :=
match μ with
| 0 => (s.1 + 1, s.2)
| 1 => (s.1, s.2 + 1)
| 2 => (s.1 - 1, s.2)
| 3 => (s.1, s.2 - 1)
Used by 29
AbbreviationDarts of the square-lattice torus#✓fully proved
Darts (directed edges) of the torus: a starting site and a direction.
Used by 149
DefinitionTurn weight between two lattice directions#✓fully proved
The turn weight from direction μ to direction ν: 1 straight, ω for a left turn, 0 for
a U-turn, ω⁻¹ for a right turn.
noncomputable def ons_turnW (ω : ℂ) (μ ν : Fin 4) : ℂ :=
if ν = μ then 1
else if ν = μ + 1 then ω
else if ν = μ + 2 then 0
else ω⁻¹
Used by 12
DefinitionKac–Ward matrix of the square-lattice torus#✓fully proved
The Kac-Ward matrix: the entry from d₁ to d₂ is x * ons_turnW ω d₁.2 d₂.2 when d₂ starts
at the head of d₁, and 0 otherwise.
noncomputable def ons_KWmat (L : ℕ) (x ω : ℂ) : Matrix (ons_Dart L) (ons_Dart L) ℂ :=
fun d₂ d₁ => if d₂.1 = ons_dirStep L d₁.2 d₁.1 then x * ons_turnW ω d₁.2 d₂.2 else 0
abbrev ons_Dart (L : ℕ) := (ZMod L × ZMod L) × Fin 4
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:63
def ons_dirStep (L : ℕ) (μ : Fin 4) (s : ZMod L × ZMod L) : ZMod L × ZMod L :=
match μ with
| 0 => (s.1 + 1, s.2)
| 1 => (s.1, s.2 + 1)
| 2 => (s.1 - 1, s.2)
| 3 => (s.1, s.2 - 1)
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:55
noncomputable def ons_turnW (ω : ℂ) (μ ν : Fin 4) : ℂ :=
if ν = μ then 1
else if ν = μ + 1 then ω
else if ν = μ + 2 then 0
else ω⁻¹
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:69
Uses 3 · Used by 7
DefinitionTranslation of a dart by a lattice vector#✓fully proved
Translation of a dart by a lattice vector t.
def ons_shiftDart (L : ℕ) (t : ZMod L × ZMod L) (d : ons_Dart L) : ons_Dart L :=
((d.1.1 + t.1, d.1.2 + t.2), d.2)
abbrev ons_Dart (L : ℕ) := (ZMod L × ZMod L) × Fin 4
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:63
Uses 1 · Used by 3
LemmaTrace of a power as a power sum of characteristic roots#✓fully proved
The trace of φ ^ k is the sum of the k-th powers of the roots of the characteristic
polynomial of φ. See also Matrix.trace_eq_sum_roots_charpoly, the case k = 1.
lemma trace_pow_endo {V : Type*} [AddCommGroup V] [Module ℂ V] [FiniteDimensional ℂ V]
(φ : Module.End ℂ V) (k : ℕ) :
LinearMap.trace ℂ V (φ ^ k) = (φ.charpoly.roots.map (fun α => α ^ k)).sum
DefinitionWalk-series square root of det(1 − Λ)#✓fully proved
The walk-series square root of det (1 - Λ): the exponential of minus one half of
∑ₙ (∑ over closed walks of length n + 1 of their weight) / (n + 1).
noncomputable def ons_detWalkRoot {E : Type*} [Fintype E] [DecidableEq E]
(Λ : Matrix E E ℂ) : ℂ :=
Complex.exp (-(∑' n : ℕ,
(∑ v : Fin (n + 1) → E,
∏ k : Fin (n + 1), Λ (v k) (v (k + 1))) / (n + 1)) / 2)
Used by 8
DefinitionMatrix with forbidden rows and columns set to zero#✓fully proved
The matrix Λ with every row and column indexed by a state of forbidden set to zero.
def ons_maskMatrix {E : Type*} [DecidableEq E]
(forbidden : Finset E) (Λ : Matrix E E ℂ) : Matrix E E ℂ :=
fun i j => if i ∈ forbidden ∨ j ∈ forbidden then 0 else Λ i j
Used by 10
DefinitionMatrix with selected columns scaled#✓fully proved
The matrix Λ with every column indexed by an element of S multiplied by t.
def ons_scaleColumns {E : Type*} [DecidableEq E]
(S : Finset E) (t : ℂ) (Lambda : Matrix E E ℂ) : Matrix E E ℂ :=
fun i j => if j ∈ S then t * Lambda i j else Lambda i j
Used by 1
DefinitionTurning phase \(\omega = e^{i\pi/4}\)#✓fully proved
The turning phase ω = e^{iπ/4}, so a turn by ±π/2 contributes ω^{±1} and ω² = i.
noncomputable def ons_turnRoot : ℂ := Complex.exp (Complex.I * (Real.pi / 4))
Used by 19
DefinitionPrimitive L-th root of unity \(e^{2\pi i/L}\)#✓fully proved
The primitive L-th root of unity e^{2πi/L}.
noncomputable def ons_spaceRoot (L : ℕ) : ℂ :=
Complex.exp (2 * Real.pi * Complex.I / L)
DefinitionSector determinant with boundary phases#✓fully proved
The sector determinant: the product of ons_symbolDispersion β over the momenta
(2π(i + a/2) / L, 2π(j + b/2) / L), i, j < L, for boundary phases a, b ∈ {0, 1}.
noncomputable def ons_spinDet (L : ℕ) (β : ℝ) (a b : Fin 2) : ℝ :=
∏ i ∈ Finset.range L, ∏ j ∈ Finset.range L,
ons_symbolDispersion β
(2 * Real.pi * (i + (a.val : ℝ) / 2) / L)
(2 * Real.pi * (j + (b.val : ℝ) / 2) / L)
noncomputable def ons_symbolDispersion (β k₁ k₂ : ℝ) : ℝ :=
(1 + Real.tanh β ^ 2) ^ 2 -
2 * Real.tanh β * (1 - Real.tanh β ^ 2) * (Real.cos k₁ + Real.cos k₂)
PhyslibExt/CondensedMatter/IsingModel/Onsager/IntegrandLimit.lean:160
Uses 1 · Used by 5
DefinitionEdge weight function with one weight scaled by t#✓fully proved
The edge weight function with the weight of edge multiplied by t.
Definition4 × 4 block of the Kac-Ward matrix between a site and the origin#✓fully proved
The 4 × 4 block of the Kac-Ward matrix between the darts at site g and the darts at the
origin.
noncomputable def ons_KWblock (L : ℕ) (x ωt : ℂ) (g : ZMod L × ZMod L) : Matrix (Fin 4) (Fin 4) ℂ :=
fun a b => ons_KWmat L x ωt (g, a) (0, b)
noncomputable def ons_KWmat (L : ℕ) (x ω : ℂ) : Matrix (ons_Dart L) (ons_Dart L) ℂ :=
fun d₂ d₁ => if d₂.1 = ons_dirStep L d₁.2 d₁.1 then x * ons_turnW ω d₁.2 d₂.2 else 0
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:77
Uses 1
DefinitionConvergence radius of the twisted Kac-Ward walk expansion#✓fully proved
The radius 1 / (number of darts) = 1 / (4L²) below which the walk expansion of the twisted
Kac-Ward determinant converges.
noncomputable def ons_KWconvergenceRadius (L : ℕ) [NeZero L] : ℝ :=
(Fintype.card (ons_Dart L) : ℝ)⁻¹
abbrev ons_Dart (L : ℕ) := (ZMod L × ZMod L) × Fin 4
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:63
Uses 1
DefinitionBoundary phase of a step in a direction#✓fully proved
The phase of a step in direction μ: u, v, u⁻¹, v⁻¹ for east, north, west, south.
noncomputable def ons_dirPhase (u v : ℂ) (mu : Fin 4) : ℂ :=
match mu with
| 0 => u
| 1 => v
| 2 => u⁻¹
| 3 => v⁻¹
Used by 9
DefinitionHorizontal displacement of a step in a direction#✓fully proved
The horizontal displacement 1, 0, -1, 0 of a step in direction μ.
def ons_dirExponentX (mu : Fin 4) : ℤ :=
match mu with
| 0 => 1
| 1 => 0
| 2 => -1
| 3 => 0
Used by 1
DefinitionVertical displacement of a step in a direction#✓fully proved
The vertical displacement 0, 1, 0, -1 of a step in direction μ.
def ons_dirExponentY (mu : Fin 4) : ℤ :=
match mu with
| 0 => 0
| 1 => 1
| 2 => 0
| 3 => -1
Used by 1
DefinitionTwisted Kac-Ward matrix with direction phases#✓fully proved
The Kac-Ward matrix with each step multiplied by its direction phase ons_dirPhase u v.
noncomputable def ons_KWmatPhase (L : ℕ) (x omega u v : ℂ) :
Matrix (ons_Dart L) (ons_Dart L) ℂ :=
fun d2 d1 => ons_dirPhase u v d1.2 * ons_KWmat L x omega d2 d1
abbrev ons_Dart (L : ℕ) := (ZMod L × ZMod L) × Fin 4
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:63
noncomputable def ons_dirPhase (u v : ℂ) (mu : Fin 4) : ℂ :=
match mu with
| 0 => u
| 1 => v
| 2 => u⁻¹
| 3 => v⁻¹
PhyslibExt/CondensedMatter/IsingModel/Onsager/KWSpinFourier.lean:59
noncomputable def ons_KWmat (L : ℕ) (x ω : ℂ) : Matrix (ons_Dart L) (ons_Dart L) ℂ :=
fun d₂ d₁ => if d₂.1 = ons_dirStep L d₁.2 d₁.1 then x * ons_turnW ω d₁.2 d₂.2 else 0
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:77
Uses 3 · Used by 12
DefinitionBlock of the twisted Kac-Ward matrix between a site and the origin#✓fully proved
The 4 × 4 block of the twisted Kac-Ward matrix between the darts at g and at the origin.
noncomputable def ons_KWblockPhase (L : ℕ) (x omega u v : ℂ)
(g : ZMod L × ZMod L) : Matrix (Fin 4) (Fin 4) ℂ :=
fun a b => ons_KWmatPhase L x omega u v (g, a) (0, b)
noncomputable def ons_KWmatPhase (L : ℕ) (x omega u v : ℂ) :
Matrix (ons_Dart L) (ons_Dart L) ℂ :=
fun d2 d1 => ons_dirPhase u v d1.2 * ons_KWmat L x omega d2 d1
PhyslibExt/CondensedMatter/IsingModel/Onsager/KWSpinFourier.lean:111
Uses 1 · Used by 3
DefinitionBoundary phase \(e^{i\pi a/L}\)#✓fully proved
The boundary phase e^{iπa/L}, whose L-th power is (-1)^a.
noncomputable def ons_spinPhase (L : ℕ) (a : Fin 2) : ℂ :=
Complex.exp (Complex.I * ((Real.pi * a.val / L : ℝ) : ℂ))
Used by 27
DefinitionEdge-weighted Kac-Ward matrix#✓fully proved
The edge-weighted Kac-Ward matrix: the entry from d₁ to d₂ is the weight of the torus edge
of d₁ times the turn weight, when d₂ starts at the head of d₁.
noncomputable def ons_KWmatWeighted (L : ℕ)
(weight : Sym2 (ZMod L × ZMod L) → ℂ) (omega : ℂ) :
Matrix (ons_Dart L) (ons_Dart L) ℂ :=
fun d2 d1 =>
if d2.1 = ons_dirStep L d1.2 d1.1 then
weight (ons_portEdge L d1) * ons_turnW omega d1.2 d2.2
else 0
abbrev ons_Dart (L : ℕ) := (ZMod L × ZMod L) × Fin 4
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:63
def ons_dirStep (L : ℕ) (μ : Fin 4) (s : ZMod L × ZMod L) : ZMod L × ZMod L :=
match μ with
| 0 => (s.1 + 1, s.2)
| 1 => (s.1, s.2 + 1)
| 2 => (s.1 - 1, s.2)
| 3 => (s.1, s.2 - 1)
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:55
def ons_portEdge (L : ℕ) (d : ons_Dart L) : Sym2 (ZMod L × ZMod L) :=
s(d.1, ons_dirStep L d.2 d.1)
PhyslibExt/CondensedMatter/IsingModel/Onsager/TorusDecoration.lean:405
noncomputable def ons_turnW (ω : ℂ) (μ ν : Fin 4) : ℂ :=
if ν = μ then 1
else if ν = μ + 1 then ω
else if ν = μ + 2 then 0
else ω⁻¹
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:69
Uses 4 · Used by 5
DefinitionEdge-weighted Kac-Ward matrix with direction phases#✓fully proved
The edge-weighted Kac-Ward matrix with each step multiplied by its direction phase.
noncomputable def ons_KWmatWeightedPhase (L : ℕ)
(weight : Sym2 (ZMod L × ZMod L) → ℂ) (omega u v : ℂ) :
Matrix (ons_Dart L) (ons_Dart L) ℂ :=
fun d2 d1 =>
ons_dirPhase u v d1.2 * ons_KWmatWeighted L weight omega d2 d1
abbrev ons_Dart (L : ℕ) := (ZMod L × ZMod L) × Fin 4
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:63
noncomputable def ons_dirPhase (u v : ℂ) (mu : Fin 4) : ℂ :=
match mu with
| 0 => u
| 1 => v
| 2 => u⁻¹
| 3 => v⁻¹
PhyslibExt/CondensedMatter/IsingModel/Onsager/KWSpinFourier.lean:59
noncomputable def ons_KWmatWeighted (L : ℕ)
(weight : Sym2 (ZMod L × ZMod L) → ℂ) (omega : ℂ) :
Matrix (ons_Dart L) (ons_Dart L) ℂ :=
fun d2 d1 =>
if d2.1 = ons_dirStep L d1.2 d1.1 then
weight (ons_portEdge L d1) * ons_turnW omega d1.2 d2.2
else 0
PhyslibExt/CondensedMatter/IsingModel/Onsager/KWWeighted.lean:57
Uses 3 · Used by 11
DefinitionEdge-weighted twisted bucket: walks through a dart, not its reverse#✓fully proved
The total edge-weighted twisted Kac-Ward weight of closed walks of length n + 1 visiting e
but not its reverse.
noncomputable def ons_weightedPhaseBucketE
(L : ℕ) [NeZero L]
(weight : Sym2 (ZMod L × ZMod L) → ℂ)
(omega : ℂ) (a b : Fin 2)
(e : ons_Dart L) (n : ℕ) : ℂ :=
∑ d ∈ Finset.univ.filter (fun d : Fin (n + 1) → ons_Dart L =>
(∃ i, d i = e) ∧ ¬ (∃ j, d j = ons_dartRev L e)),
ons_loopWeight (ons_KWmatWeightedPhase L weight omega
(ons_spinPhase L a) (ons_spinPhase L b)) d
abbrev ons_Dart (L : ℕ) := (ZMod L × ZMod L) × Fin 4
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:63
def ons_dartRev (L : ℕ) (d : ons_Dart L) : ons_Dart L :=
(ons_dirStep L d.2 d.1, d.2 + 2)
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/TurningTelescope.lean:59
noncomputable def ons_loopWeight {E : Type*} [Fintype E] [DecidableEq E] (Λ : Matrix E E ℂ)
{n : ℕ} [NeZero n] (v : Fin n → E) : ℂ := ∏ k : Fin n, Λ (v k) (v (k + 1))
PhyslibExt/CondensedMatter/IsingModel/Onsager/ShermanLoop.lean:56
noncomputable def ons_KWmatWeightedPhase (L : ℕ)
(weight : Sym2 (ZMod L × ZMod L) → ℂ) (omega u v : ℂ) :
Matrix (ons_Dart L) (ons_Dart L) ℂ :=
fun d2 d1 =>
ons_dirPhase u v d1.2 * ons_KWmatWeighted L weight omega d2 d1
PhyslibExt/CondensedMatter/IsingModel/Onsager/KWWeighted.lean:98
noncomputable def ons_spinPhase (L : ℕ) (a : Fin 2) : ℂ :=
Complex.exp (Complex.I * ((Real.pi * a.val / L : ℝ) : ℂ))
PhyslibExt/CondensedMatter/IsingModel/Onsager/KWSpinFourier.lean:268
DefinitionEdge-weighted twisted bucket: walks avoiding a dart and its reverse#✓fully proved
The total edge-weighted twisted Kac-Ward weight of closed walks of length n + 1 visiting
neither e nor its reverse.
noncomputable def ons_weightedPhaseBucketN
(L : ℕ) [NeZero L]
(weight : Sym2 (ZMod L × ZMod L) → ℂ)
(omega : ℂ) (a b : Fin 2)
(e : ons_Dart L) (n : ℕ) : ℂ :=
∑ d ∈ Finset.univ.filter (fun d : Fin (n + 1) → ons_Dart L =>
¬ (∃ i, d i = e) ∧ ¬ (∃ j, d j = ons_dartRev L e)),
ons_loopWeight (ons_KWmatWeightedPhase L weight omega
(ons_spinPhase L a) (ons_spinPhase L b)) d
abbrev ons_Dart (L : ℕ) := (ZMod L × ZMod L) × Fin 4
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:63
def ons_dartRev (L : ℕ) (d : ons_Dart L) : ons_Dart L :=
(ons_dirStep L d.2 d.1, d.2 + 2)
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/TurningTelescope.lean:59
noncomputable def ons_loopWeight {E : Type*} [Fintype E] [DecidableEq E] (Λ : Matrix E E ℂ)
{n : ℕ} [NeZero n] (v : Fin n → E) : ℂ := ∏ k : Fin n, Λ (v k) (v (k + 1))
PhyslibExt/CondensedMatter/IsingModel/Onsager/ShermanLoop.lean:56
noncomputable def ons_KWmatWeightedPhase (L : ℕ)
(weight : Sym2 (ZMod L × ZMod L) → ℂ) (omega u v : ℂ) :
Matrix (ons_Dart L) (ons_Dart L) ℂ :=
fun d2 d1 =>
ons_dirPhase u v d1.2 * ons_KWmatWeighted L weight omega d2 d1
PhyslibExt/CondensedMatter/IsingModel/Onsager/KWWeighted.lean:98
noncomputable def ons_spinPhase (L : ℕ) (a : Fin 2) : ℂ :=
Complex.exp (Complex.I * ((Real.pi * a.val / L : ℝ) : ℂ))
PhyslibExt/CondensedMatter/IsingModel/Onsager/KWSpinFourier.lean:268
DefinitionMasked edge-weighted bucket: walks through a dart, not its reverse#✓fully proved
As ons_weightedPhaseBucketE, with the darts of forbidden masked.
noncomputable def ons_maskWeightedPhaseBucketE
(L : ℕ) [NeZero L]
(weight : Sym2 (ZMod L × ZMod L) → ℂ)
(omega : ℂ) (a b : Fin 2)
(forbidden : Finset (ons_Dart L)) (e : ons_Dart L) (n : ℕ) : ℂ :=
∑ d ∈ Finset.univ.filter (fun d : Fin (n + 1) → ons_Dart L =>
(∃ i, d i = e) ∧ ¬ (∃ j, d j = ons_dartRev L e)),
ons_loopWeight
(ons_maskMatrix forbidden (ons_KWmatWeightedPhase L weight omega
(ons_spinPhase L a) (ons_spinPhase L b))) d
abbrev ons_Dart (L : ℕ) := (ZMod L × ZMod L) × Fin 4
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:63
def ons_dartRev (L : ℕ) (d : ons_Dart L) : ons_Dart L :=
(ons_dirStep L d.2 d.1, d.2 + 2)
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/TurningTelescope.lean:59
noncomputable def ons_loopWeight {E : Type*} [Fintype E] [DecidableEq E] (Λ : Matrix E E ℂ)
{n : ℕ} [NeZero n] (v : Fin n → E) : ℂ := ∏ k : Fin n, Λ (v k) (v (k + 1))
PhyslibExt/CondensedMatter/IsingModel/Onsager/ShermanLoop.lean:56
def ons_maskMatrix {E : Type*} [DecidableEq E]
(forbidden : Finset E) (Λ : Matrix E E ℂ) : Matrix E E ℂ :=
fun i j => if i ∈ forbidden ∨ j ∈ forbidden then 0 else Λ i j
PhyslibExt/CondensedMatter/IsingModel/Onsager/DetWalkExp.lean:69
noncomputable def ons_KWmatWeightedPhase (L : ℕ)
(weight : Sym2 (ZMod L × ZMod L) → ℂ) (omega u v : ℂ) :
Matrix (ons_Dart L) (ons_Dart L) ℂ :=
fun d2 d1 =>
ons_dirPhase u v d1.2 * ons_KWmatWeighted L weight omega d2 d1
PhyslibExt/CondensedMatter/IsingModel/Onsager/KWWeighted.lean:98
noncomputable def ons_spinPhase (L : ℕ) (a : Fin 2) : ℂ :=
Complex.exp (Complex.I * ((Real.pi * a.val / L : ℝ) : ℂ))
PhyslibExt/CondensedMatter/IsingModel/Onsager/KWSpinFourier.lean:268
DefinitionMasked edge-weighted bucket: walks avoiding a dart and its reverse#✓fully proved
As ons_weightedPhaseBucketN, with the darts of forbidden masked.
noncomputable def ons_maskWeightedPhaseBucketN
(L : ℕ) [NeZero L]
(weight : Sym2 (ZMod L × ZMod L) → ℂ)
(omega : ℂ) (a b : Fin 2)
(forbidden : Finset (ons_Dart L)) (e : ons_Dart L) (n : ℕ) : ℂ :=
∑ d ∈ Finset.univ.filter (fun d : Fin (n + 1) → ons_Dart L =>
¬ (∃ i, d i = e) ∧ ¬ (∃ j, d j = ons_dartRev L e)),
ons_loopWeight
(ons_maskMatrix forbidden (ons_KWmatWeightedPhase L weight omega
(ons_spinPhase L a) (ons_spinPhase L b))) d
abbrev ons_Dart (L : ℕ) := (ZMod L × ZMod L) × Fin 4
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/KacWardMatrix.lean:63
def ons_dartRev (L : ℕ) (d : ons_Dart L) : ons_Dart L :=
(ons_dirStep L d.2 d.1, d.2 + 2)
MathlibExt/Combinatorics/SimpleGraph/Lattice/TurningNumber/TurningTelescope.lean:59
noncomputable def ons_loopWeight {E : Type*} [Fintype E] [DecidableEq E] (Λ : Matrix E E ℂ)
{n : ℕ} [NeZero n] (v : Fin n → E) : ℂ := ∏ k : Fin n, Λ (v k) (v (k + 1))
PhyslibExt/CondensedMatter/IsingModel/Onsager/ShermanLoop.lean:56
def ons_maskMatrix {E : Type*} [DecidableEq E]
(forbidden : Finset E) (Λ : Matrix E E ℂ) : Matrix E E ℂ :=
fun i j => if i ∈ forbidden ∨ j ∈ forbidden then 0 else Λ i j
PhyslibExt/CondensedMatter/IsingModel/Onsager/DetWalkExp.lean:69
noncomputable def ons_KWmatWeightedPhase (L : ℕ)
(weight : Sym2 (ZMod L × ZMod L) → ℂ) (omega u v : ℂ) :
Matrix (ons_Dart L) (ons_Dart L) ℂ :=
fun d2 d1 =>
ons_dirPhase u v d1.2 * ons_KWmatWeighted L weight omega d2 d1
PhyslibExt/CondensedMatter/IsingModel/Onsager/KWWeighted.lean:98
noncomputable def ons_spinPhase (L : ℕ) (a : Fin 2) : ℂ :=
Complex.exp (Complex.I * ((Real.pi * a.val / L : ℝ) : ℂ))
PhyslibExt/CondensedMatter/IsingModel/Onsager/KWSpinFourier.lean:268
DefinitionFourier symbol of one minus the Kac-Ward matrix#✓fully proved
The 4 × 4 Fourier symbol of 1 - ons_KWmat at zⱼ = e^{i kⱼ}, rows and columns indexed by
the directions east, north, west, south.
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.