Theorem: Algebra.norm_norm
File: Mathlib/RingTheory/Norm.lean

tactic: by_cases hKF : FiniteDimensional K F
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
⊢ (norm K) ((norm L) x) = (norm K) x
state_after: case pos
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
⊢ (norm K) ((norm L) x) = (norm K) x

case neg
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : ¬FiniteDimensional K F
⊢ (norm K) ((norm L) x) = (norm K) x

tactic: let A := AlgebraicClosure K
state_before: case pos
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
⊢ (norm K) ((norm L) x) = (norm K) x
state_after: case pos
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
⊢ (norm K) ((norm L) x) = (norm K) x

tactic: apply (algebraMap K A).injective
state_before: case pos
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
⊢ (norm K) ((norm L) x) = (norm K) x
state_after: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = (algebraMap K A) ((norm K) x)

tactic: haveI : FiniteDimensional L F := FiniteDimensional.right K L F
state_before: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = (algebraMap K A) ((norm K) x)
state_after: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this : FiniteDimensional L F
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = (algebraMap K A) ((norm K) x)

tactic: haveI : FiniteDimensional K L := FiniteDimensional.left K L F
state_before: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this : FiniteDimensional L F
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = (algebraMap K A) ((norm K) x)
state_after: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝ : FiniteDimensional L F
this : FiniteDimensional K L
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = (algebraMap K A) ((norm K) x)

tactic: haveI : IsSeparable K L := isSeparable_tower_bot_of_isSeparable K L F
state_before: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝ : FiniteDimensional L F
this : FiniteDimensional K L
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = (algebraMap K A) ((norm K) x)
state_after: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝¹ : FiniteDimensional L F
this✝ : FiniteDimensional K L
this : IsSeparable K L
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = (algebraMap K A) ((norm K) x)

tactic: haveI : IsSeparable L F := isSeparable_tower_top_of_isSeparable K L F
state_before: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝¹ : FiniteDimensional L F
this✝ : FiniteDimensional K L
this : IsSeparable K L
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = (algebraMap K A) ((norm K) x)
state_after: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝² : FiniteDimensional L F
this✝¹ : FiniteDimensional K L
this✝ : IsSeparable K L
this : IsSeparable L F
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = (algebraMap K A) ((norm K) x)

tactic: letI : ∀ σ : L →ₐ[K] A,
    haveI := σ.toRingHom.toAlgebra
    Fintype (F →ₐ[L] A) := fun _ => inferInstance
state_before: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝² : FiniteDimensional L F
this✝¹ : FiniteDimensional K L
this✝ : IsSeparable K L
this : IsSeparable L F
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = (algebraMap K A) ((norm K) x)
state_after: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝³ : FiniteDimensional L F
this✝² : FiniteDimensional K L
this✝¹ : IsSeparable K L
this✝ : IsSeparable L F
this : (σ : L →ₐ[K] A) → Fintype (F →ₐ[L] A) := fun x => inferInstance
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = (algebraMap K A) ((norm K) x)

tactic: rw [norm_eq_prod_embeddings K A (_ : F),
  Fintype.prod_equiv algHomEquivSigma (fun σ : F →ₐ[K] A => σ x)
    (fun π : Σ f : L →ₐ[K] A, _ => (π.2 : F → A) x) fun _ => rfl]
state_before: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝³ : FiniteDimensional L F
this✝² : FiniteDimensional K L
this✝¹ : IsSeparable K L
this✝ : IsSeparable L F
this : (σ : L →ₐ[K] A) → Fintype (F →ₐ[L] A) := fun x => inferInstance
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = (algebraMap K A) ((norm K) x)
state_after: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝³ : FiniteDimensional L F
this✝² : FiniteDimensional K L
this✝¹ : IsSeparable K L
this✝ : IsSeparable L F
this : (σ : L →ₐ[K] A) → Fintype (F →ₐ[L] A) := fun x => inferInstance
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = ∏ x_1 : (f : L →ₐ[K] A) × (F →ₐ[L] A), x_1.snd x

