case mp
α : Sort u
β : Sort v
γ : Sort w
p : α → Prop
q : β → Prop
f : α ≃ β
h : ∀ {x : α}, p x ↔ q (↑f x)
⊢ (∃! x, p x) → ∃! y, q y

case mpr
α : Sort u
β : Sort v
γ : Sort w
p : α → Prop
q : β → Prop
f : α ≃ β
h : ∀ {x : α}, p x ↔ q (↑f x)
⊢ (∃! y, q y) → ∃! x, p x
α : Sort u
β : Sort v
γ : Sort w
p : α → Prop
q : β → Prop
f : α ≃ β
h : ∀ {x : α}, p x ↔ q (↑f x)
⊢ (∃! x, p x) ↔ ∃! y, q y
constructor
case mp.intro.intro
α : Sort u
β : Sort v
γ : Sort w
p : α → Prop
q : β → Prop
f : α ≃ β
h : ∀ {x : α}, p x ↔ q (↑f x)
a : α
ha₁ : p a
ha₂ : ∀ (y : α), (fun x => p x) y → y = a
⊢ ∃! y, q y
case mp
α : Sort u
β : Sort v
γ : Sort w
p : α → Prop
q : β → Prop
f : α ≃ β
h : ∀ {x : α}, p x ↔ q (↑f x)
⊢ (∃! x, p x) → ∃! y, q y
rintro ⟨a, ha₁, ha₂⟩
no goals
case mp.intro.intro
α : Sort u
β : Sort v
γ : Sort w
p : α → Prop
q : β → Prop
f : α ≃ β
h : ∀ {x : α}, p x ↔ q (↑f x)
a : α
ha₁ : p a
ha₂ : ∀ (y : α), (fun x => p x) y → y = a
⊢ ∃! y, q y
exact ⟨f a, h.1 ha₁, fun b hb => f.symm_apply_eq.1 (ha₂ (f.symm b) (h.2 (by simpa using hb)))⟩
no goals
α : Sort u
β : Sort v
γ : Sort w
p : α → Prop
q : β → Prop
f : α ≃ β
h : ∀ {x : α}, p x ↔ q (↑f x)
a : α
ha₁ : p a
ha₂ : ∀ (y : α), (fun x => p x) y → y = a
b : β
hb : (fun y => q y) b
⊢ q (↑f (↑f.symm b))
simpa using hb
case mpr.intro.intro
α : Sort u
β : Sort v
γ : Sort w
p : α → Prop
q : β → Prop
f : α ≃ β
h : ∀ {x : α}, p x ↔ q (↑f x)
b : β
hb₁ : q b
hb₂ : ∀ (y : β), (fun y => q y) y → y = b
⊢ ∃! x, p x
case mpr
α : Sort u
β : Sort v
γ : Sort w
p : α → Prop
q : β → Prop
f : α ≃ β
h : ∀ {x : α}, p x ↔ q (↑f x)
⊢ (∃! y, q y) → ∃! x, p x
rintro ⟨b, hb₁, hb₂⟩
no goals
case mpr.intro.intro
α : Sort u
β : Sort v
γ : Sort w
p : α → Prop
q : β → Prop
f : α ≃ β
h : ∀ {x : α}, p x ↔ q (↑f x)
b : β
hb₁ : q b
hb₂ : ∀ (y : β), (fun y => q y) y → y = b
⊢ ∃! x, p x
exact ⟨f.symm b, h.2 (by simpa using hb₁), fun y hy => (eq_symm_apply f).2 (hb₂ _ (h.1 hy))⟩
no goals
α : Sort u
β : Sort v
γ : Sort w
p : α → Prop
q : β → Prop
f : α ≃ β
h : ∀ {x : α}, p x ↔ q (↑f x)
b : β
hb₁ : q b
hb₂ : ∀ (y : β), (fun y => q y) y → y = b
⊢ q (↑f (↑f.symm b))
simpa using hb₁