Theorem: Surreal.Multiplication.mulOption_lt_mul_of_equiv
File: Mathlib/SetTheory/Surreal/Multiplication.lean

tactic: convert sub_lt_iff_lt_add'.2 ((((@h _).1 <| IsOption.moveLeft i).2 _).1 j) using 1
state_before: x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
ih : ∀ (a : Args), ArgsRel a (Args.P1 x y) → P124 a
hx : x.Numeric
hy : y.Numeric
ih' : ∀ (a : Args), ArgsRel a (Args.P24 x₁ x₂ y) → P124 a
hn : x₁.Numeric
h : IH24 x₁ x₂ y
he : x₁ ≈ x₂
i : x₁.LeftMoves
j : y.LeftMoves
⊢ ⟦x₁.mulOption y i j⟧ < ⟦x₂ * y⟧
state_after: case h.e'_3
x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
ih : ∀ (a : Args), ArgsRel a (Args.P1 x y) → P124 a
hx : x.Numeric
hy : y.Numeric
ih' : ∀ (a : Args), ArgsRel a (Args.P24 x₁ x₂ y) → P124 a
hn : x₁.Numeric
h : IH24 x₁ x₂ y
he : x₁ ≈ x₂
i : x₁.LeftMoves
j : y.LeftMoves
⊢ ⟦x₁.mulOption y i j⟧ = ⟦x₁.moveLeft i * y⟧ + ⟦x₂ * y.moveLeft j⟧ - ⟦x₁.moveLeft i * y.moveLeft j⟧

x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
ih : ∀ (a : Args), ArgsRel a (Args.P1 x y) → P124 a
hx : x.Numeric
hy : y.Numeric
ih' : ∀ (a : Args), ArgsRel a (Args.P24 x₁ x₂ y) → P124 a
hn : x₁.Numeric
h : IH24 x₁ x₂ y
he : x₁ ≈ x₂
i : x₁.LeftMoves
j : y.LeftMoves
⊢ x₁.moveLeft i < x₂

tactic: rw [← ((@h _).2.2 <| IsOption.moveLeft j).1 he]
state_before: case h.e'_3
x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
ih : ∀ (a : Args), ArgsRel a (Args.P1 x y) → P124 a
hx : x.Numeric
hy : y.Numeric
ih' : ∀ (a : Args), ArgsRel a (Args.P24 x₁ x₂ y) → P124 a
hn : x₁.Numeric
h : IH24 x₁ x₂ y
he : x₁ ≈ x₂
i : x₁.LeftMoves
j : y.LeftMoves
⊢ ⟦x₁.mulOption y i j⟧ = ⟦x₁.moveLeft i * y⟧ + ⟦x₂ * y.moveLeft j⟧ - ⟦x₁.moveLeft i * y.moveLeft j⟧
state_after: case h.e'_3
x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
ih : ∀ (a : Args), ArgsRel a (Args.P1 x y) → P124 a
hx : x.Numeric
hy : y.Numeric
ih' : ∀ (a : Args), ArgsRel a (Args.P24 x₁ x₂ y) → P124 a
hn : x₁.Numeric
h : IH24 x₁ x₂ y
he : x₁ ≈ x₂
i : x₁.LeftMoves
j : y.LeftMoves
⊢ ⟦x₁.mulOption y i j⟧ = ⟦x₁.moveLeft i * y⟧ + ⟦x₁ * y.moveLeft j⟧ - ⟦x₁.moveLeft i * y.moveLeft j⟧

tactic: rfl
state_before: case h.e'_3
x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
ih : ∀ (a : Args), ArgsRel a (Args.P1 x y) → P124 a
hx : x.Numeric
hy : y.Numeric
ih' : ∀ (a : Args), ArgsRel a (Args.P24 x₁ x₂ y) → P124 a
hn : x₁.Numeric
h : IH24 x₁ x₂ y
he : x₁ ≈ x₂
i : x₁.LeftMoves
j : y.LeftMoves
⊢ ⟦x₁.mulOption y i j⟧ = ⟦x₁.moveLeft i * y⟧ + ⟦x₁ * y.moveLeft j⟧ - ⟦x₁.moveLeft i * y.moveLeft j⟧
state_after: no goals

tactic: rw [← lt_congr_right he]
state_before: x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
ih : ∀ (a : Args), ArgsRel a (Args.P1 x y) → P124 a
hx : x.Numeric
hy : y.Numeric
ih' : ∀ (a : Args), ArgsRel a (Args.P24 x₁ x₂ y) → P124 a
hn : x₁.Numeric
h : IH24 x₁ x₂ y
he : x₁ ≈ x₂
i : x₁.LeftMoves
j : y.LeftMoves
⊢ x₁.moveLeft i < x₂
state_after: x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
ih : ∀ (a : Args), ArgsRel a (Args.P1 x y) → P124 a
hx : x.Numeric
hy : y.Numeric
ih' : ∀ (a : Args), ArgsRel a (Args.P24 x₁ x₂ y) → P124 a
hn : x₁.Numeric
h : IH24 x₁ x₂ y
he : x₁ ≈ x₂
i : x₁.LeftMoves
j : y.LeftMoves
⊢ x₁.moveLeft i < x₁

tactic: apply hn.moveLeft_lt
state_before: x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
ih : ∀ (a : Args), ArgsRel a (Args.P1 x y) → P124 a
hx : x.Numeric
hy : y.Numeric
ih' : ∀ (a : Args), ArgsRel a (Args.P24 x₁ x₂ y) → P124 a
hn : x₁.Numeric
h : IH24 x₁ x₂ y
he : x₁ ≈ x₂
i : x₁.LeftMoves
j : y.LeftMoves
⊢ x₁.moveLeft i < x₁
state_after: no goals