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

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

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

State before:
case a
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
⊢ x ∈ s.union t ↔ x ∈ t.union s
Tactic:
constructor
State after:
case a.mp
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
⊢ x ∈ s.union t → x ∈ t.union s

case a.mpr
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
⊢ x ∈ t.union s → x ∈ s.union t

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

State before:
case a.mp
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
⊢ x ∈ s.union t → x ∈ t.union s
Tactic:
intro
| inl hs => right; exact hs
| inr ht => left; exact ht
State after:
no goals

State before:
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
x✝ : x ∈ s.union t
hs : x ∈ s
⊢ x ∈ t.union s
Tactic:
right
State after:
case h
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
x✝ : x ∈ s.union t
hs : x ∈ s
⊢ x ∈ s

State before:
case h
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
x✝ : x ∈ s.union t
hs : x ∈ s
⊢ x ∈ s
Tactic:
exact hs
State after:
no goals

State before:
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
x✝ : x ∈ s.union t
ht : x ∈ t
⊢ x ∈ t.union s
Tactic:
left
State after:
case h
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
x✝ : x ∈ s.union t
ht : x ∈ t
⊢ x ∈ t

State before:
case h
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
x✝ : x ∈ s.union t
ht : x ∈ t
⊢ x ∈ t
Tactic:
exact ht
State after:
no goals

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

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

State before:
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
x✝ : x ∈ t.union s
ht : x ∈ t
⊢ x ∈ s.union t
Tactic:
right
State after:
case h
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
x✝ : x ∈ t.union s
ht : x ∈ t
⊢ x ∈ t

State before:
case h
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
x✝ : x ∈ t.union s
ht : x ∈ t
⊢ x ∈ t
Tactic:
exact ht
State after:
no goals

State before:
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
x✝ : x ∈ t.union s
hs : x ∈ s
⊢ x ∈ s.union t
Tactic:
left
State after:
case h
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
x✝ : x ∈ t.union s
hs : x ∈ s
⊢ x ∈ s

State before:
case h
α : Sort u_1
β : ?m.17966
γ : ?m.17969
s t : Set α
x : α
x✝ : x ∈ t.union s
hs : x ∈ s
⊢ x ∈ s
Tactic:
exact hs
State after:
no goals