tasksource/leandojo huggingface dataset:
Theorem: rank_pos
File: Mathlib/LinearAlgebra/Dimension.lean

tactic: obtain ⟨x, hx⟩ := exists_ne (0 : M)
state_before: K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.235792
R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : Nontrivial M
⊢ 0 < Module.rank R M

tactic: suffices 1 ≤ Module.rank R M by exact zero_lt_one.trans_le this
state_before: case intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.235792
R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : Nontrivial M
x : M
hx : x ≠ 0
⊢ 0 < Module.rank R M

tactic: letI := Module.nontrivial R M
state_before: case intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.235792
R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : Nontrivial M
x : M
hx : x ≠ 0
⊢ 1 ≤ Module.rank R M

tactic: suffices LinearIndependent R fun y : ({x} : Set M) => (y : M) by
  simpa using cardinal_le_rank_of_linearIndependent this
state_before: case intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.235792
R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : Nontrivial M
x : M
hx : x ≠ 0
this : Nontrivial R := Module.nontrivial R M
⊢ 1 ≤ Module.rank R M

tactic: exact linearIndependent_singleton hx
state_before: case intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.235792
R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : Nontrivial M
x : M
hx : x ≠ 0
this : Nontrivial R := Module.nontrivial R M
⊢ LinearIndependent R fun y => ↑y

tactic: exact zero_lt_one.trans_le this
state_before: K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.235792
R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : Nontrivial M
x : M
hx : x ≠ 0
this : 1 ≤ Module.rank R M
⊢ 0 < Module.rank R M

tactic: simpa using cardinal_le_rank_of_linearIndependent this
state_before: K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.235792
R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : Nontrivial M
x : M
hx : x ≠ 0
this✝ : Nontrivial R := Module.nontrivial R M
this : LinearIndependent R fun y => ↑y
⊢ 1 ≤ Module.rank R M
Theorem: measurable_inv_iff₀
File: Mathlib/MeasureTheory/Group/Arithmetic.lean

tactic: simpa only [inv_inv] using h.inv
state_before: G : Type ?u.2526322
α : Type u_2
inst✝⁵ : Inv G
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableInv G
m : MeasurableSpace α
f✝ : α → G
μ : MeasureTheory.Measure α
G₀ : Type u_1
inst✝² : GroupWithZero G₀
inst✝¹ : MeasurableSpace G₀
inst✝ : MeasurableInv G₀
f : α → G₀
h : Measurable fun x => (f x)⁻¹
⊢ Measurable f
Theorem: MeasureTheory.Memℒp.snorm_indicator_le_of_meas
File: Mathlib/MeasureTheory/Function/UniformIntegrable.lean

tactic: obtain ⟨δ, hδpos, hδ⟩ := hf.snorm_indicator_le' μ hp_one hp_top hmeas (half_pos hε)
state_before: α : Type u_2
β : Type u_1
ι : Type ?u.148004
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup β
p : ℝ≥0∞
f : α → β
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
hf : Memℒp f p
hmeas : StronglyMeasurable f
ε : ℝ
hε : 0 < ε
⊢ ∃ δ hδ, ∀ (s : Set α), MeasurableSet s → ↑↑μ s ≤ ENNReal.ofReal δ → snorm (Set.indicator s f) p μ ≤ ENNReal.ofReal ε

tactic: refine' ⟨δ, hδpos, fun s hs hμs => le_trans (hδ s hs hμs) _⟩
state_before: case intro.intro
α : Type u_2
β : Type u_1
ι : Type ?u.148004
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup β
p : ℝ≥0∞
f : α → β
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
hf : Memℒp f p
hmeas : StronglyMeasurable f
ε : ℝ
hε : 0 < ε
δ : ℝ
hδpos : 0 < δ
hδ :
  ∀ (s : Set α), MeasurableSet s → ↑↑μ s ≤ ENNReal.ofReal δ → snorm (Set.indicator s f) p μ ≤ 2 * ENNReal.ofReal (ε / 2)
