ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Ideal.IsPrime.mul_le
theorem IsPrime.mul_le {I J P : Ideal R} (hp : IsPrime P) : I * J ≤ P ↔ I ≤ P ∨ J ≤ P 
Arguments: {R : Type u} [CommSemiring R] {I J P : Ideal R} (hp : P.IsPrime)
Goal: I * J ≤ P ↔ I ≤ P ∨ J ≤ P
-- Ideal.IsPrime.inf_le
theorem IsPrime.inf_le {I J P : Ideal R} (hp : IsPrime P) : I ⊓ J ≤ P ↔ I ≤ P ∨ J ≤ P 
Arguments: {R : Type u} [CommSemiring R] {I J P : Ideal R} (hp : P.IsPrime)
Goal: I ⊓ J ≤ P ↔ I ≤ P ∨ J ≤ P
-- Ideal.IsPrime.multiset_prod_le
theorem IsPrime.multiset_prod_le {s : Multiset (Ideal R)} {P : Ideal R} (hp : IsPrime P) :
    s.prod ≤ P ↔ ∃ I ∈ s, I ≤ P 
Arguments: {R : Type u} [CommSemiring R] {s : Multiset (Ideal R)} {P : Ideal R} (hp : P.IsPrime)
Goal: s.prod ≤ P ↔ ∃ I ∈ s, I ≤ P
-- Ideal.IsPrime.multiset_prod_map_le
theorem IsPrime.multiset_prod_map_le {s : Multiset ι} (f : ι → Ideal R) {P : Ideal R}
    (hp : IsPrime P) : (s.map f).prod ≤ P ↔ ∃ i ∈ s, f i ≤ P 
Arguments: {R : Type u} {ι : Type u_1} [CommSemiring R] {s : Multiset ι} (f : ι → Ideal R) {P : Ideal R} (hp : P.IsPrime)
Goal: (Multiset.map f s).prod ≤ P ↔ ∃ i ∈ s, f i ≤ P
-- Ideal.IsPrime.multiset_prod_mem_iff_exists_mem
theorem IsPrime.multiset_prod_mem_iff_exists_mem {I : Ideal R} (hI : I.IsPrime) (s : Multiset R) :
    s.prod ∈ I ↔ ∃ p ∈ s, p ∈ I 
Arguments: {R : Type u} [CommSemiring R] {I : Ideal R} (hI : I.IsPrime) (s : Multiset R)
Goal: s.prod ∈ I ↔ ∃ p ∈ s, p ∈ I
-- Ideal.IsPrime.prod_le
theorem IsPrime.prod_le {s : Finset ι} {f : ι → Ideal R} {P : Ideal R} (hp : IsPrime P) :
    s.prod f ≤ P ↔ ∃ i ∈ s, f i ≤ P 
Arguments: {R : Type u} {ι : Type u_1} [CommSemiring R] {s : Finset ι} {f : ι → Ideal R} {P : Ideal R} (hp : P.IsPrime)
Goal: s.prod f ≤ P ↔ ∃ i ∈ s, f i ≤ P
-- Ideal.IsPrime.prod_mem_iff_exists_mem
theorem IsPrime.prod_mem_iff_exists_mem {I : Ideal R} (hI : I.IsPrime) (s : Finset R) :
    s.prod (fun x ↦ x) ∈ I ↔ ∃ p ∈ s, p ∈ I 
Arguments: {R : Type u} [CommSemiring R] {I : Ideal R} (hI : I.IsPrime) (s : Finset R)
Goal: ∏ x ∈ s, x ∈ I ↔ ∃ p ∈ s, p ∈ I
-- Ideal.IsPrime.inf_le'
theorem IsPrime.inf_le' {s : Finset ι} {f : ι → Ideal R} {P : Ideal R} (hp : IsPrime P) :
    s.inf f ≤ P ↔ ∃ i ∈ s, f i ≤ P 
Arguments: {R : Type u} {ι : Type u_1} [CommSemiring R] {s : Finset ι} {f : ι → Ideal R} {P : Ideal R} (hp : P.IsPrime)
Goal: s.inf f ≤ P ↔ ∃ i ∈ s, f i ≤ P
-- Ideal.subset_union
theorem subset_union {R : Type u} [Ring R] {I J K : Ideal R} :
    (I : Set R) ⊆ J ∪ K ↔ I ≤ J ∨ I ≤ K 
