tasksource/leandojo huggingface dataset:
Theorem: homology.condition_ι
File: Mathlib/CategoryTheory/Abelian/Homology.lean

tactic: dsimp [ι]
state_before: A : Type u
inst✝¹ : Category A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
⊢ ι f g w ≫ cokernel.desc f g w = 0

tactic: simp
state_before: A : Type u
inst✝¹ : Category A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
⊢ ((homologyIsoKernelDesc f g w).hom ≫ kernel.ι (cokernel.desc f g w)) ≫ cokernel.desc f g w = 0
Theorem: NormedAddGroupHom.range_comp_incl_top
File: Mathlib/Analysis/Normed/Group/Hom.lean

tactic: simp [comp_range, incl_range, ← AddMonoidHom.range_eq_map]
state_before: V : Type ?u.494024
W : Type ?u.494027
V₁ : Type u_2
V₂ : Type u_1
V₃ : Type ?u.494036
inst✝⁴ : SeminormedAddCommGroup V
inst✝³ : SeminormedAddCommGroup W
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f : NormedAddGroupHom V₁ V₂
g : NormedAddGroupHom V₂ V₃
⊢ range (NormedAddGroupHom.comp f (incl ⊤)) = range f

tactic: rfl
state_before: V : Type ?u.494024
W : Type ?u.494027
V₁ : Type u_2
V₂ : Type u_1
V₃ : Type ?u.494036
inst✝⁴ : SeminormedAddCommGroup V
inst✝³ : SeminormedAddCommGroup W
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f : NormedAddGroupHom V₁ V₂
g : NormedAddGroupHom V₂ V₃
⊢ AddMonoidHom.range (toAddMonoidHom f) = range f
Theorem: AffineSubspace.Parallel.trans
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rcases h₁₂ with ⟨v₁₂, rfl⟩
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s₁ s₂ s₃ : AffineSubspace k P
h₁₂ : s₁ ∥ s₂
h₂₃ : s₂ ∥ s₃
⊢ s₁ ∥ s₃

tactic: rcases h₂₃ with ⟨v₂₃, rfl⟩
state_before: case intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s₁ s₃ : AffineSubspace k P
v₁₂ : V
h₂₃ : map (↑(constVAdd k P v₁₂)) s₁ ∥ s₃
⊢ s₁ ∥ s₃

tactic: refine' ⟨v₂₃ + v₁₂, _⟩
state_before: case intro.intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s₁ : AffineSubspace k P
v₁₂ v₂₃ : V
⊢ s₁ ∥ map (↑(constVAdd k P v₂₃)) (map (↑(constVAdd k P v₁₂)) s₁)

tactic: rw [map_map, ← coe_trans_to_affineMap, ← constVAdd_add]
state_before: case intro.intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s₁ : AffineSubspace k P
v₁₂ v₂₃ : V
⊢ map (↑(constVAdd k P v₂₃)) (map (↑(constVAdd k P v₁₂)) s₁) = map (↑(constVAdd k P (v₂₃ + v₁₂))) s₁
Theorem: finprod_mem_of_eqOn_one
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: rw [← finprod_mem_one s]
state_before: α : Type u_1
β : Type ?u.222676
ι : Type ?u.222679
G : Type ?u.222682
M : Type u_2
N : Type ?u.222688
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g : α → M
a b : α
s t : Set α
hf : EqOn f 1 s
⊢ (∏ᶠ (i : α) (_ : i ∈ s), f i) = 1

tactic: exact finprod_mem_congr rfl hf
state_before: α : Type u_1
β : Type ?u.222676
ι : Type ?u.222679
G : Type ?u.222682
M : Type u_2
N : Type ?u.222688
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g : α → M
a b : α
s t : Set α
hf : EqOn f 1 s
⊢ (∏ᶠ (i : α) (_ : i ∈ s), f i) = ∏ᶠ (i : α) (_ : i ∈ s), 1
Theorem: Nat.add_mod_eq_add_mod_right
File: Mathlib/Data/Nat/Basic.lean

