1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: LinearMap.lTensor_neg
File: Mathlib/LinearAlgebra/TensorProduct/Basic.lean

tactic: simp only [← coe_lTensorHom]
state_before: R : Type u_1
inst✝¹⁰ : CommSemiring R
M : Type u_2
N : Type u_3
P : Type u_4
Q : Type u_5
S : Type u_6
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup N
inst✝⁷ : AddCommGroup P
inst✝⁶ : AddCommGroup Q
inst✝⁵ : AddCommGroup S
inst✝⁴ : Module R M
inst✝³ : Module R N
inst✝² : Module R P
inst✝¹ : Module R Q
inst✝ : Module R S
f : N →ₗ[R] P
⊢ lTensor M (-f) = -lTensor M f
state_after: R : Type u_1
inst✝¹⁰ : CommSemiring R
M : Type u_2
N : Type u_3
P : Type u_4
Q : Type u_5
S : Type u_6
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup N
inst✝⁷ : AddCommGroup P
inst✝⁶ : AddCommGroup Q
inst✝⁵ : AddCommGroup S
inst✝⁴ : Module R M
inst✝³ : Module R N
inst✝² : Module R P
inst✝¹ : Module R Q
inst✝ : Module R S
f : N →ₗ[R] P
⊢ (lTensorHom M) (-f) = -(lTensorHom M) f

tactic: exact (lTensorHom (R := R) (N := N) (P := P) M).map_neg f
state_before: R : Type u_1
inst✝¹⁰ : CommSemiring R
M : Type u_2
N : Type u_3
P : Type u_4
Q : Type u_5
S : Type u_6
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup N
inst✝⁷ : AddCommGroup P
inst✝⁶ : AddCommGroup Q
inst✝⁵ : AddCommGroup S
inst✝⁴ : Module R M
inst✝³ : Module R N
inst✝² : Module R P
inst✝¹ : Module R Q
inst✝ : Module R S
f : N →ₗ[R] P
⊢ (lTensorHom M) (-f) = -(lTensorHom M) f
state_after: no goals
Theorem: IsCompact.elim_nhds_subcover_nhdsSet
File: Mathlib/Topology/Compactness/Compact.lean

tactic: rwa [Finset.set_biUnion_finset_image]
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t✝ : Set X
hs : IsCompact s
U : X → Set X
hU : ∀ x ∈ s, U x ∈ 𝓝 x
t : Finset ↑s
ht : ⋃ x ∈ t, U ↑x ∈ 𝓝ˢ s
⊢ ⋃ x ∈ Finset.image Subtype.val t, U x ∈ 𝓝ˢ s
state_after: no goals
Theorem: PartialEquiv.trans_refl_restr'
File: Mathlib/Logic/Equiv/PartialEquiv.lean

tactic: simp only [trans_source, restr_source, refl_source, univ_inter]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e' : PartialEquiv β γ
s : Set β
⊢ (e.trans ((PartialEquiv.refl β).restr s)).source = (e.restr (e.source ∩ ↑e ⁻¹' s)).source
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e' : PartialEquiv β γ
s : Set β
⊢ e.source ∩ ↑e ⁻¹' s = e.source ∩ (e.source ∩ ↑e ⁻¹' s)

tactic: rw [← inter_assoc, inter_self]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e' : PartialEquiv β γ
s : Set β
⊢ e.source ∩ ↑e ⁻¹' s = e.source ∩ (e.source ∩ ↑e ⁻¹' s)
state_after: no goals
Theorem: exists_norm_eq_iInf_of_complete_subspace
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: letI : InnerProductSpace ℝ E := InnerProductSpace.rclikeToReal 𝕜 E
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
h : IsComplete ↑K
⊢ ∀ (u : E), ∃ v ∈ K, ‖u - v‖ = ⨅ w, ‖u - ↑w‖
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
h : IsComplete ↑K
this : InnerProductSpace ℝ E := InnerProductSpace.rclikeToReal 𝕜 E
⊢ ∀ (u : E), ∃ v ∈ K, ‖u - v‖ = ⨅ w, ‖u - ↑w‖

