ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- List.take_iterate
theorem take_iterate (f : α → α) (a : α) (m n : ℕ) :
    take m (iterate f a n) = iterate f a (min m n) 
Arguments: {α : Type u_1} (f : α → α) (a : α) (m n : ℕ)
Goal: List.take m (List.iterate f a n) = List.iterate f a (min m n)
-- AlgebraicGeometry.Scheme.Opens.ι_val_base_apply
@[simps! val_base_apply]
def ι : ↑U ⟶ X 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens) (self : ↥U)
Goal: U.ι.val.base self = ↑self
-- AlgebraicGeometry.Scheme.Opens.toScheme_carrier
lemma toScheme_carrier : (U : Type u) = (U : Set X) 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens)
Goal: ↑↑(↑U).toPresheafedSpace = ↑↑U
-- AlgebraicGeometry.Scheme.Opens.toScheme_presheaf_obj
lemma toScheme_presheaf_obj (V) : Γ(U, V) = Γ(X, U.ι ''ᵁ V) 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens) (V : (↑U).Opens)
Goal: (↑U).presheaf.obj (Opposite.op V) = X.presheaf.obj (Opposite.op ((AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj V))
-- AlgebraicGeometry.Scheme.Opens.toScheme_presheaf_map
@[simp]
lemma toScheme_presheaf_map {V W} (i : V ⟶ W) :
    U.toScheme.presheaf.map i = X.presheaf.map (U.ι.opensFunctor.map i.unop).op 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens) {V W : (TopologicalSpace.Opens ↑↑(↑U).toPresheafedSpace)ᵒᵖ} (i : V ⟶ W)
Goal: (↑U).presheaf.map i = X.presheaf.map ((AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).map i.unop).op
-- AlgebraicGeometry.Scheme.Opens.ι_app
@[simp]
lemma ι_app (V) : U.ι.app V = X.presheaf.map
    (homOfLE (x := U.ι ''ᵁ U.ι ⁻¹ᵁ V) (Set.image_preimage_subset _ _)).op 
Arguments: {X : AlgebraicGeometry.Scheme} (U V : X.Opens)
Goal: AlgebraicGeometry.Scheme.Hom.app U.ι V = X.presheaf.map (CategoryTheory.homOfLE ⋯).op
-- AlgebraicGeometry.Scheme.Opens.ι_appLE
@[simp]
lemma ι_appLE (V W e) :
    U.ι.appLE V W e =
      X.presheaf.map (homOfLE (x := U.ι ''ᵁ W) (Set.image_subset_iff.mpr ‹_›)).op 
