1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: List.rotate_cons_succ
File: Mathlib/Data/List/Rotate.lean

tactic: rw [rotate_eq_rotate', rotate_eq_rotate', rotate'_cons_succ]
state_before: α : Type u
l : List α
a : α
n : ℕ
⊢ (a :: l).rotate (n + 1) = (l ++ [a]).rotate n
state_after: no goals
Theorem: MonovaryOn.sum_comp_perm_smul_le_sum_smul
File: Mathlib/Algebra/Order/Rearrangement.lean

tactic: convert hfg.sum_smul_comp_perm_le_sum_smul
  (show { x | σ⁻¹ x ≠ x } ⊆ s by simp only [set_support_inv_eq, hσ]) using 1
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝³ : LinearOrderedRing α
inst✝² : LinearOrderedAddCommGroup β
inst✝¹ : Module α β
inst✝ : OrderedSMul α β
s : Finset ι
σ : Perm ι
f : ι → α
g : ι → β
hfg : MonovaryOn f g ↑s
hσ : {x | σ x ≠ x} ⊆ ↑s
⊢ ∑ i ∈ s, f (σ i) • g i ≤ ∑ i ∈ s, f i • g i
state_after: case h.e'_3
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝³ : LinearOrderedRing α
inst✝² : LinearOrderedAddCommGroup β
inst✝¹ : Module α β
inst✝ : OrderedSMul α β
s : Finset ι
σ : Perm ι
f : ι → α
g : ι → β
hfg : MonovaryOn f g ↑s
hσ : {x | σ x ≠ x} ⊆ ↑s
⊢ ∑ i ∈ s, f (σ i) • g i = ∑ i ∈ s, f i • g (σ⁻¹ i)

tactic: exact σ.sum_comp' s (fun i j ↦ f i • g j) hσ
state_before: case h.e'_3
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝³ : LinearOrderedRing α
inst✝² : LinearOrderedAddCommGroup β
inst✝¹ : Module α β
inst✝ : OrderedSMul α β
s : Finset ι
σ : Perm ι
f : ι → α
g : ι → β
hfg : MonovaryOn f g ↑s
hσ : {x | σ x ≠ x} ⊆ ↑s
⊢ ∑ i ∈ s, f (σ i) • g i = ∑ i ∈ s, f i • g (σ⁻¹ i)
state_after: no goals

tactic: simp only [set_support_inv_eq, hσ]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝³ : LinearOrderedRing α
inst✝² : LinearOrderedAddCommGroup β
inst✝¹ : Module α β
inst✝ : OrderedSMul α β
s : Finset ι
σ : Perm ι
f : ι → α
g : ι → β
hfg : MonovaryOn f g ↑s
hσ : {x | σ x ≠ x} ⊆ ↑s
⊢ {x | σ⁻¹ x ≠ x} ⊆ ↑s
state_after: no goals
Theorem: Ordinal.zero_mod
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: simp only [mod_def, zero_div, mul_zero, sub_self]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
b : Ordinal.{u_4}
⊢ 0 % b = 0
state_after: no goals
Theorem: Polynomial.span_le_degreeLE_of_finite
File: Mathlib/RingTheory/Polynomial/Basic.lean

tactic: by_cases s_emp : s.Nonempty
state_before: R : Type u
S : Type u_1
inst✝ : Semiring R
s : Set R[X]
s_fin : s.Finite
⊢ ∃ n, Submodule.span R s ≤ degreeLE R ↑n
state_after: case pos
R : Type u
S : Type u_1
inst✝ : Semiring R
s : Set R[X]
s_fin : s.Finite
s_emp : s.Nonempty
⊢ ∃ n, Submodule.span R s ≤ degreeLE R ↑n

case neg
R : Type u
S : Type u_1
inst✝ : Semiring R
s : Set R[X]
s_fin : s.Finite
s_emp : ¬s.Nonempty
⊢ ∃ n, Submodule.span R s ≤ degreeLE R ↑n

tactic: rcases exists_degree_le_of_mem_span_of_finite s_fin s_emp with ⟨p', _, hp'max⟩
state_before: case pos
R : Type u
S : Type u_1
inst✝ : Semiring R
s : Set R[X]
s_fin : s.Finite
s_emp : s.Nonempty
⊢ ∃ n, Submodule.span R s ≤ degreeLE R ↑n
state_after: case pos.intro.intro
R : Type u
S : Type u_1
inst✝ : Semiring R
s : Set R[X]
s_fin : s.Finite
s_emp : s.Nonempty
p' : R[X]
left✝ : p' ∈ s
hp'max : ∀ p ∈ Submodule.span R s, p.degree ≤ p'.degree
⊢ ∃ n, Submodule.span R s ≤ degreeLE R ↑n

tactic: exact ⟨natDegree p', fun p hp => mem_degreeLE.mpr ((hp'max _ hp).trans degree_le_natDegree)⟩
state_before: case pos.intro.intro
R : Type u
S : Type u_1
inst✝ : Semiring R
s : Set R[X]
s_fin : s.Finite
s_emp : s.Nonempty
p' : R[X]
left✝ : p' ∈ s
hp'max : ∀ p ∈ Submodule.span R s, p.degree ≤ p'.degree
⊢ ∃ n, Submodule.span R s ≤ degreeLE R ↑n
state_after: no goals

