Theorem: Set.union_assoc (GMLInit/Data/Set/Basic.lean)

State before:
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
⊢ (s.union t).union u = s.union (t.union u)
Tactic:
apply Set.ext
State after:
case a
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
⊢ ∀ (x : α), x ∈ (s.union t).union u ↔ x ∈ s.union (t.union u)

State before:
case a
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
⊢ ∀ (x : α), x ∈ (s.union t).union u ↔ x ∈ s.union (t.union u)
Tactic:
intro x
State after:
case a
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
⊢ x ∈ (s.union t).union u ↔ x ∈ s.union (t.union u)

State before:
case a
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
⊢ x ∈ (s.union t).union u ↔ x ∈ s.union (t.union u)
Tactic:
constructor
State after:
case a.mp
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
⊢ x ∈ (s.union t).union u → x ∈ s.union (t.union u)

case a.mpr
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
⊢ x ∈ s.union (t.union u) → x ∈ (s.union t).union u

State before:
case a.mp
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
⊢ x ∈ (s.union t).union u → x ∈ s.union (t.union u)
Tactic:
open Or in intro
| inl (inl hs) => exact inl hs
| inl (inr ht) => exact inr (inl ht)
| inr hu => exact inr (inr hu)
State after:
no goals

State before:
case a.mp
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
⊢ x ∈ (s.union t).union u → x ∈ s.union (t.union u)
Tactic:
intro
| inl (inl hs) => exact inl hs
| inl (inr ht) => exact inr (inl ht)
| inr hu => exact inr (inr hu)
State after:
no goals

State before:
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ (s.union t).union u
hs : x ∈ s
⊢ x ∈ s.union (t.union u)
Tactic:
exact inl hs
State after:
no goals

State before:
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ (s.union t).union u
ht : x ∈ t
⊢ x ∈ s.union (t.union u)
Tactic:
exact inr (inl ht)
State after:
no goals

State before:
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ (s.union t).union u
hu : x ∈ u
⊢ x ∈ s.union (t.union u)
Tactic:
exact inr (inr hu)
State after:
no goals

State before:
case a.mpr
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
⊢ x ∈ s.union (t.union u) → x ∈ (s.union t).union u
Tactic:
open Or in intro
| inl hs => left; left; exact hs
| inr (inl ht) => left; right; exact ht
| inr (inr hu) => right; exact hu
State after:
no goals

State before:
case a.mpr
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
⊢ x ∈ s.union (t.union u) → x ∈ (s.union t).union u
Tactic:
intro
| inl hs => left; left; exact hs
| inr (inl ht) => left; right; exact ht
| inr (inr hu) => right; exact hu
State after:
no goals

State before:
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ s.union (t.union u)
hs : x ∈ s
⊢ x ∈ (s.union t).union u
Tactic:
left
State after:
case h
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ s.union (t.union u)
hs : x ∈ s
⊢ x ∈ s.union t

State before:
case h
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ s.union (t.union u)
hs : x ∈ s
⊢ x ∈ s.union t
Tactic:
left
State after:
case h.h
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ s.union (t.union u)
hs : x ∈ s
⊢ x ∈ s

State before:
case h.h
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ s.union (t.union u)
hs : x ∈ s
⊢ x ∈ s
Tactic:
exact hs
State after:
no goals

State before:
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ s.union (t.union u)
ht : x ∈ t
⊢ x ∈ (s.union t).union u
Tactic:
left
State after:
case h
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ s.union (t.union u)
ht : x ∈ t
⊢ x ∈ s.union t

State before:
case h
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ s.union (t.union u)
ht : x ∈ t
⊢ x ∈ s.union t
Tactic:
right
State after:
case h.h
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ s.union (t.union u)
ht : x ∈ t
⊢ x ∈ t

State before:
case h.h
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ s.union (t.union u)
ht : x ∈ t
⊢ x ∈ t
Tactic:
exact ht
State after:
no goals

State before:
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ s.union (t.union u)
hu : x ∈ u
⊢ x ∈ (s.union t).union u
Tactic:
right
State after:
case h
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ s.union (t.union u)
hu : x ∈ u
⊢ x ∈ u

State before:
case h
α : Sort u_1
β : ?m.18244
γ : ?m.18247
s t u : Set α
x : α
x✝ : x ∈ s.union (t.union u)
hu : x ∈ u
⊢ x ∈ u
Tactic:
exact hu
State after:
no goals