ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- AlgebraicGeometry.quasiSeparated_stableUnderBaseChange
theorem quasiSeparated_stableUnderBaseChange :
    MorphismProperty.StableUnderBaseChange @QuasiSeparated 
Goal: CategoryTheory.MorphismProperty.StableUnderBaseChange @AlgebraicGeometry.QuasiSeparated
-- AlgebraicGeometry.quasiSeparated_over_affine_iff
theorem quasiSeparated_over_affine_iff {X Y : Scheme} (f : X ⟶ Y) [IsAffine Y] :
    QuasiSeparated f ↔ QuasiSeparatedSpace X 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) [AlgebraicGeometry.IsAffine Y]
Goal: AlgebraicGeometry.QuasiSeparated f ↔ QuasiSeparatedSpace ↑↑X.toPresheafedSpace
-- AlgebraicGeometry.quasiSeparatedSpace_iff_quasiSeparated
theorem quasiSeparatedSpace_iff_quasiSeparated (X : Scheme) :
    QuasiSeparatedSpace X ↔ QuasiSeparated (terminal.from X) 
Arguments: (X : AlgebraicGeometry.Scheme)
Goal: QuasiSeparatedSpace ↑↑X.toPresheafedSpace ↔ AlgebraicGeometry.QuasiSeparated (CategoryTheory.Limits.terminal.from X)
-- AlgebraicGeometry.quasiSeparatedSpace_of_quasiSeparated
theorem quasiSeparatedSpace_of_quasiSeparated {X Y : Scheme} (f : X ⟶ Y)
    [hY : QuasiSeparatedSpace Y] [QuasiSeparated f] : QuasiSeparatedSpace X 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) [hY : QuasiSeparatedSpace ↑↑Y.toPresheafedSpace] [AlgebraicGeometry.QuasiSeparated f]
Goal: QuasiSeparatedSpace ↑↑X.toPresheafedSpace
-- AlgebraicGeometry.IsAffineOpen.isQuasiSeparated
theorem IsAffineOpen.isQuasiSeparated {X : Scheme} {U : X.Opens} (hU : IsAffineOpen U) :
    IsQuasiSeparated (U : Set X) 
Arguments: {X : AlgebraicGeometry.Scheme} {U : X.Opens} (hU : AlgebraicGeometry.IsAffineOpen U)
Goal: IsQuasiSeparated ↑U
-- AlgebraicGeometry.QuasiSeparated.of_comp
theorem QuasiSeparated.of_comp {X Y Z : Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) [QuasiSeparated (f ≫ g)] :
    QuasiSeparated f 
Arguments: {X Y Z : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) [AlgebraicGeometry.QuasiSeparated (f ≫ g)]
Goal: AlgebraicGeometry.QuasiSeparated f
-- AlgebraicGeometry.exists_eq_pow_mul_of_isAffineOpen
theorem exists_eq_pow_mul_of_isAffineOpen (X : Scheme) (U : X.Opens) (hU : IsAffineOpen U)
    (f : Γ(X, U)) (x : Γ(X, X.basicOpen f)) :
    ∃ (n : ℕ) (y : Γ(X, U)), y |_ X.basicOpen f = (f |_ X.basicOpen f) ^ n * x 
Arguments: (X : AlgebraicGeometry.Scheme) (U : X.Opens) (hU : AlgebraicGeometry.IsAffineOpen U) (f : ↑Γ(X, U)) (x : ↑Γ(X, X.basicOpen f))
Goal: ∃ n y, (y |_ X.basicOpen f) ⋯ = (f |_ X.basicOpen f) ⋯ ^ n * x
-- AlgebraicGeometry.exists_eq_pow_mul_of_is_compact_of_quasi_separated_space_aux_aux
theorem exists_eq_pow_mul_of_is_compact_of_quasi_separated_space_aux_aux {X : TopCat}
    (F : X.Presheaf CommRingCat) {U₁ U₂ U₃ U₄ U₅ U₆ U₇ : Opens X} {n₁ n₂ : ℕ}
    {y₁ : F.obj (op U₁)} {y₂ : F.obj (op U₂)} {f : F.obj (op <| U₁ ⊔ U₂)}
    {x : F.obj (op U₃)} (h₄₁ : U₄ ≤ U₁) (h₄₂ : U₄ ≤ U₂) (h₅₁ : U₅ ≤ U₁) (h₅₃ : U₅ ≤ U₃)
    (h₆₂ : U₆ ≤ U₂) (h₆₃ : U₆ ≤ U₃) (h₇₄ : U₇ ≤ U₄) (h₇₅ : U₇ ≤ U₅) (h₇₆ : U₇ ≤ U₆)
    (e₁ : y₁ |_ U₅ = (f |_ U₁ |_ U₅) ^ n₁ * x |_ U₅)
    (e₂ : y₂ |_ U₆ = (f |_ U₂ |_ U₆) ^ n₂ * x |_ U₆) :
    (((f |_ U₁) ^ n₂ * y₁) |_ U₄) |_ U₇ = (((f |_ U₂) ^ n₁ * y₂) |_ U₄) |_ U₇ 
