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

tactic: rw [quasiSeparatedSpace_iff]
state_before: X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
⊢ QuasiSeparatedSpace ↑↑X.toPresheafedSpace ↔ ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
state_after: X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
⊢ (∀ (U V : Set ↑↑X.toPresheafedSpace), IsOpen U → IsCompact U → IsOpen V → IsCompact V → IsCompact (U ∩ V)) ↔
    ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)

tactic: constructor
state_before: X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
⊢ (∀ (U V : Set ↑↑X.toPresheafedSpace), IsOpen U → IsCompact U → IsOpen V → IsCompact V → IsCompact (U ∩ V)) ↔
    ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
state_after: case mp
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
⊢ (∀ (U V : Set ↑↑X.toPresheafedSpace), IsOpen U → IsCompact U → IsOpen V → IsCompact V → IsCompact (U ∩ V)) →
    ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)

case mpr
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
⊢ (∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)) →
    ∀ (U V : Set ↑↑X.toPresheafedSpace), IsOpen U → IsCompact U → IsOpen V → IsCompact V → IsCompact (U ∩ V)

tactic: intro H U V
state_before: case mp
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
⊢ (∀ (U V : Set ↑↑X.toPresheafedSpace), IsOpen U → IsCompact U → IsOpen V → IsCompact V → IsCompact (U ∩ V)) →
    ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
state_after: case mp
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : Set ↑↑X.toPresheafedSpace), IsOpen U → IsCompact U → IsOpen V → IsCompact V → IsCompact (U ∩ V)
U V : ↑X.affineOpens
⊢ IsCompact (↑↑U ∩ ↑↑V)

tactic: exact H U V U.1.2 U.2.isCompact V.1.2 V.2.isCompact
state_before: case mp
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : Set ↑↑X.toPresheafedSpace), IsOpen U → IsCompact U → IsOpen V → IsCompact V → IsCompact (U ∩ V)
U V : ↑X.affineOpens
⊢ IsCompact (↑↑U ∩ ↑↑V)
state_after: no goals

tactic: intro H
state_before: case mpr
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
⊢ (∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)) →
    ∀ (U V : Set ↑↑X.toPresheafedSpace), IsOpen U → IsCompact U → IsOpen V → IsCompact V → IsCompact (U ∩ V)
state_after: case mpr
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
⊢ ∀ (U V : Set ↑↑X.toPresheafedSpace), IsOpen U → IsCompact U → IsOpen V → IsCompact V → IsCompact (U ∩ V)

tactic: suffices
  ∀ (U : Opens X) (_ : IsCompact U.1) (V : Opens X) (_ : IsCompact V.1),
    IsCompact (U ⊓ V).1
  by intro U V hU hU' hV hV'; exact this ⟨U, hU⟩ hU' ⟨V, hV⟩ hV'
state_before: case mpr
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
⊢ ∀ (U V : Set ↑↑X.toPresheafedSpace), IsOpen U → IsCompact U → IsOpen V → IsCompact V → IsCompact (U ∩ V)
state_after: case mpr
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
⊢ ∀ (U : Opens ↑↑X.toPresheafedSpace),
    IsCompact U.carrier → ∀ (V : Opens ↑↑X.toPresheafedSpace), IsCompact V.carrier → IsCompact (U ⊓ V).carrier

tactic: intro U hU V hV
state_before: case mpr
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
⊢ ∀ (U : Opens ↑↑X.toPresheafedSpace),
    IsCompact U.carrier → ∀ (V : Opens ↑↑X.toPresheafedSpace), IsCompact V.carrier → IsCompact (U ⊓ V).carrier
state_after: case mpr
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V.carrier
⊢ IsCompact (U ⊓ V).carrier

tactic: apply compact_open_induction_on (P := _) V hV
state_before: case mpr
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V.carrier
⊢ IsCompact (U ⊓ V).carrier
state_after: case mpr.h₁
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V.carrier
⊢ IsCompact (U ⊓ ⊥).carrier

case mpr.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V.carrier
⊢ ∀ (S : Opens ↑↑X.toPresheafedSpace),
    IsCompact S.carrier → ∀ (U_1 : ↑X.affineOpens), IsCompact (U ⊓ S).carrier → IsCompact (U ⊓ (S ⊔ ↑U_1)).carrier

tactic: intro U V hU hU' hV hV'
state_before: X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
this :
  ∀ (U : Opens ↑↑X.toPresheafedSpace),
    IsCompact U.carrier → ∀ (V : Opens ↑↑X.toPresheafedSpace), IsCompact V.carrier → IsCompact (U ⊓ V).carrier
