tasksource/leandojo huggingface dataset:
Theorem: AddLECancellable.lt_tsub_of_add_lt_right
File: Mathlib/Algebra/Order/Sub/Defs.lean

tactic: rintro rfl
state_before: α : Type u_1
β : Type ?u.40621
inst✝³ : PartialOrder α
inst✝² : AddCommSemigroup α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
hc : AddLECancellable c
h : a + c < b
⊢ a ≠ b - c

tactic: exact h.not_le le_tsub_add
state_before: α : Type u_1
β : Type ?u.40621
inst✝³ : PartialOrder α
inst✝² : AddCommSemigroup α
inst✝¹ : Sub α
inst✝ : OrderedSub α
b c d : α
hc : AddLECancellable c
h : b - c + c < b
⊢ False
Theorem: Subsemigroup.bot_prod_bot
File: Mathlib/GroupTheory/Subsemigroup/Operations.lean

tactic: simp [coe_prod, Prod.one_eq_mk]
state_before: M : Type u_1
N : Type u_2
P : Type ?u.52443
σ : Type ?u.52446
inst✝² : Mul M
inst✝¹ : Mul N
inst✝ : Mul P
S : Subsemigroup M
⊢ ↑(prod ⊥ ⊥) = ↑⊥
Theorem: LieModule.coe_lowerCentralSeries_ideal_le
File: Mathlib/Algebra/Lie/Nilpotent.lean

