tasksource/leandojo huggingface dataset:
Theorem: AffineSubspace.inter_nonempty_of_nonempty_of_sup_direction_eq_top
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: by_contra h
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
h1 : Set.Nonempty ↑s1
h2 : Set.Nonempty ↑s2
hd : direction s1 ⊔ direction s2 = ⊤
⊢ Set.Nonempty (↑s1 ∩ ↑s2)

tactic: rw [Set.not_nonempty_iff_eq_empty] at h
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
h1 : Set.Nonempty ↑s1
h2 : Set.Nonempty ↑s2
hd : direction s1 ⊔ direction s2 = ⊤
h : ¬Set.Nonempty (↑s1 ∩ ↑s2)
⊢ False

tactic: have hlt := sup_direction_lt_of_nonempty_of_inter_empty h1 h2 h
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
h1 : Set.Nonempty ↑s1
h2 : Set.Nonempty ↑s2
hd : direction s1 ⊔ direction s2 = ⊤
h : ↑s1 ∩ ↑s2 = ∅
⊢ False

tactic: rw [hd] at hlt
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
h1 : Set.Nonempty ↑s1
h2 : Set.Nonempty ↑s2
hd : direction s1 ⊔ direction s2 = ⊤
h : ↑s1 ∩ ↑s2 = ∅
hlt : direction s1 ⊔ direction s2 < direction (s1 ⊔ s2)
⊢ False

tactic: exact not_top_lt hlt
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
h1 : Set.Nonempty ↑s1
h2 : Set.Nonempty ↑s2
hd : direction s1 ⊔ direction s2 = ⊤
h : ↑s1 ∩ ↑s2 = ∅
hlt : ⊤ < direction (s1 ⊔ s2)
⊢ False
Theorem: Function.Commute.iterate_pos_lt_iff_map_lt
File: Mathlib/Order/Iterate.lean

tactic: rcases lt_trichotomy (f x) (g x) with (H | H | H)
state_before: α : Type u_1
inst✝ : LinearOrder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
n : ℕ
hn : 0 < n
⊢ (f^[n]) x < (g^[n]) x ↔ f x < g x

tactic: simp only [*, iterate_pos_lt_of_map_lt]
state_before: case inl
α : Type u_1
inst✝ : LinearOrder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
n : ℕ
hn : 0 < n
H : f x < g x
⊢ (f^[n]) x < (g^[n]) x ↔ f x < g x

tactic: simp only [*, h.iterate_eq_of_map_eq, lt_irrefl]
state_before: case inr.inl
α : Type u_1
inst✝ : LinearOrder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
n : ℕ
hn : 0 < n
H : f x = g x
⊢ (f^[n]) x < (g^[n]) x ↔ f x < g x

