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.Electromagnetism.Distributional.Dynamics.IsExtrema
public import Physlib.SpaceAndTime.Space.Norm.Basic
public import Physlib.SpaceAndTime.Space.ConstantSliceDistThe magnetic field around a infinite wire
i. Overview
In this module we verify the electromagnetic properties of an infinite wire carrying a steady current along the x-axis.
ii. Key results
wireCurrentDensity : The current density associated with an infinite wire
carrying a current I along the x-axis.
infiniteWire : The electromagnetic potential associated with an infinite wire
carrying a current I along the x-axis.
infiniteWire_isExterma : The electromagnetic potential of an infinite wire
carrying a current I along the x-axis satisfies Maxwell's equations.
iii. Table of contents
A. The current density
B. The electromagnetic potential
B.1. The scalar potential
B.2. The vector potential
C. The electric field
D. Maxwell's equations
iv. References
@[expose] public sectionA. The current density
The 4-current density of an infinite wire carrying a current I along the x-axis is given by
$$J(t, x, y, z) = (0, I ฮด((y, z)), 0, 0).$$
@[simp]
lemma wireCurrentDensity_chargeDesnity (c : SpeedOfLight) (I : โ) :
(wireCurrentDensity c I).chargeDensity c = 0 := c:SpeedOfLightI:โโข (DistLorentzCurrentDensity.chargeDensity c) ((wireCurrentDensity c) I) = 0
c:SpeedOfLightI:โฮท:๐ข(Time ร Space, โ)โข ((DistLorentzCurrentDensity.chargeDensity c) ((wireCurrentDensity c) I)) ฮท = 0 ฮท
All goals completed! ๐lemma wireCurrentDensity_currentDensity_fst (c : SpeedOfLight) (I : โ)
(ฮท : ๐ข(Time ร Space 3, โ)) :
(wireCurrentDensity c I).currentDensity c ฮท 0 =
(constantTime <|
constantSliceDist 0 <|
I โข diracDelta โ 0) ฮท := c:SpeedOfLightI:โฮท:๐ข(Time ร Space, โ)โข (((DistLorentzCurrentDensity.currentDensity c) ((wireCurrentDensity c) I)) ฮท).ofLp 0 =
(constantTime ((constantSliceDist 0) (I โข diracDelta โ 0))) ฮท
All goals completed! ๐@[simp]
lemma wireCurrentDensity_currentDensity_snd (c : SpeedOfLight) (I : โ)
(ฮต : ๐ข(Time ร Space 3, โ)) :
(wireCurrentDensity c I).currentDensity c ฮต 1 = 0 := c:SpeedOfLightI:โฮต:๐ข(Time ร Space, โ)โข (((DistLorentzCurrentDensity.currentDensity c) ((wireCurrentDensity c) I)) ฮต).ofLp 1 = 0
All goals completed! ๐@[simp]
lemma wireCurrentDensity_currentDensity_thrd (c : SpeedOfLight) (I : โ)
(ฮต : ๐ข(Time ร Space 3, โ)) :
(wireCurrentDensity c I).currentDensity c ฮต 2 = 0 := c:SpeedOfLightI:โฮต:๐ข(Time ร Space, โ)โข (((DistLorentzCurrentDensity.currentDensity c) ((wireCurrentDensity c) I)) ฮต).ofLp 2 = 0
All goals completed! ๐B. The electromagnetic potential
The electromagnetic potential of an infinite wire carrying a current I along the x-axis is
given by
$$A(t, x, y, z) = \left(0, -\frac{ฮผ_0 I}{2\pi} \log (\sqrt{y^2 + z^2}), 0, 0\right).$$
B.1. The scalar potential
THe scalar potential of an infinite wire carrying a current I along the x-axis is zero:
$$V(t, x, y, z) = 0.$$
@[simp]
lemma infiniteWire_scalarPotential (๐ : FreeSpace) (I : โ) :
(infiniteWire ๐ I).scalarPotential ๐.c = 0 := ๐:FreeSpaceI:โโข (scalarPotential ๐.c) (infiniteWire ๐ I) = 0
๐:FreeSpaceI:โฮท:๐ข(Time ร Space, โ)โข ((scalarPotential ๐.c) (infiniteWire ๐ I)) ฮท = 0 ฮท
All goals completed! ๐B.2. The vector potential
The vector potential of an infinite wire carrying a current I along the x-axis is given by
$$\vec A(t, x, y, z) = \left(-\frac{ฮผ_0 I}{2\pi} \log (\sqrt{y^2 + z^2}), 0, 0\right).$$
The time derivative $\partial_t \vec A$ is zero, as expected for a steady current, and the spatial derivative $\partial_x \vec A$ is also zero, as expected for a system with translational symmetry along the x-axis.
lemma infiniteWire_vectorPotential (๐ : FreeSpace) (I : โ) :
(infiniteWire ๐ I).vectorPotential ๐.c =
(constantTime <|
constantSliceDist 0
((- I * ๐.ฮผโ / (2 * Real.pi)) โข distOfFunction (fun (x : Space 2) =>
Real.log โxโ โข EuclideanSpace.single 0 (1 : โ))
(๐:FreeSpaceI:โโข IsDistBounded fun x => Real.log โxโ โข EuclideanSpace.single 0 1 apply (IsDistBounded.log_norm (๐:FreeSpaceI:โโข 2 โค 2 All goals completed! ๐)).smul_const))) := ๐:FreeSpaceI:โโข (vectorPotential ๐.c) (infiniteWire ๐ I) =
constantTime
((constantSliceDist 0)
((-I * ๐.ฮผโ / (2 * Real.pi)) โข distOfFunction (fun x => Real.log โxโ โข EuclideanSpace.single 0 1) โฏ))
๐:FreeSpaceI:โฮท:๐ข(Time ร Space, โ)i:Fin 3โข (((vectorPotential ๐.c) (infiniteWire ๐ I)) ฮท).ofLp i =
((constantTime
((constantSliceDist 0)
((-I * ๐.ฮผโ / (2 * Real.pi)) โข distOfFunction (fun x => Real.log โxโ โข EuclideanSpace.single 0 1) โฏ)))
ฮท).ofLp
i
All goals completed! ๐lemma infiniteWire_vectorPotential_fst (๐ : FreeSpace) (I : โ)(ฮท : ๐ข(Time ร Space 3, โ)) :
(infiniteWire ๐ I).vectorPotential ๐.c ฮท 0 =
(constantTime <|
constantSliceDist 0 <|
(- I * ๐.ฮผโ / (2 * Real.pi)) โข distOfFunction (fun (x : Space 2) => Real.log โxโ)
(IsDistBounded.log_norm)) ฮท := ๐:FreeSpaceI:โฮท:๐ข(Time ร Space, โ)โข (((vectorPotential ๐.c) (infiniteWire ๐ I)) ฮท).ofLp 0 =
(constantTime ((constantSliceDist 0) ((-I * ๐.ฮผโ / (2 * Real.pi)) โข distOfFunction (fun x => Real.log โxโ) โฏ))) ฮท
All goals completed! ๐@[simp]
lemma infiniteWire_vectorPotential_snd (๐ : FreeSpace) (I : โ) :
(infiniteWire ๐ I).vectorPotential ๐.c ฮท 1 = 0 := ฮท:๐ข(Time ร Space, โ)๐:FreeSpaceI:โโข (((vectorPotential ๐.c) (infiniteWire ๐ I)) ฮท).ofLp 1 = 0
All goals completed! ๐@[simp]
lemma infiniteWire_vectorPotential_thrd (๐ : FreeSpace) (I : โ) :
(infiniteWire ๐ I).vectorPotential ๐.c ฮท 2 = 0 := ฮท:๐ข(Time ร Space, โ)๐:FreeSpaceI:โโข (((vectorPotential ๐.c) (infiniteWire ๐ I)) ฮท).ofLp 2 = 0
All goals completed! ๐All goals completed! ๐@[simp]
lemma infiniteWire_vectorPotential_distSpaceDeriv_0 (๐ : FreeSpace) (I : โ) :
distSpaceDeriv 0 ((infiniteWire ๐ I).vectorPotential ๐.c) = 0 := by ๐:FreeSpaceI:โโข (distSpaceDeriv 0) ((vectorPotential ๐.c) (infiniteWire ๐ I)) = 0
ext1 ฮท ๐:FreeSpaceI:โฮท:๐ข(Time ร Space, โ)โข ((distSpaceDeriv 0) ((vectorPotential ๐.c) (infiniteWire ๐ I))) ฮท = 0 ฮท
simp [infiniteWire_vectorPotential _ I, constantTime_distSpaceDeriv,
distDeriv_constantSliceDist_same] All goals completed! ๐C. The electric field
The electric field of an infinite wire carrying a current I along the x-axis is zero:
$$\vec E(t, x, y, z) = 0.$$
@[simp]
lemma infiniteWire_electricField (๐ : FreeSpace) (I : โ) :
(infiniteWire ๐ I).electricField ๐.c = 0 := by ๐:FreeSpaceI:โโข (electricField ๐.c) (infiniteWire ๐ I) = 0
ext1 ฮท ๐:FreeSpaceI:โฮท:๐ข(Time ร Space, โ)โข ((electricField ๐.c) (infiniteWire ๐ I)) ฮท = 0 ฮท
ext i ๐:FreeSpaceI:โฮท:๐ข(Time ร Space, โ)i:Fin 3โข (((electricField ๐.c) (infiniteWire ๐ I)) ฮท).ofLp i = (0 ฮท).ofLp i
simp [electricField] All goals completed! ๐D. Maxwell's equations
lemma infiniteWire_isExterma {๐ : FreeSpace} {I : โ} :
IsExtrema ๐ (infiniteWire ๐ I) (wireCurrentDensity ๐.c I) := by ๐:FreeSpaceI:โโข IsExtrema ๐ (infiniteWire ๐ I) ((wireCurrentDensity ๐.c) I)
simp only [isExtrema_iff_vectorPotential, infiniteWire_electricField, map_zero,
_root_.zero_apply, one_div, wireCurrentDensity_chargeDesnity, mul_zero,
implies_true, PiLp.zero_apply, zero_sub, true_and] ๐:FreeSpaceI:โโข โ (ฮต : ๐ข(Time ร Space, โ)) (i : Fin 3),
-โ x,
-((((distSpaceDeriv x) ((distSpaceDeriv x) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp i -
(((distSpaceDeriv x) ((distSpaceDeriv i) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp x) +
๐.ฮผโ * (((DistLorentzCurrentDensity.currentDensity ๐.c) ((wireCurrentDensity ๐.c) I)) ฮต).ofLp i =
0
intro ฮต i ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)i:Fin 3โข -โ x,
-((((distSpaceDeriv x) ((distSpaceDeriv x) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp i -
(((distSpaceDeriv x) ((distSpaceDeriv i) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp x) +
๐.ฮผโ * (((DistLorentzCurrentDensity.currentDensity ๐.c) ((wireCurrentDensity ๐.c) I)) ฮต).ofLp i =
0
rw [neg_add_eq_zero ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)i:Fin 3โข โ x,
-((((distSpaceDeriv x) ((distSpaceDeriv x) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp i -
(((distSpaceDeriv x) ((distSpaceDeriv i) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp x) =
๐.ฮผโ * (((DistLorentzCurrentDensity.currentDensity ๐.c) ((wireCurrentDensity ๐.c) I)) ฮต).ofLp i ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)i:Fin 3โข โ x,
-((((distSpaceDeriv x) ((distSpaceDeriv x) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp i -
(((distSpaceDeriv x) ((distSpaceDeriv i) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp x) =
๐.ฮผโ * (((DistLorentzCurrentDensity.currentDensity ๐.c) ((wireCurrentDensity ๐.c) I)) ฮต).ofLp i] ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)i:Fin 3โข โ x,
-((((distSpaceDeriv x) ((distSpaceDeriv x) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp i -
(((distSpaceDeriv x) ((distSpaceDeriv i) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp x) =
๐.ฮผโ * (((DistLorentzCurrentDensity.currentDensity ๐.c) ((wireCurrentDensity ๐.c) I)) ฮต).ofLp i
fin_cases i ยซ0ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข โ x,
-((((distSpaceDeriv x) ((distSpaceDeriv x) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp
((fun i => i) โจ0, โฏโฉ) -
(((distSpaceDeriv x) ((distSpaceDeriv ((fun i => i) โจ0, โฏโฉ)) ((vectorPotential ๐.c) (infiniteWire ๐ I))))
ฮต).ofLp
x) =
๐.ฮผโ * (((DistLorentzCurrentDensity.currentDensity ๐.c) ((wireCurrentDensity ๐.c) I)) ฮต).ofLp ((fun i => i) โจ0, โฏโฉ)ยซ1ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข โ x,
-((((distSpaceDeriv x) ((distSpaceDeriv x) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp
((fun i => i) โจ1, โฏโฉ) -
(((distSpaceDeriv x) ((distSpaceDeriv ((fun i => i) โจ1, โฏโฉ)) ((vectorPotential ๐.c) (infiniteWire ๐ I))))
ฮต).ofLp
x) =
๐.ฮผโ * (((DistLorentzCurrentDensity.currentDensity ๐.c) ((wireCurrentDensity ๐.c) I)) ฮต).ofLp ((fun i => i) โจ1, โฏโฉ)ยซ2ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข โ x,
-((((distSpaceDeriv x) ((distSpaceDeriv x) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp
((fun i => i) โจ2, โฏโฉ) -
(((distSpaceDeriv x) ((distSpaceDeriv ((fun i => i) โจ2, โฏโฉ)) ((vectorPotential ๐.c) (infiniteWire ๐ I))))
ฮต).ofLp
x) =
๐.ฮผโ * (((DistLorentzCurrentDensity.currentDensity ๐.c) ((wireCurrentDensity ๐.c) I)) ฮต).ofLp ((fun i => i) โจ2, โฏโฉ)
ยท ยซ0ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข โ x,
-((((distSpaceDeriv x) ((distSpaceDeriv x) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp
((fun i => i) โจ0, โฏโฉ) -
(((distSpaceDeriv x) ((distSpaceDeriv ((fun i => i) โจ0, โฏโฉ)) ((vectorPotential ๐.c) (infiniteWire ๐ I))))
ฮต).ofLp
x) =
๐.ฮผโ * (((DistLorentzCurrentDensity.currentDensity ๐.c) ((wireCurrentDensity ๐.c) I)) ฮต).ofLp ((fun i => i) โจ0, โฏโฉ) simp [Fin.sum_univ_three] ยซ0ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข -(((distSpaceDeriv 2) ((distSpaceDeriv 2) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 0 +
-(((distSpaceDeriv 1) ((distSpaceDeriv 1) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 0 =
๐.ฮผโ * (((DistLorentzCurrentDensity.currentDensity ๐.c) ((wireCurrentDensity ๐.c) I)) ฮต).ofLp 0
simp [distSpaceDeriv_apply', infiniteWire_vectorPotential_fst] ยซ0ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข -(-(I * ๐.ฮผโ) / (2 * Real.pi) *
(constantTime ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))
((SchwartzMap.evalCLM โ (Time ร Space) โ (0, basis 2))
((fderivCLM โ (Time ร Space) โ)
((SchwartzMap.evalCLM โ (Time ร Space) โ (0, basis 2)) ((fderivCLM โ (Time ร Space) โ) ฮต))))) +
-(-(I * ๐.ฮผโ) / (2 * Real.pi) *
(constantTime ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))
((SchwartzMap.evalCLM โ (Time ร Space) โ (0, basis 1))
((fderivCLM โ (Time ร Space) โ)
((SchwartzMap.evalCLM โ (Time ร Space) โ (0, basis 1)) ((fderivCLM โ (Time ร Space) โ) ฮต))))) =
๐.ฮผโ * (((DistLorentzCurrentDensity.currentDensity ๐.c) ((wireCurrentDensity ๐.c) I)) ฮต).ofLp 0
simp [apply_fderiv_eq_distSpaceDeriv, wireCurrentDensity_currentDensity_fst] ยซ0ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข -(-(I * ๐.ฮผโ) / (2 * Real.pi) *
((distSpaceDeriv 2)
((distSpaceDeriv 2) (constantTime ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))))
ฮต) +
-(-(I * ๐.ฮผโ) / (2 * Real.pi) *
((distSpaceDeriv 1)
((distSpaceDeriv 1) (constantTime ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))))
ฮต) =
๐.ฮผโ * (I * (constantTime ((constantSliceDist 0) (diracDelta โ 0))) ฮต)
field_simp ยซ0ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข I *
(((distSpaceDeriv 2)
((distSpaceDeriv 2) (constantTime ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))))
ฮต +
((distSpaceDeriv 1)
((distSpaceDeriv 1) (constantTime ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))))
ฮต) =
I * 2 * Real.pi * (constantTime ((constantSliceDist 0) (diracDelta โ 0))) ฮต
simp only [constantTime_distSpaceDeriv, mul_assoc] ยซ0ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข I *
((constantTime ((distDeriv 2) ((distDeriv 2) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))))
ฮต +
(constantTime ((distDeriv 1) ((distDeriv 1) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))))
ฮต) =
I * (2 * (Real.pi * (constantTime ((constantSliceDist 0) (diracDelta โ 0))) ฮต))
congr ยซ0ยป.e_a ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantTime ((distDeriv 2) ((distDeriv 2) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))))) ฮต +
(constantTime ((distDeriv 1) ((distDeriv 1) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))))
ฮต =
2 * (Real.pi * (constantTime ((constantSliceDist 0) (diracDelta โ 0))) ฮต)
rw [โ _root_.add_apply, ยซ0ยป.e_a ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantTime ((distDeriv 2) ((distDeriv 2) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))) +
constantTime ((distDeriv 1) ((distDeriv 1) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))))
ฮต =
2 * (Real.pi * (constantTime ((constantSliceDist 0) (diracDelta โ 0))) ฮต) ยซ0ยป.e_a ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantTime
((distDeriv 2) ((distDeriv 2) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv 1) ((distDeriv 1) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))))
ฮต =
2 * (Real.pi * (constantTime ((constantSliceDist 0) (diracDelta โ 0))) ฮต) โ map_add constantTime ยซ0ยป.e_a ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantTime
((distDeriv 2) ((distDeriv 2) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv 1) ((distDeriv 1) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))))
ฮต =
2 * (Real.pi * (constantTime ((constantSliceDist 0) (diracDelta โ 0))) ฮต)ยซ0ยป.e_a ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantTime
((distDeriv 2) ((distDeriv 2) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv 1) ((distDeriv 1) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))))
ฮต =
2 * (Real.pi * (constantTime ((constantSliceDist 0) (diracDelta โ 0))) ฮต)]ยซ0ยป.e_a ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantTime
((distDeriv 2) ((distDeriv 2) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv 1) ((distDeriv 1) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))))
ฮต =
2 * (Real.pi * (constantTime ((constantSliceDist 0) (diracDelta โ 0))) ฮต)
trans (constantTime ((constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0))) ฮต ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantTime
((distDeriv 2) ((distDeriv 2) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv 1) ((distDeriv 1) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))))
ฮต =
(constantTime ((constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0))) ฮต๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantTime ((constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0))) ฮต =
2 * (Real.pi * (constantTime ((constantSliceDist 0) (diracDelta โ 0))) ฮต);swap ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantTime ((constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0))) ฮต =
2 * (Real.pi * (constantTime ((constantSliceDist 0) (diracDelta โ 0))) ฮต)๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantTime
((distDeriv 2) ((distDeriv 2) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv 1) ((distDeriv 1) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))))
ฮต =
(constantTime ((constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0))) ฮต
ยท ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantTime ((constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0))) ฮต =
2 * (Real.pi * (constantTime ((constantSliceDist 0) (diracDelta โ 0))) ฮต) simp ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข 2 * Real.pi * (constantTime ((constantSliceDist 0) (diracDelta โ 0))) ฮต =
2 * (Real.pi * (constantTime ((constantSliceDist 0) (diracDelta โ 0))) ฮต)
ring All goals completed! ๐
congr e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (distDeriv 2) ((distDeriv 2) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv 1) ((distDeriv 1) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0)
rw [show (2 : Fin 3) = Fin.succAbove (0 : Fin 3) 1 by ๐:FreeSpaceI:โโข IsExtrema ๐ (infiniteWire ๐ I) ((wireCurrentDensity ๐.c) I) e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (distDeriv (Fin.succAbove 0 1))
((distDeriv (Fin.succAbove 0 1)) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv (Fin.succAbove 0 0))
((distDeriv (Fin.succAbove 0 0)) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0) simp All goals completed! ๐e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (distDeriv (Fin.succAbove 0 1))
((distDeriv (Fin.succAbove 0 1)) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv (Fin.succAbove 0 0))
((distDeriv (Fin.succAbove 0 0)) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0),
show (1 : Fin 3) = Fin.succAbove (0 : Fin 3) 0 by ๐:FreeSpaceI:โโข IsExtrema ๐ (infiniteWire ๐ I) ((wireCurrentDensity ๐.c) I)e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (distDeriv (Fin.succAbove 0 1))
((distDeriv (Fin.succAbove 0 1)) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv (Fin.succAbove 0 0))
((distDeriv (Fin.succAbove 0 0)) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0) simp All goals completed! ๐e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (distDeriv (Fin.succAbove 0 1))
((distDeriv (Fin.succAbove 0 1)) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv (Fin.succAbove 0 0))
((distDeriv (Fin.succAbove 0 0)) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0)]e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (distDeriv (Fin.succAbove 0 1))
((distDeriv (Fin.succAbove 0 1)) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv (Fin.succAbove 0 0))
((distDeriv (Fin.succAbove 0 0)) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0)
repeat rw [distDeriv_constantSliceDist_succAbove, e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (distDeriv (Fin.succAbove 0 1)) ((constantSliceDist 0) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv (Fin.succAbove 0 0))
((distDeriv (Fin.succAbove 0 0)) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0) e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantSliceDist 0) ((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(constantSliceDist 0) ((distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0) distDeriv_constantSliceDist_succAbove e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantSliceDist 0) ((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv (Fin.succAbove 0 0))
((distDeriv (Fin.succAbove 0 0)) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0)e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantSliceDist 0) ((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(constantSliceDist 0) ((distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0)] e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantSliceDist 0) ((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(distDeriv (Fin.succAbove 0 0))
((distDeriv (Fin.succAbove 0 0)) ((constantSliceDist 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0)e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantSliceDist 0) ((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(constantSliceDist 0) ((distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0)e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantSliceDist 0) ((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ))) +
(constantSliceDist 0) ((distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0)
rw [โ map_add (constantSliceDist 0) e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantSliceDist 0)
((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ)) +
(distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0) e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantSliceDist 0)
((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ)) +
(distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0)]e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (constantSliceDist 0)
((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ)) +
(distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) =
(constantSliceDist 0) ((2 * Real.pi) โข diracDelta โ 0)
congr e_6.e_6 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ)) +
(distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ)) =
(2 * Real.pi) โข diracDelta โ 0
trans distDiv (distGrad (distOfFunction (fun (x : Space 2) => Real.log โxโ)
(IsDistBounded.log_norm))) ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ)) +
(distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ)) =
distDiv (โแต (distOfFunction (fun x => Real.log โxโ) โฏ))๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข distDiv (โแต (distOfFunction (fun x => Real.log โxโ) โฏ)) = (2 * Real.pi) โข diracDelta โ 0
ยท ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ)) +
(distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ)) =
distDiv (โแต (distOfFunction (fun x => Real.log โxโ) โฏ)) ext ฮต ๐:FreeSpaceI:โฮตโ:๐ข(Time ร Space, โ)ฮต:๐ข(Space 2, โ)โข ((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ)) +
(distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ)))
ฮต =
(distDiv (โแต (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต
simp [distDiv_apply_eq_sum_distDeriv] ๐:FreeSpaceI:โฮตโ:๐ข(Time ร Space, โ)ฮต:๐ข(Space 2, โ)โข ((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต +
((distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต =
(((distDeriv 0) (โแต (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต).ofLp 0 +
(((distDeriv 1) (โแต (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต).ofLp 1
rw [add_comm ๐:FreeSpaceI:โฮตโ:๐ข(Time ร Space, โ)ฮต:๐ข(Space 2, โ)โข ((distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต +
((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต =
(((distDeriv 0) (โแต (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต).ofLp 0 +
(((distDeriv 1) (โแต (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต).ofLp 1 ๐:FreeSpaceI:โฮตโ:๐ข(Time ร Space, โ)ฮต:๐ข(Space 2, โ)โข ((distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต +
((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต =
(((distDeriv 0) (โแต (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต).ofLp 0 +
(((distDeriv 1) (โแต (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต).ofLp 1] ๐:FreeSpaceI:โฮตโ:๐ข(Time ร Space, โ)ฮต:๐ข(Space 2, โ)โข ((distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต +
((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต =
(((distDeriv 0) (โแต (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต).ofLp 0 +
(((distDeriv 1) (โแต (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต).ofLp 1
congr 1 e_a ๐:FreeSpaceI:โฮตโ:๐ข(Time ร Space, โ)ฮต:๐ข(Space 2, โ)โข ((distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต =
(((distDeriv 0) (โแต (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต).ofLp 0e_a ๐:FreeSpaceI:โฮตโ:๐ข(Time ร Space, โ)ฮต:๐ข(Space 2, โ)โข ((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต =
(((distDeriv 1) (โแต (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต).ofLp 1 <;> e_a ๐:FreeSpaceI:โฮตโ:๐ข(Time ร Space, โ)ฮต:๐ข(Space 2, โ)โข ((distDeriv 0) ((distDeriv 0) (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต =
(((distDeriv 0) (โแต (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต).ofLp 0e_a ๐:FreeSpaceI:โฮตโ:๐ข(Time ร Space, โ)ฮต:๐ข(Space 2, โ)โข ((distDeriv 1) ((distDeriv 1) (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต =
(((distDeriv 1) (โแต (distOfFunction (fun x => Real.log โxโ) โฏ))) ฮต).ofLp 1
simp [distDeriv_apply, fderivD_apply, distGrad_apply] All goals completed! ๐
rw [distGrad_distOfFunction_log_norm ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข distDiv (distOfFunction (fun x => โxโ ^ (-2) โข basis.repr x) โฏ) = (2 * Real.pi) โข diracDelta โ 0 ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข distDiv (distOfFunction (fun x => โxโ ^ (-2) โข basis.repr x) โฏ) = (2 * Real.pi) โข diracDelta โ 0] ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข distDiv (distOfFunction (fun x => โxโ ^ (-2) โข basis.repr x) โฏ) = (2 * Real.pi) โข diracDelta โ 0
simpa using distDiv_inv_pow_eq_dim (d := 2) All goals completed! ๐
all_goals
simp only [Fin.mk_one, Fin.reduceFinMk, Fin.isValue, neg_sub, Finset.sum_sub_distrib,
Fin.sum_univ_three, infiniteWire_vectorPotential_distSpaceDeriv_0, map_zero,
_root_.zero_apply, PiLp.zero_apply, zero_add, add_sub_add_right_eq_sub,
wireCurrentDensity_currentDensity_snd, wireCurrentDensity_currentDensity_thrd, mul_zero] ยซ2ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (((distSpaceDeriv 0) ((distSpaceDeriv 2) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 0 +
(((distSpaceDeriv 1) ((distSpaceDeriv 2) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 1 -
(((distSpaceDeriv 1) ((distSpaceDeriv 1) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 2 =
0
ring_nf ยซ2ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (((distSpaceDeriv 0) ((distSpaceDeriv 2) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 0 +
(((distSpaceDeriv 1) ((distSpaceDeriv 2) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 1 -
(((distSpaceDeriv 1) ((distSpaceDeriv 1) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 2 =
0
rw [distSpaceDeriv_commute ยซ1ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (((distSpaceDeriv 1) ((distSpaceDeriv 0) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 0 +
(((distSpaceDeriv 2) ((distSpaceDeriv 1) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 2 -
(((distSpaceDeriv 2) ((distSpaceDeriv 2) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 1 =
0 ยซ2ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (((distSpaceDeriv 2) ((distSpaceDeriv 0) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 0 +
(((distSpaceDeriv 1) ((distSpaceDeriv 2) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 1 -
(((distSpaceDeriv 1) ((distSpaceDeriv 1) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 2 =
0] ยซ1ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (((distSpaceDeriv 1) ((distSpaceDeriv 0) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 0 +
(((distSpaceDeriv 2) ((distSpaceDeriv 1) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 2 -
(((distSpaceDeriv 2) ((distSpaceDeriv 2) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 1 =
0ยซ2ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (((distSpaceDeriv 2) ((distSpaceDeriv 0) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 0 +
(((distSpaceDeriv 1) ((distSpaceDeriv 2) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 1 -
(((distSpaceDeriv 1) ((distSpaceDeriv 1) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 2 =
0ยซ2ยป ๐:FreeSpaceI:โฮต:๐ข(Time ร Space, โ)โข (((distSpaceDeriv 2) ((distSpaceDeriv 0) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 0 +
(((distSpaceDeriv 1) ((distSpaceDeriv 2) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 1 -
(((distSpaceDeriv 1) ((distSpaceDeriv 1) ((vectorPotential ๐.c) (infiniteWire ๐ I)))) ฮต).ofLp 2 =
0
simp [distSpaceDeriv_apply'] All goals completed! ๐