Theorem: AlgebraicGeometry.exists_eq_pow_mul_of_is_compact_of_quasi_separated_space_aux_aux
File: Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean

Proof steps:
state_before: X✝ Y : Scheme
f✝ : X✝ ⟶ Y
X : TopCat
F : TopCat.Presheaf CommRingCat X
U₁ U₂ U₃ U₄ U₅ U₆ U₇ : Opens ↑X
n₁ n₂ : ℕ
y₁ : ↑(F.obj (op U₁))
y₂ : ↑(F.obj (op U₂))
f : ↑(F.obj (op (U₁ ⊔ U₂)))
x : ↑(F.obj (op U₃))
h₄₁ : U₄ ≤ U₁
h₄₂ : U₄ ≤ U₂
h₅₁ : U₅ ≤ U₁
h₅₃ : U₅ ≤ U₃
h₆₂ : U₆ ≤ U₂
h₆₃ : U₆ ≤ U₃
h₇₄ : U₇ ≤ U₄
h₇₅ : U₇ ≤ U₅
h₇₆ : U₇ ≤ U₆
e₁ : (y₁ |_ U₅) h₅₁ = ((f |_ U₁) ⋯ |_ U₅) h₅₁ ^ n₁ * (x |_ U₅) h₅₃
e₂ : (y₂ |_ U₆) h₆₂ = ((f |_ U₂) ⋯ |_ U₆) h₆₂ ^ n₂ * (x |_ U₆) h₆₃
⊢ ((((f |_ U₁) ⋯ ^ n₂ * y₁) |_ U₄) h₄₁ |_ U₇) h₇₄ = ((((f |_ U₂) ⋯ ^ n₁ * y₂) |_ U₄) h₄₂ |_ U₇) h₇₄
state_after: X✝ Y : Scheme
f✝ : X✝ ⟶ Y
X : TopCat
F : TopCat.Presheaf CommRingCat X
U₁ U₂ U₃ U₄ U₅ U₆ U₇ : Opens ↑X
n₁ n₂ : ℕ
y₁ : ↑(F.obj (op U₁))
y₂ : ↑(F.obj (op U₂))
f : ↑(F.obj (op (U₁ ⊔ U₂)))
x : ↑(F.obj (op U₃))
h₄₁ : U₄ ≤ U₁
h₄₂ : U₄ ≤ U₂
h₅₁ : U₅ ≤ U₁
h₅₃ : U₅ ≤ U₃
h₆₂ : U₆ ≤ U₂
h₆₃ : U₆ ≤ U₃
h₇₄ : U₇ ≤ U₄
h₇₅ : U₇ ≤ U₅
h₇₆ : U₇ ≤ U₆
e₂ : (y₂ |_ U₆) h₆₂ = ((f |_ U₂) ⋯ |_ U₆) h₆₂ ^ n₂ * (x |_ U₆) h₆₃
e₁ : ((y₁ |_ U₅) h₅₁ |_ U₇) h₇₅ = ((((f |_ U₁) ⋯ |_ U₅) h₅₁ ^ n₁ * (x |_ U₅) h₅₃) |_ U₇) h₇₅
⊢ ((((f |_ U₁) ⋯ ^ n₂ * y₁) |_ U₄) h₄₁ |_ U₇) h₇₄ = ((((f |_ U₂) ⋯ ^ n₁ * y₂) |_ U₄) h₄₂ |_ U₇) h₇₄
tactic: apply_fun (fun x : F.obj (op U₅) ↦ x |_ U₇) at e₁
state_before: X✝ Y : Scheme
f✝ : X✝ ⟶ Y
X : TopCat
F : TopCat.Presheaf CommRingCat X
U₁ U₂ U₃ U₄ U₅ U₆ U₇ : Opens ↑X
n₁ n₂ : ℕ
y₁ : ↑(F.obj (op U₁))
y₂ : ↑(F.obj (op U₂))
f : ↑(F.obj (op (U₁ ⊔ U₂)))
x : ↑(F.obj (op U₃))
h₄₁ : U₄ ≤ U₁
h₄₂ : U₄ ≤ U₂
h₅₁ : U₅ ≤ U₁
h₅₃ : U₅ ≤ U₃
h₆₂ : U₆ ≤ U₂
h₆₃ : U₆ ≤ U₃
h₇₄ : U₇ ≤ U₄
h₇₅ : U₇ ≤ U₅
h₇₆ : U₇ ≤ U₆
e₂ : (y₂ |_ U₆) h₆₂ = ((f |_ U₂) ⋯ |_ U₆) h₆₂ ^ n₂ * (x |_ U₆) h₆₃
e₁ : ((y₁ |_ U₅) h₅₁ |_ U₇) h₇₅ = ((((f |_ U₁) ⋯ |_ U₅) h₅₁ ^ n₁ * (x |_ U₅) h₅₃) |_ U₇) h₇₅
⊢ ((((f |_ U₁) ⋯ ^ n₂ * y₁) |_ U₄) h₄₁ |_ U₇) h₇₄ = ((((f |_ U₂) ⋯ ^ n₁ * y₂) |_ U₄) h₄₂ |_ U₇) h₇₄
state_after: X✝ Y : Scheme
f✝ : X✝ ⟶ Y
X : TopCat
F : TopCat.Presheaf CommRingCat X
U₁ U₂ U₃ U₄ U₅ U₆ U₇ : Opens ↑X
n₁ n₂ : ℕ
y₁ : ↑(F.obj (op U₁))
y₂ : ↑(F.obj (op U₂))
f : ↑(F.obj (op (U₁ ⊔ U₂)))
x : ↑(F.obj (op U₃))
h₄₁ : U₄ ≤ U₁
h₄₂ : U₄ ≤ U₂
h₅₁ : U₅ ≤ U₁
h₅₃ : U₅ ≤ U₃
h₆₂ : U₆ ≤ U₂
h₆₃ : U₆ ≤ U₃
h₇₄ : U₇ ≤ U₄
h₇₅ : U₇ ≤ U₅
h₇₆ : U₇ ≤ U₆
e₁ : ((y₁ |_ U₅) h₅₁ |_ U₇) h₇₅ = ((((f |_ U₁) ⋯ |_ U₅) h₅₁ ^ n₁ * (x |_ U₅) h₅₃) |_ U₇) h₇₅
e₂ : ((y₂ |_ U₆) h₆₂ |_ U₇) h₇₆ = ((((f |_ U₂) ⋯ |_ U₆) h₆₂ ^ n₂ * (x |_ U₆) h₆₃) |_ U₇) h₇₆
⊢ ((((f |_ U₁) ⋯ ^ n₂ * y₁) |_ U₄) h₄₁ |_ U₇) h₇₄ = ((((f |_ U₂) ⋯ ^ n₁ * y₂) |_ U₄) h₄₂ |_ U₇) h₇₄
tactic: apply_fun (fun x : F.obj (op U₆) ↦ x |_ U₇) at e₂
state_before: X✝ Y : Scheme
f✝ : X✝ ⟶ Y
X : TopCat
F : TopCat.Presheaf CommRingCat X
U₁ U₂ U₃ U₄ U₅ U₆ U₇ : Opens ↑X
n₁ n₂ : ℕ
y₁ : ↑(F.obj (op U₁))
y₂ : ↑(F.obj (op U₂))
f : ↑(F.obj (op (U₁ ⊔ U₂)))
x : ↑(F.obj (op U₃))
h₄₁ : U₄ ≤ U₁
h₄₂ : U₄ ≤ U₂
h₅₁ : U₅ ≤ U₁
h₅₃ : U₅ ≤ U₃
h₆₂ : U₆ ≤ U₂
h₆₃ : U₆ ≤ U₃
h₇₄ : U₇ ≤ U₄
h₇₅ : U₇ ≤ U₅
h₇₆ : U₇ ≤ U₆
e₁ : ((y₁ |_ U₅) h₅₁ |_ U₇) h₇₅ = ((((f |_ U₁) ⋯ |_ U₅) h₅₁ ^ n₁ * (x |_ U₅) h₅₃) |_ U₇) h₇₅
e₂ : ((y₂ |_ U₆) h₆₂ |_ U₇) h₇₆ = ((((f |_ U₂) ⋯ |_ U₆) h₆₂ ^ n₂ * (x |_ U₆) h₆₃) |_ U₇) h₇₆
⊢ ((((f |_ U₁) ⋯ ^ n₂ * y₁) |_ U₄) h₄₁ |_ U₇) h₇₄ = ((((f |_ U₂) ⋯ ^ n₁ * y₂) |_ U₄) h₄₂ |_ U₇) h₇₄
state_after: X✝ Y : Scheme
f✝ : X✝ ⟶ Y
X : TopCat
F : TopCat.Presheaf CommRingCat X
U₁ U₂ U₃ U₄ U₅ U₆ U₇ : Opens ↑X
n₁ n₂ : ℕ
y₁ : ↑(F.obj (op U₁))
y₂ : ↑(F.obj (op U₂))
f : ↑(F.obj (op (U₁ ⊔ U₂)))
x : ↑(F.obj (op U₃))
h₄₁ : U₄ ≤ U₁
h₄₂ : U₄ ≤ U₂
h₅₁ : U₅ ≤ U₁
h₅₃ : U₅ ≤ U₃
h₆₂ : U₆ ≤ U₂
h₆₃ : U₆ ≤ U₃
h₇₄ : U₇ ≤ U₄
h₇₅ : U₇ ≤ U₅
h₇₆ : U₇ ≤ U₆
e₁ :
  (F.map (homOfLE h₇₅).op) ((F.map (homOfLE h₅₁).op) y₁) =
    (F.map (homOfLE h₇₅).op) ((F.map (homOfLE h₅₁).op) ((F.map (homOfLE ⋯).op) f) ^ n₁ * (F.map (homOfLE h₅₃).op) x)