⊢ ∃ δ hδ, ∀ (s : Set α), MeasurableSet s → ↑↑μ s ≤ ENNReal.ofReal δ → snorm (Set.indicator s f) p μ ≤ ENNReal.ofReal ε

tactic: rw [ENNReal.ofReal_div_of_pos zero_lt_two, (by norm_num : ENNReal.ofReal 2 = 2),
    ENNReal.mul_div_cancel'] <;>
  norm_num
state_before: case intro.intro
α : Type u_2
β : Type u_1
ι : Type ?u.148004
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup β
p : ℝ≥0∞
f : α → β
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
hf : Memℒp f p
hmeas : StronglyMeasurable f
ε : ℝ
hε : 0 < ε
δ : ℝ
hδpos : 0 < δ
hδ :
  ∀ (s : Set α), MeasurableSet s → ↑↑μ s ≤ ENNReal.ofReal δ → snorm (Set.indicator s f) p μ ≤ 2 * ENNReal.ofReal (ε / 2)
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s ≤ ENNReal.ofReal δ
⊢ 2 * ENNReal.ofReal (ε / 2) ≤ ENNReal.ofReal ε

tactic: norm_num
state_before: α : Type u_2
β : Type u_1
ι : Type ?u.148004
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup β
p : ℝ≥0∞
f : α → β
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
hf : Memℒp f p
hmeas : StronglyMeasurable f
ε : ℝ
hε : 0 < ε
δ : ℝ
hδpos : 0 < δ
hδ :
  ∀ (s : Set α), MeasurableSet s → ↑↑μ s ≤ ENNReal.ofReal δ → snorm (Set.indicator s f) p μ ≤ 2 * ENNReal.ofReal (ε / 2)
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s ≤ ENNReal.ofReal δ
⊢ ENNReal.ofReal 2 = 2
Theorem: CharP.char_is_prime_of_two_le
File: Mathlib/Algebra/CharP/Basic.lean

tactic: rw [‹e = p›] at hmul
state_before: R : Type u_1
inst✝¹ : NonAssocSemiring R
inst✝ : NoZeroDivisors R
p : ℕ
hc : CharP R p
hp : 2 ≤ p
d : ℕ
hdvd : ∃ e, p = d * e
e : ℕ
hmul : p = d * e
this✝³ : ↑p = 0
this✝² : ↑d * ↑e = 0
he : ↑e = 0
this✝¹ : p ∣ e
this✝ : e ∣ p
this : e = p
h₀ : 0 < p
⊢ d * p = 1 * p

tactic: rw [one_mul]
state_before: R : Type u_1
inst✝¹ : NonAssocSemiring R
inst✝ : NoZeroDivisors R
p : ℕ
hc : CharP R p
hp : 2 ≤ p
d : ℕ
hdvd : ∃ e, p = d * e
e : ℕ
hmul : p = d * p
this✝³ : ↑p = 0
this✝² : ↑d * ↑e = 0
he : ↑e = 0
this✝¹ : p ∣ e
this✝ : e ∣ p
this : e = p
h₀ : 0 < p
⊢ d * p = 1 * p

tactic: exact Eq.symm hmul
state_before: R : Type u_1
inst✝¹ : NonAssocSemiring R
inst✝ : NoZeroDivisors R
p : ℕ
hc : CharP R p
hp : 2 ≤ p
d : ℕ
hdvd : ∃ e, p = d * e
e : ℕ
hmul : p = d * p
this✝³ : ↑p = 0
this✝² : ↑d * ↑e = 0
he : ↑e = 0
this✝¹ : p ∣ e
this✝ : e ∣ p
this : e = p
h₀ : 0 < p
⊢ d * p = p
Theorem: Fin.image_succ_univ
File: Mathlib/Data/Fintype/Basic.lean

tactic: rw [← Fin.succAbove_zero, Fin.image_succAbove_univ]
state_before: α : Type ?u.102965
β : Type ?u.102968
γ : Type ?u.102971
n : ℕ
⊢ image succ univ = {0}ᶜ
Theorem: MeasureTheory.Memℒp.re
File: Mathlib/MeasureTheory/Function/LpSeminorm.lean

tactic: have : ∀ x, ‖IsROrC.re (f x)‖ ≤ 1 * ‖f x‖ := by
  intro x
  rw [one_mul]
  exact IsROrC.norm_re_le_norm (f x)
state_before: α : Type u_2
E : Type ?u.6078231
F : Type ?u.6078234
G : Type ?u.6078237
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_1
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
⊢ Memℒp (fun x => ↑IsROrC.re (f x)) p

tactic: refine' hf.of_le_mul _ (eventually_of_forall this)
state_before: α : Type u_2
E : Type ?u.6078231
F : Type ?u.6078234
G : Type ?u.6078237
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_1
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
this : ∀ (x : α), ‖↑IsROrC.re (f x)‖ ≤ 1 * ‖f x‖
⊢ Memℒp (fun x => ↑IsROrC.re (f x)) p

tactic: exact IsROrC.continuous_re.comp_aestronglyMeasurable hf.1
state_before: α : Type u_2
E : Type ?u.6078231
F : Type ?u.6078234
G : Type ?u.6078237
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_1
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
this : ∀ (x : α), ‖↑IsROrC.re (f x)‖ ≤ 1 * ‖f x‖
⊢ AEStronglyMeasurable (fun x => ↑IsROrC.re (f x)) μ

tactic: intro x
state_before: α : Type u_2
E : Type ?u.6078231
F : Type ?u.6078234
G : Type ?u.6078237
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_1
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
⊢ ∀ (x : α), ‖↑IsROrC.re (f x)‖ ≤ 1 * ‖f x‖

tactic: rw [one_mul]
state_before: α : Type u_2
E : Type ?u.6078231
F : Type ?u.6078234
G : Type ?u.6078237
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_1
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
x : α
⊢ ‖↑IsROrC.re (f x)‖ ≤ 1 * ‖f x‖

tactic: exact IsROrC.norm_re_le_norm (f x)
state_before: α : Type u_2
E : Type ?u.6078231
F : Type ?u.6078234
G : Type ?u.6078237
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_1
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
x : α
⊢ ‖↑IsROrC.re (f x)‖ ≤ ‖f x‖
Theorem: List.zipRight_eq_zipRight'
File: Mathlib/Data/List/Basic.lean

tactic: induction as generalizing bs <;> cases bs <;> simp [*]
state_before: ι : Type ?u.479474
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
a : α
as : List α
b : β
bs : List β
⊢ zipRight as bs = (zipRight' as bs).fst
Theorem: Prod.snd_zmod_cast
File: Mathlib/Data/ZMod/Basic.lean

tactic: cases n
state_before: n : ℕ
R : Type u_2
inst✝¹ : AddGroupWithOne R
S : Type u_1
inst✝ : AddGroupWithOne S
a : ZMod n
⊢ (↑a).snd = ↑a

tactic: . rfl
state_before: case zero
R : Type u_2
inst✝¹ : AddGroupWithOne R
S : Type u_1
inst✝ : AddGroupWithOne S
a : ZMod Nat.zero
⊢ (↑a).snd = ↑a

case succ
R : Type u_2
inst✝¹ : AddGroupWithOne R
S : Type u_1
inst✝ : AddGroupWithOne S
n✝ : ℕ
a : ZMod (Nat.succ n✝)
⊢ (↑a).snd = ↑a

tactic: . simp [ZMod.cast]
state_before: case succ
R : Type u_2
inst✝¹ : AddGroupWithOne R
S : Type u_1
inst✝ : AddGroupWithOne S
n✝ : ℕ
a : ZMod (Nat.succ n✝)
⊢ (↑a).snd = ↑a

tactic: rfl
state_before: case zero
R : Type u_2
inst✝¹ : AddGroupWithOne R
S : Type u_1
inst✝ : AddGroupWithOne S
a : ZMod Nat.zero
⊢ (↑a).snd = ↑a

tactic: simp [ZMod.cast]
state_before: case succ
R : Type u_2
inst✝¹ : AddGroupWithOne R
S : Type u_1
inst✝ : AddGroupWithOne S
n✝ : ℕ
a : ZMod (Nat.succ n✝)
⊢ (↑a).snd = ↑a
Theorem: specializes_comm
File: Mathlib/Topology/Separation.lean

tactic: simp only [← (disjoint_nhds_nhds_iff_not_specializes (α := α)).not_left, disjoint_comm]
state_before: α : Type u
β : Type v
inst✝¹ : TopologicalSpace α
inst✝ : RegularSpace α
a✝ : α
s : Set α
a b : α
⊢ a ⤳ b ↔ b ⤳ a
Theorem: self_diff_frontier
File: Mathlib/Topology/Basic.lean

tactic: rw [frontier, diff_diff_right, diff_eq_empty.2 subset_closure,
  inter_eq_self_of_subset_right interior_subset, empty_union]
state_before: α : Type u
β : Type v
ι : Sort w
a : α
s✝ s₁ s₂ t : Set α
p p₁ p₂ : α → Prop
inst✝ : TopologicalSpace α
s : Set α
⊢ s \ frontier s = interior s
Theorem: Nat.pairwise_one_le_dist
File: Mathlib/Topology/Instances/Nat.lean

tactic: exact_mod_cast hne
state_before: m n : ℕ
hne : m ≠ n
⊢ ↑m ≠ ↑n
Theorem: Filter.map₂_comm
File: Mathlib/Order/Filter/NAry.lean

tactic: simp_rw [h_comm]
state_before: α : Type u_2
α' : Type ?u.38335
β : Type u_3
β' : Type ?u.38341
γ : Type u_1
γ' : Type ?u.38347
δ : Type ?u.38350
δ' : Type ?u.38353
ε : Type ?u.38356
ε' : Type ?u.38359
m : α → β → γ
f f₁ f₂ : Filter α
g g₁ g₂ : Filter β
h h₁ h₂ : Filter γ
s s₁ s₂ : Set α
t t₁ t₂ : Set β
u : Set γ
v : Set δ
a : α
b : β
c : γ
n : β → α → γ
h_comm : ∀ (a : α) (b : β), m a b = n b a
⊢ map₂ (fun a b => m b a) g f = map₂ n g f
Theorem: MeasureTheory.IsFundamentalDomain.integral_eq_tsum
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

tactic: rfl
state_before: G : Type u_1
H : Type ?u.357198
α : Type u_2
β : Type ?u.357204
E : Type u_3
inst✝¹² : Group G
inst✝¹¹ : Group H
inst✝¹⁰ : MulAction G α
inst✝⁹ : MeasurableSpace α
inst✝⁸ : MulAction H β
inst✝⁷ : MeasurableSpace β
inst✝⁶ : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝⁵ : MeasurableSpace G
inst✝⁴ : MeasurableSMul G α
inst✝³ : SMulInvariantMeasure G α μ
inst✝² : Countable G
ν : Measure α
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
h : IsFundamentalDomain G s
f : α → E
hf : Integrable f
⊢ μ ≪ μ
Theorem: conj_pow
File: Mathlib/Algebra/Group/Conj.lean

tactic: induction' i with i hi
state_before: α : Type u
β : Type v
inst✝ : Group α
i : ℕ
a b : α
⊢ (a * b * a⁻¹) ^ i = a * b ^ i * a⁻¹

tactic: simp
state_before: case zero
α : Type u
β : Type v
inst✝ : Group α
a b : α
⊢ (a * b * a⁻¹) ^ Nat.zero = a * b ^ Nat.zero * a⁻¹

tactic: simp [pow_succ, hi]
state_before: case succ
α : Type u
β : Type v
inst✝ : Group α
a b : α
i : ℕ
hi : (a * b * a⁻¹) ^ i = a * b ^ i * a⁻¹
⊢ (a * b * a⁻¹) ^ Nat.succ i = a * b ^ Nat.succ i * a⁻¹
Theorem: Set.pairwise_iUnion
File: Mathlib/Data/Set/Pairwise/Lattice.lean

tactic: constructor
state_before: α : Type u_1
β : Type ?u.92
γ : Type ?u.95
ι : Type u_2
ι' : Type ?u.101
r p q : α → α → Prop
f✝ g : ι → α
s t u : Set α
a b : α
f : ι → Set α
h : Directed (fun x x_1 => x ⊆ x_1) f
⊢ Set.Pairwise (⋃ (n : ι), f n) r ↔ ∀ (n : ι), Set.Pairwise (f n) r

tactic: intro H n
state_before: case mp
α : Type u_1
β : Type ?u.92
γ : Type ?u.95
ι : Type u_2
ι' : Type ?u.101
r p q : α → α → Prop
f✝ g : ι → α
s t u : Set α
a b : α
f : ι → Set α
h : Directed (fun x x_1 => x ⊆ x_1) f
⊢ Set.Pairwise (⋃ (n : ι), f n) r → ∀ (n : ι), Set.Pairwise (f n) r

tactic: exact Pairwise.mono (subset_iUnion _ _) H
state_before: case mp
α : Type u_1
β : Type ?u.92
γ : Type ?u.95
ι : Type u_2
ι' : Type ?u.101
r p q : α → α → Prop
f✝ g : ι → α
s t u : Set α
a b : α
f : ι → Set α
h : Directed (fun x x_1 => x ⊆ x_1) f
H : Set.Pairwise (⋃ (n : ι), f n) r
n : ι
⊢ Set.Pairwise (f n) r

tactic: intro H i hi j hj hij
state_before: case mpr
α : Type u_1
β : Type ?u.92
γ : Type ?u.95
ι : Type u_2
ι' : Type ?u.101
r p q : α → α → Prop
f✝ g : ι → α
s t u : Set α
a b : α
f : ι → Set α
h : Directed (fun x x_1 => x ⊆ x_1) f
⊢ (∀ (n : ι), Set.Pairwise (f n) r) → Set.Pairwise (⋃ (n : ι), f n) r

tactic: rcases mem_iUnion.1 hi with ⟨m, hm⟩
state_before: case mpr
α : Type u_1
β : Type ?u.92
γ : Type ?u.95
ι : Type u_2
ι' : Type ?u.101
r p q : α → α → Prop
f✝ g : ι → α
s t u : Set α
a b : α
f : ι → Set α
h : Directed (fun x x_1 => x ⊆ x_1) f
H : ∀ (n : ι), Set.Pairwise (f n) r
i : α
hi : i ∈ ⋃ (n : ι), f n
j : α
hj : j ∈ ⋃ (n : ι), f n
hij : i ≠ j
⊢ r i j

tactic: rcases mem_iUnion.1 hj with ⟨n, hn⟩
state_before: case mpr.intro
α : Type u_1
β : Type ?u.92
γ : Type ?u.95
ι : Type u_2
ι' : Type ?u.101
r p q : α → α → Prop
f✝ g : ι → α
s t u : Set α
a b : α
f : ι → Set α
h : Directed (fun x x_1 => x ⊆ x_1) f
H : ∀ (n : ι), Set.Pairwise (f n) r
i : α
hi : i ∈ ⋃ (n : ι), f n
j : α
hj : j ∈ ⋃ (n : ι), f n
hij : i ≠ j
m : ι
hm : i ∈ f m
⊢ r i j

tactic: rcases h m n with ⟨p, mp, np⟩
state_before: case mpr.intro.intro
α : Type u_1
β : Type ?u.92
γ : Type ?u.95
ι : Type u_2
ι' : Type ?u.101
r p q : α → α → Prop
f✝ g : ι → α
s t u : Set α
a b : α
f : ι → Set α
h : Directed (fun x x_1 => x ⊆ x_1) f
H : ∀ (n : ι), Set.Pairwise (f n) r
i : α
hi : i ∈ ⋃ (n : ι), f n
j : α
hj : j ∈ ⋃ (n : ι), f n
hij : i ≠ j
m : ι
hm : i ∈ f m
n : ι
hn : j ∈ f n
⊢ r i j

tactic: exact H p (mp hm) (np hn) hij
state_before: case mpr.intro.intro.intro.intro
α : Type u_1
β : Type ?u.92
γ : Type ?u.95
ι : Type u_2
ι' : Type ?u.101
r p✝ q : α → α → Prop
f✝ g : ι → α
s t u : Set α
a b : α
f : ι → Set α
h : Directed (fun x x_1 => x ⊆ x_1) f
H : ∀ (n : ι), Set.Pairwise (f n) r
i : α
hi : i ∈ ⋃ (n : ι), f n
j : α
hj : j ∈ ⋃ (n : ι), f n
hij : i ≠ j
m : ι
hm : i ∈ f m
n : ι
hn : j ∈ f n
p : ι
mp : f m ⊆ f p
np : f n ⊆ f p
⊢ r i j
Theorem: BoxIntegral.Prepartition.mem_biUnion
File: Mathlib/Analysis/BoxIntegral/Partition/Basic.lean

tactic: simp [biUnion]
state_before: ι : Type u_1
I J J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
πi πi₁ πi₂ : (J : Box ι) → Prepartition J
⊢ J ∈ biUnion π πi ↔ ∃ J', J' ∈ π ∧ J ∈ πi J'
Theorem: Nat.count_succ_eq_count_iff
File: Mathlib/Data/Nat/Count.lean

tactic: by_cases h : p n <;> simp [h, count_succ]
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
⊢ count p (n + 1) = count p n ↔ ¬p n
Theorem: Function.IsPeriodicPt.iterate
File: Mathlib/Dynamics/PeriodicPts.lean

tactic: rw [IsPeriodicPt, ← iterate_mul, mul_comm, iterate_mul]
state_before: α : Type u_1
β : Type ?u.2806
f fa : α → α
fb : β → β
x y : α
m✝ n : ℕ
hf : IsPeriodicPt f n x
m : ℕ
⊢ IsPeriodicPt (f^[m]) n x

tactic: exact hf.isFixedPt.iterate m
state_before: α : Type u_1
β : Type ?u.2806
f fa : α → α
fb : β → β
x y : α
m✝ n : ℕ
hf : IsPeriodicPt f n x
m : ℕ
⊢ IsFixedPt (f^[n]^[m]) x
Theorem: MvPolynomial.X_dvd_X
File: Mathlib/Data/MvPolynomial/Division.lean

tactic: refine' monomial_one_dvd_monomial_one.trans _
state_before: σ : Type u_2
R : Type u_1
inst✝¹ : CommSemiring R
inst✝ : Nontrivial R
i j : σ
⊢ X i ∣ X j ↔ i = j

tactic: simp_rw [Finsupp.single_le_iff, Nat.one_le_iff_ne_zero, Finsupp.single_apply_ne_zero,
  and_true_iff]
state_before: σ : Type u_2
R : Type u_1
inst✝¹ : CommSemiring R
inst✝ : Nontrivial R
i j : σ
⊢ Finsupp.single i 1 ≤ Finsupp.single j 1 ↔ i = j
Theorem: Finset.Ioi_subset_Ici_self
File: Mathlib/Data/Finset/LocallyFinite.lean

tactic: simpa [← coe_subset] using Set.Ioi_subset_Ici_self
state_before: ι : Type ?u.60743
α : Type u_1
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrderTop α
a : α
⊢ Ioi a ⊆ Ici a
Theorem: CategoryTheory.Functor.map_comp_hEq
File: Mathlib/CategoryTheory/EqToHom.lean

tactic: rw [F.map_comp, G.map_comp]
state_before: C : Type u₁
inst✝² : Category C
D : Type u₂
inst✝¹ : Category D
E : Type u₃
inst✝ : Category E
F G : C ⥤ D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hx : F.obj X = G.obj X
hy : F.obj Y = G.obj Y
hz : F.obj Z = G.obj Z
hf : HEq (F.map f) (G.map f)
hg : HEq (F.map g) (G.map g)
⊢ HEq (F.map (f ≫ g)) (G.map (f ≫ g))

tactic: congr
state_before: C : Type u₁
inst✝² : Category C
D : Type u₂
inst✝¹ : Category D
E : Type u₃
inst✝ : Category E
F G : C ⥤ D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hx : F.obj X = G.obj X
hy : F.obj Y = G.obj Y
hz : F.obj Z = G.obj Z
hf : HEq (F.map f) (G.map f)
hg : HEq (F.map g) (G.map g)
⊢ HEq (F.map f ≫ F.map g) (G.map f ≫ G.map g)
Theorem: CategoryTheory.Adjunction.CoreHomEquiv.homEquiv_naturality_right_symm_aux
File: Mathlib/CategoryTheory/Adjunction/Basic.lean

tactic: rw [← homEquiv_naturality_left_symm, Equiv.symm_apply_eq]
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
G : D ⥤ C
adj : CoreHomEquiv F G
X' X : C
Y Y' : D
f : X ⟶ G.obj Y
g : Y ⟶ Y'
⊢ F.map f ≫ ↑(homEquiv adj (G.obj Y) Y').symm (G.map g) = ↑(homEquiv adj X Y).symm f ≫ g

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
G : D ⥤ C
adj : CoreHomEquiv F G
X' X : C
Y Y' : D
f : X ⟶ G.obj Y
g : Y ⟶ Y'
⊢ f ≫ G.map g = ↑(homEquiv adj X Y') (↑(homEquiv adj X Y).symm f ≫ g)
Theorem: EReal.mem_nhds_top_iff
File: Mathlib/Topology/Instances/EReal.lean

tactic: simp only [true_and]
state_before: α : Type ?u.11827
inst✝ : TopologicalSpace α
s : Set EReal
⊢ (∃ i, True ∧ Ioi ↑i ⊆ s) ↔ ∃ y, Ioi ↑y ⊆ s
Theorem: List.count_add_count_not
File: Mathlib/Data/Bool/Count.lean

tactic: rw [add_comm, count_not_add_count]
state_before: l : List Bool
b : Bool
⊢ count b l + count (!b) l = length l
Theorem: MeasureTheory.Measure.measurable_join
File: Mathlib/MeasureTheory/Measure/GiryMonad.lean

tactic: simp only [join_apply hs]
state_before: α : Type u_1
β : Type ?u.8515
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
hs : MeasurableSet s
⊢ Measurable fun b => ↑↑(join b) s

tactic: exact measurable_lintegral (measurable_coe hs)
state_before: α : Type u_1
β : Type ?u.8515
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
hs : MeasurableSet s
⊢ Measurable fun b => ∫⁻ (μ : Measure α), ↑↑μ s ∂b
Theorem: SimpleGraph.neighborSet_fst_subgraphOfAdj
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: ext u
state_before: ι : Sort ?u.223079
V : Type u
W : Type v
G : SimpleGraph V
G' : SimpleGraph W
v w : V
hvw : Adj G v w
⊢ Subgraph.neighborSet (subgraphOfAdj G hvw) v = {w}

tactic: suffices w = u ↔ u = w by simpa [hvw.ne.symm] using this
state_before: case h
ι : Sort ?u.223079
V : Type u
W : Type v
G : SimpleGraph V
G' : SimpleGraph W
v w : V
hvw : Adj G v w
u : V
⊢ u ∈ Subgraph.neighborSet (subgraphOfAdj G hvw) v ↔ u ∈ {w}

tactic: rw [eq_comm]
state_before: case h
ι : Sort ?u.223079
V : Type u
W : Type v
G : SimpleGraph V
G' : SimpleGraph W
v w : V
hvw : Adj G v w
u : V
⊢ w = u ↔ u = w

tactic: simpa [hvw.ne.symm] using this
state_before: ι : Sort ?u.223079
V : Type u
W : Type v
G : SimpleGraph V
G' : SimpleGraph W
v w : V
hvw : Adj G v w
u : V
this : w = u ↔ u = w
⊢ u ∈ Subgraph.neighborSet (subgraphOfAdj G hvw) v ↔ u ∈ {w}
Theorem: EuclideanGeometry.reflection_reflection
File: Mathlib/Geometry/Euclidean/Basic.lean

tactic: have : ∀ a : s, ∀ b : V, (_root_.orthogonalProjection s.direction) b = 0 →
    reflection s (reflection s (b +ᵥ (a : P))) = b +ᵥ (a : P) := by
  intro _ _ h
  simp [reflection, h]
state_before: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty { x // x ∈ s }
inst✝ : CompleteSpace { x // x ∈ direction s }
p : P
⊢ ↑(reflection s) (↑(reflection s) p) = p

tactic: rw [← vsub_vadd p (orthogonalProjection s p)]
state_before: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty { x // x ∈ s }
inst✝ : CompleteSpace { x // x ∈ direction s }
p : P
this :
  ∀ (a : { x // x ∈ s }) (b : V),
    ↑(_root_.orthogonalProjection (direction s)) b = 0 → ↑(reflection s) (↑(reflection s) (b +ᵥ ↑a)) = b +ᵥ ↑a
⊢ ↑(reflection s) (↑(reflection s) p) = p

tactic: exact this (orthogonalProjection s p) _ (orthogonalProjection_vsub_orthogonalProjection s p)
state_before: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty { x // x ∈ s }
inst✝ : CompleteSpace { x // x ∈ direction s }
p : P
this :
  ∀ (a : { x // x ∈ s }) (b : V),
    ↑(_root_.orthogonalProjection (direction s)) b = 0 → ↑(reflection s) (↑(reflection s) (b +ᵥ ↑a)) = b +ᵥ ↑a
⊢ ↑(reflection s) (↑(reflection s) (p -ᵥ ↑(↑(orthogonalProjection s) p) +ᵥ ↑(↑(orthogonalProjection s) p))) =
    p -ᵥ ↑(↑(orthogonalProjection s) p) +ᵥ ↑(↑(orthogonalProjection s) p)

tactic: intro _ _ h
state_before: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty { x // x ∈ s }
inst✝ : CompleteSpace { x // x ∈ direction s }
p : P
⊢ ∀ (a : { x // x ∈ s }) (b : V),
    ↑(_root_.orthogonalProjection (direction s)) b = 0 → ↑(reflection s) (↑(reflection s) (b +ᵥ ↑a)) = b +ᵥ ↑a

tactic: simp [reflection, h]
state_before: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty { x // x ∈ s }
inst✝ : CompleteSpace { x // x ∈ direction s }
p : P
a✝ : { x // x ∈ s }
b✝ : V
h : ↑(_root_.orthogonalProjection (direction s)) b✝ = 0
⊢ ↑(reflection s) (↑(reflection s) (b✝ +ᵥ ↑a✝)) = b✝ +ᵥ ↑a✝
Theorem: Set.Finite.finite_of_compl
File: Mathlib/Data/Set/Finite.lean

tactic: rw [← finite_univ_iff, ← union_compl_self s]
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
hs : Set.Finite s
hsc : Set.Finite (sᶜ)
⊢ Finite α

tactic: exact hs.union hsc
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
hs : Set.Finite s
hsc : Set.Finite (sᶜ)
⊢ Set.Finite (s ∪ sᶜ)