Arguments: {X : TopCat} (F : TopCat.Presheaf CommRingCat X) {U₁ U₂ U₃ U₄ U₅ U₆ U₇ : TopologicalSpace.Opens ↑X} {n₁ n₂ : ℕ} {y₁ : ↑(F.obj (Opposite.op U₁))} {y₂ : ↑(F.obj (Opposite.op U₂))} {f : ↑(F.obj (Opposite.op (U₁ ⊔ U₂)))} {x : ↑(F.obj (Opposite.op U₃))} (h₄₁ : U₄ ≤ U₁) (h₄₂ : U₄ ≤ U₂) (h₅₁ : U₅ ≤ U₁) (h₅₃ : U₅ ≤ U₃) (h₆₂ : U₆ ≤ U₂) (h₆₃ : U₆ ≤ U₃) (h₇₄ : U₇ ≤ U₄) (h₇₅ : U₇ ≤ U₅) (h₇₆ : U₇ ≤ U₆) (e₁ : (y₁ |_ U₅) h₅₁ = ((f |_ U₁) ⋯ |_ U₅) h₅₁ ^ n₁ * (x |_ U₅) h₅₃) (e₂ : (y₂ |_ U₆) h₆₂ = ((f |_ U₂) ⋯ |_ U₆) h₆₂ ^ n₂ * (x |_ U₆) h₆₃)
Goal: ((((f |_ U₁) ⋯ ^ n₂ * y₁) |_ U₄) h₄₁ |_ U₇) h₇₄ = ((((f |_ U₂) ⋯ ^ n₁ * y₂) |_ U₄) h₄₂ |_ U₇) h₇₄
-- AlgebraicGeometry.exists_eq_pow_mul_of_is_compact_of_quasi_separated_space_aux
theorem exists_eq_pow_mul_of_is_compact_of_quasi_separated_space_aux (X : Scheme)
    (S : X.affineOpens) (U₁ U₂ : X.Opens) {n₁ n₂ : ℕ} {y₁ : Γ(X, U₁)}
    {y₂ : Γ(X, U₂)} {f : Γ(X, U₁ ⊔ U₂)}
    {x : Γ(X, X.basicOpen f)} (h₁ : S.1 ≤ U₁) (h₂ : S.1 ≤ U₂)
    (e₁ : y₁ |_ X.basicOpen (f |_ U₁) = ((f |_ U₁ |_ X.basicOpen _) ^ n₁) * x |_ X.basicOpen _)
    (e₂ : y₂ |_ X.basicOpen (f |_ U₂) = ((f |_ U₂ |_ X.basicOpen _) ^ n₂) * x |_ X.basicOpen _) :
    ∃ n : ℕ, ∀ m, n ≤ m →
      ((f |_ U₁) ^ (m + n₂) * y₁) |_ S.1 = ((f |_ U₂) ^ (m + n₁) * y₂) |_ S.1 
Arguments: (X : AlgebraicGeometry.Scheme) (S : ↑X.affineOpens) (U₁ U₂ : X.Opens) {n₁ n₂ : ℕ} {y₁ : ↑Γ(X, U₁)} {y₂ : ↑Γ(X, U₂)} {f : ↑Γ(X, U₁ ⊔ U₂)} {x : ↑Γ(X, X.basicOpen f)} (h₁ : ↑S ≤ U₁) (h₂ : ↑S ≤ U₂) (e₁ :
  (y₁ |_ X.basicOpen ((f |_ U₁) ⋯)) ⋯ =
    ((f |_ U₁) ⋯ |_ X.basicOpen ((f |_ U₁) ⋯)) ⋯ ^ n₁ * (x |_ X.basicOpen ((f |_ U₁) ⋯)) ⋯) (e₂ :
  (y₂ |_ X.basicOpen ((f |_ U₂) ⋯)) ⋯ =
    ((f |_ U₂) ⋯ |_ X.basicOpen ((f |_ U₂) ⋯)) ⋯ ^ n₂ * (x |_ X.basicOpen ((f |_ U₂) ⋯)) ⋯)
