ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- PrimeSpectrum.vanishingIdeal_anti_mono_iff
theorem vanishingIdeal_anti_mono_iff {s t : Set (PrimeSpectrum R)} (ht : IsClosed t) :
    s ⊆ t ↔ vanishingIdeal t ≤ vanishingIdeal s 
Arguments: {R : Type u} [CommSemiring R] {s t : Set (PrimeSpectrum R)} (ht : IsClosed t)
Goal: s ⊆ t ↔ PrimeSpectrum.vanishingIdeal t ≤ PrimeSpectrum.vanishingIdeal s
-- PrimeSpectrum.vanishingIdeal_strict_anti_mono_iff
theorem vanishingIdeal_strict_anti_mono_iff {s t : Set (PrimeSpectrum R)} (hs : IsClosed s)
    (ht : IsClosed t) : s ⊂ t ↔ vanishingIdeal t < vanishingIdeal s 
Arguments: {R : Type u} [CommSemiring R] {s t : Set (PrimeSpectrum R)} (hs : IsClosed s) (ht : IsClosed t)
Goal: s ⊂ t ↔ PrimeSpectrum.vanishingIdeal t < PrimeSpectrum.vanishingIdeal s
-- PrimeSpectrum.t1Space_iff_isField
theorem t1Space_iff_isField [IsDomain R] : T1Space (PrimeSpectrum R) ↔ IsField R 
Arguments: {R : Type u} [CommSemiring R] [IsDomain R]
Goal: T1Space (PrimeSpectrum R) ↔ IsField R
-- PrimeSpectrum.isIrreducible_zeroLocus_iff_of_radical
theorem isIrreducible_zeroLocus_iff_of_radical (I : Ideal R) (hI : I.IsRadical) :
    IsIrreducible (zeroLocus (I : Set R)) ↔ I.IsPrime 
Arguments: {R : Type u} [CommSemiring R] (I : Ideal R) (hI : I.IsRadical)
Goal: IsIrreducible (PrimeSpectrum.zeroLocus ↑I) ↔ I.IsPrime
-- PrimeSpectrum.isIrreducible_zeroLocus_iff
theorem isIrreducible_zeroLocus_iff (I : Ideal R) :
    IsIrreducible (zeroLocus (I : Set R)) ↔ I.radical.IsPrime 
Arguments: {R : Type u} [CommSemiring R] (I : Ideal R)
Goal: IsIrreducible (PrimeSpectrum.zeroLocus ↑I) ↔ I.radical.IsPrime
-- PrimeSpectrum.isIrreducible_iff_vanishingIdeal_isPrime
theorem isIrreducible_iff_vanishingIdeal_isPrime {s : Set (PrimeSpectrum R)} :
    IsIrreducible s ↔ (vanishingIdeal s).IsPrime 
Arguments: {R : Type u} [CommSemiring R] {s : Set (PrimeSpectrum R)}
Goal: IsIrreducible s ↔ (PrimeSpectrum.vanishingIdeal s).IsPrime
-- PrimeSpectrum.vanishingIdeal_isIrreducible
lemma vanishingIdeal_isIrreducible :
    vanishingIdeal (R := R) '' {s | IsIrreducible s} = {P | P.IsPrime} 
Arguments: {R : Type u} [CommSemiring R]
Goal: PrimeSpectrum.vanishingIdeal '' {s | IsIrreducible s} = {P | P.IsPrime}
-- PrimeSpectrum.vanishingIdeal_isClosed_isIrreducible
lemma vanishingIdeal_isClosed_isIrreducible :
    vanishingIdeal (R := R) '' {s | IsClosed s ∧ IsIrreducible s} = {P | P.IsPrime} 
Arguments: {R : Type u} [CommSemiring R]
Goal: PrimeSpectrum.vanishingIdeal '' {s | IsClosed s ∧ IsIrreducible s} = {P | P.IsPrime}
-- PrimeSpectrum.preimage_comap_zeroLocus_aux
theorem preimage_comap_zeroLocus_aux (f : R →+* S) (s : Set R) :
    (fun y => ⟨Ideal.comap f y.asIdeal, inferInstance⟩ : PrimeSpectrum S → PrimeSpectrum R) ⁻¹'
        zeroLocus s =
      zeroLocus (f '' s) 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] (f : R →+* S) (s : Set R)
Goal: (fun y => { asIdeal := Ideal.comap f y.asIdeal, isPrime := ⋯ }) ⁻¹' PrimeSpectrum.zeroLocus s =
  PrimeSpectrum.zeroLocus (⇑f '' s)
