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

tactic: apply argsRel_wf.induction a
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
a : Args
⊢ a.Numeric → P124 a
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
a : Args
⊢ ∀ (x : Args), (∀ (y : Args), ArgsRel y x → y.Numeric → P124 y) → x.Numeric → P124 x

tactic: intros a ih ha
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
a : Args
⊢ ∀ (x : Args), (∀ (y : Args), ArgsRel y x → y.Numeric → P124 y) → x.Numeric → P124 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
a✝ a : Args
ih : ∀ (y : Args), ArgsRel y a → y.Numeric → P124 y
ha : a.Numeric
⊢ P124 a

tactic: replace ih : ∀ a', ArgsRel a' a → P124 a' := fun a' hr ↦ ih a' hr (hr.numeric_closed ha)
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
a✝ a : Args
ih : ∀ (y : Args), ArgsRel y a → y.Numeric → P124 y
ha : a.Numeric
⊢ P124 a
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
a✝ a : Args
ha : a.Numeric
ih : ∀ (a' : Args), ArgsRel a' a → P124 a'
⊢ P124 a

tactic: rw [Args.numeric_P1] at ha
state_before: case P1
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
a : Args
x y : PGame
ha : (Args.P1 x y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P1 x y) → P124 a'
⊢ P124 (Args.P1 x y)
state_after: case P1
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
a : Args
x y : PGame
ha : x.Numeric ∧ y.Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P1 x y) → P124 a'
⊢ P124 (Args.P1 x y)

tactic: exact P1_of_ih ih ha.1 ha.2
state_before: case P1
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
a : Args
x y : PGame
ha : x.Numeric ∧ y.Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P1 x y) → P124 a'
⊢ P124 (Args.P1 x y)
state_after: no goals

tactic: have h₁₂ := ih₁₂ ih
state_before: case P24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
⊢ P124 (Args.P24 x₁ x₂ y)
state_after: case P24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
⊢ P124 (Args.P24 x₁ x₂ y)

tactic: have h₂₁ := ih₂₁ ih
state_before: case P24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
⊢ P124 (Args.P24 x₁ x₂ y)
state_after: case P24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
⊢ P124 (Args.P24 x₁ x₂ y)

tactic: have h4 := ih4 ih
state_before: case P24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
⊢ P124 (Args.P24 x₁ x₂ y)
state_after: case P24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
⊢ P124 (Args.P24 x₁ x₂ y)

tactic: obtain ⟨h₁₂x, h₁₂y⟩ := ih24_neg h₁₂
state_before: case P24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
⊢ P124 (Args.P24 x₁ x₂ y)
state_after: case P24.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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
⊢ P124 (Args.P24 x₁ x₂ y)

tactic: obtain ⟨h4x, h4y⟩ := ih4_neg h4
state_before: case P24.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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
⊢ P124 (Args.P24 x₁ x₂ y)
state_after: case P24.intro.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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
⊢ P124 (Args.P24 x₁ x₂ y)

tactic: refine ⟨fun he ↦ Quotient.sound ?_, fun hl ↦ ?_⟩
state_before: case P24.intro.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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
⊢ P124 (Args.P24 x₁ x₂ y)
state_after: case P24.intro.intro.refine_1
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
he : x₁ ≈ x₂
⊢ x₁ * y ≈ x₂ * y

case P24.intro.intro.refine_2
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
⊢ (∀ (i : y.LeftMoves), P3 x₁ x₂ (y.moveLeft i) y) ∧ ∀ (j : (-y).LeftMoves), P3 x₁ x₂ ((-y).moveLeft j) (-y)

tactic: rw [Args.numeric_P24] at ha
state_before: case P24.intro.intro.refine_1
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
he : x₁ ≈ x₂
⊢ x₁ * y ≈ x₂ * y
state_after: case P24.intro.intro.refine_1
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
a : Args
x₁ x₂ y : PGame
ha : x₁.Numeric ∧ x₂.Numeric ∧ y.Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
he : x₁ ≈ x₂
⊢ x₁ * y ≈ x₂ * y

