Imports
/-
Copyright (c) 2025 Joseph Tooby-Smith. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Tooby-Smith
-/
module
public import Physlib.QuantumMechanics.HilbertSpaces.FiniteTarget.BasicThe tight binding chain
i. Overview
The tight binding chain corresponds to an electron in motion in a 1d solid with the assumption the electron can sit only on the atoms of the solid.
The solid is assumed to consist of N sites with a separation of a between them
Mathematically, the tight binding chain corresponds to a QM problem located on a lattice with only self and nearest neighbour interactions, with periodic boundary conditions.
ii. Key results
TightBindingChain : The physical parameters making up the tight binding chain.
localizedState : The orthonormal basis of localized states.
hamiltonian : The Hamiltonian of the tight binding chain.
BrillouinZone : The Brillouin zone of the tight binding chain.
QuantaWaveNumber : The quantized wavenumbers of the energy eigenstates.
energyEigenstate : The energy eigenstates of the tight binding chain.
energyEigenvalue : The energy eigenvalues of the tight binding chain.
hamiltonian_energyEigenstate : The Hamiltonian acting on an energy eigenstate
gives the corresponding energy eigenvalue times the energy eigenstate.
iii. Table of contents
A. The setup
A.1. The input data for the tight binding chain
A.2. The Hilbert space
B. The localized states
B.1. The orthonormal basis of localized states
B.2. Notation for localized states
B.3. Orthonormality of the localized states
C. The operator |m⟩⟨n|
C.1. Definition of the operator |m⟩⟨n|
C.2. Notation for the operator |m⟩⟨n|
C.3. The operator |m⟩⟨n| applied to a localized state
D. The Hamiltonian of the tight binding chain
D.1. Hermiticity of the Hamiltonian
D.2. Hamiltonian applied to a localized state
D.3. Mean energy of a localized state
E. The Brillouin zone and quantized wavenumbers
E.1. The Brillouin zone
E.2. The quantized wavenumbers of the energy eigenstates
E.3. Wavenumbers lie in the Brillouin zone
E.4. Expotentials related to the quantized wavenumbers
F. The energy eigenstates and eigenvalues
F.1. The energy eigenstates
F.2. Orthonormality of the energy eigenstates
F.3. The energy eigenvalues
F.4. The time-independent Schrodinger equation
iv. References
https://www.damtp.cam.ac.uk/user/tong/aqm/aqmtwo.pdf
@[expose] public sectionA. The setup
A.1. The input data for the tight binding chain
The physical parameters making up the tight binding chain.
The number of sites, or atoms, in the chain
The distance between the sites
The energy associate with a particle sitting at a fixed site.
The hopping parameter.
structure TightBindingChain where N : Nat
[N_ne_zero : NeZero N] a : ℝ
a_pos : 0 < a E0 : ℝ t : ℝA.2. The Hilbert space
The Hilbert space of a TightBindingchain is the N-dimensional finite dimensional
Hilbert space.
abbrev HilbertSpace := QuantumMechanics.FiniteHilbertSpace (Fin T.N)B. The localized states
Localized states correspond to the electron being located on a specific site in the chain.
B.1. The orthonormal basis of localized states
B.2. Notation for localized states
@[inherit_doc localizedState]
scoped notation "|" n "⟩" => localizedState nThe inner product of two localized states.
scoped notation "⟨" m "|" n "⟩" => ⟪localizedState m, localizedState n⟫_ℂB.3. Orthonormality of the localized states
The localized states are normalized.
lemma localizedState_orthonormal : Orthonormal ℂ (localizedState (T := T)) :=
(localizedState (T := T)).orthonormallemma localizedState_orthonormal_eq_ite (m n : Fin T.N) :
⟨m|n⟩ = if m = n then 1 else 0 := orthonormal_iff_ite.mp T.localizedState_orthonormal _ _
C. The operator |m⟩⟨n|
C.1. Definition of the operator |m⟩⟨n|
C.2. Notation for the operator |m⟩⟨n|
@[inherit_doc localizedComp]
scoped notation "|" n "⟩⟨" m "|" => localizedComp n m
C.3. The operator |m⟩⟨n| applied to a localized state
All goals completed! 🐙The adjoint of localizedComp |m⟩⟨n| is |n⟩⟨m|.
lemma localizedComp_adjoint (m n : Fin T.N) (ψ φ : T.HilbertSpace) :
⟪|m⟩⟨n| ψ, φ⟫_ℂ = ⟪ψ, |n⟩⟨m| φ⟫_ℂ := by T:TightBindingChainm:Fin T.Nn:Fin T.Nψ:T.HilbertSpaceφ:T.HilbertSpace⊢ ⟪|m⟩⟨n| ψ, φ⟫_ℂ = ⟪ψ, |n⟩⟨m| φ⟫_ℂ
simp only [localizedComp, LinearMap.coe_mk, AddHom.coe_mk, inner_smul_left, inner_smul_right,
inner_conj_symm] T:TightBindingChainm:Fin T.Nn:Fin T.Nψ:T.HilbertSpaceφ:T.HilbertSpace⊢ ⟪ψ, localizedState n⟫_ℂ * ⟪localizedState m, φ⟫_ℂ = ⟪localizedState m, φ⟫_ℂ * ⟪ψ, localizedState n⟫_ℂ
ring All goals completed! 🐙D. The Hamiltonian of the tight binding chain
D.1. Hermiticity of the Hamiltonian
The hamiltonian of the tight binding chain is hermitian.
lemma hamiltonian_hermitian (ψ φ : T.HilbertSpace) :
⟪T.hamiltonian ψ, φ⟫_ℂ = ⟪ψ, T.hamiltonian φ⟫_ℂ := by T:TightBindingChainψ:T.HilbertSpaceφ:T.HilbertSpace⊢ ⟪T.hamiltonian ψ, φ⟫_ℂ = ⟪ψ, T.hamiltonian φ⟫_ℂ
simp only [hamiltonian, LinearMap.sub_apply, LinearMap.smul_apply, LinearMap.coe_sum,
Finset.sum_apply, LinearMap.add_apply, inner_sub_left, inner_sub_right] T:TightBindingChainψ:T.HilbertSpaceφ:T.HilbertSpace⊢ ⟪T.E0 • ∑ c, |c⟩⟨c| ψ, φ⟫_ℂ - ⟪T.t • ∑ x, (|x⟩⟨x + 1| ψ + |x + 1⟩⟨x| ψ), φ⟫_ℂ =
⟪ψ, T.E0 • ∑ c, |c⟩⟨c| φ⟫_ℂ - ⟪ψ, T.t • ∑ x, (|x⟩⟨x + 1| φ + |x + 1⟩⟨x| φ)⟫_ℂ
congr 1 e_a T:TightBindingChainψ:T.HilbertSpaceφ:T.HilbertSpace⊢ ⟪T.E0 • ∑ c, |c⟩⟨c| ψ, φ⟫_ℂ = ⟪ψ, T.E0 • ∑ c, |c⟩⟨c| φ⟫_ℂe_a T:TightBindingChainψ:T.HilbertSpaceφ:T.HilbertSpace⊢ ⟪T.t • ∑ x, (|x⟩⟨x + 1| ψ + |x + 1⟩⟨x| ψ), φ⟫_ℂ = ⟪ψ, T.t • ∑ x, (|x⟩⟨x + 1| φ + |x + 1⟩⟨x| φ)⟫_ℂ
· e_a T:TightBindingChainψ:T.HilbertSpaceφ:T.HilbertSpace⊢ ⟪T.E0 • ∑ c, |c⟩⟨c| ψ, φ⟫_ℂ = ⟪ψ, T.E0 • ∑ c, |c⟩⟨c| φ⟫_ℂ -- E0 term
simp only [Finset.smul_sum, sum_inner, inner_sum, inner_smul_left_eq_smul,
inner_smul_right_eq_smul, localizedComp_adjoint] All goals completed! 🐙
· e_a T:TightBindingChainψ:T.HilbertSpaceφ:T.HilbertSpace⊢ ⟪T.t • ∑ x, (|x⟩⟨x + 1| ψ + |x + 1⟩⟨x| ψ), φ⟫_ℂ = ⟪ψ, T.t • ∑ x, (|x⟩⟨x + 1| φ + |x + 1⟩⟨x| φ)⟫_ℂ -- t term
simp only [Finset.smul_sum, smul_add, sum_inner, inner_sum, inner_add_left, inner_add_right,
inner_smul_left_eq_smul, inner_smul_right_eq_smul, localizedComp_adjoint] e_a T:TightBindingChainψ:T.HilbertSpaceφ:T.HilbertSpace⊢ ∑ x, (T.t • ⟪ψ, |x + 1⟩⟨x| φ⟫_ℂ + T.t • ⟪ψ, |x⟩⟨x + 1| φ⟫_ℂ) =
∑ x, (T.t • ⟪ψ, |x⟩⟨x + 1| φ⟫_ℂ + T.t • ⟪ψ, |x + 1⟩⟨x| φ⟫_ℂ)
exact Finset.sum_congr rfl fun n _ => by T:TightBindingChainψ:T.HilbertSpaceφ:T.HilbertSpacen:Fin T.Nx✝:n ∈ Finset.univ⊢ T.t • ⟪ψ, |n + 1⟩⟨n| φ⟫_ℂ + T.t • ⟪ψ, |n⟩⟨n + 1| φ⟫_ℂ = T.t • ⟪ψ, |n⟩⟨n + 1| φ⟫_ℂ + T.t • ⟪ψ, |n + 1⟩⟨n| φ⟫_ℂ ring All goals completed! 🐙D.2. Hamiltonian applied to a localized state
The Hamiltonian applied to the localized state |n⟩ gives
T.E0 • |n⟩ - T.t • (|n + 1⟩ + |n - 1⟩).
lemma hamiltonian_apply_localizedState (n : Fin T.N) :
T.hamiltonian |n⟩ = (T.E0 : ℂ) • |n⟩ - (T.t : ℂ) • (|n + 1⟩ + |n - 1⟩) := by T:TightBindingChainn:Fin T.N⊢ T.hamiltonian (localizedState n) = ↑T.E0 • localizedState n - ↑T.t • (localizedState (n + 1) + localizedState (n - 1))
simp only [hamiltonian, LinearMap.sub_apply, LinearMap.smul_apply, LinearMap.coe_sum,
Finset.sum_apply, LinearMap.add_apply, smul_add, Finset.sum_add_distrib,
localizedComp_apply_localizedState, ← eq_sub_iff_add_eq, Finset.sum_ite_eq', Finset.mem_univ,
if_true] T:TightBindingChainn:Fin T.N⊢ T.E0 • localizedState n - (T.t • localizedState (n - 1) + T.t • localizedState (n + 1)) =
↑T.E0 • localizedState n - (↑T.t • localizedState (n + 1) + ↑T.t • localizedState (n - 1))
module All goals completed! 🐙D.3. Mean energy of a localized state
The energy of a localized state in the tight binding chain is E0.
This lemma assumes that there is more then one site in the chain otherwise the
result is not true.
lemma energy_localizedState (n : Fin T.N) (htn : 1 < T.N) : ⟪|n⟩, T.hamiltonian |n⟩⟫_ℂ = T.E0 := by T:TightBindingChainn:Fin T.Nhtn:1 < T.N⊢ ⟪localizedState n, T.hamiltonian (localizedState n)⟫_ℂ = ↑T.E0
rw [hamiltonian_apply_localizedState T:TightBindingChainn:Fin T.Nhtn:1 < T.N⊢ ⟪localizedState n, ↑T.E0 • localizedState n - ↑T.t • (localizedState (n + 1) + localizedState (n - 1))⟫_ℂ = ↑T.E0 T:TightBindingChainn:Fin T.Nhtn:1 < T.N⊢ ⟪localizedState n, ↑T.E0 • localizedState n - ↑T.t • (localizedState (n + 1) + localizedState (n - 1))⟫_ℂ = ↑T.E0] T:TightBindingChainn:Fin T.Nhtn:1 < T.N⊢ ⟪localizedState n, ↑T.E0 • localizedState n - ↑T.t • (localizedState (n + 1) + localizedState (n - 1))⟫_ℂ = ↑T.E0
simp only [smul_add, inner_sub_right, inner_add_right, inner_smul_right,
localizedState_orthonormal_eq_ite, ↓reduceIte, mul_one, left_eq_add, eq_sub_iff_add_eq,
add_eq_left, Fin.one_eq_zero_iff, mul_ite, mul_zero, sub_eq_self] T:TightBindingChainn:Fin T.Nhtn:1 < T.N⊢ ((if T.N = 1 then ↑T.t else 0) + if T.N = 1 then ↑T.t else 0) = 0
simp [show T.N ≠ 1 from by omega] All goals completed! 🐙E. The Brillouin zone and quantized wavenumbers
E.1. The Brillouin zone
The Brillouin zone of the tight binding model is [-π/a, π/a).
This is the set in which wave functions are uniquely defined.
E.2. The quantized wavenumbers of the energy eigenstates
The wavenumbers associated with the energy eigenstates.
This corresponds to the set 2 π / (a N) * (n - ⌊N/2⌋) for n : Fin T.N.
It is defined as such so it sits in the Brillouin zone.
def QuantaWaveNumber : Set ℝ := {x | (∃ n : Fin T.N,
2 * Real.pi / (T.a * T.N) * ((n : ℝ) - (T.N / 2 : ℕ)) = x)}E.3. Wavenumbers lie in the Brillouin zone
The quantized wavenumbers form a subset of the BrillouinZone.
lemma quantaWaveNumber_subset_brillouinZone : T.QuantaWaveNumber ⊆ T.BrillouinZone := by T:TightBindingChain⊢ T.QuantaWaveNumber ⊆ T.BrillouinZone
rintro _ ⟨n, rfl⟩ T:TightBindingChainn:Fin T.N⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n - ↑(T.N / 2)) ∈ T.BrillouinZone
have hT := T.a_pos T:TightBindingChainn:Fin T.NhT:0 < T.a⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n - ↑(T.N / 2)) ∈ T.BrillouinZone
have hNpos : 0 < T.N := lt_of_le_of_lt (Nat.zero_le _) n.isLt T:TightBindingChainn:Fin T.NhT:0 < T.ahNpos:0 < T.N⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n - ↑(T.N / 2)) ∈ T.BrillouinZone
simp only [BrillouinZone, Set.mem_Ico] T:TightBindingChainn:Fin T.NhT:0 < T.ahNpos:0 < T.N⊢ -Real.pi / T.a ≤ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n - ↑(T.N / 2)) ∧
2 * Real.pi / (T.a * ↑T.N) * (↑↑n - ↑(T.N / 2)) < Real.pi / T.a
generalize T.N = x at * T:TightBindingChainhT:0 < T.ax:ℕn:Fin xhNpos:0 < x⊢ -Real.pi / T.a ≤ 2 * Real.pi / (T.a * ↑x) * (↑↑n - ↑(x / 2)) ∧
2 * Real.pi / (T.a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / T.a
generalize T.a = a at * T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < a⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a
have hx : (0 : ℝ) < x := by T:TightBindingChain⊢ T.QuantaWaveNumber ⊆ T.BrillouinZone T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑x⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a exact_mod_cast hNpos T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑x⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑x⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a
have hn : (n : ℝ) + 1 ≤ x := by T:TightBindingChain⊢ T.QuantaWaveNumber ⊆ T.BrillouinZone T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑x⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a exact_mod_cast n.isLt T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑x⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑x⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a
have hn0 : (0 : ℝ) ≤ n := by T:TightBindingChain⊢ T.QuantaWaveNumber ⊆ T.BrillouinZone T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑n⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a positivity T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑n⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑n⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a
have hx2 : 2 * ((x / 2 : ℕ) : ℝ) ≤ x := by T:TightBindingChain⊢ T.QuantaWaveNumber ⊆ T.BrillouinZone T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑x⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a exact_mod_cast (by T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑n⊢ 2 * (x / 2) ≤ x T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑x⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a omega All goals completed! 🐙 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑x⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a : 2 * (x / 2) ≤ x) T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑x⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a
have hx2' : (x : ℝ) ≤ 2 * ((x / 2 : ℕ) : ℝ) + 1 := by T:TightBindingChain⊢ T.QuantaWaveNumber ⊆ T.BrillouinZone T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a
exact_mod_cast (by T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑x⊢ x ≤ 2 * (x / 2) + 1 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a omega All goals completed! 🐙 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a : x ≤ 2 * (x / 2) + 1) T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) ∧ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a
refine ⟨?_, ?_⟩ refine_1 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2))refine_2 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a
· refine_1 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ -Real.pi / a ≤ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) rw [div_mul_eq_mul_div, refine_1 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ -Real.pi / a ≤ 2 * Real.pi * (↑↑n - ↑(x / 2)) / (a * ↑x) refine_1 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ -Real.pi * (a * ↑x) ≤ 2 * Real.pi * (↑↑n - ↑(x / 2)) * a div_le_div_iff₀ hT (mul_pos hT hx) refine_1 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ -Real.pi * (a * ↑x) ≤ 2 * Real.pi * (↑↑n - ↑(x / 2)) * arefine_1 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ -Real.pi * (a * ↑x) ≤ 2 * Real.pi * (↑↑n - ↑(x / 2)) * a]refine_1 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ -Real.pi * (a * ↑x) ≤ 2 * Real.pi * (↑↑n - ↑(x / 2)) * a
nlinarith [hx2, hn0, mul_pos Real.pi_pos hT] All goals completed! 🐙
· refine_2 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ 2 * Real.pi / (a * ↑x) * (↑↑n - ↑(x / 2)) < Real.pi / a rw [div_mul_eq_mul_div, refine_2 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ 2 * Real.pi * (↑↑n - ↑(x / 2)) / (a * ↑x) < Real.pi / a refine_2 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ 2 * Real.pi * (↑↑n - ↑(x / 2)) * a < Real.pi * (a * ↑x) div_lt_div_iff₀ (mul_pos hT hx) hT refine_2 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ 2 * Real.pi * (↑↑n - ↑(x / 2)) * a < Real.pi * (a * ↑x)refine_2 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ 2 * Real.pi * (↑↑n - ↑(x / 2)) * a < Real.pi * (a * ↑x)]refine_2 T:TightBindingChainx:ℕn:Fin xhNpos:0 < xa:ℝhT:0 < ahx:0 < ↑xhn:↑↑n + 1 ≤ ↑xhn0:0 ≤ ↑↑nhx2:2 * ↑(x / 2) ≤ ↑xhx2':↑x ≤ 2 * ↑(x / 2) + 1⊢ 2 * Real.pi * (↑↑n - ↑(x / 2)) * a < Real.pi * (a * ↑x)
nlinarith [hn, hx2', mul_pos Real.pi_pos hT] All goals completed! 🐙E.4. Expotentials related to the quantized wavenumbers
lemma quantaWaveNumber_exp_N (n : ℕ) (k : T.QuantaWaveNumber) :
Complex.exp (Complex.I * k * n * T.N * T.a) = 1 := by T:TightBindingChainn:ℕk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑n * ↑T.N * ↑T.a) = 1
refine Complex.exp_eq_one_iff.mpr ?_ T:TightBindingChainn:ℕk:↑T.QuantaWaveNumber⊢ ∃ n_1, Complex.I * ↑↑k * ↑n * ↑T.N * ↑T.a = ↑n_1 * (2 * ↑Real.pi * Complex.I)
obtain ⟨_, m, rfl⟩ := k T:TightBindingChainn:ℕm:Fin T.N⊢ ∃ n_1,
Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑m - ↑(T.N / 2)), ⋯⟩ * ↑n * ↑T.N * ↑T.a =
↑n_1 * (2 * ↑Real.pi * Complex.I)
use ((m : Int) - (T.N / 2 : ℕ)) * (n : ℤ) h T:TightBindingChainn:ℕm:Fin T.N⊢ Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑m - ↑(T.N / 2)), ⋯⟩ * ↑n * ↑T.N * ↑T.a =
↑((↑↑m - ↑(T.N / 2)) * ↑n) * (2 * ↑Real.pi * Complex.I)
have hpp : (T.N : ℂ) ≠ 0 := by T:TightBindingChainn:ℕk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑n * ↑T.N * ↑T.a) = 1 h T:TightBindingChainn:ℕm:Fin T.Nhpp:↑T.N ≠ 0⊢ Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑m - ↑(T.N / 2)), ⋯⟩ * ↑n * ↑T.N * ↑T.a =
↑((↑↑m - ↑(T.N / 2)) * ↑n) * (2 * ↑Real.pi * Complex.I) simp [Ne.symm (NeZero.ne' T.N)] h T:TightBindingChainn:ℕm:Fin T.Nhpp:↑T.N ≠ 0⊢ Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑m - ↑(T.N / 2)), ⋯⟩ * ↑n * ↑T.N * ↑T.a =
↑((↑↑m - ↑(T.N / 2)) * ↑n) * (2 * ↑Real.pi * Complex.I)h T:TightBindingChainn:ℕm:Fin T.Nhpp:↑T.N ≠ 0⊢ Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑m - ↑(T.N / 2)), ⋯⟩ * ↑n * ↑T.N * ↑T.a =
↑((↑↑m - ↑(T.N / 2)) * ↑n) * (2 * ↑Real.pi * Complex.I)
have hT' : (T.a : ℂ) ≠ 0 := Complex.ne_zero_of_re_pos T.a_pos h T:TightBindingChainn:ℕm:Fin T.Nhpp:↑T.N ≠ 0hT':↑T.a ≠ 0⊢ Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑m - ↑(T.N / 2)), ⋯⟩ * ↑n * ↑T.N * ↑T.a =
↑((↑↑m - ↑(T.N / 2)) * ↑n) * (2 * ↑Real.pi * Complex.I)
simp only [Complex.ofReal_mul, Complex.ofReal_div, Complex.ofReal_ofNat, Complex.ofReal_natCast,
Complex.ofReal_sub, Int.cast_mul, Int.cast_sub, Int.cast_natCast] h T:TightBindingChainn:ℕm:Fin T.Nhpp:↑T.N ≠ 0hT':↑T.a ≠ 0⊢ Complex.I * (2 * ↑Real.pi / (↑T.a * ↑T.N) * (↑↑m - ↑(T.N / 2))) * ↑n * ↑T.N * ↑T.a =
(↑↑m - ↑(T.N / 2)) * ↑n * (2 * ↑Real.pi * Complex.I)
field_simp All goals completed! 🐙
lemma quantaWaveNumber_exp_sub_one (n : Fin T.N) (k : T.QuantaWaveNumber) :
Complex.exp (Complex.I * k * (n - 1).val * T.a) =
Complex.exp (Complex.I * k * n * T.a) * Complex.exp (- Complex.I * k * T.a) := by T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
rw [Fin.val_sub T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)] T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
trans Complex.exp (Complex.I * ↑↑k * ↑(((T.N - 1 + n)/T.N) * T.N + (n - 1).val) * ↑T.a) T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a)T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
· T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) simp only [Nat.cast_add, Nat.cast_mul] T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a)
have h0 : (Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + (n - 1).val) * ↑T.a)
= Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a +
Complex.I * ↑↑k * ((n - 1).val* ↑T.a) := by T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberh0:Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a =
Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a + Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a) ring T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberh0:Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a =
Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a + Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a) T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberh0:Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a =
Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a + Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a)
rw [h0, T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberh0:Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a =
Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a + Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a + Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)) T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberh0:Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a =
Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a + Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) = 1 * Complex.exp (Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)) Complex.exp_add, T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberh0:Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a =
Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a + Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a) *
Complex.exp (Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)) T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberh0:Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a =
Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a + Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) = 1 * Complex.exp (Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)) quantaWaveNumber_exp_N T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberh0:Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a =
Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a + Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) = 1 * Complex.exp (Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)) T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberh0:Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a =
Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a + Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) = 1 * Complex.exp (Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a))] T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberh0:Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a =
Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a + Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - ↑1 + ↑n) % T.N) * ↑T.a) = 1 * Complex.exp (Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a))
simp only [Fin.val_one', one_mul] T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberh0:Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a =
Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a + Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 % T.N + ↑n) % T.N) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a))
congr 1 T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberh0:Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a =
Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a + Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)⊢ Complex.I * ↑↑k * ↑((T.N - 1 % T.N + ↑n) % T.N) * ↑T.a = Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)
simp only [mul_assoc, mul_eq_mul_left_iff, mul_eq_mul_right_iff, Nat.cast_inj,
Complex.ofReal_eq_zero, Complex.I_ne_zero, or_false] T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberh0:Complex.I * ↑↑k * (↑((T.N - 1 + ↑n) / T.N) * ↑T.N + ↑↑(n - 1)) * ↑T.a =
Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N) * ↑T.N * ↑T.a + Complex.I * ↑↑k * (↑↑(n - 1) * ↑T.a)⊢ ((T.N - 1 % T.N + ↑n) % T.N = ↑(n - 1) ∨ T.a = 0) ∨ ↑k = 0
aesop All goals completed! 🐙
· T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) have hx : (((T.N - 1 + n)/T.N) * T.N + (n - 1).val) =
(T.N - 1 + n) := by T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
conv_rhs => rw [← Nat.div_add_mod' (a := T.N - 1 + n) (b := T.N)] T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber| (T.N - 1 + ↑n) / T.N * T.N + (T.N - 1 + ↑n) % T.N T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
congr e_a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ ↑(n - 1) = (T.N - 1 + ↑n) % T.N T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
by_cases hn : T.N = 1 pos T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhn:T.N = 1⊢ ↑(n - 1) = (T.N - 1 + ↑n) % T.Nneg T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhn:¬T.N = 1⊢ ↑(n - 1) = (T.N - 1 + ↑n) % T.N T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
· pos T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhn:T.N = 1⊢ ↑(n - 1) = (T.N - 1 + ↑n) % T.N T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) simp only [hn, tsub_self, zero_add] pos T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhn:T.N = 1⊢ ↑(n - 1) = ↑n % 1 T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
have h0 : n = 0 := by T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) pos T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhn:T.N = 1h0:n = 0⊢ ↑(n - 1) = ↑n % 1 T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) omegapos T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhn:T.N = 1h0:n = 0⊢ ↑(n - 1) = ↑n % 1 T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)pos T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhn:T.N = 1h0:n = 0⊢ ↑(n - 1) = ↑n % 1 T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
subst h0 pos T:TightBindingChaink:↑T.QuantaWaveNumberhn:T.N = 1⊢ ↑(0 - 1) = ↑0 % 1 T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
simpa using hn All goals completed! 🐙 T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
· neg T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhn:¬T.N = 1⊢ ↑(n - 1) = (T.N - 1 + ↑n) % T.N T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) rw [@Fin.val_sub neg T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhn:¬T.N = 1⊢ (T.N - ↑1 + ↑n) % T.N = (T.N - 1 + ↑n) % T.N neg T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhn:¬T.N = 1⊢ (T.N - ↑1 + ↑n) % T.N = (T.N - 1 + ↑n) % T.N T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)]neg T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhn:¬T.N = 1⊢ (T.N - ↑1 + ↑n) % T.N = (T.N - 1 + ↑n) % T.N T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
congr neg.e_a.e_a.e_a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhn:¬T.N = 1⊢ ↑1 = 1 T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
simp [Nat.one_mod_eq_one.mpr hn] T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑((T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1)) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
rw [hx T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)] T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.exp (Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
have hl : (Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a) =
Complex.I * ↑↑k * n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a := by T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
simp only [Nat.cast_add] T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑n⊢ Complex.I * ↑↑k * (↑(T.N - 1) + ↑↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
ring T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
rw [hl, T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) Complex.exp_add T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)] T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a)
congr 1 e_a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a) = Complex.exp (-Complex.I * ↑↑k * ↑T.a)
rw [Nat.cast_pred (Nat.pos_of_neZero T.N) e_a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a) = Complex.exp (-Complex.I * ↑↑k * ↑T.a) e_a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a) = Complex.exp (-Complex.I * ↑↑k * ↑T.a)]e_a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a) = Complex.exp (-Complex.I * ↑↑k * ↑T.a)
have hl : (Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a) =
Complex.I * ↑↑k * (1 : ℕ) * ↑T.N * ↑T.a + (- Complex.I * ↑↑k * ↑T.a) := by T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) e_a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl✝:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.ahl:Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a = Complex.I * ↑↑k * ↑1 * ↑T.N * ↑T.a + -Complex.I * ↑↑k * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a) = Complex.exp (-Complex.I * ↑↑k * ↑T.a) ringe_a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl✝:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.ahl:Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a = Complex.I * ↑↑k * ↑1 * ↑T.N * ↑T.a + -Complex.I * ↑↑k * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a) = Complex.exp (-Complex.I * ↑↑k * ↑T.a)e_a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl✝:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.ahl:Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a = Complex.I * ↑↑k * ↑1 * ↑T.N * ↑T.a + -Complex.I * ↑↑k * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a) = Complex.exp (-Complex.I * ↑↑k * ↑T.a)
rw [hl, e_a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl✝:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.ahl:Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a = Complex.I * ↑↑k * ↑1 * ↑T.N * ↑T.a + -Complex.I * ↑↑k * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * ↑1 * ↑T.N * ↑T.a + -Complex.I * ↑↑k * ↑T.a) = Complex.exp (-Complex.I * ↑↑k * ↑T.a) All goals completed! 🐙 Complex.exp_add, e_a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl✝:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.ahl:Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a = Complex.I * ↑↑k * ↑1 * ↑T.N * ↑T.a + -Complex.I * ↑↑k * ↑T.a⊢ Complex.exp (Complex.I * ↑↑k * ↑1 * ↑T.N * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) =
Complex.exp (-Complex.I * ↑↑k * ↑T.a) All goals completed! 🐙 quantaWaveNumber_exp_N, e_a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl✝:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.ahl:Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a = Complex.I * ↑↑k * ↑1 * ↑T.N * ↑T.a + -Complex.I * ↑↑k * ↑T.a⊢ 1 * Complex.exp (-Complex.I * ↑↑k * ↑T.a) = Complex.exp (-Complex.I * ↑↑k * ↑T.a) All goals completed! 🐙 neg_mul, e_a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl✝:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.ahl:Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a = Complex.I * ↑↑k * ↑1 * ↑T.N * ↑T.a + -Complex.I * ↑↑k * ↑T.a⊢ 1 * Complex.exp (-(Complex.I * ↑↑k) * ↑T.a) = Complex.exp (-(Complex.I * ↑↑k) * ↑T.a) All goals completed! 🐙 one_mul e_a T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumberhx:(T.N - 1 + ↑n) / T.N * T.N + ↑(n - 1) = T.N - 1 + ↑nhl✝:Complex.I * ↑↑k * ↑(T.N - 1 + ↑n) * ↑T.a = Complex.I * ↑↑k * ↑↑n * ↑T.a + Complex.I * ↑↑k * ↑(T.N - 1) * ↑T.ahl:Complex.I * ↑↑k * (↑T.N - 1) * ↑T.a = Complex.I * ↑↑k * ↑1 * ↑T.N * ↑T.a + -Complex.I * ↑↑k * ↑T.a⊢ Complex.exp (-(Complex.I * ↑↑k) * ↑T.a) = Complex.exp (-(Complex.I * ↑↑k) * ↑T.a) All goals completed! 🐙] All goals completed! 🐙lemma quantaWaveNumber_exp_add_one (n : Fin T.N) (k : T.QuantaWaveNumber) :
Complex.exp (Complex.I * k * (n + 1).val * T.a) =
Complex.exp (Complex.I * k * n * T.a) * Complex.exp (Complex.I * k * T.a) := by T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber⊢ Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) =
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (Complex.I * ↑↑k * ↑T.a)
conv_rhs =>
rw [show n = (n + 1) - 1 from (add_sub_cancel_right n 1).symm,
quantaWaveNumber_exp_sub_one, mul_assoc, ← Complex.exp_add] T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber| Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a + Complex.I * ↑↑k * ↑T.a)
simp T:TightBindingChainn:Fin T.Nk:↑T.QuantaWaveNumber| Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a)F. The energy eigenstates and eigenvalues
F.1. The energy eigenstates
F.2. Orthonormality of the energy eigenstates
The energy eigenstates of the tight binding chain are orthogonal.
This is a fundamental quantum mechanical result: eigenstates of a Hermitian operator (the Hamiltonian) with distinct eigenvalues are orthogonal. Here we prove it directly using the periodic boundary conditions which quantize the wavenumbers.
The key physical insight is that different wavenumbers k₁ ≠ k₂ give rise to different N-th roots of unity exp(i(k₂-k₁)a), and the sum of all N-th roots of unity equals zero.
lemma energyEigenstate_orthogonal :
Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0 := by T:TightBindingChain⊢ Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0
intro k1 k2 hne T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2⊢ ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0
simp only [energyEigenstate, sum_inner] T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2⊢ ∑ i,
⟪Complex.exp (Complex.I * ↑↑k1 * ↑↑i * ↑T.a) • localizedState i,
∑ n, Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) • localizedState n⟫_ℂ =
0
simp_rw [ T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2⊢ ∑ i,
⟪Complex.exp (Complex.I * ↑↑k1 * ↑↑i * ↑T.a) • localizedState i,
∑ n, Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) • localizedState n⟫_ℂ =
0inner_sum, T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2⊢ ∑ x,
∑ i,
⟪Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a) • localizedState x,
Complex.exp (Complex.I * ↑↑k2 * ↑↑i * ↑T.a) • localizedState i⟫_ℂ =
0 inner_smul_left, T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2⊢ ∑ x,
∑ x_1,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) *
⟪localizedState x, Complex.exp (Complex.I * ↑↑k2 * ↑↑x_1 * ↑T.a) • localizedState x_1⟫_ℂ =
0 inner_smul_right, T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2⊢ ∑ x,
∑ x_1,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) *
(Complex.exp (Complex.I * ↑↑k2 * ↑↑x_1 * ↑T.a) * ⟪localizedState x, localizedState x_1⟫_ℂ) =
0 localizedState_orthonormal_eq_ite T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2⊢ ∑ x,
∑ x_1,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) *
(Complex.exp (Complex.I * ↑↑k2 * ↑↑x_1 * ↑T.a) * if x = x_1 then 1 else 0) =
0]
simp only [mul_ite, mul_one, mul_zero, Finset.sum_ite_eq, Finset.mem_univ, ↓reduceIte] T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0
set ω := Complex.exp (Complex.I * (k2 - k1) * T.a) with hω_def T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0
have hsum_eq : ∑ n : Fin T.N, (starRingEnd ℂ) (Complex.exp (Complex.I * k1 * n * T.a)) *
Complex.exp (Complex.I * k2 * n * T.a) = ∑ i ∈ Finset.range T.N, ω ^ i := by T:TightBindingChain⊢ Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0
rw [Fin.sum_univ_eq_sum_range (fun n =>
(starRingEnd ℂ) (Complex.exp (Complex.I * k1 * n * T.a)) *
Complex.exp (Complex.I * k2 * n * T.a)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)⊢ ∑ i ∈ Finset.range T.N,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑i * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑i * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)⊢ ∑ i ∈ Finset.range T.N,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑i * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑i * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0] T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)⊢ ∑ i ∈ Finset.range T.N,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑i * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑i * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0
refine Finset.sum_congr rfl fun i _ => ?_ T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑i * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑i * ↑T.a) = ω ^ i T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0
rw [starRingEnd_apply, T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ star (Complex.exp (Complex.I * ↑↑k1 * ↑i * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑i * ↑T.a) = ω ^ i T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ Complex.exp ((starRingEnd ℂ) (Complex.I * ↑↑k1 * ↑i * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑i * ↑T.a) = ω ^ i T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0 Complex.star_def, T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑i * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑i * ↑T.a) = ω ^ i T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ Complex.exp ((starRingEnd ℂ) (Complex.I * ↑↑k1 * ↑i * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑i * ↑T.a) = ω ^ i T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0 ← Complex.exp_conj T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ Complex.exp ((starRingEnd ℂ) (Complex.I * ↑↑k1 * ↑i * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑i * ↑T.a) = ω ^ i T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ Complex.exp ((starRingEnd ℂ) (Complex.I * ↑↑k1 * ↑i * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑i * ↑T.a) = ω ^ i T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0] T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ Complex.exp ((starRingEnd ℂ) (Complex.I * ↑↑k1 * ↑i * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑i * ↑T.a) = ω ^ i T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0
simp only [map_mul, Complex.conj_I, Complex.conj_ofReal, Complex.conj_natCast] T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ Complex.exp (-Complex.I * ↑↑k1 * ↑i * ↑T.a) * Complex.exp (Complex.I * ↑↑k2 * ↑i * ↑T.a) = ω ^ i T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0
rw [← Complex.exp_add, T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ Complex.exp (-Complex.I * ↑↑k1 * ↑i * ↑T.a + Complex.I * ↑↑k2 * ↑i * ↑T.a) = ω ^ i T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ Complex.exp (-Complex.I * ↑↑k1 * ↑i * ↑T.a + Complex.I * ↑↑k2 * ↑i * ↑T.a) =
Complex.exp (↑i * (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0 hω_def, T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ Complex.exp (-Complex.I * ↑↑k1 * ↑i * ↑T.a + Complex.I * ↑↑k2 * ↑i * ↑T.a) =
Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a) ^ i T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ Complex.exp (-Complex.I * ↑↑k1 * ↑i * ↑T.a + Complex.I * ↑↑k2 * ↑i * ↑T.a) =
Complex.exp (↑i * (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0 ← Complex.exp_nat_mul T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ Complex.exp (-Complex.I * ↑↑k1 * ↑i * ↑T.a + Complex.I * ↑↑k2 * ↑i * ↑T.a) =
Complex.exp (↑i * (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ Complex.exp (-Complex.I * ↑↑k1 * ↑i * ↑T.a + Complex.I * ↑↑k2 * ↑i * ↑T.a) =
Complex.exp (↑i * (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0] T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)i:ℕx✝:i ∈ Finset.range T.N⊢ Complex.exp (-Complex.I * ↑↑k1 * ↑i * ↑T.a + Complex.I * ↑↑k2 * ↑i * ↑T.a) =
Complex.exp (↑i * (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0
ring_nf T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ x, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑x * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑x * ↑T.a) = 0
rw [hsum_eq T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0] T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have hω_pow : ω ^ T.N = 1 := by T:TightBindingChain⊢ Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
simp only [hω_def, ← Complex.exp_nat_mul] T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ i⊢ Complex.exp (↑T.N * (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)) = 1 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have h2 := quantaWaveNumber_exp_N T 1 k2 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ih2:Complex.exp (Complex.I * ↑↑k2 * ↑1 * ↑T.N * ↑T.a) = 1⊢ Complex.exp (↑T.N * (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)) = 1 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have h1 := quantaWaveNumber_exp_N T 1 k1 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ih2:Complex.exp (Complex.I * ↑↑k2 * ↑1 * ↑T.N * ↑T.a) = 1h1:Complex.exp (Complex.I * ↑↑k1 * ↑1 * ↑T.N * ↑T.a) = 1⊢ Complex.exp (↑T.N * (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)) = 1 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
simp only [Nat.cast_one] at h2 h1 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ih2:Complex.exp (Complex.I * ↑↑k2 * 1 * ↑T.N * ↑T.a) = 1h1:Complex.exp (Complex.I * ↑↑k1 * 1 * ↑T.N * ↑T.a) = 1⊢ Complex.exp (↑T.N * (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)) = 1 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
calc
_ = Complex.exp (Complex.I * k2 * 1 * T.N * T.a - Complex.I * k1 * 1 * T.N * T.a) := by T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ih2:Complex.exp (Complex.I * ↑↑k2 * 1 * ↑T.N * ↑T.a) = 1h1:Complex.exp (Complex.I * ↑↑k1 * 1 * ↑T.N * ↑T.a) = 1⊢ Complex.exp (↑T.N * (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)) =
Complex.exp (Complex.I * ↑↑k2 * 1 * ↑T.N * ↑T.a - Complex.I * ↑↑k1 * 1 * ↑T.N * ↑T.a) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
ring_nf All goals completed! 🐙 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
_ = 1 := by T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ih2:Complex.exp (Complex.I * ↑↑k2 * 1 * ↑T.N * ↑T.a) = 1h1:Complex.exp (Complex.I * ↑↑k1 * 1 * ↑T.N * ↑T.a) = 1⊢ Complex.exp (Complex.I * ↑↑k2 * 1 * ↑T.N * ↑T.a - Complex.I * ↑↑k1 * 1 * ↑T.N * ↑T.a) = 1 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 rw [Complex.exp_sub, T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ih2:Complex.exp (Complex.I * ↑↑k2 * 1 * ↑T.N * ↑T.a) = 1h1:Complex.exp (Complex.I * ↑↑k1 * 1 * ↑T.N * ↑T.a) = 1⊢ Complex.exp (Complex.I * ↑↑k2 * 1 * ↑T.N * ↑T.a) / Complex.exp (Complex.I * ↑↑k1 * 1 * ↑T.N * ↑T.a) = 1 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 h2, T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ih2:Complex.exp (Complex.I * ↑↑k2 * 1 * ↑T.N * ↑T.a) = 1h1:Complex.exp (Complex.I * ↑↑k1 * 1 * ↑T.N * ↑T.a) = 1⊢ 1 / Complex.exp (Complex.I * ↑↑k1 * 1 * ↑T.N * ↑T.a) = 1 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 h1, T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ih2:Complex.exp (Complex.I * ↑↑k2 * 1 * ↑T.N * ↑T.a) = 1h1:Complex.exp (Complex.I * ↑↑k1 * 1 * ↑T.N * ↑T.a) = 1⊢ 1 / 1 = 1 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 div_one T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ih2:Complex.exp (Complex.I * ↑↑k2 * 1 * ↑T.N * ↑T.a) = 1h1:Complex.exp (Complex.I * ↑↑k1 * 1 * ↑T.N * ↑T.a) = 1⊢ 1 = 1 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0] T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have hω_ne_one : ω ≠ 1 := by T:TightBindingChain⊢ Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
intro hω_eq_one T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1⊢ False T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
apply hne T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1⊢ k1 = k2 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
obtain ⟨_, ⟨n1, rfl⟩⟩ := k1 T:TightBindingChaink2:↑T.QuantaWaveNumbern1:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) * ↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1⊢ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ = k2 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
obtain ⟨_, ⟨n2, rfl⟩⟩ := k2 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1⊢ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ = ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
simp only [Subtype.mk.injEq] T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have hexp := Complex.exp_eq_one_iff.mp (hω_def ▸ hω_eq_one) T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1hexp:∃ n,
Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a =
↑n * (2 * ↑Real.pi * Complex.I)⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
obtain ⟨m, hm⟩ := hexp T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤhm:Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a =
↑m * (2 * ↑Real.pi * Complex.I)⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have ha : (T.a : ℂ) ≠ 0 := Complex.ne_zero_of_re_pos T.a_pos T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤhm:Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a =
↑m * (2 * ↑Real.pi * Complex.I)ha:↑T.a ≠ 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have hN : (T.N : ℂ) ≠ 0 := by T:TightBindingChain⊢ Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤhm:Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a =
↑m * (2 * ↑Real.pi * Complex.I)ha:↑T.a ≠ 0hN:↑T.N ≠ 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 simp [Ne.symm (NeZero.ne' T.N)] T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤhm:Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a =
↑m * (2 * ↑Real.pi * Complex.I)ha:↑T.a ≠ 0hN:↑T.N ≠ 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤhm:Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a =
↑m * (2 * ↑Real.pi * Complex.I)ha:↑T.a ≠ 0hN:↑T.N ≠ 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
simp only [Complex.ofReal_mul, Complex.ofReal_div, Complex.ofReal_ofNat,
Complex.ofReal_natCast, Complex.ofReal_sub] at hm T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:Complex.I * (2 * ↑Real.pi / (↑T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) - 2 * ↑Real.pi / (↑T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2))) *
↑T.a =
↑m * (2 * ↑Real.pi * Complex.I)⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
field_simp at hm T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑m⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have hm_int : (n2 : ℤ) - n1 = T.N * m := by T:TightBindingChain⊢ Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * m⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have hm_eq : (n2 : ℂ) - n1 = (T.N : ℂ) * m := by T:TightBindingChain⊢ Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_eq:↑↑n2 - ↑↑n1 = ↑T.N * ↑m⊢ ↑↑n2 - ↑↑n1 = ↑T.N * m T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * m⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 ring_nf at hm ⊢ T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑↑n1 = ↑T.N * ↑m⊢ ↑↑n2 - ↑↑n1 = ↑T.N * ↑m T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_eq:↑↑n2 - ↑↑n1 = ↑T.N * ↑m⊢ ↑↑n2 - ↑↑n1 = ↑T.N * m T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * m⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0; exact hm T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_eq:↑↑n2 - ↑↑n1 = ↑T.N * ↑m⊢ ↑↑n2 - ↑↑n1 = ↑T.N * m T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * m⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_eq:↑↑n2 - ↑↑n1 = ↑T.N * ↑m⊢ ↑↑n2 - ↑↑n1 = ↑T.N * m T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * m⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
exact_mod_cast congrArg Complex.re hm_eq T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * m⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * m⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have hn1_lt : (n1 : ℤ) < T.N := by T:TightBindingChain⊢ Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.N⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 exact_mod_cast n1.isLt T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.N⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.N⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have hn2_lt : (n2 : ℤ) < T.N := by T:TightBindingChain⊢ Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.N⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 exact_mod_cast n2.isLt T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.N⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.N⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have hN_pos : (0 : ℤ) < T.N := by T:TightBindingChain⊢ Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.N⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 exact_mod_cast Nat.pos_of_ne_zero (NeZero.ne T.N) T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.N⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.N⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have hm_bound : m = 0 := by T:TightBindingChain⊢ Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have h1 : -(T.N : ℤ) < (n2 : ℤ) - n1 := by T:TightBindingChain⊢ Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nh1:-↑T.N < ↑↑n2 - ↑↑n1⊢ m = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 omega T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nh1:-↑T.N < ↑↑n2 - ↑↑n1⊢ m = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nh1:-↑T.N < ↑↑n2 - ↑↑n1⊢ m = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have h2 : (n2 : ℤ) - n1 < T.N := by T:TightBindingChain⊢ Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nh1:-↑T.N < ↑↑n2 - ↑↑n1h2:↑↑n2 - ↑↑n1 < ↑T.N⊢ m = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 omega T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nh1:-↑T.N < ↑↑n2 - ↑↑n1h2:↑↑n2 - ↑↑n1 < ↑T.N⊢ m = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nh1:-↑T.N < ↑↑n2 - ↑↑n1h2:↑↑n2 - ↑↑n1 < ↑T.N⊢ m = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
rw [hm_int T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nh1:-↑T.N < ↑T.N * mh2:↑T.N * m < ↑T.N⊢ m = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nh1:-↑T.N < ↑T.N * mh2:↑T.N * m < ↑T.N⊢ m = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0] at h1 h2 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nh1:-↑T.N < ↑T.N * mh2:↑T.N * m < ↑T.N⊢ m = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
nlinarith T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhm_int:↑↑n2 - ↑↑n1 = ↑T.N * mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
simp only [hm_bound, mul_zero] at hm_int T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0hm_int:↑↑n2 - ↑↑n1 = 0⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
have heq : n1.val = n2.val := by T:TightBindingChain⊢ Pairwise fun k1 k2 => ⟪T.energyEigenstate k1, T.energyEigenstate k2⟫_ℂ = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0hm_int:↑↑n2 - ↑↑n1 = 0heq:↑n1 = ↑n2⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 omega T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0hm_int:↑↑n2 - ↑↑n1 = 0heq:↑n1 = ↑n2⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChainn1:Fin T.Nn2:Fin T.Nhne:⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ ≠ ⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ω:ℂ :=
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hω_def:ω =
Complex.exp
(Complex.I *
(↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ -
↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩) *
↑T.a)hsum_eq:∑ n,
(starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a)) *
Complex.exp (Complex.I * ↑↑⟨2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)), ⋯⟩ * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_eq_one:ω = 1m:ℤha:↑T.a ≠ 0hN:↑T.N ≠ 0hm:↑↑n2 - ↑(T.N / 2) - (↑↑n1 - ↑(T.N / 2)) = ↑T.N * ↑mhn1_lt:↑↑n1 < ↑T.Nhn2_lt:↑↑n2 < ↑T.NhN_pos:0 < ↑T.Nhm_bound:m = 0hm_int:↑↑n2 - ↑↑n1 = 0heq:↑n1 = ↑n2⊢ 2 * Real.pi / (T.a * ↑T.N) * (↑↑n1 - ↑(T.N / 2)) = 2 * Real.pi / (T.a * ↑T.N) * (↑↑n2 - ↑(T.N / 2)) T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
simp only [heq] T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
-- Use the geometric series formula: (ω - 1) * ∑ω^i = ω^N - 1
-- Since ω^N = 1 and ω ≠ 1, the sum must be zero
have hgeom := mul_geom_sum ω T.N T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1hgeom:(ω - 1) * ∑ i ∈ Finset.range T.N, ω ^ i = ω ^ T.N - 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
rw [hω_pow, T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1hgeom:(ω - 1) * ∑ i ∈ Finset.range T.N, ω ^ i = 1 - 1⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1hgeom:(ω - 1) * ∑ i ∈ Finset.range T.N, ω ^ i = 0⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 sub_self T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1hgeom:(ω - 1) * ∑ i ∈ Finset.range T.N, ω ^ i = 0⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0 T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1hgeom:(ω - 1) * ∑ i ∈ Finset.range T.N, ω ^ i = 0⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0] at hgeom T:TightBindingChaink1:↑T.QuantaWaveNumberk2:↑T.QuantaWaveNumberhne:k1 ≠ k2ω:ℂ := Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hω_def:ω = Complex.exp (Complex.I * (↑↑k2 - ↑↑k1) * ↑T.a)hsum_eq:∑ n, (starRingEnd ℂ) (Complex.exp (Complex.I * ↑↑k1 * ↑↑n * ↑T.a)) * Complex.exp (Complex.I * ↑↑k2 * ↑↑n * ↑T.a) =
∑ i ∈ Finset.range T.N, ω ^ ihω_pow:ω ^ T.N = 1hω_ne_one:ω ≠ 1hgeom:(ω - 1) * ∑ i ∈ Finset.range T.N, ω ^ i = 0⊢ ∑ i ∈ Finset.range T.N, ω ^ i = 0
exact mul_eq_zero.mp hgeom |>.resolve_left (sub_ne_zero.mpr hω_ne_one) All goals completed! 🐙F.3. The energy eigenvalues
F.4. The time-independent Schrodinger equation
The energy eigenstates satisfy the time-independent Schrodinger equation.
lemma hamiltonian_energyEigenstate (k : T.QuantaWaveNumber) :
T.hamiltonian (T.energyEigenstate k) = T.energyEigenvalue k• T.energyEigenstate k := by T:TightBindingChaink:↑T.QuantaWaveNumber⊢ T.hamiltonian (T.energyEigenstate k) = T.energyEigenvalue k • T.energyEigenstate k
trans (T.energyEigenvalue k : ℂ) • T.energyEigenstate k T:TightBindingChaink:↑T.QuantaWaveNumber⊢ T.hamiltonian (T.energyEigenstate k) = ↑(T.energyEigenvalue k) • T.energyEigenstate kT:TightBindingChaink:↑T.QuantaWaveNumber⊢ ↑(T.energyEigenvalue k) • T.energyEigenstate k = T.energyEigenvalue k • T.energyEigenstate k
swap T:TightBindingChaink:↑T.QuantaWaveNumber⊢ ↑(T.energyEigenvalue k) • T.energyEigenstate k = T.energyEigenvalue k • T.energyEigenstate kT:TightBindingChaink:↑T.QuantaWaveNumber⊢ T.hamiltonian (T.energyEigenstate k) = ↑(T.energyEigenvalue k) • T.energyEigenstate k
· T:TightBindingChaink:↑T.QuantaWaveNumber⊢ ↑(T.energyEigenvalue k) • T.energyEigenstate k = T.energyEigenvalue k • T.energyEigenstate k rfl All goals completed! 🐙
rw [energyEigenstate T:TightBindingChaink:↑T.QuantaWaveNumber⊢ T.hamiltonian (∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n) =
↑(T.energyEigenvalue k) • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n T:TightBindingChaink:↑T.QuantaWaveNumber⊢ T.hamiltonian (∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n) =
↑(T.energyEigenvalue k) • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n] T:TightBindingChaink:↑T.QuantaWaveNumber⊢ T.hamiltonian (∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n) =
↑(T.energyEigenvalue k) • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n
have hp1 : (∑ n : Fin T.N, Complex.exp (Complex.I * k * n * T.a) • |n + 1⟩)
= ∑ n : Fin T.N, Complex.exp (Complex.I * k * (n - 1).val * T.a) • |n⟩ := by T:TightBindingChaink:↑T.QuantaWaveNumber⊢ T.hamiltonian (T.energyEigenstate k) = T.energyEigenvalue k • T.energyEigenstate k T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState n⊢ T.hamiltonian (∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n) =
↑(T.energyEigenvalue k) • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n
conv_rhs => rw [← Equiv.sum_comp (Equiv.addRight (1 : Fin T.N))] T:TightBindingChaink:↑T.QuantaWaveNumber| ∑ i, Complex.exp (Complex.I * ↑↑k * ↑↑((Equiv.addRight 1) i - 1) * ↑T.a) • localizedState ((Equiv.addRight 1) i) T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState n⊢ T.hamiltonian (∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n) =
↑(T.energyEigenvalue k) • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n
simp [Equiv.coe_addRight, add_sub_cancel_right] T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState n⊢ T.hamiltonian (∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n) =
↑(T.energyEigenvalue k) • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState n⊢ T.hamiltonian (∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n) =
↑(T.energyEigenvalue k) • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n
have hm1 : (∑ n : Fin T.N, Complex.exp (Complex.I * k * n * T.a) • |n - 1⟩)
= ∑ n : Fin T.N, Complex.exp (Complex.I * k * (n + 1).val * T.a) • |n⟩ := by T:TightBindingChaink:↑T.QuantaWaveNumber⊢ T.hamiltonian (T.energyEigenstate k) = T.energyEigenvalue k • T.energyEigenstate k T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ T.hamiltonian (∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n) =
↑(T.energyEigenvalue k) • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n
conv_rhs => rw [← Equiv.sum_comp (Equiv.subRight (1 : Fin T.N))] T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState n| ∑ i, Complex.exp (Complex.I * ↑↑k * ↑↑((Equiv.subRight 1) i + 1) * ↑T.a) • localizedState ((Equiv.subRight 1) i) T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ T.hamiltonian (∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n) =
↑(T.energyEigenvalue k) • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n
simp [Equiv.subRight_apply, sub_add_cancel] T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ T.hamiltonian (∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n) =
↑(T.energyEigenvalue k) • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ T.hamiltonian (∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n) =
↑(T.energyEigenvalue k) • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n
calc
_ = ∑ n : Fin T.N, Complex.exp (Complex.I * k * n * T.a) • T.hamiltonian |n⟩ := by T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ T.hamiltonian (∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • T.hamiltonian (localizedState n) simp All goals completed! 🐙
_ = ∑ n : Fin T.N, Complex.exp (Complex.I * k * n * T.a) • (T.E0 • |n⟩
- T.t • (|n + 1⟩ + |n - 1⟩)) := by T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • T.hamiltonian (localizedState n) =
∑ n,
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) •
(T.E0 • localizedState n - T.t • (localizedState (n + 1) + localizedState (n - 1)))
simp [hamiltonian_apply_localizedState, Complex.coe_smul, smul_add] All goals completed! 🐙
_ = T.E0 • (∑ n : Fin T.N, Complex.exp (Complex.I * k * n * T.a) • |n⟩)
- T.t • ((∑ n : Fin T.N, Complex.exp (Complex.I * k * n * T.a) • |n + 1⟩) +
(∑ n : Fin T.N, Complex.exp (Complex.I * k * n * T.a) • |n - 1⟩)) := by T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ ∑ n,
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) •
(T.E0 • localizedState n - T.t • (localizedState (n + 1) + localizedState (n - 1))) =
T.E0 • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n -
T.t •
(∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) +
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1))
simp only [smul_add, Finset.smul_sum, ← Finset.sum_add_distrib, ← Finset.sum_sub_distrib] T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ ∑ x,
Complex.exp (Complex.I * ↑↑k * ↑↑x * ↑T.a) •
(T.E0 • localizedState x - (T.t • localizedState (x + 1) + T.t • localizedState (x - 1))) =
∑ x,
(T.E0 • Complex.exp (Complex.I * ↑↑k * ↑↑x * ↑T.a) • localizedState x -
(T.t • Complex.exp (Complex.I * ↑↑k * ↑↑x * ↑T.a) • localizedState (x + 1) +
T.t • Complex.exp (Complex.I * ↑↑k * ↑↑x * ↑T.a) • localizedState (x - 1)))
refine Finset.sum_congr rfl fun n _ => ?_ T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState nn:Fin T.Nx✝:n ∈ Finset.univ⊢ Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) •
(T.E0 • localizedState n - (T.t • localizedState (n + 1) + T.t • localizedState (n - 1))) =
T.E0 • Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n -
(T.t • Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) +
T.t • Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1))
module All goals completed! 🐙
_ = T.E0 • (∑ n : Fin T.N, Complex.exp (Complex.I * k * n * T.a) • |n⟩)
- T.t • ((∑ n : Fin T.N, Complex.exp (Complex.I * k * (n - 1).val * T.a) • |n⟩) +
(∑ n : Fin T.N, Complex.exp (Complex.I * k * (n + 1).val * T.a) • |n⟩)) := by T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ T.E0 • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n -
T.t •
(∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) +
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1)) =
T.E0 • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n -
T.t •
(∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState n +
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n)
rw [hp1, T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ T.E0 • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n -
T.t •
(∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState n +
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1)) =
T.E0 • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n -
T.t •
(∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState n +
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n) All goals completed! 🐙 hm1 T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ T.E0 • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n -
T.t •
(∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState n +
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n) =
T.E0 • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n -
T.t •
(∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState n +
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n) All goals completed! 🐙] All goals completed! 🐙
_ = ∑ n : Fin T.N, (T.E0 * Complex.exp (Complex.I * k * n * T.a) - T.t *
(Complex.exp (Complex.I * k * (n - 1).val * T.a) +
Complex.exp (Complex.I * k * (n + 1).val * T.a))) • |n⟩ := by T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ T.E0 • ∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n -
T.t •
(∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState n +
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n) =
∑ n,
(↑T.E0 * Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) -
↑T.t * (Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) + Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a))) •
localizedState n
simp [Finset.smul_sum, ← Finset.sum_add_distrib,
← add_smul, sub_smul, ← smul_smul, Finset.sum_sub_distrib] All goals completed! 🐙
rw [Finset.smul_sum calc.step T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ ∑ n,
(↑T.E0 * Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) -
↑T.t * (Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) + Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a))) •
localizedState n =
∑ x, ↑(T.energyEigenvalue k) • Complex.exp (Complex.I * ↑↑k * ↑↑x * ↑T.a) • localizedState x calc.step T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ ∑ n,
(↑T.E0 * Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) -
↑T.t * (Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) + Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a))) •
localizedState n =
∑ x, ↑(T.energyEigenvalue k) • Complex.exp (Complex.I * ↑↑k * ↑↑x * ↑T.a) • localizedState x]calc.step T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState n⊢ ∑ n,
(↑T.E0 * Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) -
↑T.t * (Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) + Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a))) •
localizedState n =
∑ x, ↑(T.energyEigenvalue k) • Complex.exp (Complex.I * ↑↑k * ↑↑x * ↑T.a) • localizedState x
refine Finset.sum_congr rfl fun n _ => ?_ calc.step T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState nn:Fin T.Nx✝:n ∈ Finset.univ⊢ (↑T.E0 * Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) -
↑T.t * (Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) + Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a))) •
localizedState n =
↑(T.energyEigenvalue k) • Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState n
rw [smul_smul calc.step T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState nn:Fin T.Nx✝:n ∈ Finset.univ⊢ (↑T.E0 * Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) -
↑T.t * (Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) + Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a))) •
localizedState n =
(↑(T.energyEigenvalue k) * Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a)) • localizedState n calc.step T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState nn:Fin T.Nx✝:n ∈ Finset.univ⊢ (↑T.E0 * Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) -
↑T.t * (Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) + Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a))) •
localizedState n =
(↑(T.energyEigenvalue k) * Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a)) • localizedState n]calc.step T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState nn:Fin T.Nx✝:n ∈ Finset.univ⊢ (↑T.E0 * Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) -
↑T.t * (Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) + Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a))) •
localizedState n =
(↑(T.energyEigenvalue k) * Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a)) • localizedState n
simp only [quantaWaveNumber_exp_sub_one, quantaWaveNumber_exp_add_one, energyEigenvalue,
Complex.ofReal_sub, Complex.ofReal_mul, Complex.ofReal_ofNat, Complex.ofReal_cos,
Complex.cos.eq_1] calc.step T:TightBindingChaink:↑T.QuantaWaveNumberhp1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n + 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n - 1) * ↑T.a) • localizedState nhm1:∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) • localizedState (n - 1) =
∑ n, Complex.exp (Complex.I * ↑↑k * ↑↑(n + 1) * ↑T.a) • localizedState nn:Fin T.Nx✝:n ∈ Finset.univ⊢ (↑T.E0 * Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) -
↑T.t *
(Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (-Complex.I * ↑↑k * ↑T.a) +
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a) * Complex.exp (Complex.I * ↑↑k * ↑T.a))) •
localizedState n =
((↑T.E0 - 2 * ↑T.t * ((Complex.exp (↑↑k * ↑T.a * Complex.I) + Complex.exp (-(↑↑k * ↑T.a) * Complex.I)) / 2)) *
Complex.exp (Complex.I * ↑↑k * ↑↑n * ↑T.a)) •
localizedState n
ring_nf All goals completed! 🐙