Theorem: HahnSeries.min_order_le_order_add
File: Mathlib/RingTheory/HahnSeries/Addition.lean

tactic: by_cases hx : x = 0
state_before: Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
⊢ min x.order y.order ≤ (x + y).order
state_after: case pos
Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : x = 0
⊢ min x.order y.order ≤ (x + y).order

case neg
Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : ¬x = 0
⊢ min x.order y.order ≤ (x + y).order

tactic: by_cases hy : y = 0
state_before: case neg
Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : ¬x = 0
⊢ min x.order y.order ≤ (x + y).order
state_after: case pos
Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : ¬x = 0
hy : y = 0
⊢ min x.order y.order ≤ (x + y).order

case neg
Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : ¬x = 0
hy : ¬y = 0
⊢ min x.order y.order ≤ (x + y).order

tactic: rw [order_of_ne hx, order_of_ne hy, order_of_ne hxy]
state_before: case neg
Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : ¬x = 0
hy : ¬y = 0
⊢ min x.order y.order ≤ (x + y).order
state_after: case neg
Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : ¬x = 0
hy : ¬y = 0
⊢ min (⋯.min ⋯) (⋯.min ⋯) ≤ ⋯.min ⋯

tactic: apply le_of_eq_of_le _ (Set.IsWF.min_le_min_of_subset (support_add_subset (x := x) (y := y)))
state_before: case neg
Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : ¬x = 0
hy : ¬y = 0
⊢ min (⋯.min ⋯) (⋯.min ⋯) ≤ ⋯.min ⋯
state_after: Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : ¬x = 0
hy : ¬y = 0
⊢ (x.support ∪ y.support).IsWF

Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : ¬x = 0
hy : ¬y = 0
⊢ (x.support ∪ y.support).Nonempty

Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : ¬x = 0
hy : ¬y = 0
⊢ min (⋯.min ⋯) (⋯.min ⋯) = ?m.17023.min ?m.17024

tactic: simp [hx]
state_before: case pos
Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : x = 0
⊢ min x.order y.order ≤ (x + y).order
state_after: no goals

tactic: simp [hy]
state_before: case pos
Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : ¬x = 0
hy : y = 0
⊢ min x.order y.order ≤ (x + y).order
state_after: no goals

tactic: simp
state_before: Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : ¬x = 0
hy : ¬y = 0
⊢ (x.support ∪ y.support).IsWF
state_after: no goals

tactic: simp [hy]
state_before: Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : ¬x = 0
hy : ¬y = 0
⊢ (x.support ∪ y.support).Nonempty
state_after: no goals

tactic: exact (Set.IsWF.min_union _ _ _ _).symm
state_before: Γ✝ : Type u_1
R : Type u_2
inst✝³ : PartialOrder Γ✝
inst✝² : AddMonoid R
Γ : Type u_3
inst✝¹ : Zero Γ
inst✝ : LinearOrder Γ
x y : HahnSeries Γ R
hxy : x + y ≠ 0
hx : ¬x = 0
hy : ¬y = 0
⊢ min (⋯.min ⋯) (⋯.min ⋯) = ⋯.min ⋯
state_after: no goals