Arguments: {R : Type u} [Ring R] {I J K : Ideal R}
Goal: ↑I ⊆ ↑J ∪ ↑K ↔ I ≤ J ∨ I ≤ K
-- Ideal.subset_union_prime'
theorem subset_union_prime' {R : Type u} [CommRing R] {s : Finset ι} {f : ι → Ideal R} {a b : ι}
    (hp : ∀ i ∈ s, IsPrime (f i)) {I : Ideal R} :
    ((I : Set R) ⊆ f a ∪ f b ∪ ⋃ i ∈ (↑s : Set ι), f i) ↔ I ≤ f a ∨ I ≤ f b ∨ ∃ i ∈ s, I ≤ f i 
Arguments: {ι : Type u_1} {R : Type u} [CommRing R] {s : Finset ι} {f : ι → Ideal R} {a b : ι} (hp : ∀ i ∈ s, (f i).IsPrime) {I : Ideal R}
Goal: ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ i ∈ ↑s, ↑(f i) ↔ I ≤ f a ∨ I ≤ f b ∨ ∃ i ∈ s, I ≤ f i
-- Ideal.subset_union_prime
theorem subset_union_prime {R : Type u} [CommRing R] {s : Finset ι} {f : ι → Ideal R} (a b : ι)
    (hp : ∀ i ∈ s, i ≠ a → i ≠ b → IsPrime (f i)) {I : Ideal R} :
    ((I : Set R) ⊆ ⋃ i ∈ (↑s : Set ι), f i) ↔ ∃ i ∈ s, I ≤ f i 
Arguments: {ι : Type u_1} {R : Type u} [CommRing R] {s : Finset ι} {f : ι → Ideal R} (a b : ι) (hp : ∀ i ∈ s, i ≠ a → i ≠ b → (f i).IsPrime) {I : Ideal R}
Goal: ↑I ⊆ ⋃ i ∈ ↑s, ↑(f i) ↔ ∃ i ∈ s, I ≤ f i
-- Ideal.le_of_dvd
theorem le_of_dvd {I J : Ideal R} : I ∣ J → J ≤ I
  
Arguments: {R : Type u} [CommSemiring R] {I J : Ideal R}
Goal: I ∣ J → J ≤ I
-- Ideal.isUnit_iff
@[simp]
theorem isUnit_iff {I : Ideal R} : IsUnit I ↔ I = ⊤ 
Arguments: {R : Type u} [CommSemiring R] {I : Ideal R}
Goal: IsUnit I ↔ I = ⊤
-- Ideal.finsuppTotal_apply
theorem finsuppTotal_apply (f : ι →₀ I) :
    finsuppTotal ι M I v f = f.sum fun i x => (x : R) • v i 
Arguments: {ι : Type u_1} {M : Type u_2} [AddCommGroup M] {R : Type u_3} [CommRing R] [Module R M] (I : Ideal R) {v : ι → M} (f : ι →₀ ↥I)
Goal: (Ideal.finsuppTotal ι M I v) f = f.sum fun i x => ↑x • v i
-- Ideal.finsuppTotal_apply_eq_of_fintype
theorem finsuppTotal_apply_eq_of_fintype [Fintype ι] (f : ι →₀ I) :
    finsuppTotal ι M I v f = ∑ i, (f i : R) • v i 
Arguments: {ι : Type u_1} {M : Type u_2} [AddCommGroup M] {R : Type u_3} [CommRing R] [Module R M] (I : Ideal R) {v : ι → M} [Fintype ι] (f : ι →₀ ↥I)
Goal: (Ideal.finsuppTotal ι M I v) f = ∑ i : ι, ↑(f i) • v i
-- Ideal.range_finsuppTotal
theorem range_finsuppTotal :
    LinearMap.range (finsuppTotal ι M I v) = I • Submodule.span R (Set.range v) 
Arguments: {ι : Type u_1} {M : Type u_2} [AddCommGroup M] {R : Type u_3} [CommRing R] [Module R M] (I : Ideal R) {v : ι → M}
Goal: LinearMap.range (Ideal.finsuppTotal ι M I v) = I • Submodule.span R (Set.range v)
-- Finsupp.mem_ideal_span_range_iff_exists_finsupp
theorem Finsupp.mem_ideal_span_range_iff_exists_finsupp {x : R} {v : α → R} :
    x ∈ Ideal.span (Set.range v) ↔ ∃ c : α →₀ R, (c.sum fun i a => a * v i) = x 
