Theorem: AlgebraicGeometry.compact_open_induction_on
File: Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean

tactic: obtain ⟨s, hs, hs'⟩ := (isCompactOpen_iff_eq_finset_affine_union S.1).mp ⟨hS, S.2⟩
state_before: X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
S : Opens ↑↑X.toPresheafedSpace
hS : IsCompact S.carrier
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
⊢ P S
state_after: case intro.intro
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
S : Opens ↑↑X.toPresheafedSpace
hS : IsCompact S.carrier
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hs' : S.carrier = ⋃ i ∈ s, ↑↑i
⊢ P S

tactic: replace hs' : S = iSup fun i : s => (i : Opens X) := by ext1; simpa using hs'
state_before: case intro.intro
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
S : Opens ↑↑X.toPresheafedSpace
hS : IsCompact S.carrier
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hs' : S.carrier = ⋃ i ∈ s, ↑↑i
⊢ P S
state_after: case intro.intro
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
S : Opens ↑↑X.toPresheafedSpace
hS : IsCompact S.carrier
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hs' : S = ⨆ i, ↑↑i
⊢ P S

tactic: subst hs'
state_before: case intro.intro
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
S : Opens ↑↑X.toPresheafedSpace
hS : IsCompact S.carrier
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hs' : S = ⨆ i, ↑↑i
⊢ P S
state_after: case intro.intro
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
⊢ P (⨆ i, ↑↑i)

tactic: apply @Set.Finite.induction_on _ _ _ hs
state_before: case intro.intro
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
⊢ P (⨆ i, ↑↑i)
state_after: case intro.intro.H0
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
⊢ P (⨆ i, ↑↑i)

case intro.intro.H1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
⊢ ∀ {a : ↑X.affineOpens} {s : Set ↑X.affineOpens}, a ∉ s → s.Finite → P (⨆ i, ↑↑i) → P (⨆ i, ↑↑i)

tactic: ext1
state_before: X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
S : Opens ↑↑X.toPresheafedSpace
hS : IsCompact S.carrier
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hs' : S.carrier = ⋃ i ∈ s, ↑↑i
⊢ S = ⨆ i, ↑↑i
state_after: case h
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
S : Opens ↑↑X.toPresheafedSpace
hS : IsCompact S.carrier
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hs' : S.carrier = ⋃ i ∈ s, ↑↑i
⊢ ↑S = ↑(⨆ i, ↑↑i)

tactic: simpa using hs'
state_before: case h
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
S : Opens ↑↑X.toPresheafedSpace
hS : IsCompact S.carrier
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hs' : S.carrier = ⋃ i ∈ s, ↑↑i
⊢ ↑S = ↑(⨆ i, ↑↑i)
state_after: no goals

tactic: convert h₁
state_before: case intro.intro.H0
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
⊢ P (⨆ i, ↑↑i)
state_after: case h.e'_1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
⊢ ⨆ i, ↑↑i = ⊥

tactic: rw [iSup_eq_bot]
state_before: case h.e'_1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
⊢ ⨆ i, ↑↑i = ⊥
state_after: case h.e'_1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
⊢ ∀ (i : ↑∅), ↑↑i = ⊥

tactic: rintro ⟨_, h⟩
state_before: case h.e'_1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
⊢ ∀ (i : ↑∅), ↑↑i = ⊥
state_after: case h.e'_1.mk
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
val✝ : ↑X.affineOpens
h : val✝ ∈ ∅
⊢ ↑↑⟨val✝, h⟩ = ⊥

tactic: exact h.elim
state_before: case h.e'_1.mk
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
val✝ : ↑X.affineOpens
h : val✝ ∈ ∅
⊢ ↑↑⟨val✝, h⟩ = ⊥
state_after: no goals

tactic: intro x s _ hs h₄
state_before: case intro.intro.H1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s : Set ↑X.affineOpens
hs : s.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
⊢ ∀ {a : ↑X.affineOpens} {s : Set ↑X.affineOpens}, a ∉ s → s.Finite → P (⨆ i, ↑↑i) → P (⨆ i, ↑↑i)
state_after: case intro.intro.H1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s✝ : Set ↑X.affineOpens
hs✝ : s✝.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
x : ↑X.affineOpens
s : Set ↑X.affineOpens
a✝ : x ∉ s
hs : s.Finite
h₄ : P (⨆ i, ↑↑i)
⊢ P (⨆ i, ↑↑i)

tactic: have : IsCompact (⨆ i : s, (i : Opens X)).1 := by
  refine ((isCompactOpen_iff_eq_finset_affine_union _).mpr ?_).1; exact ⟨s, hs, by simp⟩
state_before: case intro.intro.H1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s✝ : Set ↑X.affineOpens
hs✝ : s✝.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
x : ↑X.affineOpens
s : Set ↑X.affineOpens
a✝ : x ∉ s
hs : s.Finite
h₄ : P (⨆ i, ↑↑i)
⊢ P (⨆ i, ↑↑i)
state_after: case intro.intro.H1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s✝ : Set ↑X.affineOpens
hs✝ : s✝.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
x : ↑X.affineOpens
s : Set ↑X.affineOpens
a✝ : x ∉ s
hs : s.Finite
h₄ : P (⨆ i, ↑↑i)
this : IsCompact (⨆ i, ↑↑i).carrier
⊢ P (⨆ i, ↑↑i)

