-- Module: Mathlib.Geometry.RingedSpace.Basic
Goal:
X : RingedSpace
U : Opens (↑(↑X.toPresheafedSpace : TopCat) : Type u_1)
f : (↑(X.presheaf.obj (op U)) : Type u_1)
x : (↑(↑X.toPresheafedSpace : TopCat) : Type u_1)
hx : x ∈ U
h :
  IsUnit (M := (↑(X.presheaf.stalk x) : Type u_1))
    ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
            CommRingCat.carrier) (Y := X.presheaf.stalk x) (X.presheaf.germ U x hx) :
          (a : (↑(X.presheaf.obj (op U)) : Type u_1)) → (↑(X.presheaf.stalk x) : Type u_1))
        f :
      (↑(X.presheaf.stalk x) : Type u_1))
V : Opens (↑(↑X.toPresheafedSpace : TopCat) : Type u_1)
hxV : x ∈ V
g :
  ToType (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC := CommRingCat.carrier)
    (X.presheaf.obj (op V))
heq :
  HMul.hMul (α := (↑(X.presheaf.stalk x) : Type u_1)) (β := (↑(X.presheaf.stalk x) : Type u_1))
      ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
              CommRingCat.carrier) (Y := X.presheaf.stalk x) (X.presheaf.germ U x hx) :
            (a : (↑(X.presheaf.obj (op U)) : Type u_1)) → (↑(X.presheaf.stalk x) : Type u_1))
          f :
        (↑(X.presheaf.stalk x) : Type u_1))
      ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
              CommRingCat.carrier) (Y := X.presheaf.stalk x) (X.presheaf.germ V x hxV) :
            (a : (↑(X.presheaf.obj (op V)) : Type u_1)) → (↑(X.presheaf.stalk x) : Type u_1))
          g :
        (↑(X.presheaf.stalk x) : Type u_1)) =
    1
W : Opens (↑(↑X.toPresheafedSpace : TopCat) : Type u_1) := U ⊓ V
hxW : x ∈ W
rwa :
  HMul.hMul (α := (↑(X.presheaf.stalk x) : Type u_1)) (β := (↑(X.presheaf.stalk x) : Type u_1))
      ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
              CommRingCat.carrier) (Y := X.presheaf.stalk x) (X.presheaf.germ W x hxW) :
            (a : (↑(X.presheaf.obj (op W)) : Type u_1)) → (↑(X.presheaf.stalk x) : Type u_1))
          ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
                  CommRingCat.carrier) (X.presheaf.map (U.infLELeft V).op) :
                (a : (↑(X.presheaf.obj (op U)) : Type u_1)) → (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1))
              f :
            (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1)) :
        (↑(X.presheaf.stalk x) : Type u_1))
      ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
              CommRingCat.carrier) (Y := X.presheaf.stalk x) (X.presheaf.germ W x hxW) :
            (a : (↑(X.presheaf.obj (op W)) : Type u_1)) → (↑(X.presheaf.stalk x) : Type u_1))
          ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
                  CommRingCat.carrier) (X.presheaf.map (U.infLERight V).op) :
                (a : (↑(X.presheaf.obj (op V)) : Type u_1)) → (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1))
              g :
            (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1)) :
        (↑(X.presheaf.stalk x) : Type u_1)) =
    (ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
          CommRingCat.carrier) (Y := X.presheaf.stalk x) (X.presheaf.germ W x hxW) :
        (a : (↑(X.presheaf.obj (op W)) : Type u_1)) → (↑(X.presheaf.stalk x) : Type u_1))
      1
rwa₁ :
  HMul.hMul (α := (↑(X.presheaf.stalk x) : Type u_1)) (β := (↑(X.presheaf.stalk x) : Type u_1))
      ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
              CommRingCat.carrier) (Y := X.presheaf.stalk x) (X.presheaf.germ W x hxW) :
            (a : (↑(X.presheaf.obj (op W)) : Type u_1)) → (↑(X.presheaf.stalk x) : Type u_1))
          ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
                  CommRingCat.carrier) (X.presheaf.map (U.infLELeft V).op) :
                (a : (↑(X.presheaf.obj (op U)) : Type u_1)) → (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1))
              f :
            (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1)) :
        (↑(X.presheaf.stalk x) : Type u_1))
      ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
              CommRingCat.carrier) (Y := X.presheaf.stalk x) (X.presheaf.germ W x hxW) :
            (a : (↑(X.presheaf.obj (op W)) : Type u_1)) → (↑(X.presheaf.stalk x) : Type u_1))
          ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
                  CommRingCat.carrier) (X.presheaf.map (U.infLERight V).op) :
                (a : (↑(X.presheaf.obj (op V)) : Type u_1)) → (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1))
              g :
            (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1)) :
        (↑(X.presheaf.stalk x) : Type u_1)) =
    1