Arguments: {α : Type u_1} {R : Type u_2} [Semiring R] {x : R} {v : α → R}
Goal: x ∈ Ideal.span (Set.range v) ↔ ∃ c, (c.sum fun i a => a * v i) = x
-- mem_ideal_span_range_iff_exists_fun
theorem mem_ideal_span_range_iff_exists_fun [Fintype α] {x : R} {v : α → R} :
    x ∈ Ideal.span (Set.range v) ↔ ∃ c : α → R, ∑ i, c i * v i = x 
Arguments: {α : Type u_1} {R : Type u_2} [Semiring R] [Fintype α] {x : R} {v : α → R}
Goal: x ∈ Ideal.span (Set.range v) ↔ ∃ c, ∑ i : α, c i * v i = x
-- Associates.mk_ne_zero'
theorem Associates.mk_ne_zero' {R : Type*} [CommSemiring R] {r : R} :
    Associates.mk (Ideal.span {r} : Ideal R) ≠ 0 ↔ r ≠ 0 
Arguments: {R : Type u_1} [CommSemiring R] {r : R}
Goal: Associates.mk (Ideal.span {r}) ≠ 0 ↔ r ≠ 0
-- Ideal.span_singleton_nonZeroDivisors
theorem Ideal.span_singleton_nonZeroDivisors {R : Type*} [CommSemiring R] [NoZeroDivisors R]
    {r : R} : span {r} ∈ (Ideal R)⁰ ↔ r ∈ R⁰ 
Arguments: {R : Type u_1} [CommSemiring R] [NoZeroDivisors R] {r : R}
Goal: Ideal.span {r} ∈ nonZeroDivisors (Ideal R) ↔ r ∈ nonZeroDivisors R
-- Submodule.span_smul_eq
lemma span_smul_eq
    (s : Set R) (N : Submodule R M) :
    Ideal.span s • N = s • N 
Arguments: {R : Type u} {M : Type v} [CommSemiring R] [AddCommMonoid M] [Module R M] (s : Set R) (N : Submodule R M)
Goal: Ideal.span s • N = s • N
-- Submodule.set_smul_top_eq_span
@[simp]
theorem set_smul_top_eq_span (s : Set R) :
    s • ⊤ = Ideal.span s 
Arguments: {R : Type u} [CommSemiring R] (s : Set R)
Goal: s • ⊤ = Ideal.span s
-- LinearMap.ker_id_sub_eq_of_proj
theorem ker_id_sub_eq_of_proj {f : E →ₗ[R] p} (hf : ∀ x : p, f x = x) :
    ker (id - p.subtype.comp f) = p 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p : Submodule R E} {f : E →ₗ[R] ↥p} (hf : ∀ (x : ↥p), f ↑x = x)
Goal: LinearMap.ker (LinearMap.id - p.subtype ∘ₗ f) = p
-- LinearMap.range_eq_of_proj
theorem range_eq_of_proj {f : E →ₗ[R] p} (hf : ∀ x : p, f x = x) : range f = ⊤ 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p : Submodule R E} {f : E →ₗ[R] ↥p} (hf : ∀ (x : ↥p), f ↑x = x)
Goal: LinearMap.range f = ⊤
-- LinearMap.isCompl_of_proj
theorem isCompl_of_proj {f : E →ₗ[R] p} (hf : ∀ x : p, f x = x) : IsCompl p (ker f) 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p : Submodule R E} {f : E →ₗ[R] ↥p} (hf : ∀ (x : ↥p), f ↑x = x)
Goal: IsCompl p (LinearMap.ker f)
-- Submodule.quotientEquivOfIsCompl_symm_apply
@[simp]
theorem quotientEquivOfIsCompl_symm_apply (h : IsCompl p q) (x : q) :
    -- Porting note: type ascriptions needed on the RHS
    (quotientEquivOfIsCompl p q h).symm x = (Quotient.mk (x : E) : E ⧸ p) 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] (p q : Submodule R E) (h : IsCompl p q) (x : ↥q)
Goal: (p.quotientEquivOfIsCompl q h).symm x = Submodule.Quotient.mk ↑x
-- Submodule.quotientEquivOfIsCompl_apply_mk_coe
@[simp]
theorem quotientEquivOfIsCompl_apply_mk_coe (h : IsCompl p q) (x : q) :
    quotientEquivOfIsCompl p q h (Quotient.mk x) = x 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] (p q : Submodule R E) (h : IsCompl p q) (x : ↥q)