tactic: letI : Module ℝ E := RestrictScalars.module ℝ 𝕜 E
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
h : IsComplete ↑K
this : InnerProductSpace ℝ E := InnerProductSpace.rclikeToReal 𝕜 E
⊢ ∀ (u : E), ∃ v ∈ K, ‖u - v‖ = ⨅ w, ‖u - ↑w‖
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
h : IsComplete ↑K
this✝ : InnerProductSpace ℝ E := InnerProductSpace.rclikeToReal 𝕜 E
this : Module ℝ E := RestrictScalars.module ℝ 𝕜 E
⊢ ∀ (u : E), ∃ v ∈ K, ‖u - v‖ = ⨅ w, ‖u - ↑w‖

tactic: let K' : Submodule ℝ E := Submodule.restrictScalars ℝ K
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
h : IsComplete ↑K
this✝ : InnerProductSpace ℝ E := InnerProductSpace.rclikeToReal 𝕜 E
this : Module ℝ E := RestrictScalars.module ℝ 𝕜 E
⊢ ∀ (u : E), ∃ v ∈ K, ‖u - v‖ = ⨅ w, ‖u - ↑w‖
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
h : IsComplete ↑K
this✝ : InnerProductSpace ℝ E := InnerProductSpace.rclikeToReal 𝕜 E
this : Module ℝ E := RestrictScalars.module ℝ 𝕜 E
K' : Submodule ℝ E := Submodule.restrictScalars ℝ K
⊢ ∀ (u : E), ∃ v ∈ K, ‖u - v‖ = ⨅ w, ‖u - ↑w‖

tactic: exact exists_norm_eq_iInf_of_complete_convex ⟨0, K'.zero_mem⟩ h K'.convex
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
h : IsComplete ↑K
this✝ : InnerProductSpace ℝ E := InnerProductSpace.rclikeToReal 𝕜 E
this : Module ℝ E := RestrictScalars.module ℝ 𝕜 E
K' : Submodule ℝ E := Submodule.restrictScalars ℝ K
⊢ ∀ (u : E), ∃ v ∈ K, ‖u - v‖ = ⨅ w, ‖u - ↑w‖
state_after: no goals
Theorem: AddTorsor.subsingleton_iff
File: Mathlib/Algebra/AddTorsor.lean

tactic: inhabit P
state_before: G : Type u_1
P : Type u_2
inst✝¹ : AddGroup G
inst✝ : AddTorsor G P
⊢ Subsingleton G ↔ Subsingleton P
state_after: G : Type u_1
P : Type u_2
inst✝¹ : AddGroup G
inst✝ : AddTorsor G P
inhabited_h : Inhabited P
⊢ Subsingleton G ↔ Subsingleton P

tactic: exact (Equiv.vaddConst default).subsingleton_congr
state_before: G : Type u_1
P : Type u_2
inst✝¹ : AddGroup G
inst✝ : AddTorsor G P
inhabited_h : Inhabited P
⊢ Subsingleton G ↔ Subsingleton P
state_after: no goals
Theorem: WithZeroTopology.hasBasis_nhds_zero
File: Mathlib/Topology/Algebra/WithZeroTopology.lean

tactic: rw [nhds_zero]
state_before: α : Type u_1
Γ₀ : Type u_2
inst✝ : LinearOrderedCommGroupWithZero Γ₀
γ γ₁ γ₂ : Γ₀
l : Filter α
f : α → Γ₀
⊢ (𝓝 0).HasBasis (fun γ => γ ≠ 0) Iio
state_after: α : Type u_1
Γ₀ : Type u_2
inst✝ : LinearOrderedCommGroupWithZero Γ₀
γ γ₁ γ₂ : Γ₀
l : Filter α
f : α → Γ₀
⊢ (⨅ γ, ⨅ (_ : γ ≠ 0), 𝓟 (Iio γ)).HasBasis (fun γ => γ ≠ 0) Iio

