Imports
/- Copyright (c) 2025 Zhi Kai Pong. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Zhi Kai Pong, Joseph Tooby-Smith -/ module public import Physlib.Electromagnetism.Vacuum.IsPlaneWave

Harmonic Wave in Vacuum

i. Overview

In this module we define the electromagnetic potential for a monochromatic harmonic wave travelling in the x-direction in free space, and prove various properties about it, including that it satisfies Maxwell's equations in free space, that it is a plane wave.

We work here in a general dimension d so we use the magnetic field is the form of a matrix rather than a vector.

ii. Key results

    harmonicWaveX : Definition of the electromagnetic potential for a harmonic wave travelling in the x-direction.

    harmonicWaveX_isExtrema : The harmonic wave satisfies Maxwell's equations in free space.

    harmonicWaveX_isPlaneWave : The harmonic wave is a plane wave.

    harmonicWaveX_polarization_ellipse : The polarization ellipse equation for the harmonic wave.

iii. Table of contents

    A. The electromagnetic potential for a harmonic wave

      A.1. Differentiability of the electromagnetic potential

      A.2. Smoothness of the electromagnetic potential

    B. The scalar potential

    C. The vector potential

      C.1. Components of the vector potential

      C.2. Space derivatives of the vector potential

    D. The electric field

      D.1. Components of the electric field

      D.2. Spatial derivatives of the electric field

      D.3. Time derivatives of the electric field

      D.4. Divergence of the electric field

    E. The magnetic field matrix for a harmonic wave

      E.1. Components of the magnetic field matrix

      E.2. Space derivatives of the magnetic field matrix

    F. Maxwell's equations for a harmonic wave

    G. The harmonic wave is a plane wave

    H. Polarization ellipse of the harmonic wave

iv. References

@[expose] public section

A. The electromagnetic potential for a harmonic wave

@[simp] lemma harmonicWaveX_inl_zero {d} (𝓕 : FreeSpace) (k : ) (E₀ : Fin d ) (φ : Fin d ) (x : SpaceTime d.succ) : harmonicWaveX 𝓕 k E₀ φ x (Sum.inl 0) = 0 := d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d x:SpaceTime d.succ(harmonicWaveX 𝓕 k E₀ φ).val x (Sum.inl 0) = 0 All goals completed! 🐙@[simp] lemma harmonicWaveX_inr_zero {d} (𝓕 : FreeSpace) (k : ) (E₀ : Fin d ) (φ : Fin d ) (x : SpaceTime d.succ) : harmonicWaveX 𝓕 k E₀ φ x (Sum.inr 0) = 0 := d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d x:SpaceTime d.succ(harmonicWaveX 𝓕 k E₀ φ).val x (Sum.inr 0) = 0 d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d x:SpaceTime d.succ(match Sum.inr 0 with | Sum.inl 0 => 0 | Sum.inr 0, => 0 | Sum.inr i.succ, h => -E₀ i, / (𝓕.c.val * k) * sin (k * (𝓕.c.val * (x (Sum.inl 0) / 𝓕.c.val) - (SpaceTime.space x).val 0) + φ i, )) = 0 All goals completed! 🐙

A.1. Differentiability of the electromagnetic potential

d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d (i : Fin 1 Fin d.succ), Differentiable fun x => (harmonicWaveX 𝓕 k E₀ φ).val x i d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d μ:Fin 1 Fin d.succDifferentiable fun x => (harmonicWaveX 𝓕 k E₀ φ).val x μ match μ with d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d μ:Fin 1 Fin d.succDifferentiable fun x => (harmonicWaveX 𝓕 k E₀ φ).val x (Sum.inl 0) All goals completed! 🐙 d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d μ:Fin 1 Fin d.succh:0 < d.succDifferentiable fun x => (harmonicWaveX 𝓕 k E₀ φ).val x (Sum.inr 0, h) All goals completed! 🐙 d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d μ:Fin 1 Fin d.succi:h:i.succ < d.succDifferentiable fun x => (harmonicWaveX 𝓕 k E₀ φ).val x (Sum.inr i.succ, h) d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d μ:Fin 1 Fin d.succi:h:i.succ < d.succDifferentiable fun x => -E₀ i, / (𝓕.c.val * k) * sin (k * (𝓕.c.val * (x (Sum.inl 0) / 𝓕.c.val) - (SpaceTime.space x).val 0) + φ i, ) All goals completed! 🐙

A.2. Smoothness of the electromagnetic potential

