1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Finset.stronglyMeasurable_prod
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: simpa only [← Finset.prod_apply] using s.stronglyMeasurable_prod' hf
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι✝ : Type u_4
inst✝³ : Countable ι✝
f✝ g : α → β
M : Type u_5
inst✝² : CommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : ContinuousMul M
m : MeasurableSpace α
ι : Type u_6
f : ι → α → M
s : Finset ι
hf : ∀ i ∈ s, StronglyMeasurable (f i)
⊢ StronglyMeasurable fun a => ∏ i ∈ s, f i a
state_after: no goals
Theorem: Polynomial.eval₂_comp
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: rw [comp, p.as_sum_range]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q : R[X]
x✝ : R
inst✝ : CommSemiring S
f : R →+* S
x : S
⊢ eval₂ f x (p.comp q) = eval₂ f (eval₂ f x q) p
state_after: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q : R[X]
x✝ : R
inst✝ : CommSemiring S
f : R →+* S
x : S
⊢ eval₂ f x (eval₂ C q (∑ i ∈ range (p.natDegree + 1), (monomial i) (p.coeff i))) =
    eval₂ f (eval₂ f x q) (∑ i ∈ range (p.natDegree + 1), (monomial i) (p.coeff i))

tactic: simp [eval₂_finset_sum, eval₂_pow]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q : R[X]
x✝ : R
inst✝ : CommSemiring S
f : R →+* S
x : S
⊢ eval₂ f x (eval₂ C q (∑ i ∈ range (p.natDegree + 1), (monomial i) (p.coeff i))) =
    eval₂ f (eval₂ f x q) (∑ i ∈ range (p.natDegree + 1), (monomial i) (p.coeff i))
state_after: no goals
Theorem: contDiffAt_top
File: Mathlib/Analysis/Calculus/ContDiff/Defs.lean

tactic: simp [← contDiffWithinAt_univ, contDiffWithinAt_top]
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
⊢ ContDiffAt 𝕜 ⊤ f x ↔ ∀ (n : ℕ), ContDiffAt 𝕜 (↑n) f x
state_after: no goals
Theorem: CategoryTheory.Subobject.factorThru_right
File: Mathlib/CategoryTheory/Subobject/FactorThru.lean

tactic: apply (cancel_mono P.arrow).mp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y✝ Z✝ : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X Y Z : C
P : Subobject Z
f : X ⟶ Y
g : Y ⟶ Z
h : P.Factors g
⊢ f ≫ P.factorThru g h = P.factorThru (f ≫ g) ⋯
state_after: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y✝ Z✝ : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X Y Z : C
P : Subobject Z
f : X ⟶ Y
g : Y ⟶ Z
h : P.Factors g
⊢ (f ≫ P.factorThru g h) ≫ P.arrow = P.factorThru (f ≫ g) ⋯ ≫ P.arrow

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y✝ Z✝ : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X Y Z : C
P : Subobject Z
f : X ⟶ Y
g : Y ⟶ Z
h : P.Factors g
⊢ (f ≫ P.factorThru g h) ≫ P.arrow = P.factorThru (f ≫ g) ⋯ ≫ P.arrow
state_after: no goals
Theorem: Sbtw.oangle_eq_left_right
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean

tactic: rw [h₁.oangle_eq_add_pi_left h₃.left_ne, h₃.oangle_eq_add_pi_right h₁.right_ne, add_assoc,
  Real.Angle.coe_pi_add_coe_pi, add_zero]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₁' p₂ p₃ p₃' : P
h₁ : Sbtw ℝ p₁ p₂ p₁'
h₃ : Sbtw ℝ p₃ p₂ p₃'
⊢ ∡ p₁ p₂ p₃ = ∡ p₁' p₂ p₃'
state_after: no goals
Theorem: Finsupp.prod_finset_sum_index
File: Mathlib/Algebra/BigOperators/Finsupp.lean

