Theorem: IntermediateField.fixingSubgroup_fixedField
File: Mathlib/FieldTheory/Galois.lean

tactic: have H_le : H ≤ fixingSubgroup (fixedField H) := (le_iff_le _ _).mp le_rfl
state_before: F : Type u_1
inst✝³ : Field F
E : Type u_2
inst✝² : Field E
inst✝¹ : Algebra F E
H : Subgroup (E ≃ₐ[F] E)
K : IntermediateField F E
inst✝ : FiniteDimensional F E
⊢ (fixedField H).fixingSubgroup = H
state_after: F : Type u_1
inst✝³ : Field F
E : Type u_2
inst✝² : Field E
inst✝¹ : Algebra F E
H : Subgroup (E ≃ₐ[F] E)
K : IntermediateField F E
inst✝ : FiniteDimensional F E
H_le : H ≤ (fixedField H).fixingSubgroup
⊢ (fixedField H).fixingSubgroup = H

tactic: classical
suffices Fintype.card H = Fintype.card (fixingSubgroup (fixedField H)) by
  exact SetLike.coe_injective (Set.eq_of_inclusion_surjective
    ((Fintype.bijective_iff_injective_and_card (Set.inclusion H_le)).mpr
      ⟨Set.inclusion_injective H_le, this⟩).2).symm
apply Fintype.card_congr
refine (FixedPoints.toAlgHomEquiv H E).trans ?_
refine (algEquivEquivAlgHom (fixedField H) E).toEquiv.symm.trans ?_
exact (fixingSubgroupEquiv (fixedField H)).toEquiv.symm
state_before: F : Type u_1
inst✝³ : Field F
E : Type u_2
inst✝² : Field E
inst✝¹ : Algebra F E
H : Subgroup (E ≃ₐ[F] E)
K : IntermediateField F E
inst✝ : FiniteDimensional F E
H_le : H ≤ (fixedField H).fixingSubgroup
⊢ (fixedField H).fixingSubgroup = H
state_after: no goals

tactic: suffices Fintype.card H = Fintype.card (fixingSubgroup (fixedField H)) by
  exact SetLike.coe_injective (Set.eq_of_inclusion_surjective
    ((Fintype.bijective_iff_injective_and_card (Set.inclusion H_le)).mpr
      ⟨Set.inclusion_injective H_le, this⟩).2).symm
state_before: F : Type u_1
inst✝³ : Field F
E : Type u_2
inst✝² : Field E
inst✝¹ : Algebra F E
H : Subgroup (E ≃ₐ[F] E)
K : IntermediateField F E
inst✝ : FiniteDimensional F E
H_le : H ≤ (fixedField H).fixingSubgroup
⊢ (fixedField H).fixingSubgroup = H
state_after: F : Type u_1
inst✝³ : Field F
E : Type u_2
inst✝² : Field E
inst✝¹ : Algebra F E
H : Subgroup (E ≃ₐ[F] E)
K : IntermediateField F E
inst✝ : FiniteDimensional F E
H_le : H ≤ (fixedField H).fixingSubgroup
⊢ Fintype.card ↥H = Fintype.card ↥(fixedField H).fixingSubgroup

tactic: apply Fintype.card_congr
state_before: F : Type u_1
inst✝³ : Field F
E : Type u_2
inst✝² : Field E
inst✝¹ : Algebra F E
H : Subgroup (E ≃ₐ[F] E)
K : IntermediateField F E
inst✝ : FiniteDimensional F E
H_le : H ≤ (fixedField H).fixingSubgroup
⊢ Fintype.card ↥H = Fintype.card ↥(fixedField H).fixingSubgroup
state_after: case f
F : Type u_1
inst✝³ : Field F
E : Type u_2
inst✝² : Field E
inst✝¹ : Algebra F E
H : Subgroup (E ≃ₐ[F] E)
K : IntermediateField F E
inst✝ : FiniteDimensional F E
H_le : H ≤ (fixedField H).fixingSubgroup
⊢ ↥H ≃ ↥(fixedField H).fixingSubgroup

tactic: refine (FixedPoints.toAlgHomEquiv H E).trans ?_
state_before: case f
F : Type u_1
inst✝³ : Field F
E : Type u_2
inst✝² : Field E
inst✝¹ : Algebra F E
H : Subgroup (E ≃ₐ[F] E)
K : IntermediateField F E
inst✝ : FiniteDimensional F E
H_le : H ≤ (fixedField H).fixingSubgroup
⊢ ↥H ≃ ↥(fixedField H).fixingSubgroup
state_after: case f
F : Type u_1
inst✝³ : Field F
E : Type u_2
inst✝² : Field E
inst✝¹ : Algebra F E
H : Subgroup (E ≃ₐ[F] E)
K : IntermediateField F E
inst✝ : FiniteDimensional F E
H_le : H ≤ (fixedField H).fixingSubgroup
⊢ (E →ₐ[↥(FixedPoints.subfield (↥H) E)] E) ≃ ↥(fixedField H).fixingSubgroup

tactic: refine (algEquivEquivAlgHom (fixedField H) E).toEquiv.symm.trans ?_
state_before: case f
F : Type u_1
inst✝³ : Field F
E : Type u_2
inst✝² : Field E
inst✝¹ : Algebra F E
H : Subgroup (E ≃ₐ[F] E)
K : IntermediateField F E
inst✝ : FiniteDimensional F E
H_le : H ≤ (fixedField H).fixingSubgroup
⊢ (E →ₐ[↥(FixedPoints.subfield (↥H) E)] E) ≃ ↥(fixedField H).fixingSubgroup
state_after: case f
F : Type u_1
inst✝³ : Field F
E : Type u_2
inst✝² : Field E
inst✝¹ : Algebra F E
H : Subgroup (E ≃ₐ[F] E)
K : IntermediateField F E
inst✝ : FiniteDimensional F E
H_le : H ≤ (fixedField H).fixingSubgroup
⊢ (E ≃ₐ[↥(fixedField H)] E) ≃ ↥(fixedField H).fixingSubgroup

tactic: exact (fixingSubgroupEquiv (fixedField H)).toEquiv.symm
state_before: case f
F : Type u_1
inst✝³ : Field F
E : Type u_2
inst✝² : Field E
inst✝¹ : Algebra F E
H : Subgroup (E ≃ₐ[F] E)
K : IntermediateField F E
inst✝ : FiniteDimensional F E
H_le : H ≤ (fixedField H).fixingSubgroup
⊢ (E ≃ₐ[↥(fixedField H)] E) ≃ ↥(fixedField H).fixingSubgroup
state_after: no goals

tactic: exact SetLike.coe_injective (Set.eq_of_inclusion_surjective
  ((Fintype.bijective_iff_injective_and_card (Set.inclusion H_le)).mpr
    ⟨Set.inclusion_injective H_le, this⟩).2).symm
state_before: F : Type u_1
inst✝³ : Field F
E : Type u_2
inst✝² : Field E
inst✝¹ : Algebra F E
H : Subgroup (E ≃ₐ[F] E)
K : IntermediateField F E
inst✝ : FiniteDimensional F E
H_le : H ≤ (fixedField H).fixingSubgroup
this : Fintype.card ↥H = Fintype.card ↥(fixedField H).fixingSubgroup
⊢ (fixedField H).fixingSubgroup = H
state_after: no goals