-- PrimeSpectrum.comap_asIdeal
@[simp]
theorem comap_asIdeal (y : PrimeSpectrum S) : (comap f y).asIdeal = Ideal.comap f y.asIdeal 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] (f : R →+* S) (y : PrimeSpectrum S)
Goal: ((PrimeSpectrum.comap f) y).asIdeal = Ideal.comap f y.asIdeal
-- PrimeSpectrum.comap_id
@[simp]
theorem comap_id : comap (RingHom.id R) = ContinuousMap.id _ 
Arguments: {R : Type u} [CommSemiring R]
Goal: PrimeSpectrum.comap (RingHom.id R) = ContinuousMap.id (PrimeSpectrum R)
-- PrimeSpectrum.comap_comp
@[simp]
theorem comap_comp (f : R →+* S) (g : S →+* S') : comap (g.comp f) = (comap f).comp (comap g) 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] {S' : Type u_1} [CommSemiring S'] (f : R →+* S) (g : S →+* S')
Goal: PrimeSpectrum.comap (g.comp f) = (PrimeSpectrum.comap f).comp (PrimeSpectrum.comap g)
-- PrimeSpectrum.comap_comp_apply
theorem comap_comp_apply (f : R →+* S) (g : S →+* S') (x : PrimeSpectrum S') :
    PrimeSpectrum.comap (g.comp f) x = (PrimeSpectrum.comap f) (PrimeSpectrum.comap g x) 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] {S' : Type u_1} [CommSemiring S'] (f : R →+* S) (g : S →+* S') (x : PrimeSpectrum S')
Goal: (PrimeSpectrum.comap (g.comp f)) x = (PrimeSpectrum.comap f) ((PrimeSpectrum.comap g) x)
-- PrimeSpectrum.preimage_comap_zeroLocus
@[simp]
theorem preimage_comap_zeroLocus (s : Set R) : comap f ⁻¹' zeroLocus s = zeroLocus (f '' s) 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] (f : R →+* S) (s : Set R)
Goal: ⇑(PrimeSpectrum.comap f) ⁻¹' PrimeSpectrum.zeroLocus s = PrimeSpectrum.zeroLocus (⇑f '' s)
-- PrimeSpectrum.comap_injective_of_surjective
theorem comap_injective_of_surjective (f : R →+* S) (hf : Function.Surjective f) :
    Function.Injective (comap f) 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] (f : R →+* S) (hf : Function.Surjective ⇑f)
Goal: Function.Injective ⇑(PrimeSpectrum.comap f)
-- PrimeSpectrum.localization_comap_inducing
theorem localization_comap_inducing [Algebra R S] (M : Submonoid R) [IsLocalization M S] :
    Inducing (comap (algebraMap R S)) 
Arguments: {R : Type u} (S : Type v) [CommSemiring R] [CommSemiring S] [Algebra R S] (M : Submonoid R) [IsLocalization M S]
Goal: Inducing ⇑(PrimeSpectrum.comap (algebraMap R S))
-- PrimeSpectrum.localization_comap_injective
theorem localization_comap_injective [Algebra R S] (M : Submonoid R) [IsLocalization M S] :
    Function.Injective (comap (algebraMap R S)) 
Arguments: {R : Type u} (S : Type v) [CommSemiring R] [CommSemiring S] [Algebra R S] (M : Submonoid R) [IsLocalization M S]
Goal: Function.Injective ⇑(PrimeSpectrum.comap (algebraMap R S))
-- PrimeSpectrum.localization_comap_embedding
theorem localization_comap_embedding [Algebra R S] (M : Submonoid R) [IsLocalization M S] :
    Embedding (comap (algebraMap R S)) 
Arguments: {R : Type u} (S : Type v) [CommSemiring R] [CommSemiring S] [Algebra R S] (M : Submonoid R) [IsLocalization M S]
Goal: Embedding ⇑(PrimeSpectrum.comap (algebraMap R S))
-- PrimeSpectrum.localization_comap_range
theorem localization_comap_range [Algebra R S] (M : Submonoid R) [IsLocalization M S] :
    Set.range (comap (algebraMap R S)) = { p | Disjoint (M : Set R) p.asIdeal } 
