Theorem: ℤω.my_add_assoc (Mordell4/Eisenstein.lean)

State before:
a b c : ℤω
⊢ add (add a b) c = add a (add b c)
Tactic:
cases a
State after:
case mk
b c : ℤω
x✝ y✝ : ℤ
⊢ add (add { x := x✝, y := y✝ } b) c = add { x := x✝, y := y✝ } (add b c)

State before:
case mk
b c : ℤω
x✝ y✝ : ℤ
⊢ add (add { x := x✝, y := y✝ } b) c = add { x := x✝, y := y✝ } (add b c)
Tactic:
cases b
State after:
case mk.mk
c : ℤω
x✝¹ y✝¹ x✝ y✝ : ℤ
⊢ add (add { x := x✝¹, y := y✝¹ } { x := x✝, y := y✝ }) c = add { x := x✝¹, y := y✝¹ } (add { x := x✝, y := y✝ } c)

State before:
case mk.mk
c : ℤω
x✝¹ y✝¹ x✝ y✝ : ℤ
⊢ add (add { x := x✝¹, y := y✝¹ } { x := x✝, y := y✝ }) c = add { x := x✝¹, y := y✝¹ } (add { x := x✝, y := y✝ } c)
Tactic:
cases c
State after:
case mk.mk.mk
x✝² y✝² x✝¹ y✝¹ x✝ y✝ : ℤ
⊢ add (add { x := x✝², y := y✝² } { x := x✝¹, y := y✝¹ }) { x := x✝, y := y✝ } =
    add { x := x✝², y := y✝² } (add { x := x✝¹, y := y✝¹ } { x := x✝, y := y✝ })

State before:
case mk.mk.mk
x✝² y✝² x✝¹ y✝¹ x✝ y✝ : ℤ
⊢ add (add { x := x✝², y := y✝² } { x := x✝¹, y := y✝¹ }) { x := x✝, y := y✝ } =
    add { x := x✝², y := y✝² } (add { x := x✝¹, y := y✝¹ } { x := x✝, y := y✝ })
Tactic:
simp only [add, add_assoc]
State after:
no goals