tactic: convert h₂ _ this x h₄
state_before: case intro.intro.H1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s✝ : Set ↑X.affineOpens
hs✝ : s✝.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
x : ↑X.affineOpens
s : Set ↑X.affineOpens
a✝ : x ∉ s
hs : s.Finite
h₄ : P (⨆ i, ↑↑i)
this : IsCompact (⨆ i, ↑↑i).carrier
⊢ P (⨆ i, ↑↑i)
state_after: case h.e'_1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s✝ : Set ↑X.affineOpens
hs✝ : s✝.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
x : ↑X.affineOpens
s : Set ↑X.affineOpens
a✝ : x ∉ s
hs : s.Finite
h₄ : P (⨆ i, ↑↑i)
this : IsCompact (⨆ i, ↑↑i).carrier
⊢ ⨆ i, ↑↑i = (⨆ i, ↑↑i) ⊔ ↑x

tactic: rw [iSup_subtype, sup_comm]
state_before: case h.e'_1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s✝ : Set ↑X.affineOpens
hs✝ : s✝.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
x : ↑X.affineOpens
s : Set ↑X.affineOpens
a✝ : x ∉ s
hs : s.Finite
h₄ : P (⨆ i, ↑↑i)
this : IsCompact (⨆ i, ↑↑i).carrier
⊢ ⨆ i, ↑↑i = (⨆ i, ↑↑i) ⊔ ↑x
state_after: case h.e'_1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s✝ : Set ↑X.affineOpens
hs✝ : s✝.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
x : ↑X.affineOpens
s : Set ↑X.affineOpens
a✝ : x ∉ s
hs : s.Finite
h₄ : P (⨆ i, ↑↑i)
this : IsCompact (⨆ i, ↑↑i).carrier
⊢ ⨆ i, ⨆ (h : i ∈ insert x s), ↑↑⟨i, h⟩ = ↑x ⊔ ⨆ i, ↑↑i

tactic: conv_rhs => rw [iSup_subtype]
state_before: case h.e'_1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s✝ : Set ↑X.affineOpens
hs✝ : s✝.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
x : ↑X.affineOpens
s : Set ↑X.affineOpens
a✝ : x ∉ s
hs : s.Finite
h₄ : P (⨆ i, ↑↑i)
this : IsCompact (⨆ i, ↑↑i).carrier
⊢ ⨆ i, ⨆ (h : i ∈ insert x s), ↑↑⟨i, h⟩ = ↑x ⊔ ⨆ i, ↑↑i
state_after: case h.e'_1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s✝ : Set ↑X.affineOpens
hs✝ : s✝.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
x : ↑X.affineOpens
s : Set ↑X.affineOpens
a✝ : x ∉ s
hs : s.Finite
h₄ : P (⨆ i, ↑↑i)
this : IsCompact (⨆ i, ↑↑i).carrier
⊢ ⨆ i, ⨆ (h : i ∈ insert x s), ↑↑⟨i, h⟩ = ↑x ⊔ ⨆ i, ⨆ (h : i ∈ s), ↑↑⟨i, h⟩

tactic: exact iSup_insert
state_before: case h.e'_1
X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s✝ : Set ↑X.affineOpens
hs✝ : s✝.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
x : ↑X.affineOpens
s : Set ↑X.affineOpens
a✝ : x ∉ s
hs : s.Finite
h₄ : P (⨆ i, ↑↑i)
this : IsCompact (⨆ i, ↑↑i).carrier
⊢ ⨆ i, ⨆ (h : i ∈ insert x s), ↑↑⟨i, h⟩ = ↑x ⊔ ⨆ i, ⨆ (h : i ∈ s), ↑↑⟨i, h⟩
state_after: no goals

tactic: refine ((isCompactOpen_iff_eq_finset_affine_union _).mpr ?_).1
state_before: X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s✝ : Set ↑X.affineOpens
hs✝ : s✝.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
x : ↑X.affineOpens
s : Set ↑X.affineOpens
a✝ : x ∉ s
hs : s.Finite
h₄ : P (⨆ i, ↑↑i)
⊢ IsCompact (⨆ i, ↑↑i).carrier
state_after: X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s✝ : Set ↑X.affineOpens
hs✝ : s✝.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
x : ↑X.affineOpens
s : Set ↑X.affineOpens
a✝ : x ∉ s
hs : s.Finite
h₄ : P (⨆ i, ↑↑i)
⊢ ∃ s_1, s_1.Finite ∧ (⨆ i, ↑↑i).carrier = ⋃ i ∈ s_1, ↑↑i

tactic: exact ⟨s, hs, by simp⟩
state_before: X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s✝ : Set ↑X.affineOpens
hs✝ : s✝.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
x : ↑X.affineOpens
s : Set ↑X.affineOpens
a✝ : x ∉ s
hs : s.Finite
h₄ : P (⨆ i, ↑↑i)
⊢ ∃ s_1, s_1.Finite ∧ (⨆ i, ↑↑i).carrier = ⋃ i ∈ s_1, ↑↑i
state_after: no goals

tactic: simp
state_before: X Y : Scheme
f : X ⟶ Y
Z : Scheme
P : Opens ↑↑X.toPresheafedSpace → Prop
h₁ : P ⊥
h₂ : ∀ (S : Opens ↑↑X.toPresheafedSpace), IsCompact S.carrier → ∀ (U : ↑X.affineOpens), P S → P (S ⊔ ↑U)
s✝ : Set ↑X.affineOpens
hs✝ : s✝.Finite
hS : IsCompact (⨆ i, ↑↑i).carrier
x : ↑X.affineOpens
s : Set ↑X.affineOpens
a✝ : x ∉ s
hs : s.Finite
h₄ : P (⨆ i, ↑↑i)
⊢ (⨆ i, ↑↑i).carrier = ⋃ i ∈ s, ↑↑i
state_after: no goals