1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: affineCombination_mem_affineSpan_pair
File: Mathlib/LinearAlgebra/AffineSpace/Independent.lean

tactic: rw [← vsub_vadd (s.affineCombination k p w) (s.affineCombination k p w₁),
  AffineSubspace.vadd_mem_iff_mem_direction _ (left_mem_affineSpan_pair _ _ _),
  direction_affineSpan, s.affineCombination_vsub, Set.pair_comm,
  weightedVSub_mem_vectorSpan_pair h _ hw₂ hw₁]
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
ι : Type u_4
s✝ : Finset ι
w✝ w₁✝ w₂✝ : ι → k
p✝ : ι → V
p : ι → P
h : AffineIndependent k p
w w₁ w₂ : ι → k
s : Finset ι
x✝ : ∑ i ∈ s, w i = 1
hw₁ : ∑ i ∈ s, w₁ i = 1
hw₂ : ∑ i ∈ s, w₂ i = 1
⊢ (affineCombination k s p) w ∈ affineSpan k {(affineCombination k s p) w₁, (affineCombination k s p) w₂} ↔
    ∃ r, ∀ i ∈ s, w i = r * (w₂ i - w₁ i) + w₁ i
state_after: 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
ι : Type u_4
s✝ : Finset ι
w✝ w₁✝ w₂✝ : ι → k
p✝ : ι → V
p : ι → P
h : AffineIndependent k p
w w₁ w₂ : ι → k
s : Finset ι
x✝ : ∑ i ∈ s, w i = 1
hw₁ : ∑ i ∈ s, w₁ i = 1
hw₂ : ∑ i ∈ s, w₂ i = 1
⊢ (∃ r, ∀ i ∈ s, (w - w₁) i = r * (w₂ i - w₁ i)) ↔ ∃ r, ∀ i ∈ s, w i = r * (w₂ i - w₁ i) + w₁ i

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
ι : Type u_4
s✝ : Finset ι
w✝ w₁✝ w₂✝ : ι → k
p✝ : ι → V
p : ι → P
h : AffineIndependent k p
w w₁ w₂ : ι → k
s : Finset ι
x✝ : ∑ i ∈ s, w i = 1
hw₁ : ∑ i ∈ s, w₁ i = 1
hw₂ : ∑ i ∈ s, w₂ i = 1
⊢ ∑ i ∈ s, (w - w₁) i = 0

tactic: simp only [Pi.sub_apply, sub_eq_iff_eq_add]
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
ι : Type u_4
s✝ : Finset ι
w✝ w₁✝ w₂✝ : ι → k
p✝ : ι → V
p : ι → P
h : AffineIndependent k p
w w₁ w₂ : ι → k
s : Finset ι
x✝ : ∑ i ∈ s, w i = 1
hw₁ : ∑ i ∈ s, w₁ i = 1
hw₂ : ∑ i ∈ s, w₂ i = 1
⊢ (∃ r, ∀ i ∈ s, (w - w₁) i = r * (w₂ i - w₁ i)) ↔ ∃ r, ∀ i ∈ s, w i = r * (w₂ i - w₁ i) + w₁ i
state_after: no goals

tactic: simp_all only [Pi.sub_apply, Finset.sum_sub_distrib, sub_self]
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
ι : Type u_4
s✝ : Finset ι
w✝ w₁✝ w₂✝ : ι → k
p✝ : ι → V
p : ι → P
h : AffineIndependent k p
w w₁ w₂ : ι → k
s : Finset ι
x✝ : ∑ i ∈ s, w i = 1
hw₁ : ∑ i ∈ s, w₁ i = 1
hw₂ : ∑ i ∈ s, w₂ i = 1
⊢ ∑ i ∈ s, (w - w₁) i = 0
state_after: no goals
Theorem: QuadraticForm.polar_neg_right
File: Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