Arguments: {R : Type u} (S : Type v) [CommSemiring R] [CommSemiring S] [Algebra R S] (M : Submonoid R) [IsLocalization M S]
Goal: Set.range ⇑(PrimeSpectrum.comap (algebraMap R S)) = {p | Disjoint ↑M ↑p.asIdeal}
-- PrimeSpectrum.comap_inducing_of_surjective
theorem comap_inducing_of_surjective (hf : Surjective f) : Inducing (comap f) 
Arguments: {R : Type u} (S : Type v) [CommSemiring R] [CommSemiring S] (f : R →+* S) (hf : Function.Surjective ⇑f)
Goal: Inducing ⇑(PrimeSpectrum.comap f)
-- PrimeSpectrum.comap_singleton_isClosed_of_surjective
theorem comap_singleton_isClosed_of_surjective (f : R →+* S) (hf : Function.Surjective f)
    (x : PrimeSpectrum S) (hx : IsClosed ({x} : Set (PrimeSpectrum S))) :
    IsClosed ({comap f x} : Set (PrimeSpectrum R)) 
Arguments: {R : Type u} (S : Type v) [CommRing R] [CommRing S] (f : R →+* S) (hf : Function.Surjective ⇑f) (x : PrimeSpectrum S) (hx : IsClosed {x})
Goal: IsClosed {(PrimeSpectrum.comap f) x}
-- PrimeSpectrum.comap_singleton_isClosed_of_isIntegral
theorem comap_singleton_isClosed_of_isIntegral (f : R →+* S) (hf : f.IsIntegral)
    (x : PrimeSpectrum S) (hx : IsClosed ({x} : Set (PrimeSpectrum S))) :
    IsClosed ({comap f x} : Set (PrimeSpectrum R)) 
Arguments: {R : Type u} (S : Type v) [CommRing R] [CommRing S] (f : R →+* S) (hf : f.IsIntegral) (x : PrimeSpectrum S) (hx : IsClosed {x})
Goal: IsClosed {(PrimeSpectrum.comap f) x}
-- PrimeSpectrum.image_comap_zeroLocus_eq_zeroLocus_comap
theorem image_comap_zeroLocus_eq_zeroLocus_comap (hf : Surjective f) (I : Ideal S) :
    comap f '' zeroLocus I = zeroLocus (I.comap f) 
Arguments: {R : Type u} (S : Type v) [CommRing R] [CommRing S] (f : R →+* S) (hf : Function.Surjective ⇑f) (I : Ideal S)
Goal: ⇑(PrimeSpectrum.comap f) '' PrimeSpectrum.zeroLocus ↑I = PrimeSpectrum.zeroLocus ↑(Ideal.comap f I)
-- PrimeSpectrum.range_comap_of_surjective
theorem range_comap_of_surjective (hf : Surjective f) :
    Set.range (comap f) = zeroLocus (ker f) 
Arguments: {R : Type u} (S : Type v) [CommRing R] [CommRing S] (f : R →+* S) (hf : Function.Surjective ⇑f)
Goal: Set.range ⇑(PrimeSpectrum.comap f) = PrimeSpectrum.zeroLocus ↑(RingHom.ker f)
-- PrimeSpectrum.isClosed_range_comap_of_surjective
theorem isClosed_range_comap_of_surjective (hf : Surjective f) :
    IsClosed (Set.range (comap f)) 
Arguments: {R : Type u} (S : Type v) [CommRing R] [CommRing S] (f : R →+* S) (hf : Function.Surjective ⇑f)
Goal: IsClosed (Set.range ⇑(PrimeSpectrum.comap f))
-- PrimeSpectrum.closedEmbedding_comap_of_surjective
theorem closedEmbedding_comap_of_surjective (hf : Surjective f) : ClosedEmbedding (comap f) 
Arguments: {R : Type u} (S : Type v) [CommRing R] [CommRing S] (f : R →+* S) (hf : Function.Surjective ⇑f)
Goal: ClosedEmbedding ⇑(PrimeSpectrum.comap f)
-- PrimeSpectrum.primeSpectrumProd_symm_inl
lemma primeSpectrumProd_symm_inl (x) :
    (primeSpectrumProd R S).symm (.inl x) = comap (RingHom.fst R S) x 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] (x : PrimeSpectrum R)
Goal: (PrimeSpectrum.primeSpectrumProd R S).symm (Sum.inl x) = (PrimeSpectrum.comap (RingHom.fst R S)) x
-- PrimeSpectrum.primeSpectrumProd_symm_inr
lemma primeSpectrumProd_symm_inr (x) :
    (primeSpectrumProd R S).symm (.inr x) = comap (RingHom.snd R S) x 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] (x : PrimeSpectrum S)