Goal: (p.quotientEquivOfIsCompl q h) (Submodule.Quotient.mk ↑x) = x
-- Submodule.mk_quotientEquivOfIsCompl_apply
@[simp]
theorem mk_quotientEquivOfIsCompl_apply (h : IsCompl p q) (x : E ⧸ p) :
    (Quotient.mk (quotientEquivOfIsCompl p q h x) : E ⧸ p) = x 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] (p q : Submodule R E) (h : IsCompl p q) (x : E ⧸ p)
Goal: Submodule.Quotient.mk ↑((p.quotientEquivOfIsCompl q h) x) = x
-- Submodule.coe_prodEquivOfIsCompl
@[simp]
theorem coe_prodEquivOfIsCompl (h : IsCompl p q) :
    (prodEquivOfIsCompl p q h : p × q →ₗ[R] E) = p.subtype.coprod q.subtype 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] (p q : Submodule R E) (h : IsCompl p q)
Goal: ↑(p.prodEquivOfIsCompl q h) = p.subtype.coprod q.subtype
-- Submodule.coe_prodEquivOfIsCompl'
@[simp]
theorem coe_prodEquivOfIsCompl' (h : IsCompl p q) (x : p × q) :
    prodEquivOfIsCompl p q h x = x.1 + x.2 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] (p q : Submodule R E) (h : IsCompl p q) (x : ↥p × ↥q)
Goal: (p.prodEquivOfIsCompl q h) x = ↑x.1 + ↑x.2
-- Submodule.prodEquivOfIsCompl_symm_apply_left
@[simp]
theorem prodEquivOfIsCompl_symm_apply_left (h : IsCompl p q) (x : p) :
    (prodEquivOfIsCompl p q h).symm x = (x, 0) 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] (p q : Submodule R E) (h : IsCompl p q) (x : ↥p)
Goal: (p.prodEquivOfIsCompl q h).symm ↑x = (x, 0)
-- Submodule.prodEquivOfIsCompl_symm_apply_right
@[simp]
theorem prodEquivOfIsCompl_symm_apply_right (h : IsCompl p q) (x : q) :
    (prodEquivOfIsCompl p q h).symm x = (0, x) 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] (p q : Submodule R E) (h : IsCompl p q) (x : ↥q)
Goal: (p.prodEquivOfIsCompl q h).symm ↑x = (0, x)
-- Submodule.prodEquivOfIsCompl_symm_apply_fst_eq_zero
@[simp]
theorem prodEquivOfIsCompl_symm_apply_fst_eq_zero (h : IsCompl p q) {x : E} :
    ((prodEquivOfIsCompl p q h).symm x).1 = 0 ↔ x ∈ q 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] (p q : Submodule R E) (h : IsCompl p q) {x : E}
Goal: ((p.prodEquivOfIsCompl q h).symm x).1 = 0 ↔ x ∈ q
-- Submodule.prodEquivOfIsCompl_symm_apply_snd_eq_zero
@[simp]
theorem prodEquivOfIsCompl_symm_apply_snd_eq_zero (h : IsCompl p q) {x : E} :
    ((prodEquivOfIsCompl p q h).symm x).2 = 0 ↔ x ∈ p 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] (p q : Submodule R E) (h : IsCompl p q) {x : E}
Goal: ((p.prodEquivOfIsCompl q h).symm x).2 = 0 ↔ x ∈ p
-- Submodule.prodComm_trans_prodEquivOfIsCompl
@[simp]
theorem prodComm_trans_prodEquivOfIsCompl (h : IsCompl p q) :
    LinearEquiv.prodComm R q p ≪≫ₗ prodEquivOfIsCompl p q h = prodEquivOfIsCompl q p h.symm 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] (p q : Submodule R E) (h : IsCompl p q)
Goal: LinearEquiv.prodComm R ↥q ↥p ≪≫ₗ p.prodEquivOfIsCompl q h = q.prodEquivOfIsCompl p ⋯
-- Submodule.linearProjOfIsCompl_apply_left
@[simp]
theorem linearProjOfIsCompl_apply_left (h : IsCompl p q) (x : p) :
    linearProjOfIsCompl p q h x = x 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p q : Submodule R E} (h : IsCompl p q) (x : ↥p)