tactic: rw [← neg_one_smul R y, polar_smul_right, neg_one_mul]
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
x y : M
⊢ polar (⇑Q) x (-y) = -polar (⇑Q) x y
state_after: no goals
Theorem: GeneralizedContinuedFraction.IntFractPair.succ_nth_stream_eq_some_iff
File: Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean

tactic: simp [IntFractPair.stream, ite_eq_iff, Option.bind_eq_some]
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
ifp_succ_n : IntFractPair K
⊢ IntFractPair.stream v (n + 1) = some ifp_succ_n ↔
    ∃ ifp_n, IntFractPair.stream v n = some ifp_n ∧ ifp_n.fr ≠ 0 ∧ IntFractPair.of ifp_n.fr⁻¹ = ifp_succ_n
state_after: no goals
Theorem: CategoryTheory.Monad.algebra_iso_of_iso
File: Mathlib/CategoryTheory/Monad/Algebra.lean

tactic: rw [IsIso.eq_comp_inv f.f, Category.assoc, ← f.h]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
T : Monad C
A B : T.Algebra
f : A ⟶ B
inst✝ : IsIso f.f
⊢ T.map (inv f.f) ≫ A.a = B.a ≫ inv f.f
state_after: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
T : Monad C
A B : T.Algebra
f : A ⟶ B
inst✝ : IsIso f.f
⊢ T.map (inv f.f) ≫ T.map f.f ≫ B.a = B.a

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
T : Monad C
A B : T.Algebra
f : A ⟶ B
inst✝ : IsIso f.f
⊢ T.map (inv f.f) ≫ T.map f.f ≫ B.a = B.a
state_after: no goals

tactic: aesop_cat
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
T : Monad C
A B : T.Algebra
f : A ⟶ B
inst✝ : IsIso f.f
⊢ f ≫ { f := inv f.f, h := ⋯ } = 𝟙 A ∧ { f := inv f.f, h := ⋯ } ≫ f = 𝟙 B
state_after: no goals
Theorem: Matroid.Indep.basis_of_maximal_subset
File: Mathlib/Data/Matroid/Basic.lean

tactic: rw [basis_iff (by aesop_mat : X ⊆ M.E), and_iff_right hI, and_iff_right hIX]
state_before: α : Type u_1
M : Matroid α
I X : Set α
hI : M.Indep I
hIX : I ⊆ X
hmax : ∀ ⦃J : Set α⦄, M.Indep J → I ⊆ J → J ⊆ X → J ⊆ I
hX : autoParam (X ⊆ M.E) _auto✝
⊢ M.Basis I X
state_after: α : Type u_1
M : Matroid α
I X : Set α
hI : M.Indep I
hIX : I ⊆ X
hmax : ∀ ⦃J : Set α⦄, M.Indep J → I ⊆ J → J ⊆ X → J ⊆ I
hX : autoParam (X ⊆ M.E) _auto✝
⊢ ∀ (J : Set α), M.Indep J → I ⊆ J → J ⊆ X → I = J

tactic: exact fun J hJ hIJ hJX ↦ hIJ.antisymm (hmax hJ hIJ hJX)
state_before: α : Type u_1
M : Matroid α
I X : Set α
hI : M.Indep I
hIX : I ⊆ X
hmax : ∀ ⦃J : Set α⦄, M.Indep J → I ⊆ J → J ⊆ X → J ⊆ I
hX : autoParam (X ⊆ M.E) _auto✝
⊢ ∀ (J : Set α), M.Indep J → I ⊆ J → J ⊆ X → I = J
state_after: no goals