d:n:WithTop ℕ∞𝓕:FreeSpacek:E₀:Fin d φ:Fin d (i : Fin 1 Fin d.succ), ContDiff n fun x => (harmonicWaveX 𝓕 k E₀ φ).val x i d:n:WithTop ℕ∞𝓕:FreeSpacek:E₀:Fin d φ:Fin d μ:Fin 1 Fin d.succContDiff n fun x => (harmonicWaveX 𝓕 k E₀ φ).val x μ match μ with d:n:WithTop ℕ∞𝓕:FreeSpacek:E₀:Fin d φ:Fin d μ:Fin 1 Fin d.succContDiff n fun x => (harmonicWaveX 𝓕 k E₀ φ).val x (Sum.inl 0) d:n:WithTop ℕ∞𝓕:FreeSpacek:E₀:Fin d φ:Fin d μ:Fin 1 Fin d.succContDiff n fun x => 0; All goals completed! 🐙 d:n:WithTop ℕ∞𝓕:FreeSpacek:E₀:Fin d φ:Fin d μ:Fin 1 Fin d.succh:0 < d.succContDiff n fun x => (harmonicWaveX 𝓕 k E₀ φ).val x (Sum.inr 0, h) d:n:WithTop ℕ∞𝓕:FreeSpacek:E₀:Fin d φ:Fin d μ:Fin 1 Fin d.succh:0 < d.succContDiff n fun x => match Sum.inr 0 with | Sum.inl 0 => 0 | Sum.inr 0, => 0 | Sum.inr i.succ, h => -E₀ i, / (𝓕.c.val * k) * sin (k * (𝓕.c.val * (x (Sum.inl 0) / 𝓕.c.val) - (SpaceTime.space x).val 0) + φ i, ); All goals completed! 🐙 d:n:WithTop ℕ∞𝓕:FreeSpacek:E₀:Fin d φ:Fin d μ:Fin 1 Fin d.succi:h:i.succ < d.succContDiff n fun x => (harmonicWaveX 𝓕 k E₀ φ).val x (Sum.inr i.succ, h) d:n:WithTop ℕ∞𝓕:FreeSpacek:E₀:Fin d φ:Fin d μ:Fin 1 Fin d.succi:h:i.succ < d.succContDiff n fun x => -E₀ i, / (𝓕.c.val * k) * sin (k * (𝓕.c.val * (x (Sum.inl 0) / 𝓕.c.val) - (SpaceTime.space x).val 0) + φ i, ) All goals completed! 🐙

B. The scalar potential

The scalar potential of the harmonic wave is zero.

@[simp] lemma harmonicWaveX_scalarPotential_eq_zero {d} (𝓕 : FreeSpace) (k : ) (E₀ : Fin d ) (φ : Fin d ) : (harmonicWaveX 𝓕 k E₀ φ).scalarPotential 𝓕.c = 0 := d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d scalarPotential 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) = 0 d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d x:Timex✝:Space d.succscalarPotential 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) x x✝ = 0 x x✝ d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d x:Timex✝:Space d.succ(SpaceTime.timeSlice 𝓕.c) (fun x => 0) x x✝ = 0 All goals completed! 🐙

C. The vector potential

C.1. Components of the vector potential