Arguments: {X : AlgebraicGeometry.Scheme} (U V : X.Opens) (W : (↑U).Opens) (e : W ≤ (TopologicalSpace.Opens.map U.ι.val.base).obj V)
Goal: AlgebraicGeometry.Scheme.Hom.appLE U.ι V W e = X.presheaf.map (CategoryTheory.homOfLE ⋯).op
-- AlgebraicGeometry.Scheme.Opens.ι_appIso
@[simp]
lemma ι_appIso (V) : U.ι.appIso V = Iso.refl _ 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens) (V : (↑U).Opens)
Goal: AlgebraicGeometry.Scheme.Hom.appIso U.ι V =
  CategoryTheory.Iso.refl (X.presheaf.obj (Opposite.op ((AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj V)))
-- AlgebraicGeometry.Scheme.Opens.opensRange_ι
@[simp]
lemma opensRange_ι : U.ι.opensRange = U 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens)
Goal: AlgebraicGeometry.Scheme.Hom.opensRange U.ι = U
-- AlgebraicGeometry.Scheme.Opens.range_ι
@[simp]
lemma range_ι : Set.range U.ι.val.base = U 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens)
Goal: Set.range ⇑U.ι.val.base = ↑U
-- AlgebraicGeometry.Scheme.Opens.ι_image_top
lemma ι_image_top : U.ι ''ᵁ ⊤ = U 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens)
Goal: (AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj ⊤ = U
-- AlgebraicGeometry.Scheme.Opens.ι_preimage_self
@[simp]
lemma ι_preimage_self : U.ι ⁻¹ᵁ U = ⊤ 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens)
Goal: (TopologicalSpace.Opens.map U.ι.val.base).obj U = ⊤
-- AlgebraicGeometry.Scheme.Opens.ι_app_self
lemma ι_app_self : U.ι.app U = X.presheaf.map (eqToHom (X := U.ι ''ᵁ _) (by simp)).op 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens)
Goal: AlgebraicGeometry.Scheme.Hom.app U.ι U = X.presheaf.map (CategoryTheory.eqToHom ⋯).op
-- AlgebraicGeometry.Scheme.Opens.eq_presheaf_map_eqToHom
lemma eq_presheaf_map_eqToHom {V W : Opens U} (e : U.ι ''ᵁ V = U.ι ''ᵁ W) :
    X.presheaf.map (eqToHom e).op =
      U.toScheme.presheaf.map (eqToHom <| U.openEmbedding.functor_obj_injective e).op 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens) {V W : (↑U).Opens} (e : (AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj V = (AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj W)
Goal: X.presheaf.map (CategoryTheory.eqToHom e).op = (↑U).presheaf.map (CategoryTheory.eqToHom ⋯).op
-- AlgebraicGeometry.Scheme.Opens.nonempty_iff
@[simp]
lemma nonempty_iff : Nonempty U.toScheme ↔ (U : Set X).Nonempty 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens)
Goal: Nonempty ↑↑(↑U).toPresheafedSpace ↔ (↑U).Nonempty
-- AlgebraicGeometry.Scheme.Opens.topIso_inv
@[simps!]
def topIso : Γ(U, ⊤) ≅ Γ(X, U) 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens)
Goal: U.topIso.inv = X.presheaf.map (CategoryTheory.eqToHom ⋯).op
-- AlgebraicGeometry.Scheme.Opens.topIso_hom
@[simps!]
def topIso : Γ(U, ⊤) ≅ Γ(X, U) 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens)
Goal: U.topIso.hom = X.presheaf.map (CategoryTheory.eqToHom ⋯).op
-- AlgebraicGeometry.Scheme.Opens.germ_stalkIso_hom
@[reassoc (attr := simp)]
lemma germ_stalkIso_hom {X : Scheme.{u}} (U : X.Opens)
    {V : U.toScheme.Opens} (x : V) :
      U.toScheme.presheaf.germ x ≫ (U.stalkIso x.1).hom =
        X.presheaf.germ ⟨x.1.1, show x.1.1 ∈ U.ι ''ᵁ V from ⟨x.1, x.2, rfl⟩⟩ 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens) {V : (↑U).Opens} (x : ↥V)
Goal: (↑U).presheaf.germ x ≫ (U.stalkIso ↑x).hom = X.presheaf.germ ⟨↑↑x, ⋯⟩
-- AlgebraicGeometry.Scheme.Opens.germ_stalkIso_hom'
@[reassoc (attr := simp)]
lemma germ_stalkIso_hom' {X : Scheme.{u}} (U : X.Opens)
    {V : TopologicalSpace.Opens U} (x : U) (hx : x ∈ V) :
      U.toScheme.presheaf.germ ⟨x, hx⟩ ≫ (U.stalkIso x).hom =
        X.presheaf.germ ⟨x.1, show x.1 ∈ U.ι ''ᵁ V from ⟨x, hx, rfl⟩⟩ 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens) {V : TopologicalSpace.Opens ↑↑(↑U).toPresheafedSpace} (x : ↥U) (hx : x ∈ V)
Goal: (↑U).presheaf.germ ⟨x, hx⟩ ≫ (U.stalkIso x).hom = X.presheaf.germ ⟨↑x, ⋯⟩
-- AlgebraicGeometry.Scheme.Opens.germ_stalkIso_inv
@[simp, reassoc]
lemma germ_stalkIso_inv {X : Scheme.{u}} (U : X.Opens) (V : U.toScheme.Opens) (x : U)
    (hx : x ∈ V) : X.presheaf.germ ⟨x.val, show x.val ∈ U.ι ''ᵁ V from ⟨x, hx, rfl⟩⟩ ≫
      (U.stalkIso x).inv = U.toScheme.presheaf.germ ⟨x, hx⟩ 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens) (V : (↑U).Opens) (x : ↥U) (hx : x ∈ V)
Goal: X.presheaf.germ ⟨↑x, ⋯⟩ ≫ (U.stalkIso x).inv = (↑U).presheaf.germ ⟨x, hx⟩
-- AlgebraicGeometry.Scheme.openCoverOfISupEqTop_J
@[simps! J obj map]
def Scheme.openCoverOfISupEqTop {s : Type*} (X : Scheme.{u}) (U : s → X.Opens)
    (hU : ⨆ i, U i = ⊤) : X.OpenCover 