tactic: rw [← mod_add_mod, ← mod_add_mod k, H]
state_before: m✝ n✝ k✝ m n k i : ℕ
H : m % n = k % n
⊢ (m + i) % n = (k + i) % n
Theorem: LinearMap.range_le_bot_iff
File: Mathlib/LinearAlgebra/Basic.lean

tactic: rw [range_le_iff_comap]
state_before: R : Type u_1
R₁ : Type ?u.1255386
R₂ : Type u_2
R₃ : Type ?u.1255392
R₄ : Type ?u.1255395
S : Type ?u.1255398
K : Type ?u.1255401
K₂ : Type ?u.1255404
M : Type u_3
M' : Type ?u.1255410
M₁ : Type ?u.1255413
M₂ : Type u_4
M₃ : Type ?u.1255419
M₄ : Type ?u.1255422
N : Type ?u.1255425
N₂ : Type ?u.1255428
ι : Type ?u.1255431
V : Type ?u.1255434
V₂ : Type ?u.1255437
inst✝¹¹ : Semiring R
inst✝¹⁰ : Semiring R₂
inst✝⁹ : Semiring R₃
inst✝⁸ : AddCommMonoid M
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₂₁ : R₂ →+* R
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type ?u.1255847
sc : SemilinearMapClass F τ₁₂ M M₂
inst✝ : RingHomSurjective τ₁₂
f : M →ₛₗ[τ₁₂] M₂
⊢ range f ≤ ⊥ ↔ f = 0

tactic: exact ker_eq_top
state_before: R : Type u_1
R₁ : Type ?u.1255386
R₂ : Type u_2
R₃ : Type ?u.1255392
R₄ : Type ?u.1255395
S : Type ?u.1255398
K : Type ?u.1255401
K₂ : Type ?u.1255404
M : Type u_3
M' : Type ?u.1255410
M₁ : Type ?u.1255413
M₂ : Type u_4
M₃ : Type ?u.1255419
M₄ : Type ?u.1255422
N : Type ?u.1255425
N₂ : Type ?u.1255428
ι : Type ?u.1255431
V : Type ?u.1255434
V₂ : Type ?u.1255437
inst✝¹¹ : Semiring R
inst✝¹⁰ : Semiring R₂
inst✝⁹ : Semiring R₃
inst✝⁸ : AddCommMonoid M
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₂₁ : R₂ →+* R
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type ?u.1255847
sc : SemilinearMapClass F τ₁₂ M M₂
inst✝ : RingHomSurjective τ₁₂
f : M →ₛₗ[τ₁₂] M₂
⊢ comap f ⊥ = ⊤ ↔ f = 0
Theorem: summable_one_div_pow_of_le
File: Mathlib/Analysis/SpecificLimits/Basic.lean

tactic: refine'
  summable_of_nonneg_of_le (fun a => one_div_nonneg.mpr (pow_nonneg (zero_le_one.trans hm.le) _))
    (fun a => _)
    (summable_geometric_of_lt_1 (one_div_nonneg.mpr (zero_le_one.trans hm.le))
      ((one_div_lt (zero_lt_one.trans hm) zero_lt_one).mpr (one_div_one.le.trans_lt hm)))
state_before: α : Type ?u.462750
β : Type ?u.462753
ι : Type ?u.462756
m : ℝ
f : ℕ → ℕ
hm : 1 < m
fi : ∀ (i : ℕ), i ≤ f i
⊢ Summable fun i => 1 / m ^ f i

tactic: rw [div_pow, one_pow]
state_before: α : Type ?u.462750
β : Type ?u.462753
ι : Type ?u.462756
m : ℝ
f : ℕ → ℕ
hm : 1 < m
fi : ∀ (i : ℕ), i ≤ f i
a : ℕ
⊢ 1 / m ^ f a ≤ (1 / m) ^ a