Goal: (PrimeSpectrum.primeSpectrumProd R S).symm (Sum.inr x) = (PrimeSpectrum.comap (RingHom.snd R S)) x
-- PrimeSpectrum.mem_basicOpen
@[simp]
theorem mem_basicOpen (f : R) (x : PrimeSpectrum R) : x ∈ basicOpen f ↔ f ∉ x.asIdeal 
Arguments: {R : Type u} [CommSemiring R] (f : R) (x : PrimeSpectrum R)
Goal: x ∈ PrimeSpectrum.basicOpen f ↔ f ∉ x.asIdeal
-- PrimeSpectrum.isOpen_basicOpen
theorem isOpen_basicOpen {a : R} : IsOpen (basicOpen a : Set (PrimeSpectrum R)) 
Arguments: {R : Type u} [CommSemiring R] {a : R}
Goal: IsOpen ↑(PrimeSpectrum.basicOpen a)
-- PrimeSpectrum.basicOpen_eq_zeroLocus_compl
@[simp]
theorem basicOpen_eq_zeroLocus_compl (r : R) :
    (basicOpen r : Set (PrimeSpectrum R)) = (zeroLocus {r})ᶜ 
Arguments: {R : Type u} [CommSemiring R] (r : R)
Goal: ↑(PrimeSpectrum.basicOpen r) = (PrimeSpectrum.zeroLocus {r})ᶜ
-- PrimeSpectrum.basicOpen_one
@[simp]
theorem basicOpen_one : basicOpen (1 : R) = ⊤ 
Arguments: {R : Type u} [CommSemiring R]
Goal: PrimeSpectrum.basicOpen 1 = ⊤
-- PrimeSpectrum.basicOpen_zero
@[simp]
theorem basicOpen_zero : basicOpen (0 : R) = ⊥ 
Arguments: {R : Type u} [CommSemiring R]
Goal: PrimeSpectrum.basicOpen 0 = ⊥
-- PrimeSpectrum.basicOpen_le_basicOpen_iff
theorem basicOpen_le_basicOpen_iff (f g : R) :
    basicOpen f ≤ basicOpen g ↔ f ∈ (Ideal.span ({g} : Set R)).radical 
Arguments: {R : Type u} [CommSemiring R] (f g : R)
Goal: PrimeSpectrum.basicOpen f ≤ PrimeSpectrum.basicOpen g ↔ f ∈ (Ideal.span {g}).radical
-- PrimeSpectrum.basicOpen_mul
theorem basicOpen_mul (f g : R) : basicOpen (f * g) = basicOpen f ⊓ basicOpen g 
Arguments: {R : Type u} [CommSemiring R] (f g : R)
Goal: PrimeSpectrum.basicOpen (f * g) = PrimeSpectrum.basicOpen f ⊓ PrimeSpectrum.basicOpen g
-- PrimeSpectrum.basicOpen_mul_le_left
theorem basicOpen_mul_le_left (f g : R) : basicOpen (f * g) ≤ basicOpen f 
Arguments: {R : Type u} [CommSemiring R] (f g : R)
Goal: PrimeSpectrum.basicOpen (f * g) ≤ PrimeSpectrum.basicOpen f
-- PrimeSpectrum.basicOpen_mul_le_right
theorem basicOpen_mul_le_right (f g : R) : basicOpen (f * g) ≤ basicOpen g 
Arguments: {R : Type u} [CommSemiring R] (f g : R)
Goal: PrimeSpectrum.basicOpen (f * g) ≤ PrimeSpectrum.basicOpen g
-- PrimeSpectrum.basicOpen_pow
@[simp]
theorem basicOpen_pow (f : R) (n : ℕ) (hn : 0 < n) : basicOpen (f ^ n) = basicOpen f 
Arguments: {R : Type u} [CommSemiring R] (f : R) (n : ℕ) (hn : 0 < n)
Goal: PrimeSpectrum.basicOpen (f ^ n) = PrimeSpectrum.basicOpen f
-- PrimeSpectrum.isTopologicalBasis_basic_opens
theorem isTopologicalBasis_basic_opens :
    TopologicalSpace.IsTopologicalBasis
      (Set.range fun r : R => (basicOpen r : Set (PrimeSpectrum R))) 