Arguments: {s : Type u_1} (X : AlgebraicGeometry.Scheme) (U : s → X.Opens) (hU : ⨆ i, U i = ⊤)
Goal: (X.openCoverOfISupEqTop U hU).J = s
-- AlgebraicGeometry.Scheme.openCoverOfISupEqTop_obj
@[simps! J obj map]
def Scheme.openCoverOfISupEqTop {s : Type*} (X : Scheme.{u}) (U : s → X.Opens)
    (hU : ⨆ i, U i = ⊤) : X.OpenCover 
Arguments: {s : Type u_1} (X : AlgebraicGeometry.Scheme) (U : s → X.Opens) (hU : ⨆ i, U i = ⊤) (i : s)
Goal: (X.openCoverOfISupEqTop U hU).obj i = ↑(U i)
-- AlgebraicGeometry.Scheme.openCoverOfISupEqTop_map
@[simps! J obj map]
def Scheme.openCoverOfISupEqTop {s : Type*} (X : Scheme.{u}) (U : s → X.Opens)
    (hU : ⨆ i, U i = ⊤) : X.OpenCover 
Arguments: {s : Type u_1} (X : AlgebraicGeometry.Scheme) (U : s → X.Opens) (hU : ⨆ i, U i = ⊤) (i : s)
Goal: (X.openCoverOfISupEqTop U hU).map i = (U i).ι
-- AlgebraicGeometry.opensRestrict_apply_coe_coe
@[simps!]
def opensRestrict :
    Scheme.Opens U ≃ { V : X.Opens // V ≤ U } 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens)
Goal: ∀ (a : (↑U).Opens), ↑↑((AlgebraicGeometry.opensRestrict U) a) = ⇑U.ι.val.base '' ↑a
-- AlgebraicGeometry.opensRestrict_symm_apply_coe
@[simps!]
def opensRestrict :
    Scheme.Opens U ≃ { V : X.Opens // V ≤ U } 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens)
Goal: ∀ (a : { V // V ≤ U }),
  ↑((AlgebraicGeometry.opensRestrict U).symm a) = ⇑U.ι.val.base ⁻¹' ↑↑((Equiv.subtypeEquivProp ⋯).symm a)
-- AlgebraicGeometry.Scheme.map_basicOpen'
lemma Scheme.map_basicOpen' (r : Γ(U, ⊤)) :
    U.ι ''ᵁ (U.toScheme.basicOpen r) = X.basicOpen
      (X.presheaf.map (eqToHom U.openEmbedding_obj_top.symm).op r) 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens) (r : ↑((↑U).presheaf.obj (Opposite.op ⊤)))
Goal: (AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj ((↑U).basicOpen r) =
  X.basicOpen ((X.presheaf.map (CategoryTheory.eqToHom ⋯).op) r)
-- AlgebraicGeometry.Scheme.Opens.ι_image_basicOpen
lemma Scheme.Opens.ι_image_basicOpen (r : Γ(U, ⊤)) :
    U.ι ''ᵁ (U.toScheme.basicOpen r) = X.basicOpen r 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens) (r : ↑((↑U).presheaf.obj (Opposite.op ⊤)))
Goal: (AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj ((↑U).basicOpen r) = X.basicOpen r
-- AlgebraicGeometry.Scheme.map_basicOpen_map
lemma Scheme.map_basicOpen_map (r : Γ(X, U)) :
    U.ι ''ᵁ (U.toScheme.basicOpen <| U.topIso.inv r) = X.basicOpen r 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens) (r : ↑(X.presheaf.obj (Opposite.op U)))
Goal: (AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj ((↑U).basicOpen (U.topIso.inv r)) = X.basicOpen r
-- AlgebraicGeometry.Scheme.restrictFunctor_obj_left
@[simp] lemma Scheme.restrictFunctor_obj_left (U : X.Opens) :
  (X.restrictFunctor.obj U).left = U 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens)
Goal: (X.restrictFunctor.obj U).left = ↑U
-- AlgebraicGeometry.Scheme.restrictFunctor_obj_hom
@[simp] lemma Scheme.restrictFunctor_obj_hom (U : X.Opens) :
  (X.restrictFunctor.obj U).hom = U.ι 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens)
Goal: (X.restrictFunctor.obj U).hom = U.ι
-- AlgebraicGeometry.Scheme.restrictFunctor_map_left
@[simp] lemma Scheme.restrictFunctor_map_left {U V : X.Opens} (i : U ⟶ V) :
  (X.restrictFunctor.map i).left = IsOpenImmersion.lift (V.ι) U.ι (by simpa using i.le) 
Arguments: {X : AlgebraicGeometry.Scheme} {U V : X.Opens} (i : U ⟶ V)
Goal: (X.restrictFunctor.map i).left = AlgebraicGeometry.IsOpenImmersion.lift V.ι U.ι ⋯
-- AlgebraicGeometry.Scheme.restrictFunctor_map_ofRestrict
@[reassoc]
theorem Scheme.restrictFunctor_map_ofRestrict {U V : X.Opens} (i : U ⟶ V) :
    (X.restrictFunctor.map i).1 ≫ V.ι = U.ι 
Arguments: {X : AlgebraicGeometry.Scheme} {U V : X.Opens} (i : U ⟶ V)
Goal: (X.restrictFunctor.map i).left ≫ V.ι = U.ι
-- AlgebraicGeometry.Scheme.restrictFunctor_map_base
theorem Scheme.restrictFunctor_map_base {U V : X.Opens} (i : U ⟶ V) :
    (X.restrictFunctor.map i).1.val.base = (Opens.toTopCat _).map i 
Arguments: {X : AlgebraicGeometry.Scheme} {U V : X.Opens} (i : U ⟶ V)
Goal: (X.restrictFunctor.map i).left.val.base = (TopologicalSpace.Opens.toTopCat ↑X.toPresheafedSpace).map i
-- AlgebraicGeometry.Scheme.restrictFunctor_map_app_aux
theorem Scheme.restrictFunctor_map_app_aux {U V : X.Opens} (i : U ⟶ V) (W : Opens V) :
    U.ι ''ᵁ ((X.restrictFunctor.map i).1 ⁻¹ᵁ W) ≤ V.ι ''ᵁ W 
Arguments: {X : AlgebraicGeometry.Scheme} {U V : X.Opens} (i : U ⟶ V) (W : (↑V).Opens)
Goal: (AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj
    ((TopologicalSpace.Opens.map (X.restrictFunctor.map i).left.val.base).obj W) ≤
  (AlgebraicGeometry.Scheme.Hom.opensFunctor V.ι).obj W
-- AlgebraicGeometry.Scheme.restrictFunctor_map_app
theorem Scheme.restrictFunctor_map_app {U V : X.Opens} (i : U ⟶ V) (W : Opens V) :
    (X.restrictFunctor.map i).1.app W =
      X.presheaf.map (homOfLE <| X.restrictFunctor_map_app_aux i W).op 
Arguments: {X : AlgebraicGeometry.Scheme} {U V : X.Opens} (i : U ⟶ V) (W : (↑V).Opens)
Goal: AlgebraicGeometry.Scheme.Hom.app (X.restrictFunctor.map i).left W = X.presheaf.map (CategoryTheory.homOfLE ⋯).op
-- AlgebraicGeometry.Scheme.restrictFunctorΓ_inv_app
@[simps!]
def Scheme.restrictFunctorΓ : X.restrictFunctor.op ⋙ (Over.forget X).op ⋙ Scheme.Γ ≅ X.presheaf 
Arguments: {X : AlgebraicGeometry.Scheme}
Goal: ∀ (X_1 : X.Opensᵒᵖ), AlgebraicGeometry.Scheme.restrictFunctorΓ.inv.app X_1 = X.presheaf.map (CategoryTheory.eqToHom ⋯)
-- AlgebraicGeometry.Scheme.restrictFunctorΓ_hom_app
@[simps!]
def Scheme.restrictFunctorΓ : X.restrictFunctor.op ⋙ (Over.forget X).op ⋙ Scheme.Γ ≅ X.presheaf 
Arguments: {X : AlgebraicGeometry.Scheme}
Goal: ∀ (X_1 : X.Opensᵒᵖ), AlgebraicGeometry.Scheme.restrictFunctorΓ.hom.app X_1 = X.presheaf.map (CategoryTheory.eqToHom ⋯)
-- AlgebraicGeometry.Scheme.restrictRestrict_hom_restrict
@[simp, reassoc]
lemma Scheme.restrictRestrict_hom_restrict (X : Scheme.{u}) (U : X.Opens)
    (V : U.toScheme.Opens) :
    (X.restrictRestrict U V).hom ≫ Opens.ι _ = V.ι ≫ U.ι 
Arguments: (X : AlgebraicGeometry.Scheme) (U : X.Opens) (V : (↑U).Opens)
Goal: (X.restrictRestrict U V).hom ≫ ((AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj V).ι = V.ι ≫ U.ι
-- AlgebraicGeometry.Scheme.restrictRestrict_inv_restrict_restrict
@[simp, reassoc]
lemma Scheme.restrictRestrict_inv_restrict_restrict (X : Scheme.{u}) (U : X.Opens)
    (V : U.toScheme.Opens) :
    (X.restrictRestrict U V).inv ≫ V.ι ≫ U.ι = Opens.ι _ 
Arguments: (X : AlgebraicGeometry.Scheme) (U : X.Opens) (V : (↑U).Opens)
Goal: (X.restrictRestrict U V).inv ≫ V.ι ≫ U.ι = ((AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj V).ι
-- AlgebraicGeometry.pullbackRestrictIsoRestrict_inv_fst
@[simp, reassoc]
theorem pullbackRestrictIsoRestrict_inv_fst {X Y : Scheme.{u}} (f : X ⟶ Y) (U : Y.Opens) :
    (pullbackRestrictIsoRestrict f U).inv ≫ pullback.fst f _ = (f ⁻¹ᵁ U).ι 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens)
Goal: (AlgebraicGeometry.pullbackRestrictIsoRestrict f U).inv ≫ CategoryTheory.Limits.pullback.fst f U.ι =
  ((TopologicalSpace.Opens.map f.val.base).obj U).ι
-- AlgebraicGeometry.pullbackRestrictIsoRestrict_hom_restrict
@[simp, reassoc]
theorem pullbackRestrictIsoRestrict_hom_restrict {X Y : Scheme.{u}} (f : X ⟶ Y) (U : Y.Opens) :
    (pullbackRestrictIsoRestrict f U).hom ≫ (f ⁻¹ᵁ U).ι = pullback.fst f _ 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens)
Goal: (AlgebraicGeometry.pullbackRestrictIsoRestrict f U).hom ≫ ((TopologicalSpace.Opens.map f.val.base).obj U).ι =
  CategoryTheory.Limits.pullback.fst f U.ι
-- AlgebraicGeometry.pullbackRestrictIsoRestrict_hom_morphismRestrict
@[simp, reassoc]
theorem pullbackRestrictIsoRestrict_hom_morphismRestrict {X Y : Scheme.{u}} (f : X ⟶ Y)
    (U : Y.Opens) : (pullbackRestrictIsoRestrict f U).hom ≫ f ∣_ U = pullback.snd _ _ 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens)
Goal: (AlgebraicGeometry.pullbackRestrictIsoRestrict f U).hom ≫ f ∣_ U = CategoryTheory.Limits.pullback.snd f U.ι
-- AlgebraicGeometry.morphismRestrict_ι
@[simp, reassoc]
theorem morphismRestrict_ι {X Y : Scheme.{u}} (f : X ⟶ Y) (U : Y.Opens) :
    (f ∣_ U) ≫ U.ι = (f ⁻¹ᵁ U).ι ≫ f 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens)
Goal: f ∣_ U ≫ U.ι = ((TopologicalSpace.Opens.map f.val.base).obj U).ι ≫ f
-- AlgebraicGeometry.isPullback_morphismRestrict
theorem isPullback_morphismRestrict {X Y : Scheme.{u}} (f : X ⟶ Y) (U : Y.Opens) :
    IsPullback (f ∣_ U) (f ⁻¹ᵁ U).ι U.ι f 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens)