tactic: refine' (one_div_le_one_div _ _).mpr (pow_le_pow hm.le (fi a)) <;>
  exact pow_pos (zero_lt_one.trans hm) _
state_before: α : Type ?u.462750
β : Type ?u.462753
ι : Type ?u.462756
m : ℝ
f : ℕ → ℕ
hm : 1 < m
fi : ∀ (i : ℕ), i ≤ f i
a : ℕ
⊢ 1 / m ^ f a ≤ 1 / m ^ a
Theorem: Array.size_pop
File: src/lean/Init/Data/Array/Basic.lean

tactic: match a with
| ⟨[]⟩ => rfl
| ⟨a::as⟩ => simp [pop, Nat.succ_sub_succ_eq_sub, size]
state_before: α : Type u_1
a : Array α
⊢ size (pop a) = size a - 1

tactic: rfl
state_before: α : Type u_1
a : Array α
⊢ size (pop { data := List.nil }) = size { data := List.nil } - 1

tactic: simp [pop, Nat.succ_sub_succ_eq_sub, size]
state_before: α : Type u_1
a✝ : Array α
a : α
as : List α
⊢ size (pop { data := a :: as }) = size { data := a :: as } - 1
Theorem: Finset.prod_range_zero
File: Mathlib/Algebra/BigOperators/Basic.lean

tactic: rw [range_zero, prod_empty]
state_before: ι : Type ?u.450036
β : Type u
α : Type v
γ : Type w
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝ : CommMonoid β
f : ℕ → β
⊢ ∏ k in range 0, f k = 1
Theorem: SimpleGraph.sdiff_compl_neighborFinset_inter_eq
File: Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean

tactic: ext
state_before: V : Type u
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n k ℓ μ : ℕ
v w : V
h : Adj G v w
⊢ (neighborFinset G vᶜ ∩ neighborFinset G wᶜ) \ ({w} ∪ {v}) = neighborFinset G vᶜ ∩ neighborFinset G wᶜ

tactic: simp only [and_imp, mem_union, mem_sdiff, mem_compl, and_iff_left_iff_imp, mem_neighborFinset,
  mem_inter, mem_singleton]
state_before: case a
V : Type u
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n k ℓ μ : ℕ
v w : V
h : Adj G v w
a✝ : V
⊢ a✝ ∈ (neighborFinset G vᶜ ∩ neighborFinset G wᶜ) \ ({w} ∪ {v}) ↔ a✝ ∈ neighborFinset G vᶜ ∩ neighborFinset G wᶜ

tactic: rintro hnv hnw (rfl | rfl)
state_before: case a
V : Type u
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n k ℓ μ : ℕ
v w : V
h : Adj G v w
a✝ : V
⊢ ¬Adj G v a✝ → ¬Adj G w a✝ → ¬(a✝ = w ∨ a✝ = v)

tactic: exact hnv h
state_before: case a.inl
V : Type u
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n k ℓ μ : ℕ
v a✝ : V
hnv : ¬Adj G v a✝
h : Adj G v a✝
hnw : ¬Adj G a✝ a✝
⊢ False

tactic: apply hnw
state_before: case a.inr
V : Type u
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n k ℓ μ : ℕ
w a✝ : V
hnw : ¬Adj G w a✝
h : Adj G a✝ w
hnv : ¬Adj G a✝ a✝
⊢ False

tactic: rwa [adj_comm]
state_before: case a.inr
V : Type u
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n k ℓ μ : ℕ
w a✝ : V
hnw : ¬Adj G w a✝
h : Adj G a✝ w
hnv : ¬Adj G a✝ a✝
⊢ Adj G w a✝
Theorem: List.length_le_length_insertNth
File: Mathlib/Data/List/Basic.lean

tactic: cases' le_or_lt n l.length with hn hn
state_before: ι : Type ?u.123956
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
a : α
l : List α
x : α
n : ℕ
⊢ length l ≤ length (insertNth n x l)

