1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: det_rotation
File: Mathlib/Analysis/Complex/Isometry.lean

tactic: rw [← LinearMap.det_toMatrix basisOneI, toMatrix_rotation, Matrix.det_fin_two]
state_before: a : ↥circle
⊢ LinearMap.det ↑(rotation a).toLinearEquiv = 1
state_after: a : ↥circle
⊢ ↑(Matrix.planeConformalMatrix (↑a).re (↑a).im ⋯) 0 0 * ↑(Matrix.planeConformalMatrix (↑a).re (↑a).im ⋯) 1 1 -
      ↑(Matrix.planeConformalMatrix (↑a).re (↑a).im ⋯) 0 1 * ↑(Matrix.planeConformalMatrix (↑a).re (↑a).im ⋯) 1 0 =
    1

tactic: simp [← normSq_apply]
state_before: a : ↥circle
⊢ ↑(Matrix.planeConformalMatrix (↑a).re (↑a).im ⋯) 0 0 * ↑(Matrix.planeConformalMatrix (↑a).re (↑a).im ⋯) 1 1 -
      ↑(Matrix.planeConformalMatrix (↑a).re (↑a).im ⋯) 0 1 * ↑(Matrix.planeConformalMatrix (↑a).re (↑a).im ⋯) 1 0 =
    1
state_after: no goals
Theorem: Finset.prod_sum_elim
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: simp
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g✝ : α → β
inst✝ : CommMonoid β
s : Finset α
t : Finset γ
f : α → β
g : γ → β
⊢ ∏ x ∈ s.disjSum t, Sum.elim f g x = (∏ x ∈ s, f x) * ∏ x ∈ t, g x
state_after: no goals
Theorem: List.reduceOption_map
File: Mathlib/Data/List/ReduceOption.lean

tactic: induction' l with hd tl hl
state_before: α : Type u_1
β : Type u_2
l : List (Option α)
f : α → β
⊢ (map (Option.map f) l).reduceOption = map f l.reduceOption
state_after: case nil
α : Type u_1
β : Type u_2
f : α → β
⊢ (map (Option.map f) []).reduceOption = map f [].reduceOption

case cons
α : Type u_1
β : Type u_2
f : α → β
hd : Option α
tl : List (Option α)
hl : (map (Option.map f) tl).reduceOption = map f tl.reduceOption
⊢ (map (Option.map f) (hd :: tl)).reduceOption = map f (hd :: tl).reduceOption

tactic: simp only [reduceOption_nil, map_nil]
state_before: case nil
α : Type u_1
β : Type u_2
f : α → β
⊢ (map (Option.map f) []).reduceOption = map f [].reduceOption
state_after: no goals

tactic: cases hd <;>
  simpa [true_and_iff, Option.map_some', map, eq_self_iff_true,
    reduceOption_cons_of_some] using hl
state_before: case cons
α : Type u_1
β : Type u_2
f : α → β
hd : Option α
tl : List (Option α)
hl : (map (Option.map f) tl).reduceOption = map f tl.reduceOption
⊢ (map (Option.map f) (hd :: tl)).reduceOption = map f (hd :: tl).reduceOption
state_after: no goals
Theorem: tsum_op
File: Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean

tactic: by_cases h : Summable f
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
f : β → α
a : α
inst✝ : T2Space α
⊢ ∑' (x : β), op (f x) = op (∑' (x : β), f x)
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
f : β → α
a : α
inst✝ : T2Space α
h : Summable f
⊢ ∑' (x : β), op (f x) = op (∑' (x : β), f x)

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
f : β → α
a : α
inst✝ : T2Space α
h : ¬Summable f
⊢ ∑' (x : β), op (f x) = op (∑' (x : β), f x)

tactic: exact h.hasSum.op.tsum_eq
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
f : β → α
a : α
inst✝ : T2Space α
h : Summable f
⊢ ∑' (x : β), op (f x) = op (∑' (x : β), f x)
state_after: no goals

