Theorem: LocalEquiv.copy_eq
File: Mathlib/Logic/Equiv/LocalEquiv.lean

tactic: substs f g s t
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.23151
δ : Type ?u.23154
e✝ : LocalEquiv α β
e' : LocalEquiv β γ
e : LocalEquiv α β
f : α → β
hf : ↑e = f
g : β → α
hg : ↑(LocalEquiv.symm e) = g
s : Set α
hs : e.source = s
t : Set β
ht : e.target = t
⊢ copy e f hf g hg s hs t ht = e

tactic: cases e
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.23151
δ : Type ?u.23154
e✝ : LocalEquiv α β
e' : LocalEquiv β γ
e : LocalEquiv α β
⊢ copy e ↑e (_ : ↑e = ↑e) ↑(LocalEquiv.symm e) (_ : ↑(LocalEquiv.symm e) = ↑(LocalEquiv.symm e)) e.source
      (_ : e.source = e.source) e.target (_ : e.target = e.target) =
    e

tactic: rfl
state_before: case mk
α : Type u_1
β : Type u_2
γ : Type ?u.23151
δ : Type ?u.23154
e : LocalEquiv α β
e' : LocalEquiv β γ
toFun✝ : α → β
invFun✝ : β → α
source✝ : Set α
target✝ : Set β
map_source'✝ : ∀ ⦃x : α⦄, x ∈ source✝ → toFun✝ x ∈ target✝
map_target'✝ : ∀ ⦃x : β⦄, x ∈ target✝ → invFun✝ x ∈ source✝
left_inv'✝ : ∀ ⦃x : α⦄, x ∈ source✝ → invFun✝ (toFun✝ x) = x
right_inv'✝ : ∀ ⦃x : β⦄, x ∈ target✝ → toFun✝ (invFun✝ x) = x
⊢ copy
      { toFun := toFun✝, invFun := invFun✝, source := source✝, target := target✝, map_source' := map_source'✝,
        map_target' := map_target'✝, left_inv' := left_inv'✝, right_inv' := right_inv'✝ }
      ↑{ toFun := toFun✝, invFun := invFun✝, source := source✝, target := target✝, map_source' := map_source'✝,
          map_target' := map_target'✝, left_inv' := left_inv'✝, right_inv' := right_inv'✝ }
      (_ :
        ↑{ toFun := toFun✝, invFun := invFun✝, source := source✝, target := target✝, map_source' := map_source'✝,
              map_target' := map_target'✝, left_inv' := left_inv'✝, right_inv' := right_inv'✝ } =
          ↑{ toFun := toFun✝, invFun := invFun✝, source := source✝, target := target✝, map_source' := map_source'✝,
              map_target' := map_target'✝, left_inv' := left_inv'✝, right_inv' := right_inv'✝ })
      ↑(LocalEquiv.symm
          { toFun := toFun✝, invFun := invFun✝, source := source✝, target := target✝, map_source' := map_source'✝,
            map_target' := map_target'✝, left_inv' := left_inv'✝, right_inv' := right_inv'✝ })
      (_ :
        ↑(LocalEquiv.symm
              { toFun := toFun✝, invFun := invFun✝, source := source✝, target := target✝, map_source' := map_source'✝,
                map_target' := map_target'✝, left_inv' := left_inv'✝, right_inv' := right_inv'✝ }) =
          ↑(LocalEquiv.symm
              { toFun := toFun✝, invFun := invFun✝, source := source✝, target := target✝, map_source' := map_source'✝,
                map_target' := map_target'✝, left_inv' := left_inv'✝, right_inv' := right_inv'✝ }))
      { toFun := toFun✝, invFun := invFun✝, source := source✝, target := target✝, map_source' := map_source'✝,
          map_target' := map_target'✝, left_inv' := left_inv'✝, right_inv' := right_inv'✝ }.source
      (_ :
        { toFun := toFun✝, invFun := invFun✝, source := source✝, target := target✝, map_source' := map_source'✝,
              map_target' := map_target'✝, left_inv' := left_inv'✝, right_inv' := right_inv'✝ }.source =
          { toFun := toFun✝, invFun := invFun✝, source := source✝, target := target✝, map_source' := map_source'✝,
              map_target' := map_target'✝, left_inv' := left_inv'✝, right_inv' := right_inv'✝ }.source)
      { toFun := toFun✝, invFun := invFun✝, source := source✝, target := target✝, map_source' := map_source'✝,
          map_target' := map_target'✝, left_inv' := left_inv'✝, right_inv' := right_inv'✝ }.target
      (_ :
        { toFun := toFun✝, invFun := invFun✝, source := source✝, target := target✝, map_source' := map_source'✝,
              map_target' := map_target'✝, left_inv' := left_inv'✝, right_inv' := right_inv'✝ }.target =
          { toFun := toFun✝, invFun := invFun✝, source := source✝, target := target✝, map_source' := map_source'✝,
              map_target' := map_target'✝, left_inv' := left_inv'✝, right_inv' := right_inv'✝ }.target) =
    { toFun := toFun✝, invFun := invFun✝, source := source✝, target := target✝, map_source' := map_source'✝,
      map_target' := map_target'✝, left_inv' := left_inv'✝, right_inv' := right_inv'✝ }