Arguments: {R : Type u} [CommSemiring R]
Goal: TopologicalSpace.IsTopologicalBasis (Set.range fun r => ↑(PrimeSpectrum.basicOpen r))
-- PrimeSpectrum.isBasis_basic_opens
theorem isBasis_basic_opens : TopologicalSpace.Opens.IsBasis (Set.range (@basicOpen R _)) 
Arguments: {R : Type u} [CommSemiring R]
Goal: TopologicalSpace.Opens.IsBasis (Set.range PrimeSpectrum.basicOpen)
-- PrimeSpectrum.basicOpen_eq_bot_iff
@[simp]
theorem basicOpen_eq_bot_iff (f : R) : basicOpen f = ⊥ ↔ IsNilpotent f 
Arguments: {R : Type u} [CommSemiring R] (f : R)
Goal: PrimeSpectrum.basicOpen f = ⊥ ↔ IsNilpotent f
-- PrimeSpectrum.localization_away_comap_range
theorem localization_away_comap_range (S : Type v) [CommSemiring S] [Algebra R S] (r : R)
    [IsLocalization.Away r S] : Set.range (comap (algebraMap R S)) = basicOpen r 
Arguments: {R : Type u} [CommSemiring R] (S : Type v) [CommSemiring S] [Algebra R S] (r : R) [IsLocalization.Away r S]
Goal: Set.range ⇑(PrimeSpectrum.comap (algebraMap R S)) = ↑(PrimeSpectrum.basicOpen r)
-- PrimeSpectrum.localization_away_openEmbedding
theorem localization_away_openEmbedding (S : Type v) [CommSemiring S] [Algebra R S] (r : R)
    [IsLocalization.Away r S] : OpenEmbedding (comap (algebraMap R S)) 
Arguments: {R : Type u} [CommSemiring R] (S : Type v) [CommSemiring S] [Algebra R S] (r : R) [IsLocalization.Away r S]
Goal: OpenEmbedding ⇑(PrimeSpectrum.comap (algebraMap R S))
-- PrimeSpectrum.isCompact_basicOpen
theorem isCompact_basicOpen (f : R) : IsCompact (basicOpen f : Set (PrimeSpectrum R)) 
Arguments: {R : Type u} [CommSemiring R] (f : R)
Goal: IsCompact ↑(PrimeSpectrum.basicOpen f)
-- PrimeSpectrum.comap_basicOpen
lemma comap_basicOpen (f : R →+* S) (x : R) :
    TopologicalSpace.Opens.comap (comap f) (basicOpen x) = basicOpen (f x) 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] (f : R →+* S) (x : R)
Goal: (TopologicalSpace.Opens.comap (PrimeSpectrum.comap f)) (PrimeSpectrum.basicOpen x) = PrimeSpectrum.basicOpen (f x)
-- PrimeSpectrum.iSup_basicOpen_eq_top_iff
lemma iSup_basicOpen_eq_top_iff {ι : Type*} {f : ι → R} :
    (⨆ i : ι, PrimeSpectrum.basicOpen (f i)) = ⊤ ↔ Ideal.span (Set.range f) = ⊤ 
Arguments: {R : Type u} [CommSemiring R] {ι : Type u_1} {f : ι → R}
Goal: ⨆ i, PrimeSpectrum.basicOpen (f i) = ⊤ ↔ Ideal.span (Set.range f) = ⊤
-- PrimeSpectrum.iSup_basicOpen_eq_top_iff'
lemma iSup_basicOpen_eq_top_iff' {s : Set R} :
    (⨆ i ∈ s, PrimeSpectrum.basicOpen i) = ⊤ ↔ Ideal.span s = ⊤ 
Arguments: {R : Type u} [CommSemiring R] {s : Set R}
Goal: ⨆ i ∈ s, PrimeSpectrum.basicOpen i = ⊤ ↔ Ideal.span s = ⊤
-- PrimeSpectrum.le_iff_mem_closure
theorem le_iff_mem_closure (x y : PrimeSpectrum R) :
    x ≤ y ↔ y ∈ closure ({x} : Set (PrimeSpectrum R)) 
Arguments: {R : Type u} [CommSemiring R] (x y : PrimeSpectrum R)
Goal: x ≤ y ↔ y ∈ closure {x}
-- PrimeSpectrum.le_iff_specializes
theorem le_iff_specializes (x y : PrimeSpectrum R) : x ≤ y ↔ x ⤳ y 
Arguments: {R : Type u} [CommSemiring R] (x y : PrimeSpectrum R)
Goal: x ≤ y ↔ x ⤳ y
-- PrimeSpectrum.nhdsOrderEmbedding_apply
@[simps!]
def nhdsOrderEmbedding : PrimeSpectrum R ↪o Filter (PrimeSpectrum R) 
Arguments: {R : Type u} [CommSemiring R] (x : PrimeSpectrum R)
Goal: PrimeSpectrum.nhdsOrderEmbedding x = nhds x
-- PrimeSpectrum.vanishingIdeal_irreducibleComponents
lemma vanishingIdeal_irreducibleComponents :
    vanishingIdeal '' (irreducibleComponents <| PrimeSpectrum R) =
    minimalPrimes R 
