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

tactic: obtain (⟨i,hi⟩|⟨i,hi⟩) := lf_iff_exists_le.1 (lf_of_lt hl)
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
y₁ y₂ : PGame
h : ∀ (i : x₂.LeftMoves), IH3 x₁ (x₂.moveLeft i) x₂ y₁ y₂
hs : ∀ (i : (-x₁).LeftMoves), IH3 (-x₂) ((-x₁).moveLeft i) (-x₁) y₁ y₂
hl : x₁ < x₂
⊢ P3 x₁ x₂ y₁ y₂
state_after: case inl.intro
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
y₁ y₂ : PGame
h : ∀ (i : x₂.LeftMoves), IH3 x₁ (x₂.moveLeft i) x₂ y₁ y₂
hs : ∀ (i : (-x₁).LeftMoves), IH3 (-x₂) ((-x₁).moveLeft i) (-x₁) y₁ y₂
hl : x₁ < x₂
i : x₂.LeftMoves
hi : x₁ ≤ x₂.moveLeft i
⊢ P3 x₁ x₂ y₁ y₂

case inr.intro
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
y₁ y₂ : PGame
h : ∀ (i : x₂.LeftMoves), IH3 x₁ (x₂.moveLeft i) x₂ y₁ y₂
hs : ∀ (i : (-x₁).LeftMoves), IH3 (-x₂) ((-x₁).moveLeft i) (-x₁) y₁ y₂
hl : x₁ < x₂
i : x₁.RightMoves
hi : x₁.moveRight i ≤ x₂
⊢ P3 x₁ x₂ y₁ y₂

tactic: exact P3_of_le_left i (h i) hi
state_before: case inl.intro
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
y₁ y₂ : PGame
h : ∀ (i : x₂.LeftMoves), IH3 x₁ (x₂.moveLeft i) x₂ y₁ y₂
hs : ∀ (i : (-x₁).LeftMoves), IH3 (-x₂) ((-x₁).moveLeft i) (-x₁) y₁ y₂
hl : x₁ < x₂
i : x₂.LeftMoves
hi : x₁ ≤ x₂.moveLeft i
⊢ P3 x₁ x₂ y₁ y₂
state_after: no goals

tactic: exact P3_neg.2 <| P3_of_le_left _ (hs _) <| by
  rw [moveLeft_neg]
  exact neg_le_neg (le_iff_game_le.1 hi)
state_before: case inr.intro
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
y₁ y₂ : PGame
h : ∀ (i : x₂.LeftMoves), IH3 x₁ (x₂.moveLeft i) x₂ y₁ y₂
hs : ∀ (i : (-x₁).LeftMoves), IH3 (-x₂) ((-x₁).moveLeft i) (-x₁) y₁ y₂
hl : x₁ < x₂
i : x₁.RightMoves
hi : x₁.moveRight i ≤ x₂
⊢ P3 x₁ x₂ y₁ y₂
state_after: no goals

tactic: rw [moveLeft_neg]
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
y₁ y₂ : PGame
h : ∀ (i : x₂.LeftMoves), IH3 x₁ (x₂.moveLeft i) x₂ y₁ y₂
hs : ∀ (i : (-x₁).LeftMoves), IH3 (-x₂) ((-x₁).moveLeft i) (-x₁) y₁ y₂
hl : x₁ < x₂
i : x₁.RightMoves
hi : x₁.moveRight i ≤ x₂
⊢ -x₂ ≤ (-x₁).moveLeft ?m.49249
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
y₁ y₂ : PGame
h : ∀ (i : x₂.LeftMoves), IH3 x₁ (x₂.moveLeft i) x₂ y₁ y₂
hs : ∀ (i : (-x₁).LeftMoves), IH3 (-x₂) ((-x₁).moveLeft i) (-x₁) y₁ y₂
hl : x₁ < x₂
i : x₁.RightMoves
hi : x₁.moveRight i ≤ x₂
⊢ -x₂ ≤ -x₁.moveRight ?m.49258

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
y₁ y₂ : PGame
h : ∀ (i : x₂.LeftMoves), IH3 x₁ (x₂.moveLeft i) x₂ y₁ y₂
hs : ∀ (i : (-x₁).LeftMoves), IH3 (-x₂) ((-x₁).moveLeft i) (-x₁) y₁ y₂
hl : x₁ < x₂
i : x₁.RightMoves
hi : x₁.moveRight i ≤ x₂
⊢ x₁.RightMoves

tactic: exact neg_le_neg (le_iff_game_le.1 hi)
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
y₁ y₂ : PGame
h : ∀ (i : x₂.LeftMoves), IH3 x₁ (x₂.moveLeft i) x₂ y₁ y₂
hs : ∀ (i : (-x₁).LeftMoves), IH3 (-x₂) ((-x₁).moveLeft i) (-x₁) y₁ y₂
hl : x₁ < x₂
i : x₁.RightMoves
hi : x₁.moveRight i ≤ x₂
⊢ -x₂ ≤ -x₁.moveRight ?m.49258

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
y₁ y₂ : PGame
h : ∀ (i : x₂.LeftMoves), IH3 x₁ (x₂.moveLeft i) x₂ y₁ y₂
hs : ∀ (i : (-x₁).LeftMoves), IH3 (-x₂) ((-x₁).moveLeft i) (-x₁) y₁ y₂
hl : x₁ < x₂
i : x₁.RightMoves
hi : x₁.moveRight i ≤ x₂
⊢ x₁.RightMoves
state_after: no goals