Theorem: Ordinal.typein_lt_typein
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: have : f.top.1 = a := by
  let f' := PrincipalSeg.ofElement r a
  let g' := f.trans (PrincipalSeg.ofElement r b)
  have : g'.top = f'.top := by rw [Subsingleton.elim f' g']
  exact this
state_before: α : Type u
β : Type u_1
γ : Type u_2
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
a b : α
x✝ : typein r a < typein r b
f : Subrel r {b | r b a} ≺i Subrel r {b_1 | r b_1 b}
⊢ r a b
state_after: α : Type u
β : Type u_1
γ : Type u_2
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
a b : α
x✝ : typein r a < typein r b
f : Subrel r {b | r b a} ≺i Subrel r {b_1 | r b_1 b}
this : ↑f.top = a
⊢ r a b

tactic: rw [← this]
state_before: α : Type u
β : Type u_1
γ : Type u_2
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
a b : α
x✝ : typein r a < typein r b
f : Subrel r {b | r b a} ≺i Subrel r {b_1 | r b_1 b}
this : ↑f.top = a
⊢ r a b
state_after: α : Type u
β : Type u_1
γ : Type u_2
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
a b : α
x✝ : typein r a < typein r b
f : Subrel r {b | r b a} ≺i Subrel r {b_1 | r b_1 b}
this : ↑f.top = a
⊢ r (↑f.top) b

tactic: exact f.top.2
state_before: α : Type u
β : Type u_1
γ : Type u_2
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
a b : α
x✝ : typein r a < typein r b
f : Subrel r {b | r b a} ≺i Subrel r {b_1 | r b_1 b}
this : ↑f.top = a
⊢ r (↑f.top) b
state_after: no goals

tactic: let f' := PrincipalSeg.ofElement r a
state_before: α : Type u
β : Type u_1
γ : Type u_2
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
a b : α
x✝ : typein r a < typein r b
f : Subrel r {b | r b a} ≺i Subrel r {b_1 | r b_1 b}
⊢ ↑f.top = a
state_after: α : Type u
β : Type u_1
γ : Type u_2
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
a b : α
x✝ : typein r a < typein r b
f : Subrel r {b | r b a} ≺i Subrel r {b_1 | r b_1 b}
f' : Subrel r {b | r b a} ≺i r := PrincipalSeg.ofElement r a
⊢ ↑f.top = a

tactic: let g' := f.trans (PrincipalSeg.ofElement r b)
state_before: α : Type u
β : Type u_1
γ : Type u_2
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
a b : α
x✝ : typein r a < typein r b
f : Subrel r {b | r b a} ≺i Subrel r {b_1 | r b_1 b}
f' : Subrel r {b | r b a} ≺i r := PrincipalSeg.ofElement r a
⊢ ↑f.top = a
state_after: α : Type u
β : Type u_1
γ : Type u_2
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
a b : α
x✝ : typein r a < typein r b
f : Subrel r {b | r b a} ≺i Subrel r {b_1 | r b_1 b}
f' : Subrel r {b | r b a} ≺i r := PrincipalSeg.ofElement r a
g' : Subrel r {b | r b a} ≺i r := f.trans (PrincipalSeg.ofElement r b)
⊢ ↑f.top = a

tactic: have : g'.top = f'.top := by rw [Subsingleton.elim f' g']
state_before: α : Type u
β : Type u_1
γ : Type u_2
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
a b : α
x✝ : typein r a < typein r b
f : Subrel r {b | r b a} ≺i Subrel r {b_1 | r b_1 b}
f' : Subrel r {b | r b a} ≺i r := PrincipalSeg.ofElement r a
g' : Subrel r {b | r b a} ≺i r := f.trans (PrincipalSeg.ofElement r b)
⊢ ↑f.top = a
state_after: α : Type u
β : Type u_1
γ : Type u_2
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
a b : α
x✝ : typein r a < typein r b
f : Subrel r {b | r b a} ≺i Subrel r {b_1 | r b_1 b}
f' : Subrel r {b | r b a} ≺i r := PrincipalSeg.ofElement r a
g' : Subrel r {b | r b a} ≺i r := f.trans (PrincipalSeg.ofElement r b)
this : g'.top = f'.top
⊢ ↑f.top = a

tactic: exact this
state_before: α : Type u
β : Type u_1
γ : Type u_2
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
a b : α
x✝ : typein r a < typein r b
f : Subrel r {b | r b a} ≺i Subrel r {b_1 | r b_1 b}
f' : Subrel r {b | r b a} ≺i r := PrincipalSeg.ofElement r a
g' : Subrel r {b | r b a} ≺i r := f.trans (PrincipalSeg.ofElement r b)
this : g'.top = f'.top
⊢ ↑f.top = a
state_after: no goals

tactic: rw [Subsingleton.elim f' g']
state_before: α : Type u
β : Type u_1
γ : Type u_2
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
a b : α
x✝ : typein r a < typein r b
f : Subrel r {b | r b a} ≺i Subrel r {b_1 | r b_1 b}
f' : Subrel r {b | r b a} ≺i r := PrincipalSeg.ofElement r a
g' : Subrel r {b | r b a} ≺i r := f.trans (PrincipalSeg.ofElement r b)
⊢ g'.top = f'.top
state_after: no goals