tactic: exact ⟨mul_right_le_of_equiv ha.1 ha.2.1 h₁₂ h₂₁ he,
  mul_right_le_of_equiv ha.2.1 ha.1 h₂₁ h₁₂ (symm he)⟩
state_before: case P24.intro.intro.refine_1
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
a : Args
x₁ x₂ y : PGame
ha : x₁.Numeric ∧ x₂.Numeric ∧ y.Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
he : x₁ ≈ x₂
⊢ x₁ * y ≈ x₂ * y
state_after: no goals

tactic: obtain ⟨hn₁, hn₂⟩ := numeric_of_ih ih
state_before: case P24.intro.intro.refine_2
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
⊢ (∀ (i : y.LeftMoves), P3 x₁ x₂ (y.moveLeft i) y) ∧ ∀ (j : (-y).LeftMoves), P3 x₁ x₂ ((-y).moveLeft j) (-y)
state_after: case P24.intro.intro.refine_2.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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
⊢ (∀ (i : y.LeftMoves), P3 x₁ x₂ (y.moveLeft i) y) ∧ ∀ (j : (-y).LeftMoves), P3 x₁ x₂ ((-y).moveLeft j) (-y)

tactic: obtain ⟨⟨h₁, -⟩, h₂, -⟩ := mulOptionsLTMul_of_numeric hn₂
state_before: case P24.intro.intro.refine_2.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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
⊢ (∀ (i : y.LeftMoves), P3 x₁ x₂ (y.moveLeft i) y) ∧ ∀ (j : (-y).LeftMoves), P3 x₁ x₂ ((-y).moveLeft j) (-y)
state_after: case P24.intro.intro.refine_2.intro.intro.intro.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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
⊢ (∀ (i : y.LeftMoves), P3 x₁ x₂ (y.moveLeft i) y) ∧ ∀ (j : (-y).LeftMoves), P3 x₁ x₂ ((-y).moveLeft j) (-y)

tactic: obtain ⟨⟨-, h₃⟩, -, h₄⟩ := mulOptionsLTMul_of_numeric hn₁
state_before: case P24.intro.intro.refine_2.intro.intro.intro.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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
⊢ (∀ (i : y.LeftMoves), P3 x₁ x₂ (y.moveLeft i) y) ∧ ∀ (j : (-y).LeftMoves), P3 x₁ x₂ ((-y).moveLeft j) (-y)
state_after: case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
⊢ (∀ (i : y.LeftMoves), P3 x₁ x₂ (y.moveLeft i) y) ∧ ∀ (j : (-y).LeftMoves), P3 x₁ x₂ ((-y).moveLeft j) (-y)

tactic: constructor <;> intro <;> refine P3_of_lt ?_ ?_ hl <;> intro <;> apply ih3_of_ih
state_before: case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
⊢ (∀ (i : y.LeftMoves), P3 x₁ x₂ (y.moveLeft i) y) ∧ ∀ (j : (-y).LeftMoves), P3 x₁ x₂ ((-y).moveLeft j) (-y)
state_after: case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.left.refine_1.h24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
i✝¹ : y.LeftMoves
i✝ : x₂.LeftMoves
⊢ IH24 x₁ x₂ y

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.left.refine_1.h4
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
i✝¹ : y.LeftMoves
i✝ : x₂.LeftMoves
⊢ IH4 x₁ x₂ y

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.left.refine_1.hl
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
i✝¹ : y.LeftMoves
i✝ : x₂.LeftMoves
⊢ MulOptionsLTMul x₂ y

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.left.refine_2.h24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
i✝¹ : y.LeftMoves
i✝ : (-x₁).LeftMoves
⊢ IH24 (-x₂) (-x₁) y

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.left.refine_2.h4
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
i✝¹ : y.LeftMoves
i✝ : (-x₁).LeftMoves
⊢ IH4 (-x₂) (-x₁) y

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.left.refine_2.hl
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
i✝¹ : y.LeftMoves
i✝ : (-x₁).LeftMoves
⊢ MulOptionsLTMul (-x₁) y

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_1.h24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : x₂.LeftMoves
⊢ IH24 x₁ x₂ (-y)

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_1.h4
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : x₂.LeftMoves
⊢ IH4 x₁ x₂ (-y)

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_1.hl
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : x₂.LeftMoves
⊢ MulOptionsLTMul x₂ (-y)

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_2.h24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : (-x₁).LeftMoves
⊢ IH24 (-x₂) (-x₁) (-y)

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_2.h4
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : (-x₁).LeftMoves
⊢ IH4 (-x₂) (-x₁) (-y)

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_2.hl
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : (-x₁).LeftMoves
⊢ MulOptionsLTMul (-x₁) (-y)