Goal: ∃ n, ∀ (m : ℕ), n ≤ m → (((f |_ U₁) ⋯ ^ (m + n₂) * y₁) |_ ↑S) h₁ = (((f |_ U₂) ⋯ ^ (m + n₁) * y₂) |_ ↑S) h₂
-- AlgebraicGeometry.exists_eq_pow_mul_of_isCompact_of_isQuasiSeparated
theorem exists_eq_pow_mul_of_isCompact_of_isQuasiSeparated (X : Scheme.{u}) (U : X.Opens)
    (hU : IsCompact U.1) (hU' : IsQuasiSeparated U.1) (f : Γ(X, U)) (x : Γ(X, X.basicOpen f)) :
    ∃ (n : ℕ) (y : Γ(X, U)), y |_ X.basicOpen f = (f |_ X.basicOpen f) ^ n * x 
Arguments: (X : AlgebraicGeometry.Scheme) (U : X.Opens) (hU : IsCompact U.carrier) (hU' : IsQuasiSeparated U.carrier) (f : ↑Γ(X, U)) (x : ↑Γ(X, X.basicOpen f))
Goal: ∃ n y, (y |_ X.basicOpen f) ⋯ = (f |_ X.basicOpen f) ⋯ ^ n * x
-- AlgebraicGeometry.is_localization_basicOpen_of_qcqs
theorem is_localization_basicOpen_of_qcqs {X : Scheme} {U : X.Opens} (hU : IsCompact U.1)
    (hU' : IsQuasiSeparated U.1) (f : Γ(X, U)) :
    IsLocalization.Away f (Γ(X, X.basicOpen f)) 
Arguments: {X : AlgebraicGeometry.Scheme} {U : X.Opens} (hU : IsCompact U.carrier) (hU' : IsQuasiSeparated U.carrier) (f : ↑Γ(X, U))
Goal: IsLocalization.Away f ↑Γ(X, X.basicOpen f)
-- AlgebraicGeometry.isIso_ΓSpec_adjunction_unit_app_basicOpen
theorem isIso_ΓSpec_adjunction_unit_app_basicOpen {X : Scheme} [CompactSpace X]
    [QuasiSeparatedSpace X] (f : X.presheaf.obj (op ⊤)) :
    IsIso ((ΓSpec.adjunction.unit.app X).val.c.app (op (PrimeSpectrum.basicOpen f))) 
Arguments: {X : AlgebraicGeometry.Scheme} [CompactSpace ↑↑X.toPresheafedSpace] [QuasiSeparatedSpace ↑↑X.toPresheafedSpace] (f : ↑(X.presheaf.obj (Opposite.op ⊤)))
Goal: CategoryTheory.IsIso
  ((AlgebraicGeometry.ΓSpec.adjunction.unit.app X).val.c.app (Opposite.op (PrimeSpectrum.basicOpen f)))
-- Set.mem_addAntidiagonal
@[to_additive (attr := simp)]
theorem mem_mulAntidiagonal : x ∈ mulAntidiagonal s t a ↔ x.1 ∈ s ∧ x.2 ∈ t ∧ x.1 * x.2 = a 
Arguments: {α : Type u_1} [Add α] {s t : Set α} {a : α} {x : α × α}
Goal: x ∈ s.addAntidiagonal t a ↔ x.1 ∈ s ∧ x.2 ∈ t ∧ x.1 + x.2 = a
-- Set.mem_mulAntidiagonal
@[to_additive (attr := simp)]
theorem mem_mulAntidiagonal : x ∈ mulAntidiagonal s t a ↔ x.1 ∈ s ∧ x.2 ∈ t ∧ x.1 * x.2 = a 
Arguments: {α : Type u_1} [Mul α] {s t : Set α} {a : α} {x : α × α}
Goal: x ∈ s.mulAntidiagonal t a ↔ x.1 ∈ s ∧ x.2 ∈ t ∧ x.1 * x.2 = a
-- Set.addAntidiagonal_mono_left
@[to_additive]
theorem mulAntidiagonal_mono_left (h : s₁ ⊆ s₂) : mulAntidiagonal s₁ t a ⊆ mulAntidiagonal s₂ t a 
Arguments: {α : Type u_1} [Add α] {s₁ s₂ t : Set α} {a : α} (h : s₁ ⊆ s₂)
Goal: s₁.addAntidiagonal t a ⊆ s₂.addAntidiagonal t a
-- Set.mulAntidiagonal_mono_left
@[to_additive]
theorem mulAntidiagonal_mono_left (h : s₁ ⊆ s₂) : mulAntidiagonal s₁ t a ⊆ mulAntidiagonal s₂ t a 
Arguments: {α : Type u_1} [Mul α] {s₁ s₂ t : Set α} {a : α} (h : s₁ ⊆ s₂)
Goal: s₁.mulAntidiagonal t a ⊆ s₂.mulAntidiagonal t a
-- Set.mulAntidiagonal_mono_right
@[to_additive]
theorem mulAntidiagonal_mono_right (h : t₁ ⊆ t₂) :
    mulAntidiagonal s t₁ a ⊆ mulAntidiagonal s t₂ a 
Arguments: {α : Type u_1} [Mul α] {s t₁ t₂ : Set α} {a : α} (h : t₁ ⊆ t₂)
Goal: s.mulAntidiagonal t₁ a ⊆ s.mulAntidiagonal t₂ a
-- Set.addAntidiagonal_mono_right
@[to_additive]
theorem mulAntidiagonal_mono_right (h : t₁ ⊆ t₂) :
    mulAntidiagonal s t₁ a ⊆ mulAntidiagonal s t₂ a 
Arguments: {α : Type u_1} [Add α] {s t₁ t₂ : Set α} {a : α} (h : t₁ ⊆ t₂)
Goal: s.addAntidiagonal t₁ a ⊆ s.addAntidiagonal t₂ a
-- Set.swap_mem_addAntidiagonal
@[to_additive]
theorem swap_mem_mulAntidiagonal [CommSemigroup α] {s t : Set α} {a : α} {x : α × α} :
    x.swap ∈ Set.mulAntidiagonal s t a ↔ x ∈ Set.mulAntidiagonal t s a 
Arguments: {α : Type u_1} [AddCommSemigroup α] {s t : Set α} {a : α} {x : α × α}
Goal: x.swap ∈ s.addAntidiagonal t a ↔ x ∈ t.addAntidiagonal s a
-- Set.swap_mem_mulAntidiagonal
@[to_additive]
theorem swap_mem_mulAntidiagonal [CommSemigroup α] {s t : Set α} {a : α} {x : α × α} :
    x.swap ∈ Set.mulAntidiagonal s t a ↔ x ∈ Set.mulAntidiagonal t s a 
Arguments: {α : Type u_1} [CommSemigroup α] {s t : Set α} {a : α} {x : α × α}
Goal: x.swap ∈ s.mulAntidiagonal t a ↔ x ∈ t.mulAntidiagonal s a
-- Set.swap_mem_mulAntidiagonal_aux
@[to_additive (attr := simp)]
theorem swap_mem_mulAntidiagonal_aux [CommSemigroup α] {s t : Set α} {a : α} {x : α × α} :
    x.snd ∈ s ∧ x.fst ∈ t ∧ x.snd * x.fst = a
      ↔ x ∈ Set.mulAntidiagonal t s a 
Arguments: {α : Type u_1} [CommSemigroup α] {s t : Set α} {a : α} {x : α × α}
Goal: x.2 ∈ s ∧ x.1 ∈ t ∧ x.2 * x.1 = a ↔ x ∈ t.mulAntidiagonal s a
-- Set.swap_mem_addAntidiagonal_aux
@[to_additive (attr := simp)]
theorem swap_mem_mulAntidiagonal_aux [CommSemigroup α] {s t : Set α} {a : α} {x : α × α} :
    x.snd ∈ s ∧ x.fst ∈ t ∧ x.snd * x.fst = a
      ↔ x ∈ Set.mulAntidiagonal t s a 
Arguments: {α : Type u_1} [AddCommSemigroup α] {s t : Set α} {a : α} {x : α × α}
Goal: x.2 ∈ s ∧ x.1 ∈ t ∧ x.2 + x.1 = a ↔ x ∈ t.addAntidiagonal s a
-- Set.MulAntidiagonal.fst_eq_fst_iff_snd_eq_snd
@[to_additive Set.AddAntidiagonal.fst_eq_fst_iff_snd_eq_snd]
theorem fst_eq_fst_iff_snd_eq_snd : (x : α × α).1 = (y : α × α).1 ↔ (x : α × α).2 = (y : α × α).2 
Arguments: {α : Type u_1} [CancelCommMonoid α] {s t : Set α} {a : α} {x y : ↑(s.mulAntidiagonal t a)}
Goal: (↑x).1 = (↑y).1 ↔ (↑x).2 = (↑y).2
-- Set.AddAntidiagonal.fst_eq_fst_iff_snd_eq_snd
@[to_additive Set.AddAntidiagonal.fst_eq_fst_iff_snd_eq_snd]
theorem fst_eq_fst_iff_snd_eq_snd : (x : α × α).1 = (y : α × α).1 ↔ (x : α × α).2 = (y : α × α).2 
Arguments: {α : Type u_1} [AddCancelCommMonoid α] {s t : Set α} {a : α} {x y : ↑(s.addAntidiagonal t a)}
Goal: (↑x).1 = (↑y).1 ↔ (↑x).2 = (↑y).2
-- Set.AddAntidiagonal.eq_of_fst_eq_fst
@[to_additive Set.AddAntidiagonal.eq_of_fst_eq_fst]
theorem eq_of_fst_eq_fst (h : (x : α × α).fst = (y : α × α).fst) : x = y 
Arguments: {α : Type u_1} [AddCancelCommMonoid α] {s t : Set α} {a : α} {x y : ↑(s.addAntidiagonal t a)} (h : (↑x).1 = (↑y).1)
Goal: x = y
-- Set.MulAntidiagonal.eq_of_fst_eq_fst
@[to_additive Set.AddAntidiagonal.eq_of_fst_eq_fst]
theorem eq_of_fst_eq_fst (h : (x : α × α).fst = (y : α × α).fst) : x = y 
Arguments: {α : Type u_1} [CancelCommMonoid α] {s t : Set α} {a : α} {x y : ↑(s.mulAntidiagonal t a)} (h : (↑x).1 = (↑y).1)
Goal: x = y
-- Set.MulAntidiagonal.eq_of_snd_eq_snd
@[to_additive Set.AddAntidiagonal.eq_of_snd_eq_snd]
theorem eq_of_snd_eq_snd (h : (x : α × α).snd = (y : α × α).snd) : x = y 
Arguments: {α : Type u_1} [CancelCommMonoid α] {s t : Set α} {a : α} {x y : ↑(s.mulAntidiagonal t a)} (h : (↑x).2 = (↑y).2)
Goal: x = y
-- Set.AddAntidiagonal.eq_of_snd_eq_snd
@[to_additive Set.AddAntidiagonal.eq_of_snd_eq_snd]
theorem eq_of_snd_eq_snd (h : (x : α × α).snd = (y : α × α).snd) : x = y 
Arguments: {α : Type u_1} [AddCancelCommMonoid α] {s t : Set α} {a : α} {x y : ↑(s.addAntidiagonal t a)} (h : (↑x).2 = (↑y).2)
Goal: x = y
-- Set.MulAntidiagonal.eq_of_fst_le_fst_of_snd_le_snd
@[to_additive Set.AddAntidiagonal.eq_of_fst_le_fst_of_snd_le_snd]
theorem eq_of_fst_le_fst_of_snd_le_snd (h₁ : (x : α × α).1 ≤ (y : α × α).1)
    (h₂ : (x : α × α).2 ≤ (y : α × α).2) : x = y 
Arguments: {α : Type u_1} [OrderedCancelCommMonoid α] (s t : Set α) (a : α) {x y : ↑(s.mulAntidiagonal t a)} (h₁ : (↑x).1 ≤ (↑y).1) (h₂ : (↑x).2 ≤ (↑y).2)
Goal: x = y
-- Set.AddAntidiagonal.eq_of_fst_le_fst_of_snd_le_snd
@[to_additive Set.AddAntidiagonal.eq_of_fst_le_fst_of_snd_le_snd]
theorem eq_of_fst_le_fst_of_snd_le_snd (h₁ : (x : α × α).1 ≤ (y : α × α).1)
    (h₂ : (x : α × α).2 ≤ (y : α × α).2) : x = y 
Arguments: {α : Type u_1} [OrderedCancelAddCommMonoid α] (s t : Set α) (a : α) {x y : ↑(s.addAntidiagonal t a)} (h₁ : (↑x).1 ≤ (↑y).1) (h₂ : (↑x).2 ≤ (↑y).2)
Goal: x = y
-- Set.MulAntidiagonal.finite_of_isPWO
@[to_additive Set.AddAntidiagonal.finite_of_isPWO]
theorem finite_of_isPWO (hs : s.IsPWO) (ht : t.IsPWO) (a) : (mulAntidiagonal s t a).Finite 
Arguments: {α : Type u_1} [OrderedCancelCommMonoid α] {s t : Set α} (hs : s.IsPWO) (ht : t.IsPWO) (a : α)
Goal: (s.mulAntidiagonal t a).Finite
-- Set.AddAntidiagonal.finite_of_isPWO
@[to_additive Set.AddAntidiagonal.finite_of_isPWO]
theorem finite_of_isPWO (hs : s.IsPWO) (ht : t.IsPWO) (a) : (mulAntidiagonal s t a).Finite 
Arguments: {α : Type u_1} [OrderedCancelAddCommMonoid α] {s t : Set α} (hs : s.IsPWO) (ht : t.IsPWO) (a : α)
Goal: (s.addAntidiagonal t a).Finite
-- Set.MulAntidiagonal.finite_of_isWF
@[to_additive Set.AddAntidiagonal.finite_of_isWF]
theorem finite_of_isWF [LinearOrderedCancelCommMonoid α] {s t : Set α} (hs : s.IsWF) (ht : t.IsWF)
    (a) : (mulAntidiagonal s t a).Finite 
Arguments: {α : Type u_1} [LinearOrderedCancelCommMonoid α] {s t : Set α} (hs : s.IsWF) (ht : t.IsWF) (a : α)
Goal: (s.mulAntidiagonal t a).Finite
-- Set.AddAntidiagonal.finite_of_isWF
@[to_additive Set.AddAntidiagonal.finite_of_isWF]
theorem finite_of_isWF [LinearOrderedCancelCommMonoid α] {s t : Set α} (hs : s.IsWF) (ht : t.IsWF)
    (a) : (mulAntidiagonal s t a).Finite 
Arguments: {α : Type u_1} [LinearOrderedCancelAddCommMonoid α] {s t : Set α} (hs : s.IsWF) (ht : t.IsWF) (a : α)
Goal: (s.addAntidiagonal t a).Finite
-- Set.range_list_map
theorem range_list_map (f : α → β) : range (map f) = { l | ∀ x ∈ l, x ∈ range f } 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β)
Goal: Set.range (List.map f) = {l | ∀ x ∈ l, x ∈ Set.range f}
-- Set.range_list_map_coe
theorem range_list_map_coe (s : Set α) : range (map ((↑) : s → α)) = { l | ∀ x ∈ l, x ∈ s } 
Arguments: {α : Type u_1} (s : Set α)
Goal: Set.range (List.map Subtype.val) = {l | ∀ x ∈ l, x ∈ s}
-- Set.range_list_get
@[simp]
theorem range_list_get : range l.get = { x | x ∈ l } 
Arguments: {α : Type u_1} (l : List α)
Goal: Set.range l.get = {x | x ∈ l}
-- Set.range_list_get?
theorem range_list_get? : range l.get? = insert none (some '' { x | x ∈ l }) 
Arguments: {α : Type u_1} (l : List α)
Goal: Set.range l.get? = insert none (some '' {x | x ∈ l})
-- Set.range_list_getD
@[simp]
theorem range_list_getD (d : α) : (range fun n : Nat => l[n]?.getD d) = insert d { x | x ∈ l } 
Arguments: {α : Type u_1} (l : List α) (d : α)
Goal: (Set.range fun n => l[n]?.getD d) = insert d {x | x ∈ l}
-- Set.range_list_getI
@[simp]
theorem range_list_getI [Inhabited α] (l : List α) :
    range l.getI = insert default { x | x ∈ l } 
Arguments: {α : Type u_1} [Inhabited α] (l : List α)
Goal: Set.range l.getI = insert default {x | x ∈ l}
-- Set.mem_setOf_eq
@[simp, mfld_simps] theorem mem_setOf_eq {x : α} {p : α → Prop} : (x ∈ {y | p y}) = p x 
Arguments: {α : Type u} {x : α} {p : α → Prop}
Goal: (x ∈ {y | p y}) = p x
-- Set.mem_univ
@[simp, mfld_simps] theorem mem_univ (x : α) : x ∈ @univ α 
Arguments: {α : Type u} (x : α)
Goal: x ∈ Set.univ
-- Set.mem_compl_iff
@[simp] theorem mem_compl_iff (s : Set α) (x : α) : x ∈ sᶜ ↔ x ∉ s 
Arguments: {α : Type u} (s : Set α) (x : α)
Goal: x ∈ sᶜ ↔ ¬x ∈ s
-- Set.diff_eq
theorem diff_eq (s t : Set α) : s \ t = s ∩ tᶜ 
Arguments: {α : Type u} (s t : Set α)
Goal: s \ t = s ∩ tᶜ
-- Set.mem_diff
@[simp] theorem mem_diff {s t : Set α} (x : α) : x ∈ s \ t ↔ x ∈ s ∧ x ∉ t 
Arguments: {α : Type u} {s t : Set α} (x : α)
Goal: x ∈ s \ t ↔ x ∈ s ∧ ¬x ∈ t
-- Set.mem_diff_of_mem
theorem mem_diff_of_mem {s t : Set α} {x : α} (h1 : x ∈ s) (h2 : x ∉ t) : x ∈ s \ t 
Arguments: {α : Type u} {s t : Set α} {x : α} (h1 : x ∈ s) (h2 : ¬x ∈ t)
Goal: x ∈ s \ t
-- Set.mem_preimage
@[simp, mfld_simps]
theorem mem_preimage {f : α → β} {s : Set β} {a : α} : a ∈ f ⁻¹' s ↔ f a ∈ s 
Arguments: {α : Type u} {β : Type v} {f : α → β} {s : Set β} {a : α}
Goal: a ∈ f ⁻¹' s ↔ f a ∈ s
-- Set.mem_image
@[simp]
theorem mem_image (f : α → β) (s : Set α) (y : β) : y ∈ f '' s ↔ ∃ x ∈ s, f x = y 
Arguments: {α : Type u} {β : Type v} (f : α → β) (s : Set α) (y : β)
Goal: y ∈ f '' s ↔ ∃ x, x ∈ s ∧ f x = y
-- Set.mem_image_of_mem
@[mfld_simps]
theorem mem_image_of_mem (f : α → β) {x : α} {a : Set α} (h : x ∈ a) : f x ∈ f '' a 
Arguments: {α : Type u} {β : Type v} (f : α → β) {x : α} {a : Set α} (h : x ∈ a)
Goal: f x ∈ f '' a
-- Set.subset_kernImage_iff
lemma subset_kernImage_iff {s : Set β} {t : Set α} {f : α → β} : s ⊆ kernImage f t ↔ f ⁻¹' s ⊆ t 
Arguments: {α : Type u} {β : Type v} {s : Set β} {t : Set α} {f : α → β}
Goal: s ⊆ Set.kernImage f t ↔ f ⁻¹' s ⊆ t
-- Set.mem_range
@[simp] theorem mem_range {x : α} : x ∈ range f ↔ ∃ y, f y = x 
Arguments: {α : Type u} {ι : Sort u_1} {f : ι → α} {x : α}
Goal: x ∈ Set.range f ↔ ∃ y, f y = x
-- Set.mem_range_self
@[mfld_simps] theorem mem_range_self (i : ι) : f i ∈ range f 
Arguments: {α : Type u} {ι : Sort u_1} {f : ι → α} (i : ι)
Goal: f i ∈ Set.range f
-- Set.apply_rangeSplitting
theorem apply_rangeSplitting (f : α → β) (x : range f) : f (rangeSplitting f x) = x 
Arguments: {α : Type u} {β : Type v} (f : α → β) (x : ↑(Set.range f))
Goal: f (Set.rangeSplitting f x) = ↑x
-- Set.comp_rangeSplitting
@[simp]
theorem comp_rangeSplitting (f : α → β) : f ∘ rangeSplitting f = Subtype.val 
Arguments: {α : Type u} {β : Type v} (f : α → β)
Goal: f ∘ Set.rangeSplitting f = Subtype.val
-- Set.prod_eq
theorem prod_eq (s : Set α) (t : Set β) : s ×ˢ t = Prod.fst ⁻¹' s ∩ Prod.snd ⁻¹' t 
Arguments: {α : Type u} {β : Type v} (s : Set α) (t : Set β)
Goal: s ×ˢ t = Prod.fst ⁻¹' s ∩ Prod.snd ⁻¹' t
-- Set.mem_prod_eq
theorem mem_prod_eq : (p ∈ s ×ˢ t) = (p.1 ∈ s ∧ p.2 ∈ t) 
Arguments: {α : Type u} {β : Type v} {s : Set α} {t : Set β} {p : α × β}
Goal: (p ∈ s ×ˢ t) = (p.fst ∈ s ∧ p.snd ∈ t)
-- Set.mem_prod
@[simp, mfld_simps]
theorem mem_prod : p ∈ s ×ˢ t ↔ p.1 ∈ s ∧ p.2 ∈ t 
Arguments: {α : Type u} {β : Type v} {s : Set α} {t : Set β} {p : α × β}
Goal: p ∈ s ×ˢ t ↔ p.fst ∈ s ∧ p.snd ∈ t
-- Set.prod_mk_mem_set_prod_eq
@[mfld_simps]
theorem prod_mk_mem_set_prod_eq : ((a, b) ∈ s ×ˢ t) = (a ∈ s ∧ b ∈ t) 
Arguments: {α : Type u} {β : Type v} {a : α} {b : β} {s : Set α} {t : Set β}
Goal: ((a, b) ∈ s ×ˢ t) = (a ∈ s ∧ b ∈ t)
-- Set.mk_mem_prod
theorem mk_mem_prod (ha : a ∈ s) (hb : b ∈ t) : (a, b) ∈ s ×ˢ t 
Arguments: {α : Type u} {β : Type v} {a : α} {b : β} {s : Set α} {t : Set β} (ha : a ∈ s) (hb : b ∈ t)
Goal: (a, b) ∈ s ×ˢ t
-- Set.mem_diagonal
theorem mem_diagonal (x : α) : (x, x) ∈ diagonal α 
Arguments: {α : Type u} (x : α)
Goal: (x, x) ∈ Set.diagonal α
-- Set.mem_diagonal_iff
@[simp] theorem mem_diagonal_iff {x : α × α} : x ∈ diagonal α ↔ x.1 = x.2 
Arguments: {α : Type u} {x : α × α}
Goal: x ∈ Set.diagonal α ↔ x.fst = x.snd
-- Set.mem_offDiag
@[simp]
theorem mem_offDiag {x : α × α} {s : Set α} : x ∈ s.offDiag ↔ x.1 ∈ s ∧ x.2 ∈ s ∧ x.1 ≠ x.2 
Arguments: {α : Type u} {x : α × α} {s : Set α}
Goal: x ∈ s.offDiag ↔ x.fst ∈ s ∧ x.snd ∈ s ∧ x.fst ≠ x.snd
-- Set.mem_pi
@[simp] theorem mem_pi : f ∈ s.pi t ↔ ∀ i ∈ s, f i ∈ t i 
Arguments: {ι : Type u_1} {α : ι → Type u_2} {s : Set ι} {t : (i : ι) → Set (α i)} {f : (i : ι) → α i}
Goal: f ∈ s.pi t ↔ ∀ (i : ι), i ∈ s → f i ∈ t i
-- Set.mem_univ_pi
theorem mem_univ_pi : f ∈ pi univ t ↔ ∀ i, f i ∈ t i 
Arguments: {ι : Type u_1} {α : ι → Type u_2} {t : (i : ι) → Set (α i)} {f : (i : ι) → α i}
Goal: f ∈ Set.univ.pi t ↔ ∀ (i : ι), f i ∈ t i
-- Set.mapsTo_image
theorem mapsTo_image (f : α → β) (s : Set α) : MapsTo f s (f '' s) 
Arguments: {α : Type u} {β : Type v} (f : α → β) (s : Set α)
Goal: Set.MapsTo f s (f '' s)
-- Set.mapsTo_preimage
theorem mapsTo_preimage (f : α → β) (t : Set β) : MapsTo f (f ⁻¹' t) t 
Arguments: {α : Type u} {β : Type v} (f : α → β) (t : Set β)
Goal: Set.MapsTo f (f ⁻¹' t) t
-- Set.restrictPreimage_coe
@[simps!]
def restrictPreimage (t : Set β) (f : α → β) : f ⁻¹' t → t 
Arguments: {α : Type u} {β : Type v} (t : Set β) (f : α → β)
Goal: ∀ (a : ↑(f ⁻¹' t)), ↑(t.restrictPreimage f a) = f ↑a
-- Set.mem_image2
@[simp] theorem mem_image2 : c ∈ image2 f s t ↔ ∃ a ∈ s, ∃ b ∈ t, f a b = c 
Arguments: {α : Type u} {β : Type v} {γ : Type w} {f : α → β → γ} {s : Set α} {t : Set β} {c : γ}
Goal: c ∈ Set.image2 f s t ↔ ∃ a, a ∈ s ∧ ∃ b, b ∈ t ∧ f a b = c
-- Set.mem_image2_of_mem
theorem mem_image2_of_mem (ha : a ∈ s) (hb : b ∈ t) : f a b ∈ image2 f s t 
Arguments: {α : Type u} {β : Type v} {γ : Type w} {f : α → β → γ} {s : Set α} {t : Set β} {a : α} {b : β} (ha : a ∈ s) (hb : b ∈ t)
Goal: f a b ∈ Set.image2 f s t
-- Set.mem_seq_iff
@[simp]
theorem mem_seq_iff {s : Set (α → β)} {t : Set α} {b : β} :
    b ∈ seq s t ↔ ∃ f ∈ s, ∃ a ∈ t, (f : α → β) a = b 
Arguments: {α : Type u} {β : Type v} {s : Set (α → β)} {t : Set α} {b : β}
Goal: b ∈ s.seq t ↔ ∃ f, f ∈ s ∧ ∃ a, a ∈ t ∧ f a = b
-- Set.seq_eq_image2
lemma seq_eq_image2 (s : Set (α → β)) (t : Set α) : seq s t = image2 (fun f a ↦ f a) s t 
Arguments: {α : Type u} {β : Type v} (s : Set (α → β)) (t : Set α)
Goal: s.seq t = Set.image2 (fun f a => f a) s t
-- Set.enumerate_eq_none_of_sel
theorem enumerate_eq_none_of_sel {s : Set α} (h : sel s = none) : ∀ {n}, enumerate sel s n = none
  
Arguments: {α : Type u_1} (sel : Set α → Option α) {s : Set α} (h : sel s = none) {n : ℕ}
Goal: Set.enumerate sel s n = none
-- Set.enumerate_eq_none
theorem enumerate_eq_none :
    ∀ {s n₁ n₂}, enumerate sel s n₁ = none → n₁ ≤ n₂ → enumerate sel s n₂ = none
  
Arguments: {α : Type u_1} (sel : Set α → Option α) {s : Set α} {n₁ n₂ : ℕ}
Goal: Set.enumerate sel s n₁ = none → n₁ ≤ n₂ → Set.enumerate sel s n₂ = none
-- Set.enumerate_mem
theorem enumerate_mem (h_sel : ∀ s a, sel s = some a → a ∈ s) :
    ∀ {s n a}, enumerate sel s n = some a → a ∈ s
  
Arguments: {α : Type u_1} (sel : Set α → Option α) (h_sel : ∀ (s : Set α) (a : α), sel s = some a → a ∈ s) {s : Set α} {n : ℕ} {a : α}
Goal: Set.enumerate sel s n = some a → a ∈ s
-- Set.enumerate_inj
theorem enumerate_inj {n₁ n₂ : ℕ} {a : α} {s : Set α} (h_sel : ∀ s a, sel s = some a → a ∈ s)
    (h₁ : enumerate sel s n₁ = some a) (h₂ : enumerate sel s n₂ = some a) : n₁ = n₂ 
Arguments: {α : Type u_1} (sel : Set α → Option α) {n₁ n₂ : ℕ} {a : α} {s : Set α} (h_sel : ∀ (s : Set α) (a : α), sel s = some a → a ∈ s) (h₁ : Set.enumerate sel s n₁ = some a) (h₂ : Set.enumerate sel s n₂ = some a)
Goal: n₁ = n₂
-- Set.mem_image2_iff
theorem mem_image2_iff (hf : Injective2 f) : f a b ∈ image2 f s t ↔ a ∈ s ∧ b ∈ t 
Arguments: {α : Type u_1} {β : Type u_3} {γ : Type u_5} {f : α → β → γ} {s : Set α} {t : Set β} {a : α} {b : β} (hf : Function.Injective2 f)
Goal: f a b ∈ Set.image2 f s t ↔ a ∈ s ∧ b ∈ t
-- Set.image2_subset
theorem image2_subset (hs : s ⊆ s') (ht : t ⊆ t') : image2 f s t ⊆ image2 f s' t' 
Arguments: {α : Type u_1} {β : Type u_3} {γ : Type u_5} {f : α → β → γ} {s s' : Set α} {t t' : Set β} (hs : s ⊆ s') (ht : t ⊆ t')
Goal: Set.image2 f s t ⊆ Set.image2 f s' t'
-- Set.image2_subset_left
theorem image2_subset_left (ht : t ⊆ t') : image2 f s t ⊆ image2 f s t' 
Arguments: {α : Type u_1} {β : Type u_3} {γ : Type u_5} {f : α → β → γ} {s : Set α} {t t' : Set β} (ht : t ⊆ t')
Goal: Set.image2 f s t ⊆ Set.image2 f s t'
-- Set.image2_subset_right
theorem image2_subset_right (hs : s ⊆ s') : image2 f s t ⊆ image2 f s' t 
Arguments: {α : Type u_1} {β : Type u_3} {γ : Type u_5} {f : α → β → γ} {s s' : Set α} {t : Set β} (hs : s ⊆ s')
Goal: Set.image2 f s t ⊆ Set.image2 f s' t
-- Set.image_subset_image2_left
theorem image_subset_image2_left (hb : b ∈ t) : (fun a => f a b) '' s ⊆ image2 f s t 
Arguments: {α : Type u_1} {β : Type u_3} {γ : Type u_5} {f : α → β → γ} {s : Set α} {t : Set β} {b : β} (hb : b ∈ t)
Goal: (fun a => f a b) '' s ⊆ Set.image2 f s t
-- Set.image_subset_image2_right
theorem image_subset_image2_right (ha : a ∈ s) : f a '' t ⊆ image2 f s t 
Arguments: {α : Type u_1} {β : Type u_3} {γ : Type u_5} {f : α → β → γ} {s : Set α} {t : Set β} {a : α} (ha : a ∈ s)
Goal: f a '' t ⊆ Set.image2 f s t