tactic: suffices ∀ σ : L →ₐ[K] A,
    haveI := σ.toRingHom.toAlgebra
    ∏ π : F →ₐ[L] A, π x = σ (norm L x)
  by simp_rw [← Finset.univ_sigma_univ, Finset.prod_sigma, this, norm_eq_prod_embeddings]
state_before: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝³ : FiniteDimensional L F
this✝² : FiniteDimensional K L
this✝¹ : IsSeparable K L
this✝ : IsSeparable L F
this : (σ : L →ₐ[K] A) → Fintype (F →ₐ[L] A) := fun x => inferInstance
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = ∏ x_1 : (f : L →ₐ[K] A) × (F →ₐ[L] A), x_1.snd x
state_after: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝³ : FiniteDimensional L F
this✝² : FiniteDimensional K L
this✝¹ : IsSeparable K L
this✝ : IsSeparable L F
this : (σ : L →ₐ[K] A) → Fintype (F →ₐ[L] A) := fun x => inferInstance
⊢ ∀ (σ : L →ₐ[K] A), ∏ π : F →ₐ[L] A, π x = σ ((norm L) x)

tactic: intro σ
state_before: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝³ : FiniteDimensional L F
this✝² : FiniteDimensional K L
this✝¹ : IsSeparable K L
this✝ : IsSeparable L F
this : (σ : L →ₐ[K] A) → Fintype (F →ₐ[L] A) := fun x => inferInstance
⊢ ∀ (σ : L →ₐ[K] A), ∏ π : F →ₐ[L] A, π x = σ ((norm L) x)
state_after: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝³ : FiniteDimensional L F
this✝² : FiniteDimensional K L
this✝¹ : IsSeparable K L
this✝ : IsSeparable L F
this : (σ : L →ₐ[K] A) → Fintype (F →ₐ[L] A) := fun x => inferInstance
σ : L →ₐ[K] A
⊢ ∏ π : F →ₐ[L] A, π x = σ ((norm L) x)

tactic: letI : Algebra L A := σ.toRingHom.toAlgebra
state_before: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝³ : FiniteDimensional L F
this✝² : FiniteDimensional K L
this✝¹ : IsSeparable K L
this✝ : IsSeparable L F
this : (σ : L →ₐ[K] A) → Fintype (F →ₐ[L] A) := fun x => inferInstance
σ : L →ₐ[K] A
⊢ ∏ π : F →ₐ[L] A, π x = σ ((norm L) x)
state_after: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝⁴ : FiniteDimensional L F
this✝³ : FiniteDimensional K L
this✝² : IsSeparable K L
this✝¹ : IsSeparable L F
this✝ : (σ : L →ₐ[K] A) → Fintype (F →ₐ[L] A) := fun x => inferInstance
σ : L →ₐ[K] A
this : Algebra L A := σ.toAlgebra
⊢ ∏ π : F →ₐ[L] A, π x = σ ((norm L) x)

tactic: rw [← norm_eq_prod_embeddings L A (_ : F)]
state_before: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝⁴ : FiniteDimensional L F
this✝³ : FiniteDimensional K L
this✝² : IsSeparable K L
this✝¹ : IsSeparable L F
this✝ : (σ : L →ₐ[K] A) → Fintype (F →ₐ[L] A) := fun x => inferInstance
σ : L →ₐ[K] A
this : Algebra L A := σ.toAlgebra
⊢ ∏ π : F →ₐ[L] A, π x = σ ((norm L) x)
state_after: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝⁴ : FiniteDimensional L F
this✝³ : FiniteDimensional K L
this✝² : IsSeparable K L
this✝¹ : IsSeparable L F
this✝ : (σ : L →ₐ[K] A) → Fintype (F →ₐ[L] A) := fun x => inferInstance
σ : L →ₐ[K] A
this : Algebra L A := σ.toAlgebra
⊢ (algebraMap L A) ((norm L) x) = σ ((norm L) x)

tactic: rfl
state_before: case pos.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝⁴ : FiniteDimensional L F
this✝³ : FiniteDimensional K L
this✝² : IsSeparable K L
this✝¹ : IsSeparable L F
this✝ : (σ : L →ₐ[K] A) → Fintype (F →ₐ[L] A) := fun x => inferInstance
σ : L →ₐ[K] A
this : Algebra L A := σ.toAlgebra
⊢ (algebraMap L A) ((norm L) x) = σ ((norm L) x)
state_after: no goals