Arguments: (R : Type u) [CommSemiring R]
Goal: PrimeSpectrum.vanishingIdeal '' irreducibleComponents (PrimeSpectrum R) = minimalPrimes R
-- PrimeSpectrum.zeroLocus_minimalPrimes
lemma zeroLocus_minimalPrimes :
    zeroLocus ∘ (↑) '' minimalPrimes R =
    irreducibleComponents (PrimeSpectrum R) 
Arguments: (R : Type u) [CommSemiring R]
Goal: PrimeSpectrum.zeroLocus ∘ SetLike.coe '' minimalPrimes R = irreducibleComponents (PrimeSpectrum R)
-- PrimeSpectrum.vanishingIdeal_mem_minimalPrimes
lemma vanishingIdeal_mem_minimalPrimes {s : Set (PrimeSpectrum R)} :
    vanishingIdeal s ∈ minimalPrimes R ↔ closure s ∈ irreducibleComponents (PrimeSpectrum R) 
Arguments: {R : Type u} [CommSemiring R] {s : Set (PrimeSpectrum R)}
Goal: PrimeSpectrum.vanishingIdeal s ∈ minimalPrimes R ↔ closure s ∈ irreducibleComponents (PrimeSpectrum R)
-- PrimeSpectrum.zeroLocus_ideal_mem_irreducibleComponents
lemma zeroLocus_ideal_mem_irreducibleComponents {I : Ideal R} :
    zeroLocus I ∈ irreducibleComponents (PrimeSpectrum R) ↔ I.radical ∈ minimalPrimes R 
Arguments: {R : Type u} [CommSemiring R] {I : Ideal R}
Goal: PrimeSpectrum.zeroLocus ↑I ∈ irreducibleComponents (PrimeSpectrum R) ↔ I.radical ∈ minimalPrimes R
-- LocalRing.isLocalRingHom_iff_comap_closedPoint
theorem isLocalRingHom_iff_comap_closedPoint {S : Type v} [CommSemiring S] [LocalRing S]
    (f : R →+* S) : IsLocalRingHom f ↔ PrimeSpectrum.comap f (closedPoint S) = closedPoint R 
Arguments: {R : Type u} [CommSemiring R] [LocalRing R] {S : Type v} [CommSemiring S] [LocalRing S] (f : R →+* S)
Goal: IsLocalRingHom f ↔ (PrimeSpectrum.comap f) (LocalRing.closedPoint S) = LocalRing.closedPoint R
-- LocalRing.comap_closedPoint
@[simp]
theorem comap_closedPoint {S : Type v} [CommSemiring S] [LocalRing S] (f : R →+* S)
    [IsLocalRingHom f] : PrimeSpectrum.comap f (closedPoint S) = closedPoint R 
Arguments: {R : Type u} [CommSemiring R] [LocalRing R] {S : Type v} [CommSemiring S] [LocalRing S] (f : R →+* S) [IsLocalRingHom f]
Goal: (PrimeSpectrum.comap f) (LocalRing.closedPoint S) = LocalRing.closedPoint R
-- LocalRing.specializes_closedPoint
theorem specializes_closedPoint (x : PrimeSpectrum R) : x ⤳ closedPoint R 
Arguments: {R : Type u} [CommSemiring R] [LocalRing R] (x : PrimeSpectrum R)
Goal: x ⤳ LocalRing.closedPoint R
-- LocalRing.closedPoint_mem_iff
theorem closedPoint_mem_iff (U : TopologicalSpace.Opens <| PrimeSpectrum R) :
    closedPoint R ∈ U ↔ U = ⊤ 
Arguments: {R : Type u} [CommSemiring R] [LocalRing R] (U : TopologicalSpace.Opens (PrimeSpectrum R))
Goal: LocalRing.closedPoint R ∈ U ↔ U = ⊤
-- LocalRing.PrimeSpectrum.comap_residue
@[simp]
theorem PrimeSpectrum.comap_residue (T : Type u) [CommRing T] [LocalRing T]
    (x : PrimeSpectrum (ResidueField T)) : PrimeSpectrum.comap (residue T) x = closedPoint T 