@[simp] lemma harmonicWaveX_vectorPotential_zero_eq_zero {d} (𝓕 : FreeSpace) (k : ) (E₀ : Fin d ) (φ : Fin d ) (t : Time) (x : Space d.succ) : (harmonicWaveX 𝓕 k E₀ φ).vectorPotential 𝓕.c t x 0 = 0 := d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succ(vectorPotential 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x).ofLp 0 = 0 d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succ(match Sum.inr 0 with | Sum.inl 0 => 0 | Sum.inr 0, => 0 | Sum.inr i.succ, h => -E₀ i, / (𝓕.c.val * k) * sin (k * (𝓕.c.val * t.val - x.val 0) + φ i, )) = 0 All goals completed! 🐙lemma harmonicWaveX_vectorPotential_succ {d} (𝓕 : FreeSpace) (k : ) (E₀ : Fin d ) (φ : Fin d ) (t : Time) (x : Space d.succ) (i : Fin d) : (harmonicWaveX 𝓕 k E₀ φ).vectorPotential 𝓕.c t x i.succ = - E₀ i * 1 / (𝓕.c * k) * Real.sin (k * (t.val * 𝓕.c - x 0) + φ i) := d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d(vectorPotential 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x).ofLp i.succ = -E₀ i * 1 / (𝓕.c.val * k) * sin (k * (t.val * 𝓕.c.val - x.val 0) + φ i) d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dsin (k * (𝓕.c.val * t.val - x.val 0) + φ i) = sin (k * (t.val * 𝓕.c.val - x.val 0) + φ i) E₀ i = 0 k = 0 d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dsin (k * (𝓕.c.val * t.val - x.val 0) + φ i) = sin (k * (t.val * 𝓕.c.val - x.val 0) + φ i) All goals completed! 🐙lemma harmonicWaveX_vectorPotential_succ' {d} (𝓕 : FreeSpace) (k : ) (E₀ : Fin d ) (φ : Fin d ) (t : Time) (x : Space d.succ) (i : ) (hi : i.succ < d.succ) : (harmonicWaveX 𝓕 k E₀ φ).vectorPotential 𝓕.c t x i.succ, hi = - E₀ i, OpticalMedium:Sort ?u.2OM:OpticalMediumd:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succi:hi:i.succ < d.succi < d All goals completed! 🐙 * 1 / (𝓕.c * k) * Real.sin (k * (t.val * 𝓕.c - x 0) + φ i, OpticalMedium:Sort ?u.2OM:OpticalMediumd:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succi:hi:i.succ < d.succi < d All goals completed! 🐙) := d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succi:hi:i.succ < d.succ(vectorPotential 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x).ofLp i.succ, hi = -E₀ i, * 1 / (𝓕.c.val * k) * sin (k * (t.val * 𝓕.c.val - x.val 0) + φ i, ) d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succi:hi:i.succ < d.succsin (k * (𝓕.c.val * t.val - x.val 0) + φ i, ) = sin (k * (t.val * 𝓕.c.val - x.val 0) + φ i, ) E₀ i, = 0 k = 0 d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succi:hi:i.succ < d.succsin (k * (𝓕.c.val * t.val - x.val 0) + φ i, ) = sin (k * (t.val * 𝓕.c.val - x.val 0) + φ i, ) All goals completed! 🐙

C.2. Space derivatives of the vector potential

d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succj:Fin di✝:Fin d.succi:hi:i.succ < d.succtransverse_deriv_eq_zero: (g : ), Differentiable g Space.deriv j.succ (fun y => g (y.val 0)) x = 0Space.deriv j.succ (fun x => (vectorPotential 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x).ofLp i.succ, hi) x = 0 d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succj:Fin di✝:Fin d.succi:hi:i.succ < d.succtransverse_deriv_eq_zero: (g : ), Differentiable g Space.deriv j.succ (fun y => g (y.val 0)) x = 0Space.deriv j.succ (fun x => -E₀ i, / (𝓕.c.val * k) * sin (k * (t.val * 𝓕.c.val - x.val 0) + φ i, )) x = 0 exact transverse_deriv_eq_zero (fun u => -E₀ i, d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succj:Fin di✝:Fin d.succi:hi:i.succ < d.succtransverse_deriv_eq_zero: (g : ), Differentiable g Space.deriv j.succ (fun y => g (y.val 0)) x = 0u:i < d All goals completed! 🐙 / (𝓕.c.val * k) * sin (k * (t.val * 𝓕.c.val - u) + φ i, d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succj:Fin di✝:Fin d.succi:hi:i.succ < d.succtransverse_deriv_eq_zero: (g : ), Differentiable g Space.deriv j.succ (fun y => g (y.val 0)) x = 0u:i < d All goals completed! 🐙)) (d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succj:Fin di✝:Fin d.succi:hi:i.succ < d.succtransverse_deriv_eq_zero: (g : ), Differentiable g Space.deriv j.succ (fun y => g (y.val 0)) x = 0Differentiable fun u => -E₀ i, / (𝓕.c.val * k) * sin (k * (t.val * 𝓕.c.val - u) + φ i, ) All goals completed! 🐙)d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d-(-E₀ i / (𝓕.c.val * k) * (cos (k * (t.val * 𝓕.c.val - x.val 0) + φ i) * (k * if 0 = 0 then 1 else 0))) = E₀ i / 𝓕.c.val * cos (𝓕.c.val * k * t.val - k * x.val 0 + φ i) d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d-(-E₀ i / (𝓕.c.val * k) * (cos (k * (t.val * 𝓕.c.val - x.val 0) + φ i) * k)) = E₀ i / 𝓕.c.val * cos (𝓕.c.val * k * t.val - k * x.val 0 + φ i) All goals completed! 🐙

D. The electric field

D.1. Components of the electric field