tactic: rw [prod_cons, ih, sum_cons, prod_add_index' h_zero h_add]
state_before: α : Type u_1
ι : Type u_2
γ : Type u_3
A : Type u_4
B : Type u_5
C : Type u_6
inst✝⁴ : AddCommMonoid A
inst✝³ : AddCommMonoid B
inst✝² : AddCommMonoid C
t : ι → A → C
h0 : ∀ (i : ι), t i 0 = 0
h1 : ∀ (i : ι) (x y : A), t i (x + y) = t i x + t i y
s✝¹ : Finset α
f : α → ι →₀ A
i : ι
g✝ : ι →₀ A
k : ι → A → γ → B
x : γ
β : Type u_7
M : Type u_8
M' : Type u_9
N : Type u_10
P : Type u_11
G : Type u_12
H : Type u_13
R : Type u_14
S : Type u_15
inst✝¹ : AddCommMonoid M
inst✝ : CommMonoid N
s✝ : Finset ι
g : ι → α →₀ M
h : α → M → N
h_zero : ∀ (a : α), h a 0 = 1
h_add : ∀ (a : α) (b₁ b₂ : M), h a (b₁ + b₂) = h a b₁ * h a b₂
a : ι
s : Finset ι
has : a ∉ s
ih : ∏ i ∈ s, (g i).prod h = (∑ i ∈ s, g i).prod h
⊢ ∏ i ∈ Finset.cons a s has, (g i).prod h = (∑ i ∈ Finset.cons a s has, g i).prod h
state_after: no goals
Theorem: Multiset.prod_dvd_prod_of_le
File: Mathlib/Algebra/BigOperators/Group/Multiset.lean

tactic: obtain ⟨z, rfl⟩ := exists_add_of_le h
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝¹ : CommMonoid α
inst✝ : CommMonoid β
s t : Multiset α
a : α
m : Multiset ι
f g : ι → α
h : s ≤ t
⊢ s.prod ∣ t.prod
state_after: case intro
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝¹ : CommMonoid α
inst✝ : CommMonoid β
s : Multiset α
a : α
m : Multiset ι
f g : ι → α
z : Multiset α
h : s ≤ s + z
⊢ s.prod ∣ (s + z).prod

tactic: simp only [prod_add, dvd_mul_right]
state_before: case intro
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝¹ : CommMonoid α
inst✝ : CommMonoid β
s : Multiset α
a : α
m : Multiset ι
f g : ι → α
z : Multiset α
h : s ≤ s + z
⊢ s.prod ∣ (s + z).prod
state_after: no goals
Theorem: Commensurable.refl
File: Mathlib/GroupTheory/Commensurable.lean

tactic: simp [Commensurable]
state_before: G : Type u_1
inst✝ : Group G
H : Subgroup G
⊢ Commensurable H H
state_after: no goals
Theorem: Units.mul_right_dvd
File: Mathlib/Algebra/Divisibility/Units.lean

tactic: rw [mul_assoc, u.mul_inv, mul_one]
state_before: α : Type u_1
inst✝ : Monoid α
a b : α
u : αˣ
h : a ∣ b
⊢ a * ↑u * ↑u⁻¹ = a
state_after: no goals
Theorem: Units.mul_inv_cancel_left
File: Mathlib/Algebra/Group/Units.lean

tactic: rw [← mul_assoc, mul_inv, one_mul]
state_before: α : Type u
inst✝ : Monoid α
a✝ b✝ c u a : αˣ
b : α
⊢ ↑a * (↑a⁻¹ * b) = b
state_after: no goals
Theorem: Polynomial.natDegree_eq_zero_of_isUnit
File: Mathlib/Algebra/Polynomial/RingDivision.lean

tactic: nontriviality R
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q : R[X]
h : IsUnit p
⊢ p.natDegree = 0
state_after: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q : R[X]
h : IsUnit p
a✝ : Nontrivial R
⊢ p.natDegree = 0

tactic: obtain ⟨q, hq⟩ := h.exists_right_inv
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q : R[X]
h : IsUnit p
a✝ : Nontrivial R
⊢ p.natDegree = 0
state_after: case intro
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q✝ : R[X]
h : IsUnit p
a✝ : Nontrivial R
q : R[X]
hq : p * q = 1
⊢ p.natDegree = 0

tactic: have := natDegree_mul (left_ne_zero_of_mul_eq_one hq) (right_ne_zero_of_mul_eq_one hq)
state_before: case intro
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q✝ : R[X]
h : IsUnit p
a✝ : Nontrivial R
q : R[X]
hq : p * q = 1
⊢ p.natDegree = 0
state_after: case intro
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q✝ : R[X]
h : IsUnit p
a✝ : Nontrivial R
q : R[X]
hq : p * q = 1
this : (p * q).natDegree = p.natDegree + q.natDegree
⊢ p.natDegree = 0

tactic: rw [hq, natDegree_one, eq_comm, add_eq_zero_iff] at this
state_before: case intro
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q✝ : R[X]
h : IsUnit p
a✝ : Nontrivial R
q : R[X]
hq : p * q = 1
this : (p * q).natDegree = p.natDegree + q.natDegree
⊢ p.natDegree = 0
state_after: case intro
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q✝ : R[X]
h : IsUnit p
a✝ : Nontrivial R
q : R[X]
hq : p * q = 1
this : p.natDegree = 0 ∧ q.natDegree = 0
⊢ p.natDegree = 0

tactic: exact this.1
state_before: case intro
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q✝ : R[X]
h : IsUnit p
a✝ : Nontrivial R
q : R[X]
hq : p * q = 1
this : p.natDegree = 0 ∧ q.natDegree = 0
⊢ p.natDegree = 0
state_after: no goals
Theorem: Finset.fold_map
File: Mathlib/Data/Finset/Fold.lean

tactic: simp only [fold, map, Multiset.map_map]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s✝ : Finset α
a : α
g : γ ↪ α
s : Finset γ
⊢ fold op b f (map g s) = fold op b (f ∘ ⇑g) s
state_after: no goals
Theorem: TopCat.openEmbedding_iff_isIso_comp
File: Mathlib/Topology/Category/TopCat/Basic.lean

tactic: constructor
state_before: X Y Z : TopCat
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : IsIso f
⊢ OpenEmbedding ⇑(f ≫ g) ↔ OpenEmbedding ⇑g
state_after: case mp
X Y Z : TopCat
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : IsIso f
⊢ OpenEmbedding ⇑(f ≫ g) → OpenEmbedding ⇑g

case mpr
X Y Z : TopCat
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : IsIso f
⊢ OpenEmbedding ⇑g → OpenEmbedding ⇑(f ≫ g)

tactic: intro h
state_before: case mp
X Y Z : TopCat
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : IsIso f
⊢ OpenEmbedding ⇑(f ≫ g) → OpenEmbedding ⇑g
state_after: case mp
X Y Z : TopCat
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : IsIso f
h : OpenEmbedding ⇑(f ≫ g)
⊢ OpenEmbedding ⇑g

tactic: convert h.comp (TopCat.homeoOfIso (asIso f).symm).openEmbedding
state_before: case mp
X Y Z : TopCat
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : IsIso f
h : OpenEmbedding ⇑(f ≫ g)
⊢ OpenEmbedding ⇑g
state_after: case h.e'_5
X Y Z : TopCat
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : IsIso f
h : OpenEmbedding ⇑(f ≫ g)
⊢ ⇑g = ⇑(f ≫ g) ∘ ⇑(homeoOfIso (asIso f).symm)

tactic: exact congrArg _ (IsIso.inv_hom_id_assoc f g).symm
state_before: case h.e'_5
X Y Z : TopCat
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : IsIso f
h : OpenEmbedding ⇑(f ≫ g)
⊢ ⇑g = ⇑(f ≫ g) ∘ ⇑(homeoOfIso (asIso f).symm)
state_after: no goals

tactic: exact fun h => h.comp (TopCat.homeoOfIso (asIso f)).openEmbedding
state_before: case mpr
X Y Z : TopCat
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : IsIso f
⊢ OpenEmbedding ⇑g → OpenEmbedding ⇑(f ≫ g)
state_after: no goals
Theorem: EuclideanDomain.mul_div_mul_comm_of_dvd_dvd
File: Mathlib/Algebra/EuclideanDomain/Basic.lean

tactic: rcases eq_or_ne c 0 with (rfl | hc0)
state_before: R : Type u
inst✝ : EuclideanDomain R
a b c d : R
hac : c ∣ a
hbd : d ∣ b
⊢ a * b / (c * d) = a / c * (b / d)
state_after: case inl
R : Type u
inst✝ : EuclideanDomain R
a b d : R
hbd : d ∣ b
hac : 0 ∣ a
⊢ a * b / (0 * d) = a / 0 * (b / d)

case inr
R : Type u
inst✝ : EuclideanDomain R
a b c d : R
hac : c ∣ a
hbd : d ∣ b
hc0 : c ≠ 0
⊢ a * b / (c * d) = a / c * (b / d)

tactic: rcases eq_or_ne d 0 with (rfl | hd0)
state_before: case inr
R : Type u
inst✝ : EuclideanDomain R
a b c d : R
hac : c ∣ a
hbd : d ∣ b
hc0 : c ≠ 0
⊢ a * b / (c * d) = a / c * (b / d)
state_after: case inr.inl
R : Type u
inst✝ : EuclideanDomain R
a b c : R
hac : c ∣ a
hc0 : c ≠ 0
hbd : 0 ∣ b
⊢ a * b / (c * 0) = a / c * (b / 0)

case inr.inr
R : Type u
inst✝ : EuclideanDomain R
a b c d : R
hac : c ∣ a
hbd : d ∣ b
hc0 : c ≠ 0
hd0 : d ≠ 0
⊢ a * b / (c * d) = a / c * (b / d)

tactic: obtain ⟨k1, rfl⟩ := hac
state_before: case inr.inr
R : Type u
inst✝ : EuclideanDomain R
a b c d : R
hac : c ∣ a
hbd : d ∣ b
hc0 : c ≠ 0
hd0 : d ≠ 0
⊢ a * b / (c * d) = a / c * (b / d)
state_after: case inr.inr.intro
R : Type u
inst✝ : EuclideanDomain R
b c d : R
hbd : d ∣ b
hc0 : c ≠ 0
hd0 : d ≠ 0
k1 : R
⊢ c * k1 * b / (c * d) = c * k1 / c * (b / d)

tactic: obtain ⟨k2, rfl⟩ := hbd
state_before: case inr.inr.intro
R : Type u
inst✝ : EuclideanDomain R
b c d : R
hbd : d ∣ b
hc0 : c ≠ 0
hd0 : d ≠ 0
k1 : R
⊢ c * k1 * b / (c * d) = c * k1 / c * (b / d)
state_after: case inr.inr.intro.intro
R : Type u
inst✝ : EuclideanDomain R
c d : R
hc0 : c ≠ 0
hd0 : d ≠ 0
k1 k2 : R
⊢ c * k1 * (d * k2) / (c * d) = c * k1 / c * (d * k2 / d)

tactic: rw [mul_div_cancel_left₀ _ hc0, mul_div_cancel_left₀ _ hd0, mul_mul_mul_comm,
  mul_div_cancel_left₀ _ (mul_ne_zero hc0 hd0)]
state_before: case inr.inr.intro.intro
R : Type u
inst✝ : EuclideanDomain R
c d : R
hc0 : c ≠ 0
hd0 : d ≠ 0
k1 k2 : R
⊢ c * k1 * (d * k2) / (c * d) = c * k1 / c * (d * k2 / d)
state_after: no goals

tactic: simp
state_before: case inl
R : Type u
inst✝ : EuclideanDomain R
a b d : R
hbd : d ∣ b
hac : 0 ∣ a
⊢ a * b / (0 * d) = a / 0 * (b / d)
state_after: no goals

tactic: simp
state_before: case inr.inl
R : Type u
inst✝ : EuclideanDomain R
a b c : R
hac : c ∣ a
hc0 : c ≠ 0
hbd : 0 ∣ b
⊢ a * b / (c * 0) = a / c * (b / 0)
state_after: no goals
Theorem: Nat.Partrec.Code.evaln_map
File: Mathlib/Computability/PartrecCode.lean

tactic: by_cases kn : n < k
state_before: k : ℕ
c : Code
n : ℕ
⊢ ((Option.map (evaln k c) (List.range k)[n]?).bind fun b => b) = evaln k c n
state_after: case pos
k : ℕ
c : Code
n : ℕ
kn : n < k
⊢ ((Option.map (evaln k c) (List.range k)[n]?).bind fun b => b) = evaln k c n

case neg
k : ℕ
c : Code
n : ℕ
kn : ¬n < k
⊢ ((Option.map (evaln k c) (List.range k)[n]?).bind fun b => b) = evaln k c n

tactic: simp [List.getElem?_range kn]
state_before: case pos
k : ℕ
c : Code
n : ℕ
kn : n < k
⊢ ((Option.map (evaln k c) (List.range k)[n]?).bind fun b => b) = evaln k c n
state_after: no goals

tactic: rw [List.getElem?_len_le]
state_before: case neg
k : ℕ
c : Code
n : ℕ
kn : ¬n < k
⊢ ((Option.map (evaln k c) (List.range k)[n]?).bind fun b => b) = evaln k c n
state_after: case neg
k : ℕ
c : Code
n : ℕ
kn : ¬n < k
⊢ ((Option.map (evaln k c) Option.none).bind fun b => b) = evaln k c n

case neg
k : ℕ
c : Code
n : ℕ
kn : ¬n < k
⊢ (List.range k).length ≤ n

tactic: simpa using kn
state_before: case neg
k : ℕ
c : Code
n : ℕ
kn : ¬n < k
⊢ (List.range k).length ≤ n
state_after: no goals

tactic: cases e : evaln k c n
state_before: case neg
k : ℕ
c : Code
n : ℕ
kn : ¬n < k
⊢ ((Option.map (evaln k c) Option.none).bind fun b => b) = evaln k c n
state_after: case neg.none
k : ℕ
c : Code
n : ℕ
kn : ¬n < k
e : evaln k c n = Option.none
⊢ ((Option.map (evaln k c) Option.none).bind fun b => b) = Option.none

case neg.some
k : ℕ
c : Code
n : ℕ
kn : ¬n < k
val✝ : ℕ
e : evaln k c n = some val✝
⊢ ((Option.map (evaln k c) Option.none).bind fun b => b) = some val✝

tactic: exact kn.elim (evaln_bound e)
state_before: case neg.some
k : ℕ
c : Code
n : ℕ
kn : ¬n < k
val✝ : ℕ
e : evaln k c n = some val✝
⊢ ((Option.map (evaln k c) Option.none).bind fun b => b) = some val✝
state_after: no goals

tactic: rfl
state_before: case neg.none
k : ℕ
c : Code
n : ℕ
kn : ¬n < k
e : evaln k c n = Option.none
⊢ ((Option.map (evaln k c) Option.none).bind fun b => b) = Option.none
state_after: no goals
Theorem: CategoryTheory.MonoidalCategory.tensorLeftTensor_inv_app
File: Mathlib/CategoryTheory/Monoidal/Category.lean

tactic: simp [tensorLeftTensor]
state_before: C : Type u
𝒞 : Category.{v, u} C
inst✝ : MonoidalCategory C
X Y Z : C
⊢ (tensorLeftTensor X Y).inv.app Z = (α_ X Y Z).inv
state_after: no goals
Theorem: OrthonormalBasis.det_to_matrix_orthonormalBasis_real
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: rw [← sq_eq_one_iff]
state_before: ι : Type u_1
ι' : Type u_2
𝕜 : Type u_3
inst✝¹⁰ : _root_.RCLike 𝕜
E : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : InnerProductSpace 𝕜 E
E' : Type u_5
inst✝⁷ : NormedAddCommGroup E'
inst✝⁶ : InnerProductSpace 𝕜 E'
F : Type u_6
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace ℝ F
F' : Type u_7
inst✝³ : NormedAddCommGroup F'
inst✝² : InnerProductSpace ℝ F'
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
a b : OrthonormalBasis ι ℝ F
⊢ a.toBasis.det ⇑b = 1 ∨ a.toBasis.det ⇑b = -1
state_after: ι : Type u_1
ι' : Type u_2
𝕜 : Type u_3
inst✝¹⁰ : _root_.RCLike 𝕜
E : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : InnerProductSpace 𝕜 E
E' : Type u_5
inst✝⁷ : NormedAddCommGroup E'
inst✝⁶ : InnerProductSpace 𝕜 E'
F : Type u_6
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace ℝ F
F' : Type u_7
inst✝³ : NormedAddCommGroup F'
inst✝² : InnerProductSpace ℝ F'
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
a b : OrthonormalBasis ι ℝ F
⊢ a.toBasis.det ⇑b ^ 2 = 1

tactic: simpa [unitary, sq] using Matrix.det_of_mem_unitary (a.toMatrix_orthonormalBasis_mem_unitary b)
state_before: ι : Type u_1
ι' : Type u_2
𝕜 : Type u_3
inst✝¹⁰ : _root_.RCLike 𝕜
E : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : InnerProductSpace 𝕜 E
E' : Type u_5
inst✝⁷ : NormedAddCommGroup E'
inst✝⁶ : InnerProductSpace 𝕜 E'
F : Type u_6
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace ℝ F
F' : Type u_7
inst✝³ : NormedAddCommGroup F'
inst✝² : InnerProductSpace ℝ F'
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
a b : OrthonormalBasis ι ℝ F
⊢ a.toBasis.det ⇑b ^ 2 = 1
state_after: no goals
Theorem: List.pairwise_filter
File: .lake/packages/batteries/Batteries/Data/List/Pairwise.lean

tactic: rw [← filterMap_eq_filter, pairwise_filterMap]
state_before: α : Type u_1
R : α → α → Prop
p : α → Prop
inst✝ : DecidablePred p
l : List α
⊢ Pairwise R (filter (fun b => decide (p b)) l) ↔ Pairwise (fun x y => p x → p y → R x y) l
state_after: α : Type u_1
R : α → α → Prop
p : α → Prop
inst✝ : DecidablePred p
l : List α
⊢ Pairwise
      (fun a a' =>
        ∀ (b : α),
          b ∈ Option.guard (fun x => decide (p x) = true) a →
            ∀ (b' : α), b' ∈ Option.guard (fun x => decide (p x) = true) a' → R b b')
      l ↔
    Pairwise (fun x y => p x → p y → R x y) l

tactic: simp
state_before: α : Type u_1
R : α → α → Prop
p : α → Prop
inst✝ : DecidablePred p
l : List α
⊢ Pairwise
      (fun a a' =>
        ∀ (b : α),
          b ∈ Option.guard (fun x => decide (p x) = true) a →
            ∀ (b' : α), b' ∈ Option.guard (fun x => decide (p x) = true) a' → R b b')
      l ↔
    Pairwise (fun x y => p x → p y → R x y) l
state_after: no goals
Theorem: HNNExtension.t_mul_of
File: Mathlib/GroupTheory/HNNExtension.lean

tactic: simp
state_before: G : Type u_1
inst✝² : Group G
A B : Subgroup G
φ : ↥A ≃* ↥B
H : Type u_2
inst✝¹ : Group H
M : Type u_3
inst✝ : Monoid M
a : ↥A
⊢ (fun x x_1 => x * x_1) (inr (ofAdd 1)) (inl ↑a) = inr (ofAdd 1) * inl ↑a ∧
    (fun x x_1 => x * x_1) (inl ↑(φ a)) (inr (ofAdd 1)) = inl ↑(φ a) * inr (ofAdd 1)
state_after: no goals
Theorem: ContinuousMap.toLp_denseRange
File: Mathlib/MeasureTheory/Function/ContinuousMapDense.lean

tactic: refine (BoundedContinuousFunction.toLp_denseRange _ _ hp 𝕜).mono ?_
state_before: α : Type u_1
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : TopologicalSpace α
inst✝⁹ : T4Space α
inst✝⁸ : BorelSpace α
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
μ : Measure α
p : ℝ≥0∞
inst✝⁶ : SecondCountableTopologyEither α E
_i : Fact (1 ≤ p)
hp : p ≠ ⊤
𝕜 : Type u_3
inst✝⁵ : NormedField 𝕜
inst✝⁴ : NormedAlgebra ℝ 𝕜
inst✝³ : NormedSpace 𝕜 E
inst✝² : CompactSpace α
inst✝¹ : μ.WeaklyRegular
inst✝ : IsFiniteMeasure μ
⊢ DenseRange ⇑(toLp p μ 𝕜)
state_after: α : Type u_1
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : TopologicalSpace α
inst✝⁹ : T4Space α
inst✝⁸ : BorelSpace α
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
μ : Measure α
p : ℝ≥0∞
inst✝⁶ : SecondCountableTopologyEither α E
_i : Fact (1 ≤ p)
hp : p ≠ ⊤
𝕜 : Type u_3
inst✝⁵ : NormedField 𝕜
inst✝⁴ : NormedAlgebra ℝ 𝕜
inst✝³ : NormedSpace 𝕜 E
inst✝² : CompactSpace α
inst✝¹ : μ.WeaklyRegular
inst✝ : IsFiniteMeasure μ
⊢ range ⇑(BoundedContinuousFunction.toLp p μ 𝕜) ⊆ range ⇑(toLp p μ 𝕜)

tactic: refine range_subset_iff.2 fun f ↦ ?_
state_before: α : Type u_1
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : TopologicalSpace α
inst✝⁹ : T4Space α
inst✝⁸ : BorelSpace α
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
μ : Measure α
p : ℝ≥0∞
inst✝⁶ : SecondCountableTopologyEither α E
_i : Fact (1 ≤ p)
hp : p ≠ ⊤
𝕜 : Type u_3
inst✝⁵ : NormedField 𝕜
inst✝⁴ : NormedAlgebra ℝ 𝕜
inst✝³ : NormedSpace 𝕜 E
inst✝² : CompactSpace α
inst✝¹ : μ.WeaklyRegular
inst✝ : IsFiniteMeasure μ
⊢ range ⇑(BoundedContinuousFunction.toLp p μ 𝕜) ⊆ range ⇑(toLp p μ 𝕜)
state_after: α : Type u_1
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : TopologicalSpace α
inst✝⁹ : T4Space α
inst✝⁸ : BorelSpace α
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
μ : Measure α
p : ℝ≥0∞
inst✝⁶ : SecondCountableTopologyEither α E
_i : Fact (1 ≤ p)
hp : p ≠ ⊤
𝕜 : Type u_3
inst✝⁵ : NormedField 𝕜
inst✝⁴ : NormedAlgebra ℝ 𝕜
inst✝³ : NormedSpace 𝕜 E
inst✝² : CompactSpace α
inst✝¹ : μ.WeaklyRegular
inst✝ : IsFiniteMeasure μ
f : α →ᵇ E
⊢ (BoundedContinuousFunction.toLp p μ 𝕜) f ∈ range ⇑(toLp p μ 𝕜)

tactic: exact ⟨f.toContinuousMap, rfl⟩
state_before: α : Type u_1
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : TopologicalSpace α
inst✝⁹ : T4Space α
inst✝⁸ : BorelSpace α
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
μ : Measure α
p : ℝ≥0∞
inst✝⁶ : SecondCountableTopologyEither α E
_i : Fact (1 ≤ p)
hp : p ≠ ⊤
𝕜 : Type u_3
inst✝⁵ : NormedField 𝕜
inst✝⁴ : NormedAlgebra ℝ 𝕜
inst✝³ : NormedSpace 𝕜 E
inst✝² : CompactSpace α
inst✝¹ : μ.WeaklyRegular
inst✝ : IsFiniteMeasure μ
f : α →ᵇ E
⊢ (BoundedContinuousFunction.toLp p μ 𝕜) f ∈ range ⇑(toLp p μ 𝕜)
state_after: no goals
Theorem: CategoryTheory.IsPushout.inl_isoPushout_hom
File: Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean

tactic: simp [← Iso.eq_comp_inv]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
Z X Y P : C
f : Z ⟶ X
g : Z ⟶ Y
inl : X ⟶ P
inr : Y ⟶ P
h : IsPushout f g inl inr
inst✝ : HasPushout f g
⊢ inl ≫ h.isoPushout.hom = pushout.inl
state_after: no goals
Theorem: UniformGroup.toUniformSpace_eq
File: Mathlib/Topology/Algebra/UniformGroup.lean

tactic: ext : 1
state_before: G✝ : Type u_1
inst✝⁴ : CommGroup G✝
inst✝³ : TopologicalSpace G✝
inst✝² : TopologicalGroup G✝
G : Type u_2
u : UniformSpace G
inst✝¹ : Group G
inst✝ : UniformGroup G
⊢ TopologicalGroup.toUniformSpace G = u
state_after: case h
G✝ : Type u_1
inst✝⁴ : CommGroup G✝
inst✝³ : TopologicalSpace G✝
inst✝² : TopologicalGroup G✝
G : Type u_2
u : UniformSpace G
inst✝¹ : Group G
inst✝ : UniformGroup G
⊢ 𝓤 G = 𝓤 G

tactic: rw [uniformity_eq_comap_nhds_one' G, uniformity_eq_comap_nhds_one G]
state_before: case h
G✝ : Type u_1
inst✝⁴ : CommGroup G✝
inst✝³ : TopologicalSpace G✝
inst✝² : TopologicalGroup G✝
G : Type u_2
u : UniformSpace G
inst✝¹ : Group G
inst✝ : UniformGroup G
⊢ 𝓤 G = 𝓤 G
state_after: no goals
Theorem: WithLp.prod_infty_equiv_isometry
File: Mathlib/Analysis/NormedSpace/ProdLp.lean

tactic: simpa only [ENNReal.coe_one, one_mul] using prod_lipschitzWith_equiv ∞ α β x y
state_before: p : ℝ≥0∞
𝕜 : Type u_1
α : Type u_2
β : Type u_3
hp : Fact (1 ≤ p)
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : WithLp ⊤ (α × β)
⊢ edist ((WithLp.equiv ⊤ (α × β)) x) ((WithLp.equiv ⊤ (α × β)) y) ≤ edist x y
state_after: no goals

tactic: simpa only [ENNReal.div_top, ENNReal.zero_toReal, NNReal.rpow_zero, ENNReal.coe_one,
  one_mul] using prod_antilipschitzWith_equiv ∞ α β x y
state_before: p : ℝ≥0∞
𝕜 : Type u_1
α : Type u_2
β : Type u_3
hp : Fact (1 ≤ p)
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : WithLp ⊤ (α × β)
⊢ edist x y ≤ edist ((WithLp.equiv ⊤ (α × β)) x) ((WithLp.equiv ⊤ (α × β)) y)
state_after: no goals