Goal: CategoryTheory.IsPullback (f ∣_ U) ((TopologicalSpace.Opens.map f.val.base).obj U).ι U.ι f
-- AlgebraicGeometry.morphismRestrict_id
@[simp]
lemma morphismRestrict_id {X : Scheme.{u}} (U : X.Opens) : 𝟙 X ∣_ U = 𝟙 _ 
Arguments: {X : AlgebraicGeometry.Scheme} (U : X.Opens)
Goal: 𝟙 X ∣_ U = 𝟙 ↑((TopologicalSpace.Opens.map (𝟙 X).val.base).obj U)
-- AlgebraicGeometry.morphismRestrict_comp
theorem morphismRestrict_comp {X Y Z : Scheme.{u}} (f : X ⟶ Y) (g : Y ⟶ Z) (U : Opens Z) :
    (f ≫ g) ∣_ U = f ∣_ g ⁻¹ᵁ U ≫ g ∣_ U 
Arguments: {X Y Z : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) (U : TopologicalSpace.Opens ↑↑Z.toPresheafedSpace)
Goal: (f ≫ g) ∣_ U = f ∣_ (TopologicalSpace.Opens.map g.val.base).obj U ≫ g ∣_ U
-- AlgebraicGeometry.morphismRestrict_base_coe
theorem morphismRestrict_base_coe {X Y : Scheme.{u}} (f : X ⟶ Y) (U : Y.Opens) (x) :
    @Coe.coe U Y (⟨fun x => x.1⟩) ((f ∣_ U).val.base x) = f.val.base x.1 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens) (x : ↑↑(↑((TopologicalSpace.Opens.map f.val.base).obj U)).toPresheafedSpace)
