Zulip Chat Archive
Stream: mathlib4
Topic: goal `0 = 0` after simp
Nailin Guan (Feb 18 2026 at 10:14):
I met a very strange problem in the following case. (Sorry that I didn't get it smaller, something strange happend).
module
public import Mathlib.RingTheory.LocalRing.Module
universe u v
open IsLocalRing
lemma basis_lift {R : Type u} [CommRing R] [Small.{v} R] [IsLocalRing R]
(M : Type*) [AddCommGroup M] [Module R M] [Module.Finite R M]
(ι : Type*) (b : Module.Basis ι (R ⧸ maximalIdeal R) (M ⧸ maximalIdeal R • (⊤ : Submodule R M)))
(f : (ι →₀ Shrink.{v, u} R) →ₗ[R] M) (hf : (maximalIdeal R • (⊤ : Submodule R M)).mkQ ∘ₗ f =
(LinearEquiv.restrictScalars R b.repr).symm ∘ₗ
Finsupp.mapRange.linearMap (Submodule.mkQ (maximalIdeal R) ∘ₗ (Shrink.linearEquiv R R))) :
Function.Surjective f := by
have : Function.Surjective ((LinearEquiv.restrictScalars R b.repr).symm.toLinearMap ∘ₗ
Finsupp.mapRange.linearMap ((Submodule.mkQ (maximalIdeal R)).comp
(Shrink.linearEquiv R R).toLinearMap)) := by
apply (LinearEquiv.restrictScalars R b.repr).symm.surjective.comp
apply Finsupp.mapRange_surjective _ ?_ ?_
· simp
sorry
apply (Submodule.mkQ_surjective _).comp (Shrink.linearEquiv R R).surjective
rw [← hf, ← LinearMap.range_eq_top, LinearMap.range_comp] at this
exact LinearMap.range_eq_top.mp (IsLocalRing.map_mkQ_eq_top.mp this)
Nailin Guan (Feb 18 2026 at 10:15):
(On commit "52b9aaf")
Robin Carlier (Feb 18 2026 at 10:18):
Adding set_option backward.isDefEq.respectTransparency false in removes this error, but should not be considered a solution I think, see the thread #general > backward.isDefEq.respectTransparency .
Nailin Guan (Feb 18 2026 at 10:36):
moved
Nailin Guan (Feb 18 2026 at 13:24):
If this appear everywhere in mathlib, then I believe I have the right to use it until a fix come.
Last updated: Feb 28 2026 at 14:05 UTC