tactic: aesop_mat
state_before: α : Type u_1
M : Matroid α
I X : Set α
hI : M.Indep I
hIX : I ⊆ X
hmax : ∀ ⦃J : Set α⦄, M.Indep J → I ⊆ J → J ⊆ X → J ⊆ I
hX : autoParam (X ⊆ M.E) _auto✝
⊢ X ⊆ M.E
state_after: no goals
Theorem: Fintype.prod_fiberwise'
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: rw [← Finset.prod_fiberwise' _ g f]
state_before: ι✝ : Type u_1
κ✝ : Type u_2
α✝ : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α✝
a : α✝
f✝ g✝ : α✝ → β
ι : Type u_6
κ : Type u_7
α : Type u_8
inst✝³ : Fintype ι
inst✝² : Fintype κ
inst✝¹ : CommMonoid α
inst✝ : DecidableEq κ
g : ι → κ
f : κ → α
⊢ ∏ j : κ, ∏ _i : { i // g i = j }, f j = ∏ i : ι, f (g i)
state_after: ι✝ : Type u_1
κ✝ : Type u_2
α✝ : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α✝
a : α✝
f✝ g✝ : α✝ → β
ι : Type u_6
κ : Type u_7
α : Type u_8
inst✝³ : Fintype ι
inst✝² : Fintype κ
inst✝¹ : CommMonoid α
inst✝ : DecidableEq κ
g : ι → κ
f : κ → α
⊢ ∏ j : κ, ∏ _i : { i // g i = j }, f j = ∏ j : κ, ∏ _i ∈ filter (fun i => g i = j) univ, f j

tactic: congr with j
state_before: ι✝ : Type u_1
κ✝ : Type u_2
α✝ : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α✝
a : α✝
f✝ g✝ : α✝ → β
ι : Type u_6
κ : Type u_7
α : Type u_8
inst✝³ : Fintype ι
inst✝² : Fintype κ
inst✝¹ : CommMonoid α
inst✝ : DecidableEq κ
g : ι → κ
f : κ → α
⊢ ∏ j : κ, ∏ _i : { i // g i = j }, f j = ∏ j : κ, ∏ _i ∈ filter (fun i => g i = j) univ, f j
state_after: case e_f.h
ι✝ : Type u_1
κ✝ : Type u_2
α✝ : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α✝
a : α✝
f✝ g✝ : α✝ → β
ι : Type u_6
κ : Type u_7
α : Type u_8
inst✝³ : Fintype ι
inst✝² : Fintype κ
inst✝¹ : CommMonoid α
inst✝ : DecidableEq κ
g : ι → κ
f : κ → α
j : κ
⊢ ∏ _i : { i // g i = j }, f j = ∏ _i ∈ filter (fun i => g i = j) univ, f j

tactic: exact (prod_subtype _ (by simp) fun _ ↦ _).symm
state_before: case e_f.h
ι✝ : Type u_1
κ✝ : Type u_2
α✝ : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α✝
a : α✝
f✝ g✝ : α✝ → β
ι : Type u_6
κ : Type u_7
α : Type u_8
inst✝³ : Fintype ι
inst✝² : Fintype κ
inst✝¹ : CommMonoid α
inst✝ : DecidableEq κ
g : ι → κ
f : κ → α
j : κ
⊢ ∏ _i : { i // g i = j }, f j = ∏ _i ∈ filter (fun i => g i = j) univ, f j
state_after: no goals

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✝ : α✝ → β
ι : Type u_6
κ : Type u_7
α : Type u_8
inst✝³ : Fintype ι
inst✝² : Fintype κ
inst✝¹ : CommMonoid α
inst✝ : DecidableEq κ
g : ι → κ
f : κ → α
j : κ
⊢ ∀ (x : ι), x ∈ filter (fun i => g i = j) univ ↔ g x = j
state_after: no goals
Theorem: ENNReal.pow_lt_top
File: Mathlib/Data/ENNReal/Operations.lean

tactic: simpa only [lt_top_iff_ne_top] using pow_ne_top
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
α : Type u_1
⊢ a < ⊤ → ∀ (n : ℕ), a ^ n < ⊤
state_after: no goals
Theorem: Fin.predAbove_pred_of_le
File: Mathlib/Data/Fin/Basic.lean

tactic: rw [predAbove_of_succ_le _ _ (succ_pred _ _ ▸ h)]
state_before: n m : ℕ
p i : Fin (n + 1)
h : p ≤ i
hp : p ≠ 0
hi : optParam (i ≠ 0) ⋯
⊢ (p.pred hp).predAbove i = i.pred hi
state_after: no goals
Theorem: CategoryTheory.MonoidalCategory.eqToHom_whiskerRight
File: Mathlib/CategoryTheory/Monoidal/Category.lean

tactic: cases f
state_before: C✝ : Type u
𝒞 : Category.{v, u} C✝
inst✝² : MonoidalCategory C✝
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : MonoidalCategory C
U V W X✝ Y✝ Z✝ X Y : C
f : X = Y
Z : C
⊢ eqToHom f ▷ Z = eqToHom ⋯
state_after: case refl
C✝ : Type u
𝒞 : Category.{v, u} C✝
inst✝² : MonoidalCategory C✝
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : MonoidalCategory C
U V W X✝ Y Z✝ X Z : C
⊢ eqToHom ⋯ ▷ Z = eqToHom ⋯

tactic: simp only [id_whiskerRight, eqToHom_refl]
state_before: case refl
C✝ : Type u
𝒞 : Category.{v, u} C✝
inst✝² : MonoidalCategory C✝
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : MonoidalCategory C
U V W X✝ Y Z✝ X Z : C
⊢ eqToHom ⋯ ▷ Z = eqToHom ⋯
state_after: no goals
Theorem: LinearMap.BilinForm.compRight_id
File: Mathlib/LinearAlgebra/BilinearForm/Hom.lean

tactic: ext
state_before: R : Type u_1
M : Type u_2
inst✝¹⁰ : CommSemiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
R₁ : Type u_3
M₁ : Type u_4
inst✝⁷ : CommRing R₁
inst✝⁶ : AddCommGroup M₁
inst✝⁵ : Module R₁ M₁
V : Type u_5
K : Type u_6
inst✝⁴ : Field K
inst✝³ : AddCommGroup V
inst✝² : Module K V
B✝ : BilinForm R M
B₁ : BilinForm R₁ M₁
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
B : BilinForm R M
⊢ B.compRight id = B
state_after: case H
R : Type u_1
M : Type u_2
inst✝¹⁰ : CommSemiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
R₁ : Type u_3
M₁ : Type u_4
inst✝⁷ : CommRing R₁
inst✝⁶ : AddCommGroup M₁
inst✝⁵ : Module R₁ M₁
V : Type u_5
K : Type u_6
inst✝⁴ : Field K
inst✝³ : AddCommGroup V
inst✝² : Module K V
B✝ : BilinForm R M
B₁ : BilinForm R₁ M₁
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
B : BilinForm R M
x✝ y✝ : M
⊢ ((B.compRight id) x✝) y✝ = (B x✝) y✝

tactic: rfl
state_before: case H
R : Type u_1
M : Type u_2
inst✝¹⁰ : CommSemiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
R₁ : Type u_3
M₁ : Type u_4
inst✝⁷ : CommRing R₁
inst✝⁶ : AddCommGroup M₁
inst✝⁵ : Module R₁ M₁
V : Type u_5
K : Type u_6
inst✝⁴ : Field K
inst✝³ : AddCommGroup V
inst✝² : Module K V
B✝ : BilinForm R M
B₁ : BilinForm R₁ M₁
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
B : BilinForm R M
x✝ y✝ : M
⊢ ((B.compRight id) x✝) y✝ = (B x✝) y✝
state_after: no goals
Theorem: TrivSqZeroExt.snd_expSeries_of_smul_comm
File: Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean

tactic: simp_rw [expSeries_apply_eq, snd_smul, snd_pow_of_smul_comm _ _ hx, nsmul_eq_smul_cast 𝕜 (n + 1),
  smul_smul, smul_assoc, Nat.factorial_succ, Nat.pred_succ, Nat.cast_mul, mul_inv_rev,
  inv_mul_cancel_right₀ ((Nat.cast_ne_zero (R := 𝕜)).mpr <| Nat.succ_ne_zero n)]
state_before: 𝕜 : Type u_1
S : Type u_2
R : Type u_3
M : Type u_4
inst✝¹⁶ : Field 𝕜
inst✝¹⁵ : CharZero 𝕜
inst✝¹⁴ : Ring R
inst✝¹³ : AddCommGroup M
inst✝¹² : Algebra 𝕜 R
inst✝¹¹ : Module 𝕜 M
inst✝¹⁰ : Module R M
inst✝⁹ : Module Rᵐᵒᵖ M
inst✝⁸ : SMulCommClass R Rᵐᵒᵖ M
inst✝⁷ : IsScalarTower 𝕜 R M
inst✝⁶ : IsScalarTower 𝕜 Rᵐᵒᵖ M
inst✝⁵ : TopologicalSpace R
inst✝⁴ : TopologicalSpace M
inst✝³ : TopologicalRing R
inst✝² : TopologicalAddGroup M
inst✝¹ : ContinuousSMul R M
inst✝ : ContinuousSMul Rᵐᵒᵖ M
x : tsze R M
hx : MulOpposite.op x.fst • x.snd = x.fst • x.snd
n : ℕ
⊢ ((expSeries 𝕜 (tsze R M) (n + 1)) fun x_1 => x).snd = ((expSeries 𝕜 R n) fun x_1 => x.fst) • x.snd
state_after: no goals
Theorem: smul_algebraMap
File: Mathlib/Algebra/Algebra/Defs.lean

tactic: rw [algebraMap_eq_smul_one, smul_comm a r (1 : A), smul_one]
state_before: R : Type u
S : Type v
A : Type w
B : Type u_1
inst✝⁸ : CommSemiring R
inst✝⁷ : CommSemiring S
inst✝⁶ : Semiring A
inst✝⁵ : Algebra R A
inst✝⁴ : Semiring B
inst✝³ : Algebra R B
α : Type u_2
inst✝² : Monoid α
inst✝¹ : MulDistribMulAction α A
inst✝ : SMulCommClass α R A
a : α
r : R
⊢ a • (algebraMap R A) r = (algebraMap R A) r
state_after: no goals
Theorem: CategoryTheory.CosimplicialObject.δ_comp_δ_self'
File: Mathlib/AlgebraicTopology/SimplicialObject.lean

tactic: subst H
state_before: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
i : Fin (n + 2)
j : Fin (n + 3)
H : j = i.castSucc
⊢ X.δ i ≫ X.δ j = X.δ i ≫ X.δ i.succ
state_after: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
i : Fin (n + 2)
⊢ X.δ i ≫ X.δ i.castSucc = X.δ i ≫ X.δ i.succ

tactic: rw [δ_comp_δ_self]
state_before: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
i : Fin (n + 2)
⊢ X.δ i ≫ X.δ i.castSucc = X.δ i ≫ X.δ i.succ
state_after: no goals
Theorem: Filter.sup_join
File: Mathlib/Order/Filter/Basic.lean

tactic: simp only [mem_sup, mem_join]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
f g : Filter α
s t : Set α
f₁ f₂ : Filter (Filter α)
x : Set α
⊢ x ∈ f₁.join ⊔ f₂.join ↔ x ∈ (f₁ ⊔ f₂).join
state_after: no goals
Theorem: UpperHalfPlane.dist_log_im_le
File: Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean

tactic: simp_rw [dist_eq]
state_before: z✝ w✝ : ℍ
r R : ℝ
z w : ℍ
⊢ dist (mk { re := 0, im := z.im } ⋯) (mk { re := 0, im := w.im } ⋯) ≤ dist z w
state_after: z✝ w✝ : ℍ
r R : ℝ
z w : ℍ
⊢ 2 *
      arsinh
        (dist ↑(mk { re := 0, im := z.im } ⋯) ↑(mk { re := 0, im := w.im } ⋯) /
          (2 * √((mk { re := 0, im := z.im } ⋯).im * (mk { re := 0, im := w.im } ⋯).im))) ≤
    2 * arsinh (dist ↑z ↑w / (2 * √(z.im * w.im)))

tactic: dsimp only [coe_mk, mk_im]
state_before: z✝ w✝ : ℍ
r R : ℝ
z w : ℍ
⊢ 2 *
      arsinh
        (dist ↑(mk { re := 0, im := z.im } ⋯) ↑(mk { re := 0, im := w.im } ⋯) /
          (2 * √((mk { re := 0, im := z.im } ⋯).im * (mk { re := 0, im := w.im } ⋯).im))) ≤
    2 * arsinh (dist ↑z ↑w / (2 * √(z.im * w.im)))
state_after: z✝ w✝ : ℍ
r R : ℝ
z w : ℍ
⊢ 2 * arsinh (dist { re := 0, im := z.im } { re := 0, im := w.im } / (2 * √(z.im * w.im))) ≤
    2 * arsinh (dist ↑z ↑w / (2 * √(z.im * w.im)))

tactic: gcongr
state_before: z✝ w✝ : ℍ
r R : ℝ
z w : ℍ
⊢ 2 * arsinh (dist { re := 0, im := z.im } { re := 0, im := w.im } / (2 * √(z.im * w.im))) ≤
    2 * arsinh (dist ↑z ↑w / (2 * √(z.im * w.im)))
state_after: case h.a.hab
z✝ w✝ : ℍ
r R : ℝ
z w : ℍ
⊢ dist { re := 0, im := z.im } { re := 0, im := w.im } ≤ dist ↑z ↑w

tactic: simpa [sqrt_sq_eq_abs] using Complex.abs_im_le_abs (z - w)
state_before: case h.a.hab
z✝ w✝ : ℍ
r R : ℝ
z w : ℍ
⊢ dist { re := 0, im := z.im } { re := 0, im := w.im } ≤ dist ↑z ↑w
state_after: no goals
Theorem: Set.range_eq_iUnion
File: Mathlib/Data/Set/Lattice.lean

tactic: simp [@eq_comm α a]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι✝ : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι✝ → Sort u_7
κ₁ : ι✝ → Sort u_8
κ₂ : ι✝ → Sort u_9
κ' : ι' → Sort u_10
ι : Sort u_11
f : ι → α
a : α
⊢ a ∈ range f ↔ a ∈ ⋃ i, {f i}
state_after: no goals
Theorem: ProperCone.comap_comap
File: Mathlib/Analysis/Convex/Cone/Proper.lean

tactic: congr
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
G : Type u_3
inst✝¹ : NormedAddCommGroup G
inst✝ : InnerProductSpace ℝ G
g : F →L[ℝ] G
f : E →L[ℝ] F
S : ProperCone ℝ G
⊢ ↑(comap f (comap g S)) = ↑(comap (g.comp f) S)
state_after: no goals
Theorem: FormalMultilinearSeries.radius_neg
File: Mathlib/Analysis/Analytic/Basic.lean

tactic: simp only [radius, neg_apply, norm_neg]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p✝ : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0
p : FormalMultilinearSeries 𝕜 E F
⊢ (-p).radius = p.radius
state_after: no goals
Theorem: Fin.mem_piFinset_succ'
File: Mathlib/Data/Fin/Tuple/Finset.lean

tactic: simp only [mem_piFinset, forall_fin_succ', init]
state_before: n : ℕ
α : Fin (n + 1) → Type u_1
x : (i : Fin (n + 1)) → α i
s : (i : Fin (n + 1)) → Finset (α i)
⊢ x ∈ piFinset s ↔ init x ∈ piFinset (init s) ∧ x (last n) ∈ s (last n)
state_after: no goals
Theorem: Zspan.volume_fundamentalDomain
File: Mathlib/Algebra/Module/Zlattice/Basic.lean

tactic: rw [measure_fundamentalDomain b volume (b₀ := Pi.basisFun ℝ ι), fundamentalDomain_pi_basisFun,
  volume_pi, Measure.pi_pi, Real.volume_Ico, sub_zero, ENNReal.ofReal_one, Finset.prod_const_one,
  mul_one, ← Matrix.det_transpose]
state_before: E : Type u_1
ι : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
b✝ : Basis ι ℝ E
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
b : Basis ι ℝ (ι → ℝ)
⊢ volume (fundamentalDomain b) = ENNReal.ofReal |(Matrix.of ⇑b).det|
state_after: E : Type u_1
ι : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
b✝ : Basis ι ℝ E
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
b : Basis ι ℝ (ι → ℝ)
⊢ ENNReal.ofReal |(Pi.basisFun ℝ ι).det ⇑b| = ENNReal.ofReal |(Matrix.of ⇑b).transpose.det|

tactic: rfl
state_before: E : Type u_1
ι : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
b✝ : Basis ι ℝ E
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
b : Basis ι ℝ (ι → ℝ)
⊢ ENNReal.ofReal |(Pi.basisFun ℝ ι).det ⇑b| = ENNReal.ofReal |(Matrix.of ⇑b).transpose.det|
state_after: no goals
Theorem: CategoryTheory.MonoidalCategory.tensorHom_id
File: Mathlib/CategoryTheory/Monoidal/Category.lean

tactic: simp [tensorHom_def]
state_before: C : Type u
𝒞 : Category.{v, u} C
inst✝ : MonoidalCategory C
X₁ X₂ : C
f : X₁ ⟶ X₂
Y : C
⊢ f ⊗ 𝟙 Y = f ▷ Y
state_after: no goals
Theorem: Nat.floor_eq_iff'
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [← le_floor_iff' hn, ← Nat.cast_one, ← Nat.cast_add, ← floor_lt' (Nat.add_one_ne_zero n),
  Nat.lt_add_one_iff, le_antisymm_iff, and_comm]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a : α
n : ℕ
hn : n ≠ 0
⊢ ⌊a⌋₊ = n ↔ ↑n ≤ a ∧ a < ↑n + 1
state_after: no goals
Theorem: AddEquiv.finsuppUnique_symm
File: Mathlib/Data/Finsupp/Defs.lean

tactic: rw [Finsupp.unique_single (AddEquiv.finsuppUnique.symm d), Finsupp.unique_single_eq_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M✝ : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : AddZeroClass M✝
M : Type u_13
inst✝ : AddZeroClass M
d : M
⊢ AddEquiv.finsuppUnique.symm d = single () d
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M✝ : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : AddZeroClass M✝
M : Type u_13
inst✝ : AddZeroClass M
d : M
⊢ (AddEquiv.finsuppUnique.symm d) default = d

tactic: simp [AddEquiv.finsuppUnique]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M✝ : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : AddZeroClass M✝
M : Type u_13
inst✝ : AddZeroClass M
d : M
⊢ (AddEquiv.finsuppUnique.symm d) default = d
state_after: no goals
Theorem: IsSeparatedMap.pullback
File: Mathlib/Topology/SeparatedMap.lean

tactic: rw [isSeparatedMap_iff_isClosed_diagonal] at sep ⊢
state_before: X : Type u_1
Y : Sort u_2
A : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace A
f : X → Y
sep : IsSeparatedMap f
g : A → Y
⊢ IsSeparatedMap snd
state_after: X : Type u_1
Y : Sort u_2
A : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace A
f : X → Y
sep : IsClosed (Function.pullbackDiagonal f)
g : A → Y
⊢ IsClosed (Function.pullbackDiagonal snd)

tactic: rw [← preimage_map_fst_pullbackDiagonal]
state_before: X : Type u_1
Y : Sort u_2
A : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace A
f : X → Y
sep : IsClosed (Function.pullbackDiagonal f)
g : A → Y
⊢ IsClosed (Function.pullbackDiagonal snd)
state_after: X : Type u_1
Y : Sort u_2
A : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace A
f : X → Y
sep : IsClosed (Function.pullbackDiagonal f)
g : A → Y
⊢ IsClosed (Function.PullbackSelf.map_fst ⁻¹' Function.pullbackDiagonal f)

tactic: refine sep.preimage (Continuous.mapPullback ?_ ?_) <;>
apply_rules [continuous_fst, continuous_subtype_val, Continuous.comp]
state_before: X : Type u_1
Y : Sort u_2
A : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace A
f : X → Y
sep : IsClosed (Function.pullbackDiagonal f)
g : A → Y
⊢ IsClosed (Function.PullbackSelf.map_fst ⁻¹' Function.pullbackDiagonal f)
state_after: no goals
Theorem: UV.compress_idem
File: Mathlib/Combinatorics/SetFamily/Compression/UV.lean

tactic: unfold compress
state_before: α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u✝ v✝ a✝ b u v a : α
⊢ compress u v (compress u v a) = compress u v a
state_after: α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u✝ v✝ a✝ b u v a : α
⊢ (if
        Disjoint u (if Disjoint u a ∧ v ≤ a then (a ⊔ u) \ v else a) ∧
          v ≤ if Disjoint u a ∧ v ≤ a then (a ⊔ u) \ v else a then
      ((if Disjoint u a ∧ v ≤ a then (a ⊔ u) \ v else a) ⊔ u) \ v
    else if Disjoint u a ∧ v ≤ a then (a ⊔ u) \ v else a) =
    if Disjoint u a ∧ v ≤ a then (a ⊔ u) \ v else a

tactic: split_ifs with h h'
state_before: α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u✝ v✝ a✝ b u v a : α
⊢ (if
        Disjoint u (if Disjoint u a ∧ v ≤ a then (a ⊔ u) \ v else a) ∧
          v ≤ if Disjoint u a ∧ v ≤ a then (a ⊔ u) \ v else a then
      ((if Disjoint u a ∧ v ≤ a then (a ⊔ u) \ v else a) ⊔ u) \ v
    else if Disjoint u a ∧ v ≤ a then (a ⊔ u) \ v else a) =
    if Disjoint u a ∧ v ≤ a then (a ⊔ u) \ v else a
state_after: case pos
α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u✝ v✝ a✝ b u v a : α
h : Disjoint u a ∧ v ≤ a
h' : Disjoint u ((a ⊔ u) \ v) ∧ v ≤ (a ⊔ u) \ v
⊢ ((a ⊔ u) \ v ⊔ u) \ v = (a ⊔ u) \ v

case neg
α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u✝ v✝ a✝ b u v a : α
h : Disjoint u a ∧ v ≤ a
h' : ¬(Disjoint u ((a ⊔ u) \ v) ∧ v ≤ (a ⊔ u) \ v)
⊢ (a ⊔ u) \ v = (a ⊔ u) \ v

case neg
α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u✝ v✝ a✝ b u v a : α
h : ¬(Disjoint u a ∧ v ≤ a)
⊢ a = a

tactic: rw [le_sdiff_iff.1 h'.2, sdiff_bot, sdiff_bot, sup_assoc, sup_idem]
state_before: case pos
α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u✝ v✝ a✝ b u v a : α
h : Disjoint u a ∧ v ≤ a
h' : Disjoint u ((a ⊔ u) \ v) ∧ v ≤ (a ⊔ u) \ v
⊢ ((a ⊔ u) \ v ⊔ u) \ v = (a ⊔ u) \ v
state_after: no goals

tactic: rfl
state_before: case neg
α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u✝ v✝ a✝ b u v a : α
h : Disjoint u a ∧ v ≤ a
h' : ¬(Disjoint u ((a ⊔ u) \ v) ∧ v ≤ (a ⊔ u) \ v)
⊢ (a ⊔ u) \ v = (a ⊔ u) \ v
state_after: no goals

tactic: rfl
state_before: case neg
α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u✝ v✝ a✝ b u v a : α
h : ¬(Disjoint u a ∧ v ≤ a)
⊢ a = a
state_after: no goals