Goal: Coe.coe ((f ∣_ U).val.base x) = f.val.base ↑x
-- AlgebraicGeometry.morphismRestrict_val_base
theorem morphismRestrict_val_base {X Y : Scheme.{u}} (f : X ⟶ Y) (U : Y.Opens) :
    ⇑(f ∣_ U).val.base = U.1.restrictPreimage f.val.base 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens)
Goal: ⇑(f ∣_ U).val.base = U.carrier.restrictPreimage ⇑f.val.base
-- AlgebraicGeometry.image_morphismRestrict_preimage
theorem image_morphismRestrict_preimage {X Y : Scheme.{u}} (f : X ⟶ Y) (U : Y.Opens) (V : Opens U) :
    (f ⁻¹ᵁ U).ι ''ᵁ ((f ∣_ U) ⁻¹ᵁ V) = f ⁻¹ᵁ (U.ι ''ᵁ V) 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens) (V : TopologicalSpace.Opens ↑↑(↑U).toPresheafedSpace)
Goal: (AlgebraicGeometry.Scheme.Hom.opensFunctor ((TopologicalSpace.Opens.map f.val.base).obj U).ι).obj
    ((TopologicalSpace.Opens.map (f ∣_ U).val.base).obj V) =
  (TopologicalSpace.Opens.map f.val.base).obj ((AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj V)
-- AlgebraicGeometry.eqToHom_eq_homOfLE
lemma eqToHom_eq_homOfLE {C} [Preorder C] {X Y : C} (e : X = Y) : eqToHom e = homOfLE e.le 
Arguments: {C : Type u_1} [Preorder C] {X Y : C} (e : X = Y)
Goal: CategoryTheory.eqToHom e = CategoryTheory.homOfLE ⋯
-- AlgebraicGeometry.morphismRestrict_app
theorem morphismRestrict_app {X Y : Scheme.{u}} (f : X ⟶ Y) (U : Y.Opens) (V : U.toScheme.Opens) :
    (f ∣_ U).app V = f.app (U.ι ''ᵁ V) ≫
        X.presheaf.map (eqToHom (image_morphismRestrict_preimage f U V)).op 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens) (V : (↑U).Opens)