d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succ∂ₜ (fun t => (vectorPotential 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x).ofLp 0) t = 0d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succDifferentiable fun t => vectorPotential 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succDifferentiable fun t => vectorPotential 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x All goals completed! 🐙d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d-(-E₀ i / (𝓕.c.val * k) * (cos (k * (t.val * 𝓕.c.val - x.val 0) + φ i) * (k * (𝓕.c.val fderiv Time.val t) 1))) = E₀ i * cos (k * 𝓕.c.val * t.val - k * x.val 0 + φ i)d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dDifferentiable fun t => vectorPotential 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d-(-E₀ i / (𝓕.c.val * k) * (cos (k * (t.val * 𝓕.c.val - x.val 0) + φ i) * (k * 𝓕.c.val))) = E₀ i * cos (k * 𝓕.c.val * t.val - k * x.val 0 + φ i)d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dDifferentiable fun t => vectorPotential 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dDifferentiable fun t => vectorPotential 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x All goals completed! 🐙

D.2. Spatial derivatives of the electric field

d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi✝:Fin d.succi:hi:i.succ < d.succtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0Space.deriv i, .succ (fun x => (electricField 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x).ofLp i, .succ) x = 0 conv_lhs => d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex✝:Space d.succi✝:Fin d.succi:hi:i.succ < d.succtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0x:Space d.succ| (electricField 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x).ofLp i, .succ d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex✝:Space d.succi✝:Fin d.succi:hi:i.succ < d.succtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0x:Space d.succ| E₀ i, * cos (k * 𝓕.c.val * t.val - k * x.val 0 + φ i, ) All goals completed! 🐙

D.3. Time derivatives of the electric field

d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dE₀ i * (sin (k * 𝓕.c.val * t.val - k * x.val 0 + φ i) * ((k * 𝓕.c.val) fderiv Time.val t) 1) = k * 𝓕.c.val * E₀ i * sin (k * 𝓕.c.val * t.val - k * x.val 0 + φ i) d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dE₀ i * (sin (k * 𝓕.c.val * t.val - k * x.val 0 + φ i) * (k * 𝓕.c.val)) = k * 𝓕.c.val * E₀ i * sin (k * 𝓕.c.val * t.val - k * x.val 0 + φ i) All goals completed! 🐙

D.4. Divergence of the electric field

@[simp] lemma harmonicWaveX_div_electricField_eq_zero {d} (𝓕 : FreeSpace) (k : ) (hk : k 0) (E₀ : Fin d ) (φ : Fin d ) (t : Time) (x : Space d.succ) : Space.div (fun x => electricField 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x) x = 0 := d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succdiv (fun x => electricField 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x) x = 0 d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succ x_1, Space.deriv x_1 (fun x => (electricField 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x).ofLp x_1) x = 0 All goals completed! 🐙

E. The magnetic field matrix for a harmonic wave

E.1. Components of the magnetic field matrix

d:𝓕:FreeSpacek:E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dj:Fin dSpace.deriv j.succ (fun x => (vectorPotential 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x).ofLp i.succ) x - Space.deriv i.succ (fun x => (vectorPotential 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x).ofLp j.succ) x = 0 All goals completed! 🐙d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d-(E₀ i / 𝓕.c.val * cos (𝓕.c.val * k * t.val - k * x.val 0 + φ i)) = -E₀ i / 𝓕.c.val * cos (𝓕.c.val * k * t.val - k * x.val 0 + φ i)d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dk 0 d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d-(E₀ i / 𝓕.c.val * cos (𝓕.c.val * k * t.val - k * x.val 0 + φ i)) = -E₀ i / 𝓕.c.val * cos (𝓕.c.val * k * t.val - k * x.val 0 + φ i)d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dk 0 d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dk 0 All goals completed! 🐙d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dk 0 All goals completed! 🐙

E.2. Space derivatives of the magnetic field matrix