tactic: rw [Set.not_nonempty_iff_eq_empty] at s_emp
state_before: case neg
R : Type u
S : Type u_1
inst✝ : Semiring R
s : Set R[X]
s_fin : s.Finite
s_emp : ¬s.Nonempty
⊢ ∃ n, Submodule.span R s ≤ degreeLE R ↑n
state_after: case neg
R : Type u
S : Type u_1
inst✝ : Semiring R
s : Set R[X]
s_fin : s.Finite
s_emp : s = ∅
⊢ ∃ n, Submodule.span R s ≤ degreeLE R ↑n

tactic: rw [s_emp, Submodule.span_empty]
state_before: case neg
R : Type u
S : Type u_1
inst✝ : Semiring R
s : Set R[X]
s_fin : s.Finite
s_emp : s = ∅
⊢ ∃ n, Submodule.span R s ≤ degreeLE R ↑n
state_after: case neg
R : Type u
S : Type u_1
inst✝ : Semiring R
s : Set R[X]
s_fin : s.Finite
s_emp : s = ∅
⊢ ∃ n, ⊥ ≤ degreeLE R ↑n

tactic: exact ⟨0, bot_le⟩
state_before: case neg
R : Type u
S : Type u_1
inst✝ : Semiring R
s : Set R[X]
s_fin : s.Finite
s_emp : s = ∅
⊢ ∃ n, ⊥ ≤ degreeLE R ↑n
state_after: no goals
Theorem: MeasureTheory.eventually_mul_left_iff
File: Mathlib/MeasureTheory/Group/Measure.lean

tactic: conv_rhs => rw [Filter.Eventually, ← map_mul_left_ae μ t]
state_before: 𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace H
inst✝² : Group G
inst✝¹ : MeasurableMul G
μ : Measure G
inst✝ : μ.IsMulLeftInvariant
t : G
p : G → Prop
⊢ (∀ᵐ (x : G) ∂μ, p (t * x)) ↔ ∀ᵐ (x : G) ∂μ, p x
state_after: 𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace H
inst✝² : Group G
inst✝¹ : MeasurableMul G
μ : Measure G
inst✝ : μ.IsMulLeftInvariant
t : G
p : G → Prop
⊢ (∀ᵐ (x : G) ∂μ, p (t * x)) ↔ {x | p x} ∈ Filter.map (fun h => t * h) (ae μ)

tactic: rfl
state_before: 𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace H
inst✝² : Group G
inst✝¹ : MeasurableMul G
μ : Measure G
inst✝ : μ.IsMulLeftInvariant
t : G
p : G → Prop
⊢ (∀ᵐ (x : G) ∂μ, p (t * x)) ↔ {x | p x} ∈ Filter.map (fun h => t * h) (ae μ)
state_after: no goals
Theorem: nhds_pi
File: Mathlib/Topology/Constructions.lean