tactic: induction' k with k ih
state_before: R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I : LieIdeal R L
k : ℕ
⊢ ↑(lowerCentralSeries R { x // x ∈ ↑I } { x // x ∈ ↑I } k) ≤ ↑(lowerCentralSeries R L { x // x ∈ ↑I } k)

tactic: simp
state_before: case zero
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I : LieIdeal R L
⊢ ↑(lowerCentralSeries R { x // x ∈ ↑I } { x // x ∈ ↑I } Nat.zero) ≤ ↑(lowerCentralSeries R L { x // x ∈ ↑I } Nat.zero)

tactic: simp only [LieModule.lowerCentralSeries_succ, LieSubmodule.lieIdeal_oper_eq_linear_span]
state_before: case succ
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I : LieIdeal R L
k : ℕ
ih : ↑(lowerCentralSeries R { x // x ∈ ↑I } { x // x ∈ ↑I } k) ≤ ↑(lowerCentralSeries R L { x // x ∈ ↑I } k)
⊢ ↑(lowerCentralSeries R { x // x ∈ ↑I } { x // x ∈ ↑I } (Nat.succ k)) ≤
    ↑(lowerCentralSeries R L { x // x ∈ ↑I } (Nat.succ k))

tactic: apply Submodule.span_mono
state_before: case succ
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I : LieIdeal R L
k : ℕ
ih : ↑(lowerCentralSeries R { x // x ∈ ↑I } { x // x ∈ ↑I } k) ≤ ↑(lowerCentralSeries R L { x // x ∈ ↑I } k)
⊢ Submodule.span R {m | ∃ x n, ⁅↑x, ↑n⁆ = m} ≤ Submodule.span R {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: rintro x ⟨⟨y, -⟩, ⟨z, hz⟩, rfl : ⁅y, z⁆ = x⟩
state_before: case succ.h
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I : LieIdeal R L
k : ℕ
ih : ↑(lowerCentralSeries R { x // x ∈ ↑I } { x // x ∈ ↑I } k) ≤ ↑(lowerCentralSeries R L { x // x ∈ ↑I } k)
⊢ {m | ∃ x n, ⁅↑x, ↑n⁆ = m} ⊆ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: exact ⟨⟨y.val, LieSubmodule.mem_top _⟩, ⟨z, ih hz⟩, rfl⟩
state_before: case succ.h.intro.mk.intro.mk
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I : LieIdeal R L
k : ℕ
ih : ↑(lowerCentralSeries R { x // x ∈ ↑I } { x // x ∈ ↑I } k) ≤ ↑(lowerCentralSeries R L { x // x ∈ ↑I } k)
y z : { x // x ∈ ↑I }
hz : z ∈ lowerCentralSeries R { x // x ∈ ↑I } { x // x ∈ ↑I } k
⊢ ⁅y, z⁆ ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
Theorem: contDiff_iff_continuous_differentiable
File: Mathlib/Analysis/Calculus/ContDiffDef.lean

tactic: simp [contDiffOn_univ.symm, continuous_iff_continuousOn_univ, differentiableOn_univ.symm,
  iteratedFDerivWithin_univ, contDiffOn_iff_continuousOn_differentiableOn uniqueDiffOn_univ]
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
⊢ ContDiff 𝕜 n f ↔
    (∀ (m : ℕ), ↑m ≤ n → Continuous fun x => iteratedFDeriv 𝕜 m f x) ∧
      ∀ (m : ℕ), ↑m < n → Differentiable 𝕜 fun x => iteratedFDeriv 𝕜 m f x
Theorem: MeasureTheory.inter_ae_eq_empty_of_ae_eq_empty_left
File: Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean

tactic: convert ae_eq_set_inter h (ae_eq_refl t)
state_before: α : Type u_1
β : Type ?u.127483
γ : Type ?u.127486
δ : Type ?u.127489
ι : Type ?u.127492
inst✝ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h : s =ᵐ[μ] ∅
⊢ s ∩ t =ᵐ[μ] ∅

tactic: rw [empty_inter]
state_before: case h.e'_5
α : Type u_1
β : Type ?u.127483
γ : Type ?u.127486
δ : Type ?u.127489
ι : Type ?u.127492
inst✝ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h : s =ᵐ[μ] ∅
⊢ ∅ = ∅ ∩ t
Theorem: List.argmax_eq_none
File: Mathlib/Data/List/MinMax.lean

tactic: simp [argmax]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder β
inst✝ : DecidableRel fun x x_1 => x < x_1
f : α → β
l : List α
o : Option α
a m : α
⊢ argmax f l = none ↔ l = []
Theorem: Finset.sym2_eq_empty
File: Mathlib/Data/Finset/Sym.lean

tactic: rw [Finset.sym2, image_eq_empty, product_eq_empty, or_self_iff]
state_before: α : Type u_1
inst✝ : DecidableEq α
s t : Finset α
a b : α
m : Sym2 α
⊢ Finset.sym2 s = ∅ ↔ s = ∅
Theorem: MvPFunctor.const.get_map
File: Mathlib/Data/PFunctor/Multivariate/Basic.lean

tactic: cases x
state_before: n m : ℕ
P : MvPFunctor n
A : Type u
α β : TypeVec n
f : α ⟹ β
x : Obj (const n A) α
⊢ get (f <$$> x) = get x

tactic: rfl
state_before: case mk
n m : ℕ
P : MvPFunctor n
A : Type u
α β : TypeVec n
f : α ⟹ β
fst✝ : (const n A).A
snd✝ : B (const n A) fst✝ ⟹ α
⊢ get (f <$$> { fst := fst✝, snd := snd✝ }) = get { fst := fst✝, snd := snd✝ }
Theorem: eq_sum_orthogonalProjection_self_orthogonalComplement
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: obtain ⟨y, hy, z, hz, hwyz⟩ := K.exists_sum_mem_mem_orthogonal w
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.946458
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace { x // x ∈ K }
w : E
⊢ w = ↑(↑(orthogonalProjection K) w) + ↑(↑(orthogonalProjection Kᗮ) w)

tactic: convert hwyz
state_before: case intro.intro.intro.intro
𝕜 : Type u_2
E : Type u_1
F : Type ?u.946458
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace { x // x ∈ K }
w y : E
hy : y ∈ K
z : E
hz : z ∈ Kᗮ
hwyz : w = y + z
⊢ w = ↑(↑(orthogonalProjection K) w) + ↑(↑(orthogonalProjection Kᗮ) w)

tactic: exact eq_orthogonalProjection_of_mem_orthogonal' hy hz hwyz
state_before: case h.e'_3.h.e'_5
𝕜 : Type u_2
E : Type u_1
F : Type ?u.946458
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace { x // x ∈ K }
w y : E
hy : y ∈ K
z : E
hz : z ∈ Kᗮ
hwyz : w = y + z
⊢ ↑(↑(orthogonalProjection K) w) = y

tactic: rw [add_comm] at hwyz
state_before: case h.e'_3.h.e'_6
𝕜 : Type u_2
E : Type u_1
F : Type ?u.946458
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace { x // x ∈ K }
w y : E
hy : y ∈ K
z : E
hz : z ∈ Kᗮ
hwyz : w = y + z
⊢ ↑(↑(orthogonalProjection Kᗮ) w) = z

tactic: refine' eq_orthogonalProjection_of_mem_orthogonal' hz _ hwyz
state_before: case h.e'_3.h.e'_6
𝕜 : Type u_2
E : Type u_1
F : Type ?u.946458
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace { x // x ∈ K }
w y : E
hy : y ∈ K
z : E
hz : z ∈ Kᗮ
hwyz : w = z + y
⊢ ↑(↑(orthogonalProjection Kᗮ) w) = z

tactic: simp [hy]
state_before: case h.e'_3.h.e'_6
𝕜 : Type u_2
E : Type u_1
F : Type ?u.946458
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace { x // x ∈ K }
w y : E
hy : y ∈ K
z : E
hz : z ∈ Kᗮ
hwyz : w = z + y
⊢ y ∈ Kᗮᗮ
Theorem: Polynomial.isUnitTrinomial_iff'
File: Mathlib/Data/Polynomial/UnitTrinomial.lean

tactic: rw [natDegree_mul_mirror, natTrailingDegree_mul_mirror, ← mul_add,
  Nat.mul_div_right _ zero_lt_two, coeff_mul_mirror]
state_before: p q : ℤ[X]
⊢ IsUnitTrinomial p ↔ coeff (p * mirror p) ((natDegree (p * mirror p) + natTrailingDegree (p * mirror p)) / 2) = 3

tactic: refine' ⟨_, fun hp => _⟩
state_before: p q : ℤ[X]
⊢ IsUnitTrinomial p ↔ (sum p fun n x => x ^ 2) = 3

tactic: rintro ⟨k, m, n, hkm, hmn, u, v, w, rfl⟩
state_before: case refine'_1
p q : ℤ[X]
⊢ IsUnitTrinomial p → (sum p fun n x => x ^ 2) = 3

tactic: rw [sum_def, trinomial_support hkm hmn u.ne_zero v.ne_zero w.ne_zero,
  sum_insert (mt mem_insert.mp (not_or_of_not hkm.ne (mt mem_singleton.mp (hkm.trans hmn).ne))),
  sum_insert (mt mem_singleton.mp hmn.ne), sum_singleton, trinomial_leading_coeff' hkm hmn,
  trinomial_middle_coeff hkm hmn, trinomial_trailing_coeff' hkm hmn]
state_before: case refine'_1.intro.intro.intro.intro.intro.intro.intro.intro
q : ℤ[X]
k m n : ℕ
hkm : k < m
hmn : m < n
u v w : ℤˣ
⊢ (sum (trinomial k m n ↑u ↑v ↑w) fun n x => x ^ 2) = 3

tactic: simp_rw [← Units.val_pow_eq_pow_val, Int.units_sq]
state_before: case refine'_1.intro.intro.intro.intro.intro.intro.intro.intro
q : ℤ[X]
k m n : ℕ
hkm : k < m
hmn : m < n
u v w : ℤˣ
⊢ ↑u ^ 2 + (↑v ^ 2 + ↑w ^ 2) = 3

tactic: have key : ∀ k ∈ p.support, p.coeff k ^ 2 = 1 := fun k hk =>
  Int.sq_eq_one_of_sq_le_three
    ((single_le_sum (fun k _ => sq_nonneg (p.coeff k)) hk).trans hp.le) (mem_support_iff.mp hk)
state_before: case refine'_2
p q : ℤ[X]
hp : (sum p fun n x => x ^ 2) = 3
⊢ IsUnitTrinomial p

tactic: refine' isUnitTrinomial_iff.mpr ⟨_, fun k hk => isUnit_ofPowEqOne (key k hk) two_ne_zero⟩
state_before: case refine'_2
p q : ℤ[X]
hp : (sum p fun n x => x ^ 2) = 3
key : ∀ (k : ℕ), k ∈ support p → coeff p k ^ 2 = 1
⊢ IsUnitTrinomial p

tactic: rw [sum_def, sum_congr rfl key, sum_const, Nat.smul_one_eq_coe] at hp
state_before: case refine'_2
p q : ℤ[X]
hp : (sum p fun n x => x ^ 2) = 3
key : ∀ (k : ℕ), k ∈ support p → coeff p k ^ 2 = 1
⊢ card (support p) = 3

tactic: exact Nat.cast_injective hp
state_before: case refine'_2
p q : ℤ[X]
hp : ↑(card (support p)) = 3
key : ∀ (k : ℕ), k ∈ support p → coeff p k ^ 2 = 1
⊢ card (support p) = 3
Theorem: Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: have hf : ¬Summable f := mt (hes.summable_iff_of_hasSum_iff @h).1 hg
state_before: α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type ?u.332033
inst✝⁴ : AddCommMonoid α
inst✝³ : TopologicalSpace α
inst✝² : T2Space α
f✝ g✝ : β → α
a a₁ a₂ : α
α' : Type u_1
inst✝¹ : AddCommMonoid α'
inst✝ : TopologicalSpace α'
e : α' → α
hes : Surjective e
h0 : e 0 = 0
f : β → α
g : γ → α'
h : ∀ {a : α'}, HasSum f (e a) ↔ HasSum g a
hg : ¬Summable g
⊢ (∑' (b : β), f b) = e (∑' (c : γ), g c)

tactic: simp [tsum_def, hf, hg, h0]
state_before: α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type ?u.332033
inst✝⁴ : AddCommMonoid α
inst✝³ : TopologicalSpace α
inst✝² : T2Space α
f✝ g✝ : β → α
a a₁ a₂ : α
α' : Type u_1
inst✝¹ : AddCommMonoid α'
inst✝ : TopologicalSpace α'
e : α' → α
hes : Surjective e
h0 : e 0 = 0
f : β → α
g : γ → α'
h : ∀ {a : α'}, HasSum f (e a) ↔ HasSum g a
hg : ¬Summable g
hf : ¬Summable f
⊢ (∑' (b : β), f b) = e (∑' (c : γ), g c)
Theorem: ChartedSpace.locallyConnectedSpace
File: Mathlib/Geometry/Manifold/ChartedSpace.lean

tactic: let e : M → LocalHomeomorph M H := chartAt H
state_before: H : Type u
H' : Type ?u.45851
M : Type u_1
M' : Type ?u.45857
M'' : Type ?u.45860
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
⊢ LocallyConnectedSpace M

tactic: refine' locallyConnectedSpace_of_connected_bases (fun x s ↦ (e x).symm '' s)
    (fun x s ↦ (IsOpen s ∧ e x x ∈ s ∧ IsConnected s) ∧ s ⊆ (e x).target) _ _
state_before: H : Type u
H' : Type ?u.45851
M : Type u_1
M' : Type ?u.45857
M'' : Type ?u.45860
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → LocalHomeomorph M H := chartAt H
⊢ LocallyConnectedSpace M

tactic: intro x
state_before: case refine'_1
H : Type u
H' : Type ?u.45851
M : Type u_1
M' : Type ?u.45857
M'' : Type ?u.45860
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → LocalHomeomorph M H := chartAt H
⊢ ∀ (x : M),
    HasBasis (𝓝 x) ((fun x s => (IsOpen s ∧ ↑(e x) x ∈ s ∧ IsConnected s) ∧ s ⊆ (e x).target) x)
      ((fun x s => ↑(LocalHomeomorph.symm (e x)) '' s) x)

tactic: simpa only [LocalHomeomorph.symm_map_nhds_eq, mem_chart_source] using
  ((LocallyConnectedSpace.open_connected_basis (e x x)).restrict_subset
    ((e x).open_target.mem_nhds (mem_chart_target H x))).map (e x).symm
state_before: case refine'_1
H : Type u
H' : Type ?u.45851
M : Type u_1
M' : Type ?u.45857
M'' : Type ?u.45860
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → LocalHomeomorph M H := chartAt H
x : M
⊢ HasBasis (𝓝 x) ((fun x s => (IsOpen s ∧ ↑(e x) x ∈ s ∧ IsConnected s) ∧ s ⊆ (e x).target) x)
    ((fun x s => ↑(LocalHomeomorph.symm (e x)) '' s) x)

tactic: rintro x s ⟨⟨-, -, hsconn⟩, hssubset⟩
state_before: case refine'_2
H : Type u
H' : Type ?u.45851
M : Type u_1
M' : Type ?u.45857
M'' : Type ?u.45860
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → LocalHomeomorph M H := chartAt H
⊢ ∀ (x : M) (i : Set H),
    (fun x s => (IsOpen s ∧ ↑(e x) x ∈ s ∧ IsConnected s) ∧ s ⊆ (e x).target) x i →
      IsPreconnected ((fun x s => ↑(LocalHomeomorph.symm (e x)) '' s) x i)

tactic: exact hsconn.isPreconnected.image _ ((e x).continuousOn_symm.mono hssubset)
state_before: case refine'_2.intro.intro.intro
H : Type u
H' : Type ?u.45851
M : Type u_1
M' : Type ?u.45857
M'' : Type ?u.45860
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → LocalHomeomorph M H := chartAt H
x : M
s : Set H
hssubset : s ⊆ (e x).target
hsconn : IsConnected s
⊢ IsPreconnected ((fun x s => ↑(LocalHomeomorph.symm (e x)) '' s) x s)
Theorem: rank_matrix''
File: Mathlib/LinearAlgebra/FreeModule/Rank.lean

tactic: simp
state_before: R : Type u
M : Type v
N : Type w
inst✝⁹ : Ring R
inst✝⁸ : StrongRankCondition R
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : Module.Free R M
inst✝⁴ : AddCommGroup N
inst✝³ : Module R N
inst✝² : Module.Free R N
m n : Type u
inst✝¹ : Finite m
inst✝ : Finite n
⊢ Module.rank R (Matrix m n R) = (#m) * (#n)
Theorem: Finset.affineCombination_eq_linear_combination
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: simp [s.affineCombination_eq_weightedVSubOfPoint_vadd_of_sum_eq_one w p hw 0]
state_before: k : Type u_2
V : Type u_3
P : Type ?u.291809
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
ι : Type u_1
s✝ : Finset ι
ι₂ : Type ?u.292465
s₂ : Finset ι₂
s : Finset ι
p : ι → V
w : ι → k
hw : ∑ i in s, w i = 1
⊢ ↑(affineCombination k s p) w = ∑ i in s, w i • p i
Theorem: MvPolynomial.degrees_monomial_eq
File: Mathlib/Data/MvPolynomial/Variables.lean

tactic: classical
  refine' le_antisymm (degrees_monomial s a) <| Finset.le_sup <| _
  rw [support_monomial, if_neg ha, Finset.mem_singleton]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.5165
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : σ →₀ ℕ
a : R
ha : a ≠ 0
⊢ degrees (↑(monomial s) a) = ↑toMultiset s

tactic: refine' le_antisymm (degrees_monomial s a) <| Finset.le_sup <| _
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.5165
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : σ →₀ ℕ
a : R
ha : a ≠ 0
⊢ degrees (↑(monomial s) a) = ↑toMultiset s

tactic: rw [support_monomial, if_neg ha, Finset.mem_singleton]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.5165
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : σ →₀ ℕ
a : R
ha : a ≠ 0
⊢ s ∈ support (↑(monomial s) a)
Theorem: Set.Finite.toFinset_range
File: Mathlib/Data/Set/Finite.lean

tactic: ext
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s t : Set α
a : α
hs : Set.Finite s
ht : Set.Finite t
inst✝¹ : DecidableEq α
inst✝ : Fintype β
f : β → α
h : Set.Finite (range f)
⊢ Finite.toFinset h = Finset.image f Finset.univ

tactic: simp
state_before: case a
α : Type u
β : Type v
ι : Sort w
γ : Type x
s t : Set α
a : α
hs : Set.Finite s
ht : Set.Finite t
inst✝¹ : DecidableEq α
inst✝ : Fintype β
f : β → α
h : Set.Finite (range f)
a✝ : α
⊢ a✝ ∈ Finite.toFinset h ↔ a✝ ∈ Finset.image f Finset.univ
Theorem: MeasureTheory.AECover.integrable_of_lintegral_nnnorm_bounded'
File: Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean

tactic: simpa only [ENNReal.ofReal_coe_nnreal] using hbounded
state_before: α : Type u_2
ι : Type u_1
E : Type u_3
inst✝³ : MeasurableSpace α
μ : Measure α
l : Filter ι
inst✝² : NormedAddCommGroup E
inst✝¹ : NeBot l
inst✝ : IsCountablyGenerated l
φ : ι → Set α
hφ : AECover μ l φ
f : α → E
I : ℝ≥0
hfm : AEStronglyMeasurable f μ
hbounded : ∀ᶠ (i : ι) in l, (∫⁻ (x : α) in φ i, ↑‖f x‖₊ ∂μ) ≤ ↑I
⊢ ∀ᶠ (i : ι) in l, (∫⁻ (x : α) in φ i, ↑‖f x‖₊ ∂μ) ≤ ENNReal.ofReal ↑I
Theorem: Equiv.Perm.cycleOf_eq_one_iff
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

tactic: simp_rw [ext_iff, cycleOf_apply, one_apply]
state_before: ι : Type ?u.2371612
α : Type u_1
β : Type ?u.2371618
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g : Perm α
x y : α
f : Perm α
⊢ cycleOf f x = 1 ↔ ↑f x = x

tactic: refine' ⟨fun h => (if_pos (SameCycle.refl f x)).symm.trans (h x), fun h y => _⟩
state_before: ι : Type ?u.2371612
α : Type u_1
β : Type ?u.2371618
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g : Perm α
x y : α
f : Perm α
⊢ (∀ (x_1 : α), (if SameCycle f x x_1 then ↑f x_1 else x_1) = x_1) ↔ ↑f x = x

tactic: by_cases hy : f y = y
state_before: ι : Type ?u.2371612
α : Type u_1
β : Type ?u.2371618
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g : Perm α
x y✝ : α
f : Perm α
h : ↑f x = x
y : α
⊢ (if SameCycle f x y then ↑f y else y) = y

tactic: rw [hy, ite_self]
state_before: case pos
ι : Type ?u.2371612
α : Type u_1
β : Type ?u.2371618
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g : Perm α
x y✝ : α
f : Perm α
h : ↑f x = x
y : α
hy : ↑f y = y
⊢ (if SameCycle f x y then ↑f y else y) = y

tactic: exact if_neg (mt SameCycle.apply_eq_self_iff (by tauto))
state_before: case neg
ι : Type ?u.2371612
α : Type u_1
β : Type ?u.2371618
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g : Perm α
x y✝ : α
f : Perm α
h : ↑f x = x
y : α
hy : ¬↑f y = y
⊢ (if SameCycle f x y then ↑f y else y) = y

tactic: tauto
state_before: ι : Type ?u.2371612
α : Type u_1
β : Type ?u.2371618
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g : Perm α
x y✝ : α
f : Perm α
h : ↑f x = x
y : α
hy : ¬↑f y = y
⊢ ¬(↑f x = x ↔ ↑f y = y)
Theorem: CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_unique
File: Mathlib/CategoryTheory/Sites/CoverLifting.lean

tactic: apply IsSheafFor.isSeparatedFor _ (pulledbackFamily ℱ S x Y)
state_before: C D : Type u
inst✝³ : Category C
inst✝² : Category D
A : Type w
inst✝¹ : Category A
inst✝ : HasLimits A
J : GrothendieckTopology C
K : GrothendieckTopology D
G : C ⥤ D
hu : CoverLifting J K G
ℱ : Sheaf J A
X : A
U : D
S : Sieve U
hS : S ∈ GrothendieckTopology.sieves K U
x : FamilyOfElements ((ran (Functor.op G)).obj ℱ.val ⋙ coyoneda.obj X.op) S.arrows
hx : Compatible x
Y : StructuredArrow U.op (Functor.op G)
y : ((𝟭 (Cᵒᵖ ⥤ A)).obj ℱ.val ⋙ coyoneda.obj X.op).obj Y.right.unop.op
H : IsAmalgamation (pulledbackFamily ℱ S x Y) y
⊢ y = getSection hu ℱ hS hx Y

tactic: exact H
state_before: case a
C D : Type u
inst✝³ : Category C
inst✝² : Category D
A : Type w
inst✝¹ : Category A
inst✝ : HasLimits A
J : GrothendieckTopology C
K : GrothendieckTopology D
G : C ⥤ D
hu : CoverLifting J K G
ℱ : Sheaf J A
X : A
U : D
S : Sieve U
hS : S ∈ GrothendieckTopology.sieves K U
x : FamilyOfElements ((ran (Functor.op G)).obj ℱ.val ⋙ coyoneda.obj X.op) S.arrows
hx : Compatible x
Y : StructuredArrow U.op (Functor.op G)
y : ((𝟭 (Cᵒᵖ ⥤ A)).obj ℱ.val ⋙ coyoneda.obj X.op).obj Y.right.unop.op
H : IsAmalgamation (pulledbackFamily ℱ S x Y) y
⊢ IsAmalgamation (pulledbackFamily ℱ S x Y) y

tactic: apply getSection_isAmalgamation
state_before: case a
C D : Type u
inst✝³ : Category C
inst✝² : Category D
A : Type w
inst✝¹ : Category A
inst✝ : HasLimits A
J : GrothendieckTopology C
K : GrothendieckTopology D
G : C ⥤ D
hu : CoverLifting J K G
ℱ : Sheaf J A
X : A
U : D
S : Sieve U
hS : S ∈ GrothendieckTopology.sieves K U
x : FamilyOfElements ((ran (Functor.op G)).obj ℱ.val ⋙ coyoneda.obj X.op) S.arrows
hx : Compatible x
Y : StructuredArrow U.op (Functor.op G)
y : ((𝟭 (Cᵒᵖ ⥤ A)).obj ℱ.val ⋙ coyoneda.obj X.op).obj Y.right.unop.op
H : IsAmalgamation (pulledbackFamily ℱ S x Y) y
⊢ IsAmalgamation (pulledbackFamily ℱ S x Y) (getSection hu ℱ hS hx Y)

tactic: exact ℱ.2 X _ (hu.cover_lift (K.pullback_stable Y.hom.unop hS))
state_before: C D : Type u
inst✝³ : Category C
inst✝² : Category D
A : Type w
inst✝¹ : Category A
inst✝ : HasLimits A
J : GrothendieckTopology C
K : GrothendieckTopology D
G : C ⥤ D
hu : CoverLifting J K G
ℱ : Sheaf J A
X : A
U : D
S : Sieve U
hS : S ∈ GrothendieckTopology.sieves K U
x : FamilyOfElements ((ran (Functor.op G)).obj ℱ.val ⋙ coyoneda.obj X.op) S.arrows
hx : Compatible x
Y : StructuredArrow U.op (Functor.op G)
y : ((𝟭 (Cᵒᵖ ⥤ A)).obj ℱ.val ⋙ coyoneda.obj X.op).obj Y.right.unop.op
H : IsAmalgamation (pulledbackFamily ℱ S x Y) y
⊢ IsSheafFor ((𝟭 (Cᵒᵖ ⥤ A)).obj ℱ.val ⋙ coyoneda.obj X.op)
    (Presieve.functorPullback G (Sieve.pullback Y.hom.unop S).arrows)
Theorem: card_le_of_surjective'
File: Mathlib/LinearAlgebra/InvariantBasisNumber.lean

tactic: let P := Finsupp.linearEquivFunOnFinite R R β
state_before: R : Type u
inst✝³ : Semiring R
inst✝² : RankCondition R
α : Type u_1
β : Type u_2
inst✝¹ : Fintype α
inst✝ : Fintype β
f : (α →₀ R) →ₗ[R] β →₀ R
i : Surjective ↑f
⊢ Fintype.card β ≤ Fintype.card α

tactic: let Q := (Finsupp.linearEquivFunOnFinite R R α).symm
state_before: R : Type u
inst✝³ : Semiring R
inst✝² : RankCondition R
α : Type u_1
β : Type u_2
inst✝¹ : Fintype α
inst✝ : Fintype β
f : (α →₀ R) →ₗ[R] β →₀ R
i : Surjective ↑f
P : (β →₀ R) ≃ₗ[R] β → R := Finsupp.linearEquivFunOnFinite R R β
⊢ Fintype.card β ≤ Fintype.card α

tactic: exact
  card_le_of_surjective R ((P.toLinearMap.comp f).comp Q.toLinearMap)
    ((P.surjective.comp i).comp Q.surjective)
state_before: R : Type u
inst✝³ : Semiring R
inst✝² : RankCondition R
α : Type u_1
β : Type u_2
inst✝¹ : Fintype α
inst✝ : Fintype β
f : (α →₀ R) →ₗ[R] β →₀ R
i : Surjective ↑f
P : (β →₀ R) ≃ₗ[R] β → R := Finsupp.linearEquivFunOnFinite R R β
Q : (α → R) ≃ₗ[R] α →₀ R := LinearEquiv.symm (Finsupp.linearEquivFunOnFinite R R α)
⊢ Fintype.card β ≤ Fintype.card α