e₂ :
  (F.map (homOfLE h₇₆).op) ((F.map (homOfLE h₆₂).op) y₂) =
    (F.map (homOfLE h₇₆).op) ((F.map (homOfLE h₆₂).op) ((F.map (homOfLE ⋯).op) f) ^ n₂ * (F.map (homOfLE h₆₃).op) x)
⊢ (F.map (homOfLE h₇₄).op) ((F.map (homOfLE h₄₁).op) ((F.map (homOfLE ⋯).op) f ^ n₂ * y₁)) =
    (F.map (homOfLE h₇₄).op) ((F.map (homOfLE h₄₂).op) ((F.map (homOfLE ⋯).op) f ^ n₁ * y₂))
tactic: dsimp only [TopCat.Presheaf.restrictOpen, TopCat.Presheaf.restrict] at e₁ e₂ ⊢
state_before: X✝ Y : Scheme
f✝ : X✝ ⟶ Y
X : TopCat
F : TopCat.Presheaf CommRingCat X
U₁ U₂ U₃ U₄ U₅ U₆ U₇ : Opens ↑X
n₁ n₂ : ℕ
y₁ : ↑(F.obj (op U₁))
y₂ : ↑(F.obj (op U₂))
f : ↑(F.obj (op (U₁ ⊔ U₂)))
x : ↑(F.obj (op U₃))
h₄₁ : U₄ ≤ U₁
h₄₂ : U₄ ≤ U₂
h₅₁ : U₅ ≤ U₁
h₅₃ : U₅ ≤ U₃
h₆₂ : U₆ ≤ U₂
h₆₃ : U₆ ≤ U₃
h₇₄ : U₇ ≤ U₄
h₇₅ : U₇ ≤ U₅
h₇₆ : U₇ ≤ U₆
e₁ :
  (F.map (homOfLE h₇₅).op) ((F.map (homOfLE h₅₁).op) y₁) =
    (F.map (homOfLE h₇₅).op) ((F.map (homOfLE h₅₁).op) ((F.map (homOfLE ⋯).op) f) ^ n₁ * (F.map (homOfLE h₅₃).op) x)