tactic: refine hasBasis_biInf_principal ?_ ⟨1, one_ne_zero⟩
state_before: α : Type u_1
Γ₀ : Type u_2
inst✝ : LinearOrderedCommGroupWithZero Γ₀
γ γ₁ γ₂ : Γ₀
l : Filter α
f : α → Γ₀
⊢ (⨅ γ, ⨅ (_ : γ ≠ 0), 𝓟 (Iio γ)).HasBasis (fun γ => γ ≠ 0) Iio
state_after: α : Type u_1
Γ₀ : Type u_2
inst✝ : LinearOrderedCommGroupWithZero Γ₀
γ γ₁ γ₂ : Γ₀
l : Filter α
f : α → Γ₀
⊢ DirectedOn (Iio ⁻¹'o fun x x_1 => x ≥ x_1) fun γ => γ = 0 → False

tactic: exact directedOn_iff_directed.2 (Monotone.directed_ge fun a b hab => Iio_subset_Iio hab)
state_before: α : Type u_1
Γ₀ : Type u_2
inst✝ : LinearOrderedCommGroupWithZero Γ₀
γ γ₁ γ₂ : Γ₀
l : Filter α
f : α → Γ₀
⊢ DirectedOn (Iio ⁻¹'o fun x x_1 => x ≥ x_1) fun γ => γ = 0 → False
state_after: no goals
Theorem: NonarchAddGroupSeminorm.add_bddBelow_range_add
File: Mathlib/Analysis/Normed/Group/Seminorm.lean

tactic: rintro _ ⟨x, rfl⟩
state_before: ι : Type u_1
R : Type u_2
R' : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
inst✝² : FunLike F E ℝ
inst✝¹ : AddCommGroup E
inst✝ : AddCommGroup F
p✝ q✝ : NonarchAddGroupSeminorm E
x✝ y : E
p q : NonarchAddGroupSeminorm E
x : E
⊢ 0 ∈ lowerBounds (range fun y => p y + q (x - y))
state_after: case intro
ι : Type u_1
R : Type u_2
R' : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
inst✝² : FunLike F E ℝ
inst✝¹ : AddCommGroup E
inst✝ : AddCommGroup F
p✝ q✝ : NonarchAddGroupSeminorm E
x✝¹ y : E
p q : NonarchAddGroupSeminorm E
x✝ x : E
⊢ 0 ≤ (fun y => p y + q (x✝ - y)) x

tactic: dsimp
state_before: case intro
ι : Type u_1
R : Type u_2
R' : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
inst✝² : FunLike F E ℝ
inst✝¹ : AddCommGroup E
inst✝ : AddCommGroup F
p✝ q✝ : NonarchAddGroupSeminorm E
x✝¹ y : E
p q : NonarchAddGroupSeminorm E
x✝ x : E
⊢ 0 ≤ (fun y => p y + q (x✝ - y)) x
state_after: case intro
ι : Type u_1
R : Type u_2
R' : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
inst✝² : FunLike F E ℝ
inst✝¹ : AddCommGroup E
inst✝ : AddCommGroup F
p✝ q✝ : NonarchAddGroupSeminorm E
x✝¹ y : E
p q : NonarchAddGroupSeminorm E
x✝ x : E
⊢ 0 ≤ p x + q (x✝ - x)

tactic: positivity
state_before: case intro
ι : Type u_1
R : Type u_2
R' : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
inst✝² : FunLike F E ℝ
inst✝¹ : AddCommGroup E
inst✝ : AddCommGroup F
p✝ q✝ : NonarchAddGroupSeminorm E
x✝¹ y : E
p q : NonarchAddGroupSeminorm E
x✝ x : E
⊢ 0 ≤ p x + q (x✝ - x)
state_after: no goals
Theorem: EuclideanGeometry.reflection_orthogonal_vadd
File: Mathlib/Geometry/Euclidean/Basic.lean

tactic: rw [reflection_apply, orthogonalProjection_vadd_eq_self hp hv, vsub_vadd_eq_vsub_sub]
state_before: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty ↥s
inst✝ : HasOrthogonalProjection s.direction
p : P
hp : p ∈ s
v : V
hv : v ∈ s.directionᗮ
⊢ (reflection s) (v +ᵥ p) = -v +ᵥ p
state_after: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty ↥s
inst✝ : HasOrthogonalProjection s.direction
p : P
hp : p ∈ s
v : V
hv : v ∈ s.directionᗮ
⊢ ↑⟨p, hp⟩ -ᵥ p - v +ᵥ ↑⟨p, hp⟩ = -v +ᵥ p

tactic: simp
state_before: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty ↥s
inst✝ : HasOrthogonalProjection s.direction
p : P
hp : p ∈ s
v : V
hv : v ∈ s.directionᗮ
⊢ ↑⟨p, hp⟩ -ᵥ p - v +ᵥ ↑⟨p, hp⟩ = -v +ᵥ p
state_after: no goals
Theorem: GeneralizedContinuedFraction.coe_of_rat_eq
File: Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean

tactic: cases' gcf_v_eq : of v with h s
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
q : ℚ
v_eq_q : v = ↑q
n : ℕ
⊢ { h := ↑(of q).h, s := Stream'.Seq.map (Pair.map Rat.cast) (of q).s } = of v
state_after: case mk
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
q : ℚ
v_eq_q : v = ↑q
n : ℕ
h : K
s : Stream'.Seq (Pair K)
gcf_v_eq : of v = { h := h, s := s }
⊢ { h := ↑(of q).h, s := Stream'.Seq.map (Pair.map Rat.cast) (of q).s } = { h := h, s := s }

tactic: subst v
state_before: case mk
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
q : ℚ
v_eq_q : v = ↑q
n : ℕ
h : K
s : Stream'.Seq (Pair K)
gcf_v_eq : of v = { h := h, s := s }
⊢ { h := ↑(of q).h, s := Stream'.Seq.map (Pair.map Rat.cast) (of q).s } = { h := h, s := s }
state_after: case mk
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
q : ℚ
n : ℕ
h : K
s : Stream'.Seq (Pair K)
gcf_v_eq : of ↑q = { h := h, s := s }
⊢ { h := ↑(of q).h, s := Stream'.Seq.map (Pair.map Rat.cast) (of q).s } = { h := h, s := s }

tactic: obtain rfl : ↑⌊(q : K)⌋ = h := by injection gcf_v_eq
state_before: case mk
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
q : ℚ
n : ℕ
h : K
s : Stream'.Seq (Pair K)
gcf_v_eq : of ↑q = { h := h, s := s }
⊢ { h := ↑(of q).h, s := Stream'.Seq.map (Pair.map Rat.cast) (of q).s } = { h := h, s := s }
state_after: case mk
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
q : ℚ
n : ℕ
s : Stream'.Seq (Pair K)
gcf_v_eq : of ↑q = { h := ↑⌊↑q⌋, s := s }
⊢ { h := ↑(of q).h, s := Stream'.Seq.map (Pair.map Rat.cast) (of q).s } = { h := ↑⌊↑q⌋, s := s }

tactic: simp only [gcf_v_eq, Int.cast_inj, Rat.floor_cast, of_h_eq_floor, eq_self_iff_true,
  Rat.cast_intCast, and_self, coe_of_h_rat_eq rfl, coe_of_s_rat_eq rfl]
state_before: case mk
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
q : ℚ
n : ℕ
s : Stream'.Seq (Pair K)
gcf_v_eq : of ↑q = { h := ↑⌊↑q⌋, s := s }
⊢ { h := ↑(of q).h, s := Stream'.Seq.map (Pair.map Rat.cast) (of q).s } = { h := ↑⌊↑q⌋, s := s }
state_after: no goals

tactic: injection gcf_v_eq
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
q : ℚ
n : ℕ
h : K
s : Stream'.Seq (Pair K)
gcf_v_eq : of ↑q = { h := h, s := s }
⊢ ↑⌊↑q⌋ = h
state_after: no goals
Theorem: Convex.lipschitzWith_gauge
File: Mathlib/Analysis/Convex/Gauge.lean

tactic: simp
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s : Set E
r✝ : ℝ
x✝ : E
r : ℝ≥0
hc : Convex ℝ s
hr : 0 < r
hs : ball 0 ↑r ⊆ s
this : Absorbent ℝ (ball 0 ↑r)
x y : E
⊢ gauge s x = gauge s (y + (x - y))
state_after: no goals

tactic: rw [dist_eq_norm, div_eq_inv_mul, NNReal.coe_inv]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s : Set E
r✝ : ℝ
x✝ : E
r : ℝ≥0
hc : Convex ℝ s
hr : 0 < r
hs : ball 0 ↑r ⊆ s
this : Absorbent ℝ (ball 0 ↑r)
x y : E
⊢ gauge s y + ‖x - y‖ / ↑r = gauge s y + ↑r⁻¹ * dist x y
state_after: no goals
Theorem: LinearEquiv.lTensor_pow
File: Mathlib/LinearAlgebra/TensorProduct/Basic.lean

tactic: simpa only [one_pow] using TensorProduct.congr_pow (1 : M ≃ₗ[R] M) f n
state_before: R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type u_2
inst✝¹⁵ : Monoid R'
R'' : Type u_3
inst✝¹⁴ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : AddCommMonoid T
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Module R S
inst✝² : Module R T
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
g : P ≃ₗ[R] Q
f✝ : N ≃ₗ[R] P
m : M
n✝ : N
p : P
x : M ⊗[R] N
y : N ⊗[R] M
f : N ≃ₗ[R] N
n : ℕ
⊢ lTensor M f ^ n = lTensor M (f ^ n)
state_after: no goals
Theorem: MeasureTheory.lintegral_rw₁
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: dsimp only
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f f' : α → β
h✝ : f =ᶠ[ae μ] f'
g : β → ℝ≥0∞
a : α
h : f a = f' a
⊢ (fun a => g (f a)) a = (fun a => g (f' a)) a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f f' : α → β
h✝ : f =ᶠ[ae μ] f'
g : β → ℝ≥0∞
a : α
h : f a = f' a
⊢ g (f a) = g (f' a)

tactic: rw [h]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f f' : α → β
h✝ : f =ᶠ[ae μ] f'
g : β → ℝ≥0∞
a : α
h : f a = f' a
⊢ g (f a) = g (f' a)
state_after: no goals
Theorem: CategoryTheory.Limits.colimitHomIsoLimitYoneda_inv_comp_π
File: Mathlib/CategoryTheory/Limits/IndYoneda.lean

tactic: rw [← colimitHomIsoLimitYoneda_hom_comp_π, ← Category.assoc,
  Iso.inv_hom_id, Category.id_comp]
state_before: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
I : Type v₁
inst✝² : Category.{v₂, v₁} I
F : I ⥤ C
inst✝¹ : HasColimit F
inst✝ : HasLimitsOfShape Iᵒᵖ (Type u₂)
A : C
i : I
⊢ (colimitHomIsoLimitYoneda F A).inv ≫ (coyoneda.map (colimit.ι F i).op).app A =
    limit.π (F.op ⋙ yoneda.obj A) { unop := i }
state_after: no goals
Theorem: Down.compression_idem
File: Mathlib/Combinatorics/SetFamily/Compression/Down.lean

tactic: ext s
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
⊢ 𝓓 a (𝓓 a 𝒜) = 𝓓 a 𝒜
state_after: case a
α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s✝ : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
s : Finset α
⊢ s ∈ 𝓓 a (𝓓 a 𝒜) ↔ s ∈ 𝓓 a 𝒜

tactic: refine mem_compression.trans ⟨?_, fun h => Or.inl ⟨h, erase_mem_compression_of_mem_compression h⟩⟩
state_before: case a
α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s✝ : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
s : Finset α
⊢ s ∈ 𝓓 a (𝓓 a 𝒜) ↔ s ∈ 𝓓 a 𝒜
state_after: case a
α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s✝ : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
s : Finset α
⊢ s ∈ 𝓓 a 𝒜 ∧ s.erase a ∈ 𝓓 a 𝒜 ∨ s ∉ 𝓓 a 𝒜 ∧ insert a s ∈ 𝓓 a 𝒜 → s ∈ 𝓓 a 𝒜

tactic: rintro (h | h)
state_before: case a
α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s✝ : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
s : Finset α
⊢ s ∈ 𝓓 a 𝒜 ∧ s.erase a ∈ 𝓓 a 𝒜 ∨ s ∉ 𝓓 a 𝒜 ∧ insert a s ∈ 𝓓 a 𝒜 → s ∈ 𝓓 a 𝒜
state_after: case a.inl
α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s✝ : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
s : Finset α
h : s ∈ 𝓓 a 𝒜 ∧ s.erase a ∈ 𝓓 a 𝒜
⊢ s ∈ 𝓓 a 𝒜

case a.inr
α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s✝ : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
s : Finset α
h : s ∉ 𝓓 a 𝒜 ∧ insert a s ∈ 𝓓 a 𝒜
⊢ s ∈ 𝓓 a 𝒜

tactic: exact h.1
state_before: case a.inl
α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s✝ : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
s : Finset α
h : s ∈ 𝓓 a 𝒜 ∧ s.erase a ∈ 𝓓 a 𝒜
⊢ s ∈ 𝓓 a 𝒜
state_after: no goals

tactic: cases h.1 (mem_compression_of_insert_mem_compression h.2)
state_before: case a.inr
α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s✝ : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
s : Finset α
h : s ∉ 𝓓 a 𝒜 ∧ insert a s ∈ 𝓓 a 𝒜
⊢ s ∈ 𝓓 a 𝒜
state_after: no goals
Theorem: max_mul_mul_le_max_mul_max
File: Mathlib/Algebra/Order/Ring/Defs.lean

tactic: simpa [mul_comm, max_comm] using ba
state_before: α : Type u
β : Type u_1
inst✝ : LinearOrderedCommSemiring α
a b✝ c✝ d b c : α
ha : 0 ≤ a
hd : 0 ≤ d
ba : b * a ≤ max d b * max c a
cd : c * d ≤ max a c * max b d
⊢ a * b ≤ max a c * max d b
state_after: no goals

tactic: simpa [mul_comm, max_comm] using cd
state_before: α : Type u
β : Type u_1
inst✝ : LinearOrderedCommSemiring α
a b✝ c✝ d b c : α
ha : 0 ≤ a
hd : 0 ≤ d
ba : b * a ≤ max d b * max c a
cd : c * d ≤ max a c * max b d
⊢ d * c ≤ max a c * max d b
state_after: no goals
Theorem: MvPolynomial.finSuccEquiv_X_succ
File: Mathlib/Algebra/MvPolynomial/Equiv.lean

tactic: simp
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
j : Fin n
⊢ (finSuccEquiv R n) (X j.succ) = Polynomial.C (X j)
state_after: no goals
Theorem: ProbabilityTheory.mgf_zero_measure
File: Mathlib/Probability/Moments.lean

tactic: simp only [mgf, integral_zero_measure]
state_before: Ω : Type u_1
ι : Type u_2
m : MeasurableSpace Ω
X : Ω → ℝ
p : ℕ
μ : Measure Ω
t : ℝ
⊢ mgf X 0 t = 0
state_after: no goals
Theorem: Nat.minFac_eq_one_iff
File: Mathlib/Data/Nat/Prime.lean

tactic: constructor
state_before: n✝ n : ℕ
⊢ n.minFac = 1 ↔ n = 1
state_after: case mp
n✝ n : ℕ
⊢ n.minFac = 1 → n = 1

case mpr
n✝ n : ℕ
⊢ n = 1 → n.minFac = 1

tactic: intro h
state_before: case mp
n✝ n : ℕ
⊢ n.minFac = 1 → n = 1
state_after: case mp
n✝ n : ℕ
h : n.minFac = 1
⊢ n = 1

tactic: by_contra hn
state_before: case mp
n✝ n : ℕ
h : n.minFac = 1
⊢ n = 1
state_after: case mp
n✝ n : ℕ
h : n.minFac = 1
hn : ¬n = 1
⊢ False

tactic: have := minFac_prime hn
state_before: case mp
n✝ n : ℕ
h : n.minFac = 1
hn : ¬n = 1
⊢ False
state_after: case mp
n✝ n : ℕ
h : n.minFac = 1
hn : ¬n = 1
this : Prime n.minFac
⊢ False

tactic: rw [h] at this
state_before: case mp
n✝ n : ℕ
h : n.minFac = 1
hn : ¬n = 1
this : Prime n.minFac
⊢ False
state_after: case mp
n✝ n : ℕ
h : n.minFac = 1
hn : ¬n = 1
this : Prime 1
⊢ False

tactic: exact not_prime_one this
state_before: case mp
n✝ n : ℕ
h : n.minFac = 1
hn : ¬n = 1
this : Prime 1
⊢ False
state_after: no goals

tactic: rintro rfl
state_before: case mpr
n✝ n : ℕ
⊢ n = 1 → n.minFac = 1
state_after: case mpr
n : ℕ
⊢ minFac 1 = 1

tactic: rfl
state_before: case mpr
n : ℕ
⊢ minFac 1 = 1
state_after: no goals
Theorem: MvPolynomial.constantCoeff_X
File: Mathlib/Algebra/MvPolynomial/Basic.lean

tactic: simp [constantCoeff_eq]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p q : MvPolynomial σ R
i : σ
⊢ constantCoeff (X i) = 0
state_after: no goals
Theorem: List.sublists'_map
File: Mathlib/Data/List/Sublists.lean

tactic: simp
state_before: α : Type u
β : Type v
γ : Type w
f : α → β
⊢ (map f []).sublists' = map (map f) [].sublists'
state_after: no goals

tactic: simp [map_cons, sublists'_cons, sublists'_map f l, Function.comp]
state_before: α : Type u
β : Type v
γ : Type w
f : α → β
a : α
l : List α
⊢ (map f (a :: l)).sublists' = map (map f) (a :: l).sublists'
state_after: no goals
Theorem: Real.summable_pow_mul_exp_neg_nat_mul
File: Mathlib/Analysis/SpecialFunctions/Exp.lean

tactic: simp_rw [mul_comm (-r), exp_nat_mul]
state_before: α : Type u_1
x y z : ℝ
l : Filter α
k : ℕ
r : ℝ
hr : 0 < r
⊢ Summable fun n => ↑n ^ k * rexp (-r * ↑n)
state_after: α : Type u_1
x y z : ℝ
l : Filter α
k : ℕ
r : ℝ
hr : 0 < r
⊢ Summable fun n => ↑n ^ k * rexp (-r) ^ n

tactic: apply summable_pow_mul_geometric_of_norm_lt_one
state_before: α : Type u_1
x y z : ℝ
l : Filter α
k : ℕ
r : ℝ
hr : 0 < r
⊢ Summable fun n => ↑n ^ k * rexp (-r) ^ n
state_after: case hr
α : Type u_1
x y z : ℝ
l : Filter α
k : ℕ
r : ℝ
hr : 0 < r
⊢ ‖rexp (-r)‖ < 1

tactic: rwa [norm_of_nonneg (exp_nonneg _), exp_lt_one_iff, neg_lt_zero]
state_before: case hr
α : Type u_1
x y z : ℝ
l : Filter α
k : ℕ
r : ℝ
hr : 0 < r
⊢ ‖rexp (-r)‖ < 1
state_after: no goals
Theorem: UpperSet.mem_iSup_iff
File: Mathlib/Order/UpperLower/Basic.lean

tactic: rw [← SetLike.mem_coe, coe_iSup]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝ : LE α
S : Set (UpperSet α)
s t : UpperSet α
a : α
f : ι → UpperSet α
⊢ a ∈ ⨆ i, f i ↔ ∀ (i : ι), a ∈ f i
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝ : LE α
S : Set (UpperSet α)
s t : UpperSet α
a : α
f : ι → UpperSet α
⊢ a ∈ ⋂ i, ↑(f i) ↔ ∀ (i : ι), a ∈ f i

tactic: exact mem_iInter
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝ : LE α
S : Set (UpperSet α)
s t : UpperSet α
a : α
f : ι → UpperSet α
⊢ a ∈ ⋂ i, ↑(f i) ↔ ∀ (i : ι), a ∈ f i
state_after: no goals
Theorem: Set.image_subtype_val_Ico
File: Mathlib/Order/Interval/Set/OrdConnected.lean

tactic: simpa
state_before: α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : Preorder β
s✝ t s : Set α
inst✝ : s.OrdConnected
x y : ↑s
⊢ (range ⇑(OrderEmbedding.subtype fun x => x ∈ s)).OrdConnected
state_after: no goals
Theorem: Submonoid.closure_singleton_le_iff_mem
File: Mathlib/Algebra/Group/Submonoid/Basic.lean

tactic: rw [closure_le, singleton_subset_iff, SetLike.mem_coe]
state_before: M : Type u_1
N : Type u_2
A : Type u_3
inst✝¹ : MulOneClass M
s : Set M
inst✝ : AddZeroClass A
t : Set A
S : Submonoid M
m : M
p : Submonoid M
⊢ closure {m} ≤ p ↔ m ∈ p
state_after: no goals
Theorem: CliffordAlgebraRing.reverse_apply
File: Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean

tactic: induction x using CliffordAlgebra.induction with
| algebraMap r => exact reverse.commutes _
| ι x => rw [ι_eq_zero, LinearMap.zero_apply, reverse.map_zero]
| mul x₁ x₂ hx₁ hx₂ => rw [reverse.map_mul, mul_comm, hx₁, hx₂]
| add x₁ x₂ hx₁ hx₂ => rw [reverse.map_add, hx₁, hx₂]
state_before: R : Type u_1
inst✝ : CommRing R
x : CliffordAlgebra 0
⊢ reverse x = x
state_after: no goals

tactic: exact reverse.commutes _
state_before: case algebraMap
R : Type u_1
inst✝ : CommRing R
r : R
⊢ reverse ((algebraMap R (CliffordAlgebra 0)) r) = (algebraMap R (CliffordAlgebra 0)) r
state_after: no goals

tactic: rw [ι_eq_zero, LinearMap.zero_apply, reverse.map_zero]
state_before: case ι
R : Type u_1
inst✝ : CommRing R
x : Unit
⊢ reverse ((ι 0) x) = (ι 0) x
state_after: no goals

tactic: rw [reverse.map_mul, mul_comm, hx₁, hx₂]
state_before: case mul
R : Type u_1
inst✝ : CommRing R
x₁ x₂ : CliffordAlgebra 0
hx₁ : reverse x₁ = x₁
hx₂ : reverse x₂ = x₂
⊢ reverse (x₁ * x₂) = x₁ * x₂
state_after: no goals

tactic: rw [reverse.map_add, hx₁, hx₂]
state_before: case add
R : Type u_1
inst✝ : CommRing R
x₁ x₂ : CliffordAlgebra 0
hx₁ : reverse x₁ = x₁
hx₂ : reverse x₂ = x₂
⊢ reverse (x₁ + x₂) = x₁ + x₂
state_after: no goals