Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Gauge freedom: ∇×(A+∇φ)=∇×A\nabla\times(A+\nabla\varphi)=\nabla\times A∇×(A+∇φ)=∇×A

Proved
GaussMagnetism.curl_add_grad

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 continuously differentiable vector field and φ:R3→R\varphi:\mathbb R^3\to\mathbb Rφ:R3→R a twice continuously differentiable scalar field. Then for every x∈R3x\in\mathbb R^3x∈R3,

∇×(A+∇φ)(x)=∇×A(x).\nabla\times(A+\nabla\varphi)(x)=\nabla\times A(x).∇×(A+∇φ)(x)=∇×A(x).

Consequently, if AAA is a vector potential for a magnetic field BBB (that is, B=∇×AB=\nabla\times AB=∇×A), then so is A+∇φA+\nabla\varphiA+∇φ for every such φ\varphiφ; this arbitrariness is called gauge freedom.

Formalization Note Regularity: AAA is ContDiff ℝ 1, φ\varphiφ is ContDiff ℝ 2.

Preamble
import Definitions.Def_GaussMagnetism_box_flux

open Larmor TongEM
Formal statement
namespace GaussMagnetism

theorem curl_add_grad (A : Vec → Vec) (φ : Vec → ℝ) (hA : ContDiff ℝ 1 A)
    (hφ : ContDiff ℝ 2 φ) (x : Vec) :
    curl (fun y => A y + grad φ y) x = curl A x := by sorry

end GaussMagnetism
Source
Wikipedia, "Gauss's law for magnetism" (uploaded PDF, 5 pp.), p. 2, section 'Vector potential': the identity for A + ∇φ and the paragraph on gauge freedom.
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. Let A:R3→R3A:\mathbb R^3\to\mathbb R^3A:R3→R3 be C1C^1C1 and φ:R3→R\varphi:\mathbb R^3\to\mathbb Rφ:R3→R be C2C^2C2. Then for every x∈R3x\in\mathbb R^3x∈R3, the curl at xxx of the vector field y↦A(y)+∇φ(y)y\mapsto A(y)+\nabla\varphi(y)y↦A(y)+∇φ(y) equals the curl of AAA at xxx:

∇×(A+∇φ)(x)=∇×A(x).\nabla\times(A+\nabla\varphi)(x)=\nabla\times A(x).∇×(A+∇φ)(x)=∇×A(x).

There are no other hypotheses; the claim is a pointwise equality of vectors in R3\mathbb R^3R3 for every xxx. 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