Zulip Chat Archive

Stream: mathlib4

Topic: gcongr chokes on docs#Submodule.finrank_mono


Yaël Dillies (Sep 07 2024 at 14:24):

I am quite disappointed by the following behavior. Is this due to the goal being finrank K { x // x ∈ U } ≤ finrank K { x // x ∈ W } and gcongr not looking inside the types?

import Mathlib.LinearAlgebra.FiniteDimensional.Defs

open FiniteDimensional

@[gcongr]
protected lemma GCongr.submoduleFinrank_mono {K V : Type*} [DivisionRing K] [AddCommGroup V]
    [Module K V] [FiniteDimensional K V] {U W : Submodule K V} (h : U  W) :
    finrank K U  finrank K W := Submodule.finrank_mono h

/-
@[gcongr] attribute only applies to lemmas proving f x₁ ... xₙ ∼ f x₁' ... xₙ'.
 Not all arguments are free variables in the conclusion of ∀ {K : Type u_1} {V : Type u_2} [inst : DivisionRing K]
  [inst_1 : AddCommGroup V] [inst_2 : Module K V] [inst_3 : FiniteDimensional K V] {U W : Submodule K V},
  U ≤ W → finrank K { x // x ∈ U } ≤ finrank K { x // x ∈ W }
-/

Yaël Dillies (Sep 07 2024 at 14:53):

@[gcongr] lemma iSup_le_iSup_of_imp {p q : Prop} {α : Type*} [CompleteLattice α] (a : α) (h : p → q) : ⨆ h : p, a ≤ ⨆ h : q, a := sorry suffers from the same issue, sadly


Last updated: May 02 2025 at 03:31 UTC