Goal: AlgebraicGeometry.Scheme.Hom.app (f ∣_ U) V =
  AlgebraicGeometry.Scheme.Hom.app f ((AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj V) ≫
    X.presheaf.map (CategoryTheory.eqToHom ⋯).op
-- AlgebraicGeometry.morphismRestrict_app'
@[simp]
theorem morphismRestrict_app' {X Y : Scheme.{u}} (f : X ⟶ Y) (U : Y.Opens) (V : Opens U) :
    (f ∣_ U).app V = f.appLE _ _ (image_morphismRestrict_preimage f U V).le 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens) (V : TopologicalSpace.Opens ↑↑(↑U).toPresheafedSpace)
Goal: AlgebraicGeometry.Scheme.Hom.app (f ∣_ U) V =
  AlgebraicGeometry.Scheme.Hom.appLE f ((AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj V)
    ((AlgebraicGeometry.Scheme.Hom.opensFunctor ((TopologicalSpace.Opens.map f.val.base).obj U).ι).obj
      ((TopologicalSpace.Opens.map (f ∣_ U).val.base).obj V))
    ⋯
-- AlgebraicGeometry.morphismRestrict_appLE
@[simp]
theorem morphismRestrict_appLE {X Y : Scheme.{u}} (f : X ⟶ Y) (U : Y.Opens) (V W e) :
    (f ∣_ U).appLE V W e = f.appLE (U.ι ''ᵁ V) ((f ⁻¹ᵁ U).ι ''ᵁ W)
      ((Set.image_subset _ e).trans (image_morphismRestrict_preimage f U V).le) 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens) (V : (↑U).Opens) (W : (↑((TopologicalSpace.Opens.map f.val.base).obj U)).Opens) (e : W ≤ (TopologicalSpace.Opens.map (f ∣_ U).val.base).obj V)
Goal: AlgebraicGeometry.Scheme.Hom.appLE (f ∣_ U) V W e =
  AlgebraicGeometry.Scheme.Hom.appLE f ((AlgebraicGeometry.Scheme.Hom.opensFunctor U.ι).obj V)
    ((AlgebraicGeometry.Scheme.Hom.opensFunctor ((TopologicalSpace.Opens.map f.val.base).obj U).ι).obj W) ⋯