e₂ :
  (F.map (homOfLE h₇₆).op) ((F.map (homOfLE h₆₂).op) y₂) =
    (F.map (homOfLE h₇₆).op) ((F.map (homOfLE h₆₂).op) ((F.map (homOfLE ⋯).op) f) ^ n₂ * (F.map (homOfLE h₆₃).op) x)
⊢ (F.map (homOfLE h₇₄).op) ((F.map (homOfLE h₄₁).op) ((F.map (homOfLE ⋯).op) f ^ n₂ * y₁)) =
    (F.map (homOfLE h₇₄).op) ((F.map (homOfLE h₄₂).op) ((F.map (homOfLE ⋯).op) f ^ n₁ * y₂))
state_after: X✝ Y : Scheme
f✝ : X✝ ⟶ Y
X : TopCat
F : TopCat.Presheaf CommRingCat X
U₁ U₂ U₃ U₄ U₅ U₆ U₇ : Opens ↑X
n₁ n₂ : ℕ
y₁ : ↑(F.obj (op U₁))
y₂ : ↑(F.obj (op U₂))
f : ↑(F.obj (op (U₁ ⊔ U₂)))
x : ↑(F.obj (op U₃))
h₄₁ : U₄ ≤ U₁
h₄₂ : U₄ ≤ U₂
h₅₁ : U₅ ≤ U₁
h₅₃ : U₅ ≤ U₃
h₆₂ : U₆ ≤ U₂
h₆₃ : U₆ ≤ U₃
h₇₄ : U₇ ≤ U₄
h₇₅ : U₇ ≤ U₅
h₇₆ : U₇ ≤ U₆
e₁ : (F.map (homOfLE ⋯).op) y₁ = (F.map (homOfLE ⋯).op) f ^ n₁ * (F.map (homOfLE ⋯).op) x
e₂ : (F.map (homOfLE ⋯).op) y₂ = (F.map (homOfLE ⋯).op) f ^ n₂ * (F.map (homOfLE ⋯).op) x
⊢ (F.map (homOfLE ⋯).op) f ^ n₂ * (F.map (homOfLE ⋯).op) y₁ = (F.map (homOfLE ⋯).op) f ^ n₁ * (F.map (homOfLE ⋯).op) y₂
tactic: simp only [map_mul, map_pow, ← comp_apply, ← op_comp, ← F.map_comp, homOfLE_comp] at e₁ e₂ ⊢
state_before: X✝ Y : Scheme
f✝ : X✝ ⟶ Y
X : TopCat
F : TopCat.Presheaf CommRingCat X
U₁ U₂ U₃ U₄ U₅ U₆ U₇ : Opens ↑X
n₁ n₂ : ℕ
y₁ : ↑(F.obj (op U₁))
y₂ : ↑(F.obj (op U₂))
f : ↑(F.obj (op (U₁ ⊔ U₂)))
x : ↑(F.obj (op U₃))
h₄₁ : U₄ ≤ U₁
h₄₂ : U₄ ≤ U₂
h₅₁ : U₅ ≤ U₁
h₅₃ : U₅ ≤ U₃
h₆₂ : U₆ ≤ U₂
h₆₃ : U₆ ≤ U₃
h₇₄ : U₇ ≤ U₄
h₇₅ : U₇ ≤ U₅
h₇₆ : U₇ ≤ U₆
e₁ : (F.map (homOfLE ⋯).op) y₁ = (F.map (homOfLE ⋯).op) f ^ n₁ * (F.map (homOfLE ⋯).op) x
e₂ : (F.map (homOfLE ⋯).op) y₂ = (F.map (homOfLE ⋯).op) f ^ n₂ * (F.map (homOfLE ⋯).op) x
⊢ (F.map (homOfLE ⋯).op) f ^ n₂ * (F.map (homOfLE ⋯).op) y₁ = (F.map (homOfLE ⋯).op) f ^ n₁ * (F.map (homOfLE ⋯).op) y₂
state_after: no goals
tactic: rw [e₁, e₂, mul_left_comm]