FormalConjectures/Wikipedia/JacobianConjecture.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned project documentation, Formal Conjectures paper, arXiv v1
11 declarations, 1 contain sorry, 0 declared as axioms
Jacobian conjecture
Reference: Wikipedia
Imports (1)
Imported by 1 file
- abbrev
JacobianConjecture.FAlpöge/Fable's counterexample: a polynomial self-map ofk³with Jacobian determinant-2which is not injective line 41 sourceSource documentation
Alpöge/Fable's counterexample: a polynomial self-map of
k³with Jacobian determinant-2which is not injective.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing, MvPolynomial.RegularFunction,Fin,OfNat.ofNat,NatProof uses:
Matrix.vecCons,MvPolynomial,HAdd.hAdd,Finsupp,HMul.hMul,HPow.hPow,MvPolynomial.X,HSub.hSub,Matrix.vecEmpty38 instances, coercions and auxiliary constants left out.
noncomputable abbrev F [CommRing k] : RegularFunction k (Fin 3) (Fin 3) := …
- abbrev
JacobianConjecture.GA variant of Alpöge/Fable's counterexample: a polynomial self-map ofk³with Jacobian determinant1which is not injective line 48 sourceSource documentation
A variant of Alpöge/Fable's counterexample: a polynomial self-map of
k³with Jacobian determinant1which is not injective.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing, MvPolynomial.RegularFunction,Fin,OfNat.ofNat,NatProof uses:
Matrix.vecCons,MvPolynomial,HAdd.hAdd,Finsupp,HMul.hMul,HPow.hPow,MvPolynomial.X,Neg.neg,Matrix.vecEmpty41 instances, coercions and auxiliary constants left out.
noncomputable abbrev G [CommRing k] : RegularFunction k (Fin 3) (Fin 3) := …
- lemma
JacobianConjecture.det_jacobian_Fline 55 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Eq,MvPolynomial,Fin,OfNat.ofNat,Nat,Matrix.det,Finsupp, MvPolynomial.RegularFunction.Jacobian, JacobianConjecture.F,Neg.negProof uses:
Eq.mpr,HSub.hSub,HAdd.hAdd,HMul.hMul,MvPolynomial.X,RingHom,MvPolynomial.C,HPow.hPow,id,congr,congrArg,Eq.trans,Equiv,Matrix,Matrix.of,Derivation,MvPolynomial.pderiv,Matrix.vecCons,Matrix.vecEmpty,Matrix.det.congr_simpand 104 more143 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
JacobianConjecture.det_jacobian_Gline 68 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Eq,MvPolynomial,Fin,OfNat.ofNat,Nat,Matrix.det,Finsupp, MvPolynomial.RegularFunction.Jacobian, JacobianConjecture.GProof uses:
Eq.mpr,HSub.hSub,HAdd.hAdd,HMul.hMul,HPow.hPow,RingHom,MvPolynomial.C,MvPolynomial.X,Neg.neg,id,congrFun',congrArg,Eq.trans,Equiv,Matrix,Matrix.of,Derivation,MvPolynomial.pderiv,Matrix.vecCons,Matrix.vecEmptyand 94 more97 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
JacobianConjecture.aeval_F_eqFidentifies the two distinct points(0, 0, -1/4)and(1, -3/2, 13/2)line 78 sourceSource documentation
Fidentifies the two distinct points(0, 0, -1/4)and(1, -3/2, 13/2).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,CharZero,Eq,Fin,OfNat.ofNat,Nat, MvPolynomial.RegularFunction.aeval, JacobianConjecture.F,Matrix.vecCons,HDiv.hDiv,Neg.neg,Matrix.vecEmptyProof uses:
funext,List,List.Mem,List.finRange,HEq,Membership.mem,Finset,Fintype.elems,Fintype.complete,List.cons,List.Mem.head,Fin.mk,Nat.le_of_lt,Nat.le_refl,List.nil,Eq.mpr,HAdd.hAdd,HMul.hMul,HPow.hPow,idand 37 more133 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
lemma aeval_F_eq [Field k] [CharZero k] : (F k).aeval ![(0 : k), 0, -1/4] = (F k).aeval ![(1 : k), -3/2, 13/2] := by …Mentions: JacobianConjecture.F
- lemma
JacobianConjecture.aeval_G_eqGidentifies the two distinct points(1, 0, 1)and(0, 3, -71)line 85 sourceSource documentation
Gidentifies the two distinct points(1, 0, 1)and(0, 3, -71).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Eq,Fin,OfNat.ofNat,Nat, MvPolynomial.RegularFunction.aeval, JacobianConjecture.G,Matrix.vecCons,Matrix.vecEmpty,Neg.negProof uses:
funext,List,List.Mem,List.finRange,HEq,Membership.mem,Finset,Fintype.elems,Fintype.complete,List.cons,List.Mem.head,Fin.mk,Nat.le_of_lt,Nat.le_refl,List.nil,Eq.mpr,HAdd.hAdd,HMul.hMul,HPow.hPow,idand 40 more123 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
lemma aeval_G_eq [CommRing k] : (G k).aeval ![1, 0, (1 : k)] = (G k).aeval ![0, 3, -71] := by …Mentions: JacobianConjecture.G
- def
JacobianConjecture.JacobianConjecturePropThe predicate that the Jacobian conjecture holds for a given field and variable index type (i.e. number of variables) line 92 sourceSource documentation
The predicate that the Jacobian conjecture holds for a given field and variable index type (i.e. number of variables).
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Fintype,DecidableEqProof uses: MvPolynomial.RegularFunction,
IsUnit,MvPolynomial,Finsupp,Nat,Matrix.det, MvPolynomial.RegularFunction.Jacobian,Exists,And,Eq, MvPolynomial.RegularFunction.comp, MvPolynomial.RegularFunction.id11 instances, coercions and auxiliary constants left out.
def JacobianConjectureProp (k σ : Type*) [CommRing k] [Fintype σ] [DecidableEq σ] : Prop := …
- theorem
JacobianConjecture.jacobian_conjectureDocumented declaration: jacobian_conjecture line 106 sourceSource documentation
The Jacobian Conjecture: any regular function (i.e. vector valued polynomial function from)
kⁿ → kᵐwhose Jacobian is a non-zero constant has an inverse that is given by a regular function, wherekis a field of characteristic0.This is false:
Fhas Jacobian determinant1but identifies two distinct points, so it admits no inverse. This counterexample works in all characteristics.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Nontrivial,Iff,False,Fintype,DecidableEq, JacobianConjecture.JacobianConjecturePropProof uses:
Eq.mpr,Not,id,Eq,congrArg,false_iff, MvPolynomial.RegularFunction,Fin,OfNat.ofNat,Nat,And, MvPolynomial.RegularFunction.comp, JacobianConjecture.G, MvPolynomial.RegularFunction.id,Exists,Eq.rec,MvPolynomial,Finsupp,IsUnit,isUnit_oneand 24 more40 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
theorem jacobian_conjecture {k : Type} [CommRing k] [Nontrivial k] : answer(False) ↔ ∀ {σ : Type} [Fintype σ] [DecidableEq σ], JacobianConjectureProp k σ := by … - theorem
JacobianConjecture.jacobian_conjecture_two_variablesDoes the Jacobian conjecture hold in the two variable case? sorry line 120 sourceSource documentation
Does the Jacobian conjecture hold in the two variable case?
depends on sorry what this means
Statement uses:
Iff,True,Field,CharZero, JacobianConjecture.JacobianConjectureProp,Fin,OfNat.ofNat,NatProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous16 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem jacobian_conjecture_two_variables : answer(sorry) ↔ ∀ {k : Type} [Field k] [CharZero k], JacobianConjectureProp k (Fin 2) := by … - lemma
JacobianConjecture.sanity_check_condition_1Let's check that we've stated the "invertible Jacobian" condition correctly by proving an equivalence line 135 sourceSource comment
Let's check that we've stated the "invertible Jacobian" condition correctly by proving an equivalencestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,DecidableEq,Field, MvPolynomial.RegularFunction,Iff,IsUnit,MvPolynomial,Finsupp,Nat,Matrix.det, MvPolynomial.RegularFunction.Jacobian,Exists,And,Ne,OfNat.ofNat,Eq,RingHom,MvPolynomial.CProof uses:
of_eq_true,Not,Eq.trans,True,congrFun',congrArg,funext,iff_self58 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
lemma sanity_check_condition_1 (F : RegularFunction k σ σ) : IsUnit F.Jacobian.det ↔ (∃ (c : k), c ≠ 0 ∧ F.Jacobian.det = .C c) := by …Mentions: JacobianConjecture.F, c
- theorem
JacobianConjecture.jacobian_conjecture_identityLet's apply the conjecture to a trivial case to make sure things are working as expected line 142 sourceSource comment
Let's apply the conjecture to a trivial case to make sure things are working as expected.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,DecidableEq,Field, JacobianConjecture.JacobianConjectureProp,Exists, MvPolynomial.RegularFunction,And,Eq, MvPolynomial.RegularFunction.comp, MvPolynomial.RegularFunction.idProof uses:
Matrix,MvPolynomial, MvPolynomial.RegularFunction.Jacobian,OfNat.ofNat,Finsupp,Nat,Matrix.ext,MvPolynomial.ext,of_eq_true,MvPolynomial.coeff,Eq.trans,Pi.single,True,congr,congrArg,congrFun',Equiv,Matrix.of,Derivation,MvPolynomial.pderivand 9 more34 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
theorem jacobian_conjecture_identity (H : JacobianConjectureProp k σ) : ∃ (G : RegularFunction k σ σ), G.comp (id k σ) = id k σ ∧ (id k σ).comp G = id k σ := by …Mentions: JacobianConjecture.JacobianConjectureProp, JacobianConjecture.G