Goal: (p.linearProjOfIsCompl q h) ↑x = x
-- Submodule.linearProjOfIsCompl_range
@[simp]
theorem linearProjOfIsCompl_range (h : IsCompl p q) : range (linearProjOfIsCompl p q h) = ⊤ 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p q : Submodule R E} (h : IsCompl p q)
Goal: LinearMap.range (p.linearProjOfIsCompl q h) = ⊤
-- Submodule.linearProjOfIsCompl_apply_eq_zero_iff
@[simp]
theorem linearProjOfIsCompl_apply_eq_zero_iff (h : IsCompl p q) {x : E} :
    linearProjOfIsCompl p q h x = 0 ↔ x ∈ q 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p q : Submodule R E} (h : IsCompl p q) {x : E}
Goal: (p.linearProjOfIsCompl q h) x = 0 ↔ x ∈ q
-- Submodule.linearProjOfIsCompl_apply_right'
theorem linearProjOfIsCompl_apply_right' (h : IsCompl p q) (x : E) (hx : x ∈ q) :
    linearProjOfIsCompl p q h x = 0 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p q : Submodule R E} (h : IsCompl p q) (x : E) (hx : x ∈ q)
Goal: (p.linearProjOfIsCompl q h) x = 0
-- Submodule.linearProjOfIsCompl_apply_right
@[simp]
theorem linearProjOfIsCompl_apply_right (h : IsCompl p q) (x : q) :
    linearProjOfIsCompl p q h x = 0 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p q : Submodule R E} (h : IsCompl p q) (x : ↥q)
Goal: (p.linearProjOfIsCompl q h) ↑x = 0
-- Submodule.linearProjOfIsCompl_ker
@[simp]
theorem linearProjOfIsCompl_ker (h : IsCompl p q) : ker (linearProjOfIsCompl p q h) = q 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p q : Submodule R E} (h : IsCompl p q)
Goal: LinearMap.ker (p.linearProjOfIsCompl q h) = q
-- Submodule.linearProjOfIsCompl_comp_subtype
theorem linearProjOfIsCompl_comp_subtype (h : IsCompl p q) :
    (linearProjOfIsCompl p q h).comp p.subtype = LinearMap.id 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p q : Submodule R E} (h : IsCompl p q)
Goal: p.linearProjOfIsCompl q h ∘ₗ p.subtype = LinearMap.id
-- Submodule.linearProjOfIsCompl_idempotent
theorem linearProjOfIsCompl_idempotent (h : IsCompl p q) (x : E) :
    linearProjOfIsCompl p q h (linearProjOfIsCompl p q h x) = linearProjOfIsCompl p q h x 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p q : Submodule R E} (h : IsCompl p q) (x : E)
Goal: (p.linearProjOfIsCompl q h) ↑((p.linearProjOfIsCompl q h) x) = (p.linearProjOfIsCompl q h) x
-- Submodule.existsUnique_add_of_isCompl_prod
theorem existsUnique_add_of_isCompl_prod (hc : IsCompl p q) (x : E) :
    ∃! u : p × q, (u.fst : E) + u.snd = x 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p q : Submodule R E} (hc : IsCompl p q) (x : E)
Goal: ∃! u, ↑u.1 + ↑u.2 = x
-- Submodule.existsUnique_add_of_isCompl
theorem existsUnique_add_of_isCompl (hc : IsCompl p q) (x : E) :
    ∃ (u : p) (v : q), (u : E) + v = x ∧ ∀ (r : p) (s : q), (r : E) + s = x → r = u ∧ s = v 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p q : Submodule R E} (hc : IsCompl p q) (x : E)
Goal: ∃ u v, ↑u + ↑v = x ∧ ∀ (r : ↥p) (s : ↥q), ↑r + ↑s = x → r = u ∧ s = v
-- Submodule.linear_proj_add_linearProjOfIsCompl_eq_self
theorem linear_proj_add_linearProjOfIsCompl_eq_self (hpq : IsCompl p q) (x : E) :
    (p.linearProjOfIsCompl q hpq x + q.linearProjOfIsCompl p hpq.symm x : E) = x 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p q : Submodule R E} (hpq : IsCompl p q) (x : E)
Goal: ↑((p.linearProjOfIsCompl q hpq) x) + ↑((q.linearProjOfIsCompl p ⋯) x) = x
-- LinearMap.ofIsCompl_left_apply
@[simp]
theorem ofIsCompl_left_apply (h : IsCompl p q) {φ : p →ₗ[R] F} {ψ : q →ₗ[R] F} (u : p) :
    ofIsCompl h φ ψ (u : E) = φ u 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {F : Type u_3} [AddCommGroup F] [Module R F] {p q : Submodule R E} (h : IsCompl p q) {φ : ↥p →ₗ[R] F} {ψ : ↥q →ₗ[R] F} (u : ↥p)