tactic: have ho := summable_op.not.mpr h
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
f : β → α
a : α
inst✝ : T2Space α
h : ¬Summable f
⊢ ∑' (x : β), op (f x) = op (∑' (x : β), f x)
state_after: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
f : β → α
a : α
inst✝ : T2Space α
h : ¬Summable f
ho : ¬Summable fun a => op (f a)
⊢ ∑' (x : β), op (f x) = op (∑' (x : β), f x)

tactic: rw [tsum_eq_zero_of_not_summable h, tsum_eq_zero_of_not_summable ho, op_zero]
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
f : β → α
a : α
inst✝ : T2Space α
h : ¬Summable f
ho : ¬Summable fun a => op (f a)
⊢ ∑' (x : β), op (f x) = op (∑' (x : β), f x)
state_after: no goals
Theorem: AList.insert_insert_of_ne
File: Mathlib/Data/List/AList.lean

tactic: simp only [insert_entries]
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
a a' : α
b : β a
b' : β a'
s : AList β
h : a ≠ a'
⊢ (insert a' b' (insert a b s)).entries ~ (insert a b (insert a' b' s)).entries
state_after: α : Type u
β : α → Type v
inst✝ : DecidableEq α
a a' : α
b : β a
b' : β a'
s : AList β
h : a ≠ a'
⊢ ⟨a', b'⟩ :: kerase a' (⟨a, b⟩ :: kerase a s.entries) ~ ⟨a, b⟩ :: kerase a (⟨a', b'⟩ :: kerase a' s.entries)

tactic: rw [kerase_cons_ne, kerase_cons_ne, kerase_comm] <;>
[apply Perm.swap; exact h; exact h.symm]
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
a a' : α
b : β a
b' : β a'
s : AList β
h : a ≠ a'
⊢ ⟨a', b'⟩ :: kerase a' (⟨a, b⟩ :: kerase a s.entries) ~ ⟨a, b⟩ :: kerase a (⟨a', b'⟩ :: kerase a' s.entries)
state_after: no goals
Theorem: Finset.measurable_range_sup''
File: Mathlib/MeasureTheory/Order/Lattice.lean

