Theorem: NumberField.InfinitePlace.exists_smul_eq_of_comap_eq
File: Mathlib/NumberTheory/NumberField/Embeddings.lean

tactic: rw [← mk_embedding w, ← mk_embedding w', comap_mk, comap_mk, mk_eq_iff] at h
state_before: k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h : w.comap (algebraMap k K) = w'.comap (algebraMap k K)
⊢ ∃ σ, σ • w = w'
state_after: k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h :
  w.embedding.comp (algebraMap k K) = w'.embedding.comp (algebraMap k K) ∨
    ComplexEmbedding.conjugate (w.embedding.comp (algebraMap k K)) = w'.embedding.comp (algebraMap k K)
⊢ ∃ σ, σ • w = w'

tactic: cases h with
| inl h =>
  obtain ⟨σ, hσ⟩ := ComplexEmbedding.exists_comp_symm_eq_of_comp_eq w.embedding w'.embedding h
  use σ
  rw [← mk_embedding w, ← mk_embedding w', smul_mk, hσ]
| inr h =>
  obtain ⟨σ, hσ⟩ := ComplexEmbedding.exists_comp_symm_eq_of_comp_eq
    ((starRingEnd ℂ).comp (embedding w)) w'.embedding h
  use σ
  rw [← mk_embedding w, ← mk_embedding w', smul_mk, mk_eq_iff]
  exact Or.inr hσ
state_before: k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h :
  w.embedding.comp (algebraMap k K) = w'.embedding.comp (algebraMap k K) ∨
    ComplexEmbedding.conjugate (w.embedding.comp (algebraMap k K)) = w'.embedding.comp (algebraMap k K)
⊢ ∃ σ, σ • w = w'
state_after: no goals

tactic: obtain ⟨σ, hσ⟩ := ComplexEmbedding.exists_comp_symm_eq_of_comp_eq w.embedding w'.embedding h
state_before: case inl
k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h : w.embedding.comp (algebraMap k K) = w'.embedding.comp (algebraMap k K)
⊢ ∃ σ, σ • w = w'
state_after: case inl.intro
k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h : w.embedding.comp (algebraMap k K) = w'.embedding.comp (algebraMap k K)
σ : K ≃ₐ[k] K
hσ : w.embedding.comp ↑σ.symm = w'.embedding
⊢ ∃ σ, σ • w = w'

tactic: use σ
state_before: case inl.intro
k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h : w.embedding.comp (algebraMap k K) = w'.embedding.comp (algebraMap k K)
σ : K ≃ₐ[k] K
hσ : w.embedding.comp ↑σ.symm = w'.embedding
⊢ ∃ σ, σ • w = w'
state_after: case h
k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h : w.embedding.comp (algebraMap k K) = w'.embedding.comp (algebraMap k K)
σ : K ≃ₐ[k] K
hσ : w.embedding.comp ↑σ.symm = w'.embedding
⊢ σ • w = w'

tactic: rw [← mk_embedding w, ← mk_embedding w', smul_mk, hσ]
state_before: case h
k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h : w.embedding.comp (algebraMap k K) = w'.embedding.comp (algebraMap k K)
σ : K ≃ₐ[k] K
hσ : w.embedding.comp ↑σ.symm = w'.embedding
⊢ σ • w = w'
state_after: no goals

tactic: obtain ⟨σ, hσ⟩ := ComplexEmbedding.exists_comp_symm_eq_of_comp_eq
  ((starRingEnd ℂ).comp (embedding w)) w'.embedding h
state_before: case inr
k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h : ComplexEmbedding.conjugate (w.embedding.comp (algebraMap k K)) = w'.embedding.comp (algebraMap k K)
⊢ ∃ σ, σ • w = w'
state_after: case inr.intro
k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h : ComplexEmbedding.conjugate (w.embedding.comp (algebraMap k K)) = w'.embedding.comp (algebraMap k K)
σ : K ≃ₐ[k] K
hσ : ((starRingEnd ℂ).comp w.embedding).comp ↑σ.symm = w'.embedding
⊢ ∃ σ, σ • w = w'

tactic: use σ
state_before: case inr.intro
k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h : ComplexEmbedding.conjugate (w.embedding.comp (algebraMap k K)) = w'.embedding.comp (algebraMap k K)
σ : K ≃ₐ[k] K
hσ : ((starRingEnd ℂ).comp w.embedding).comp ↑σ.symm = w'.embedding
⊢ ∃ σ, σ • w = w'
state_after: case h
k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h : ComplexEmbedding.conjugate (w.embedding.comp (algebraMap k K)) = w'.embedding.comp (algebraMap k K)
σ : K ≃ₐ[k] K
hσ : ((starRingEnd ℂ).comp w.embedding).comp ↑σ.symm = w'.embedding
⊢ σ • w = w'

tactic: rw [← mk_embedding w, ← mk_embedding w', smul_mk, mk_eq_iff]
state_before: case h
k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h : ComplexEmbedding.conjugate (w.embedding.comp (algebraMap k K)) = w'.embedding.comp (algebraMap k K)
σ : K ≃ₐ[k] K
hσ : ((starRingEnd ℂ).comp w.embedding).comp ↑σ.symm = w'.embedding
⊢ σ • w = w'
state_after: case h
k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h : ComplexEmbedding.conjugate (w.embedding.comp (algebraMap k K)) = w'.embedding.comp (algebraMap k K)
σ : K ≃ₐ[k] K
hσ : ((starRingEnd ℂ).comp w.embedding).comp ↑σ.symm = w'.embedding
⊢ w.embedding.comp ↑σ.symm = w'.embedding ∨ ComplexEmbedding.conjugate (w.embedding.comp ↑σ.symm) = w'.embedding

tactic: exact Or.inr hσ
state_before: case h
k : Type u_1
inst✝⁹ : Field k
K : Type u_2
inst✝⁸ : Field K
F : Type u_3
inst✝⁷ : Field F
inst✝⁶ : NumberField K
inst✝⁵ : Algebra k K
inst✝⁴ : Algebra k F
inst✝³ : Algebra K F
inst✝² : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w✝ : InfinitePlace K
inst✝¹ : Algebra k K
inst✝ : IsGalois k K
w w' : InfinitePlace K
h : ComplexEmbedding.conjugate (w.embedding.comp (algebraMap k K)) = w'.embedding.comp (algebraMap k K)
σ : K ≃ₐ[k] K
hσ : ((starRingEnd ℂ).comp w.embedding).comp ↑σ.symm = w'.embedding
⊢ w.embedding.comp ↑σ.symm = w'.embedding ∨ ComplexEmbedding.conjugate (w.embedding.comp ↑σ.symm) = w'.embedding
state_after: no goals