Theorem: image_minimals_of_rel_iff_rel
File: Mathlib/Order/Minimal.lean

tactic: ext b
state_before: α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a✝ b : α
inst✝ : PartialOrder α
f : α → β
r : α → α → Prop
s : β → β → Prop
x : Set α
hf : ∀ ⦃a a' : α⦄, a ∈ x → a' ∈ x → (r a a' ↔ s (f a) (f a'))
a : α
⊢ f '' minimals r x = minimals s (f '' x)
state_after: case h
α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a✝ b✝ : α
inst✝ : PartialOrder α
f : α → β
r : α → α → Prop
s : β → β → Prop
x : Set α
hf : ∀ ⦃a a' : α⦄, a ∈ x → a' ∈ x → (r a a' ↔ s (f a) (f a'))
a : α
b : β
⊢ b ∈ f '' minimals r x ↔ b ∈ minimals s (f '' x)

tactic: refine ⟨?_, fun h ↦ ?_⟩
state_before: case h
α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a✝ b✝ : α
inst✝ : PartialOrder α
f : α → β
r : α → α → Prop
s : β → β → Prop
x : Set α
hf : ∀ ⦃a a' : α⦄, a ∈ x → a' ∈ x → (r a a' ↔ s (f a) (f a'))
a : α
b : β
⊢ b ∈ f '' minimals r x ↔ b ∈ minimals s (f '' x)
state_after: case h.refine_1
α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a✝ b✝ : α
inst✝ : PartialOrder α
f : α → β
r : α → α → Prop
s : β → β → Prop
x : Set α
hf : ∀ ⦃a a' : α⦄, a ∈ x → a' ∈ x → (r a a' ↔ s (f a) (f a'))
a : α
b : β
⊢ b ∈ f '' minimals r x → b ∈ minimals s (f '' x)

case h.refine_2
α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a✝ b✝ : α
inst✝ : PartialOrder α
f : α → β
r : α → α → Prop
s : β → β → Prop
x : Set α
hf : ∀ ⦃a a' : α⦄, a ∈ x → a' ∈ x → (r a a' ↔ s (f a) (f a'))
a : α
b : β
h : b ∈ minimals s (f '' x)
⊢ b ∈ f '' minimals r x

tactic: rintro ⟨a, ha, rfl⟩
state_before: case h.refine_1
α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a✝ b✝ : α
inst✝ : PartialOrder α
f : α → β
r : α → α → Prop
s : β → β → Prop
x : Set α
hf : ∀ ⦃a a' : α⦄, a ∈ x → a' ∈ x → (r a a' ↔ s (f a) (f a'))
a : α
b : β
⊢ b ∈ f '' minimals r x → b ∈ minimals s (f '' x)
state_after: case h.refine_1.intro.intro
α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a✝¹ b : α
inst✝ : PartialOrder α
f : α → β
r : α → α → Prop
s : β → β → Prop
x : Set α
hf : ∀ ⦃a a' : α⦄, a ∈ x → a' ∈ x → (r a a' ↔ s (f a) (f a'))
a✝ a : α
ha : a ∈ minimals r x
⊢ f a ∈ minimals s (f '' x)

tactic: exact map_mem_minimals hf ha
state_before: case h.refine_1.intro.intro
α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a✝¹ b : α
inst✝ : PartialOrder α
f : α → β
r : α → α → Prop
s : β → β → Prop
x : Set α
hf : ∀ ⦃a a' : α⦄, a ∈ x → a' ∈ x → (r a a' ↔ s (f a) (f a'))
a✝ a : α
ha : a ∈ minimals r x
⊢ f a ∈ minimals s (f '' x)
state_after: no goals

tactic: obtain ⟨a, ha, rfl⟩ := h.1
state_before: case h.refine_2
α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a✝ b✝ : α
inst✝ : PartialOrder α
f : α → β
r : α → α → Prop
s : β → β → Prop
x : Set α
hf : ∀ ⦃a a' : α⦄, a ∈ x → a' ∈ x → (r a a' ↔ s (f a) (f a'))
a : α
b : β
h : b ∈ minimals s (f '' x)
⊢ b ∈ f '' minimals r x
state_after: case h.refine_2.intro.intro
α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a✝¹ b : α
inst✝ : PartialOrder α
f : α → β
r : α → α → Prop
s : β → β → Prop
x : Set α
hf : ∀ ⦃a a' : α⦄, a ∈ x → a' ∈ x → (r a a' ↔ s (f a) (f a'))
a✝ a : α
ha : a ∈ x
h : f a ∈ minimals s (f '' x)
⊢ f a ∈ f '' minimals r x

tactic: exact ⟨a, (map_mem_minimals_iff hf ha).mp h, rfl⟩
state_before: case h.refine_2.intro.intro
α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a✝¹ b : α
inst✝ : PartialOrder α
f : α → β
r : α → α → Prop
s : β → β → Prop
x : Set α
hf : ∀ ⦃a a' : α⦄, a ∈ x → a' ∈ x → (r a a' ↔ s (f a) (f a'))
a✝ a : α
ha : a ∈ x
h : f a ∈ minimals s (f '' x)
⊢ f a ∈ f '' minimals r x
state_after: no goals