Theorem: SetTheory.PGame.add_left_neg_le_zero
File: Mathlib/SetTheory/Game/PGame.lean

tactic: cases' i with i i
state_before: xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : (-mk xl xr xL xR + mk xl xr xL xR).LeftMoves
⊢ ∃ j, ((-mk xl xr xL xR + mk xl xr xL xR).moveLeft i).moveRight j ≤ 0
state_after: case inl
xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : xr
⊢ ∃ j, ((-mk xl xr xL xR + mk xl xr xL xR).moveLeft (Sum.inl i)).moveRight j ≤ 0

case inr
xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : xl
⊢ ∃ j, ((-mk xl xr xL xR + mk xl xr xL xR).moveLeft (Sum.inr i)).moveRight j ≤ 0

tactic: refine ⟨@toRightMovesAdd _ ⟨_, _, _, _⟩ (Sum.inr i), ?_⟩
state_before: case inl
xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : xr
⊢ ∃ j, ((-mk xl xr xL xR + mk xl xr xL xR).moveLeft (Sum.inl i)).moveRight j ≤ 0
state_after: case inl
xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : xr
⊢ ((-mk xl xr xL xR + mk xl xr xL xR).moveLeft (Sum.inl i)).moveRight (toRightMovesAdd (Sum.inr i)) ≤ 0

tactic: convert @add_left_neg_le_zero (xR i)
state_before: case inl
xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : xr
⊢ ((-mk xl xr xL xR + mk xl xr xL xR).moveLeft (Sum.inl i)).moveRight (toRightMovesAdd (Sum.inr i)) ≤ 0
state_after: case h.e'_3
xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : xr
⊢ ((-mk xl xr xL xR + mk xl xr xL xR).moveLeft (Sum.inl i)).moveRight (toRightMovesAdd (Sum.inr i)) = -xR i + xR i

tactic: apply add_moveRight_inr
state_before: case h.e'_3
xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : xr
⊢ ((-mk xl xr xL xR + mk xl xr xL xR).moveLeft (Sum.inl i)).moveRight (toRightMovesAdd (Sum.inr i)) = -xR i + xR i
state_after: no goals

tactic: dsimp
state_before: case inr
xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : xl
⊢ ∃ j, ((-mk xl xr xL xR + mk xl xr xL xR).moveLeft (Sum.inr i)).moveRight j ≤ 0
state_after: case inr
xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : xl
⊢ ∃ j, ((mk xr xl (fun j => -xR j) fun i => -xL i) + xL i).moveRight j ≤ 0

tactic: refine ⟨@toRightMovesAdd ⟨_, _, _, _⟩ _ (Sum.inl i), ?_⟩
state_before: case inr
xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : xl
⊢ ∃ j, ((mk xr xl (fun j => -xR j) fun i => -xL i) + xL i).moveRight j ≤ 0
state_after: case inr
xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : xl
⊢ ((mk xr xl (fun j => -xR j) fun i => -xL i) + xL i).moveRight (toRightMovesAdd (Sum.inl i)) ≤ 0

tactic: convert @add_left_neg_le_zero (xL i)
state_before: case inr
xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : xl
⊢ ((mk xr xl (fun j => -xR j) fun i => -xL i) + xL i).moveRight (toRightMovesAdd (Sum.inl i)) ≤ 0
state_after: case h.e'_3
xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : xl
⊢ ((mk xr xl (fun j => -xR j) fun i => -xL i) + xL i).moveRight (toRightMovesAdd (Sum.inl i)) = -xL i + xL i

tactic: apply add_moveRight_inl
state_before: case h.e'_3
xl✝ xr✝ : Type u
xl xr : Type u_1
xL : xl → PGame
xR : xr → PGame
i : xl
⊢ ((mk xr xl (fun j => -xR j) fun i => -xL i) + xL i).moveRight (toRightMovesAdd (Sum.inl i)) = -xL i + xL i
state_after: no goals