Goal: (LinearMap.ofIsCompl h φ ψ) ↑u = φ u
-- LinearMap.ofIsCompl_right_apply
@[simp]
theorem ofIsCompl_right_apply (h : IsCompl p q) {φ : p →ₗ[R] F} {ψ : q →ₗ[R] F} (v : q) :
    ofIsCompl h φ ψ (v : E) = ψ v 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {F : Type u_3} [AddCommGroup F] [Module R F] {p q : Submodule R E} (h : IsCompl p q) {φ : ↥p →ₗ[R] F} {ψ : ↥q →ₗ[R] F} (v : ↥q)
Goal: (LinearMap.ofIsCompl h φ ψ) ↑v = ψ v
-- LinearMap.ofIsCompl_eq
theorem ofIsCompl_eq (h : IsCompl p q) {φ : p →ₗ[R] F} {ψ : q →ₗ[R] F} {χ : E →ₗ[R] F}
    (hφ : ∀ u, φ u = χ u) (hψ : ∀ u, ψ u = χ u) : ofIsCompl h φ ψ = χ 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {F : Type u_3} [AddCommGroup F] [Module R F] {p q : Submodule R E} (h : IsCompl p q) {φ : ↥p →ₗ[R] F} {ψ : ↥q →ₗ[R] F} {χ : E →ₗ[R] F} (hφ : ∀ (u : ↥p), φ u = χ ↑u) (hψ : ∀ (u : ↥q), ψ u = χ ↑u)
Goal: LinearMap.ofIsCompl h φ ψ = χ
-- LinearMap.ofIsCompl_eq'
theorem ofIsCompl_eq' (h : IsCompl p q) {φ : p →ₗ[R] F} {ψ : q →ₗ[R] F} {χ : E →ₗ[R] F}
    (hφ : φ = χ.comp p.subtype) (hψ : ψ = χ.comp q.subtype) : ofIsCompl h φ ψ = χ 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {F : Type u_3} [AddCommGroup F] [Module R F] {p q : Submodule R E} (h : IsCompl p q) {φ : ↥p →ₗ[R] F} {ψ : ↥q →ₗ[R] F} {χ : E →ₗ[R] F} (hφ : φ = χ ∘ₗ p.subtype) (hψ : ψ = χ ∘ₗ q.subtype)
Goal: LinearMap.ofIsCompl h φ ψ = χ
-- LinearMap.ofIsCompl_zero
@[simp]
theorem ofIsCompl_zero (h : IsCompl p q) : (ofIsCompl h 0 0 : E →ₗ[R] F) = 0 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {F : Type u_3} [AddCommGroup F] [Module R F] {p q : Submodule R E} (h : IsCompl p q)
Goal: LinearMap.ofIsCompl h 0 0 = 0
-- LinearMap.ofIsCompl_add
@[simp]
theorem ofIsCompl_add (h : IsCompl p q) {φ₁ φ₂ : p →ₗ[R] F} {ψ₁ ψ₂ : q →ₗ[R] F} :
    ofIsCompl h (φ₁ + φ₂) (ψ₁ + ψ₂) = ofIsCompl h φ₁ ψ₁ + ofIsCompl h φ₂ ψ₂ 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {F : Type u_3} [AddCommGroup F] [Module R F] {p q : Submodule R E} (h : IsCompl p q) {φ₁ φ₂ : ↥p →ₗ[R] F} {ψ₁ ψ₂ : ↥q →ₗ[R] F}
Goal: LinearMap.ofIsCompl h (φ₁ + φ₂) (ψ₁ + ψ₂) = LinearMap.ofIsCompl h φ₁ ψ₁ + LinearMap.ofIsCompl h φ₂ ψ₂
-- LinearMap.ofIsCompl_smul
@[simp]
theorem ofIsCompl_smul {R : Type*} [CommRing R] {E : Type*} [AddCommGroup E] [Module R E]
    {F : Type*} [AddCommGroup F] [Module R F] {p q : Submodule R E} (h : IsCompl p q)
    {φ : p →ₗ[R] F} {ψ : q →ₗ[R] F} (c : R) : ofIsCompl h (c • φ) (c • ψ) = c • ofIsCompl h φ ψ 
