Theorem: RelEmbedding.collapseF.not_lt
File: Mathlib/Order/InitialSeg.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
inst✝ : IsWellOrder β s
f : r ↪r s
a : α
b : β
h : ∀ (a' : α), r a' a → s (↑(f.collapseF a')) b
⊢ ¬s b ↑(f.collapseF a)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
inst✝ : IsWellOrder β s
f : r ↪r s
a : α
b : β
h : ∀ (a' : α), r a' a → s (↑(f.collapseF a')) b
⊢ ¬s b
      ↑(⋯.fix
          (fun a IH =>
            let S := {b | ∀ (a_1 : α) (h : r a_1 a), s (↑(IH a_1 h)) b};
            let_fun this := ⋯;
            ⟨⋯.min S ⋯, ⋯⟩)
          a)
tactic: unfold collapseF
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
inst✝ : IsWellOrder β s
f : r ↪r s
a : α
b : β
h : ∀ (a' : α), r a' a → s (↑(f.collapseF a')) b
⊢ ¬s b
      ↑(⋯.fix
          (fun a IH =>
            let S := {b | ∀ (a_1 : α) (h : r a_1 a), s (↑(IH a_1 h)) b};
            let_fun this := ⋯;
            ⟨⋯.min S ⋯, ⋯⟩)
          a)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
inst✝ : IsWellOrder β s
f : r ↪r s
a : α
b : β
h : ∀ (a' : α), r a' a → s (↑(f.collapseF a')) b
⊢ ¬s b
      ↑(let S :=
          {b |
            ∀ (a_1 : α) (h : r a_1 a),
              s
                (↑((fun y x =>
                      ⋯.fix
                        (fun a IH =>
                          let S := {b | ∀ (a_2 : α) (h : r a_2 a), s (↑(IH a_2 h)) b};
                          let_fun this := ⋯;
                          ⟨⋯.min S ⋯, ⋯⟩)
                        y)
                    a_1 h))
                b};
        let_fun this := ⋯;
        ⟨⋯.min S ⋯, ⋯⟩)
tactic: rw [WellFounded.fix_eq]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
inst✝ : IsWellOrder β s
f : r ↪r s
a : α
b : β
h : ∀ (a' : α), r a' a → s (↑(f.collapseF a')) b
⊢ ¬s b
      ↑(let S :=
          {b |
            ∀ (a_1 : α) (h : r a_1 a),
              s
                (↑((fun y x =>
                      ⋯.fix
                        (fun a IH =>
                          let S := {b | ∀ (a_2 : α) (h : r a_2 a), s (↑(IH a_2 h)) b};
                          let_fun this := ⋯;
                          ⟨⋯.min S ⋯, ⋯⟩)
                        y)
                    a_1 h))
                b};
        let_fun this := ⋯;
        ⟨⋯.min S ⋯, ⋯⟩)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
inst✝ : IsWellOrder β s
f : r ↪r s
a : α
b : β
h : ∀ (a' : α), r a' a → s (↑(f.collapseF a')) b
⊢ ¬s b
      (⋯.min
        {b |
          ∀ (a_1 : α),
            r a_1 a → s (↑(⋯.fix (fun a IH => ⟨⋯.min {b | ∀ (a_2 : α) (h : r a_2 a), s (↑(IH a_2 h)) b} ⋯, ⋯⟩) a_1)) b}
        ⋯)
tactic: dsimp only
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
inst✝ : IsWellOrder β s
f : r ↪r s
a : α
b : β
h : ∀ (a' : α), r a' a → s (↑(f.collapseF a')) b
⊢ ¬s b
      (⋯.min
        {b |
          ∀ (a_1 : α),
            r a_1 a → s (↑(⋯.fix (fun a IH => ⟨⋯.min {b | ∀ (a_2 : α) (h : r a_2 a), s (↑(IH a_2 h)) b} ⋯, ⋯⟩) a_1)) b}
        ⋯)
state_after: no goals
tactic: exact WellFounded.not_lt_min _ _ _ h