-- AlgebraicGeometry.Γ_map_morphismRestrict
theorem Γ_map_morphismRestrict {X Y : Scheme.{u}} (f : X ⟶ Y) (U : Y.Opens) :
    Scheme.Γ.map (f ∣_ U).op =
      Y.presheaf.map (eqToHom U.openEmbedding_obj_top.symm).op ≫
        f.app U ≫ X.presheaf.map (eqToHom (f ⁻¹ᵁ U).openEmbedding_obj_top).op 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens)
Goal: AlgebraicGeometry.Scheme.Γ.map (f ∣_ U).op =
  Y.presheaf.map (CategoryTheory.eqToHom ⋯).op ≫
    AlgebraicGeometry.Scheme.Hom.app f U ≫ X.presheaf.map (CategoryTheory.eqToHom ⋯).op
-- AlgebraicGeometry.Scheme.OpenCover.restrict_J
@[simps! J obj map]
noncomputable
def Scheme.OpenCover.restrict {X : Scheme.{u}} (𝒰 : X.OpenCover) (U : Opens X) :
    U.toScheme.OpenCover 
Arguments: {X : AlgebraicGeometry.Scheme} (𝒰 : X.OpenCover) (U : X.Opens)
Goal: (𝒰.restrict U).J = 𝒰.J
-- AlgebraicGeometry.Scheme.OpenCover.restrict_obj
@[simps! J obj map]
noncomputable
def Scheme.OpenCover.restrict {X : Scheme.{u}} (𝒰 : X.OpenCover) (U : Opens X) :
    U.toScheme.OpenCover 
Arguments: {X : AlgebraicGeometry.Scheme} (𝒰 : X.OpenCover) (U : X.Opens)
Goal: ∀ (x : 𝒰.J), (𝒰.restrict U).obj x = ↑((TopologicalSpace.Opens.map (𝒰.map x).val.base).obj U)
-- AlgebraicGeometry.Scheme.OpenCover.restrict_map
@[simps! J obj map]
noncomputable
def Scheme.OpenCover.restrict {X : Scheme.{u}} (𝒰 : X.OpenCover) (U : Opens X) :
    U.toScheme.OpenCover 
Arguments: {X : AlgebraicGeometry.Scheme} (𝒰 : X.OpenCover) (U : X.Opens)
Goal: ∀ (x : 𝒰.J), (𝒰.restrict U).map x = 𝒰.map x ∣_ U
-- List.Disjoint.symm
@[symm]
theorem Disjoint.symm (d : Disjoint l₁ l₂) : Disjoint l₂ l₁ 
Arguments: {α : Type u_1} {l₁ l₂ : List α} (d : l₁.Disjoint l₂)
Goal: l₂.Disjoint l₁
-- List.mem_union_left
theorem mem_union_left (h : a ∈ l₁) (l₂ : List α) : a ∈ l₁ ∪ l₂ 
Arguments: {α : Type u_1} {l₁ : List α} {a : α} [DecidableEq α] (h : a ∈ l₁) (l₂ : List α)
Goal: a ∈ l₁ ∪ l₂
-- List.mem_union_right
theorem mem_union_right (l₁ : List α) (h : a ∈ l₂) : a ∈ l₁ ∪ l₂ 
Arguments: {α : Type u_1} {l₂ : List α} {a : α} [DecidableEq α] (l₁ : List α) (h : a ∈ l₂)
Goal: a ∈ l₁ ∪ l₂
-- List.sublist_suffix_of_union
theorem sublist_suffix_of_union : ∀ l₁ l₂ : List α, ∃ t, t <+ l₁ ∧ t ++ l₂ = l₁ ∪ l₂
  