Arguments: {R : Type u_7} [CommRing R] {E : Type u_8} [AddCommGroup E] [Module R E] {F : Type u_9} [AddCommGroup F] [Module R F] {p q : Submodule R E} (h : IsCompl p q) {φ : ↥p →ₗ[R] F} {ψ : ↥q →ₗ[R] F} (c : R)
Goal: LinearMap.ofIsCompl h (c • φ) (c • ψ) = c • LinearMap.ofIsCompl h φ ψ
-- LinearMap.ofIsComplProd_apply
@[simp]
theorem ofIsComplProd_apply {p q : Submodule R₁ E} (h : IsCompl p q)
    (φ : (p →ₗ[R₁] F) × (q →ₗ[R₁] F)) : ofIsComplProd h φ = ofIsCompl h φ.1 φ.2 
Arguments: {E : Type u_2} [AddCommGroup E] {F : Type u_3} [AddCommGroup F] {R₁ : Type u_7} [CommRing R₁] [Module R₁ E] [Module R₁ F] {p q : Submodule R₁ E} (h : IsCompl p q) (φ : (↥p →ₗ[R₁] F) × (↥q →ₗ[R₁] F))
Goal: (LinearMap.ofIsComplProd h) φ = LinearMap.ofIsCompl h φ.1 φ.2
-- LinearMap.linearProjOfIsCompl_of_proj
@[simp, nolint simpNF] -- Porting note: linter claims that LHS doesn't simplify, but it does
theorem linearProjOfIsCompl_of_proj (f : E →ₗ[R] p) (hf : ∀ x : p, f x = x) :
    p.linearProjOfIsCompl (ker f) (isCompl_of_proj hf) = f 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {p : Submodule R E} (f : E →ₗ[R] ↥p) (hf : ∀ (x : ↥p), f ↑x = x)
Goal: p.linearProjOfIsCompl (LinearMap.ker f) ⋯ = f
-- LinearMap.coe_equivProdOfSurjectiveOfIsCompl
@[simp]
theorem coe_equivProdOfSurjectiveOfIsCompl {f : E →ₗ[R] F} {g : E →ₗ[R] G} (hf : range f = ⊤)
    (hg : range g = ⊤) (hfg : IsCompl (ker f) (ker g)) :
    (equivProdOfSurjectiveOfIsCompl f g hf hg hfg : E →ₗ[R] F × G) = f.prod g 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {F : Type u_3} [AddCommGroup F] [Module R F] {G : Type u_4} [AddCommGroup G] [Module R G] {f : E →ₗ[R] F} {g : E →ₗ[R] G} (hf : LinearMap.range f = ⊤) (hg : LinearMap.range g = ⊤) (hfg : IsCompl (LinearMap.ker f) (LinearMap.ker g))
Goal: ↑(f.equivProdOfSurjectiveOfIsCompl g hf hg hfg) = f.prod g
-- LinearMap.equivProdOfSurjectiveOfIsCompl_apply
@[simp]
theorem equivProdOfSurjectiveOfIsCompl_apply {f : E →ₗ[R] F} {g : E →ₗ[R] G} (hf : range f = ⊤)
    (hg : range g = ⊤) (hfg : IsCompl (ker f) (ker g)) (x : E) :
    equivProdOfSurjectiveOfIsCompl f g hf hg hfg x = (f x, g x) 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] {F : Type u_3} [AddCommGroup F] [Module R F] {G : Type u_4} [AddCommGroup G] [Module R G] {f : E →ₗ[R] F} {g : E →ₗ[R] G} (hf : LinearMap.range f = ⊤) (hg : LinearMap.range g = ⊤) (hfg : IsCompl (LinearMap.ker f) (LinearMap.ker g)) (x : E)
