Theorem: AlgebraicGeometry.Scheme.Pullback.t_id
File: Mathlib/AlgebraicGeometry/Pullbacks.lean

tactic: apply pullback.hom_ext <;> rw [Category.id_comp]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i : 𝒰.J
⊢ t 𝒰 f g i i = 𝟙 (v 𝒰 f g i i)
state_after: case h₀
C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i : 𝒰.J
⊢ t 𝒰 f g i i ≫ pullback.fst = pullback.fst

case h₁
C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i : 𝒰.J
⊢ t 𝒰 f g i i ≫ pullback.snd = pullback.snd

tactic: apply pullback.hom_ext
state_before: case h₀
C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i : 𝒰.J
⊢ t 𝒰 f g i i ≫ pullback.fst = pullback.fst
state_after: case h₀.h₀
C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i : 𝒰.J
⊢ (t 𝒰 f g i i ≫ pullback.fst) ≫ pullback.fst = pullback.fst ≫ pullback.fst

case h₀.h₁
C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i : 𝒰.J
⊢ (t 𝒰 f g i i ≫ pullback.fst) ≫ pullback.snd = pullback.fst ≫ pullback.snd

tactic: rw [← cancel_mono (𝒰.map i)]
state_before: case h₀.h₀
C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i : 𝒰.J
⊢ (t 𝒰 f g i i ≫ pullback.fst) ≫ pullback.fst = pullback.fst ≫ pullback.fst
state_after: case h₀.h₀
C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i : 𝒰.J
⊢ ((t 𝒰 f g i i ≫ pullback.fst) ≫ pullback.fst) ≫ 𝒰.map i = (pullback.fst ≫ pullback.fst) ≫ 𝒰.map i

tactic: simp only [pullback.condition, Category.assoc, t_fst_fst]
state_before: case h₀.h₀
C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i : 𝒰.J
⊢ ((t 𝒰 f g i i ≫ pullback.fst) ≫ pullback.fst) ≫ 𝒰.map i = (pullback.fst ≫ pullback.fst) ≫ 𝒰.map i
state_after: no goals

tactic: simp only [Category.assoc, t_fst_snd]
state_before: case h₀.h₁
C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i : 𝒰.J
⊢ (t 𝒰 f g i i ≫ pullback.fst) ≫ pullback.snd = pullback.fst ≫ pullback.snd
state_after: no goals

tactic: rw [← cancel_mono (𝒰.map i)]
state_before: case h₁
C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i : 𝒰.J
⊢ t 𝒰 f g i i ≫ pullback.snd = pullback.snd
state_after: case h₁
C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i : 𝒰.J
⊢ (t 𝒰 f g i i ≫ pullback.snd) ≫ 𝒰.map i = pullback.snd ≫ 𝒰.map i

tactic: simp only [pullback.condition, t_snd, Category.assoc]
state_before: case h₁
C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i : 𝒰.J
⊢ (t 𝒰 f g i i ≫ pullback.snd) ≫ 𝒰.map i = pullback.snd ≫ 𝒰.map i
state_after: no goals