⊢ ∀ (U V : Set ↑↑X.toPresheafedSpace), IsOpen U → IsCompact U → IsOpen V → IsCompact V → IsCompact (U ∩ V)
state_after: X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
this :
  ∀ (U : Opens ↑↑X.toPresheafedSpace),
    IsCompact U.carrier → ∀ (V : Opens ↑↑X.toPresheafedSpace), IsCompact V.carrier → IsCompact (U ⊓ V).carrier
U V : Set ↑↑X.toPresheafedSpace
hU : IsOpen U
hU' : IsCompact U
hV : IsOpen V
hV' : IsCompact V
⊢ IsCompact (U ∩ V)

tactic: exact this ⟨U, hU⟩ hU' ⟨V, hV⟩ hV'
state_before: X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
this :
  ∀ (U : Opens ↑↑X.toPresheafedSpace),
    IsCompact U.carrier → ∀ (V : Opens ↑↑X.toPresheafedSpace), IsCompact V.carrier → IsCompact (U ⊓ V).carrier
U V : Set ↑↑X.toPresheafedSpace
hU : IsOpen U
hU' : IsCompact U
hV : IsOpen V
hV' : IsCompact V
⊢ IsCompact (U ∩ V)
state_after: no goals

tactic: simp
state_before: case mpr.h₁
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V.carrier
⊢ IsCompact (U ⊓ ⊥).carrier
state_after: no goals

tactic: intro S _ V hV
state_before: case mpr.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V.carrier
⊢ ∀ (S : Opens ↑↑X.toPresheafedSpace),
    IsCompact S.carrier → ∀ (U_1 : ↑X.affineOpens), IsCompact (U ⊓ S).carrier → IsCompact (U ⊓ (S ⊔ ↑U_1)).carrier
state_after: case mpr.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV✝ : IsCompact V✝.carrier
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
V : ↑X.affineOpens
hV : IsCompact (U ⊓ S).carrier
⊢ IsCompact (U ⊓ (S ⊔ ↑V)).carrier

tactic: change IsCompact (U.1 ∩ (S.1 ∪ V.1))
state_before: case mpr.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV✝ : IsCompact V✝.carrier
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
V : ↑X.affineOpens
hV : IsCompact (U ⊓ S).carrier
⊢ IsCompact (U ⊓ (S ⊔ ↑V)).carrier
state_after: case mpr.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV✝ : IsCompact V✝.carrier
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
V : ↑X.affineOpens
hV : IsCompact (U ⊓ S).carrier
⊢ IsCompact (U.carrier ∩ (S.carrier ∪ ↑↑V))

tactic: rw [Set.inter_union_distrib_left]
state_before: case mpr.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV✝ : IsCompact V✝.carrier
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
V : ↑X.affineOpens
hV : IsCompact (U ⊓ S).carrier
⊢ IsCompact (U.carrier ∩ (S.carrier ∪ ↑↑V))
state_after: case mpr.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV✝ : IsCompact V✝.carrier
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
V : ↑X.affineOpens
hV : IsCompact (U ⊓ S).carrier
⊢ IsCompact (U.carrier ∩ S.carrier ∪ U.carrier ∩ ↑↑V)

tactic: apply hV.union
state_before: case mpr.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV✝ : IsCompact V✝.carrier
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
V : ↑X.affineOpens
hV : IsCompact (U ⊓ S).carrier
⊢ IsCompact (U.carrier ∩ S.carrier ∪ U.carrier ∩ ↑↑V)
state_after: case mpr.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV✝ : IsCompact V✝.carrier
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
V : ↑X.affineOpens
hV : IsCompact (U ⊓ S).carrier
⊢ IsCompact (U.carrier ∩ ↑↑V)

tactic: clear hV
state_before: case mpr.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV✝ : IsCompact V✝.carrier
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
V : ↑X.affineOpens
hV : IsCompact (U ⊓ S).carrier
⊢ IsCompact (U.carrier ∩ ↑↑V)
state_after: case mpr.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V✝.carrier
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
V : ↑X.affineOpens
⊢ IsCompact (U.carrier ∩ ↑↑V)

tactic: apply compact_open_induction_on (P := _) U hU
state_before: case mpr.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V✝.carrier
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
V : ↑X.affineOpens
⊢ IsCompact (U.carrier ∩ ↑↑V)
state_after: case mpr.h₂.h₁
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V✝.carrier
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
V : ↑X.affineOpens
⊢ IsCompact (⊥.carrier ∩ ↑↑V)