tactic: simp only [nhds_iInf, nhds_induced, Filter.pi]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
ι : Type u_5
π : ι → Type u_6
κ : Type u_7
inst✝ : TopologicalSpace X
T : (i : ι) → TopologicalSpace (π i)
f : X → (i : ι) → π i
a : (i : ι) → π i
⊢ 𝓝 a = Filter.pi fun i => 𝓝 (a i)
state_after: no goals
Theorem: map_comp_zpow'
File: Mathlib/Algebra/Group/Hom/Defs.lean

tactic: ext
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
H : Type u_8
F : Type u_9
inst✝⁶ : MulOneClass M
inst✝⁵ : MulOneClass N
inst✝⁴ : FunLike F M N
inst✝³ : FunLike F G H
inst✝² : DivInvMonoid G
inst✝¹ : DivInvMonoid H
inst✝ : MonoidHomClass F G H
f : F
hf : ∀ (x : G), f x⁻¹ = (f x)⁻¹
g : ι → G
n : ℤ
⊢ ⇑f ∘ (g ^ n) = ⇑f ∘ g ^ n
state_after: case h
ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
H : Type u_8
F : Type u_9
inst✝⁶ : MulOneClass M
inst✝⁵ : MulOneClass N
inst✝⁴ : FunLike F M N
inst✝³ : FunLike F G H
inst✝² : DivInvMonoid G
inst✝¹ : DivInvMonoid H
inst✝ : MonoidHomClass F G H
f : F
hf : ∀ (x : G), f x⁻¹ = (f x)⁻¹
g : ι → G
n : ℤ
x✝ : ι
⊢ (⇑f ∘ (g ^ n)) x✝ = (⇑f ∘ g ^ n) x✝

