no goals
ι : Type u_1
α : ι → Type u_2
β : ι → Type ?u.154225
s s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
i✝ : ι
ht : Set.Nonempty (pi s t)
i : ι
⊢ t i ⊆ eval i '' pi s t
classical
obtain ⟨f, hf⟩ := ht
refine' fun y hy => ⟨update f i y, fun j hj => _, update_same _ _ _⟩
obtain rfl | hji := eq_or_ne j i <;> simp [*, hf _ hj]
case intro
ι : Type u_1
α : ι → Type u_2
β : ι → Type ?u.154225
s s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
i✝ i : ι
f : (i : ι) → α i
hf : f ∈ pi s t
⊢ t i ⊆ eval i '' pi s t
ι : Type u_1
α : ι → Type u_2
β : ι → Type ?u.154225
s s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
i✝ : ι
ht : Set.Nonempty (pi s t)
i : ι
⊢ t i ⊆ eval i '' pi s t
obtain ⟨f, hf⟩ := ht
case intro
ι : Type u_1
α : ι → Type u_2
β : ι → Type ?u.154225
s s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
i✝ i : ι
f : (i : ι) → α i
hf : f ∈ pi s t
y : α i
hy : y ∈ t i
j : ι
hj : j ∈ s
⊢ update f i y j ∈ t j
case intro
ι : Type u_1
α : ι → Type u_2
β : ι → Type ?u.154225
s s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
i✝ i : ι
f : (i : ι) → α i
hf : f ∈ pi s t
⊢ t i ⊆ eval i '' pi s t
refine' fun y hy => ⟨update f i y, fun j hj => _, update_same _ _ _⟩
no goals
case intro
ι : Type u_1
α : ι → Type u_2
β : ι → Type ?u.154225
s s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
i✝ i : ι
f : (i : ι) → α i
hf : f ∈ pi s t
y : α i
hy : y ∈ t i
j : ι
hj : j ∈ s
⊢ update f i y j ∈ t j
obtain rfl | hji := eq_or_ne j i <;> simp [*, hf _ hj]