tactic: simp_rw [← Finset.univ_sigma_univ, Finset.prod_sigma, this, norm_eq_prod_embeddings]
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : FiniteDimensional K F
A : Type u_4 := AlgebraicClosure K
this✝⁴ : FiniteDimensional L F
this✝³ : FiniteDimensional K L
this✝² : IsSeparable K L
this✝¹ : IsSeparable L F
this✝ : (σ : L →ₐ[K] A) → Fintype (F →ₐ[L] A) := fun x => inferInstance
this : ∀ (σ : L →ₐ[K] A), ∏ π : F →ₐ[L] A, π x = σ ((norm L) x)
⊢ (algebraMap K A) ((norm K) ((norm L) x)) = ∏ x_1 : (f : L →ₐ[K] A) × (F →ₐ[L] A), x_1.snd x
state_after: no goals

tactic: rw [norm_eq_one_of_not_module_finite hKF]
state_before: case neg
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : ¬FiniteDimensional K F
⊢ (norm K) ((norm L) x) = (norm K) x
state_after: case neg
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : ¬FiniteDimensional K F
⊢ (norm K) ((norm L) x) = 1

tactic: by_cases hKL : FiniteDimensional K L
state_before: case neg
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : ¬FiniteDimensional K F
⊢ (norm K) ((norm L) x) = 1
state_after: case pos
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : ¬FiniteDimensional K F
hKL : FiniteDimensional K L
⊢ (norm K) ((norm L) x) = 1

case neg
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : ¬FiniteDimensional K F
hKL : ¬FiniteDimensional K L
⊢ (norm K) ((norm L) x) = 1

tactic: have hLF : ¬FiniteDimensional L F := by
  refine (mt ?_) hKF
  intro hKF
  exact FiniteDimensional.trans K L F
state_before: case pos
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : ¬FiniteDimensional K F
hKL : FiniteDimensional K L
⊢ (norm K) ((norm L) x) = 1
state_after: case pos
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : ¬FiniteDimensional K F
hKL : FiniteDimensional K L
hLF : ¬FiniteDimensional L F
⊢ (norm K) ((norm L) x) = 1

tactic: rw [norm_eq_one_of_not_module_finite hLF, _root_.map_one]
state_before: case pos
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : ¬FiniteDimensional K F
hKL : FiniteDimensional K L
hLF : ¬FiniteDimensional L F
⊢ (norm K) ((norm L) x) = 1
state_after: no goals

tactic: refine (mt ?_) hKF
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : ¬FiniteDimensional K F
hKL : FiniteDimensional K L
⊢ ¬FiniteDimensional L F
state_after: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : ¬FiniteDimensional K F
hKL : FiniteDimensional K L
⊢ FiniteDimensional L F → FiniteDimensional K F

tactic: intro hKF
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : ¬FiniteDimensional K F
hKL : FiniteDimensional K L
⊢ FiniteDimensional L F → FiniteDimensional K F
state_after: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF✝ : ¬FiniteDimensional K F
hKL : FiniteDimensional K L
hKF : FiniteDimensional L F
⊢ FiniteDimensional K F

tactic: exact FiniteDimensional.trans K L F
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF✝ : ¬FiniteDimensional K F
hKL : FiniteDimensional K L
hKF : FiniteDimensional L F
⊢ FiniteDimensional K F
state_after: no goals

tactic: rw [norm_eq_one_of_not_module_finite hKL]
state_before: case neg
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹² : CommRing R
inst✝¹¹ : Ring S
inst✝¹⁰ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁹ : Field K
inst✝⁸ : Field L
inst✝⁷ : Field F
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Algebra L F
inst✝¹ : IsScalarTower K L F
inst✝ : IsSeparable K F
x : F
hKF : ¬FiniteDimensional K F
hKL : ¬FiniteDimensional K L
⊢ (norm K) ((norm L) x) = 1
state_after: no goals