tactic: rw [length_insertNth _ _ hn]
state_before: case inl
ι : Type ?u.123956
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
a : α
l : List α
x : α
n : ℕ
hn : n ≤ length l
⊢ length l ≤ length (insertNth n x l)

tactic: exact (Nat.lt_succ_self _).le
state_before: case inl
ι : Type ?u.123956
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
a : α
l : List α
x : α
n : ℕ
hn : n ≤ length l
⊢ length l ≤ length l + 1

tactic: rw [insertNth_of_length_lt _ _ _ hn]
state_before: case inr
ι : Type ?u.123956
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
a : α
l : List α
x : α
n : ℕ
hn : length l < n
⊢ length l ≤ length (insertNth n x l)
Theorem: Trivialization.coordChangeL_apply'
File: Mathlib/Topology/VectorBundle/Basic.lean

tactic: rw [e.coordChangeL_apply e' hb, e.mk_symm hb.1]
state_before: R : Type u_4
B : Type u_1
F : Type u_2
E : B → Type u_3
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace E
b✝ : B
y✝ : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
y : F
⊢ ↑(coordChangeL R e e' b) y = (↑e' (↑(LocalHomeomorph.symm e.toLocalHomeomorph) (b, y))).snd
Theorem: Seminorm.smul_ball_preimage
File: Mathlib/Analysis/Seminorm.lean

tactic: rw [mem_preimage, mem_ball, mem_ball, lt_div_iff (norm_pos_iff.mpr ha), mul_comm, ←
  map_smul_eq_mul p, smul_sub, smul_inv_smul₀ ha]
state_before: R : Type ?u.1269302
R' : Type ?u.1269305
𝕜 : Type u_1
𝕜₂ : Type ?u.1269311
𝕜₃ : Type ?u.1269314
𝕝 : Type ?u.1269317
E : Type u_2
E₂ : Type ?u.1269323
E₃ : Type ?u.1269326
F : Type ?u.1269329
G : Type ?u.1269332
ι : Type ?u.1269335
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a✝ : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
y : E
r : ℝ
a : 𝕜
ha : a ≠ 0
x✝ : E
⊢ x✝ ∈ (fun x x_1 => x • x_1) a ⁻¹' ball p y r ↔ x✝ ∈ ball p (a⁻¹ • y) (r / ‖a‖)
Theorem: MvPolynomial.comap_id
File: Mathlib/Data/MvPolynomial/Comap.lean

tactic: funext x
state_before: σ : Type u_1
τ : Type ?u.60359
υ : Type ?u.60362
R : Type u_2
inst✝ : CommSemiring R
⊢ comap (AlgHom.id R (MvPolynomial σ R)) = id

tactic: exact comap_id_apply x
state_before: case h
σ : Type u_1
τ : Type ?u.60359
υ : Type ?u.60362
R : Type u_2
inst✝ : CommSemiring R
x : σ → R
⊢ comap (AlgHom.id R (MvPolynomial σ R)) x = id x
Theorem: Interval.length_add_le
File: Mathlib/Algebra/Order/Interval.lean

tactic: simp
state_before: ι : Type ?u.386687
α : Type u_1
inst✝ : OrderedAddCommGroup α
s t : Interval α
a : α
x✝ : Interval α
⊢ length (⊥ + x✝) ≤ length ⊥ + length x✝

tactic: simp
state_before: ι : Type ?u.386687
α : Type u_1
inst✝ : OrderedAddCommGroup α
s t : Interval α
a : α
x✝ : Interval α
⊢ length (x✝ + ⊥) ≤ length x✝ + length ⊥
Theorem: Matrix.blockDiagonal'_map
File: Mathlib/Data/Matrix/Block.lean

tactic: ext
state_before: l : Type ?u.197342
m : Type ?u.197345
n : Type ?u.197348
o : Type u_5
p : Type ?u.197354
q : Type ?u.197357
m' : o → Type u_1
n' : o → Type u_2
p' : o → Type ?u.197372
R : Type ?u.197375
S : Type ?u.197378
α : Type u_3
β : Type u_4
inst✝² : DecidableEq o
inst✝¹ : Zero α
inst✝ : Zero β
M : (i : o) → Matrix (m' i) (n' i) α
f : α → β
hf : f 0 = 0
⊢ map (blockDiagonal' M) f = blockDiagonal' fun k => map (M k) f

tactic: simp only [map_apply, blockDiagonal'_apply, eq_comm]
state_before: case a.h
l : Type ?u.197342
m : Type ?u.197345
n : Type ?u.197348
o : Type u_5
p : Type ?u.197354
q : Type ?u.197357
m' : o → Type u_1
n' : o → Type u_2
p' : o → Type ?u.197372
R : Type ?u.197375
S : Type ?u.197378
α : Type u_3
β : Type u_4
inst✝² : DecidableEq o
inst✝¹ : Zero α
inst✝ : Zero β
M : (i : o) → Matrix (m' i) (n' i) α
f : α → β
hf : f 0 = 0
i✝ : (i : o) × m' i
x✝ : (i : o) × n' i
⊢ map (blockDiagonal' M) f i✝ x✝ = blockDiagonal' (fun k => map (M k) f) i✝ x✝

tactic: rw [apply_dite f, hf]
state_before: case a.h
l : Type ?u.197342
m : Type ?u.197345
n : Type ?u.197348
o : Type u_5
p : Type ?u.197354
q : Type ?u.197357
m' : o → Type u_1
n' : o → Type u_2
p' : o → Type ?u.197372
R : Type ?u.197375
S : Type ?u.197378
α : Type u_3
β : Type u_4
inst✝² : DecidableEq o
inst✝¹ : Zero α
inst✝ : Zero β
M : (i : o) → Matrix (m' i) (n' i) α
f : α → β
hf : f 0 = 0
i✝ : (i : o) × m' i
x✝ : (i : o) × n' i
⊢ f (if h : i✝.fst = x✝.fst then M i✝.fst i✝.snd (cast (_ : n' x✝.fst = n' i✝.fst) x✝.snd) else 0) =
    if h : i✝.fst = x✝.fst then f (M i✝.fst i✝.snd (cast (_ : n' x✝.fst = n' i✝.fst) x✝.snd)) else 0
Theorem: Polynomial.Monic.isRegular
File: Mathlib/Data/Polynomial/Monic.lean

tactic: constructor
state_before: R✝ : Type u
S : Type v
a b : R✝
m n : ℕ
ι : Type y
inst✝¹ : Semiring R✝
p✝ : R✝[X]
R : Type u_1
inst✝ : Ring R
p : R[X]
hp : Monic p
⊢ IsRegular p

tactic: intro q r h
state_before: case left
R✝ : Type u
S : Type v
a b : R✝
m n : ℕ
ι : Type y
inst✝¹ : Semiring R✝
p✝ : R✝[X]
R : Type u_1
inst✝ : Ring R
p : R[X]
hp : Monic p
⊢ IsLeftRegular p

tactic: dsimp only at h
state_before: case left
R✝ : Type u
S : Type v
a b : R✝
m n : ℕ
ι : Type y
inst✝¹ : Semiring R✝
p✝ : R✝[X]
R : Type u_1
inst✝ : Ring R
p : R[X]
hp : Monic p
q r : R[X]
h : (fun x => p * x) q = (fun x => p * x) r
⊢ q = r

tactic: rw [← sub_eq_zero, ← hp.mul_right_eq_zero_iff, mul_sub, h, sub_self]
state_before: case left
R✝ : Type u
S : Type v
a b : R✝
m n : ℕ
ι : Type y
inst✝¹ : Semiring R✝
p✝ : R✝[X]
R : Type u_1
inst✝ : Ring R
p : R[X]
hp : Monic p
q r : R[X]
h : p * q = p * r
⊢ q = r

tactic: intro q r h
state_before: case right
R✝ : Type u
S : Type v
a b : R✝
m n : ℕ
ι : Type y
inst✝¹ : Semiring R✝
p✝ : R✝[X]
R : Type u_1
inst✝ : Ring R
p : R[X]
hp : Monic p
⊢ IsRightRegular p

tactic: simp only at h
state_before: case right
R✝ : Type u
S : Type v
a b : R✝
m n : ℕ
ι : Type y
inst✝¹ : Semiring R✝
p✝ : R✝[X]
R : Type u_1
inst✝ : Ring R
p : R[X]
hp : Monic p
q r : R[X]
h : (fun x => x * p) q = (fun x => x * p) r
⊢ q = r

tactic: rw [← sub_eq_zero, ← hp.mul_left_eq_zero_iff, sub_mul, h, sub_self]
state_before: case right
R✝ : Type u
S : Type v
a b : R✝
m n : ℕ
ι : Type y
inst✝¹ : Semiring R✝
p✝ : R✝[X]
R : Type u_1
inst✝ : Ring R
p : R[X]
hp : Monic p
q r : R[X]
h : q * p = r * p
⊢ q = r
Theorem: geom_le
File: Mathlib/Analysis/SpecificLimits/Basic.lean

tactic: apply (monotone_mul_left_of_nonneg hc).seq_le_seq n _ _ h <;>
  simp [_root_.pow_succ, mul_assoc, le_refl]
state_before: α : Type ?u.35577
β : Type ?u.35580
ι : Type ?u.35583
u : ℕ → ℝ
c : ℝ
hc : 0 ≤ c
n : ℕ
h : ∀ (k : ℕ), k < n → c * u k ≤ u (k + 1)
⊢ c ^ n * u 0 ≤ u n
Theorem: Orthonormal.orthogonalFamily
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: simp [inner_smul_left, inner_smul_right, hv.2 hij]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.3602007
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
dec_E : DecidableEq E
ι : Type u_3
dec_ι : DecidableEq ι
G : ι → Type ?u.3602070
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
V : (i : ι) → G i →ₗᵢ[𝕜] E
hV : OrthogonalFamily 𝕜 G V
dec_V : (i : ι) → (x : G i) → Decidable (x ≠ 0)
v : ι → E
hv : Orthonormal 𝕜 v
i j : ι
hij : i ≠ j
a : (fun _i => 𝕜) i
b : (fun _i => 𝕜) j
⊢ inner (↑((fun i => LinearIsometry.toSpanSingleton 𝕜 E (_ : ‖v i‖ = 1)) i) a)
      (↑((fun i => LinearIsometry.toSpanSingleton 𝕜 E (_ : ‖v i‖ = 1)) j) b) =
    0
Theorem: MeasureTheory.IntegrableAtFilter.inf_ae_iff
File: Mathlib/MeasureTheory/Integral/IntegrableOn.lean

tactic: refine' ⟨_, fun h => h.filter_mono inf_le_left⟩
state_before: α : Type u_1
β : Type ?u.1660656
E : Type u_2
F : Type ?u.1660662
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
l✝ l' l : Filter α
⊢ IntegrableAtFilter f (l ⊓ Measure.ae μ) ↔ IntegrableAtFilter f l

tactic: rintro ⟨s, ⟨t, ht, u, hu, rfl⟩, hf⟩
state_before: α : Type u_1
β : Type ?u.1660656
E : Type u_2
F : Type ?u.1660662
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
l✝ l' l : Filter α
⊢ IntegrableAtFilter f (l ⊓ Measure.ae μ) → IntegrableAtFilter f l

tactic: refine' ⟨t, ht, _⟩
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type ?u.1660656
E : Type u_2
F : Type ?u.1660662
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t✝ : Set α
μ ν : Measure α
l✝ l' l : Filter α
t : Set α
ht : t ∈ l
u : Set α
hu : u ∈ Measure.ae μ
hf : IntegrableOn f (t ∩ u)
⊢ IntegrableAtFilter f l

tactic: refine' hf.integrable.mono_measure fun v hv => _
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type ?u.1660656
E : Type u_2
F : Type ?u.1660662
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t✝ : Set α
μ ν : Measure α
l✝ l' l : Filter α
t : Set α
ht : t ∈ l
u : Set α
hu : u ∈ Measure.ae μ
hf : IntegrableOn f (t ∩ u)
⊢ IntegrableOn f t

tactic: simp only [Measure.restrict_apply hv]
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type ?u.1660656
E : Type u_2
F : Type ?u.1660662
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t✝ : Set α
μ ν : Measure α
l✝ l' l : Filter α
t : Set α
ht : t ∈ l
u : Set α
hu : u ∈ Measure.ae μ
hf : IntegrableOn f (t ∩ u)
v : Set α
hv : MeasurableSet v
⊢ ↑↑(Measure.restrict μ t) v ≤ ↑↑(Measure.restrict μ (t ∩ u)) v

tactic: refine' measure_mono_ae (mem_of_superset hu fun x hx => _)
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type ?u.1660656
E : Type u_2
F : Type ?u.1660662
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t✝ : Set α
μ ν : Measure α
l✝ l' l : Filter α
t : Set α
ht : t ∈ l
u : Set α
hu : u ∈ Measure.ae μ
hf : IntegrableOn f (t ∩ u)
v : Set α
hv : MeasurableSet v
⊢ ↑↑μ (v ∩ t) ≤ ↑↑μ (v ∩ (t ∩ u))

tactic: exact fun ⟨hv, ht⟩ => ⟨hv, ⟨ht, hx⟩⟩
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type ?u.1660656
E : Type u_2
F : Type ?u.1660662
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t✝ : Set α
μ ν : Measure α
l✝ l' l : Filter α
t : Set α
ht : t ∈ l
u : Set α
hu : u ∈ Measure.ae μ
hf : IntegrableOn f (t ∩ u)
v : Set α
hv : MeasurableSet v
x : α
hx : x ∈ u
⊢ x ∈ {x | (fun x => (v ∩ t) x ≤ (v ∩ (t ∩ u)) x) x}
Theorem: Set.sInter_eq_compl_sUnion_compl
File: Mathlib/Data/Set/Lattice.lean

tactic: rw [← compl_compl (⋂₀ S), compl_sInter]
state_before: α : Type u_1
β : Type ?u.147900
γ : Type ?u.147903
ι : Sort ?u.147906
ι' : Sort ?u.147909
ι₂ : Sort ?u.147912
κ : ι → Sort ?u.147917
κ₁ : ι → Sort ?u.147922
κ₂ : ι → Sort ?u.147927
κ' : ι' → Sort ?u.147932
S : Set (Set α)
⊢ ⋂₀ S = (⋃₀ (compl '' S))ᶜ
Theorem: ValuationRing.iff_dvd_total
File: Mathlib/RingTheory/Valuation/ValuationRing.lean

tactic: refine ⟨fun H => ⟨fun a b => ?_⟩, fun H => ⟨fun a b => ?_⟩⟩
state_before: R : Type u_1
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
K : Type ?u.522037
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
⊢ ValuationRing R ↔ IsTotal R fun x x_1 => x ∣ x_1

tactic: obtain ⟨c, rfl | rfl⟩ := ValuationRing.cond a b <;> simp
state_before: case refine_1
R : Type u_1
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
K : Type ?u.522037
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
H : ValuationRing R
a b : R
⊢ a ∣ b ∨ b ∣ a

tactic: obtain ⟨c, rfl⟩ | ⟨c, rfl⟩ := @IsTotal.total _ _ H a b <;> use c <;> simp
state_before: case refine_2
R : Type u_1
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
K : Type ?u.522037
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
H : IsTotal R fun x x_1 => x ∣ x_1
a b : R
⊢ ∃ c, a * c = b ∨ b * c = a
Theorem: LinearOrderedField.inducedMap_inducedMap
File: Mathlib/Algebra/Order/CompleteField.lean

tactic: rw [coe_lt_inducedMap_iff, coe_lt_inducedMap_iff, Iff.comm, coe_lt_inducedMap_iff]
state_before: F : Type ?u.23494
α : Type u_3
β : Type u_2
γ : Type u_1
inst✝³ : LinearOrderedField α
inst✝² : ConditionallyCompleteLinearOrderedField β
inst✝¹ : ConditionallyCompleteLinearOrderedField γ
inst✝ : Archimedean α
a✝ : α
b : β
q✝ : ℚ
a : α
q : ℚ
⊢ ↑q < inducedMap β γ (inducedMap α β a) ↔ ↑q < inducedMap α γ a
Theorem: FirstOrder.Language.BoundedFormula.mapTermRel_id_id_id
File: Mathlib/ModelTheory/Syntax.lean

tactic: induction' φ with _ _ _ _ _ _ _ _ _ _ _ ih1 ih2 _ _ ih3
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.67505
P : Type ?u.67508
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.67536
n✝ n : ℕ
φ : BoundedFormula L α n
⊢ mapTermRel (fun x => id) (fun x => id) (fun x => id) φ = φ

tactic: rfl
state_before: case falsum
L : Language
L' : Language
M : Type w
N : Type ?u.67505
P : Type ?u.67508
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.67536
n✝¹ n n✝ : ℕ
⊢ mapTermRel (fun x => id) (fun x => id) (fun x => id) falsum = falsum

tactic: simp [mapTermRel]
state_before: case equal
L : Language
L' : Language
M : Type w
N : Type ?u.67505
P : Type ?u.67508
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.67536
n✝¹ n n✝ : ℕ
t₁✝ t₂✝ : Term L (α ⊕ Fin n✝)
⊢ mapTermRel (fun x => id) (fun x => id) (fun x => id) (equal t₁✝ t₂✝) = equal t₁✝ t₂✝

tactic: simp [mapTermRel]
state_before: case rel
L : Language
L' : Language
M : Type w
N : Type ?u.67505
P : Type ?u.67508
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.67536
n✝¹ n n✝ l✝ : ℕ
R✝ : Relations L l✝
ts✝ : Fin l✝ → Term L (α ⊕ Fin n✝)
⊢ mapTermRel (fun x => id) (fun x => id) (fun x => id) (rel R✝ ts✝) = rel R✝ ts✝

tactic: simp [mapTermRel, ih1, ih2]
state_before: case imp
L : Language
L' : Language
M : Type w
N : Type ?u.67505
P : Type ?u.67508
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.67536
n✝¹ n n✝ : ℕ
f₁✝ f₂✝ : BoundedFormula L α n✝
ih1 : mapTermRel (fun x => id) (fun x => id) (fun x => id) f₁✝ = f₁✝
ih2 : mapTermRel (fun x => id) (fun x => id) (fun x => id) f₂✝ = f₂✝
⊢ mapTermRel (fun x => id) (fun x => id) (fun x => id) (imp f₁✝ f₂✝) = imp f₁✝ f₂✝

tactic: simp [mapTermRel, ih3]
state_before: case all
L : Language
L' : Language
M : Type w
N : Type ?u.67505
P : Type ?u.67508
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.67536
n✝¹ n n✝ : ℕ
f✝ : BoundedFormula L α (n✝ + 1)
ih3 : mapTermRel (fun x => id) (fun x => id) (fun x => id) f✝ = f✝
⊢ mapTermRel (fun x => id) (fun x => id) (fun x => id) (all f✝) = all f✝
Theorem: Language.one_add_kstar_mul_self_eq_kstar
File: Mathlib/Computability/Language.lean

tactic: rw [mul_self_kstar_comm, one_add_self_mul_kstar_eq_kstar]
state_before: α : Type u_1
β : Type ?u.123028
γ : Type ?u.123031
l✝ m : Language α
a b x : List α
l : Language α
⊢ 1 + l∗ * l = l∗