Arguments: (T : Type u) [CommRing T] [LocalRing T] (x : PrimeSpectrum (LocalRing.ResidueField T))
Goal: (PrimeSpectrum.comap (LocalRing.residue T)) x = LocalRing.closedPoint T
-- Finset.sum_mk
@[to_additive (attr := simp)]
theorem prod_mk [CommMonoid β] (s : Multiset α) (hs : s.Nodup) (f : α → β) :
    (⟨s, hs⟩ : Finset α).prod f = (s.map f).prod 
Arguments: {α : Type u_3} {β : Type u_4} [AddCommMonoid β] (s : Multiset α) (hs : s.Nodup) (f : α → β)
Goal: { val := s, nodup := hs }.sum f = (Multiset.map f s).sum
-- Finset.prod_mk
@[to_additive (attr := simp)]
theorem prod_mk [CommMonoid β] (s : Multiset α) (hs : s.Nodup) (f : α → β) :
    (⟨s, hs⟩ : Finset α).prod f = (s.map f).prod 
Arguments: {α : Type u_3} {β : Type u_4} [CommMonoid β] (s : Multiset α) (hs : s.Nodup) (f : α → β)
Goal: { val := s, nodup := hs }.prod f = (Multiset.map f s).prod
-- Finset.prod_val
@[to_additive (attr := simp)]
theorem prod_val [CommMonoid α] (s : Finset α) : s.1.prod = s.prod id 
Arguments: {α : Type u_3} [CommMonoid α] (s : Finset α)
Goal: s.val.prod = s.prod id
-- Finset.sum_val
@[to_additive (attr := simp)]
theorem prod_val [CommMonoid α] (s : Finset α) : s.1.prod = s.prod id 
Arguments: {α : Type u_3} [AddCommMonoid α] (s : Finset α)
Goal: s.val.sum = s.sum id
-- Finset.sum_eq_multiset_sum
@[to_additive]
theorem prod_eq_multiset_prod [CommMonoid β] (s : Finset α) (f : α → β) :
    ∏ x ∈ s, f x = (s.1.map f).prod 
Arguments: {α : Type u_3} {β : Type u_4} [AddCommMonoid β] (s : Finset α) (f : α → β)
Goal: ∑ x ∈ s, f x = (Multiset.map f s.val).sum
-- Finset.prod_eq_multiset_prod
@[to_additive]
theorem prod_eq_multiset_prod [CommMonoid β] (s : Finset α) (f : α → β) :
    ∏ x ∈ s, f x = (s.1.map f).prod 
Arguments: {α : Type u_3} {β : Type u_4} [CommMonoid β] (s : Finset α) (f : α → β)
Goal: ∏ x ∈ s, f x = (Multiset.map f s.val).prod
-- Finset.prod_map_val
@[to_additive (attr := simp)]
lemma prod_map_val [CommMonoid β] (s : Finset α) (f : α → β) : (s.1.map f).prod = ∏ a ∈ s, f a 
Arguments: {α : Type u_3} {β : Type u_4} [CommMonoid β] (s : Finset α) (f : α → β)
Goal: (Multiset.map f s.val).prod = ∏ a ∈ s, f a
-- Finset.sum_map_val
@[to_additive (attr := simp)]
lemma prod_map_val [CommMonoid β] (s : Finset α) (f : α → β) : (s.1.map f).prod = ∏ a ∈ s, f a 
Arguments: {α : Type u_3} {β : Type u_4} [AddCommMonoid β] (s : Finset α) (f : α → β)
Goal: (Multiset.map f s.val).sum = ∑ a ∈ s, f a
-- Finset.sum_eq_fold
@[to_additive]
theorem prod_eq_fold [CommMonoid β] (s : Finset α) (f : α → β) :
    ∏ x ∈ s, f x = s.fold ((· * ·) : β → β → β) 1 f 
Arguments: {α : Type u_3} {β : Type u_4} [AddCommMonoid β] (s : Finset α) (f : α → β)
Goal: ∑ x ∈ s, f x = Finset.fold (fun x x_1 => x + x_1) 0 f s
-- Finset.prod_eq_fold
@[to_additive]
theorem prod_eq_fold [CommMonoid β] (s : Finset α) (f : α → β) :
    ∏ x ∈ s, f x = s.fold ((· * ·) : β → β → β) 1 f 