Goal: (f.equivProdOfSurjectiveOfIsCompl g hf hg hfg) x = (f x, g x)
-- Submodule.coe_isComplEquivProj_apply
@[simp]
theorem coe_isComplEquivProj_apply (q : { q // IsCompl p q }) :
    (p.isComplEquivProj q : E →ₗ[R] p) = linearProjOfIsCompl p q q.2 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] (p : Submodule R E) (q : { q // IsCompl p q })
Goal: ↑(p.isComplEquivProj q) = p.linearProjOfIsCompl ↑q ⋯
-- Submodule.coe_isComplEquivProj_symm_apply
@[simp]
theorem coe_isComplEquivProj_symm_apply (f : { f : E →ₗ[R] p // ∀ x : p, f x = x }) :
    (p.isComplEquivProj.symm f : Submodule R E) = ker (f : E →ₗ[R] p) 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] (p : Submodule R E) (f : { f // ∀ (x : ↥p), f ↑x = x })
Goal: ↑(p.isComplEquivProj.symm f) = LinearMap.ker ↑f
-- Submodule.isIdempotentElemEquiv_apply_coe
@[simps] def isIdempotentElemEquiv :
    { f : Module.End R E // IsIdempotentElem f ∧ range f = p } ≃
    { f : E →ₗ[R] p // ∀ x : p, f x = x } 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] (p : Submodule R E) (f : { f // IsIdempotentElem f ∧ LinearMap.range f = p })
Goal: ↑(p.isIdempotentElemEquiv f) = LinearMap.codRestrict p ↑f ⋯
-- Submodule.isIdempotentElemEquiv_symm_apply_coe
@[simps] def isIdempotentElemEquiv :
    { f : Module.End R E // IsIdempotentElem f ∧ range f = p } ≃
    { f : E →ₗ[R] p // ∀ x : p, f x = x } 
Arguments: {R : Type u_1} [Ring R] {E : Type u_2} [AddCommGroup E] [Module R E] (p : Submodule R E) (f : { f // ∀ (x : ↥p), f ↑x = x })
Goal: ↑(p.isIdempotentElemEquiv.symm f) = p.subtype ∘ₗ ↑f
-- LinearMap.IsProj.map_mem
structure IsProj {F : Type*} [FunLike F M M] (f : F) : Prop where
  map_mem : ∀ x, f x ∈ m
  map_id : ∀ x ∈ m, f x = x
Arguments: {S : Type u_5} [Semiring S] {M : Type u_6} [AddCommMonoid M] [Module S M] {m : Submodule S M} {F : Type u_7} [FunLike F M M] {f : F} (self : LinearMap.IsProj m f) (x : M)
Goal: f x ∈ m
-- LinearMap.IsProj.map_id
structure IsProj {F : Type*} [FunLike F M M] (f : F) : Prop where
  map_mem : ∀ x, f x ∈ m
  map_id : ∀ x ∈ m, f x = x
Arguments: {S : Type u_5} [Semiring S] {M : Type u_6} [AddCommMonoid M] [Module S M] {m : Submodule S M} {F : Type u_7} [FunLike F M M] {f : F} (self : LinearMap.IsProj m f) (x : M)
Goal: x ∈ m → f x = x
-- LinearMap.isProj_iff_idempotent
theorem isProj_iff_idempotent (f : M →ₗ[S] M) : (∃ p : Submodule S M, IsProj p f) ↔ f ∘ₗ f = f 
Arguments: {S : Type u_5} [Semiring S] {M : Type u_6} [AddCommMonoid M] [Module S M] (f : M →ₗ[S] M)
Goal: (∃ p, LinearMap.IsProj p f) ↔ f ∘ₗ f = f
-- LinearMap.IsProj.codRestrict_apply
@[simp]
theorem codRestrict_apply {f : M →ₗ[S] M} (h : IsProj m f) (x : M) : ↑(h.codRestrict x) = f x 
Arguments: {S : Type u_5} [Semiring S] {M : Type u_6} [AddCommMonoid M] [Module S M] {m : Submodule S M} {f : M →ₗ[S] M} (h : LinearMap.IsProj m f) (x : M)
Goal: ↑(h.codRestrict x) = f x
-- LinearMap.IsProj.codRestrict_apply_cod
@[simp]
theorem codRestrict_apply_cod {f : M →ₗ[S] M} (h : IsProj m f) (x : m) : h.codRestrict x = x 
Arguments: {S : Type u_5} [Semiring S] {M : Type u_6} [AddCommMonoid M] [Module S M] {m : Submodule S M} {f : M →ₗ[S] M} (h : LinearMap.IsProj m f) (x : ↥m)
Goal: h.codRestrict ↑x = x
-- LinearMap.IsProj.codRestrict_ker
theorem codRestrict_ker {f : M →ₗ[S] M} (h : IsProj m f) : ker h.codRestrict = ker f 
Arguments: {S : Type u_5} [Semiring S] {M : Type u_6} [AddCommMonoid M] [Module S M] {m : Submodule S M} {f : M →ₗ[S] M} (h : LinearMap.IsProj m f)
Goal: LinearMap.ker h.codRestrict = LinearMap.ker f