tactic: simp only [lt_asymm H, lt_asymm (h.symm.iterate_pos_lt_of_map_lt' hg hf H hn)]
state_before: case inr.inr
α : Type u_1
inst✝ : LinearOrder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
n : ℕ
hn : 0 < n
H : g x < f x
⊢ (f^[n]) x < (g^[n]) x ↔ f x < g x
Theorem: String.extract.go₂_append_left
File: Std/Data/String/Lemmas.lean

tactic: cases t <;> simp [go₂]
state_before: t : List Char
i : Nat
⊢ go₂ ([] ++ t) { byteIdx := i } { byteIdx := utf8Len [] + i } = []

tactic: simp [go₂, Pos.ext_iff, ne_add_csize_add_self, Pos.addChar_eq]
state_before: c : Char
cs t : List Char
i : Nat
⊢ go₂ (c :: cs ++ t) { byteIdx := i } { byteIdx := utf8Len (c :: cs) + i } = c :: cs

tactic: apply go₂_append_left
state_before: c : Char
cs t : List Char
i : Nat
⊢ go₂ (cs ++ t) { byteIdx := i + csize c } { byteIdx := utf8Len cs + csize c + i } = cs

tactic: rw [Nat.add_right_comm, Nat.add_assoc]
state_before: case a
c : Char
cs t : List Char
i : Nat
⊢ utf8Len cs + csize c + i = utf8Len cs + (i + csize c)
Theorem: rank_le
File: Mathlib/LinearAlgebra/Dimension.lean

tactic: rw [Module.rank_def]
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.12896
R : Type u
inst✝⁶ : Ring R
M : Type v
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type v'
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
M₁ : Type v
inst✝¹ : AddCommGroup M₁
inst✝ : Module R M₁
n : ℕ
H : ∀ (s : Finset M), (LinearIndependent R fun i => ↑i) → Finset.card s ≤ n
⊢ Module.rank R M ≤ ↑n

tactic: apply ciSup_le'
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.12896
R : Type u
inst✝⁶ : Ring R
M : Type v
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type v'
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
M₁ : Type v
inst✝¹ : AddCommGroup M₁
inst✝ : Module R M₁
n : ℕ
H : ∀ (s : Finset M), (LinearIndependent R fun i => ↑i) → Finset.card s ≤ n
⊢ (⨆ (ι : { s // LinearIndependent R Subtype.val }), #↑↑ι) ≤ ↑n

tactic: rintro ⟨s, li⟩
state_before: case h
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.12896
R : Type u
inst✝⁶ : Ring R
M : Type v
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type v'
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
M₁ : Type v
inst✝¹ : AddCommGroup M₁
inst✝ : Module R M₁
n : ℕ
H : ∀ (s : Finset M), (LinearIndependent R fun i => ↑i) → Finset.card s ≤ n
⊢ ∀ (i : { s // LinearIndependent R Subtype.val }), (#↑↑i) ≤ ↑n

tactic: exact linearIndependent_bounded_of_finset_linearIndependent_bounded H _ li
state_before: case h.mk
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.12896
R : Type u
inst✝⁶ : Ring R
M : Type v
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type v'
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
M₁ : Type v
inst✝¹ : AddCommGroup M₁
inst✝ : Module R M₁
n : ℕ
H : ∀ (s : Finset M), (LinearIndependent R fun i => ↑i) → Finset.card s ≤ n
s : Set M
li : LinearIndependent R Subtype.val
⊢ (#↑↑{ val := s, property := li }) ≤ ↑n
Theorem: Nat.totient_super_multiplicative
File: Mathlib/Data/Nat/Totient.lean

tactic: let d := a.gcd b
state_before: a b : ℕ
⊢ φ a * φ b ≤ φ (a * b)

tactic: rcases(zero_le a).eq_or_lt with (rfl | ha0)
state_before: a b : ℕ
d : ℕ := gcd a b
⊢ φ a * φ b ≤ φ (a * b)

tactic: have hd0 : 0 < d := Nat.gcd_pos_of_pos_left _ ha0
state_before: case inr
a b : ℕ
d : ℕ := gcd a b
ha0 : 0 < a
⊢ φ a * φ b ≤ φ (a * b)

tactic: apply le_of_mul_le_mul_right _ hd0
state_before: case inr
a b : ℕ
d : ℕ := gcd a b
ha0 : 0 < a
hd0 : 0 < d
⊢ φ a * φ b ≤ φ (a * b)

tactic: rw [← totient_gcd_mul_totient_mul a b, mul_comm]
state_before: a b : ℕ
d : ℕ := gcd a b
ha0 : 0 < a
hd0 : 0 < d
⊢ φ a * φ b * d ≤ φ (a * b) * d

tactic: apply mul_le_mul_left' (Nat.totient_le d)
state_before: a b : ℕ
d : ℕ := gcd a b
ha0 : 0 < a
hd0 : 0 < d
⊢ φ (a * b) * φ (gcd a b) ≤ φ (a * b) * d

tactic: simp
state_before: case inl
b : ℕ
d : ℕ := gcd 0 b
⊢ φ 0 * φ b ≤ φ (0 * b)
Theorem: CategoryTheory.GrothendieckTopology.top_covers
File: Mathlib/CategoryTheory/Sites/Grothendieck.lean

tactic: simp [covers_iff]
state_before: C : Type u
inst✝ : Category C
X Y : C
S✝ R : Sieve X
J : GrothendieckTopology C
S : Sieve X
f : Y ⟶ X
⊢ Covers ⊤ S f
Theorem: Finset.affineCombinationLineMapWeights_self
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: simp [affineCombinationLineMapWeights]
state_before: k : Type u_2
V : Type ?u.431953
P : Type ?u.431956
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
S : AffineSpace V P
ι : Type u_1
s : Finset ι
ι₂ : Type ?u.432612
s₂ : Finset ι₂
inst✝ : DecidableEq ι
i : ι
c : k
⊢ affineCombinationLineMapWeights i i c = affineCombinationSingleWeights k i
Theorem: Matrix.det_sum_le
File: Mathlib/LinearAlgebra/Matrix/AbsoluteValue.lean

tactic: simp only [sum_apply]
state_before: R : Type u_3
S : Type u_4
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : LinearOrderedCommRing S
n : Type u_2
inst✝¹ : Fintype n
inst✝ : DecidableEq n
ι : Type u_1
s : Finset ι
A : ι → Matrix n n R
abv : AbsoluteValue R S
x : S
hx : ∀ (k : ι) (i j : n), ↑abv (A k i j) ≤ x
i j : n
⊢ ↑abv (Finset.sum s (fun k => A k) i j) = ↑abv (∑ k in s, A k i j)
Theorem: Nat.odd_iff
File: Mathlib/Data/Nat/Parity.lean

tactic: rw [hm, add_mod, mul_mod_right]
state_before: m✝ n : ℕ
x✝ : Odd n
m : ℕ
hm : n = 2 * m + 1
⊢ n % 2 = 1

tactic: rfl
state_before: m✝ n : ℕ
x✝ : Odd n
m : ℕ
hm : n = 2 * m + 1
⊢ (0 + 1 % 2) % 2 = 1

tactic: rw [h, add_comm]
state_before: m n : ℕ
h : n % 2 = 1
⊢ n % 2 + 2 * (n / 2) = 2 * (n / 2) + 1
Theorem: Submodule.span_zero
File: Mathlib/LinearAlgebra/Span.lean

tactic: rw [← singleton_zero, span_singleton_eq_bot]
state_before: R : Type u_2
R₂ : Type ?u.184428
K : Type ?u.184431
M : Type u_1
M₂ : Type ?u.184437
V : Type ?u.184440
S : Type ?u.184443
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
x : M
p p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s t : Set M
⊢ span R 0 = ⊥
Theorem: continuous_finprod_cond
File: Mathlib/Topology/Algebra/Monoid.lean

tactic: simp only [← finprod_subtype_eq_finprod_cond]
state_before: ι : Type u_3
α : Type ?u.453927
X : Type u_1
M : Type u_2
N : Type ?u.453936
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace M
inst✝¹ : CommMonoid M
inst✝ : ContinuousMul M
f : ι → X → M
p : ι → Prop
hc : ∀ (i : ι), p i → Continuous (f i)
hf : LocallyFinite fun i => mulSupport (f i)
⊢ Continuous fun x => ∏ᶠ (i : ι) (_ : p i), f i x

tactic: exact continuous_finprod (fun i => hc i i.2) (hf.comp_injective Subtype.coe_injective)
state_before: ι : Type u_3
α : Type ?u.453927
X : Type u_1
M : Type u_2
N : Type ?u.453936
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace M
inst✝¹ : CommMonoid M
inst✝ : ContinuousMul M
f : ι → X → M
p : ι → Prop
hc : ∀ (i : ι), p i → Continuous (f i)
hf : LocallyFinite fun i => mulSupport (f i)
⊢ Continuous fun x => ∏ᶠ (j : { i // p i }), f (↑j) x
Theorem: unitInterval.qRight_one_right
File: Mathlib/Topology/Homotopy/HSpaces.lean

tactic: rw [qRight]
state_before: t : ↑I
⊢ qRight (t, 1) = Set.projIcc 0 1 (_ : 0 ≤ 1) ↑t

tactic: congr
state_before: t : ↑I
⊢ Set.projIcc 0 1 qRight.proof_1 (2 * ↑(t, 1).fst / (1 + ↑(t, 1).snd)) = Set.projIcc 0 1 (_ : 0 ≤ 1) ↑t

tactic: norm_num
state_before: case e_x
t : ↑I
⊢ 2 * ↑(t, 1).fst / (1 + ↑(t, 1).snd) = ↑t

tactic: apply mul_div_cancel_left
state_before: case e_x
t : ↑I
⊢ 2 * ↑t / 2 = ↑t

tactic: exact two_ne_zero
state_before: case e_x.ha
t : ↑I
⊢ 2 ≠ 0
Theorem: Subalgebra.topologicalClosure_comap_homeomorph
File: Mathlib/Topology/Algebra/Algebra.lean

tactic: apply SetLike.ext'
state_before: R : Type u_1
inst✝⁸ : CommSemiring R
A : Type u
inst✝⁷ : TopologicalSpace A
inst✝⁶ : Semiring A
inst✝⁵ : Algebra R A
inst✝⁴ : TopologicalSemiring A
s : Subalgebra R A
B : Type u_2
inst✝³ : TopologicalSpace B
inst✝² : Ring B
inst✝¹ : TopologicalRing B
inst✝ : Algebra R B
f : B →ₐ[R] A
f' : B ≃ₜ A
w : ↑f = ↑f'
⊢ comap f (topologicalClosure s) = topologicalClosure (comap f s)

tactic: simp only [Subalgebra.topologicalClosure_coe]
state_before: case h
R : Type u_1
inst✝⁸ : CommSemiring R
A : Type u
inst✝⁷ : TopologicalSpace A
inst✝⁶ : Semiring A
inst✝⁵ : Algebra R A
inst✝⁴ : TopologicalSemiring A
s : Subalgebra R A
B : Type u_2
inst✝³ : TopologicalSpace B
inst✝² : Ring B
inst✝¹ : TopologicalRing B
inst✝ : Algebra R B
f : B →ₐ[R] A
f' : B ≃ₜ A
w : ↑f = ↑f'
⊢ ↑(comap f (topologicalClosure s)) = ↑(topologicalClosure (comap f s))

tactic: simp only [Subalgebra.coe_comap, Subsemiring.coe_comap, AlgHom.coe_toRingHom]
state_before: case h
R : Type u_1
inst✝⁸ : CommSemiring R
A : Type u
inst✝⁷ : TopologicalSpace A
inst✝⁶ : Semiring A
inst✝⁵ : Algebra R A
inst✝⁴ : TopologicalSemiring A
s : Subalgebra R A
B : Type u_2
inst✝³ : TopologicalSpace B
inst✝² : Ring B
inst✝¹ : TopologicalRing B
inst✝ : Algebra R B
f : B →ₐ[R] A
f' : B ≃ₜ A
w : ↑f = ↑f'
⊢ ↑(comap f (topologicalClosure s)) = closure ↑(comap f s)

tactic: rw [w]
state_before: case h
R : Type u_1
inst✝⁸ : CommSemiring R
A : Type u
inst✝⁷ : TopologicalSpace A
inst✝⁶ : Semiring A
inst✝⁵ : Algebra R A
inst✝⁴ : TopologicalSemiring A
s : Subalgebra R A
B : Type u_2
inst✝³ : TopologicalSpace B
inst✝² : Ring B
inst✝¹ : TopologicalRing B
inst✝ : Algebra R B
f : B →ₐ[R] A
f' : B ≃ₜ A
w : ↑f = ↑f'
⊢ ↑f ⁻¹' ↑(topologicalClosure s) = closure (↑f ⁻¹' ↑s)

tactic: exact f'.preimage_closure _
state_before: case h
R : Type u_1
inst✝⁸ : CommSemiring R
A : Type u
inst✝⁷ : TopologicalSpace A
inst✝⁶ : Semiring A
inst✝⁵ : Algebra R A
inst✝⁴ : TopologicalSemiring A
s : Subalgebra R A
B : Type u_2
inst✝³ : TopologicalSpace B
inst✝² : Ring B
inst✝¹ : TopologicalRing B
inst✝ : Algebra R B
f : B →ₐ[R] A
f' : B ≃ₜ A
w : ↑f = ↑f'
⊢ ↑f' ⁻¹' ↑(topologicalClosure s) = closure (↑f' ⁻¹' ↑s)
Theorem: irreducible_pow_sup_of_le
File: Mathlib/RingTheory/DedekindDomain/Ideal.lean

tactic: by_cases hI : I = ⊥
state_before: R : Type ?u.918814
A : Type ?u.918817
K : Type ?u.918820
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
T : Type u_1
inst✝² : CommRing T
inst✝¹ : IsDomain T
inst✝ : IsDedekindDomain T
I J : Ideal T
hJ : Irreducible J
n : ℕ
hn : ↑n ≤ multiplicity J I
⊢ J ^ n ⊔ I = J ^ n

tactic: rw [irreducible_pow_sup hI hJ, min_eq_right]
state_before: case neg
R : Type ?u.918814
A : Type ?u.918817
K : Type ?u.918820
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
T : Type u_1
inst✝² : CommRing T
inst✝¹ : IsDomain T
inst✝ : IsDedekindDomain T
I J : Ideal T
hJ : Irreducible J
n : ℕ
hn : ↑n ≤ multiplicity J I
hI : ¬I = ⊥
⊢ J ^ n ⊔ I = J ^ n

tactic: rwa [multiplicity_eq_count_normalizedFactors hJ hI, PartENat.coe_le_coe, normalize_eq J] at hn
state_before: case neg
R : Type ?u.918814
A : Type ?u.918817
K : Type ?u.918820
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
T : Type u_1
inst✝² : CommRing T
inst✝¹ : IsDomain T
inst✝ : IsDedekindDomain T
I J : Ideal T
hJ : Irreducible J
n : ℕ
hn : ↑n ≤ multiplicity J I
hI : ¬I = ⊥
⊢ n ≤ count J (normalizedFactors I)

tactic: simp_all
state_before: case pos
R : Type ?u.918814
A : Type ?u.918817
K : Type ?u.918820
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
T : Type u_1
inst✝² : CommRing T
inst✝¹ : IsDomain T
inst✝ : IsDedekindDomain T
I J : Ideal T
hJ : Irreducible J
n : ℕ
hn : ↑n ≤ multiplicity J I
hI : I = ⊥
⊢ J ^ n ⊔ I = J ^ n
Theorem: min_pow_dvd_add
File: Mathlib/Algebra/GroupPower/Ring.lean

tactic: replace ha := (pow_dvd_pow c (min_le_left n m)).trans ha
state_before: R : Type u_1
S : Type ?u.85157
M : Type ?u.85160
inst✝¹ : Semiring R
inst✝ : Semiring S
n m : ℕ
a b c : R
ha : c ^ n ∣ a
hb : c ^ m ∣ b
⊢ c ^ min n m ∣ a + b

tactic: replace hb := (pow_dvd_pow c (min_le_right n m)).trans hb
state_before: R : Type u_1
S : Type ?u.85157
M : Type ?u.85160
inst✝¹ : Semiring R
inst✝ : Semiring S
n m : ℕ
a b c : R
hb : c ^ m ∣ b
ha : c ^ min n m ∣ a
⊢ c ^ min n m ∣ a + b

tactic: exact dvd_add ha hb
state_before: R : Type u_1
S : Type ?u.85157
M : Type ?u.85160
inst✝¹ : Semiring R
inst✝ : Semiring S
n m : ℕ
a b c : R
ha : c ^ min n m ∣ a
hb : c ^ min n m ∣ b
⊢ c ^ min n m ∣ a + b
Theorem: IsSelfAdjoint.conjugate'
File: Mathlib/Algebra/Star/SelfAdjoint.lean

tactic: simp only [isSelfAdjoint_iff, star_mul, star_star, mul_assoc, hx.star_eq]
state_before: R : Type u_1
A : Type ?u.21732
inst✝¹ : Semigroup R
inst✝ : StarSemigroup R
x : R
hx : IsSelfAdjoint x
z : R
⊢ IsSelfAdjoint (star z * x * z)
Theorem: Finset.prod_union
File: Mathlib/Algebra/BigOperators/Basic.lean

tactic: rw [← prod_union_inter, disjoint_iff_inter_eq_empty.mp h]
state_before: ι : Type ?u.286983
β : Type u
α : Type v
γ : Type w
s s₁ s₂ : Finset α
a : α
f g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
h : Disjoint s₁ s₂
⊢ ∏ x in s₁ ∪ s₂, f x = (∏ x in s₁, f x) * ∏ x in s₂, f x

tactic: exact (mul_one _).symm
state_before: ι : Type ?u.286983
β : Type u
α : Type v
γ : Type w
s s₁ s₂ : Finset α
a : α
f g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
h : Disjoint s₁ s₂
⊢ ∏ x in s₁ ∪ s₂, f x = (∏ x in s₁ ∪ s₂, f x) * ∏ x in ∅, f x
Theorem: Polynomial.int_cyclotomic_unique
File: Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean

tactic: apply map_injective (Int.castRingHom ℂ) Int.cast_injective
state_before: n : ℕ
P : ℤ[X]
h : map (Int.castRingHom ℂ) P = cyclotomic' n ℂ
⊢ P = cyclotomic n ℤ

tactic: rw [h, (int_cyclotomic_spec n).1]
state_before: case a
n : ℕ
P : ℤ[X]
h : map (Int.castRingHom ℂ) P = cyclotomic' n ℂ
⊢ map (Int.castRingHom ℂ) P = map (Int.castRingHom ℂ) (cyclotomic n ℤ)
Theorem: IsLocalMinOn.fderivWithin_nonneg
File: Mathlib/Analysis/Calculus/LocalExtr.lean

tactic: rw [fderivWithin_zero_of_not_differentiableWithinAt hf]
state_before: E : Type u
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : E → ℝ
a : E
f' : E →L[ℝ] ℝ
s : Set E
h : IsLocalMinOn f s a
y : E
hy : y ∈ posTangentConeAt s a
hf : ¬DifferentiableWithinAt ℝ f s a
⊢ 0 ≤ ↑(fderivWithin ℝ f s a) y

tactic: rfl
state_before: E : Type u
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : E → ℝ
a : E
f' : E →L[ℝ] ℝ
s : Set E
h : IsLocalMinOn f s a
y : E
hy : y ∈ posTangentConeAt s a
hf : ¬DifferentiableWithinAt ℝ f s a
⊢ 0 ≤ ↑0 y
Theorem: LinearEquiv.symm_trans_self
File: Mathlib/Algebra/Module/Equiv.lean

tactic: ext x
state_before: R : Type ?u.219981
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type ?u.219990
k : Type ?u.219993
S : Type ?u.219996
M : Type ?u.219999
M₁ : Type u_3
M₂ : Type u_4
M₃ : Type ?u.220008
N₁ : Type ?u.220011
N₂ : Type ?u.220014
N₃ : Type ?u.220017
N₄ : Type ?u.220020
ι : Type ?u.220023
M₄ : Type ?u.220026
inst✝¹⁷ : Semiring R
inst✝¹⁶ : Semiring S
inst✝¹⁵ : Semiring R₁
inst✝¹⁴ : Semiring R₂
inst✝¹³ : Semiring R₃
inst✝¹² : AddCommMonoid M
inst✝¹¹ : AddCommMonoid M₁
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M₄
inst✝⁷ : AddCommMonoid N₁
inst✝⁶ : AddCommMonoid N₂
module_M : Module R M
module_S_M₂ : Module S M₂
σ : R →+* S
σ' : S →+* R
re₁ : RingHomInvPair σ σ'
re₂ : RingHomInvPair σ' σ
e e' : M ≃ₛₗ[σ] M₂
module_M₁ : Module R₁ M₁
module_M₂ : Module R₂ M₂
module_M₃ : Module R₃ M₃
module_N₁ : Module R₁ N₁
module_N₂ : Module R₁ N₂
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
σ₂₁ : R₂ →+* R₁
σ₃₂ : R₃ →+* R₂
σ₃₁ : R₃ →+* R₁
inst✝⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
re₁₂ : RingHomInvPair σ₁₂ σ₂₁
re₂₃ : RingHomInvPair σ₂₃ σ₃₂
inst✝³ : RingHomInvPair σ₁₃ σ₃₁
re₂₁ : RingHomInvPair σ₂₁ σ₁₂
re₃₂ : RingHomInvPair σ₃₂ σ₂₃
inst✝² : RingHomInvPair σ₃₁ σ₁₃
e₁₂ : M₁ ≃ₛₗ[σ₁₂] M₂
e₂₃ : M₂ ≃ₛₗ[σ₂₃] M₃
inst✝¹ : RingHomCompTriple σ₂₁ σ₁₃ σ₂₃
inst✝ : RingHomCompTriple σ₃₁ σ₁₂ σ₃₂
f : M₁ ≃ₛₗ[σ₁₂] M₂
⊢ trans (symm f) f = refl R₂ M₂

tactic: simp
state_before: case h
R : Type ?u.219981
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type ?u.219990
k : Type ?u.219993
S : Type ?u.219996
M : Type ?u.219999
M₁ : Type u_3
M₂ : Type u_4
M₃ : Type ?u.220008
N₁ : Type ?u.220011
N₂ : Type ?u.220014
N₃ : Type ?u.220017
N₄ : Type ?u.220020
ι : Type ?u.220023
M₄ : Type ?u.220026
inst✝¹⁷ : Semiring R
inst✝¹⁶ : Semiring S
inst✝¹⁵ : Semiring R₁
inst✝¹⁴ : Semiring R₂
inst✝¹³ : Semiring R₃
inst✝¹² : AddCommMonoid M
inst✝¹¹ : AddCommMonoid M₁
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M₄
inst✝⁷ : AddCommMonoid N₁
inst✝⁶ : AddCommMonoid N₂
module_M : Module R M
module_S_M₂ : Module S M₂
σ : R →+* S
σ' : S →+* R
re₁ : RingHomInvPair σ σ'
re₂ : RingHomInvPair σ' σ
e e' : M ≃ₛₗ[σ] M₂
module_M₁ : Module R₁ M₁
module_M₂ : Module R₂ M₂
module_M₃ : Module R₃ M₃
module_N₁ : Module R₁ N₁
module_N₂ : Module R₁ N₂
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
σ₂₁ : R₂ →+* R₁
σ₃₂ : R₃ →+* R₂
σ₃₁ : R₃ →+* R₁
inst✝⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
re₁₂ : RingHomInvPair σ₁₂ σ₂₁
re₂₃ : RingHomInvPair σ₂₃ σ₃₂
inst✝³ : RingHomInvPair σ₁₃ σ₃₁
re₂₁ : RingHomInvPair σ₂₁ σ₁₂
re₃₂ : RingHomInvPair σ₃₂ σ₂₃
inst✝² : RingHomInvPair σ₃₁ σ₁₃
e₁₂ : M₁ ≃ₛₗ[σ₁₂] M₂
e₂₃ : M₂ ≃ₛₗ[σ₂₃] M₃
inst✝¹ : RingHomCompTriple σ₂₁ σ₁₃ σ₂₃
inst✝ : RingHomCompTriple σ₃₁ σ₁₂ σ₃₂
f : M₁ ≃ₛₗ[σ₁₂] M₂
x : M₂
⊢ ↑(trans (symm f) f) x = ↑(refl R₂ M₂) x
Theorem: MeasureTheory.Measure.mutuallySingular_singularPart
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: by_cases h : HaveLebesgueDecomposition μ ν
state_before: α : Type u_1
β : Type ?u.33482
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
⊢ singularPart μ ν ⟂ₘ ν

tactic: exact (haveLebesgueDecomposition_spec μ ν).2.1
state_before: case pos
α : Type u_1
β : Type ?u.33482
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
h : HaveLebesgueDecomposition μ ν
⊢ singularPart μ ν ⟂ₘ ν

tactic: rw [singularPart, dif_neg h]
state_before: case neg
α : Type u_1
β : Type ?u.33482
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
h : ¬HaveLebesgueDecomposition μ ν
⊢ singularPart μ ν ⟂ₘ ν

tactic: exact MutuallySingular.zero_left
state_before: case neg
α : Type u_1
β : Type ?u.33482
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
h : ¬HaveLebesgueDecomposition μ ν
⊢ 0 ⟂ₘ ν
Theorem: Set.offDiag_insert
File: Mathlib/Data/Set/Prod.lean

tactic: rw [insert_eq, union_comm, offDiag_union, offDiag_singleton, union_empty, union_right_comm]
state_before: α : Type u_1
s t : Set α
x : α × α
a : α
ha : ¬a ∈ s
⊢ offDiag (insert a s) = offDiag s ∪ {a} ×ˢ s ∪ s ×ˢ {a}

tactic: rw [disjoint_left]
state_before: α : Type u_1
s t : Set α
x : α × α
a : α
ha : ¬a ∈ s
⊢ Disjoint s {a}

tactic: rintro b hb (rfl : b = a)
state_before: α : Type u_1
s t : Set α
x : α × α
a : α
ha : ¬a ∈ s
⊢ ∀ ⦃a_1 : α⦄, a_1 ∈ s → ¬a_1 ∈ {a}

tactic: exact ha hb
state_before: α : Type u_1
s t : Set α
x : α × α
b : α
hb : b ∈ s
ha : ¬b ∈ s
⊢ False
Theorem: IsLocalization.coeffIntegerNormalization_mem_support
File: Mathlib/RingTheory/Localization/Integral.lean

tactic: contrapose h
state_before: R : Type u_2
inst✝⁴ : CommRing R
M : Submonoid R
S : Type u_1
inst✝³ : CommRing S
inst✝² : Algebra R S
P : Type ?u.5885
inst✝¹ : CommRing P
inst✝ : IsLocalization M S
p : S[X]
i : ℕ
h : coeffIntegerNormalization M p i ≠ 0
⊢ i ∈ support p

tactic: rw [Ne.def, Classical.not_not, coeffIntegerNormalization, dif_neg h]
state_before: R : Type u_2
inst✝⁴ : CommRing R
M : Submonoid R
S : Type u_1
inst✝³ : CommRing S
inst✝² : Algebra R S
P : Type ?u.5885
inst✝¹ : CommRing P
inst✝ : IsLocalization M S
p : S[X]
i : ℕ
h : ¬i ∈ support p
⊢ ¬coeffIntegerNormalization M p i ≠ 0
Theorem: MeasureTheory.absolutelyContinuous_inv
File: Mathlib/MeasureTheory/Group/Prod.lean

tactic: refine' AbsolutelyContinuous.mk fun s _ => _
state_before: G : Type u_1
inst✝⁶ : MeasurableSpace G
inst✝⁵ : Group G
inst✝⁴ : MeasurableMul₂ G
μ ν : Measure G
inst✝³ : SigmaFinite ν
inst✝² : SigmaFinite μ
s : Set G
inst✝¹ : MeasurableInv G
inst✝ : IsMulLeftInvariant μ
⊢ μ ≪ Measure.inv μ

tactic: simp_rw [inv_apply μ s, measure_inv_null, imp_self]
state_before: G : Type u_1
inst✝⁶ : MeasurableSpace G
inst✝⁵ : Group G
inst✝⁴ : MeasurableMul₂ G
μ ν : Measure G
inst✝³ : SigmaFinite ν
inst✝² : SigmaFinite μ
s✝ : Set G
inst✝¹ : MeasurableInv G
inst✝ : IsMulLeftInvariant μ
s : Set G
x✝ : MeasurableSet s
⊢ ↑↑(Measure.inv μ) s = 0 → ↑↑μ s = 0
Theorem: measurableSet_integrable
File: Mathlib/MeasureTheory/Constructions/Prod/Integral.lean

tactic: simp_rw [Integrable, hf.of_uncurry_left.aestronglyMeasurable, true_and_iff]
state_before: α : Type u_2
α' : Type ?u.1147235
β : Type u_1
β' : Type ?u.1147241
γ : Type ?u.1147244
E : Type u_3
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : MeasureTheory.Measure α
ν ν' : MeasureTheory.Measure β
τ : MeasureTheory.Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SigmaFinite ν
f : α → β → E
hf : StronglyMeasurable (uncurry f)
⊢ MeasurableSet {x | Integrable (f x)}

tactic: exact measurableSet_lt (Measurable.lintegral_prod_right hf.ennnorm) measurable_const
state_before: α : Type u_2
α' : Type ?u.1147235
β : Type u_1
β' : Type ?u.1147241
γ : Type ?u.1147244
E : Type u_3
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : MeasureTheory.Measure α
ν ν' : MeasureTheory.Measure β
τ : MeasureTheory.Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SigmaFinite ν
f : α → β → E
hf : StronglyMeasurable (uncurry f)
⊢ MeasurableSet {x | HasFiniteIntegral (f x)}