Theorem: AlgebraicGeometry.Scheme.OpenCover.pullbackCoverAffineRefinementObjIso_inv_map
File: Mathlib/AlgebraicGeometry/Cover/Open.lean

Proof steps:
state_before: X Y Z : Scheme
𝒰✝ : X.OpenCover
f✝ : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f✝) g
f : X ⟶ Y
𝒰 : Y.OpenCover
i : (𝒰.affineRefinement.openCover.pullbackCover f).J
⊢ (pullbackCoverAffineRefinementObjIso f 𝒰 i).inv ≫ (𝒰.affineRefinement.openCover.pullbackCover f).map i =
    ((𝒰.obj i.fst).affineCover.pullbackCover (𝒰.pullbackHom f i.fst)).map i.snd ≫ (𝒰.pullbackCover f).map i.fst
state_after: X Y Z : Scheme
𝒰✝ : X.OpenCover
f✝ : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f✝) g
f : X ⟶ Y
𝒰 : Y.OpenCover
i : (𝒰.affineRefinement.openCover.pullbackCover f).J
⊢ (pullbackSymmetry ((𝒰.obj i.fst).affineCover.map i.snd) (pullback.fst (𝒰.map i.fst) f)).inv ≫
      (pullbackRightPullbackFstIso (𝒰.map i.fst) f ((𝒰.obj i.fst).affineCover.map i.snd)).hom ≫
        pullback.snd (𝒰.affineRefinement.map i) f =
    pullback.fst (pullback.fst (𝒰.map i.fst) f) ((𝒰.obj i.fst).affineCover.map i.snd) ≫ pullback.snd (𝒰.map i.fst) f
tactic: simp only [pullbackCover_obj, AffineOpenCover.openCover_obj, AffineOpenCover.openCover_map,
    pullbackCoverAffineRefinementObjIso, Iso.trans_inv, asIso_inv, Iso.symm_inv, Category.assoc,
    pullbackCover_map, pullbackSymmetry_inv_comp_fst, IsIso.inv_comp_eq, limit.lift_π_assoc, id_eq,
    PullbackCone.mk_pt, cospan_left, PullbackCone.mk_π_app, pullbackSymmetry_hom_comp_fst]
state_before: X Y Z : Scheme
𝒰✝ : X.OpenCover
f✝ : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f✝) g
f : X ⟶ Y
𝒰 : Y.OpenCover
i : (𝒰.affineRefinement.openCover.pullbackCover f).J
⊢ (pullbackSymmetry ((𝒰.obj i.fst).affineCover.map i.snd) (pullback.fst (𝒰.map i.fst) f)).inv ≫
      (pullbackRightPullbackFstIso (𝒰.map i.fst) f ((𝒰.obj i.fst).affineCover.map i.snd)).hom ≫
        pullback.snd (𝒰.affineRefinement.map i) f =
    pullback.fst (pullback.fst (𝒰.map i.fst) f) ((𝒰.obj i.fst).affineCover.map i.snd) ≫ pullback.snd (𝒰.map i.fst) f
state_after: case h.e'_2.h.h.e'_7
X Y Z : Scheme
𝒰✝ : X.OpenCover
f✝ : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f✝) g
f : X ⟶ Y
𝒰 : Y.OpenCover
i : (𝒰.affineRefinement.openCover.pullbackCover f).J
e_1✝ :
  (pullback (pullback.fst (𝒰.map i.fst) f) ((𝒰.obj i.fst).affineCover.map i.snd) ⟶ X) =
    (pullback (pullback.fst (𝒰.map i.fst) f) ((𝒰.obj i.fst).affineCover.map i.snd) ⟶ X)
⊢ (pullbackRightPullbackFstIso (𝒰.map i.fst) f ((𝒰.obj i.fst).affineCover.map i.snd)).hom ≫
      pullback.snd (𝒰.affineRefinement.map i) f =
    pullback.snd ((𝒰.obj i.fst).affineCover.map i.snd) (pullback.fst (𝒰.map i.fst) f) ≫ pullback.snd (𝒰.map i.fst) f
tactic: convert pullbackSymmetry_inv_comp_snd_assoc
    ((𝒰.obj i.1).affineCover.map i.2) (pullback.fst _ _) _ using 2
state_before: case h.e'_2.h.h.e'_7
X Y Z : Scheme
𝒰✝ : X.OpenCover
f✝ : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f✝) g
f : X ⟶ Y
𝒰 : Y.OpenCover
i : (𝒰.affineRefinement.openCover.pullbackCover f).J
e_1✝ :
  (pullback (pullback.fst (𝒰.map i.fst) f) ((𝒰.obj i.fst).affineCover.map i.snd) ⟶ X) =
    (pullback (pullback.fst (𝒰.map i.fst) f) ((𝒰.obj i.fst).affineCover.map i.snd) ⟶ X)
⊢ (pullbackRightPullbackFstIso (𝒰.map i.fst) f ((𝒰.obj i.fst).affineCover.map i.snd)).hom ≫
      pullback.snd (𝒰.affineRefinement.map i) f =
    pullback.snd ((𝒰.obj i.fst).affineCover.map i.snd) (pullback.fst (𝒰.map i.fst) f) ≫ pullback.snd (𝒰.map i.fst) f
state_after: no goals
tactic: exact pullbackRightPullbackFstIso_hom_snd _ _ _