Theorem: AlgebraicClosure.Step.isIntegral
File: Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean

tactic: induction' n with a h
state_before: k : Type u
inst✝ : Field k
n : ℕ
⊢ ∀ (z : Step k n), IsIntegral k z
state_after: case zero
k : Type u
inst✝ : Field k
⊢ ∀ (z : Step k 0), IsIntegral k z

case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ ∀ (z : Step k (a + 1)), IsIntegral k z

tactic: intro z
state_before: case zero
k : Type u
inst✝ : Field k
⊢ ∀ (z : Step k 0), IsIntegral k z
state_after: case zero
k : Type u
inst✝ : Field k
z : Step k 0
⊢ IsIntegral k z

tactic: exact isIntegral_algebraMap
state_before: case zero
k : Type u
inst✝ : Field k
z : Step k 0
⊢ IsIntegral k z
state_after: no goals

tactic: intro z
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ ∀ (z : Step k (a + 1)), IsIntegral k z
state_after: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
z : Step k (a + 1)
⊢ IsIntegral k z

tactic: change RingHom.IsIntegralElem _ _
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
z : Step k (a + 1)
⊢ IsIntegral k z
state_after: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
z : Step k (a + 1)
⊢ (algebraMap k (Step k (a + 1))).IsIntegralElem z

tactic: revert z
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
z : Step k (a + 1)
⊢ (algebraMap k (Step k (a + 1))).IsIntegralElem z
state_after: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ ∀ (z : Step k (a + 1)), (algebraMap k (Step k (a + 1))).IsIntegralElem z

tactic: change RingHom.IsIntegral _
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ ∀ (z : Step k (a + 1)), (algebraMap k (Step k (a + 1))).IsIntegralElem z
state_after: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ (algebraMap k (Step k (a + 1))).IsIntegral

tactic: unfold algebraMap
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ (algebraMap k (Step k (a + 1))).IsIntegral
state_after: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ Algebra.toRingHom.IsIntegral

tactic: unfold Algebra.toRingHom
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ Algebra.toRingHom.IsIntegral
state_after: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ (algebra k (a + 1)).2.IsIntegral

tactic: unfold algebra
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ (algebra k (a + 1)).2.IsIntegral
state_after: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ (toStepOfLE k 0 (a + 1) ⋯).toAlgebra.2.IsIntegral

tactic: unfold RingHom.toAlgebra
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ (toStepOfLE k 0 (a + 1) ⋯).toAlgebra.2.IsIntegral
state_after: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ ((toStepOfLE k 0 (a + 1) ⋯).toAlgebra' ⋯).2.IsIntegral

tactic: unfold RingHom.toAlgebra'
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ ((toStepOfLE k 0 (a + 1) ⋯).toAlgebra' ⋯).2.IsIntegral
state_after: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ (Algebra.mk (toStepOfLE k 0 (a + 1) ⋯) ⋯ ⋯).2.IsIntegral

tactic: simp only
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ (Algebra.mk (toStepOfLE k 0 (a + 1) ⋯) ⋯ ⋯).2.IsIntegral
state_after: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ (toStepOfLE k 0 (a + 1) ⋯).IsIntegral

tactic: rw [toStepOfLE.succ k a a.zero_le]
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ (toStepOfLE k 0 (a + 1) ⋯).IsIntegral
state_after: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ ((toStepSucc k a).comp (toStepOfLE k 0 a ⋯)).IsIntegral

tactic: apply @RingHom.IsIntegral.trans (Step k 0) (Step k a) (Step k (a + 1)) _ _ _
    (toStepOfLE k 0 a (a.zero_le : 0 ≤ a)) (toStepSucc k a) _
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ ((toStepSucc k a).comp (toStepOfLE k 0 a ⋯)).IsIntegral
state_after: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ (toStepSucc k a).IsIntegral

k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ (toStepOfLE k 0 a ⋯).IsIntegral

tactic: intro z
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ (toStepSucc k a).IsIntegral
state_after: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
z : Step k (a + 1)
⊢ (toStepSucc k a).IsIntegralElem z

tactic: have := AdjoinMonic.isIntegral (Step k a) (z : Step k (a + 1))
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
z : Step k (a + 1)
⊢ (toStepSucc k a).IsIntegralElem z
state_after: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
z : Step k (a + 1)
this : IsIntegral (Step k a) z
⊢ (toStepSucc k a).IsIntegralElem z

tactic: convert this
state_before: case succ
k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
z : Step k (a + 1)
this : IsIntegral (Step k a) z
⊢ (toStepSucc k a).IsIntegralElem z
state_after: no goals

tactic: convert h
state_before: k : Type u
inst✝ : Field k
a : ℕ
h : ∀ (z : Step k a), IsIntegral k z
⊢ (toStepOfLE k 0 a ⋯).IsIntegral
state_after: no goals