Theorem: MeasureTheory.IsSetSemiring.not_mem_diffFinset
File: Mathlib/MeasureTheory/SetSemiring.lean

tactic: intro hs_mem
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
⊢ t ∉ hC.diffFinset hs ht
state_after: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
⊢ False

tactic: suffices t ⊆ s \ t by
  have h := @disjoint_sdiff_self_right _ t s _
  specialize h le_rfl this
  simp only [Set.bot_eq_empty, Set.le_eq_subset, subset_empty_iff] at h
  refine hC.empty_not_mem_diffFinset hs ht ?_
  rwa [← h]
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
⊢ False
state_after: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
⊢ t ⊆ s \ t

tactic: rw [← hC.sUnion_diffFinset hs ht]
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
⊢ t ⊆ s \ t
state_after: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
⊢ t ⊆ ⋃₀ ↑(hC.diffFinset hs ht)

tactic: exact subset_sUnion_of_mem hs_mem
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
⊢ t ⊆ ⋃₀ ↑(hC.diffFinset hs ht)
state_after: no goals

tactic: have h := @disjoint_sdiff_self_right _ t s _
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
this : t ⊆ s \ t
⊢ False
state_after: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
this : t ⊆ s \ t
h : Disjoint t (s \ t)
⊢ False

tactic: specialize h le_rfl this
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
this : t ⊆ s \ t
h : Disjoint t (s \ t)
⊢ False
state_after: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
this : t ⊆ s \ t
h : t ≤ ⊥
⊢ False

tactic: simp only [Set.bot_eq_empty, Set.le_eq_subset, subset_empty_iff] at h
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
this : t ⊆ s \ t
h : t ≤ ⊥
⊢ False
state_after: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
this : t ⊆ s \ t
h : t = ∅
⊢ False

tactic: refine hC.empty_not_mem_diffFinset hs ht ?_
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
this : t ⊆ s \ t
h : t = ∅
⊢ False
state_after: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
this : t ⊆ s \ t
h : t = ∅
⊢ ∅ ∈ hC.diffFinset hs ht

tactic: rwa [← h]
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
hC : IsSetSemiring C
hs : s ∈ C
ht : t ∈ C
hs_mem : t ∈ hC.diffFinset hs ht
this : t ⊆ s \ t
h : t = ∅
⊢ ∅ ∈ hC.diffFinset hs ht
state_after: no goals