Theorem: SimpleGraph.isUniform_singleton
File: Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean

tactic: intro s' hs' t' ht' hs ht
state_before: α : Type u_2
𝕜 : Type u_1
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
hε : 0 < ε
⊢ IsUniform G ε {a} {b}

tactic: rw [card_singleton, Nat.cast_one, one_mul] at hs ht
state_before: α : Type u_2
𝕜 : Type u_1
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
hε : 0 < ε
s' : Finset α
hs' : s' ⊆ {a}
t' : Finset α
ht' : t' ⊆ {b}
hs : ↑(card {a}) * ε ≤ ↑(card s')
ht : ↑(card {b}) * ε ≤ ↑(card t')
⊢ abs (↑(edgeDensity G s' t') - ↑(edgeDensity G {a} {b})) < ε

tactic: obtain rfl | rfl := Finset.subset_singleton_iff.1 hs'
state_before: α : Type u_2
𝕜 : Type u_1
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
hε : 0 < ε
s' : Finset α
hs' : s' ⊆ {a}
t' : Finset α
ht' : t' ⊆ {b}
hs : ε ≤ ↑(card s')
ht : ε ≤ ↑(card t')
⊢ abs (↑(edgeDensity G s' t') - ↑(edgeDensity G {a} {b})) < ε

tactic: obtain rfl | rfl := Finset.subset_singleton_iff.1 ht'
state_before: case inr
α : Type u_2
𝕜 : Type u_1
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
hε : 0 < ε
t' : Finset α
ht' : t' ⊆ {b}
ht : ε ≤ ↑(card t')
hs' : {a} ⊆ {a}
hs : ε ≤ ↑(card {a})
⊢ abs (↑(edgeDensity G {a} t') - ↑(edgeDensity G {a} {b})) < ε

tactic: replace hs : ε ≤ 0 := by simpa using hs
state_before: case inl
α : Type u_2
𝕜 : Type u_1
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
hε : 0 < ε
t' : Finset α
ht' : t' ⊆ {b}
ht : ε ≤ ↑(card t')
hs' : ∅ ⊆ {a}
hs : ε ≤ ↑(card ∅)
⊢ abs (↑(edgeDensity G ∅ t') - ↑(edgeDensity G {a} {b})) < ε

tactic: exact (hε.not_le hs).elim
state_before: case inl
α : Type u_2
𝕜 : Type u_1
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
hε : 0 < ε
t' : Finset α
ht' : t' ⊆ {b}
ht : ε ≤ ↑(card t')
hs' : ∅ ⊆ {a}
hs : ε ≤ 0
⊢ abs (↑(edgeDensity G ∅ t') - ↑(edgeDensity G {a} {b})) < ε

tactic: simpa using hs
state_before: α : Type u_2
𝕜 : Type u_1
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
hε : 0 < ε
t' : Finset α
ht' : t' ⊆ {b}
ht : ε ≤ ↑(card t')
hs' : ∅ ⊆ {a}
hs : ε ≤ ↑(card ∅)
⊢ ε ≤ 0

tactic: replace ht : ε ≤ 0 := by simpa using ht
state_before: case inr.inl
α : Type u_2
𝕜 : Type u_1
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
hε : 0 < ε
hs' : {a} ⊆ {a}
hs : ε ≤ ↑(card {a})
ht' : ∅ ⊆ {b}
ht : ε ≤ ↑(card ∅)
⊢ abs (↑(edgeDensity G {a} ∅) - ↑(edgeDensity G {a} {b})) < ε

tactic: exact (hε.not_le ht).elim
state_before: case inr.inl
α : Type u_2
𝕜 : Type u_1
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
hε : 0 < ε
hs' : {a} ⊆ {a}
hs : ε ≤ ↑(card {a})
ht' : ∅ ⊆ {b}
ht : ε ≤ 0
⊢ abs (↑(edgeDensity G {a} ∅) - ↑(edgeDensity G {a} {b})) < ε

tactic: simpa using ht
state_before: α : Type u_2
𝕜 : Type u_1
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
hε : 0 < ε
hs' : {a} ⊆ {a}
hs : ε ≤ ↑(card {a})
ht' : ∅ ⊆ {b}
ht : ε ≤ ↑(card ∅)
⊢ ε ≤ 0

tactic: rwa [sub_self, abs_zero]
state_before: case inr.inr
α : Type u_2
𝕜 : Type u_1
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
hε : 0 < ε
hs' : {a} ⊆ {a}
hs : ε ≤ ↑(card {a})
ht' : {b} ⊆ {b}
ht : ε ≤ ↑(card {b})
⊢ abs (↑(edgeDensity G {a} {b}) - ↑(edgeDensity G {a} {b})) < ε