case mpr.h₂.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V✝.carrier
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
V : ↑X.affineOpens
⊢ ∀ (S : Opens ↑↑X.toPresheafedSpace),
    IsCompact S.carrier → ∀ (U : ↑X.affineOpens), IsCompact (S.carrier ∩ ↑↑V) → IsCompact ((S ⊔ ↑U).carrier ∩ ↑↑V)

tactic: simp
state_before: case mpr.h₂.h₁
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V✝.carrier
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
V : ↑X.affineOpens
⊢ IsCompact (⊥.carrier ∩ ↑↑V)
state_after: no goals

tactic: intro S _ W hW
state_before: case mpr.h₂.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V✝.carrier
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
V : ↑X.affineOpens
⊢ ∀ (S : Opens ↑↑X.toPresheafedSpace),
    IsCompact S.carrier → ∀ (U : ↑X.affineOpens), IsCompact (S.carrier ∩ ↑↑V) → IsCompact ((S ⊔ ↑U).carrier ∩ ↑↑V)
state_after: case mpr.h₂.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V✝.carrier
S✝ : Opens ↑↑X.toPresheafedSpace
x✝¹ : IsCompact S✝.carrier
V : ↑X.affineOpens
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
W : ↑X.affineOpens
hW : IsCompact (S.carrier ∩ ↑↑V)
⊢ IsCompact ((S ⊔ ↑W).carrier ∩ ↑↑V)

tactic: change IsCompact ((S.1 ∪ W.1) ∩ V.1)
state_before: case mpr.h₂.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V✝.carrier
S✝ : Opens ↑↑X.toPresheafedSpace
x✝¹ : IsCompact S✝.carrier
V : ↑X.affineOpens
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
W : ↑X.affineOpens
hW : IsCompact (S.carrier ∩ ↑↑V)
⊢ IsCompact ((S ⊔ ↑W).carrier ∩ ↑↑V)
state_after: case mpr.h₂.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V✝.carrier
S✝ : Opens ↑↑X.toPresheafedSpace
x✝¹ : IsCompact S✝.carrier
V : ↑X.affineOpens
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
W : ↑X.affineOpens
hW : IsCompact (S.carrier ∩ ↑↑V)
⊢ IsCompact ((S.carrier ∪ ↑↑W) ∩ ↑↑V)

tactic: rw [Set.union_inter_distrib_right]
state_before: case mpr.h₂.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V✝.carrier
S✝ : Opens ↑↑X.toPresheafedSpace
x✝¹ : IsCompact S✝.carrier
V : ↑X.affineOpens
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
W : ↑X.affineOpens
hW : IsCompact (S.carrier ∩ ↑↑V)
⊢ IsCompact ((S.carrier ∪ ↑↑W) ∩ ↑↑V)
state_after: case mpr.h₂.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V✝.carrier
S✝ : Opens ↑↑X.toPresheafedSpace
x✝¹ : IsCompact S✝.carrier
V : ↑X.affineOpens
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
W : ↑X.affineOpens
hW : IsCompact (S.carrier ∩ ↑↑V)
⊢ IsCompact (S.carrier ∩ ↑↑V ∪ ↑↑W ∩ ↑↑V)

tactic: apply hW.union
state_before: case mpr.h₂.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V✝.carrier
S✝ : Opens ↑↑X.toPresheafedSpace
x✝¹ : IsCompact S✝.carrier
V : ↑X.affineOpens
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
W : ↑X.affineOpens
hW : IsCompact (S.carrier ∩ ↑↑V)
⊢ IsCompact (S.carrier ∩ ↑↑V ∪ ↑↑W ∩ ↑↑V)
state_after: case mpr.h₂.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V✝.carrier
S✝ : Opens ↑↑X.toPresheafedSpace
x✝¹ : IsCompact S✝.carrier
V : ↑X.affineOpens
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
W : ↑X.affineOpens
hW : IsCompact (S.carrier ∩ ↑↑V)
⊢ IsCompact (↑↑W ∩ ↑↑V)

tactic: apply H
state_before: case mpr.h₂.h₂
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
H : ∀ (U V : ↑X.affineOpens), IsCompact (↑↑U ∩ ↑↑V)
U : Opens ↑↑X.toPresheafedSpace
hU : IsCompact U.carrier
V✝ : Opens ↑↑X.toPresheafedSpace
hV : IsCompact V✝.carrier
S✝ : Opens ↑↑X.toPresheafedSpace
x✝¹ : IsCompact S✝.carrier
V : ↑X.affineOpens
S : Opens ↑↑X.toPresheafedSpace
x✝ : IsCompact S.carrier
W : ↑X.affineOpens
hW : IsCompact (S.carrier ∩ ↑↑V)
⊢ IsCompact (↑↑W ∩ ↑↑V)
state_after: no goals