File: Mathlib/LinearAlgebra/SModEq.lean

full_name: SModEq
code: /-- A predicate saying two elements of a module are equivalent modulo a submodule. -/
def SModEq (x y : M) : Prop 
goal: Prop

full_name: «_aux_Mathlib_LinearAlgebra_SModEq___macroRules_term_≡_[SMOD_]_1»
code: notation:50 x " ≡ " y " [SMOD " N "]" => SModEq N x y
goal: Lean.Macro

full_name: _aux_Mathlib_LinearAlgebra_SModEq___unexpand_SModEq_1
code: notation:50 x " ≡ " y " [SMOD " N "]" => SModEq N x y
goal: Lean.PrettyPrinter.Unexpander

full_name: SModEq.def
code: protected theorem SModEq.def :
    x ≡ y [SMOD U] ↔ (Submodule.Quotient.mk x : M ⧸ U) = Submodule.Quotient.mk y 
goal: x ≡ y [SMOD U] ↔ Submodule.Quotient.mk x = Submodule.Quotient.mk y

full_name: SModEq.sub_mem
code: theorem sub_mem : x ≡ y [SMOD U] ↔ x - y ∈ U 
goal: x ≡ y [SMOD U] ↔ x - y ∈ U

full_name: SModEq.top
code: @[simp]
theorem top : x ≡ y [SMOD (⊤ : Submodule R M)] 
goal: x ≡ y [SMOD ⊤]

full_name: SModEq.bot
code: @[simp]
theorem bot : x ≡ y [SMOD (⊥ : Submodule R M)] ↔ x = y 
goal: x ≡ y [SMOD ⊥] ↔ x = y

full_name: SModEq.mono
code: @[mono]
theorem mono (HU : U₁ ≤ U₂) (hxy : x ≡ y [SMOD U₁]) : x ≡ y [SMOD U₂] 
goal: x ≡ y [SMOD U₂]

full_name: SModEq.refl
code: @[refl]
protected theorem refl (x : M) : x ≡ x [SMOD U] 
goal: x ≡ x [SMOD U]

full_name: SModEq.rfl
code: protected theorem rfl : x ≡ x [SMOD U] 
goal: x ≡ x [SMOD U]

full_name: SModEq.instIsRefl
code: instance : IsRefl _ (SModEq U) 
goal: IsRefl M (SModEq U)

full_name: SModEq.symm
code: @[symm]
nonrec theorem symm (hxy : x ≡ y [SMOD U]) : y ≡ x [SMOD U] 
goal: y ≡ x [SMOD U]

full_name: SModEq.trans
code: @[trans]
nonrec theorem trans (hxy : x ≡ y [SMOD U]) (hyz : y ≡ z [SMOD U]) : x ≡ z [SMOD U] 
goal: x ≡ z [SMOD U]

full_name: SModEq.instTrans
code: instance instTrans : Trans (SModEq U) (SModEq U) (SModEq U) 
goal: Trans (SModEq U) (SModEq U) (SModEq U)

full_name: SModEq.add
code: theorem add (hxy₁ : x₁ ≡ y₁ [SMOD U]) (hxy₂ : x₂ ≡ y₂ [SMOD U]) : x₁ + x₂ ≡ y₁ + y₂ [SMOD U] 
goal: x₁ + x₂ ≡ y₁ + y₂ [SMOD U]

full_name: SModEq.smul
code: theorem smul (hxy : x ≡ y [SMOD U]) (c : R) : c • x ≡ c • y [SMOD U] 
goal: c • x ≡ c • y [SMOD U]

full_name: SModEq.nsmul
code: lemma nsmul (hxy : x ≡ y [SMOD U]) (n : ℕ) : n • x ≡ n • y [SMOD U] 
goal: n • x ≡ n • y [SMOD U]

full_name: SModEq.zsmul
code: lemma zsmul (hxy : x ≡ y [SMOD U]) (n : ℤ) : n • x ≡ n • y [SMOD U] 
goal: n • x ≡ n • y [SMOD U]

full_name: SModEq.mul
code: theorem mul {I : Ideal A} {x₁ x₂ y₁ y₂ : A} (hxy₁ : x₁ ≡ y₁ [SMOD I])
    (hxy₂ : x₂ ≡ y₂ [SMOD I]) : x₁ * x₂ ≡ y₁ * y₂ [SMOD I] 
goal: x₁ * x₂ ≡ y₁ * y₂ [SMOD I]

full_name: SModEq.pow
code: lemma pow {I : Ideal A} {x y : A} (n : ℕ) (hxy : x ≡ y [SMOD I]) :
    x ^ n ≡ y ^ n [SMOD I] 
goal: x ^ n ≡ y ^ n [SMOD I]

full_name: SModEq.neg
code: lemma neg (hxy : x ≡ y [SMOD U]) : - x ≡ - y [SMOD U] 
goal: -x ≡ -y [SMOD U]

full_name: SModEq.sub
code: lemma sub (hxy₁ : x₁ ≡ y₁ [SMOD U]) (hxy₂ : x₂ ≡ y₂ [SMOD U]) : x₁ - x₂ ≡ y₁ - y₂ [SMOD U] 
goal: x₁ - x₂ ≡ y₁ - y₂ [SMOD U]

full_name: SModEq.zero
code: theorem zero : x ≡ 0 [SMOD U] ↔ x ∈ U 
goal: x ≡ 0 [SMOD U] ↔ x ∈ U

full_name: SModEq.map
code: theorem map (hxy : x ≡ y [SMOD U]) (f : M →ₗ[R] N) : f x ≡ f y [SMOD U.map f] 
goal: f x ≡ f y [SMOD Submodule.map f U]

full_name: SModEq.comap
code: theorem comap {f : M →ₗ[R] N} (hxy : f x ≡ f y [SMOD V]) : x ≡ y [SMOD V.comap f] 
goal: x ≡ y [SMOD Submodule.comap f V]

full_name: SModEq.eval
code: theorem eval {R : Type*} [CommRing R] {I : Ideal R} {x y : R} (h : x ≡ y [SMOD I]) (f : R[X]) :
    f.eval x ≡ f.eval y [SMOD I] 
goal: Polynomial.eval x f ≡ Polynomial.eval y f [SMOD I]