Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

The divergence of a curl vanishes: ∇⋅(∇×A)=0\nabla\cdot(\nabla\times A)=0∇⋅(∇×A)=0

Proved
GaussMagnetism.div_curl_eq_zero

by Lucas · Sep 27, 2026 · Mathlib 0df444a (Lean v4.33.1)

electromagnetismmathematical-physicsvector-calculus

Let A:R3→R3A:\mathbb R^3\to\mathbb R^3A:R3→R3 be a twice continuously differentiable vector field. Then for every x∈R3x\in\mathbb R^3x∈R3,

∇⋅(∇×A)(x)=0.\nabla\cdot(\nabla\times A)(x)=0.∇⋅(∇×A)(x)=0.

In particular, every magnetic field of the form B=∇×AB=\nabla\times AB=∇×A satisfies Gauss's law for magnetism ∇⋅B=0\nabla\cdot B=0∇⋅B=0; this is the easy direction of the equivalence between Gauss's law for magnetism and the existence of a vector potential.

Formalization Note C2C^2C2 regularity is stated as ContDiff ℝ 2 A.

Preamble
import Definitions.Def_GaussMagnetism_box_flux

open Larmor TongEM
Formal statement
namespace GaussMagnetism

theorem div_curl_eq_zero (A : Vec → Vec) (hA : ContDiff ℝ 2 A) (x : Vec) :
    divg (curl A) x = 0 := by sorry

end GaussMagnetism
Source
Wikipedia, "Gauss's law for magnetism" (uploaded PDF, 5 pp.), p. 2, section 'Vector potential' (Gauss's law for magnetism is equivalent to the existence of A with B = ∇×A); Wikipedia, "Maxwell's equations" (uploaded PDF, 24 pp.), p. 8, 'the div–curl identity' (section 'Charge conservation').
Read-back

What the Lean code literally says, in plain math · Aristotle (Harmonic) — same agent as the drafter; non-blind

Non-blind read-back. This read-back was written by the same agent that drafted these Lean statements (Aristotle, by Harmonic), at the explicit request of the proposal owner. It was not produced by an independent auditor who saw only the Lean code, so it is not independent testimony and must not be treated as such. Compare it with the Lean code directly.

Throughout, R3\mathbb R^3R3 is Euclidean three-space with coordinates x=(x0,x1,x2)x=(x_0,x_1,x_2)x=(x0​,x1​,x2​) and standard basis e0,e1,e2e_0,e_1,e_2e0​,e1​,e2​. For a vector field F=(F0,F1,F2):R3→R3F=(F_0,F_1,F_2):\mathbb R^3\to\mathbb R^3F=(F0​,F1​,F2​):R3→R3 and a scalar field φ:R3→R\varphi:\mathbb R^3\to\mathbb Rφ:R3→R, ∂j\partial_j∂j​ is the partial derivative in the direction eje_jej​, ∇⋅F=∂0F0+∂1F1+∂2F2\nabla\cdot F=\partial_0F_0+\partial_1F_1+\partial_2F_2∇⋅F=∂0​F0​+∂1​F1​+∂2​F2​ is the divergence, ∇×F=(∂1F2−∂2F1, ∂2F0−∂0F2, ∂0F1−∂1F0)\nabla\times F=(\partial_1F_2-\partial_2F_1,\ \partial_2F_0-\partial_0F_2,\ \partial_0F_1-\partial_1F_0)∇×F=(∂1​F2​−∂2​F1​, ∂2​F0​−∂0​F2​, ∂0​F1​−∂1​F0​) is the curl, and ∇φ=(∂0φ,∂1φ,∂2φ)\nabla\varphi=(\partial_0\varphi,\partial_1\varphi,\partial_2\varphi)∇φ=(∂0​φ,∂1​φ,∂2​φ) is the gradient.

Statement. For every C2C^2C2 vector field A:R3→R3A:\mathbb R^3\to\mathbb R^3A:R3→R3 and every point x∈R3x\in\mathbb R^3x∈R3, the divergence at xxx of the vector field ∇×A\nabla\times A∇×A is zero:

∂0(∂1A2−∂2A1)(x)+∂1(∂2A0−∂0A2)(x)+∂2(∂0A1−∂1A0)(x)=0.\partial_0(\partial_1A_2-\partial_2A_1)(x)+\partial_1(\partial_2A_0-\partial_0A_2)(x)+\partial_2(\partial_0A_1-\partial_1A_0)(x)=0.∂0​(∂1​A2​−∂2​A1​)(x)+∂1​(∂2​A0​−∂0​A2​)(x)+∂2​(∂0​A1​−∂1​A0​)(x)=0.

There are no other hypotheses. All partial derivatives are defined through the Fréchet derivative, which Lean sets to 000 at points where the function is not differentiable; under the stated smoothness hypotheses this junk value never occurs.

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me