Theorem: Finset.map_truncatedSup
File: Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s✝ t : Finset α
a✝ b : α
e : α ≃o β
s : Finset α
a : α
⊢ e (s.truncatedSup a) = (map e.toEmbedding s).truncatedSup (e a)
state_after: α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s✝ t : Finset α
a✝ b : α
e : α ≃o β
s : Finset α
a : α
this : e a ∈ lowerClosure ↑(map e.toEmbedding s) ↔ a ∈ lowerClosure ↑s
⊢ e (s.truncatedSup a) = (map e.toEmbedding s).truncatedSup (e a)
tactic: have : e a ∈ lowerClosure (s.map e.toEquiv.toEmbedding : Set β) ↔ a ∈ lowerClosure s := by simp
state_before: α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s✝ t : Finset α
a✝ b : α
e : α ≃o β
s : Finset α
a : α
this : e a ∈ lowerClosure ↑(map e.toEmbedding s) ↔ a ∈ lowerClosure ↑s
⊢ e (s.truncatedSup a) = (map e.toEmbedding s).truncatedSup (e a)
state_after: α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s✝ t : Finset α
a✝ b : α
e : α ≃o β
s : Finset α
a : α
this : e a ∈ lowerClosure ↑(map e.toEmbedding s) ↔ a ∈ lowerClosure ↑s
⊢ (if h : a ∈ lowerClosure ↑s then (filter (fun b => a ≤ b) s).sup' ⋯ (⇑e ∘ id) else ⊤) =
    if h : a ∈ lowerClosure ↑s then (filter (fun b => e a ≤ b) (map e.toEmbedding s)).sup' ⋯ id else ⊤
tactic: simp_rw [truncatedSup, apply_dite e, map_finset_sup', map_top, this]
state_before: α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s✝ t : Finset α
a✝ b : α
e : α ≃o β
s : Finset α
a : α
this : e a ∈ lowerClosure ↑(map e.toEmbedding s) ↔ a ∈ lowerClosure ↑s
⊢ (if h : a ∈ lowerClosure ↑s then (filter (fun b => a ≤ b) s).sup' ⋯ (⇑e ∘ id) else ⊤) =
    if h : a ∈ lowerClosure ↑s then (filter (fun b => e a ≤ b) (map e.toEmbedding s)).sup' ⋯ id else ⊤
state_after: case e_t.h
α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s✝ t : Finset α
a✝ b : α
e : α ≃o β
s : Finset α
a : α
this : e a ∈ lowerClosure ↑(map e.toEmbedding s) ↔ a ∈ lowerClosure ↑s
h : a ∈ lowerClosure ↑s
⊢ (filter (fun b => a ≤ b) s).sup' ⋯ (⇑e ∘ id) = (filter (fun b => e a ≤ b) (map e.toEmbedding s)).sup' ⋯ id
tactic: congr with h
state_before: case e_t.h
α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s✝ t : Finset α
a✝ b : α
e : α ≃o β
s : Finset α
a : α
this : e a ∈ lowerClosure ↑(map e.toEmbedding s) ↔ a ∈ lowerClosure ↑s
h : a ∈ lowerClosure ↑s
⊢ (filter (fun b => a ≤ b) s).sup' ⋯ (⇑e ∘ id) = (filter (fun b => e a ≤ b) (map e.toEmbedding s)).sup' ⋯ id
state_after: case e_t.h
α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s✝ t : Finset α
a✝ b : α
e : α ≃o β
s : Finset α
a : α
this : e a ∈ lowerClosure ↑(map e.toEmbedding s) ↔ a ∈ lowerClosure ↑s
h : a ∈ lowerClosure ↑s
⊢ ((filter (fun b => a ≤ b) s).sup' ⋯ fun x => e x) = (map e.toEmbedding (filter (fun x => a ≤ x) s)).sup' ⋯ fun x => x
tactic: simp only [filter_map, Function.comp, Equiv.coe_toEmbedding, RelIso.coe_fn_toEquiv,
    OrderIso.le_iff_le, id]
state_before: case e_t.h
α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s✝ t : Finset α
a✝ b : α
e : α ≃o β
s : Finset α
a : α
this : e a ∈ lowerClosure ↑(map e.toEmbedding s) ↔ a ∈ lowerClosure ↑s
h : a ∈ lowerClosure ↑s
⊢ ((filter (fun b => a ≤ b) s).sup' ⋯ fun x => e x) = (map e.toEmbedding (filter (fun x => a ≤ x) s)).sup' ⋯ fun x => x
state_after: case e_t.h
α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s✝ t : Finset α
a✝ b : α
e : α ≃o β
s : Finset α
a : α
this : e a ∈ lowerClosure ↑(map e.toEmbedding s) ↔ a ∈ lowerClosure ↑s
h : a ∈ lowerClosure ↑s
⊢ ((filter (fun b => a ≤ b) s).sup' ⋯ fun x => e x) = (filter (fun x => a ≤ x) s).sup' ⋯ ((fun x => x) ∘ ⇑e.toEmbedding)
tactic: rw [sup'_map]
state_before: case e_t.h
α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s✝ t : Finset α
a✝ b : α
e : α ≃o β
s : Finset α
a : α
this : e a ∈ lowerClosure ↑(map e.toEmbedding s) ↔ a ∈ lowerClosure ↑s
h : a ∈ lowerClosure ↑s
⊢ ((filter (fun b => a ≤ b) s).sup' ⋯ fun x => e x) = (filter (fun x => a ≤ x) s).sup' ⋯ ((fun x => x) ∘ ⇑e.toEmbedding)
state_after: no goals
tactic: simp only [sup'_map, Equiv.coe_toEmbedding, RelIso.coe_fn_toEquiv, Function.comp_apply]