tactic: simp [map_zpow' f hf]
state_before: case h
ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
H : Type u_8
F : Type u_9
inst✝⁶ : MulOneClass M
inst✝⁵ : MulOneClass N
inst✝⁴ : FunLike F M N
inst✝³ : FunLike F G H
inst✝² : DivInvMonoid G
inst✝¹ : DivInvMonoid H
inst✝ : MonoidHomClass F G H
f : F
hf : ∀ (x : G), f x⁻¹ = (f x)⁻¹
g : ι → G
n : ℤ
x✝ : ι
⊢ (⇑f ∘ (g ^ n)) x✝ = (⇑f ∘ g ^ n) x✝
state_after: no goals
Theorem: Filter.eventuallyConst_atTop_nat
File: Mathlib/Order/Filter/EventuallyConst.lean

tactic: rw [eventuallyConst_atTop]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
l : Filter α
f✝ : α → β
f : ℕ → α
⊢ EventuallyConst f atTop ↔ ∃ n, ∀ (m : ℕ), n ≤ m → f (m + 1) = f m
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
l : Filter α
f✝ : α → β
f : ℕ → α
⊢ (∃ i, ∀ (j : ℕ), i ≤ j → f j = f i) ↔ ∃ n, ∀ (m : ℕ), n ≤ m → f (m + 1) = f m

tactic: refine exists_congr fun n ↦ ⟨fun h m hm ↦ ?_, fun h m hm ↦ ?_⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
l : Filter α
f✝ : α → β
f : ℕ → α
⊢ (∃ i, ∀ (j : ℕ), i ≤ j → f j = f i) ↔ ∃ n, ∀ (m : ℕ), n ≤ m → f (m + 1) = f m
state_after: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
l : Filter α
f✝ : α → β
f : ℕ → α
n : ℕ
h : ∀ (j : ℕ), n ≤ j → f j = f n
m : ℕ
hm : n ≤ m
⊢ f (m + 1) = f m

case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
l : Filter α
f✝ : α → β
f : ℕ → α
n : ℕ
h : ∀ (m : ℕ), n ≤ m → f (m + 1) = f m
m : ℕ
hm : n ≤ m
⊢ f m = f n

tactic: exact (h (m + 1) (hm.trans m.le_succ)).trans (h m hm).symm
state_before: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
l : Filter α
f✝ : α → β
f : ℕ → α
n : ℕ
h : ∀ (j : ℕ), n ≤ j → f j = f n
m : ℕ
hm : n ≤ m
⊢ f (m + 1) = f m
state_after: no goals

tactic: induction m, hm using Nat.le_induction with
| base => rfl
| succ m hm ihm => exact (h m hm).trans ihm
state_before: case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
l : Filter α
f✝ : α → β
f : ℕ → α
n : ℕ
h : ∀ (m : ℕ), n ≤ m → f (m + 1) = f m
m : ℕ
hm : n ≤ m
⊢ f m = f n
state_after: no goals

tactic: rfl
state_before: case refine_2.base
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
l : Filter α
f✝ : α → β
f : ℕ → α
n : ℕ
h : ∀ (m : ℕ), n ≤ m → f (m + 1) = f m
m : ℕ
⊢ f n = f n
state_after: no goals

tactic: exact (h m hm).trans ihm
state_before: case refine_2.succ
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
l : Filter α
f✝ : α → β
f : ℕ → α
n : ℕ
h : ∀ (m : ℕ), n ≤ m → f (m + 1) = f m
m✝ m : ℕ
hm : n ≤ m
ihm : f m = f n
⊢ f (m + 1) = f n
state_after: no goals
Theorem: Inducing.isClosedMap
File: Mathlib/Topology/Maps.lean

tactic: intro s hs
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hf : Inducing f
h : IsClosed (range f)
⊢ IsClosedMap f
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hf : Inducing f
h : IsClosed (range f)
s : Set X
hs : IsClosed s
⊢ IsClosed (f '' s)

tactic: rcases hf.isClosed_iff.1 hs with ⟨t, ht, rfl⟩
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hf : Inducing f
h : IsClosed (range f)
s : Set X
hs : IsClosed s
⊢ IsClosed (f '' s)
state_after: case intro.intro
X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hf : Inducing f
h : IsClosed (range f)
t : Set Y
ht : IsClosed t
hs : IsClosed (f ⁻¹' t)
⊢ IsClosed (f '' (f ⁻¹' t))

tactic: rw [image_preimage_eq_inter_range]
state_before: case intro.intro
X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hf : Inducing f
h : IsClosed (range f)
t : Set Y
ht : IsClosed t
hs : IsClosed (f ⁻¹' t)
⊢ IsClosed (f '' (f ⁻¹' t))
state_after: case intro.intro
X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hf : Inducing f
h : IsClosed (range f)
t : Set Y
ht : IsClosed t
hs : IsClosed (f ⁻¹' t)
⊢ IsClosed (t ∩ range f)

tactic: exact ht.inter h
state_before: case intro.intro
X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hf : Inducing f
h : IsClosed (range f)
t : Set Y
ht : IsClosed t
hs : IsClosed (f ⁻¹' t)
⊢ IsClosed (t ∩ range f)
state_after: no goals
Theorem: Codisjoint.bihimp_eq_inf
File: Mathlib/Order/SymmDiff.lean

tactic: rw [bihimp, h.himp_eq_left, h.himp_eq_right]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedHeytingAlgebra α
a✝ b✝ c d a b : α
h : Codisjoint a b
⊢ a ⇔ b = a ⊓ b
state_after: no goals
Theorem: InnerProductGeometry.cos_angle_sub_of_inner_eq_zero
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean

tactic: rw [← neg_eq_zero, ← inner_neg_right] at h
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, y⟫_ℝ = 0
⊢ Real.cos (angle x (x - y)) = ‖x‖ / ‖x - y‖
state_after: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, -y⟫_ℝ = 0
⊢ Real.cos (angle x (x - y)) = ‖x‖ / ‖x - y‖

tactic: rw [sub_eq_add_neg, cos_angle_add_of_inner_eq_zero h]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, -y⟫_ℝ = 0
⊢ Real.cos (angle x (x - y)) = ‖x‖ / ‖x - y‖
state_after: no goals
Theorem: Subgroup.pi_top
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: simp [mem_pi]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
I : Set η
x : (i : η) → f i
⊢ (x ∈ pi I fun i => ⊤) ↔ x ∈ ⊤
state_after: no goals
Theorem: Real.iSup_of_isEmpty
File: Mathlib/Data/Real/Archimedean.lean

tactic: dsimp [iSup]
state_before: α : Sort u_1
inst✝ : IsEmpty α
f : α → ℝ
⊢ ⨆ i, f i = 0
state_after: α : Sort u_1
inst✝ : IsEmpty α
f : α → ℝ
⊢ sSup (Set.range fun i => f i) = 0

tactic: convert Real.sSup_empty
state_before: α : Sort u_1
inst✝ : IsEmpty α
f : α → ℝ
⊢ sSup (Set.range fun i => f i) = 0
state_after: case h.e'_2.h.e'_3
α : Sort u_1
inst✝ : IsEmpty α
f : α → ℝ
⊢ (Set.range fun i => f i) = ∅

tactic: rw [Set.range_eq_empty_iff]
state_before: case h.e'_2.h.e'_3
α : Sort u_1
inst✝ : IsEmpty α
f : α → ℝ
⊢ (Set.range fun i => f i) = ∅
state_after: case h.e'_2.h.e'_3
α : Sort u_1
inst✝ : IsEmpty α
f : α → ℝ
⊢ IsEmpty α

tactic: infer_instance
state_before: case h.e'_2.h.e'_3
α : Sort u_1
inst✝ : IsEmpty α
f : α → ℝ
⊢ IsEmpty α
state_after: no goals
Theorem: Real.sinh_eq_zero
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean

tactic: rw [← @sinh_inj x, sinh_zero]
state_before: x y z : ℝ
⊢ sinh x = 0 ↔ x = 0
state_after: no goals
Theorem: Int.zero_shiftLeft
File: Mathlib/Data/Int/Bitwise.lean

tactic: simp
state_before: n : ℕ
⊢ Nat.shiftLeft' false 0 n = 0
state_after: no goals

tactic: simp
state_before: a✝ : ℕ
⊢ 0 >>> a✝.succ = 0
state_after: no goals
Theorem: sup_sdiff_right_self
File: Mathlib/Order/Heyting/Basic.lean

tactic: rw [sup_sdiff, sdiff_self, sup_bot_eq]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : GeneralizedCoheytingAlgebra α
a b c d : α
⊢ (a ⊔ b) \ b = a \ b
state_after: no goals
Theorem: HomologicalComplex₂.totalFlipIso_hom_f_D₁
File: Mathlib/Algebra/Homology/TotalComplexSymmetry.lean

tactic: apply totalFlipIsoX_hom_D₁
state_before: C : Type u_1
I₁ : Type u_2
I₂ : Type u_3
J : Type u_4
inst✝⁷ : Category.{u_5, u_1} C
inst✝⁶ : Preadditive C
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
K : HomologicalComplex₂ C c₁ c₂
c : ComplexShape J
inst✝⁵ : TotalComplexShape c₁ c₂ c
inst✝⁴ : TotalComplexShape c₂ c₁ c
inst✝³ : TotalComplexShapeSymmetry c₁ c₂ c
inst✝² : K.HasTotal c
inst✝¹ : K.flip.HasTotal c
inst✝ : DecidableEq J
j j' : J
⊢ (K.totalFlipIso c).hom.f j ≫ K.D₁ c j j' = K.flip.D₂ c j j' ≫ (K.totalFlipIso c).hom.f j'
state_after: no goals
Theorem: Set.image2_inter_union_subset
File: Mathlib/Data/Set/NAry.lean

tactic: rw [inter_comm]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
f✝ f' : α → β → γ
g g' : α → β → γ → δ
s✝ s' : Set α
t✝ t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
f : α → α → β
s t : Set α
hf : ∀ (a b : α), f a b = f b a
⊢ image2 f (s ∩ t) (s ∪ t) ⊆ image2 f s t
state_after: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
f✝ f' : α → β → γ
g g' : α → β → γ → δ
s✝ s' : Set α
t✝ t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
f : α → α → β
s t : Set α
hf : ∀ (a b : α), f a b = f b a
⊢ image2 f (t ∩ s) (s ∪ t) ⊆ image2 f s t

tactic: exact image2_inter_union_subset_union.trans (union_subset (image2_comm hf).subset Subset.rfl)
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
f✝ f' : α → β → γ
g g' : α → β → γ → δ
s✝ s' : Set α
t✝ t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
f : α → α → β
s t : Set α
hf : ∀ (a b : α), f a b = f b a
⊢ image2 f (t ∩ s) (s ∪ t) ⊆ image2 f s t
state_after: no goals
Theorem: Basis.toMatrix_eq_toMatrix_constr
File: Mathlib/LinearAlgebra/Matrix/Basis.lean

tactic: ext
state_before: ι : Type u_1
ι' : Type u_2
κ : Type u_3
κ' : Type u_4
R : Type u_5
M : Type u_6
inst✝⁷ : CommSemiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
R₂ : Type u_7
M₂ : Type u_8
inst✝⁴ : CommRing R₂
inst✝³ : AddCommGroup M₂
inst✝² : Module R₂ M₂
e : Basis ι R M
v✝ : ι' → M
i : ι
j : ι'
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
v : ι → M
⊢ e.toMatrix v = (LinearMap.toMatrix e e) ((e.constr ℕ) v)
state_after: case a
ι : Type u_1
ι' : Type u_2
κ : Type u_3
κ' : Type u_4
R : Type u_5
M : Type u_6
inst✝⁷ : CommSemiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
R₂ : Type u_7
M₂ : Type u_8
inst✝⁴ : CommRing R₂
inst✝³ : AddCommGroup M₂
inst✝² : Module R₂ M₂
e : Basis ι R M
v✝ : ι' → M
i : ι
j : ι'
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
v : ι → M
i✝ j✝ : ι
⊢ e.toMatrix v i✝ j✝ = (LinearMap.toMatrix e e) ((e.constr ℕ) v) i✝ j✝

tactic: rw [Basis.toMatrix_apply, LinearMap.toMatrix_apply, Basis.constr_basis]
state_before: case a
ι : Type u_1
ι' : Type u_2
κ : Type u_3
κ' : Type u_4
R : Type u_5
M : Type u_6
inst✝⁷ : CommSemiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
R₂ : Type u_7
M₂ : Type u_8
inst✝⁴ : CommRing R₂
inst✝³ : AddCommGroup M₂
inst✝² : Module R₂ M₂
e : Basis ι R M
v✝ : ι' → M
i : ι
j : ι'
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
v : ι → M
i✝ j✝ : ι
⊢ e.toMatrix v i✝ j✝ = (LinearMap.toMatrix e e) ((e.constr ℕ) v) i✝ j✝
state_after: no goals
Theorem: Matroid.Indep.mapEmbedding
File: Mathlib/Data/Matroid/Map.lean

tactic: simpa [preimage_image_eq I f.injective]
state_before: α : Type u_1
β : Type u_2
f✝ : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hI : M.Indep I
f : α ↪ β
⊢ (M.mapEmbedding f).Indep (⇑f '' I)
state_after: no goals
Theorem: Ordinal.opow_one
File: Mathlib/SetTheory/Ordinal/Exponential.lean

tactic: rw [← succ_zero, opow_succ]
state_before: a : Ordinal.{u_1}
⊢ a ^ 1 = a
state_after: a : Ordinal.{u_1}
⊢ a ^ 0 * a = a

tactic: simp only [opow_zero, one_mul]
state_before: a : Ordinal.{u_1}
⊢ a ^ 0 * a = a
state_after: no goals
Theorem: preNormEDS_neg
File: Mathlib/NumberTheory/EllipticDivisibilitySequence.lean

tactic: rw [preNormEDS, Int.sign_neg, Int.cast_neg, neg_mul, Int.natAbs_neg, preNormEDS]
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
n : ℤ
⊢ preNormEDS b c d (-n) = -preNormEDS b c d n
state_after: no goals
Theorem: LinearPMap.domRestrict_le
File: Mathlib/LinearAlgebra/LinearPMap.lean

tactic: simp
state_before: R : Type u_1
inst✝⁶ : Ring R
E : Type u_2
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module R E
F : Type u_3
inst✝³ : AddCommGroup F
inst✝² : Module R F
G : Type u_4
inst✝¹ : AddCommGroup G
inst✝ : Module R G
f : E →ₗ.[R] F
S : Submodule R E
⊢ (f.domRestrict S).domain ≤ f.domain
state_after: no goals
Theorem: LieModule.independent_weightSpaceOf
File: Mathlib/Algebra/Lie/Weights/Basic.lean

tactic: rw [LieSubmodule.independent_iff_coe_toSubmodule]
state_before: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝⁸ : CommRing R
inst✝⁷ : LieRing L
inst✝⁶ : LieAlgebra R L
inst✝⁵ : LieAlgebra.IsNilpotent R L
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : LieRingModule L M
inst✝¹ : LieModule R L M
inst✝ : NoZeroSMulDivisors R M
x : L
⊢ CompleteLattice.Independent fun χ => weightSpaceOf M χ x
state_after: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝⁸ : CommRing R
inst✝⁷ : LieRing L
inst✝⁶ : LieAlgebra R L
inst✝⁵ : LieAlgebra.IsNilpotent R L
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : LieRingModule L M
inst✝¹ : LieModule R L M
inst✝ : NoZeroSMulDivisors R M
x : L
⊢ CompleteLattice.Independent fun i => ↑(weightSpaceOf M i x)

tactic: exact (toEnd R L M x).independent_genEigenspace
state_before: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝⁸ : CommRing R
inst✝⁷ : LieRing L
inst✝⁶ : LieAlgebra R L
inst✝⁵ : LieAlgebra.IsNilpotent R L
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : LieRingModule L M
inst✝¹ : LieModule R L M
inst✝ : NoZeroSMulDivisors R M
x : L
⊢ CompleteLattice.Independent fun i => ↑(weightSpaceOf M i x)
state_after: no goals
Theorem: lt_one_of_mul_lt_left
File: Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean

tactic: simpa only [one_mul]
state_before: α : Type u_1
β : Type u_2
inst✝² : MulOneClass α
inst✝¹ : LT α
inst✝ : ContravariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b : α
h : a * b < b
⊢ a * ?m.29133 < 1 * ?m.29133
state_after: no goals
Theorem: Nat.descFactorial_le_pow
File: Mathlib/Data/Nat/Factorial/Basic.lean

tactic: rw [descFactorial_zero, Nat.pow_zero]
state_before: n : ℕ
⊢ n.descFactorial 0 ≤ n ^ 0
state_after: no goals

tactic: rw [descFactorial_succ, Nat.pow_succ, Nat.mul_comm _ n]
state_before: n k : ℕ
⊢ n.descFactorial (k + 1) ≤ n ^ (k + 1)
state_after: n k : ℕ
⊢ (n - k) * n.descFactorial k ≤ n * n ^ k

tactic: exact Nat.mul_le_mul (Nat.sub_le _ _) (descFactorial_le_pow _ k)
state_before: n k : ℕ
⊢ (n - k) * n.descFactorial k ≤ n * n ^ k
state_after: no goals
Theorem: Nat.card_eq_card_finite_toFinset
File: Mathlib/SetTheory/Cardinal/Finite.lean

tactic: simp only [← Nat.card_eq_finsetCard, hs.mem_toFinset]
state_before: α : Type u_1
β : Type u_2
s : Set α
hs : s.Finite
⊢ Nat.card ↑s = hs.toFinset.card
state_after: no goals
Theorem: Set.pairwise_insert_of_symmetric_of_not_mem
File: Mathlib/Data/Set/Pairwise/Basic.lean

tactic: simp only [pairwise_insert_of_not_mem ha, hr.iff a, and_self_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
r p q : α → α → Prop
f g : ι → α
s t u : Set α
a b : α
hr : Symmetric r
ha : a ∉ s
⊢ (insert a s).Pairwise r ↔ s.Pairwise r ∧ ∀ b ∈ s, r a b
state_after: no goals
Theorem: Finset.truncatedSup_infs_of_not_mem
File: Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean

tactic: rwa [coe_infs, lowerClosure_infs]
state_before: α : Type u_1
β : Type u_2
inst✝³ : DistribLattice α
inst✝² : BoundedOrder α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a : α
ha : a ∉ lowerClosure ↑s ⊓ lowerClosure ↑t
⊢ a ∉ lowerClosure ↑(s ⊼ t)
state_after: no goals