d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d.succj:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0Space.deriv l.succ (fun x => magneticFieldMatrix 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x (i, j)) x = 0 match i, j with d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d.succj:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0Space.deriv l.succ (fun x => magneticFieldMatrix 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x (0, 0)) x = 0 All goals completed! 🐙 d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi✝:Fin d.succj✝:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0i:hi:i.succ < d.succj:hj:j.succ < d.succSpace.deriv l.succ (fun x => magneticFieldMatrix 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x (i.succ, hi, j.succ, hj)) x = 0 conv_lhs => d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex✝:Space d.succi✝:Fin d.succj✝:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0i:hi:i.succ < d.succj:hj:j.succ < d.succx:Space (d + 1)| magneticFieldMatrix 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x (i.succ, hi, j.succ, hj) rw [ Fin.succ_mk _ _ (d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex✝:Space d.succi✝:Fin d.succj✝:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0i:hi:i.succ < d.succj:hj:j.succ < d.succx:Space (d + 1)i < d All goals completed! 🐙)] rw [ Fin.succ_mk _ _ (d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex✝:Space d.succi✝:Fin d.succj✝:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0i:hi:i.succ < d.succj:hj:j.succ < d.succx:Space (d + 1)j < d All goals completed! 🐙)] d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex✝:Space d.succi✝:Fin d.succj✝:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0i:hi:i.succ < d.succj:hj:j.succ < d.succx:Space (d + 1)| 0 All goals completed! 🐙 d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d.succj✝:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0j:hj:j.succ < d.succSpace.deriv l.succ (fun x => magneticFieldMatrix 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x (0, j.succ, hj)) x = 0 conv_lhs => d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex✝:Space d.succi:Fin d.succj✝:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0j:hj:j.succ < d.succx:Space (d + 1)| magneticFieldMatrix 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x (0, j.succ, hj) rw [ Fin.succ_mk _ _ (d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex✝:Space d.succi:Fin d.succj✝:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0j:hj:j.succ < d.succx:Space (d + 1)j < d All goals completed! 🐙)] d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex✝:Space d.succi:Fin d.succj✝:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0j:hj:j.succ < d.succx:Space (d + 1)| -E₀ j, / 𝓕.c.val * cos (𝓕.c.val * k * t.val - k * x.val 0 + φ j, ) All goals completed! 🐙 d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d.succj✝:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0j:hj:j.succ < d.succSpace.deriv l.succ (fun x => magneticFieldMatrix 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x (j.succ, hj, 0)) x = 0 conv_lhs => d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex✝:Space d.succi:Fin d.succj✝:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0j:hj:j.succ < d.succx:Space (d + 1)| magneticFieldMatrix 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x (j.succ, hj, 0) rw [ Fin.succ_mk _ _ (d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex✝:Space d.succi:Fin d.succj✝:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0j:hj:j.succ < d.succx:Space (d + 1)j < d All goals completed! 🐙)] d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex✝:Space d.succi:Fin d.succj✝:Fin d.succl:Fin dtransverse_deriv_cos_eq_zero: (C a k b : ) (l : Fin d) (y : Space d.succ), Space.deriv l.succ (fun x => C * cos (a - k * x.val 0 + b)) y = 0j:hj:j.succ < d.succx:Space (d + 1)| E₀ j, / 𝓕.c.val * cos (𝓕.c.val * k * t.val - k * x.val 0 + φ j, ) All goals completed! 🐙d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d-E₀ i / 𝓕.c.val * (sin (𝓕.c.val * k * t.val - k * x.val 0 + φ i) * (k * if 0 = 0 then 1 else 0)) = -(E₀ i * k) / 𝓕.c.val * sin (𝓕.c.val * k * t.val - k * x.val 0 + φ i) d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d-E₀ i / 𝓕.c.val * (sin (𝓕.c.val * k * t.val - k * x.val 0 + φ i) * k) = -(E₀ i * k) / 𝓕.c.val * sin (𝓕.c.val * k * t.val - k * x.val 0 + φ i) All goals completed! 🐙

F. Maxwell's equations for a harmonic wave

d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d𝓕.μ₀ * 𝓕.ε₀ * (-k * 𝓕.c.val * E₀ i * sin (k * 𝓕.c.val * t.val - k * x.val 0 + φ i)) = -E₀ i * k / 𝓕.c.val * sin (𝓕.c.val * k * t.val - k * x.val 0 + φ i)d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dDifferentiable fun t => electricField 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d-(𝓕.μ₀ * 𝓕.ε₀ * 𝓕.c.val ^ 2 * E₀ i * sin (k * (𝓕.c.val * t.val - x.val 0) + φ i)) = -(E₀ i * sin (k * (𝓕.c.val * t.val - x.val 0) + φ i))d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dDifferentiable fun t => electricField 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin d𝓕.μ₀ * 𝓕.ε₀ * (𝓕.μ₀⁻¹ * 𝓕.ε₀⁻¹) * E₀ i = E₀ i sin (k * (𝓕.c.val * t.val - x.val 0) + φ i) = 0d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dDifferentiable fun t => electricField 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dTrue sin (k * (𝓕.c.val * t.val - x.val 0) + φ i) = 0d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dDifferentiable fun t => electricField 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d t:Timex:Space d.succi:Fin dDifferentiable fun t => electricField 𝓕.c (harmonicWaveX 𝓕 k E₀ φ) t x All goals completed! 🐙 d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d ContDiff (↑) (harmonicWaveX 𝓕 k E₀ φ).val All goals completed! 🐙 d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d ContDiff (↑) 0 d:𝓕:FreeSpacek:hk:k 0E₀:Fin d φ:Fin d ContDiff fun x => 0 All goals completed! 🐙

G. The harmonic wave is a plane wave

All goals completed! 🐙

H. Polarization ellipse of the harmonic wave