Theorem: TopCat.Presheaf.submonoidPresheafOfStalk_obj
File: Mathlib/Topology/Sheaves/Operations.lean

Proof steps:
state_before: X : TopCat
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : ConcreteCategory C
F : Presheaf CommRingCat X
G : F.SubmonoidPresheaf
S : (x : ↑X) → Submonoid ↑(F.stalk x)
U V : (Opens ↑X)ᵒᵖ
i : U ⟶ V
⊢ (fun U => ⨅ x, Submonoid.comap (F.germ x) (S ↑x)) U ≤
    Submonoid.comap (F.map i) ((fun U => ⨅ x, Submonoid.comap (F.germ x) (S ↑x)) V)
state_after: X : TopCat
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : ConcreteCategory C
F : Presheaf CommRingCat X
G : F.SubmonoidPresheaf
S : (x : ↑X) → Submonoid ↑(F.stalk x)
U V : (Opens ↑X)ᵒᵖ
i : U ⟶ V
s : (forget CommRingCat).obj (F.obj U)
hs : s ∈ (fun U => ⨅ x, Submonoid.comap (F.germ x) (S ↑x)) U
⊢ s ∈ Submonoid.comap (F.map i) ((fun U => ⨅ x, Submonoid.comap (F.germ x) (S ↑x)) V)
tactic: intro s hs
state_before: X : TopCat
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : ConcreteCategory C
F : Presheaf CommRingCat X
G : F.SubmonoidPresheaf
S : (x : ↑X) → Submonoid ↑(F.stalk x)
U V : (Opens ↑X)ᵒᵖ
i : U ⟶ V
s : (forget CommRingCat).obj (F.obj U)
hs : s ∈ (fun U => ⨅ x, Submonoid.comap (F.germ x) (S ↑x)) U
⊢ s ∈ Submonoid.comap (F.map i) ((fun U => ⨅ x, Submonoid.comap (F.germ x) (S ↑x)) V)
state_after: X : TopCat
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : ConcreteCategory C
F : Presheaf CommRingCat X
G : F.SubmonoidPresheaf
S : (x : ↑X) → Submonoid ↑(F.stalk x)
U V : (Opens ↑X)ᵒᵖ
i : U ⟶ V
s : (forget CommRingCat).obj (F.obj U)
hs : ∀ (i : ↥(unop U)), (F.germ i) s ∈ S ↑i
⊢ ∀ (i_1 : ↥(unop V)), (F.germ i_1) ((F.map i) s) ∈ S ↑i_1
tactic: simp only [Submonoid.mem_comap, Submonoid.mem_iInf] at hs ⊢
state_before: X : TopCat
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : ConcreteCategory C
F : Presheaf CommRingCat X
G : F.SubmonoidPresheaf
S : (x : ↑X) → Submonoid ↑(F.stalk x)
U V : (Opens ↑X)ᵒᵖ
i : U ⟶ V
s : (forget CommRingCat).obj (F.obj U)
hs : ∀ (i : ↥(unop U)), (F.germ i) s ∈ S ↑i
⊢ ∀ (i_1 : ↥(unop V)), (F.germ i_1) ((F.map i) s) ∈ S ↑i_1
state_after: X : TopCat
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : ConcreteCategory C
F : Presheaf CommRingCat X
G : F.SubmonoidPresheaf
S : (x : ↑X) → Submonoid ↑(F.stalk x)
U V : (Opens ↑X)ᵒᵖ
i : U ⟶ V
s : (forget CommRingCat).obj (F.obj U)
hs : ∀ (i : ↥(unop U)), (F.germ i) s ∈ S ↑i
x : ↥(unop V)
⊢ (F.germ x) ((F.map i) s) ∈ S ↑x
tactic: intro x
state_before: X : TopCat
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : ConcreteCategory C
F : Presheaf CommRingCat X
G : F.SubmonoidPresheaf
S : (x : ↑X) → Submonoid ↑(F.stalk x)
U V : (Opens ↑X)ᵒᵖ
i : U ⟶ V
s : (forget CommRingCat).obj (F.obj U)
hs : ∀ (i : ↥(unop U)), (F.germ i) s ∈ S ↑i
x : ↥(unop V)
⊢ (F.germ x) ((F.map i) s) ∈ S ↑x
state_after: X : TopCat
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : ConcreteCategory C
F : Presheaf CommRingCat X
G : F.SubmonoidPresheaf
S : (x : ↑X) → Submonoid ↑(F.stalk x)
U V : (Opens ↑X)ᵒᵖ
i : U ⟶ V
s : (forget CommRingCat).obj (F.obj U)
hs : ∀ (i : ↥(unop U)), (F.germ i) s ∈ S ↑i
x : ↥(unop V)
⊢ (F.map i.unop.op ≫ F.germ x) s ∈ S ↑x
tactic: change (F.map i.unop.op ≫ F.germ x) s ∈ _
state_before: X : TopCat
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : ConcreteCategory C
F : Presheaf CommRingCat X
G : F.SubmonoidPresheaf
S : (x : ↑X) → Submonoid ↑(F.stalk x)
U V : (Opens ↑X)ᵒᵖ
i : U ⟶ V
s : (forget CommRingCat).obj (F.obj U)
hs : ∀ (i : ↥(unop U)), (F.germ i) s ∈ S ↑i
x : ↥(unop V)
⊢ (F.map i.unop.op ≫ F.germ x) s ∈ S ↑x
state_after: X : TopCat
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : ConcreteCategory C
F : Presheaf CommRingCat X
G : F.SubmonoidPresheaf
S : (x : ↑X) → Submonoid ↑(F.stalk x)
U V : (Opens ↑X)ᵒᵖ
i : U ⟶ V
s : (forget CommRingCat).obj (F.obj U)
hs : ∀ (i : ↥(unop U)), (F.germ i) s ∈ S ↑i
x : ↥(unop V)
⊢ (F.germ ((fun x => ⟨↑x, ⋯⟩) x)) s ∈ S ↑x
tactic: rw [F.germ_res]
state_before: X : TopCat
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : ConcreteCategory C
F : Presheaf CommRingCat X
G : F.SubmonoidPresheaf
S : (x : ↑X) → Submonoid ↑(F.stalk x)
U V : (Opens ↑X)ᵒᵖ
i : U ⟶ V
s : (forget CommRingCat).obj (F.obj U)
hs : ∀ (i : ↥(unop U)), (F.germ i) s ∈ S ↑i
x : ↥(unop V)
⊢ (F.germ ((fun x => ⟨↑x, ⋯⟩) x)) s ∈ S ↑x
state_after: no goals
tactic: exact hs _