tasksource/leandojo huggingface dataset:
Theorem: linearIndependent_option'
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: rw [← linearIndependent_equiv (Equiv.optionEquivSumPUnit.{_, u'} ι).symm, linearIndependent_sum,
  @range_unique _ PUnit, @linearIndependent_unique_iff PUnit, disjoint_span_singleton]
state_before: ι : Type u'
ι' : Type ?u.1214502
R : Type ?u.1214505
K : Type u_1
M : Type ?u.1214511
M' : Type ?u.1214514
M'' : Type ?u.1214517
V : Type u
V' : Type ?u.1214522
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x y z : V
⊢ (LinearIndependent K fun o => Option.casesOn' o x v) ↔ LinearIndependent K v ∧ ¬x ∈ span K (range v)

tactic: refine' ⟨fun h => ⟨h.1, fun hx => h.2.1 <| h.2.2 hx⟩, fun h => ⟨h.1, _, fun hx => (h.2 hx).elim⟩⟩
state_before: ι : Type u'
ι' : Type ?u.1214502
R : Type ?u.1214505
K : Type u_1
M : Type ?u.1214511
M' : Type ?u.1214514
M'' : Type ?u.1214517
V : Type u
V' : Type ?u.1214522
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x y z : V
⊢ (LinearIndependent K fun x => v x) ∧ ¬x = 0 ∧ (x ∈ span K (range fun x => v x) → x = 0) ↔
    LinearIndependent K v ∧ ¬x ∈ span K (range v)

tactic: rintro rfl
state_before: ι : Type u'
ι' : Type ?u.1214502
R : Type ?u.1214505
K : Type u_1
M : Type ?u.1214511
M' : Type ?u.1214514
M'' : Type ?u.1214517
V : Type u
V' : Type ?u.1214522
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x y z : V
h : LinearIndependent K v ∧ ¬x ∈ span K (range v)
⊢ ¬x = 0

tactic: exact h.2 (zero_mem _)
state_before: ι : Type u'
ι' : Type ?u.1214502
R : Type ?u.1214505
K : Type u_1
M : Type ?u.1214511
M' : Type ?u.1214514
M'' : Type ?u.1214517
V : Type u
V' : Type ?u.1214522
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
y z : V
h : LinearIndependent K v ∧ ¬0 ∈ span K (range v)
⊢ False
Theorem: Finset.Equiv.prod_comp_finset
File: Mathlib/Algebra/BigOperators/Basic.lean

tactic: rw [h]
state_before: ι : Type u_2
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
ι' : Type u_1
inst✝ : DecidableEq ι
e : ι ≃ ι'
f : ι' → β
s' : Finset ι'
s : Finset ι
h : s = image (↑e.symm) s'
⊢ ∏ i' in s', f i' = ∏ i in s, f (↑e i)

tactic: refine'
  Finset.prod_bij' (fun i' _hi' => e.symm i') (fun a ha => Finset.mem_image_of_mem _ ha)
    (fun a _ha => by simp_rw [e.apply_symm_apply]) (fun i _hi => e i) (fun a ha => _)
    (fun a _ha => e.apply_symm_apply a) fun a _ha => e.symm_apply_apply a
state_before: ι : Type u_2
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
ι' : Type u_1
inst✝ : DecidableEq ι
e : ι ≃ ι'
f : ι' → β
s' : Finset ι'
s : Finset ι
h : s = image (↑e.symm) s'
⊢ ∏ i' in s', f i' = ∏ i in image (↑e.symm) s', f (↑e i)

tactic: rcases Finset.mem_image.mp ha with ⟨i', hi', rfl⟩
state_before: ι : Type u_2
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a✝ : α
f✝ g : α → β
inst✝¹ : CommMonoid β
ι' : Type u_1
inst✝ : DecidableEq ι
e : ι ≃ ι'
f : ι' → β
s' : Finset ι'
s : Finset ι
h : s = image (↑e.symm) s'
a : ι
ha : a ∈ image (↑e.symm) s'
⊢ (fun i _hi => ↑e i) a ha ∈ s'

tactic: dsimp only
state_before: case intro.intro
ι : Type u_2
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
ι' : Type u_1
inst✝ : DecidableEq ι
e : ι ≃ ι'
f : ι' → β
s' : Finset ι'
s : Finset ι
h : s = image (↑e.symm) s'
i' : ι'
hi' : i' ∈ s'
ha : ↑e.symm i' ∈ image (↑e.symm) s'
⊢ (fun i _hi => ↑e i) (↑e.symm i') ha ∈ s'

tactic: rwa [e.apply_symm_apply]
state_before: case intro.intro
ι : Type u_2
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
ι' : Type u_1
inst✝ : DecidableEq ι
e : ι ≃ ι'
f : ι' → β
s' : Finset ι'
s : Finset ι
h : s = image (↑e.symm) s'
i' : ι'
hi' : i' ∈ s'
ha : ↑e.symm i' ∈ image (↑e.symm) s'
⊢ ↑e (↑e.symm i') ∈ s'

tactic: simp_rw [e.apply_symm_apply]
state_before: ι : Type u_2
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a✝ : α
f✝ g : α → β
inst✝¹ : CommMonoid β
ι' : Type u_1
inst✝ : DecidableEq ι
e : ι ≃ ι'
f : ι' → β
s' : Finset ι'
s : Finset ι
h : s = image (↑e.symm) s'
a : ι'
_ha : a ∈ s'
⊢ f a = f (↑e ((fun i' _hi' => ↑e.symm i') a _ha))
Theorem: Matrix.trace_mul_cycle
File: Mathlib/LinearAlgebra/Matrix/Trace.lean

tactic: rw [trace_mul_comm, Matrix.mul_assoc]
state_before: ι : Type ?u.28957
m : Type u_2
n : Type u_3
p : Type u_4
α : Type ?u.28969
R : Type u_1
S : Type ?u.28975
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : Fintype p
inst✝ : NonUnitalCommSemiring R
A : Matrix m n R
B : Matrix n p R
C : Matrix p m R
⊢ trace (A ⬝ B ⬝ C) = trace (C ⬝ A ⬝ B)
Theorem: ProbabilityTheory.measure_eq_zero_or_one_or_top_of_indepSet_self
File: Mathlib/Probability/Independence/ZeroOne.lean

tactic: specialize h_indep t t (measurableSet_generateFrom (Set.mem_singleton t))
  (measurableSet_generateFrom (Set.mem_singleton t))
state_before: Ω : Type u_1
ι : Type ?u.53841
m m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
t : Set Ω
h_indep : IndepSet t t
⊢ ↑↑μ t = 0 ∨ ↑↑μ t = 1 ∨ ↑↑μ t = ⊤

tactic: by_cases h0 : μ t = 0
state_before: Ω : Type u_1
ι : Type ?u.53841
m m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
t : Set Ω
h_indep : ↑↑μ (t ∩ t) = ↑↑μ t * ↑↑μ t
⊢ ↑↑μ t = 0 ∨ ↑↑μ t = 1 ∨ ↑↑μ t = ⊤

tactic: by_cases h_top : μ t = ∞
state_before: case neg
Ω : Type u_1
ι : Type ?u.53841
m m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
t : Set Ω
h_indep : ↑↑μ (t ∩ t) = ↑↑μ t * ↑↑μ t
h0 : ¬↑↑μ t = 0
⊢ ↑↑μ t = 0 ∨ ↑↑μ t = 1 ∨ ↑↑μ t = ⊤

tactic: rw [← one_mul (μ (t ∩ t)), Set.inter_self, ENNReal.mul_eq_mul_right h0 h_top] at h_indep
state_before: case neg
Ω : Type u_1
ι : Type ?u.53841
m m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
t : Set Ω
h_indep : ↑↑μ (t ∩ t) = ↑↑μ t * ↑↑μ t
h0 : ¬↑↑μ t = 0
h_top : ¬↑↑μ t = ⊤
⊢ ↑↑μ t = 0 ∨ ↑↑μ t = 1 ∨ ↑↑μ t = ⊤

tactic: exact Or.inr (Or.inl h_indep.symm)
state_before: case neg
Ω : Type u_1
ι : Type ?u.53841
m m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
t : Set Ω
h_indep : 1 = ↑↑μ t
h0 : ¬↑↑μ t = 0
h_top : ¬↑↑μ t = ⊤
⊢ ↑↑μ t = 0 ∨ ↑↑μ t = 1 ∨ ↑↑μ t = ⊤

tactic: exact Or.inl h0
state_before: case pos
Ω : Type u_1
ι : Type ?u.53841
m m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
t : Set Ω
h_indep : ↑↑μ (t ∩ t) = ↑↑μ t * ↑↑μ t
h0 : ↑↑μ t = 0
⊢ ↑↑μ t = 0 ∨ ↑↑μ t = 1 ∨ ↑↑μ t = ⊤

tactic: exact Or.inr (Or.inr h_top)
state_before: case pos
Ω : Type u_1
ι : Type ?u.53841
m m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
t : Set Ω
h_indep : ↑↑μ (t ∩ t) = ↑↑μ t * ↑↑μ t
h0 : ¬↑↑μ t = 0
h_top : ↑↑μ t = ⊤
⊢ ↑↑μ t = 0 ∨ ↑↑μ t = 1 ∨ ↑↑μ t = ⊤
Theorem: Fin.castSucc_lt_iff_succ_le
File: Mathlib/Data/Fin/Basic.lean

tactic: simpa only [lt_iff_val_lt_val, le_iff_val_le_val, val_succ, Fin.coe_castSucc] using
  Nat.lt_iff_add_one_le
state_before: n✝ m n : ℕ
i : Fin n
j : Fin (n + 1)
⊢ ↑castSucc i < j ↔ succ i ≤ j
Theorem: IsOpen.div_right
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: rw [← iUnion_div_right_image]
state_before: α : Type u
β : Type v
G : Type w
H : Type x
inst✝² : TopologicalSpace α
inst✝¹ : Group α
inst✝ : TopologicalGroup α
s t : Set α
hs : IsOpen s
⊢ IsOpen (s / t)

tactic: exact isOpen_biUnion fun a _ => isOpenMap_div_right a s hs
state_before: α : Type u
β : Type v
G : Type w
H : Type x
inst✝² : TopologicalSpace α
inst✝¹ : Group α
inst✝ : TopologicalGroup α
s t : Set α
hs : IsOpen s
⊢ IsOpen (⋃ (a : α) (_ : a ∈ t), (fun x => x / a) '' s)
Theorem: Finset.filter_inter_distrib
File: Mathlib/Data/Finset/Basic.lean

tactic: ext
state_before: α : Type u_1
β : Type ?u.373972
γ : Type ?u.373975
p q : α → Prop
inst✝² : DecidablePred p
inst✝¹ : DecidablePred q
inst✝ : DecidableEq α
s t : Finset α
⊢ filter p (s ∩ t) = filter p s ∩ filter p t

tactic: simp [mem_filter, mem_inter, and_assoc]
state_before: case a
α : Type u_1
β : Type ?u.373972
γ : Type ?u.373975
p q : α → Prop
inst✝² : DecidablePred p
inst✝¹ : DecidablePred q
inst✝ : DecidableEq α
s t : Finset α
a✝ : α
⊢ a✝ ∈ filter p (s ∩ t) ↔ a✝ ∈ filter p s ∩ filter p t
Theorem: CategoryTheory.Splitting.splittings_comm
File: Mathlib/Algebra/Homology/ShortExact/Preadditive.lean

tactic: haveI := h.mono
state_before: 𝒜 : Type u_1
inst✝² : Category 𝒜
A B C A' B' C' : 𝒜
f : A ⟶ B
g : B ⟶ C
f' : A' ⟶ B'
g' : B' ⟶ C'
inst✝¹ : Preadditive 𝒜
inst✝ : HasBinaryBiproducts 𝒜
h✝ h h' : Splitting f g
⊢ section h' ≫ retraction h = -section h ≫ retraction h'

tactic: rw [← cancel_mono f]
state_before: 𝒜 : Type u_1
inst✝² : Category 𝒜
A B C A' B' C' : 𝒜
f : A ⟶ B
g : B ⟶ C
f' : A' ⟶ B'
g' : B' ⟶ C'
inst✝¹ : Preadditive 𝒜
inst✝ : HasBinaryBiproducts 𝒜
h✝ h h' : Splitting f g
this : Mono f
⊢ section h' ≫ retraction h = -section h ≫ retraction h'

tactic: simp [retraction_ι_eq_id_sub]
state_before: 𝒜 : Type u_1
inst✝² : Category 𝒜
A B C A' B' C' : 𝒜
f : A ⟶ B
g : B ⟶ C
f' : A' ⟶ B'
g' : B' ⟶ C'
inst✝¹ : Preadditive 𝒜
inst✝ : HasBinaryBiproducts 𝒜
h✝ h h' : Splitting f g
this : Mono f
⊢ (section h' ≫ retraction h) ≫ f = (-section h ≫ retraction h') ≫ f
Theorem: Cubic.splits_iff_card_roots
File: Mathlib/Algebra/CubicDiscriminant.lean

tactic: replace ha : (map φ P).a ≠ 0 := (_root_.map_ne_zero φ).mpr ha
state_before: R : Type ?u.689546
S : Type ?u.689549
F : Type u_1
K : Type u_2
P : Cubic F
inst✝¹ : Field F
inst✝ : Field K
φ : F →+* K
x y z : K
ha : P.a ≠ 0
⊢ Splits φ (toPoly P) ↔ ↑card (roots (map φ P)) = 3

tactic: nth_rw 1 [← RingHom.id_comp φ]
state_before: R : Type ?u.689546
S : Type ?u.689549
F : Type u_1
K : Type u_2
P : Cubic F
inst✝¹ : Field F
inst✝ : Field K
φ : F →+* K
x y z : K
ha : (map φ P).a ≠ 0
⊢ Splits φ (toPoly P) ↔ ↑card (roots (map φ P)) = 3

tactic: rw [roots, ← splits_map_iff, ← map_toPoly, Polynomial.splits_iff_card_roots,
  ← ((degree_eq_iff_natDegree_eq <| ne_zero_of_a_ne_zero ha).1 <| degree_of_a_ne_zero ha : _ = 3)]
state_before: R : Type ?u.689546
S : Type ?u.689549
F : Type u_1
K : Type u_2
P : Cubic F
inst✝¹ : Field F
inst✝ : Field K
φ : F →+* K
x y z : K
ha : (map φ P).a ≠ 0
⊢ Splits (RingHom.comp (RingHom.id K) φ) (toPoly P) ↔ ↑card (roots (map φ P)) = 3
Theorem: Equiv.Perm.decomposeFin.symm_sign
File: Mathlib/GroupTheory/Perm/Fin.lean

tactic: refine' Fin.cases _ _ p <;> simp [Equiv.Perm.decomposeFin, Fin.succ_ne_zero]
state_before: n : ℕ
p : Fin (n + 1)
e : Perm (Fin n)
⊢ ↑sign (↑decomposeFin.symm (p, e)) = (if p = 0 then 1 else -1) * ↑sign e
Theorem: Finset.Nonempty.zero_div
File: Mathlib/Data/Finset/Pointwise.lean

tactic: simpa [mem_div] using hs
state_before: F : Type ?u.666981
α : Type u_1
β : Type ?u.666987
γ : Type ?u.666990
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : GroupWithZero α
s t : Finset α
hs : Finset.Nonempty s
⊢ 0 ⊆ 0 / s
Theorem: εNFA.evalFrom_empty
File: Mathlib/Computability/EpsilonNFA.lean

tactic: induction' x using List.reverseRecOn with x a ih
state_before: α : Type u
σ σ' : Type v
M : εNFA α σ
S : Set σ
x✝ : List α
s : σ
a : α
x : List α
⊢ evalFrom M ∅ x = ∅

tactic: rw [evalFrom_nil, εClosure_empty]
state_before: case H0
α : Type u
σ σ' : Type v
M : εNFA α σ
S : Set σ
x : List α
s : σ
a : α
⊢ evalFrom M ∅ [] = ∅

tactic: rw [evalFrom_append_singleton, ih, stepSet_empty]
state_before: case H1
α : Type u
σ σ' : Type v
M : εNFA α σ
S : Set σ
x✝ : List α
s : σ
a✝ : α
x : List α
a : α
ih : evalFrom M ∅ x = ∅
⊢ evalFrom M ∅ (x ++ [a]) = ∅
Theorem: tsum_range
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: rw [← Set.image_univ, tsum_image f (hg.injOn _)]
state_before: α : Type u_3
β : Type u_2
γ : Type u_1
δ : Type ?u.343423
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : T2Space α
f✝ g✝ : β → α
a a₁ a₂ : α
g : γ → β
f : β → α
hg : Injective g
⊢ (∑' (x : ↑(Set.range g)), f ↑x) = ∑' (x : γ), f (g x)

tactic: simp_rw [← comp_apply (g := g), tsum_univ (f ∘ g)]
state_before: α : Type u_3
β : Type u_2
γ : Type u_1
δ : Type ?u.343423
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : T2Space α
f✝ g✝ : β → α
a a₁ a₂ : α
g : γ → β
f : β → α
hg : Injective g
⊢ (∑' (x : ↑Set.univ), f (g ↑x)) = ∑' (x : γ), f (g x)
Theorem: Set.image_sSup
File: Mathlib/Order/Hom/CompleteLattice.lean

tactic: ext b
state_before: F : Type ?u.92960
α : Type u_1
β : Type u_2
γ : Type ?u.92969
δ : Type ?u.92972
ι : Sort ?u.92975
κ : ι → Sort ?u.92980
f : α → β
s : Set (Set α)
⊢ f '' sSup s = sSup (image f '' s)

tactic: simp only [sSup_eq_sUnion, mem_image, mem_sUnion, exists_prop, sUnion_image, mem_iUnion]
state_before: case h
F : Type ?u.92960
α : Type u_1
β : Type u_2
γ : Type ?u.92969
δ : Type ?u.92972
ι : Sort ?u.92975
κ : ι → Sort ?u.92980
f : α → β
s : Set (Set α)
b : β
⊢ b ∈ f '' sSup s ↔ b ∈ sSup (image f '' s)

tactic: constructor
state_before: case h
F : Type ?u.92960
α : Type u_1
β : Type u_2
γ : Type ?u.92969
δ : Type ?u.92972
ι : Sort ?u.92975
κ : ι → Sort ?u.92980
f : α → β
s : Set (Set α)
b : β
⊢ (∃ x, (∃ t, t ∈ s ∧ x ∈ t) ∧ f x = b) ↔ ∃ i, i ∈ s ∧ ∃ x, x ∈ i ∧ f x = b

tactic: rintro ⟨a, ⟨t, ht₁, ht₂⟩, rfl⟩
state_before: case h.mp
F : Type ?u.92960
α : Type u_1
β : Type u_2
γ : Type ?u.92969
δ : Type ?u.92972
ι : Sort ?u.92975
κ : ι → Sort ?u.92980
f : α → β
s : Set (Set α)
b : β
⊢ (∃ x, (∃ t, t ∈ s ∧ x ∈ t) ∧ f x = b) → ∃ i, i ∈ s ∧ ∃ x, x ∈ i ∧ f x = b

tactic: exact ⟨t, ht₁, a, ht₂, rfl⟩
state_before: case h.mp.intro.intro.intro.intro
F : Type ?u.92960
α : Type u_1
β : Type u_2
γ : Type ?u.92969
δ : Type ?u.92972
ι : Sort ?u.92975
κ : ι → Sort ?u.92980
f : α → β
s : Set (Set α)
a : α
t : Set α
ht₁ : t ∈ s
ht₂ : a ∈ t
⊢ ∃ i, i ∈ s ∧ ∃ x, x ∈ i ∧ f x = f a

tactic: rintro ⟨t, ht₁, a, ht₂, rfl⟩
state_before: case h.mpr
F : Type ?u.92960
α : Type u_1
β : Type u_2
γ : Type ?u.92969
δ : Type ?u.92972
ι : Sort ?u.92975
κ : ι → Sort ?u.92980
f : α → β
s : Set (Set α)
b : β
⊢ (∃ i, i ∈ s ∧ ∃ x, x ∈ i ∧ f x = b) → ∃ x, (∃ t, t ∈ s ∧ x ∈ t) ∧ f x = b

tactic: exact ⟨a, ⟨t, ht₁, ht₂⟩, rfl⟩
state_before: case h.mpr.intro.intro.intro.intro
F : Type ?u.92960
α : Type u_1
β : Type u_2
γ : Type ?u.92969
δ : Type ?u.92972
ι : Sort ?u.92975
κ : ι → Sort ?u.92980
f : α → β
s : Set (Set α)
t : Set α
ht₁ : t ∈ s
a : α
ht₂ : a ∈ t
⊢ ∃ x, (∃ t, t ∈ s ∧ x ∈ t) ∧ f x = f a
Theorem: isReduced_zmod
File: Mathlib/RingTheory/ZMod.lean

tactic: rw [← RingHom.ker_isRadical_iff_reduced_of_surjective
    (ZMod.ringHom_surjective <| Int.castRingHom <| ZMod n),
    ZMod.ker_int_castRingHom, ← isRadical_iff_span_singleton, isRadical_iff_squarefree_or_zero,
    Int.squarefree_coe_nat, Nat.cast_eq_zero]
state_before: n : ℕ
⊢ IsReduced (ZMod n) ↔ Squarefree n ∨ n = 0
Theorem: MeasureTheory.ae_restrict_mem₀
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rcases hs.exists_measurable_subset_ae_eq with ⟨t, hts, htm, ht_eq⟩
state_before: α : Type u_1
β : Type ?u.575568
γ : Type ?u.575571
δ : Type ?u.575574
ι : Type ?u.575577
R : Type ?u.575580
R' : Type ?u.575583
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : NullMeasurableSet s
⊢ ∀ᵐ (x : α) ∂Measure.restrict μ s, x ∈ s

tactic: rw [← restrict_congr_set ht_eq]
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.575568
γ : Type ?u.575571
δ : Type ?u.575574
ι : Type ?u.575577
R : Type ?u.575580
R' : Type ?u.575583
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
hs : NullMeasurableSet s
t : Set α
hts : t ⊆ s
htm : MeasurableSet t
ht_eq : t =ᶠ[ae μ] s
⊢ ∀ᵐ (x : α) ∂Measure.restrict μ s, x ∈ s

tactic: exact (ae_restrict_mem htm).mono hts
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.575568
γ : Type ?u.575571
δ : Type ?u.575574
ι : Type ?u.575577
R : Type ?u.575580
R' : Type ?u.575583
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
hs : NullMeasurableSet s
t : Set α
hts : t ⊆ s
htm : MeasurableSet t
ht_eq : t =ᶠ[ae μ] s
⊢ ∀ᵐ (x : α) ∂Measure.restrict μ t, x ∈ s
Theorem: Nat.ArithmeticFunction.coe_zeta_mul_moebius
File: Mathlib/NumberTheory/ArithmeticFunction.lean

tactic: rw [mul_comm, moebius_mul_coe_zeta]
state_before: R : Type ?u.604756
⊢ ↑ζ * μ = 1
Theorem: BilinForm.IsAdjointPair.smul
File: Mathlib/LinearAlgebra/BilinearForm.lean

tactic: rw [LinearMap.smul_apply, LinearMap.smul_apply, smul_left, smul_right, h]
state_before: R : Type ?u.1067797
M : Type ?u.1067800
inst✝²² : Semiring R
inst✝²¹ : AddCommMonoid M
inst✝²⁰ : Module R M
R₁ : Type ?u.1067836
M₁ : Type ?u.1067839
inst✝¹⁹ : Ring R₁
inst✝¹⁸ : AddCommGroup M₁
inst✝¹⁷ : Module R₁ M₁
R₂ : Type u_1
M₂ : Type u_2
inst✝¹⁶ : CommSemiring R₂
inst✝¹⁵ : AddCommMonoid M₂
inst✝¹⁴ : Module R₂ M₂
R₃ : Type ?u.1068638
M₃ : Type ?u.1068641
inst✝¹³ : CommRing R₃
inst✝¹² : AddCommGroup M₃
inst✝¹¹ : Module R₃ M₃
V : Type ?u.1069229
K : Type ?u.1069232
inst✝¹⁰ : Field K
inst✝⁹ : AddCommGroup V
inst✝⁸ : Module K V
B : BilinForm R M
B₁ : BilinForm R₁ M₁
B₂ : BilinForm R₂ M₂
M₂' : Type u_3
M₂'' : Type ?u.1070449
inst✝⁷ : AddCommMonoid M₂'
inst✝⁶ : AddCommMonoid M₂''
inst✝⁵ : Module R₂ M₂'
inst✝⁴ : Module R₂ M₂''
F : BilinForm R M
M' : Type ?u.1070760
inst✝³ : AddCommMonoid M'
inst✝² : Module R M'
B' : BilinForm R M'
f f' : M →ₗ[R] M'
g g' : M' →ₗ[R] M
M₁' : Type ?u.1071197
inst✝¹ : AddCommGroup M₁'
inst✝ : Module R₁ M₁'
B₁' : BilinForm R₁ M₁'
f₁ f₁' : M₁ →ₗ[R₁] M₁'
g₁ g₁' : M₁' →ₗ[R₁] M₁
B₂' : BilinForm R₂ M₂'
f₂ f₂' : M₂ →ₗ[R₂] M₂'
g₂ g₂' : M₂' →ₗ[R₂] M₂
c : R₂
h : IsAdjointPair B₂ B₂' f₂ g₂
x : M₂
y : M₂'
⊢ bilin B₂' (↑(c • f₂) x) y = bilin B₂ x (↑(c • g₂) y)
Theorem: Metric.preimage_smul_closedBall
File: Mathlib/Topology/MetricSpace/IsometricSMul.lean

tactic: rw [preimage_smul, smul_closedBall]
state_before: M : Type u
G : Type v
X : Type w
inst✝³ : PseudoMetricSpace X
inst✝² : Group G
inst✝¹ : MulAction G X
inst✝ : IsometricSMul G X
c : G
x : X
r : ℝ
⊢ (fun x x_1 => x • x_1) c ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r
Theorem: Nat.add_right_cancel
File: src/lean/Init/Data/Nat/Basic.lean

tactic: rw [Nat.add_comm n m, Nat.add_comm k m] at h
state_before: n m k : Nat
h : n + m = k + m
⊢ n = k

tactic: apply Nat.add_left_cancel h
state_before: n m k : Nat
h : m + n = m + k
⊢ n = k
Theorem: CategoryTheory.Limits.WalkingParallelPairHom.id.sizeOf_spec'
File: Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean

tactic: cases X <;> rfl
state_before: X : WalkingParallelPair
⊢ sizeOf (𝟙 X) = 1 + sizeOf X
Theorem: Submodule.one_mul
File: Mathlib/Algebra/Algebra/Operations.lean

tactic: conv_lhs => rw [one_eq_span, ← span_eq M]
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M N P Q : Submodule R A
m n : A
⊢ 1 * M = M

tactic: erw [span_mul_span, one_mul, span_eq]
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M N P Q : Submodule R A
m n : A
⊢ span R {1} * span R ↑M = M
Theorem: Asymptotics.IsLittleO.tendsto_inv_smul_nhds_zero
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simpa only [div_eq_inv_mul, ← norm_inv, ← norm_smul, ← tendsto_zero_iff_norm_tendsto_zero] using
  h.norm_norm.tendsto_div_nhds_zero
state_before: α : Type u_3
β : Type ?u.601813
E : Type ?u.601816
F : Type ?u.601819
G : Type ?u.601822
E' : Type u_2
F' : Type ?u.601828
G' : Type ?u.601831
E'' : Type ?u.601834
F'' : Type ?u.601837
G'' : Type ?u.601840
R : Type ?u.601843
R' : Type ?u.601846
𝕜 : Type u_1
𝕜' : Type ?u.601852
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedRing R'
inst✝² : NormedField 𝕜
inst✝¹ : NormedField 𝕜'
c c' c₁ c₂ : ℝ
f✝ : α → E
g✝ : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l✝ l' : Filter α
inst✝ : NormedSpace 𝕜 E'
f : α → E'
g : α → 𝕜
l : Filter α
h : f =o[l] g
⊢ Tendsto (fun x => (g x)⁻¹ • f x) l (𝓝 0)
Theorem: LinearMap.range_prod_le
File: Mathlib/LinearAlgebra/Prod.lean

tactic: simp only [SetLike.le_def, prod_apply, mem_range, SetLike.mem_coe, mem_prod, exists_imp]
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type ?u.230981
M₆ : Type ?u.230984
inst✝⁸ : Semiring R
inst✝⁷ : AddCommMonoid M
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : AddCommMonoid M₃
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R M
inst✝² : Module R M₂
inst✝¹ : Module R M₃
inst✝ : Module R M₄
f : M →ₗ[R] M₂
g : M →ₗ[R] M₃
⊢ range (prod f g) ≤ Submodule.prod (range f) (range g)

tactic: rintro _ x rfl
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type ?u.230981
M₆ : Type ?u.230984
inst✝⁸ : Semiring R
inst✝⁷ : AddCommMonoid M
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : AddCommMonoid M₃
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R M
inst✝² : Module R M₂
inst✝¹ : Module R M₃
inst✝ : Module R M₄
f : M →ₗ[R] M₂
g : M →ₗ[R] M₃
⊢ ∀ ⦃x : M₂ × M₃⦄ (x_1 : M), Pi.prod (↑f) (↑g) x_1 = x → (∃ y, ↑f y = x.fst) ∧ ∃ y, ↑g y = x.snd

tactic: exact ⟨⟨x, rfl⟩, ⟨x, rfl⟩⟩
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type ?u.230981
M₆ : Type ?u.230984
inst✝⁸ : Semiring R
inst✝⁷ : AddCommMonoid M
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : AddCommMonoid M₃
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R M
inst✝² : Module R M₂
inst✝¹ : Module R M₃
inst✝ : Module R M₄
f : M →ₗ[R] M₂
g : M →ₗ[R] M₃
x : M
⊢ (∃ y, ↑f y = (Pi.prod (↑f) (↑g) x).fst) ∧ ∃ y, ↑g y = (Pi.prod (↑f) (↑g) x).snd
Theorem: Finset.fiber_card_ne_zero_iff_mem_image
File: Mathlib/Data/Finset/Card.lean

tactic: rw [← pos_iff_ne_zero, card_pos, fiber_nonempty_iff_mem_image]
state_before: α : Type u_1
β : Type u_2
s✝ t : Finset α
f✝ : α → β
n : ℕ
s : Finset α
f : α → β
inst✝ : DecidableEq β
y : β
⊢ card (filter (fun x => f x = y) s) ≠ 0 ↔ y ∈ image f s
Theorem: Polynomial.expand_zero
File: Mathlib/Data/Polynomial/Expand.lean

tactic: simp [expand]
state_before: R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p q : ℕ
f : R[X]
⊢ ↑(expand R 0) f = ↑C (eval 1 f)
Theorem: Set.image_singleton
File: Mathlib/Data/Set/Image.lean

tactic: ext
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.36244
ι : Sort ?u.36247
ι' : Sort ?u.36250
f✝ : α → β
s t : Set α
f : α → β
a : α
⊢ f '' {a} = {f a}

tactic: simp [image, eq_comm]
state_before: case h
α : Type u_2
β : Type u_1
γ : Type ?u.36244
ι : Sort ?u.36247
ι' : Sort ?u.36250
f✝ : α → β
s t : Set α
f : α → β
a : α
x✝ : β
⊢ x✝ ∈ f '' {a} ↔ x✝ ∈ {f a}