Arguments: {α : Type u_1} [DecidableEq α] (l₁ l₂ : List α)
Goal: ∃ t, t.Sublist l₁ ∧ t ++ l₂ = l₁ ∪ l₂
-- List.suffix_union_right
theorem suffix_union_right (l₁ l₂ : List α) : l₂ <:+ l₁ ∪ l₂ 
Arguments: {α : Type u_1} [DecidableEq α] (l₁ l₂ : List α)
Goal: l₂ <:+ l₁ ∪ l₂
-- List.union_sublist_append
theorem union_sublist_append (l₁ l₂ : List α) : l₁ ∪ l₂ <+ l₁ ++ l₂ 
Arguments: {α : Type u_1} [DecidableEq α] (l₁ l₂ : List α)
Goal: (l₁ ∪ l₂).Sublist (l₁ ++ l₂)
-- List.forall_mem_union
theorem forall_mem_union : (∀ x ∈ l₁ ∪ l₂, p x) ↔ (∀ x ∈ l₁, p x) ∧ ∀ x ∈ l₂, p x 
Arguments: {α : Type u_1} {l₁ l₂ : List α} {p : α → Prop} [DecidableEq α]
Goal: (∀ (x : α), x ∈ l₁ ∪ l₂ → p x) ↔ (∀ (x : α), x ∈ l₁ → p x) ∧ ∀ (x : α), x ∈ l₂ → p x
-- List.forall_mem_of_forall_mem_union_left
theorem forall_mem_of_forall_mem_union_left (h : ∀ x ∈ l₁ ∪ l₂, p x) : ∀ x ∈ l₁, p x 
Arguments: {α : Type u_1} {l₁ l₂ : List α} {p : α → Prop} [DecidableEq α] (h : ∀ (x : α), x ∈ l₁ ∪ l₂ → p x) (x : α)
Goal: x ∈ l₁ → p x
-- List.forall_mem_of_forall_mem_union_right
theorem forall_mem_of_forall_mem_union_right (h : ∀ x ∈ l₁ ∪ l₂, p x) : ∀ x ∈ l₂, p x 
Arguments: {α : Type u_1} {l₁ l₂ : List α} {p : α → Prop} [DecidableEq α] (h : ∀ (x : α), x ∈ l₁ ∪ l₂ → p x) (x : α)
Goal: x ∈ l₂ → p x
-- List.Subset.union_eq_right
theorem Subset.union_eq_right {xs ys : List α} (h : xs ⊆ ys) : xs ∪ ys = ys 
Arguments: {α : Type u_1} [DecidableEq α] {xs ys : List α} (h : xs ⊆ ys)
Goal: xs ∪ ys = ys
-- List.inter_nil
@[simp]
theorem inter_nil (l : List α) : [] ∩ l = [] 
Arguments: {α : Type u_1} [DecidableEq α] (l : List α)
Goal: [] ∩ l = []
-- List.inter_cons_of_mem
@[simp]
theorem inter_cons_of_mem (l₁ : List α) (h : a ∈ l₂) : (a :: l₁) ∩ l₂ = a :: l₁ ∩ l₂ 
Arguments: {α : Type u_1} {l₂ : List α} {a : α} [DecidableEq α] (l₁ : List α) (h : a ∈ l₂)
Goal: (a :: l₁) ∩ l₂ = a :: l₁ ∩ l₂
-- List.inter_cons_of_not_mem
@[simp]
theorem inter_cons_of_not_mem (l₁ : List α) (h : a ∉ l₂) : (a :: l₁) ∩ l₂ = l₁ ∩ l₂ 
Arguments: {α : Type u_1} {l₂ : List α} {a : α} [DecidableEq α] (l₁ : List α) (h : ¬a ∈ l₂)
Goal: (a :: l₁) ∩ l₂ = l₁ ∩ l₂
-- List.inter_nil'
@[simp]
theorem inter_nil' (l : List α) : l ∩ [] = [] 
Arguments: {α : Type u_1} [DecidableEq α] (l : List α)
Goal: l ∩ [] = []
-- List.mem_of_mem_inter_left
theorem mem_of_mem_inter_left : a ∈ l₁ ∩ l₂ → a ∈ l₁ 
Arguments: {α : Type u_1} {l₁ l₂ : List α} {a : α} [DecidableEq α]
Goal: a ∈ l₁ ∩ l₂ → a ∈ l₁
-- List.mem_of_mem_inter_right
theorem mem_of_mem_inter_right (h : a ∈ l₁ ∩ l₂) : a ∈ l₂ 
Arguments: {α : Type u_1} {l₁ l₂ : List α} {a : α} [DecidableEq α] (h : a ∈ l₁ ∩ l₂)
Goal: a ∈ l₂
-- List.mem_inter_of_mem_of_mem
theorem mem_inter_of_mem_of_mem (h₁ : a ∈ l₁) (h₂ : a ∈ l₂) : a ∈ l₁ ∩ l₂ 
Arguments: {α : Type u_1} {l₁ l₂ : List α} {a : α} [DecidableEq α] (h₁ : a ∈ l₁) (h₂ : a ∈ l₂)
Goal: a ∈ l₁ ∩ l₂
-- List.inter_subset_left
theorem inter_subset_left {l₁ l₂ : List α} : l₁ ∩ l₂ ⊆ l₁ 
Arguments: {α : Type u_1} [DecidableEq α] {l₁ l₂ : List α}
Goal: l₁ ∩ l₂ ⊆ l₁