rwa₂ :
  HMul.hMul (α := (↑(X.presheaf.stalk x) : Type u_1)) (β := (↑(X.presheaf.stalk x) : Type u_1))
      ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
              CommRingCat.carrier) (Y := X.presheaf.stalk x) (X.presheaf.germ U x ⋯) :
            (a : (↑(X.presheaf.obj (op U)) : Type u_1)) → (↑(X.presheaf.stalk x) : Type u_1))
          f :
        (↑(X.presheaf.stalk x) : Type u_1))
      ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
              CommRingCat.carrier) (Y := X.presheaf.stalk x) (X.presheaf.germ W x hxW) :
            (a : (↑(X.presheaf.obj (op W)) : Type u_1)) → (↑(X.presheaf.stalk x) : Type u_1))
          ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
                  CommRingCat.carrier) (X.presheaf.map (U.infLERight V).op) :
                (a : (↑(X.presheaf.obj (op V)) : Type u_1)) → (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1))
              g :
            (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1)) :
        (↑(X.presheaf.stalk x) : Type u_1)) =
    1
rwa₃ rwa₄ rwa₅ rwa₆ :
  HMul.hMul (α := (↑(X.presheaf.stalk x) : Type u_1)) (β := (↑(X.presheaf.stalk x) : Type u_1))
      ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
              CommRingCat.carrier) (Y := X.presheaf.stalk x) (X.presheaf.germ U x ⋯) :
            (a : (↑(X.presheaf.obj (op U)) : Type u_1)) → (↑(X.presheaf.stalk x) : Type u_1))
          f :
        (↑(X.presheaf.stalk x) : Type u_1))
      ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
              ToType (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
                CommRingCat.carrier))
              (Y := X.presheaf.stalk x) (X.presheaf.germ V x ⋯) :
            (a : ToType (X.presheaf.obj (op V))) → ToType (X.presheaf.stalk x))
          g :
        ToType (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC := CommRingCat.carrier)
          (X.presheaf.stalk x)) =
    1
⊢ Eq (α := (↑(X.presheaf.stalk x) : Type u_1))
    ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
            CommRingCat.carrier) (Y := X.presheaf.stalk x) (X.presheaf.germ W x hxW) :
          (a : (↑(X.presheaf.obj (op W)) : Type u_1)) → (↑(X.presheaf.stalk x) : Type u_1))
        (HMul.hMul (α := (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1)) (β := (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1))
          ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
                  CommRingCat.carrier) (X.presheaf.map (U.infLELeft V).op) :
                (a : (↑(X.presheaf.obj (op U)) : Type u_1)) → (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1))
              f :
            (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1))
          ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
                  CommRingCat.carrier) (X.presheaf.map (U.infLERight V).op) :
                (a : (↑(X.presheaf.obj (op V)) : Type u_1)) → (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1))
              g :
            (↑(X.presheaf.obj (op (U ⊓ V))) : Type u_1))) :
      (↑(X.presheaf.stalk x) : Type u_1))
    ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
            CommRingCat.carrier) (Y := X.presheaf.stalk x) (X.presheaf.germ W x hxW) :
          (a : (↑(X.presheaf.obj (op W)) : Type u_1)) → (↑(X.presheaf.stalk x) : Type u_1))
        1 :
      (↑(X.presheaf.stalk x) : Type u_1))

Tactic:
rwa [map_mul, map_one, X.presheaf.germ_res_apply (Opens.infLELeft U V) x hxW f,
      X.presheaf.germ_res_apply (Opens.infLERight U V) x hxW g]

Premises used: TopCat.Presheaf.germ_res_apply, map_mul, map_one, AlgebraicGeometry.PresheafedSpace.presheaf, AlgebraicGeometry.SheafedSpace.toPresheafedSpace, TopologicalSpace.Opens.infLELeft, TopologicalSpace.Opens.infLERight