Arguments: {α : Type u_3} {β : Type u_4} [CommMonoid β] (s : Finset α) (f : α → β)
Goal: ∏ x ∈ s, f x = Finset.fold (fun x x_1 => x * x_1) 1 f s
-- Finset.sum_multiset_singleton
@[simp]
theorem sum_multiset_singleton (s : Finset α) : (s.sum fun x => {x}) = s.val 
Arguments: {α : Type u_3} (s : Finset α)
Goal: ∑ x ∈ s, {x} = s.val
-- map_prod
@[to_additive (attr := simp)]
theorem map_prod [CommMonoid β] [CommMonoid γ] {G : Type*} [FunLike G β γ] [MonoidHomClass G β γ]
    (g : G) (f : α → β) (s : Finset α) : g (∏ x ∈ s, f x) = ∏ x ∈ s, g (f x) 
Arguments: {α : Type u_3} {β : Type u_4} {γ : Type u_5} [CommMonoid β] [CommMonoid γ] {G : Type u_6} [FunLike G β γ] [MonoidHomClass G β γ] (g : G) (f : α → β) (s : Finset α)
Goal: g (∏ x ∈ s, f x) = ∏ x ∈ s, g (f x)
-- map_sum
@[to_additive (attr := simp)]
theorem map_prod [CommMonoid β] [CommMonoid γ] {G : Type*} [FunLike G β γ] [MonoidHomClass G β γ]
    (g : G) (f : α → β) (s : Finset α) : g (∏ x ∈ s, f x) = ∏ x ∈ s, g (f x) 
Arguments: {α : Type u_3} {β : Type u_4} {γ : Type u_5} [AddCommMonoid β] [AddCommMonoid γ] {G : Type u_6} [FunLike G β γ] [AddMonoidHomClass G β γ] (g : G) (f : α → β) (s : Finset α)
Goal: g (∑ x ∈ s, f x) = ∑ x ∈ s, g (f x)
-- AddMonoidHom.coe_finset_sum
@[to_additive]
theorem MonoidHom.coe_finset_prod [MulOneClass β] [CommMonoid γ] (f : α → β →* γ) (s : Finset α) :
    ⇑(∏ x ∈ s, f x) = ∏ x ∈ s, ⇑(f x) 
Arguments: {α : Type u_3} {β : Type u_4} {γ : Type u_5} [AddZeroClass β] [AddCommMonoid γ] (f : α → β →+ γ) (s : Finset α)
Goal: ⇑(∑ x ∈ s, f x) = ∑ x ∈ s, ⇑(f x)
-- MonoidHom.coe_finset_prod
@[to_additive]
theorem MonoidHom.coe_finset_prod [MulOneClass β] [CommMonoid γ] (f : α → β →* γ) (s : Finset α) :
    ⇑(∏ x ∈ s, f x) = ∏ x ∈ s, ⇑(f x) 
Arguments: {α : Type u_3} {β : Type u_4} {γ : Type u_5} [MulOneClass β] [CommMonoid γ] (f : α → β →* γ) (s : Finset α)
Goal: ⇑(∏ x ∈ s, f x) = ∏ x ∈ s, ⇑(f x)
-- AddMonoidHom.finset_sum_apply
@[to_additive (attr := simp)
  "See also `Finset.sum_apply`, with the same conclusion but with the weaker hypothesis
  `f : α → β → γ`"]
theorem MonoidHom.finset_prod_apply [MulOneClass β] [CommMonoid γ] (f : α → β →* γ) (s : Finset α)
    (b : β) : (∏ x ∈ s, f x) b = ∏ x ∈ s, f x b 
Arguments: {α : Type u_3} {β : Type u_4} {γ : Type u_5} [AddZeroClass β] [AddCommMonoid γ] (f : α → β →+ γ) (s : Finset α) (b : β)
Goal: (∑ x ∈ s, f x) b = ∑ x ∈ s, (f x) b
-- MonoidHom.finset_prod_apply
@[to_additive (attr := simp)
  "See also `Finset.sum_apply`, with the same conclusion but with the weaker hypothesis
  `f : α → β → γ`"]
theorem MonoidHom.finset_prod_apply [MulOneClass β] [CommMonoid γ] (f : α → β →* γ) (s : Finset α)
    (b : β) : (∏ x ∈ s, f x) b = ∏ x ∈ s, f x b 
Arguments: {α : Type u_3} {β : Type u_4} {γ : Type u_5} [MulOneClass β] [CommMonoid γ] (f : α → β →* γ) (s : Finset α) (b : β)
Goal: (∏ x ∈ s, f x) b = ∏ x ∈ s, (f x) b
-- Finset.sum_empty
@[to_additive (attr := simp)]
theorem prod_empty : ∏ x ∈ ∅, f x = 1 
Arguments: {α : Type u_3} {β : Type u_4} {f : α → β} [AddCommMonoid β]
Goal: ∑ x ∈ ∅, f x = 0