Theorem: FirstOrder.Language.Embedding.coe_injective
File: Mathlib/ModelTheory/Basic.lean

tactic: cases f
state_before: L : Language
L' : Language
M : Type w
N : Type w'
inst✝³ : Structure L M
inst✝² : Structure L N
P : Type ?u.138427
inst✝¹ : Structure L P
Q : Type ?u.138435
inst✝ : Structure L Q
f g : M ↪[L] N
h : ↑f = ↑g
⊢ f = g

tactic: cases g
state_before: case mk
L : Language
L' : Language
M : Type w
N : Type w'
inst✝³ : Structure L M
inst✝² : Structure L N
P : Type ?u.138427
inst✝¹ : Structure L P
Q : Type ?u.138435
inst✝ : Structure L Q
g : M ↪[L] N
toEmbedding✝ : M ↪ N
map_fun'✝ :
  ∀ {n : ℕ} (f : Functions L n) (x : Fin n → M),
    Function.Embedding.toFun toEmbedding✝ (funMap f x) = funMap f (toEmbedding✝.toFun ∘ x)
map_rel'✝ : ∀ {n : ℕ} (r : Relations L n) (x : Fin n → M), RelMap r (toEmbedding✝.toFun ∘ x) ↔ RelMap r x
h : ↑(mk toEmbedding✝) = ↑g
⊢ mk toEmbedding✝ = g

tactic: congr
state_before: case mk.mk
L : Language
L' : Language
M : Type w
N : Type w'
inst✝³ : Structure L M
inst✝² : Structure L N
P : Type ?u.138427
inst✝¹ : Structure L P
Q : Type ?u.138435
inst✝ : Structure L Q
toEmbedding✝¹ : M ↪ N
map_fun'✝¹ :
  ∀ {n : ℕ} (f : Functions L n) (x : Fin n → M),
    Function.Embedding.toFun toEmbedding✝¹ (funMap f x) = funMap f (toEmbedding✝¹.toFun ∘ x)
map_rel'✝¹ : ∀ {n : ℕ} (r : Relations L n) (x : Fin n → M), RelMap r (toEmbedding✝¹.toFun ∘ x) ↔ RelMap r x
toEmbedding✝ : M ↪ N
map_fun'✝ :
  ∀ {n : ℕ} (f : Functions L n) (x : Fin n → M),
    Function.Embedding.toFun toEmbedding✝ (funMap f x) = funMap f (toEmbedding✝.toFun ∘ x)
map_rel'✝ : ∀ {n : ℕ} (r : Relations L n) (x : Fin n → M), RelMap r (toEmbedding✝.toFun ∘ x) ↔ RelMap r x
h : ↑(mk toEmbedding✝¹) = ↑(mk toEmbedding✝)
⊢ mk toEmbedding✝¹ = mk toEmbedding✝

tactic: ext x
state_before: case mk.mk.e_toEmbedding
L : Language
L' : Language
M : Type w
N : Type w'
inst✝³ : Structure L M
inst✝² : Structure L N
P : Type ?u.138427
inst✝¹ : Structure L P
Q : Type ?u.138435
inst✝ : Structure L Q
toEmbedding✝¹ : M ↪ N
map_fun'✝¹ :
  ∀ {n : ℕ} (f : Functions L n) (x : Fin n → M),
    Function.Embedding.toFun toEmbedding✝¹ (funMap f x) = funMap f (toEmbedding✝¹.toFun ∘ x)
map_rel'✝¹ : ∀ {n : ℕ} (r : Relations L n) (x : Fin n → M), RelMap r (toEmbedding✝¹.toFun ∘ x) ↔ RelMap r x
toEmbedding✝ : M ↪ N
map_fun'✝ :
  ∀ {n : ℕ} (f : Functions L n) (x : Fin n → M),
    Function.Embedding.toFun toEmbedding✝ (funMap f x) = funMap f (toEmbedding✝.toFun ∘ x)
map_rel'✝ : ∀ {n : ℕ} (r : Relations L n) (x : Fin n → M), RelMap r (toEmbedding✝.toFun ∘ x) ↔ RelMap r x
h : ↑(mk toEmbedding✝¹) = ↑(mk toEmbedding✝)
⊢ toEmbedding✝¹ = toEmbedding✝

tactic: exact Function.funext_iff.1 h x
state_before: case mk.mk.e_toEmbedding.h
L : Language
L' : Language
M : Type w
N : Type w'
inst✝³ : Structure L M
inst✝² : Structure L N
P : Type ?u.138427
inst✝¹ : Structure L P
Q : Type ?u.138435
inst✝ : Structure L Q
toEmbedding✝¹ : M ↪ N
map_fun'✝¹ :
  ∀ {n : ℕ} (f : Functions L n) (x : Fin n → M),
    Function.Embedding.toFun toEmbedding✝¹ (funMap f x) = funMap f (toEmbedding✝¹.toFun ∘ x)
map_rel'✝¹ : ∀ {n : ℕ} (r : Relations L n) (x : Fin n → M), RelMap r (toEmbedding✝¹.toFun ∘ x) ↔ RelMap r x
toEmbedding✝ : M ↪ N
map_fun'✝ :
  ∀ {n : ℕ} (f : Functions L n) (x : Fin n → M),
    Function.Embedding.toFun toEmbedding✝ (funMap f x) = funMap f (toEmbedding✝.toFun ∘ x)
map_rel'✝ : ∀ {n : ℕ} (r : Relations L n) (x : Fin n → M), RelMap r (toEmbedding✝.toFun ∘ x) ↔ RelMap r x
h : ↑(mk toEmbedding✝¹) = ↑(mk toEmbedding✝)
x : M
⊢ ↑toEmbedding✝¹ x = ↑toEmbedding✝ x