tactic: any_goals assumption
state_before: case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.left.refine_1.h24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
i✝¹ : y.LeftMoves
i✝ : x₂.LeftMoves
⊢ IH24 x₁ x₂ y

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.left.refine_1.h4
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
i✝¹ : y.LeftMoves
i✝ : x₂.LeftMoves
⊢ IH4 x₁ x₂ y

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.left.refine_1.hl
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
i✝¹ : y.LeftMoves
i✝ : x₂.LeftMoves
⊢ MulOptionsLTMul x₂ y

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.left.refine_2.h24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
i✝¹ : y.LeftMoves
i✝ : (-x₁).LeftMoves
⊢ IH24 (-x₂) (-x₁) y

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.left.refine_2.h4
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
i✝¹ : y.LeftMoves
i✝ : (-x₁).LeftMoves
⊢ IH4 (-x₂) (-x₁) y

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.left.refine_2.hl
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
i✝¹ : y.LeftMoves
i✝ : (-x₁).LeftMoves
⊢ MulOptionsLTMul (-x₁) y

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_1.h24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : x₂.LeftMoves
⊢ IH24 x₁ x₂ (-y)

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_1.h4
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : x₂.LeftMoves
⊢ IH4 x₁ x₂ (-y)

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_1.hl
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : x₂.LeftMoves
⊢ MulOptionsLTMul x₂ (-y)

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_2.h24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : (-x₁).LeftMoves
⊢ IH24 (-x₂) (-x₁) (-y)

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_2.h4
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : (-x₁).LeftMoves
⊢ IH4 (-x₂) (-x₁) (-y)

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_2.hl
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : (-x₁).LeftMoves
⊢ MulOptionsLTMul (-x₁) (-y)
state_after: case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_2.h24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : (-x₁).LeftMoves
⊢ IH24 (-x₂) (-x₁) (-y)

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_2.h4
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : (-x₁).LeftMoves
⊢ IH4 (-x₂) (-x₁) (-y)

tactic: exacts [(ih24_neg h₁₂y).1, (ih4_neg h4y).1]
state_before: case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_2.h24
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : (-x₁).LeftMoves
⊢ IH24 (-x₂) (-x₁) (-y)

case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_2.h4
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : (-x₁).LeftMoves
⊢ IH4 (-x₂) (-x₁) (-y)
state_after: no goals

tactic: assumption
state_before: case P24.intro.intro.refine_2.intro.intro.intro.intro.intro.intro.intro.right.refine_2.hl
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
a : Args
x₁ x₂ y : PGame
ha : (Args.P24 x₁ x₂ y).Numeric
ih : ∀ (a' : Args), ArgsRel a' (Args.P24 x₁ x₂ y) → P124 a'
h₁₂ : IH24 x₁ x₂ y
h₂₁ : IH24 x₂ x₁ y
h4 : IH4 x₁ x₂ y
h₁₂x : IH24 (-x₂) (-x₁) y
h₁₂y : IH24 x₁ x₂ (-y)
h4x : IH4 (-x₂) (-x₁) y
h4y : IH4 x₁ x₂ (-y)
hl : x₁ < x₂
hn₁ : (x₁ * y).Numeric
hn₂ : (x₂ * y).Numeric
h₁ : MulOptionsLTMul x₂ y
h₂ : MulOptionsLTMul x₂ (-y)
h₃ : MulOptionsLTMul (-x₁) (-y)
h₄ : MulOptionsLTMul (-x₁) y
j✝ : (-y).LeftMoves
i✝ : (-x₁).LeftMoves
⊢ MulOptionsLTMul (-x₁) (-y)
state_after: no goals