tactic: convert Finset.measurable_range_sup' hf using 1
state_before: M : Type u_1
inst✝³ : MeasurableSpace M
α : Type u_2
m : MeasurableSpace α
μ : Measure α
f✝ g : α → M
δ : Type u_3
inst✝² : MeasurableSpace δ
inst✝¹ : SemilatticeSup α
inst✝ : MeasurableSup₂ α
f : ℕ → δ → α
n : ℕ
hf : ∀ k ≤ n, Measurable (f k)
⊢ Measurable fun x => (range (n + 1)).sup' ⋯ fun k => f k x
state_after: case h.e'_5
M : Type u_1
inst✝³ : MeasurableSpace M
α : Type u_2
m : MeasurableSpace α
μ : Measure α
f✝ g : α → M
δ : Type u_3
inst✝² : MeasurableSpace δ
inst✝¹ : SemilatticeSup α
inst✝ : MeasurableSup₂ α
f : ℕ → δ → α
n : ℕ
hf : ∀ k ≤ n, Measurable (f k)
⊢ (fun x => (range (n + 1)).sup' ⋯ fun k => f k x) = (range (n + 1)).sup' ⋯ f

tactic: ext x
state_before: case h.e'_5
M : Type u_1
inst✝³ : MeasurableSpace M
α : Type u_2
m : MeasurableSpace α
μ : Measure α
f✝ g : α → M
δ : Type u_3
inst✝² : MeasurableSpace δ
inst✝¹ : SemilatticeSup α
inst✝ : MeasurableSup₂ α
f : ℕ → δ → α
n : ℕ
hf : ∀ k ≤ n, Measurable (f k)
⊢ (fun x => (range (n + 1)).sup' ⋯ fun k => f k x) = (range (n + 1)).sup' ⋯ f
state_after: case h.e'_5.h
M : Type u_1
inst✝³ : MeasurableSpace M
α : Type u_2
m : MeasurableSpace α
μ : Measure α
f✝ g : α → M
δ : Type u_3
inst✝² : MeasurableSpace δ
inst✝¹ : SemilatticeSup α
inst✝ : MeasurableSup₂ α
f : ℕ → δ → α
n : ℕ
hf : ∀ k ≤ n, Measurable (f k)
x : δ
⊢ ((range (n + 1)).sup' ⋯ fun k => f k x) = (range (n + 1)).sup' ⋯ f x

tactic: simp
state_before: case h.e'_5.h
M : Type u_1
inst✝³ : MeasurableSpace M
α : Type u_2
m : MeasurableSpace α
μ : Measure α
f✝ g : α → M
δ : Type u_3
inst✝² : MeasurableSpace δ
inst✝¹ : SemilatticeSup α
inst✝ : MeasurableSup₂ α
f : ℕ → δ → α
n : ℕ
hf : ∀ k ≤ n, Measurable (f k)
x : δ
⊢ ((range (n + 1)).sup' ⋯ fun k => f k x) = (range (n + 1)).sup' ⋯ f x
state_after: no goals
Theorem: Multiset.rel_map_right
File: Mathlib/Data/Multiset/Basic.lean

tactic: rw [← rel_flip, rel_map_left, ← rel_flip]
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r : α → β → Prop
p : γ → δ → Prop
s : Multiset α
t : Multiset γ
f : γ → β
⊢ Rel r s (map f t) ↔ Rel (fun a b => r a (f b)) s t
state_after: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r : α → β → Prop
p : γ → δ → Prop
s : Multiset α
t : Multiset γ
f : γ → β
⊢ Rel (flip fun a b => flip r (f a) b) s t ↔ Rel (fun a b => r a (f b)) s t

tactic: rfl
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r : α → β → Prop
p : γ → δ → Prop
s : Multiset α
t : Multiset γ
f : γ → β
⊢ Rel (flip fun a b => flip r (f a) b) s t ↔ Rel (fun a b => r a (f b)) s t
state_after: no goals
Theorem: Polynomial.restriction_zero
File: Mathlib/RingTheory/Polynomial/Basic.lean

tactic: simp only [restriction, Finset.sum_empty, support_zero]
state_before: R : Type u
S : Type u_1
inst✝ : Ring R
⊢ restriction 0 = 0
state_after: no goals
Theorem: Matrix.col_cons
File: Mathlib/Data/Matrix/Notation.lean

tactic: ext i j
state_before: α : Type u
o n m : ℕ
m' : Type uₘ
n' : Type uₙ
o' : Type uₒ
a b : ℕ
ι : Type u_1
x : α
u : Fin m → α
⊢ col ι (vecCons x u) = of (vecCons (fun x_1 => x) (col ι u))
state_after: case a
α : Type u
o n m : ℕ
m' : Type uₘ
n' : Type uₙ
o' : Type uₒ
a b : ℕ
ι : Type u_1
x : α
u : Fin m → α
i : Fin m.succ
j : ι
⊢ col ι (vecCons x u) i j = of (vecCons (fun x_1 => x) (col ι u)) i j

tactic: refine Fin.cases ?_ ?_ i <;> simp [vecHead, vecTail]
state_before: case a
α : Type u
o n m : ℕ
m' : Type uₘ
n' : Type uₙ
o' : Type uₒ
a b : ℕ
ι : Type u_1
x : α
u : Fin m → α
i : Fin m.succ
j : ι
⊢ col ι (vecCons x u) i j = of (vecCons (fun x_1 => x) (col ι u)) i j
state_after: no goals
Theorem: EReal.neg_lt_iff_neg_lt
File: Mathlib/Data/Real/EReal.lean

tactic: rw [← neg_lt_neg_iff, neg_neg]
state_before: a b : EReal
⊢ -a < b ↔ -b < a
state_after: no goals
Theorem: Matroid.basis_self_iff_indep
File: Mathlib/Data/Matroid/Basic.lean

tactic: rw [basis_iff', and_iff_right rfl.subset, and_assoc, and_iff_left_iff_imp]
state_before: α : Type u_1
M : Matroid α
I : Set α
⊢ M.Basis I I ↔ M.Indep I
state_after: α : Type u_1
M : Matroid α
I : Set α
⊢ M.Indep I → (∀ (J : Set α), M.Indep J → I ⊆ J → J ⊆ I → I = J) ∧ I ⊆ M.E

tactic: exact fun hi ↦ ⟨fun _ _ ↦ subset_antisymm, hi.subset_ground⟩
state_before: α : Type u_1
M : Matroid α
I : Set α
⊢ M.Indep I → (∀ (J : Set α), M.Indep J → I ⊆ J → J ⊆ I → I = J) ∧ I ⊆ M.E
state_after: no goals
Theorem: gold_mul_goldConj
File: Mathlib/Data/Real/GoldenRatio.lean

tactic: field_simp
state_before: ⊢ φ * ψ = -1
state_after: ⊢ (1 + √5) * (1 - √5) = -(2 * 2)

tactic: rw [← sq_sub_sq]
state_before: ⊢ (1 + √5) * (1 - √5) = -(2 * 2)
state_after: ⊢ 1 ^ 2 - √5 ^ 2 = -(2 * 2)

tactic: norm_num
state_before: ⊢ 1 ^ 2 - √5 ^ 2 = -(2 * 2)
state_after: no goals
Theorem: Real.log_b_ne_zero
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: have b_ne_zero : b ≠ 0 := by linarith
state_before: b x y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
⊢ log b ≠ 0
state_after: b x y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
b_ne_zero : b ≠ 0
⊢ log b ≠ 0

tactic: have b_ne_minus_one : b ≠ -1 := by linarith
state_before: b x y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
b_ne_zero : b ≠ 0
⊢ log b ≠ 0
state_after: b x y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
b_ne_zero : b ≠ 0
b_ne_minus_one : b ≠ -1
⊢ log b ≠ 0

tactic: simp [b_ne_one, b_ne_zero, b_ne_minus_one]
state_before: b x y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
b_ne_zero : b ≠ 0
b_ne_minus_one : b ≠ -1
⊢ log b ≠ 0
state_after: no goals

tactic: linarith
state_before: b x y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
⊢ b ≠ 0
state_after: no goals

tactic: linarith
state_before: b x y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
b_ne_zero : b ≠ 0
⊢ b ≠ -1
state_after: no goals
Theorem: CategoryTheory.Coverage.eq_top_pullback
File: Mathlib/CategoryTheory/Sites/Coverage.lean

tactic: ext Z g
state_before: C : Type u_2
D : Type ?u.34038
inst✝¹ : Category.{u_1, u_2} C
inst✝ : Category.{?u.34046, ?u.34038} D
X Y : C
S T : Sieve X
h : S ≤ T
f : Y ⟶ X
hf : S.arrows f
⊢ Sieve.pullback f T = ⊤
state_after: case h
C : Type u_2
D : Type ?u.34038
inst✝¹ : Category.{u_1, u_2} C
inst✝ : Category.{?u.34046, ?u.34038} D
X Y : C
S T : Sieve X
h : S ≤ T
f : Y ⟶ X
hf : S.arrows f
Z : C
g : Z ⟶ Y
⊢ (Sieve.pullback f T).arrows g ↔ ⊤.arrows g

tactic: simp only [Sieve.pullback_apply, Sieve.top_apply, iff_true]
state_before: case h
C : Type u_2
D : Type ?u.34038
inst✝¹ : Category.{u_1, u_2} C
inst✝ : Category.{?u.34046, ?u.34038} D
X Y : C
S T : Sieve X
h : S ≤ T
f : Y ⟶ X
hf : S.arrows f
Z : C
g : Z ⟶ Y
⊢ (Sieve.pullback f T).arrows g ↔ ⊤.arrows g
state_after: case h
C : Type u_2
D : Type ?u.34038
inst✝¹ : Category.{u_1, u_2} C
inst✝ : Category.{?u.34046, ?u.34038} D
X Y : C
S T : Sieve X
h : S ≤ T
f : Y ⟶ X
hf : S.arrows f
Z : C
g : Z ⟶ Y
⊢ T.arrows (g ≫ f)

tactic: apply h
state_before: case h
C : Type u_2
D : Type ?u.34038
inst✝¹ : Category.{u_1, u_2} C
inst✝ : Category.{?u.34046, ?u.34038} D
X Y : C
S T : Sieve X
h : S ≤ T
f : Y ⟶ X
hf : S.arrows f
Z : C
g : Z ⟶ Y
⊢ T.arrows (g ≫ f)
state_after: case h.a
C : Type u_2
D : Type ?u.34038
inst✝¹ : Category.{u_1, u_2} C
inst✝ : Category.{?u.34046, ?u.34038} D
X Y : C
S T : Sieve X
h : S ≤ T
f : Y ⟶ X
hf : S.arrows f
Z : C
g : Z ⟶ Y
⊢ S.arrows (g ≫ f)

tactic: apply S.downward_closed
state_before: case h.a
C : Type u_2
D : Type ?u.34038
inst✝¹ : Category.{u_1, u_2} C
inst✝ : Category.{?u.34046, ?u.34038} D
X Y : C
S T : Sieve X
h : S ≤ T
f : Y ⟶ X
hf : S.arrows f
Z : C
g : Z ⟶ Y
⊢ S.arrows (g ≫ f)
state_after: case h.a.x
C : Type u_2
D : Type ?u.34038
inst✝¹ : Category.{u_1, u_2} C
inst✝ : Category.{?u.34046, ?u.34038} D
X Y : C
S T : Sieve X
h : S ≤ T
f : Y ⟶ X
hf : S.arrows f
Z : C
g : Z ⟶ Y
⊢ S.arrows f

tactic: exact hf
state_before: case h.a.x
C : Type u_2
D : Type ?u.34038
inst✝¹ : Category.{u_1, u_2} C
inst✝ : Category.{?u.34046, ?u.34038} D
X Y : C
S T : Sieve X
h : S ≤ T
f : Y ⟶ X
hf : S.arrows f
Z : C
g : Z ⟶ Y
⊢ S.arrows f
state_after: no goals
Theorem: KaehlerDifferential.mapBaseChange_tmul
File: Mathlib/RingTheory/Kaehler/Basic.lean

tactic: conv_lhs => rw [← mul_one x, ← smul_eq_mul, ← TensorProduct.smul_tmul', LinearMap.map_smul]
state_before: R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
x : B
y : Ω[A⁄R]
⊢ (mapBaseChange R A B) (x ⊗ₜ[A] y) = x • (map R R A B) y
state_after: R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
x : B
y : Ω[A⁄R]
⊢ x • (mapBaseChange R A B) (1 ⊗ₜ[A] y) = x • (map R R A B) y

tactic: congr 1
state_before: R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
x : B
y : Ω[A⁄R]
⊢ x • (mapBaseChange R A B) (1 ⊗ₜ[A] y) = x • (map R R A B) y
state_after: case e_a
R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
x : B
y : Ω[A⁄R]
⊢ (mapBaseChange R A B) (1 ⊗ₜ[A] y) = (map R R A B) y

tactic: exact IsBaseChange.lift_eq _ _ _
state_before: case e_a
R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
x : B
y : Ω[A⁄R]
⊢ (mapBaseChange R A B) (1 ⊗ₜ[A] y) = (map R R A B) y
state_after: no goals
Theorem: MeasureTheory.integral_map
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: congr 1
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : SMulCommClass ℝ 𝕜 E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
inst✝⁵ : CompleteSpace F
G : Type u_5
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace ℝ G
f✝ g✝ : α → E
m : MeasurableSpace α
μ : Measure α
X : Type u_6
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
ν : Measure α
β : Type u_7
inst✝ : MeasurableSpace β
φ : α → β
hφ : AEMeasurable φ μ
f : β → G
hfm : AEStronglyMeasurable f (Measure.map φ μ)
g : β → G := AEStronglyMeasurable.mk f hfm
⊢ ∫ (y : β), g y ∂Measure.map φ μ = ∫ (y : β), g y ∂Measure.map (AEMeasurable.mk φ hφ) μ
state_after: case e_μ
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : SMulCommClass ℝ 𝕜 E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
inst✝⁵ : CompleteSpace F
G : Type u_5
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace ℝ G
f✝ g✝ : α → E
m : MeasurableSpace α
μ : Measure α
X : Type u_6
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
ν : Measure α
β : Type u_7
inst✝ : MeasurableSpace β
φ : α → β
hφ : AEMeasurable φ μ
f : β → G
hfm : AEStronglyMeasurable f (Measure.map φ μ)
g : β → G := AEStronglyMeasurable.mk f hfm
⊢ Measure.map φ μ = Measure.map (AEMeasurable.mk φ hφ) μ

tactic: exact Measure.map_congr hφ.ae_eq_mk
state_before: case e_μ
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : SMulCommClass ℝ 𝕜 E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
inst✝⁵ : CompleteSpace F
G : Type u_5
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace ℝ G
f✝ g✝ : α → E
m : MeasurableSpace α
μ : Measure α
X : Type u_6
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
ν : Measure α
β : Type u_7
inst✝ : MeasurableSpace β
φ : α → β
hφ : AEMeasurable φ μ
f : β → G
hfm : AEStronglyMeasurable f (Measure.map φ μ)
g : β → G := AEStronglyMeasurable.mk f hfm
⊢ Measure.map φ μ = Measure.map (AEMeasurable.mk φ hφ) μ
state_after: no goals
Theorem: AlgebraicTopology.DoldKan.Γ₀.Obj.map_on_summand'
File: Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean

tactic: apply Obj.map_on_summand
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ✝ Δ'✝ Δ'' : SimplexCategory
inst✝ : HasFiniteCoproducts C
Δ Δ' : SimplexCategoryᵒᵖ
A : Splitting.IndexSet Δ
θ : Δ ⟶ Δ'
⊢ ((splitting K).cofan Δ).inj A ≫ (obj K).map θ =
    Termwise.mapMono K (image.ι (θ.unop ≫ A.e)) ≫ ((splitting K).cofan Δ').inj (A.pull θ)
state_after: case fac
C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ✝ Δ'✝ Δ'' : SimplexCategory
inst✝ : HasFiniteCoproducts C
Δ Δ' : SimplexCategoryᵒᵖ
A : Splitting.IndexSet Δ
θ : Δ ⟶ Δ'
⊢ factorThruImage (θ.unop ≫ A.e) ≫ image.ι (θ.unop ≫ A.e) = θ.unop ≫ A.e

tactic: apply image.fac
state_before: case fac
C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ✝ Δ'✝ Δ'' : SimplexCategory
inst✝ : HasFiniteCoproducts C
Δ Δ' : SimplexCategoryᵒᵖ
A : Splitting.IndexSet Δ
θ : Δ ⟶ Δ'
⊢ factorThruImage (θ.unop ≫ A.e) ≫ image.ι (θ.unop ≫ A.e) = θ.unop ≫ A.e
state_after: no goals
Theorem: Set.BijOn.perm_pow
File: Mathlib/GroupTheory/Perm/Basic.lean

tactic: simp_rw [Equiv.Perm.coe_pow]
state_before: α : Type u_1
f : Perm α
s : Set α
⊢ BijOn (⇑f) s s → ∀ (n : ℕ), BijOn (⇑(f ^ n)) s s
state_after: α : Type u_1
f : Perm α
s : Set α
⊢ BijOn (⇑f) s s → ∀ (n : ℕ), BijOn (⇑f)^[n] s s

tactic: exact BijOn.iterate
state_before: α : Type u_1
f : Perm α
s : Set α
⊢ BijOn (⇑f) s s → ∀ (n : ℕ), BijOn (⇑f)^[n] s s
state_after: no goals
Theorem: mem_nhdsWithin_Iio_iff_exists_Ico_subset
File: Mathlib/Topology/Order/LeftRightNhds.lean

tactic: have : ofDual ⁻¹' s ∈ 𝓝[>] toDual a ↔ _ := mem_nhdsWithin_Ioi_iff_exists_Ioc_subset
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMinOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
⊢ s ∈ 𝓝[<] a ↔ ∃ l ∈ Iio a, Ico l a ⊆ s
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMinOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
this : ⇑ofDual ⁻¹' s ∈ 𝓝[>] toDual a ↔ ∃ u ∈ Ioi (toDual a), Ioc (toDual a) u ⊆ ⇑ofDual ⁻¹' s
⊢ s ∈ 𝓝[<] a ↔ ∃ l ∈ Iio a, Ico l a ⊆ s

tactic: simpa only [OrderDual.exists, exists_prop, dual_Ioc] using this
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMinOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
this : ⇑ofDual ⁻¹' s ∈ 𝓝[>] toDual a ↔ ∃ u ∈ Ioi (toDual a), Ioc (toDual a) u ⊆ ⇑ofDual ⁻¹' s
⊢ s ∈ 𝓝[<] a ↔ ∃ l ∈ Iio a, Ico l a ⊆ s
state_after: no goals
Theorem: CategoryTheory.OverPresheafAux.YonedaCollection.map₁_snd
File: Mathlib/CategoryTheory/Comma/Presheaf.lean

tactic: rw [YonedaCollection.map₁_fst]
state_before: C : Type u
inst✝ : Category.{v, u} C
A : Cᵒᵖ ⥤ Type v
F : (CostructuredArrow yoneda A)ᵒᵖ ⥤ Type v
X : C
G : (CostructuredArrow yoneda A)ᵒᵖ ⥤ Type v
η : F ⟶ G
p : YonedaCollection F X
⊢ { unop := CostructuredArrow.mk p.fst } = { unop := CostructuredArrow.mk (map₁ η p).fst }
state_after: no goals

tactic: simp [map₁]
state_before: C : Type u
inst✝ : Category.{v, u} C
A : Cᵒᵖ ⥤ Type v
F : (CostructuredArrow yoneda A)ᵒᵖ ⥤ Type v
X : C
G : (CostructuredArrow yoneda A)ᵒᵖ ⥤ Type v
η : F ⟶ G
p : YonedaCollection F X
⊢ (map₁ η p).snd = G.map (eqToHom ⋯) (η.app { unop := CostructuredArrow.mk p.fst } p.snd)
state_after: no goals
Theorem: Filter.sInter_mem
File: Mathlib/Order/Filter/Basic.lean

tactic: rw [sInter_eq_biInter, biInter_mem hfin]
state_before: α : Type u
f g : Filter α
s✝ t : Set α
s : Set (Set α)
hfin : s.Finite
⊢ ⋂₀ s ∈ f ↔ ∀ U ∈ s, U ∈ f
state_after: no goals
Theorem: Ideal.map_eq_iff_sup_ker_eq_of_surjective
File: Mathlib/RingTheory/Ideal/Maps.lean

tactic: rw [← (comap_injective_of_surjective f hf).eq_iff, comap_map_of_surjective f hf,
  comap_map_of_surjective f hf, RingHom.ker_eq_comap_bot]
state_before: R : Type u_1
S : Type u_2
F : Type u_3
inst✝¹ : CommRing R
inst✝ : CommRing S
I J : Ideal R
f : R →+* S
hf : Function.Surjective ⇑f
⊢ map f I = map f J ↔ I ⊔ RingHom.ker f = J ⊔ RingHom.ker f
state_after: no goals
Theorem: ENNReal.rpow_natCast_mul
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: rw [rpow_mul, rpow_natCast]
state_before: x : ℝ≥0∞
n : ℕ
z : ℝ
⊢ x ^ (↑n * z) = (x ^ n) ^ z
state_after: no goals